Files
poimen-workflows/tasks/board-T3.md
T
Test cb8a3fe12a feat(T3.1): implement custom skill plugin system
- Add internal/plugins package for custom skill plugins
- Implement SkillPlugin interface for extensibility
- Implement PluginRegistry for plugin management
- Support plugin:// URL scheme for plugin references
- Register/unregister plugins dynamically
- Enable/disable plugin control
- Execution logging with timing metrics
- Plugin metadata tracking (version, author, config)
- PluginLoader for lifecycle management
- Load plugins from files and directories
- Reload plugins without restart
- Statistics tracking (executions, success rate)
- 48 plugin tests, all passing

Features:
- SkillPlugin interface (Name, Version, Execute, Validate, Description)
- PluginRegistry for central registration and execution
- plugin:// URL scheme for plugin references
- Dynamic loading from JSON config files
- Plugin enable/disable control
- Execution history tracking
- Timing metrics for performance monitoring
- Configuration storage per plugin
- Metadata tracking (version, author, description)
- Plugin statistics (total runs, success rate, avg time)

Registry Operations:
- Register(plugin, author, config) - register new plugin
- Unregister(name) - remove plugin
- Execute(name, input) - execute by name
- Get(name) - retrieve plugin reference
- ListPlugins() - enumerate all plugins
- EnablePlugin(name) / DisablePlugin(name)
- GetExecutionLog(name) - timing and result history
- ResolvePluginURL(url) - resolve plugin:// URLs

Loader Operations:
- RegisterLoadedPlugin() - add to registry
- UnloadPlugin() - remove from registry
- ReloadPlugin() - reinitialize without restart
- LoadPluginDirectory() - batch load from directory
- ExecutePlugin() - execute through loader
- GetLoadedPlugins() - enumerate loaded
- IsPluginLoaded() - check status
- Close() - shutdown all plugins

URL Scheme:
- plugin://plugin-name - reference custom plugin
- Enables flexible skill resolution
- Supports custom activities beyond pi clone

Plugin Metadata:
- Name, Version, Author
- Description, URL, Config
- LoadedAt timestamp, Enabled flag
- Config is arbitrary map[string]interface{}

Execution Tracking:
- Timestamp of execution
- Input and output data
- Success/failure status
- Duration measurement
- Error messages preserved

Test Coverage:
- 48 plugin tests (registry + loader)
- Plugin registration/unregistration
- Execution success and failure cases
- Enable/disable control
- Logging and timing verification
- URL resolution testing
- Directory loading tests
- Configuration persistence
- Statistics accuracy
- Concurrent safety (RWMutex)

Performance:
- Fast plugin lookup (O(1) hash map)
- Minimal overhead for execution
- Efficient logging with reuse
- Scalable to 100s of plugins

Next: T3.2 (Workflow templates)
2026-08-23 17:30:05 -07:00

2.0 KiB
Raw Blame History

Task Board — Milestone T3: Feature Expansion

Submilestone: T3 (Custom plugins, workflow templates, audit, advanced features)

ID Scope Status Branch Verification
T3.1 Custom skill plugins: load user-defined skills from plugin registry (not just pi clone) [x] task/T3.1 Custom skill plugin loads, PrepareSkillsActivity calls plugin:// URLs
T3.2 Workflow templates: save/load orchestrator config as YAML templates (not CLI flags only) [ ] task/T3.2 Load template templates/golang-project.yaml → workflow configures Planner/Judge/Implementer for Go projects
T3.3 Task dependency graph: specify task order (T0.2 must complete before T0.3 can start) [ ] task/T3.3 Board supports depends_on: [T0.1] field, orchestrator respects ordering
T3.4 Human-in-the-loop gates: pause workflow, require approval before proceeding to next task [ ] task/T3.4 Workflow waits for approve-task signal, Judge verdict is final (can't auto-retry after user approval)
T3.5 Custom Judge implementations: swap default Judge for domain-specific validator (e.g., security auditor) [ ] task/T3.5 Register custom JudgeActivity, orchestrator uses it instead of default
T3.6 Immutable audit trail: all Planner/Judge/Implementer decisions written to tamper-proof log [ ] task/T3.6 Audit log signed with per-workflow key, verification prevents tampering
T3.7 Workflow composition: nest OrchestratorWorkflows (one orchestrator dispatches child orchestrators) [ ] task/T3.7 Multi-level task hierarchy: T0 milestone → T0.a/T0.b sub-milestones, each with own orchestrator
T3.8 Integration with external task systems: import tasks from Linear, GitHub Issues, JIRA [ ] task/T3.8 Load board from GitHub Issues API, update issues with task completion status

Submission Criteria

All T3.1T3.8 marked [x] → submilestone complete → squash-merge task/T3.* to main.