Files
metabuilder/workflow/plugins/go/DEPENDENCIES.md
johndoe6345789 bb17f395fe feat: complete fakemui accessibility integration with data-testid and ARIA
Complete implementation of accessibility utilities across fakemui components:

**New Files**:
- src/utils/accessibility.ts - Core accessibility utilities (moved from legacy)
- src/utils/accessibility.module.scss - Accessibility SCSS styles
- src/utils/useAccessible.ts - React hooks for accessibility:
  * useAccessible() - Generate test IDs and ARIA attributes
  * useKeyboardNavigation() - Handle keyboard events
  * useFocusManagement() - Programmatic focus control
  * useLiveRegion() - Screen reader announcements
  * useFocusTrap() - Focus trapping for modals

**Component Updates**:
- Button.tsx - Added data-testid and ARIA support via useAccessible hook
- TextField.tsx - Added data-testid, aria-invalid, aria-describedby support

**Documentation**:
- docs/ACCESSIBILITY_INTEGRATION.md - Complete integration guide with examples

**Features**:
- 50+ preset test ID generators (form, canvas, settings, navigation, etc.)
- ARIA attribute patterns for buttons, toggles, dialogs, tabs, live regions
- Keyboard navigation helpers (Enter, Escape, Arrow keys, Tab)
- Accessibility validators (hasLabel, isKeyboardAccessible, etc.)
- Fully typed TypeScript with AccessibilityFeature, Component, Action types

All components now support reliable testing via data-testid and screen reader access via ARIA attributes.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-23 17:25:48 +00:00

3.1 KiB

Go Workflow Plugins - Dependency Management

Last Updated: 2026-01-23 Go Version: 1.21+

Overview

All Go workflow plugins are designed to have zero external dependencies (except the core workflow interface). All plugins use only the Go standard library.

Module Structure

Root Module: go.mod

  • Module Path: github.com/metabuilder/workflow-plugins-go
  • Go Version: 1.21
  • Dependencies: Only github.com/metabuilder/workflow for the interface

Workspace: go.work

  • Coordinates all 15 plugin categories
  • Enables monorepo development with go mod tidy

Plugin Categories (Zero External Dependencies)

Category Plugins External Deps Status
control 1 None ✓ Complete
convert 7 None ✓ Complete
core 1 None ✓ Complete
dict 6 None ✓ Complete
list 7 None ✓ Complete
logic 9 None ✓ Complete
math 4 None ✓ Complete
notifications 1 None ✓ Complete
string 8 None ✓ Complete
test 5 None ✓ Complete
tools 1 None ✓ Complete
utils 1 None ✓ Complete
var 4 None ✓ Complete
web 1 None ✓ Complete

Total Go Plugins: 51

Development Workflow

Initialize Workspace

cd workflow/plugins/go
go mod download
go mod tidy

Build All Plugins

go build ./...

Test All Plugins

go test ./...

Add New Plugin Module

For a new category new_category:

  1. Create directory: new_category/new_plugin/
  2. Add main.go with plugin implementation
  3. Update go.work to include ./new_category
  4. Run go mod tidy

Plugin Implementation Pattern

All Go plugins follow this interface:

package plugin

// Plugin is the interface all workflow plugins must implement.
type Plugin interface {
	Run(runtime *Runtime, inputs map[string]interface{}) (map[string]interface{}, error)
}

// Runtime provides context for plugin execution.
type Runtime struct {
	Store   map[string]interface{} // Workflow state storage
	Context map[string]interface{} // Shared context (clients, config)
	Logger  Logger                 // Logging interface
}

Migration Notes

From Node Modules (TypeScript)

  • Go plugins use workspace coordination instead of npm workspaces
  • Each plugin category is a standalone Go module directory
  • No package.json dependencies needed

Dependencies Decision

  • External libraries: Explicitly avoided to minimize deployment size
  • Standard library only: Ensures compatibility across platforms
  • Plugin interface: Single external import from metabuilder/workflow

Future Enhancements

  1. Consider adding optional plugins with external dependencies (separate directory)
  2. Implement plugin registry for dynamic loading
  3. Add plugin versioning strategy
  4. Create plugin template generator

Troubleshooting

Import conflicts

go mod verify
go mod tidy

Workspace issues

go work init
go work use ./...

Version mismatches

go get -u ./...
go mod tidy