codeforge-dev 1.12.0 → 1.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.devcontainer/CHANGELOG.md +175 -2
- package/.devcontainer/CLAUDE.md +61 -268
- package/.devcontainer/README.md +17 -9
- package/.devcontainer/config/defaults/ccstatusline-settings.json +147 -0
- package/.devcontainer/config/defaults/main-system-prompt.md +6 -1
- package/.devcontainer/config/defaults/rules/spec-workflow.md +1 -55
- package/.devcontainer/config/defaults/rules/workspace-scope.md +13 -4
- package/.devcontainer/config/defaults/settings.json +5 -3
- package/.devcontainer/config/file-manifest.json +14 -0
- package/.devcontainer/devcontainer.json +32 -7
- package/.devcontainer/docs/optional-features.md +0 -65
- package/.devcontainer/docs/plugins.md +38 -23
- package/.devcontainer/features/ast-grep/devcontainer-feature.json +0 -1
- package/.devcontainer/features/biome/install.sh +13 -0
- package/.devcontainer/features/ccburn/devcontainer-feature.json +0 -1
- package/.devcontainer/features/ccms/devcontainer-feature.json +0 -1
- package/.devcontainer/features/ccms/install.sh +1 -1
- package/.devcontainer/features/ccstatusline/devcontainer-feature.json +0 -1
- package/.devcontainer/features/ccstatusline/install.sh +17 -115
- package/.devcontainer/features/ccusage/devcontainer-feature.json +0 -1
- package/.devcontainer/features/chromaterm/README.md +42 -0
- package/.devcontainer/features/chromaterm/chromaterm.yml +35 -0
- package/.devcontainer/features/chromaterm/devcontainer-feature.json +22 -0
- package/.devcontainer/features/chromaterm/install.sh +113 -0
- package/.devcontainer/features/claude-monitor/devcontainer-feature.json +0 -1
- package/.devcontainer/features/claude-session-dashboard/README.md +40 -0
- package/.devcontainer/features/claude-session-dashboard/devcontainer-feature.json +34 -0
- package/.devcontainer/features/claude-session-dashboard/install.sh +172 -0
- package/.devcontainer/features/kitty-terminfo/README.md +32 -0
- package/.devcontainer/features/kitty-terminfo/devcontainer-feature.json +13 -0
- package/.devcontainer/features/kitty-terminfo/install.sh +72 -0
- package/.devcontainer/features/lsp-servers/devcontainer-feature.json +0 -1
- package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +0 -1
- package/.devcontainer/features/shellcheck/install.sh +6 -2
- package/.devcontainer/features/tree-sitter/devcontainer-feature.json +0 -1
- package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +48 -59
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/AGENT-REDIRECTION.md +7 -12
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/README.md +197 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/REVIEW-RUBRIC.md +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/architect.md +3 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/bash-exec.md +3 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/claude-guide.md +5 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/debug-logs.md +7 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/dependency-analyst.md +6 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/doc-writer.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/explorer.md +4 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/generalist.md +10 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/git-archaeologist.md +5 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/migrator.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/perf-profiler.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/refactorer.md +5 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/researcher.md +6 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/security-auditor.md +5 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/spec-writer.md +3 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/statusline-config.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/test-writer.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/hooks/hooks.json +51 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/guard-readonly-bash.py +2 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/inject-cwd.py +7 -4
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/redirect-builtin-agents.py +17 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/task-completed-check.py +166 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/teammate-idle-check.py +81 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/verify-no-regression.py +14 -10
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/verify-tests-pass.py +2 -14
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/README.md +17 -31
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/hooks/hooks.json +5 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → auto-code-quality}/scripts/advisory-test-runner.py +9 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/codeforge-lsp/README.md +28 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/README.md +28 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py +2 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/README.md +28 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/hooks/hooks.json +0 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/README.md +28 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected-bash.py +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +2 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/README.md +140 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/hooks/hooks.json +33 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → session-context}/scripts/commit-reminder.py +3 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → session-context}/scripts/git-state-injector.py +18 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → session-context}/scripts/todo-harvester.py +9 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/README.md +158 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/hooks/hooks.json +16 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/scripts/skill-suggester.py +189 -100
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/api-design/SKILL.md +9 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/ast-grep-patterns/SKILL.md +7 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-agent-sdk/SKILL.md +8 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-code-headless/SKILL.md +8 -9
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/debugging/SKILL.md +11 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/dependency-management/SKILL.md +10 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker/SKILL.md +8 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker-py/SKILL.md +9 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/documentation-patterns/SKILL.md +7 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/SKILL.md +9 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/git-forensics/SKILL.md +11 -9
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/migration-patterns/SKILL.md +7 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/performance-profiling/SKILL.md +10 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/pydantic-ai/SKILL.md +8 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/refactoring-patterns/SKILL.md +9 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/security-checklist/SKILL.md +9 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/SKILL.md +7 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/SKILL.md +9 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/SKILL.md +7 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/team/SKILL.md +271 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/testing/SKILL.md +10 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/README.md +192 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/hooks/hooks.json +16 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/scripts/spec-reminder.py +3 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-build/SKILL.md +9 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-check/SKILL.md +10 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-init/SKILL.md +8 -4
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-init/references/roadmap-template.md +33 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-new/SKILL.md +8 -4
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-refine/SKILL.md +10 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-review/SKILL.md +10 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-update/SKILL.md +10 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/specification-writing/SKILL.md +9 -9
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/plugin.json +1 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/README.md +28 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/hooks/hooks.json +16 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → ticket-workflow}/scripts/ticket-linker.py +9 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/README.md +104 -32
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/hooks/hooks.json +49 -3
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/guard-workspace-scope.py +269 -58
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/inject-workspace-cwd.py +44 -0
- package/.devcontainer/scripts/setup-aliases.sh +13 -5
- package/.devcontainer/scripts/setup-config.sh +1 -0
- package/.devcontainer/scripts/setup-projects.sh +1 -1
- package/README.md +5 -5
- package/package.json +6 -2
- package/setup.js +3 -2
- package/.devcontainer/.env +0 -33
- package/.devcontainer/features/README.md +0 -126
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/.claude-plugin/plugin.json +0 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/README.md +0 -81
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/hooks/hooks.json +0 -17
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/__pycache__/format-on-stop.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/format-on-stop.py +0 -297
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/.claude-plugin/plugin.json +0 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/README.md +0 -92
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/hooks/hooks.json +0 -17
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/__pycache__/lint-file.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/lint-file.py +0 -536
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/.claude-plugin/plugin.json +0 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/README.md +0 -250
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/hooks/hooks.json +0 -112
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/advisory-test-runner.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/collect-edited-files.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/commit-reminder.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/git-state-injector.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/guard-readonly-bash.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/redirect-builtin-agents.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/skill-suggester.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/syntax-validator.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/ticket-linker.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/todo-harvester.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-no-regression.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-tests-pass.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/collect-edited-files.py +0 -46
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/syntax-validator.py +0 -146
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/__pycache__/block-dangerous.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/__pycache__/guard-protected.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/system-prompt.md +0 -184
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/__pycache__/guard-workspace-scope.cpython-314.pyc +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive/.claude-plugin/commands/debug.md → agent-system/skills/debug/SKILL.md} +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/api-design/references/error-handling.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/api-design/references/rest-conventions.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/ast-grep-patterns/references/language-patterns.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-agent-sdk/references/sdk-typescript-reference.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-code-headless/references/cli-flags-and-output.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-code-headless/references/sdk-and-mcp.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/debugging/references/error-patterns.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/debugging/references/log-locations.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/dependency-management/references/ecosystem-commands.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/dependency-management/references/license-compliance.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker/references/compose-services.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker/references/dockerfile-patterns.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker-py/references/container-lifecycle.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker-py/references/resources-and-security.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/documentation-patterns/references/api-doc-templates.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/documentation-patterns/references/docstring-formats.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/middleware-and-lifespan.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/pydantic-models.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/routing-and-dependencies.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/sse-and-streaming.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/git-forensics/references/advanced-commands.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/git-forensics/references/investigation-playbooks.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/migration-patterns/references/javascript-migrations.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/migration-patterns/references/python-migrations.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/performance-profiling/references/interpreting-results.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/performance-profiling/references/tool-commands.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/pydantic-ai/references/agents-and-tools.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/pydantic-ai/references/models-and-streaming.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/refactoring-patterns/references/safe-transformations.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/refactoring-patterns/references/smell-catalog.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/security-checklist/references/owasp-patterns.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/security-checklist/references/secrets-patterns.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/references/cross-vendor-principles.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/references/patterns-and-antipatterns.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/references/skill-authoring-patterns.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/advanced-queries.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/javascript-patterns.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/python-patterns.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/schema-and-pragmas.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/ai-sdk-svelte.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/component-patterns.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/layercake.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/migration-guide.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/runes-and-reactivity.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/spa-and-routing.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/svelte-dnd-action.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/testing/references/fastapi-testing.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/testing/references/svelte-testing.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-build/references/review-checklist.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-init/references/backlog-template.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-init/references/milestones-template.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-new/references/template.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/specification-writing/references/criteria-patterns.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/specification-writing/references/ears-templates.md +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272create-pr.md" → skills/ticketcreate-pr/SKILL.md} +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272new.md" → skills/ticketnew/SKILL.md} +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272review-commit.md" → skills/ticketreview-commit/SKILL.md} +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272work.md" → skills/ticketwork/SKILL.md} +0 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: team
|
|
3
|
+
description: >-
|
|
4
|
+
Guides agent team orchestration with TeamCreate, parallel teammate
|
|
5
|
+
spawning, task coordination, specialist agent selection, and
|
|
6
|
+
--teammate-mode configuration for concurrent workstreams. USE WHEN
|
|
7
|
+
the user asks to "spawn a team", "create a team of agents", "use a
|
|
8
|
+
swarm", "work in parallel", "coordinate multiple agents", "split this
|
|
9
|
+
across agents", "team up", or works with TeamCreate, SendMessage, and
|
|
10
|
+
multi-agent workflows. DO NOT USE for single-agent sequential tasks
|
|
11
|
+
where parallelism adds no value — a team requires 3+ independent
|
|
12
|
+
workstreams.
|
|
13
|
+
version: 0.2.0
|
|
14
|
+
disable-model-invocation: true
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Agent Team Orchestration
|
|
18
|
+
|
|
19
|
+
## Mental Model
|
|
20
|
+
|
|
21
|
+
A team is a group of specialist agents working in parallel under a lead (you). Each teammate runs independently with its own context — they share a task list but not conversation history. The lead decomposes work into parallel streams, spawns specialists, assigns tasks, and coordinates integration.
|
|
22
|
+
|
|
23
|
+
Teams add value only when work can be parallelized. If every task depends on the previous one, a single agent is faster. The threshold: **3+ independent workstreams** that can run concurrently.
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Lead (you)
|
|
27
|
+
├── TeamCreate → creates the team
|
|
28
|
+
├── TaskCreate (×N) → defines work units
|
|
29
|
+
├── Task (×N) → spawns specialist teammates
|
|
30
|
+
├── TaskUpdate (×N) → assigns tasks to teammates
|
|
31
|
+
├── SendMessage → coordinates during execution
|
|
32
|
+
└── TeamDelete → cleans up after completion
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Two Modes
|
|
38
|
+
|
|
39
|
+
Parse `$ARGUMENTS` for an optional `--now` flag to determine behavior:
|
|
40
|
+
|
|
41
|
+
| Input | Mode | Behavior |
|
|
42
|
+
|-------|------|----------|
|
|
43
|
+
| `/team refactor the auth module` | Guidance | Absorb team knowledge, propose a plan, discuss with user |
|
|
44
|
+
| `/team --now refactor the auth module` | Immediate | Create team, spawn agents, start work without waiting |
|
|
45
|
+
| `/team` | Guidance | Ask the user what the team should accomplish |
|
|
46
|
+
|
|
47
|
+
Strip `--now` from the purpose string before using it. Everything remaining is `<PURPOSE>`.
|
|
48
|
+
|
|
49
|
+
### Guidance Mode (default — no `--now`)
|
|
50
|
+
|
|
51
|
+
Inject the knowledge in this skill into context. **Do not force immediate action.** Analyze the purpose, propose a team composition, and discuss the approach with the user before acting. Use your judgment about when to create the team.
|
|
52
|
+
|
|
53
|
+
### Immediate Mode (`--now` flag present)
|
|
54
|
+
|
|
55
|
+
Act now without waiting for further input:
|
|
56
|
+
|
|
57
|
+
1. **Analyze purpose** — determine workstreams and specialist roles needed
|
|
58
|
+
2. **Create team** — `TeamCreate` with a kebab-case name derived from purpose
|
|
59
|
+
3. **Create tasks** — `TaskCreate` for each work unit with dependencies via `TaskUpdate`
|
|
60
|
+
4. **Spawn teammates** — `Task` with `team_name`, specialist `subagent_type`, descriptive `name`
|
|
61
|
+
5. **Assign tasks** — `TaskUpdate` with `owner` set to each teammate's name
|
|
62
|
+
6. **Coordinate** — monitor via `TaskList`, message via `SendMessage`
|
|
63
|
+
7. **Shutdown** — `shutdown_request` to all teammates, then `TeamDelete`
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Team Lifecycle
|
|
68
|
+
|
|
69
|
+
### 1. Create the Team
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
TeamCreate:
|
|
73
|
+
team_name: "auth-refactor" # kebab-case, descriptive
|
|
74
|
+
description: "Refactor auth module for OAuth2 support"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
One team per lead session. No nested teams.
|
|
78
|
+
|
|
79
|
+
### 2. Create Tasks
|
|
80
|
+
|
|
81
|
+
Each task should be independently completable by one agent:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
TaskCreate:
|
|
85
|
+
subject: "Write unit tests for OAuth2 flow" # imperative
|
|
86
|
+
description: "Full context the assignee needs..." # self-contained
|
|
87
|
+
activeForm: "Writing OAuth2 unit tests" # present continuous
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Set ordering constraints with `TaskUpdate`:
|
|
91
|
+
- `addBlockedBy: ["1"]` — this task waits for task 1
|
|
92
|
+
- `addBlocks: ["3"]` — task 3 waits for this task
|
|
93
|
+
|
|
94
|
+
### 3. Spawn Teammates
|
|
95
|
+
|
|
96
|
+
Each teammate is spawned via the `Task` tool with `team_name`:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Task:
|
|
100
|
+
team_name: "auth-refactor"
|
|
101
|
+
subagent_type: "agent-system:test-writer" # specialist agent type
|
|
102
|
+
name: "test-writer" # used for messaging and assignment
|
|
103
|
+
prompt: "All context needed for the work..." # teammates have NO prior history
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Critical:** Teammates do not inherit your conversation. The spawn `prompt` must include every piece of context the teammate needs — file paths, requirements, constraints, conventions.
|
|
107
|
+
|
|
108
|
+
### 4. Assign Tasks
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
TaskUpdate:
|
|
112
|
+
taskId: "2"
|
|
113
|
+
owner: "test-writer" # matches the teammate's name
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 5. Coordinate
|
|
117
|
+
|
|
118
|
+
- **Check progress:** `TaskList` shows all tasks with status and owner
|
|
119
|
+
- **Direct message:** `SendMessage` with `type: "message"` and `recipient: "test-writer"`
|
|
120
|
+
- **Broadcast:** `SendMessage` with `type: "broadcast"` — use ONLY for critical team-wide issues
|
|
121
|
+
- **Idle is normal:** Teammates go idle after each turn. This is expected. Send a message to wake them.
|
|
122
|
+
- **Quality gate hooks:** TeammateIdle and TaskCompleted hooks run automatically. TeammateIdle checks for incomplete tasks (exit 2 → teammate keeps working); TaskCompleted runs the test suite (exit 2 → task stays open). See agent-system plugin hooks.
|
|
123
|
+
|
|
124
|
+
**In-process mode keyboard shortcuts:**
|
|
125
|
+
|
|
126
|
+
| Shortcut | Action |
|
|
127
|
+
|----------|--------|
|
|
128
|
+
| `Shift+Down` | Cycle through teammates |
|
|
129
|
+
| `Ctrl+T` | Toggle task list |
|
|
130
|
+
| `Enter` | View a teammate's session |
|
|
131
|
+
| `Escape` | Interrupt teammate's current turn |
|
|
132
|
+
|
|
133
|
+
> **Tip:** Use `claude --teammate-mode in-process` for per-session display mode override. Configure permanently via `teammateMode` in settings.json.
|
|
134
|
+
|
|
135
|
+
### 5a. Plan Approval
|
|
136
|
+
|
|
137
|
+
When `CLAUDE_CODE_PLAN_MODE_REQUIRED` is `true` (current setting), teammates run in read-only plan mode until the lead approves their plan.
|
|
138
|
+
|
|
139
|
+
**Workflow:**
|
|
140
|
+
1. Teammate enters plan mode → creates an implementation plan
|
|
141
|
+
2. Lead receives `plan_approval_request` message with the plan
|
|
142
|
+
3. Lead reviews the plan and sends `plan_approval_response` (approve or reject)
|
|
143
|
+
4. On approval → teammate exits plan mode and implements
|
|
144
|
+
5. On rejection → teammate stays in plan mode, revises, resubmits
|
|
145
|
+
|
|
146
|
+
**Influencing plans:** Include criteria in the spawn `prompt` to shape what the lead should look for (e.g., "only approve plans that include test coverage", "reject plans that modify shared utilities without coordination").
|
|
147
|
+
|
|
148
|
+
### 6. Shutdown
|
|
149
|
+
|
|
150
|
+
When all tasks are complete:
|
|
151
|
+
|
|
152
|
+
1. Send `shutdown_request` to each teammate via `SendMessage`
|
|
153
|
+
2. Wait for confirmations
|
|
154
|
+
3. `TeamDelete` to remove team and task directories
|
|
155
|
+
4. Report results to the user
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Specialist Agent Types
|
|
160
|
+
|
|
161
|
+
Choose the agent whose domain matches the work. **Generalist is a last resort.**
|
|
162
|
+
|
|
163
|
+
| Agent Type | Domain | Capabilities |
|
|
164
|
+
|-----------|--------|-------------|
|
|
165
|
+
| `researcher` | Codebase & web research | Read-only |
|
|
166
|
+
| `test-writer` | Write test suites | Read + Write + Bash |
|
|
167
|
+
| `refactorer` | Safe code transformations | Read + Write + Bash |
|
|
168
|
+
| `doc-writer` | README, API docs, docstrings | Read + Write |
|
|
169
|
+
| `migrator` | Framework upgrades, version bumps | Read + Write + Bash |
|
|
170
|
+
| `security-auditor` | OWASP audit, secrets scan | Read-only |
|
|
171
|
+
| `git-archaeologist` | Git history investigation | Read-only + Bash |
|
|
172
|
+
| `dependency-analyst` | Outdated/vulnerable deps | Read-only + Bash |
|
|
173
|
+
| `spec-writer` | Requirements & acceptance criteria | Read-only |
|
|
174
|
+
| `perf-profiler` | Profiling & benchmarks | Read-only + Bash |
|
|
175
|
+
| `debug-logs` | Log analysis & diagnostics | Read-only + Bash |
|
|
176
|
+
| `architect` | Implementation planning | Read-only |
|
|
177
|
+
| `explorer` | Fast codebase search | Read-only |
|
|
178
|
+
| `generalist` | Multi-step tasks (last resort) | All tools |
|
|
179
|
+
| `bash-exec` | Command execution | Bash only |
|
|
180
|
+
|
|
181
|
+
Prefix with `agent-system:` when spawning (e.g., `agent-system:test-writer`).
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Use Cases
|
|
186
|
+
|
|
187
|
+
**Parallel code review** — split review criteria into independent domains (security, performance, test coverage). Each reviewer focuses on one lens, reducing blind spots.
|
|
188
|
+
|
|
189
|
+
**Competing hypotheses** — adversarial investigation where teammates explore different theories about a bug or design decision. Each builds evidence for their hypothesis; lead synthesizes findings.
|
|
190
|
+
|
|
191
|
+
**Cross-layer coordination** — frontend, backend, and tests each owned by a different teammate. Clear file ownership prevents conflicts; integration points are managed by the lead.
|
|
192
|
+
|
|
193
|
+
**Research sweep** — parallel investigation of libraries, APIs, or approaches. Each researcher covers one option; lead compares findings and makes the selection.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Team Composition Examples
|
|
198
|
+
|
|
199
|
+
| Purpose | Recommended Team |
|
|
200
|
+
|---------|-----------------|
|
|
201
|
+
| Feature build | `researcher` + `test-writer` + `doc-writer` |
|
|
202
|
+
| Security hardening | `security-auditor` + `dependency-analyst` |
|
|
203
|
+
| Codebase cleanup | `refactorer` + `test-writer` |
|
|
204
|
+
| Migration project | `researcher` + `migrator` |
|
|
205
|
+
| Performance work | `perf-profiler` + `refactorer` |
|
|
206
|
+
| Full-stack feature | `architect` + `generalist` (backend) + `generalist` (frontend) + `test-writer` |
|
|
207
|
+
| Code audit | `security-auditor` + `dependency-analyst` + `perf-profiler` |
|
|
208
|
+
| Documentation sprint | `researcher` + `doc-writer` |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Anti-Patterns
|
|
213
|
+
|
|
214
|
+
| Anti-Pattern | Why It Fails | Instead |
|
|
215
|
+
|-------------|-------------|---------|
|
|
216
|
+
| More than 5 teammates | Coordination overhead outweighs parallelism | Limit to 2–5, matching actual parallel workstreams |
|
|
217
|
+
| Same-file edits by two agents | Merge conflicts are unrecoverable | Assign file ownership — one agent per file |
|
|
218
|
+
| Sequential-only work | Team adds overhead with zero parallel benefit | Use a single agent |
|
|
219
|
+
| Generalist everywhere | Specialists carry domain knowledge and safety hooks | Pick the specialist whose domain matches |
|
|
220
|
+
| Empty spawn prompts | Teammates have no prior context | Include all requirements, file paths, conventions |
|
|
221
|
+
| Skipping shutdown | Orphaned agents consume resources | Always send `shutdown_request` + `TeamDelete` |
|
|
222
|
+
| Broadcasting for routine updates | Each broadcast = N messages (one per teammate) | Use direct `message` to specific teammates |
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Best Practices
|
|
227
|
+
|
|
228
|
+
- **Give teammates enough context** — they don't inherit conversation history. The spawn `prompt` must be self-contained: include file paths, requirements, constraints, and project conventions.
|
|
229
|
+
- **Size tasks appropriately** — too small = coordination overhead exceeds benefit; too large = work too long without check-ins. Aim for self-contained units producing clear deliverables, roughly 5-6 tasks per teammate.
|
|
230
|
+
- **Wait for teammates to finish** — leads sometimes start implementing work that teammates are handling. If you notice this, redirect yourself to monitoring and coordination.
|
|
231
|
+
- **Start with research and review** — for first-time team use, prefer tasks with clear boundaries that don't require code changes: reviewing PRs, researching libraries, investigating bugs.
|
|
232
|
+
- **Monitor and steer** — check progress via `TaskList`, redirect failing approaches, synthesize findings. Unattended teams risk wasted effort.
|
|
233
|
+
- **Avoid file conflicts** — break work so each teammate owns different files. Agents with `isolation: worktree` (test-writer, refactorer, doc-writer, migrator) get automatic file isolation via git worktrees.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Limitations
|
|
238
|
+
|
|
239
|
+
- **No session resumption** — `/resume` does not restore in-process teammates. Plan team work to complete in one session.
|
|
240
|
+
- **Task status can lag** — teammates sometimes fail to mark tasks complete. Use `TaskList` to verify and `SendMessage` to prompt updates.
|
|
241
|
+
- **One team per session** — clean up the current team (`TeamDelete`) before starting a new one.
|
|
242
|
+
- **No nested teams** — teammates cannot create teams (TeamCreate/TeamDelete are disallowed for team members).
|
|
243
|
+
- **Lead is fixed** — leadership cannot be promoted or transferred during a session.
|
|
244
|
+
- **Permissions set at spawn** — all teammates inherit the lead's permission mode at spawn time.
|
|
245
|
+
- **Split panes require tmux or iTerm2** — in-process mode uses the terminal; external split-pane workflows need tmux or iTerm2 with `it2` CLI.
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Tool Reference
|
|
250
|
+
|
|
251
|
+
| Tool | Purpose | Key Parameters |
|
|
252
|
+
|------|---------|---------------|
|
|
253
|
+
| `TeamCreate` | Create the team | `team_name`, `description` |
|
|
254
|
+
| `Task` | Spawn teammate into team | `team_name`, `subagent_type`, `name`, `prompt` |
|
|
255
|
+
| `TaskCreate` | Add task to shared list | `subject`, `description`, `activeForm` |
|
|
256
|
+
| `TaskUpdate` | Assign, depend, complete | `taskId`, `owner`, `status`, `addBlockedBy` |
|
|
257
|
+
| `TaskList` | View all tasks and status | (none) |
|
|
258
|
+
| `TaskGet` | Read full task details | `taskId` |
|
|
259
|
+
| `SendMessage` | Communicate with teammates | `type`, `recipient`, `content`, `summary` |
|
|
260
|
+
| `TeamDelete` | Clean up after completion | (none) |
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Ambiguity Policy
|
|
265
|
+
|
|
266
|
+
- If `$ARGUMENTS` is empty (no purpose provided), ask: "What should the team accomplish?"
|
|
267
|
+
- If the purpose maps to a single workstream with no parallelism, advise against a team and offer to do the work directly.
|
|
268
|
+
- If unsure which specialists to pick, present 2–3 composition options with trade-offs and let the user choose.
|
|
269
|
+
- If the purpose is vague ("make the app better"), ask for specifics before composing a team.
|
|
270
|
+
- If a teammate reports a blocker, attempt to resolve it yourself or reassign the task before escalating to the user.
|
|
271
|
+
- In immediate mode, default to the most natural team composition. If genuinely ambiguous, fall back to guidance mode and ask.
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: testing
|
|
3
3
|
description: >-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
Provides testing patterns for FastAPI endpoints and Svelte 5 components
|
|
5
|
+
using pytest and Vitest. USE WHEN the user asks to "write tests for a
|
|
6
|
+
FastAPI endpoint", "test a Svelte component", "set up pytest fixtures",
|
|
7
|
+
"configure Vitest for SvelteKit", "mock dependencies in tests", "test SSE
|
|
8
|
+
streaming endpoints", or works with pytest, httpx AsyncClient, Vitest,
|
|
9
|
+
@testing-library/svelte, MSW, pytest-anyio. DO NOT USE for general testing
|
|
10
|
+
theory unrelated to FastAPI or Svelte.
|
|
11
|
+
version: 0.2.0
|
|
12
|
+
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
|
|
13
|
+
argument-hint: "[file or module]"
|
|
11
14
|
---
|
|
12
15
|
|
|
13
16
|
# Testing (FastAPI + Svelte)
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# spec-workflow
|
|
2
|
+
|
|
3
|
+
Claude Code plugin that manages the full specification lifecycle: creating, refining, building, reviewing, updating, and auditing feature specs. Includes an advisory hook that reminds about spec updates when code changes but specs don't.
|
|
4
|
+
|
|
5
|
+
## What It Does
|
|
6
|
+
|
|
7
|
+
Two capabilities:
|
|
8
|
+
|
|
9
|
+
1. **Spec lifecycle skills** — 8 skills that cover the complete journey from bootstrapping a `.specs/` directory to closing out an as-built spec after implementation.
|
|
10
|
+
|
|
11
|
+
2. **Spec reminder hook** — A `Stop` hook that fires when source code was modified but no `.specs/` files were updated, advising Claude to run `/spec-update`.
|
|
12
|
+
|
|
13
|
+
### Skill Catalog
|
|
14
|
+
|
|
15
|
+
| Skill | Slash Command | Purpose |
|
|
16
|
+
|-------|---------------|---------|
|
|
17
|
+
| spec-init | `/spec-init` | Bootstrap `.specs/` directory with BACKLOG.md, MILESTONES.md, ROADMAP.md |
|
|
18
|
+
| spec-new | `/spec-new` | Create a new feature spec from EARS template |
|
|
19
|
+
| spec-refine | `/spec-refine` | Validate assumptions with user, upgrade requirements to `[user-approved]` |
|
|
20
|
+
| spec-build | `/spec-build` | Orchestrate full implementation: plan, build, review, close |
|
|
21
|
+
| spec-check | `/spec-check` | Audit all specs for health issues |
|
|
22
|
+
| spec-review | `/spec-review` | Verify implementation against a spec |
|
|
23
|
+
| spec-update | `/spec-update` | As-built closure: update spec to match implementation |
|
|
24
|
+
| specification-writing | `/skill specification-writing` | Domain knowledge for writing high-quality specs |
|
|
25
|
+
|
|
26
|
+
### Spec Lifecycle
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
/spec-init Bootstrap .specs/ directory
|
|
30
|
+
|
|
|
31
|
+
/spec-new Create feature spec (draft, [assumed] requirements)
|
|
32
|
+
|
|
|
33
|
+
/spec-refine Validate with user -> [user-approved] requirements
|
|
34
|
+
|
|
|
35
|
+
/spec-build 5-phase implementation orchestration:
|
|
36
|
+
| Phase 1: Discovery
|
|
37
|
+
| Phase 2: Planning
|
|
38
|
+
| Phase 3: Building ([ ] -> [~])
|
|
39
|
+
| Phase 4: Review ([~] -> [x])
|
|
40
|
+
| Phase 5: Closure (as-built update)
|
|
41
|
+
|
|
|
42
|
+
/spec-review Standalone verification (post-change audits)
|
|
43
|
+
|
|
|
44
|
+
/spec-update Manual as-built closure
|
|
45
|
+
|
|
|
46
|
+
/spec-check Health audit across all specs
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Acceptance Criteria Markers
|
|
50
|
+
|
|
51
|
+
| Marker | Meaning |
|
|
52
|
+
|--------|---------|
|
|
53
|
+
| `[ ]` | Not started |
|
|
54
|
+
| `[~]` | Implemented, not yet verified |
|
|
55
|
+
| `[x]` | Verified — tests pass, behavior confirmed |
|
|
56
|
+
|
|
57
|
+
### Approval and Requirement Tags
|
|
58
|
+
|
|
59
|
+
- `**Approval:** draft` — Spec is in draft, not ready for implementation
|
|
60
|
+
- `**Approval:** user-approved` — Spec reviewed and approved by user
|
|
61
|
+
- `[assumed]` — Requirement inferred by Claude, needs validation
|
|
62
|
+
- `[user-approved]` — Requirement explicitly approved by user
|
|
63
|
+
|
|
64
|
+
## How It Works
|
|
65
|
+
|
|
66
|
+
### Hook Lifecycle
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
Claude stops responding (Stop event)
|
|
70
|
+
|
|
|
71
|
+
+-> Stop fires
|
|
72
|
+
|
|
|
73
|
+
+-> spec-reminder.py
|
|
74
|
+
|
|
|
75
|
+
+-> .specs/ directory exists?
|
|
76
|
+
| |
|
|
77
|
+
| +-> No -> Silent exit (no output)
|
|
78
|
+
| +-> Yes -> Continue
|
|
79
|
+
|
|
|
80
|
+
+-> Source code modified this session?
|
|
81
|
+
| |
|
|
82
|
+
| +-> No -> Silent exit
|
|
83
|
+
| +-> Yes -> Continue
|
|
84
|
+
|
|
|
85
|
+
+-> .specs/ files also modified?
|
|
86
|
+
|
|
|
87
|
+
+-> Yes -> Silent exit (already updated)
|
|
88
|
+
+-> No -> Inject advisory: "Run /spec-update"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Monitored Source Directories
|
|
92
|
+
|
|
93
|
+
The spec reminder watches for changes in these directories:
|
|
94
|
+
|
|
95
|
+
`src/`, `lib/`, `app/`, `pkg/`, `internal/`, `cmd/`, `tests/`, `api/`, `frontend/`, `backend/`, `packages/`, `services/`, `components/`, `pages/`, `routes/`
|
|
96
|
+
|
|
97
|
+
### Exit Code Behavior
|
|
98
|
+
|
|
99
|
+
| Exit Code | Meaning |
|
|
100
|
+
|-----------|---------|
|
|
101
|
+
| 0 | Advisory injected (or silent — no action needed) |
|
|
102
|
+
|
|
103
|
+
The hook never blocks operations.
|
|
104
|
+
|
|
105
|
+
### Error Handling
|
|
106
|
+
|
|
107
|
+
| Scenario | Behavior |
|
|
108
|
+
|----------|----------|
|
|
109
|
+
| No `.specs/` directory | Silent exit |
|
|
110
|
+
| Not a git repository | Silent exit |
|
|
111
|
+
| JSON parse failure | Silent exit |
|
|
112
|
+
|
|
113
|
+
### Timeouts
|
|
114
|
+
|
|
115
|
+
| Hook | Timeout |
|
|
116
|
+
|------|---------|
|
|
117
|
+
| Spec reminder (Stop) | 8s |
|
|
118
|
+
|
|
119
|
+
## Installation
|
|
120
|
+
|
|
121
|
+
### CodeForge DevContainer
|
|
122
|
+
|
|
123
|
+
Pre-installed and activated automatically — no setup needed.
|
|
124
|
+
|
|
125
|
+
### From GitHub
|
|
126
|
+
|
|
127
|
+
Use this plugin in any Claude Code setup:
|
|
128
|
+
|
|
129
|
+
1. Clone the [CodeForge](https://github.com/AnExiledDev/CodeForge) repository:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
git clone https://github.com/AnExiledDev/CodeForge.git
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
2. Enable the plugin in your `.claude/settings.json`:
|
|
136
|
+
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"enabledPlugins": {
|
|
140
|
+
"spec-workflow@<clone-path>/.devcontainer/plugins/devs-marketplace": true
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Replace `<clone-path>` with the absolute path to your CodeForge clone.
|
|
146
|
+
|
|
147
|
+
## Plugin Structure
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
spec-workflow/
|
|
151
|
+
+-- .claude-plugin/
|
|
152
|
+
| +-- plugin.json # Plugin metadata
|
|
153
|
+
+-- hooks/
|
|
154
|
+
| +-- hooks.json # Stop hook registration
|
|
155
|
+
+-- scripts/
|
|
156
|
+
| +-- spec-reminder.py # Spec update advisory (Stop)
|
|
157
|
+
+-- skills/
|
|
158
|
+
| +-- spec-init/ # Bootstrap .specs/ directory
|
|
159
|
+
| | +-- SKILL.md
|
|
160
|
+
| | +-- references/
|
|
161
|
+
| | +-- backlog-template.md
|
|
162
|
+
| | +-- milestones-template.md
|
|
163
|
+
| | +-- roadmap-template.md
|
|
164
|
+
| +-- spec-new/ # Create new feature spec
|
|
165
|
+
| | +-- SKILL.md
|
|
166
|
+
| | +-- references/
|
|
167
|
+
| | +-- template.md
|
|
168
|
+
| +-- spec-refine/ # Validate assumptions with user
|
|
169
|
+
| | +-- SKILL.md
|
|
170
|
+
| +-- spec-build/ # Full implementation orchestration
|
|
171
|
+
| | +-- SKILL.md
|
|
172
|
+
| | +-- references/
|
|
173
|
+
| | +-- review-checklist.md
|
|
174
|
+
| +-- spec-check/ # Spec health audit
|
|
175
|
+
| | +-- SKILL.md
|
|
176
|
+
| +-- spec-review/ # Implementation verification
|
|
177
|
+
| | +-- SKILL.md
|
|
178
|
+
| +-- spec-update/ # As-built closure
|
|
179
|
+
| | +-- SKILL.md
|
|
180
|
+
| +-- specification-writing/ # Domain knowledge skill
|
|
181
|
+
| +-- SKILL.md
|
|
182
|
+
| +-- references/
|
|
183
|
+
| +-- criteria-patterns.md
|
|
184
|
+
| +-- ears-templates.md
|
|
185
|
+
+-- README.md # This file
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Requirements
|
|
189
|
+
|
|
190
|
+
- Python 3.11+
|
|
191
|
+
- Git (for detecting file changes)
|
|
192
|
+
- Claude Code with plugin hook support (skills)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Spec reminder advisory when code is modified but specs are not updated",
|
|
3
|
+
"hooks": {
|
|
4
|
+
"Stop": [
|
|
5
|
+
{
|
|
6
|
+
"hooks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "command",
|
|
9
|
+
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/spec-reminder.py",
|
|
10
|
+
"timeout": 8
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -9,7 +9,8 @@ Injects an advisory reminder as additionalContext pointing the user to
|
|
|
9
9
|
Only fires when a .specs/ directory exists (project uses the spec system).
|
|
10
10
|
|
|
11
11
|
Reads hook input from stdin (JSON). Returns JSON on stdout.
|
|
12
|
-
|
|
12
|
+
Blocks with decision/reason so Claude addresses the spec gap
|
|
13
|
+
before finishing. The stop_hook_active guard prevents infinite loops.
|
|
13
14
|
"""
|
|
14
15
|
|
|
15
16
|
import json
|
|
@@ -115,7 +116,7 @@ def main():
|
|
|
115
116
|
"or /spec-refine if the spec is still in draft status."
|
|
116
117
|
)
|
|
117
118
|
|
|
118
|
-
json.dump({"
|
|
119
|
+
json.dump({"decision": "block", "reason": message}, sys.stdout)
|
|
119
120
|
sys.exit(0)
|
|
120
121
|
|
|
121
122
|
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spec-build
|
|
3
3
|
description: >-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
Orchestrates full implementation of an approved specification through
|
|
5
|
+
5 phases: discovery, planning, building, review, and closure. USE WHEN
|
|
6
|
+
the user asks to "implement the spec", "build from spec", "start building
|
|
7
|
+
the feature", "implement this feature", "build what the spec describes",
|
|
8
|
+
"run spec-build", or works with phased implementation workflows.
|
|
9
|
+
DO NOT USE for creating, refining, or updating specs — use spec-new,
|
|
10
|
+
spec-refine, or spec-update instead.
|
|
11
|
+
version: 0.2.0
|
|
12
|
+
argument-hint: "[spec-path]"
|
|
10
13
|
---
|
|
11
14
|
|
|
12
15
|
# Spec-Driven Implementation
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spec-check
|
|
3
3
|
description: >-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
Audits all specifications in a project for health issues including stale
|
|
5
|
+
status, missing sections, unapproved drafts, and assumed requirements.
|
|
6
|
+
USE WHEN the user asks to "check spec health", "audit specs", "which
|
|
7
|
+
specs are stale", "find missing specs", "review spec quality",
|
|
8
|
+
"run spec-check", "are my specs up to date", or works with .specs/
|
|
9
|
+
directory maintenance and specification metadata.
|
|
10
|
+
DO NOT USE for single-spec code review or implementation verification
|
|
11
|
+
— use spec-review for deep code-level audits against one spec.
|
|
12
|
+
version: 0.2.0
|
|
13
|
+
argument-hint: "[domain or path]"
|
|
9
14
|
context: fork
|
|
10
15
|
agent: explorer
|
|
11
16
|
---
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spec-init
|
|
3
3
|
description: >-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
Bootstraps the .specs/ directory structure for a project, creating
|
|
5
|
+
MILESTONES.md and BACKLOG.md from starter templates so spec-new has
|
|
6
|
+
a home. USE WHEN the user asks to "initialize specs", "set up specs",
|
|
7
|
+
"bootstrap specs", "start using specs", "create spec directory",
|
|
8
|
+
"init specs for this project", "set up .specs", or works with first-
|
|
9
|
+
time specification setup and project onboarding.
|
|
10
|
+
DO NOT USE if .specs/ already exists — use spec-check to audit health
|
|
11
|
+
or spec-new to add individual specs.
|
|
8
12
|
version: 0.2.0
|
|
9
13
|
---
|
|
10
14
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Roadmap
|
|
2
|
+
|
|
3
|
+
> Features live in the priority-graded backlog until pulled into a version.
|
|
4
|
+
> Versions are scoped and spec'd when ready to build — not pre-assigned.
|
|
5
|
+
> See `BACKLOG.md` for the feature backlog.
|
|
6
|
+
|
|
7
|
+
## How Versioning Works
|
|
8
|
+
|
|
9
|
+
1. **Backlog** — All desired features live in `BACKLOG.md`, graded by priority.
|
|
10
|
+
2. **Version scoping** — When ready to start a new version, pull features from the backlog.
|
|
11
|
+
3. **Spec first** — Each feature in a version gets a spec before implementation begins.
|
|
12
|
+
4. **Ship** — Version is done when all its specs are implemented and verified.
|
|
13
|
+
|
|
14
|
+
Only the **next version** is defined in detail. Everything else is backlog.
|
|
15
|
+
|
|
16
|
+
## Released
|
|
17
|
+
|
|
18
|
+
_None yet._
|
|
19
|
+
|
|
20
|
+
## Current
|
|
21
|
+
|
|
22
|
+
### v0.1.0 — [Name] 🔧
|
|
23
|
+
|
|
24
|
+
- [ ] [Feature pulled from backlog]
|
|
25
|
+
- [ ] [Feature pulled from backlog]
|
|
26
|
+
|
|
27
|
+
## Next
|
|
28
|
+
|
|
29
|
+
> Scoped from `BACKLOG.md` when current version is complete.
|
|
30
|
+
|
|
31
|
+
## Out of Scope
|
|
32
|
+
|
|
33
|
+
- [Items explicitly not planned]
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spec-new
|
|
3
3
|
description: >-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
|
|
4
|
+
Creates a new feature specification from the standard EARS template
|
|
5
|
+
with domain inference, acceptance criteria, and requirement tagging.
|
|
6
|
+
USE WHEN the user asks to "create a spec", "new feature spec", "write
|
|
7
|
+
a spec for", "spec this feature", "start a new spec", "plan a feature",
|
|
8
|
+
"add a spec", or works with .specs/ directory and feature planning.
|
|
9
|
+
DO NOT USE for updating existing specs after implementation — use
|
|
10
|
+
spec-update instead. Not for refining draft specs — use spec-refine.
|
|
8
11
|
version: 0.2.0
|
|
12
|
+
argument-hint: "[feature-name] [domain]"
|
|
9
13
|
---
|
|
10
14
|
|
|
11
15
|
# Create New Feature Specification
|