codeforge-dev 1.13.0 → 1.14.2

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.
Files changed (148) hide show
  1. package/.devcontainer/CHANGELOG.md +146 -4
  2. package/.devcontainer/CLAUDE.md +61 -276
  3. package/.devcontainer/README.md +1 -1
  4. package/.devcontainer/config/defaults/ccstatusline-settings.json +147 -0
  5. package/.devcontainer/config/defaults/main-system-prompt.md +6 -1
  6. package/.devcontainer/config/defaults/rules/spec-workflow.md +1 -55
  7. package/.devcontainer/config/file-manifest.json +14 -0
  8. package/.devcontainer/devcontainer.json +19 -1
  9. package/.devcontainer/docs/optional-features.md +0 -65
  10. package/.devcontainer/docs/plugins.md +38 -23
  11. package/.devcontainer/features/ast-grep/devcontainer-feature.json +0 -1
  12. package/.devcontainer/features/biome/install.sh +13 -0
  13. package/.devcontainer/features/ccburn/devcontainer-feature.json +0 -6
  14. package/.devcontainer/features/ccms/devcontainer-feature.json +0 -1
  15. package/.devcontainer/features/ccms/install.sh +1 -1
  16. package/.devcontainer/features/ccstatusline/devcontainer-feature.json +0 -1
  17. package/.devcontainer/features/ccstatusline/install.sh +17 -115
  18. package/.devcontainer/features/ccusage/devcontainer-feature.json +0 -6
  19. package/.devcontainer/features/chromaterm/README.md +42 -0
  20. package/.devcontainer/features/chromaterm/chromaterm.yml +35 -0
  21. package/.devcontainer/features/chromaterm/devcontainer-feature.json +22 -0
  22. package/.devcontainer/features/chromaterm/install.sh +113 -0
  23. package/.devcontainer/features/claude-monitor/devcontainer-feature.json +0 -6
  24. package/.devcontainer/features/claude-session-dashboard/README.md +2 -2
  25. package/.devcontainer/features/claude-session-dashboard/devcontainer-feature.json +2 -4
  26. package/.devcontainer/features/claude-session-dashboard/install.sh +2 -2
  27. package/.devcontainer/features/kitty-terminfo/README.md +32 -0
  28. package/.devcontainer/features/kitty-terminfo/devcontainer-feature.json +13 -0
  29. package/.devcontainer/features/kitty-terminfo/install.sh +72 -0
  30. package/.devcontainer/features/lsp-servers/devcontainer-feature.json +0 -1
  31. package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +0 -7
  32. package/.devcontainer/features/shellcheck/install.sh +6 -2
  33. package/.devcontainer/features/tree-sitter/devcontainer-feature.json +0 -7
  34. package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +37 -69
  35. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/.claude-plugin/plugin.json +0 -1
  36. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/README.md +197 -0
  37. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/architect.md +3 -1
  38. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/bash-exec.md +3 -0
  39. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/claude-guide.md +4 -1
  40. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/debug-logs.md +6 -1
  41. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/dependency-analyst.md +5 -1
  42. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/doc-writer.md +4 -1
  43. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/explorer.md +3 -1
  44. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/generalist.md +9 -1
  45. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/git-archaeologist.md +3 -0
  46. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/migrator.md +4 -1
  47. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/perf-profiler.md +4 -1
  48. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/refactorer.md +5 -1
  49. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/researcher.md +5 -1
  50. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/security-auditor.md +4 -1
  51. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/spec-writer.md +3 -1
  52. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/statusline-config.md +4 -1
  53. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/test-writer.md +4 -1
  54. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/hooks/hooks.json +23 -1
  55. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/guard-readonly-bash.py +2 -2
  56. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/inject-cwd.py +7 -4
  57. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/task-completed-check.py +166 -0
  58. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/teammate-idle-check.py +81 -0
  59. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/verify-no-regression.py +14 -10
  60. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/verify-tests-pass.py +2 -14
  61. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/README.md +17 -31
  62. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/hooks/hooks.json +5 -1
  63. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/scripts/advisory-test-runner.py +9 -8
  64. package/.devcontainer/plugins/devs-marketplace/plugins/codeforge-lsp/README.md +28 -0
  65. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/README.md +28 -0
  66. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py +2 -2
  67. package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/README.md +28 -0
  68. package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/hooks/hooks.json +0 -1
  69. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/README.md +28 -0
  70. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected-bash.py +1 -1
  71. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +2 -2
  72. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/.claude-plugin/plugin.json +0 -1
  73. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/README.md +140 -0
  74. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/hooks/hooks.json +0 -1
  75. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/commit-reminder.py +3 -2
  76. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/git-state-injector.py +18 -2
  77. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/todo-harvester.py +9 -1
  78. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/.claude-plugin/plugin.json +0 -1
  79. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/README.md +158 -0
  80. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/hooks/hooks.json +1 -14
  81. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/scripts/skill-suggester.py +189 -100
  82. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/api-design/SKILL.md +9 -6
  83. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/ast-grep-patterns/SKILL.md +7 -6
  84. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/claude-agent-sdk/SKILL.md +8 -8
  85. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/claude-code-headless/SKILL.md +8 -9
  86. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/debugging/SKILL.md +11 -7
  87. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/dependency-management/SKILL.md +10 -6
  88. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/docker/SKILL.md +8 -8
  89. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/docker-py/SKILL.md +9 -7
  90. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/documentation-patterns/SKILL.md +7 -6
  91. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/fastapi/SKILL.md +9 -8
  92. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/git-forensics/SKILL.md +11 -9
  93. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/migration-patterns/SKILL.md +7 -6
  94. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/performance-profiling/SKILL.md +10 -8
  95. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/pydantic-ai/SKILL.md +8 -7
  96. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/refactoring-patterns/SKILL.md +9 -8
  97. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/security-checklist/SKILL.md +9 -8
  98. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/skill-building/SKILL.md +7 -7
  99. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/sqlite/SKILL.md +9 -7
  100. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/svelte5/SKILL.md +7 -8
  101. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/team/SKILL.md +71 -5
  102. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/testing/SKILL.md +10 -7
  103. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/.claude-plugin/plugin.json +0 -1
  104. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/README.md +192 -0
  105. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/hooks/hooks.json +0 -1
  106. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/scripts/spec-reminder.py +3 -2
  107. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-build/SKILL.md +9 -6
  108. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-check/SKILL.md +10 -5
  109. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-init/SKILL.md +8 -4
  110. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-new/SKILL.md +8 -4
  111. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-refine/SKILL.md +10 -7
  112. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-review/SKILL.md +10 -6
  113. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-update/SKILL.md +10 -5
  114. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/specification-writing/SKILL.md +9 -9
  115. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/plugin.json +1 -2
  116. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/README.md +28 -0
  117. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/hooks/hooks.json +0 -1
  118. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/scripts/ticket-linker.py +9 -1
  119. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/README.md +104 -32
  120. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/hooks/hooks.json +49 -3
  121. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/guard-workspace-scope.py +269 -56
  122. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/inject-workspace-cwd.py +44 -0
  123. package/.devcontainer/scripts/setup-aliases.sh +13 -5
  124. package/.devcontainer/scripts/setup-config.sh +1 -0
  125. package/README.md +5 -5
  126. package/package.json +6 -2
  127. package/setup.js +3 -2
  128. package/.devcontainer/.env +0 -33
  129. package/.devcontainer/features/README.md +0 -126
  130. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/.claude-plugin/plugin.json +0 -7
  131. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/README.md +0 -81
  132. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/hooks/hooks.json +0 -17
  133. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/__pycache__/format-on-stop.cpython-314.pyc +0 -0
  134. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/format-on-stop.py +0 -297
  135. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/.claude-plugin/plugin.json +0 -7
  136. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/README.md +0 -92
  137. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/hooks/hooks.json +0 -17
  138. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/__pycache__/lint-file.cpython-314.pyc +0 -0
  139. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/lint-file.py +0 -536
  140. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/__pycache__/block-dangerous.cpython-314.pyc +0 -0
  141. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/__pycache__/guard-protected.cpython-314.pyc +0 -0
  142. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/system-prompt.md +0 -184
  143. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/__pycache__/guard-workspace-scope.cpython-314.pyc +0 -0
  144. /package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/{.claude-plugin/commands/debug.md → skills/debug/SKILL.md} +0 -0
  145. /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272create-pr.md" → skills/ticketcreate-pr/SKILL.md} +0 -0
  146. /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272new.md" → skills/ticketnew/SKILL.md} +0 -0
  147. /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272review-commit.md" → skills/ticketreview-commit/SKILL.md} +0 -0
  148. /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,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)
@@ -3,7 +3,6 @@
3
3
  "hooks": {
4
4
  "Stop": [
5
5
  {
6
- "matcher": "",
7
6
  "hooks": [
8
7
  {
9
8
  "type": "command",
@@ -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
- Always exits 0 (advisory, never blocking).
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({"additionalContext": message}, sys.stdout)
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
- This skill should be used when the user asks to "implement the spec",
5
- "build from spec", "start building the feature", "spec-build",
6
- "implement this feature from the spec", "build what the spec describes",
7
- or needs to orchestrate full implementation of an approved specification
8
- through a phased workflow of planning, building, reviewing, and closing.
9
- version: 0.1.0
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
- This skill should be used when the user asks to "check spec status",
5
- "audit specs", "which specs are stale", "spec health", "find missing
6
- specs", "review spec quality", or needs a comprehensive audit of all
7
- specifications in the project.
8
- version: 0.1.0
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
- This skill should be used when the user asks to "initialize specs",
5
- "set up specs", "bootstrap specs", "start using specs", "create spec
6
- directory", "init specs for this project", or needs to set up the
7
- .specs/ directory structure for a project that doesn't have one yet.
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
 
@@ -1,11 +1,15 @@
1
1
  ---
2
2
  name: spec-new
3
3
  description: >-
4
- This skill should be used when the user asks to "create a spec",
5
- "new feature spec", "write a spec for", "spec this feature",
6
- "start a new spec", "plan a feature", or needs to create a new
7
- specification file from the standard template.
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
@@ -1,13 +1,16 @@
1
1
  ---
2
2
  name: spec-refine
3
3
  description: >-
4
- This skill should be used when the user asks to "refine a spec",
5
- "review spec assumptions", "validate spec decisions", "question the
6
- spec", "iterate on the spec", "check spec for assumptions", "approve
7
- the spec", "walk me through the spec", or needs iterative
8
- user-driven refinement of a specification through structured
9
- questioning rounds.
10
- version: 0.1.0
4
+ Guides iterative user-driven spec refinement through structured
5
+ questioning rounds that validate assumptions, tech decisions, and scope
6
+ boundaries. USE WHEN the user asks to "refine the spec", "review spec
7
+ assumptions", "validate spec decisions", "approve the spec", "walk me
8
+ through the spec", "check spec for assumptions", "iterate on the spec",
9
+ or works with [assumed] requirements needing user-approved upgrade.
10
+ DO NOT USE for creating new specs (use spec-new) or for post-
11
+ implementation updates (use spec-update).
12
+ version: 0.2.0
13
+ argument-hint: "[spec-path]"
11
14
  ---
12
15
 
13
16
  # Iterative Spec Refinement
@@ -1,12 +1,16 @@
1
1
  ---
2
2
  name: spec-review
3
3
  description: >-
4
- This skill should be used when the user asks to "review the spec",
5
- "check spec adherence", "verify implementation", "spec-review",
6
- "does code match spec", "audit implementation", or needs a standalone
7
- deep implementation review that reads the code and confirms full
8
- adherence to a specification.
9
- version: 0.1.0
4
+ Performs a standalone deep implementation review by reading code and
5
+ verifying full adherence to a specification's requirements and acceptance
6
+ criteria. USE WHEN the user asks to "review the spec", "verify
7
+ implementation", "does code match spec", "audit implementation",
8
+ "check spec adherence", "run spec-review", "regression check", or
9
+ works with post-implementation verification and pre-release audits.
10
+ DO NOT USE for batch metadata audits across all specs (use spec-check)
11
+ or for updating spec status after review (use spec-update).
12
+ version: 0.2.0
13
+ argument-hint: "[spec-path]"
10
14
  ---
11
15
 
12
16
  # Spec Implementation Review
@@ -1,11 +1,16 @@
1
1
  ---
2
2
  name: spec-update
3
3
  description: >-
4
- This skill should be used when the user asks to "update the spec",
5
- "mark spec as implemented", "as-built update", "spec maintenance",
6
- "update spec status", "finish the spec", or after implementing a
7
- feature when the spec needs to reflect what was actually built.
8
- version: 0.1.0
4
+ Performs the as-built spec update after implementation, closing the loop
5
+ between what was planned and what was built by setting status, checking
6
+ off acceptance criteria, and adding implementation notes. USE WHEN the
7
+ user asks to "update the spec", "mark spec as implemented", "as-built
8
+ update", "finish the spec", "close the spec", "update spec status",
9
+ "sync spec with code", or works with post-implementation documentation.
10
+ DO NOT USE for verifying code against a spec (use spec-review first)
11
+ or for creating new specs (use spec-new).
12
+ version: 0.2.0
13
+ argument-hint: "[spec-path]"
9
14
  ---
10
15
 
11
16
  # As-Built Spec Update
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  name: specification-writing
3
3
  description: >-
4
- This skill should be used when the user asks to "write a specification",
5
- "create requirements", "define acceptance criteria", "write user stories",
6
- "create a feature spec", "document requirements", "use EARS format",
7
- "write Given/When/Then scenarios", "define edge cases for a feature",
8
- "structure a product requirement document",
9
- or discusses requirement formats, EARS templates, Gherkin syntax,
10
- acceptance criteria patterns, specification structure,
11
- or completeness checklists for feature definitions.
12
- version: 0.1.0
4
+ Teaches EARS requirement formats, Given/When/Then acceptance criteria,
5
+ and structured specification patterns for feature definitions. USE WHEN
6
+ the user asks to "write requirements", "use EARS format", "define
7
+ acceptance criteria", "write Given/When/Then scenarios", "create a
8
+ feature spec", "structure requirements", "write user stories", or works
9
+ with Gherkin syntax, FR/NFR numbering, and completeness checklists.
10
+ DO NOT USE for managing the spec lifecycle (create, refine, build,
11
+ review, update) use the dedicated spec-* skills instead.
12
+ version: 0.2.0
13
13
  ---
14
14
 
15
15
  # Specification Writing
@@ -3,6 +3,5 @@
3
3
  "description": "EARS-based ticket workflow: create issues, plan implementation, review commits, create PRs",
4
4
  "author": {
5
5
  "name": "AnExiledDev"
6
- },
7
- "keywords": ["tickets", "github", "workflow", "ears", "issues", "pr"]
6
+ }
8
7
  }
@@ -74,6 +74,34 @@ Each ticket created by `/ticket:new` includes:
74
74
 
75
75
  The plugin injects a system prompt that defines the assistant persona, coding standards (SOLID, DRY, KISS, YAGNI), testing standards, and the ticket workflow rules. This ensures consistent behavior across all four commands.
76
76
 
77
+ ## Installation
78
+
79
+ ### CodeForge DevContainer
80
+
81
+ Pre-installed and activated automatically — no setup needed.
82
+
83
+ ### From GitHub
84
+
85
+ Use this plugin in any Claude Code setup:
86
+
87
+ 1. Clone the [CodeForge](https://github.com/AnExiledDev/CodeForge) repository:
88
+
89
+ ```bash
90
+ git clone https://github.com/AnExiledDev/CodeForge.git
91
+ ```
92
+
93
+ 2. Enable the plugin in your `.claude/settings.json`:
94
+
95
+ ```json
96
+ {
97
+ "enabledPlugins": {
98
+ "ticket-workflow@<clone-path>/.devcontainer/plugins/devs-marketplace": true
99
+ }
100
+ }
101
+ ```
102
+
103
+ Replace `<clone-path>` with the absolute path to your CodeForge clone.
104
+
77
105
  ## Plugin Structure
78
106
 
79
107
  ```
@@ -3,7 +3,6 @@
3
3
  "hooks": {
4
4
  "UserPromptSubmit": [
5
5
  {
6
- "matcher": "*",
7
6
  "hooks": [
8
7
  {
9
8
  "type": "command",
@@ -129,7 +129,15 @@ def main():
129
129
  if len(output) > TOTAL_OUTPUT_CAP:
130
130
  output = output[:TOTAL_OUTPUT_CAP] + "\n...(truncated)"
131
131
 
132
- json.dump({"additionalContext": output}, sys.stdout)
132
+ json.dump(
133
+ {
134
+ "hookSpecificOutput": {
135
+ "hookEventName": "UserPromptSubmit",
136
+ "additionalContext": output,
137
+ }
138
+ },
139
+ sys.stdout,
140
+ )
133
141
  sys.exit(0)
134
142
 
135
143