mindforge-cc 2.1.0 → 2.1.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 (236) hide show
  1. package/.agent/bin/lib/commands.cjs +959 -0
  2. package/.agent/bin/lib/config.cjs +421 -0
  3. package/.agent/bin/lib/core.cjs +1166 -0
  4. package/.agent/bin/lib/frontmatter.cjs +307 -0
  5. package/.agent/bin/lib/init.cjs +1336 -0
  6. package/.agent/bin/lib/milestone.cjs +252 -0
  7. package/.agent/bin/lib/model-profiles.cjs +68 -0
  8. package/.agent/bin/lib/phase.cjs +888 -0
  9. package/.agent/bin/lib/profile-output.cjs +952 -0
  10. package/.agent/bin/lib/profile-pipeline.cjs +539 -0
  11. package/.agent/bin/lib/roadmap.cjs +329 -0
  12. package/.agent/bin/lib/security.cjs +356 -0
  13. package/.agent/bin/lib/state.cjs +969 -0
  14. package/.agent/bin/lib/template.cjs +222 -0
  15. package/.agent/bin/lib/uat.cjs +189 -0
  16. package/.agent/bin/lib/verify.cjs +851 -0
  17. package/.agent/bin/lib/workstream.cjs +491 -0
  18. package/.agent/bin/mindforge-tools.cjs +897 -0
  19. package/.agent/file-manifest.json +219 -0
  20. package/.agent/hooks/mindforge-check-update.js +114 -0
  21. package/.agent/hooks/mindforge-context-monitor.js +156 -0
  22. package/.agent/hooks/mindforge-prompt-guard.js +96 -0
  23. package/.agent/hooks/mindforge-statusline.js +119 -0
  24. package/.agent/hooks/mindforge-workflow-guard.js +94 -0
  25. package/.agent/mindforge/discuss-phase.md +1 -1
  26. package/.agent/mindforge/help.md +1 -1
  27. package/.agent/mindforge/learn.md +3 -2
  28. package/.agent/mindforge/research.md +3 -2
  29. package/.agent/mindforge/steer.md +1 -1
  30. package/.agent/settings.json +38 -0
  31. package/.agent/skills/mindforge-add-backlog/SKILL.md +72 -0
  32. package/.agent/skills/mindforge-add-phase/SKILL.md +39 -0
  33. package/.agent/skills/mindforge-add-tests/SKILL.md +28 -0
  34. package/.agent/skills/mindforge-add-todo/SKILL.md +42 -0
  35. package/.agent/skills/mindforge-audit-milestone/SKILL.md +29 -0
  36. package/.agent/skills/mindforge-audit-uat/SKILL.md +20 -0
  37. package/.agent/skills/mindforge-autonomous/SKILL.md +33 -0
  38. package/.agent/skills/mindforge-check-todos/SKILL.md +40 -0
  39. package/.agent/skills/mindforge-cleanup/SKILL.md +19 -0
  40. package/.agent/skills/mindforge-complete-milestone/SKILL.md +131 -0
  41. package/.agent/skills/mindforge-debug/SKILL.md +163 -0
  42. package/.agent/skills/mindforge-discuss-phase/SKILL.md +54 -0
  43. package/.agent/skills/mindforge-do/SKILL.md +26 -0
  44. package/.agent/skills/mindforge-execute-phase/SKILL.md +49 -0
  45. package/.agent/skills/mindforge-fast/SKILL.md +23 -0
  46. package/.agent/skills/mindforge-forensics/SKILL.md +49 -0
  47. package/.agent/skills/mindforge-health/SKILL.md +17 -0
  48. package/.agent/skills/mindforge-help/SKILL.md +23 -0
  49. package/.agent/skills/mindforge-insert-phase/SKILL.md +28 -0
  50. package/.agent/skills/mindforge-join-discord/SKILL.md +19 -0
  51. package/.agent/skills/mindforge-list-phase-assumptions/SKILL.md +41 -0
  52. package/.agent/skills/mindforge-list-workspaces/SKILL.md +17 -0
  53. package/.agent/skills/mindforge-manager/SKILL.md +32 -0
  54. package/.agent/skills/mindforge-map-codebase/SKILL.md +64 -0
  55. package/.agent/skills/mindforge-milestone-summary/SKILL.md +44 -0
  56. package/.agent/skills/mindforge-new-milestone/SKILL.md +38 -0
  57. package/.agent/skills/mindforge-new-project/SKILL.md +36 -0
  58. package/.agent/skills/mindforge-new-workspace/SKILL.md +39 -0
  59. package/.agent/skills/mindforge-next/SKILL.md +19 -0
  60. package/.agent/skills/mindforge-note/SKILL.md +29 -0
  61. package/.agent/skills/mindforge-pause-work/SKILL.md +35 -0
  62. package/.agent/skills/mindforge-plan-milestone-gaps/SKILL.md +28 -0
  63. package/.agent/skills/mindforge-plan-phase/SKILL.md +37 -0
  64. package/.agent/skills/mindforge-plant-seed/SKILL.md +22 -0
  65. package/.agent/skills/mindforge-pr-branch/SKILL.md +21 -0
  66. package/.agent/skills/mindforge-profile-user/SKILL.md +38 -0
  67. package/.agent/skills/mindforge-progress/SKILL.md +19 -0
  68. package/.agent/skills/mindforge-quick/SKILL.md +38 -0
  69. package/.agent/skills/mindforge-reapply-patches/SKILL.md +124 -0
  70. package/.agent/skills/mindforge-remove-phase/SKILL.md +26 -0
  71. package/.agent/skills/mindforge-remove-workspace/SKILL.md +22 -0
  72. package/.agent/skills/mindforge-research-phase/SKILL.md +186 -0
  73. package/.agent/skills/mindforge-resume-work/SKILL.md +35 -0
  74. package/.agent/skills/mindforge-review/SKILL.md +31 -0
  75. package/.agent/skills/mindforge-review-backlog/SKILL.md +58 -0
  76. package/.agent/skills/mindforge-session-report/SKILL.md +16 -0
  77. package/.agent/skills/mindforge-set-profile/SKILL.md +9 -0
  78. package/.agent/skills/mindforge-settings/SKILL.md +32 -0
  79. package/.agent/skills/mindforge-ship/SKILL.md +16 -0
  80. package/.agent/skills/mindforge-stats/SKILL.md +16 -0
  81. package/.agent/skills/mindforge-thread/SKILL.md +123 -0
  82. package/.agent/skills/mindforge-ui-phase/SKILL.md +24 -0
  83. package/.agent/skills/mindforge-ui-review/SKILL.md +24 -0
  84. package/.agent/skills/mindforge-update/SKILL.md +35 -0
  85. package/.agent/skills/mindforge-validate-phase/SKILL.md +26 -0
  86. package/.agent/skills/mindforge-verify-work/SKILL.md +30 -0
  87. package/.agent/skills/mindforge-workstreams/SKILL.md +65 -0
  88. package/.agent/workflows/mindforge-add-phase.md +112 -0
  89. package/.agent/workflows/mindforge-add-tests.md +351 -0
  90. package/.agent/workflows/mindforge-add-todo.md +158 -0
  91. package/.agent/workflows/mindforge-audit-milestone.md +332 -0
  92. package/.agent/workflows/mindforge-audit-uat.md +109 -0
  93. package/.agent/workflows/mindforge-autonomous.md +815 -0
  94. package/.agent/workflows/mindforge-check-todos.md +177 -0
  95. package/.agent/workflows/mindforge-cleanup.md +152 -0
  96. package/.agent/workflows/mindforge-complete-milestone.md +766 -0
  97. package/.agent/workflows/mindforge-diagnose-issues.md +220 -0
  98. package/.agent/workflows/mindforge-discovery-phase.md +289 -0
  99. package/.agent/workflows/mindforge-discuss-phase-assumptions.md +645 -0
  100. package/.agent/workflows/mindforge-discuss-phase.md +1047 -0
  101. package/.agent/workflows/mindforge-do.md +104 -0
  102. package/.agent/workflows/mindforge-execute-phase.md +838 -0
  103. package/.agent/workflows/mindforge-execute-plan.md +509 -0
  104. package/.agent/workflows/mindforge-fast.md +105 -0
  105. package/.agent/workflows/mindforge-forensics.md +265 -0
  106. package/.agent/workflows/mindforge-health.md +181 -0
  107. package/.agent/workflows/mindforge-help.md +606 -0
  108. package/.agent/workflows/mindforge-insert-phase.md +130 -0
  109. package/.agent/workflows/mindforge-list-phase-assumptions.md +178 -0
  110. package/.agent/workflows/mindforge-list-workspaces.md +56 -0
  111. package/.agent/workflows/mindforge-manager.md +360 -0
  112. package/.agent/workflows/mindforge-map-codebase.md +370 -0
  113. package/.agent/workflows/mindforge-milestone-summary.md +223 -0
  114. package/.agent/workflows/mindforge-new-milestone.md +469 -0
  115. package/.agent/workflows/mindforge-new-project.md +1226 -0
  116. package/.agent/workflows/mindforge-new-workspace.md +237 -0
  117. package/.agent/workflows/mindforge-next.md +97 -0
  118. package/.agent/workflows/mindforge-node-repair.md +92 -0
  119. package/.agent/workflows/mindforge-note.md +156 -0
  120. package/.agent/workflows/mindforge-pause-work.md +176 -0
  121. package/.agent/workflows/mindforge-plan-milestone-gaps.md +273 -0
  122. package/.agent/workflows/mindforge-plan-phase.md +848 -0
  123. package/.agent/workflows/mindforge-plant-seed.md +169 -0
  124. package/.agent/workflows/mindforge-pr-branch.md +129 -0
  125. package/.agent/workflows/mindforge-profile-user.md +450 -0
  126. package/.agent/workflows/mindforge-progress.md +507 -0
  127. package/.agent/workflows/mindforge-quick.md +732 -0
  128. package/.agent/workflows/mindforge-remove-phase.md +155 -0
  129. package/.agent/workflows/mindforge-remove-workspace.md +90 -0
  130. package/.agent/workflows/mindforge-research-phase.md +74 -0
  131. package/.agent/workflows/mindforge-resume-project.md +325 -0
  132. package/.agent/workflows/mindforge-review.md +228 -0
  133. package/.agent/workflows/mindforge-session-report.md +146 -0
  134. package/.agent/workflows/mindforge-settings.md +283 -0
  135. package/.agent/workflows/mindforge-ship.md +228 -0
  136. package/.agent/workflows/mindforge-stats.md +60 -0
  137. package/.agent/workflows/mindforge-transition.md +671 -0
  138. package/.agent/workflows/mindforge-ui-phase.md +290 -0
  139. package/.agent/workflows/mindforge-ui-review.md +157 -0
  140. package/.agent/workflows/mindforge-update.md +323 -0
  141. package/.agent/workflows/mindforge-validate-phase.md +167 -0
  142. package/.agent/workflows/mindforge-verify-phase.md +254 -0
  143. package/.agent/workflows/mindforge-verify-work.md +623 -0
  144. package/.mindforge/personas/advisor-researcher.md +3 -3
  145. package/.mindforge/personas/debug-specialist.md +1 -1
  146. package/.mindforge/personas/debugger.md +1 -1
  147. package/.mindforge/personas/developer.md +1 -1
  148. package/.mindforge/personas/phase-researcher.md +4 -4
  149. package/.mindforge/personas/project-researcher.md +3 -3
  150. package/.mindforge/personas/research-agent.md +4 -3
  151. package/.mindforge/personas/tech-writer.md +1 -1
  152. package/.mindforge/personas/ui-researcher.md +1 -1
  153. package/.planning/ROADMAP.md +10 -0
  154. package/CHANGELOG.md +34 -0
  155. package/README.md +70 -45
  156. package/RELEASENOTES.md +26 -26
  157. package/bin/install.js +41 -41
  158. package/bin/installer-core.js +67 -26
  159. package/bin/wizard/setup-wizard.js +11 -24
  160. package/bin/wizard/theme.js +141 -0
  161. package/docs/PERSONAS.md +119 -87
  162. package/docs/References/checkpoints.md +778 -0
  163. package/docs/References/config-reference.md +81 -0
  164. package/docs/References/continuation-format.md +249 -0
  165. package/docs/References/decimal-phase-calculation.md +64 -0
  166. package/docs/References/git-integration.md +295 -0
  167. package/docs/References/git-planning-commit.md +38 -0
  168. package/docs/References/model-profile-resolution.md +36 -0
  169. package/docs/References/model-profiles.md +139 -0
  170. package/docs/References/phase-argument-parsing.md +61 -0
  171. package/docs/References/planning-config.md +202 -0
  172. package/docs/References/questioning.md +162 -0
  173. package/docs/References/tdd.md +263 -0
  174. package/docs/References/ui-brand.md +160 -0
  175. package/docs/References/user-profiling.md +681 -0
  176. package/docs/References/verification-patterns.md +612 -0
  177. package/docs/References/workstream-flag.md +58 -0
  178. package/docs/Templates/Agents/CLAUDE-MD.md +122 -0
  179. package/docs/Templates/Agents/COPILOT-INSTRUCTIONS.md +7 -0
  180. package/docs/Templates/Agents/DEBUGGER-PROMPT.md +91 -0
  181. package/docs/Templates/Agents/PLANNER-PROMPT.md +117 -0
  182. package/docs/Templates/Codebase/architecture.md +255 -0
  183. package/docs/Templates/Codebase/concerns.md +310 -0
  184. package/docs/Templates/Codebase/conventions.md +307 -0
  185. package/docs/Templates/Codebase/integrations.md +280 -0
  186. package/docs/Templates/Codebase/stack.md +186 -0
  187. package/docs/Templates/Codebase/structure.md +285 -0
  188. package/docs/Templates/Codebase/testing.md +480 -0
  189. package/docs/Templates/Execution/CONTINUE-HERE.md +78 -0
  190. package/docs/Templates/Execution/DISCUSSION-LOG.md +63 -0
  191. package/docs/Templates/Execution/PHASE-PROMPT.md +610 -0
  192. package/docs/Templates/Execution/STATE.md +176 -0
  193. package/docs/Templates/Execution/SUMMARY-COMPLEX.md +59 -0
  194. package/docs/Templates/Execution/SUMMARY-MINIMAL.md +41 -0
  195. package/docs/Templates/Execution/SUMMARY-STANDARD.md +48 -0
  196. package/docs/Templates/Execution/SUMMARY.md +248 -0
  197. package/docs/Templates/Profile/DEV-PREFERENCES.md +21 -0
  198. package/docs/Templates/Profile/USER-PROFILE.md +146 -0
  199. package/docs/Templates/Profile/USER-SETUP.md +311 -0
  200. package/docs/Templates/Project/DISCOVERY.md +146 -0
  201. package/docs/Templates/Project/MILESTONE-ARCHIVE.md +123 -0
  202. package/docs/Templates/Project/MILESTONE.md +115 -0
  203. package/docs/Templates/Project/PROJECT.md +206 -0
  204. package/docs/Templates/Project/REQUIREMENTS.md +231 -0
  205. package/docs/Templates/Project/RETROSPECTIVE.md +54 -0
  206. package/docs/Templates/Project/ROADMAP.md +202 -0
  207. package/docs/Templates/Quality/DEBUG.md +164 -0
  208. package/docs/Templates/Quality/UAT.md +280 -0
  209. package/docs/Templates/Quality/UI-SPEC.md +100 -0
  210. package/docs/Templates/Quality/VALIDATION.md +76 -0
  211. package/docs/Templates/Quality/VERIFICATION-REPORT.md +322 -0
  212. package/docs/Templates/Research/ARCHITECTURE.md +204 -0
  213. package/docs/Templates/Research/FEATURES.md +147 -0
  214. package/docs/Templates/Research/PITFALLS.md +200 -0
  215. package/docs/Templates/Research/STACK.md +120 -0
  216. package/docs/Templates/Research/SUMMARY.md +170 -0
  217. package/docs/Templates/System/CONFIG.json +43 -0
  218. package/docs/Templates/System/CONTEXT.md +352 -0
  219. package/docs/architecture/README.md +54 -42
  220. package/docs/commands-reference.md +62 -14
  221. package/docs/getting-started.md +26 -18
  222. package/docs/skills-authoring-guide.md +40 -12
  223. package/docs/tutorial.md +83 -116
  224. package/docs/user-guide.md +72 -198
  225. package/package.json +7 -2
  226. package/.mindforge/memory/knowledge-base.jsonl +0 -7
  227. package/.mindforge/memory/pattern-library.jsonl +0 -1
  228. package/.mindforge/memory/team-preferences.jsonl +0 -4
  229. package/.planning/browser-daemon.log +0 -32
  230. package/docs/mindforge-md-reference.md +0 -57
  231. package/docs/reference/config-reference.md +0 -64
  232. /package/{.mindforge/memory/decision-library.jsonl → .planning/phases/01-migrate-gsd-to-mindforge/.gitkeep} +0 -0
  233. /package/docs/{reference → References}/audit-events.md +0 -0
  234. /package/docs/{reference → References}/commands.md +0 -0
  235. /package/docs/{reference → References}/sdk-api.md +0 -0
  236. /package/docs/{reference → References}/skills-api.md +0 -0
@@ -0,0 +1,119 @@
1
+ #!/usr/bin/env node
2
+ // mindforge-hook-version: 1.28.0
3
+ // Claude Code Statusline - MindForge Edition
4
+ // Shows: model | current task | directory | context usage
5
+
6
+ const fs = require('fs');
7
+ const path = require('path');
8
+ const os = require('os');
9
+
10
+ // Read JSON from stdin
11
+ let input = '';
12
+ // Timeout guard: if stdin doesn't close within 3s (e.g. pipe issues on
13
+ // Windows/Git Bash), exit silently instead of hanging. See #775.
14
+ const stdinTimeout = setTimeout(() => process.exit(0), 3000);
15
+ process.stdin.setEncoding('utf8');
16
+ process.stdin.on('data', chunk => input += chunk);
17
+ process.stdin.on('end', () => {
18
+ clearTimeout(stdinTimeout);
19
+ try {
20
+ const data = JSON.parse(input);
21
+ const model = data.model?.display_name || 'Claude';
22
+ const dir = data.workspace?.current_dir || process.cwd();
23
+ const session = data.session_id || '';
24
+ const remaining = data.context_window?.remaining_percentage;
25
+
26
+ // Context window display (shows USED percentage scaled to usable context)
27
+ // Claude Code reserves ~16.5% for autocompact buffer, so usable context
28
+ // is 83.5% of the total window. We normalize to show 100% at that point.
29
+ const AUTO_COMPACT_BUFFER_PCT = 16.5;
30
+ let ctx = '';
31
+ if (remaining != null) {
32
+ // Normalize: subtract buffer from remaining, scale to usable range
33
+ const usableRemaining = Math.max(0, ((remaining - AUTO_COMPACT_BUFFER_PCT) / (100 - AUTO_COMPACT_BUFFER_PCT)) * 100);
34
+ const used = Math.max(0, Math.min(100, Math.round(100 - usableRemaining)));
35
+
36
+ // Write context metrics to bridge file for the context-monitor PostToolUse hook.
37
+ // The monitor reads this file to inject agent-facing warnings when context is low.
38
+ if (session) {
39
+ try {
40
+ const bridgePath = path.join(os.tmpdir(), `claude-ctx-${session}.json`);
41
+ const bridgeData = JSON.stringify({
42
+ session_id: session,
43
+ remaining_percentage: remaining,
44
+ used_pct: used,
45
+ timestamp: Math.floor(Date.now() / 1000)
46
+ });
47
+ fs.writeFileSync(bridgePath, bridgeData);
48
+ } catch (e) {
49
+ // Silent fail -- bridge is best-effort, don't break statusline
50
+ }
51
+ }
52
+
53
+ // Build progress bar (10 segments)
54
+ const filled = Math.floor(used / 10);
55
+ const bar = '█'.repeat(filled) + '░'.repeat(10 - filled);
56
+
57
+ // Color based on usable context thresholds
58
+ if (used < 50) {
59
+ ctx = ` \x1b[32m${bar} ${used}%\x1b[0m`;
60
+ } else if (used < 65) {
61
+ ctx = ` \x1b[33m${bar} ${used}%\x1b[0m`;
62
+ } else if (used < 80) {
63
+ ctx = ` \x1b[38;5;208m${bar} ${used}%\x1b[0m`;
64
+ } else {
65
+ ctx = ` \x1b[5;31m💀 ${bar} ${used}%\x1b[0m`;
66
+ }
67
+ }
68
+
69
+ // Current task from todos
70
+ let task = '';
71
+ const homeDir = os.homedir();
72
+ // Respect CLAUDE_CONFIG_DIR for custom config directory setups (#870)
73
+ const claudeDir = process.env.CLAUDE_CONFIG_DIR || path.join(homeDir, '.agent');
74
+ const todosDir = path.join(claudeDir, 'todos');
75
+ if (session && fs.existsSync(todosDir)) {
76
+ try {
77
+ const files = fs.readdirSync(todosDir)
78
+ .filter(f => f.startsWith(session) && f.includes('-agent-') && f.endsWith('.json'))
79
+ .map(f => ({ name: f, mtime: fs.statSync(path.join(todosDir, f)).mtime }))
80
+ .sort((a, b) => b.mtime - a.mtime);
81
+
82
+ if (files.length > 0) {
83
+ try {
84
+ const todos = JSON.parse(fs.readFileSync(path.join(todosDir, files[0].name), 'utf8'));
85
+ const inProgress = todos.find(t => t.status === 'in_progress');
86
+ if (inProgress) task = inProgress.activeForm || '';
87
+ } catch (e) {}
88
+ }
89
+ } catch (e) {
90
+ // Silently fail on file system errors - don't break statusline
91
+ }
92
+ }
93
+
94
+ // MindForge update available?
95
+ let mindforgeUpdate = '';
96
+ const cacheFile = path.join(claudeDir, 'cache', 'mindforge-update-check.json');
97
+ if (fs.existsSync(cacheFile)) {
98
+ try {
99
+ const cache = JSON.parse(fs.readFileSync(cacheFile, 'utf8'));
100
+ if (cache.update_available) {
101
+ mindforgeUpdate = '\x1b[33m⬆ /mindforge:update\x1b[0m │ ';
102
+ }
103
+ if (cache.stale_hooks && cache.stale_hooks.length > 0) {
104
+ mindforgeUpdate += '\x1b[31m⚠ stale hooks — run /mindforge:update\x1b[0m │ ';
105
+ }
106
+ } catch (e) {}
107
+ }
108
+
109
+ // Output
110
+ const dirname = path.basename(dir);
111
+ if (task) {
112
+ process.stdout.write(`${mindforgeUpdate}\x1b[2m${model}\x1b[0m │ \x1b[1m${task}\x1b[0m │ \x1b[2m${dirname}\x1b[0m${ctx}`);
113
+ } else {
114
+ process.stdout.write(`${mindforgeUpdate}\x1b[2m${model}\x1b[0m │ \x1b[2m${dirname}\x1b[0m${ctx}`);
115
+ }
116
+ } catch (e) {
117
+ // Silent fail - don't break statusline on parse errors
118
+ }
119
+ });
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env node
2
+ // mindforge-hook-version: 1.28.0
3
+ // MindForge Workflow Guard — PreToolUse hook
4
+ // Detects when Claude attempts file edits outside a MindForge workflow context
5
+ // (no active /mindforge: command or Task subagent) and injects an advisory warning.
6
+ //
7
+ // This is a SOFT guard — it advises, not blocks. The edit still proceeds.
8
+ // The warning nudges Claude to use /mindforge:quick or /mindforge:fast instead of
9
+ // making direct edits that bypass state tracking.
10
+ //
11
+ // Enable via config: hooks.workflow_guard: true (default: false)
12
+ // Only triggers on Write/Edit tool calls to non-.planning/ files.
13
+
14
+ const fs = require('fs');
15
+ const path = require('path');
16
+
17
+ let input = '';
18
+ const stdinTimeout = setTimeout(() => process.exit(0), 3000);
19
+ process.stdin.setEncoding('utf8');
20
+ process.stdin.on('data', chunk => input += chunk);
21
+ process.stdin.on('end', () => {
22
+ clearTimeout(stdinTimeout);
23
+ try {
24
+ const data = JSON.parse(input);
25
+ const toolName = data.tool_name;
26
+
27
+ // Only guard Write and Edit tool calls
28
+ if (toolName !== 'Write' && toolName !== 'Edit') {
29
+ process.exit(0);
30
+ }
31
+
32
+ // Check if we're inside a MindForge workflow (Task subagent or /mindforge: command)
33
+ // Subagents have a session_id that differs from the parent
34
+ // and typically have a description field set by the orchestrator
35
+ if (data.tool_input?.is_subagent || data.session_type === 'task') {
36
+ process.exit(0);
37
+ }
38
+
39
+ // Check the file being edited
40
+ const filePath = data.tool_input?.file_path || data.tool_input?.path || '';
41
+
42
+ // Allow edits to .planning/ files (MindForge state management)
43
+ if (filePath.includes('.planning/') || filePath.includes('.planning\\')) {
44
+ process.exit(0);
45
+ }
46
+
47
+ // Allow edits to common config/docs files that don't need MindForge tracking
48
+ const allowedPatterns = [
49
+ /\.gitignore$/,
50
+ /\.env/,
51
+ /CLAUDE\.md$/,
52
+ /AGENTS\.md$/,
53
+ /GEMINI\.md$/,
54
+ /settings\.json$/,
55
+ ];
56
+ if (allowedPatterns.some(p => p.test(filePath))) {
57
+ process.exit(0);
58
+ }
59
+
60
+ // Check if workflow guard is enabled
61
+ const cwd = data.cwd || process.cwd();
62
+ const configPath = path.join(cwd, '.planning', 'config.json');
63
+ if (fs.existsSync(configPath)) {
64
+ try {
65
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
66
+ if (!config.hooks?.workflow_guard) {
67
+ process.exit(0); // Guard disabled (default)
68
+ }
69
+ } catch (e) {
70
+ process.exit(0);
71
+ }
72
+ } else {
73
+ process.exit(0); // No MindForge project — don't guard
74
+ }
75
+
76
+ // If we get here: MindForge project, guard enabled, file edit outside .planning/,
77
+ // not in a subagent context. Inject advisory warning.
78
+ const output = {
79
+ hookSpecificOutput: {
80
+ hookEventName: "PreToolUse",
81
+ additionalContext: `⚠️ WORKFLOW ADVISORY: You're editing ${path.basename(filePath)} directly without a MindForge command. ` +
82
+ 'This edit will not be tracked in STATE.md or produce a SUMMARY.md. ' +
83
+ 'Consider using /mindforge:fast for trivial fixes or /mindforge:quick for larger changes ' +
84
+ 'to maintain project state tracking. ' +
85
+ 'If this is intentional (e.g., user explicitly asked for a direct edit), proceed normally.'
86
+ }
87
+ };
88
+
89
+ process.stdout.write(JSON.stringify(output));
90
+ } catch (e) {
91
+ // Silent fail — never block tool execution
92
+ process.exit(0);
93
+ }
94
+ });
@@ -58,7 +58,7 @@ Do not batch questions (unless `--batch` flag is provided).
58
58
  5. "Data retention requirements? When can records be deleted?"
59
59
 
60
60
  ### Integration phases — ask about:
61
- 1. "Have you already chosen the third-party service / API? If so, which?"
61
+ 1. "Have you already chosen the third-party service / API? If so, which? (I will query Context7 for current docs if available)"
62
62
  2. "What should happen if the third-party service is down? Queue / fail / fallback?"
63
63
  3. "Webhooks or polling for receiving updates?"
64
64
  4. "Any rate limits you know about on their end?"
@@ -20,4 +20,4 @@ If `.planning/PROJECT.md` is missing, treat the project as "Not initialised".
20
20
  "Next step: [read STATE.md next action]"
21
21
 
22
22
  5. If CLAUDE.md has not been read this session, remind the user to ensure
23
- it is loaded as the agent's system context.
23
+ it is loaded as MindForge's system context.
@@ -37,10 +37,11 @@ load automatically whenever relevant work begins.
37
37
  ### Learn from npm package docs
38
38
  ```
39
39
  /mindforge:learn npm:zod
40
+ /mindforge:learn context7:zod
40
41
  /mindforge:learn npm:drizzle-orm
41
- /mindforge:learn npm:@tanstack/react-query
42
+ /mindforge:learn context7:drizzle-orm
42
43
  ```
43
- → Fetches README from npm registry
44
+ → Fetches README from npm registry or real-time docs from Context7
44
45
  → Extracts patterns from the package documentation
45
46
 
46
47
  ### Learn from current session
@@ -3,9 +3,10 @@
3
3
 
4
4
  ## Purpose
5
5
  Deep research using Gemini 1.5 Pro's 1-million-token context window.
6
- Incorporate local code context and remote documentation simultaneously.
6
+ Uses **Context7 MCP** as the primary engine for real-time documentation and code example retrieval.
7
7
 
8
8
  ## Capabilities
9
- - Ingest full library documentation.
9
+ - Ingest full library documentation via Context7.
10
10
  - Codebase-wide architectural analysis.
11
11
  - Regulatory compliance audits.
12
+ - Real-time resolution of version-specific API contracts.
@@ -1,7 +1,7 @@
1
1
  # /mindforge:steer "[instruction]"
2
2
 
3
3
  **Purpose**: Injects mid-execution guidance into the running autonomous engine.
4
- Steering guidance is applied at the next task boundary to course-correct the agent.
4
+ Steering guidance is applied at the next task boundary to course-correct MindForge.
5
5
 
6
6
  ## Usage
7
7
  - `/mindforge:steer "Use the new logger in all created files"`
@@ -0,0 +1,38 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "hooks": [
6
+ {
7
+ "type": "command",
8
+ "command": "node .agent/hooks/mindforge-check-update.js"
9
+ }
10
+ ]
11
+ }
12
+ ],
13
+ "AfterTool": [
14
+ {
15
+ "matcher": "Bash|Edit|Write|MultiEdit|Agent|Task",
16
+ "hooks": [
17
+ {
18
+ "type": "command",
19
+ "command": "node .agent/hooks/mindforge-context-monitor.js",
20
+ "timeout": 10
21
+ }
22
+ ]
23
+ }
24
+ ],
25
+ "BeforeTool": [
26
+ {
27
+ "matcher": "Write|Edit",
28
+ "hooks": [
29
+ {
30
+ "type": "command",
31
+ "command": "node .agent/hooks/mindforge-prompt-guard.js",
32
+ "timeout": 5
33
+ }
34
+ ]
35
+ }
36
+ ]
37
+ }
38
+ }
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: mindforge-add-backlog
3
+ description: Add an idea to the backlog parking lot (999.x numbering)
4
+ ---
5
+
6
+
7
+ <objective>
8
+ Add a backlog item to the roadmap using 999.x numbering. Backlog items are
9
+ unsequenced ideas that aren't ready for active planning — they live outside
10
+ the normal phase sequence and accumulate context over time.
11
+ </objective>
12
+
13
+ <process>
14
+
15
+ 1. **Read ROADMAP.md** to find existing backlog entries:
16
+ ```bash
17
+ cat .planning/ROADMAP.md
18
+ ```
19
+
20
+ 2. **Find next backlog number:**
21
+ ```bash
22
+ NEXT=$(node ".agent/bin/mindforge-tools.cjs" phase next-decimal 999 --raw)
23
+ ```
24
+ If no 999.x phases exist, start at 999.1.
25
+
26
+ 3. **Create the phase directory:**
27
+ ```bash
28
+ SLUG=$(node ".agent/bin/mindforge-tools.cjs" generate-slug "$ARGUMENTS")
29
+ mkdir -p ".planning/phases/${NEXT}-${SLUG}"
30
+ touch ".planning/phases/${NEXT}-${SLUG}/.gitkeep"
31
+ ```
32
+
33
+ 4. **Add to ROADMAP.md** under a `## Backlog` section. If the section doesn't exist, create it at the end:
34
+
35
+ ```markdown
36
+ ## Backlog
37
+
38
+ ### Phase {NEXT}: {description} (BACKLOG)
39
+
40
+ **Goal:** [Captured for future planning]
41
+ **Requirements:** TBD
42
+ **Plans:** 0 plans
43
+
44
+ Plans:
45
+ - [ ] TBD (promote with /mindforge-review-backlog when ready)
46
+ ```
47
+
48
+ 5. **Commit:**
49
+ ```bash
50
+ node ".agent/bin/mindforge-tools.cjs" commit "docs: add backlog item ${NEXT} — ${ARGUMENTS}" --files .planning/ROADMAP.md ".planning/phases/${NEXT}-${SLUG}/.gitkeep"
51
+ ```
52
+
53
+ 6. **Report:**
54
+ ```
55
+ ## 📋 Backlog Item Added
56
+
57
+ Phase {NEXT}: {description}
58
+ Directory: .planning/phases/{NEXT}-{slug}/
59
+
60
+ This item lives in the backlog parking lot.
61
+ Use /mindforge-discuss-phase {NEXT} to explore it further.
62
+ Use /mindforge-review-backlog to promote items to active milestone.
63
+ ```
64
+
65
+ </process>
66
+
67
+ <notes>
68
+ - 999.x numbering keeps backlog items out of the active phase sequence
69
+ - Phase directories are created immediately, so /mindforge-discuss-phase and /mindforge-plan-phase work on them
70
+ - No `Depends on:` field — backlog items are unsequenced by definition
71
+ - Sparse numbering is fine (999.1, 999.3) — always uses next-decimal
72
+ </notes>
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: mindforge-add-phase
3
+ description: Add phase to end of current milestone in roadmap
4
+ ---
5
+
6
+
7
+ <objective>
8
+ Add a new integer phase to the end of the current milestone in the roadmap.
9
+
10
+ Routes to the add-phase workflow which handles:
11
+ - Phase number calculation (next sequential integer)
12
+ - Directory creation with slug generation
13
+ - Roadmap structure updates
14
+ - STATE.md roadmap evolution tracking
15
+ </objective>
16
+
17
+ <execution_context>
18
+ @.agent/workflows/mindforge-add-phase.md
19
+ </execution_context>
20
+
21
+ <context>
22
+ Arguments: $ARGUMENTS (phase description)
23
+
24
+ Roadmap and state are resolved in-workflow via `init phase-op` and targeted tool calls.
25
+ </context>
26
+
27
+ <process>
28
+ **Follow the add-phase workflow** from `@.agent/workflows/mindforge-add-phase.md`.
29
+
30
+ The workflow handles all logic including:
31
+ 1. Argument parsing and validation
32
+ 2. Roadmap existence checking
33
+ 3. Current milestone identification
34
+ 4. Next phase number calculation (ignoring decimals)
35
+ 5. Slug generation from description
36
+ 6. Phase directory creation
37
+ 7. Roadmap entry insertion
38
+ 8. STATE.md updates
39
+ </process>
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: mindforge-add-tests
3
+ description: Generate tests for a completed phase based on UAT criteria and implementation
4
+ ---
5
+
6
+ <objective>
7
+ Generate unit and E2E tests for a completed phase, using its SUMMARY.md, CONTEXT.md, and VERIFICATION.md as specifications.
8
+
9
+ Analyzes implementation files, classifies them into TDD (unit), E2E (browser), or Skip categories, presents a test plan for user approval, then generates tests following RED-GREEN conventions.
10
+
11
+ Output: Test files committed with message `test(phase-{N}): add unit and E2E tests from add-tests command`
12
+ </objective>
13
+
14
+ <execution_context>
15
+ @.agent/workflows/mindforge-add-tests.md
16
+ </execution_context>
17
+
18
+ <context>
19
+ Phase: $ARGUMENTS
20
+
21
+ @.planning/STATE.md
22
+ @.planning/ROADMAP.md
23
+ </context>
24
+
25
+ <process>
26
+ Execute the add-tests workflow from @.agent/workflows/mindforge-add-tests.md end-to-end.
27
+ Preserve all workflow gates (classification approval, test plan approval, RED-GREEN verification, gap reporting).
28
+ </process>
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: mindforge-add-todo
3
+ description: Capture idea or task as todo from current conversation context
4
+ ---
5
+
6
+
7
+ <objective>
8
+ Capture an idea, task, or issue that surfaces during a MindForge session as a structured todo for later work.
9
+
10
+ Routes to the add-todo workflow which handles:
11
+ - Directory structure creation
12
+ - Content extraction from arguments or conversation
13
+ - Area inference from file paths
14
+ - Duplicate detection and resolution
15
+ - Todo file creation with frontmatter
16
+ - STATE.md updates
17
+ - Git commits
18
+ </objective>
19
+
20
+ <execution_context>
21
+ @.agent/workflows/mindforge-add-todo.md
22
+ </execution_context>
23
+
24
+ <context>
25
+ Arguments: $ARGUMENTS (optional todo description)
26
+
27
+ State is resolved in-workflow via `init todos` and targeted reads.
28
+ </context>
29
+
30
+ <process>
31
+ **Follow the add-todo workflow** from `@.agent/workflows/mindforge-add-todo.md`.
32
+
33
+ The workflow handles all logic including:
34
+ 1. Directory ensuring
35
+ 2. Existing area checking
36
+ 3. Content extraction (arguments or conversation)
37
+ 4. Area inference
38
+ 5. Duplicate checking
39
+ 6. File creation with slug generation
40
+ 7. STATE.md updates
41
+ 8. Git commits
42
+ </process>
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: mindforge-audit-milestone
3
+ description: Audit milestone completion against original intent before archiving
4
+ ---
5
+
6
+ <objective>
7
+ Verify milestone achieved its definition of done. Check requirements coverage, cross-phase integration, and end-to-end flows.
8
+
9
+ **This command IS the orchestrator.** Reads existing VERIFICATION.md files (phases already verified during execute-phase), aggregates tech debt and deferred gaps, then spawns integration checker for cross-phase wiring.
10
+ </objective>
11
+
12
+ <execution_context>
13
+ @.agent/workflows/mindforge-audit-milestone.md
14
+ </execution_context>
15
+
16
+ <context>
17
+ Version: $ARGUMENTS (optional — defaults to current milestone)
18
+
19
+ Core planning files are resolved in-workflow (`init milestone-op`) and loaded only as needed.
20
+
21
+ **Completed Work:**
22
+ Glob: .planning/phases/*/*-SUMMARY.md
23
+ Glob: .planning/phases/*/*-VERIFICATION.md
24
+ </context>
25
+
26
+ <process>
27
+ Execute the audit-milestone workflow from @.agent/workflows/mindforge-audit-milestone.md end-to-end.
28
+ Preserve all workflow gates (scope determination, verification reading, integration check, requirements coverage, routing).
29
+ </process>
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: mindforge-audit-uat
3
+ description: Cross-phase audit of all outstanding UAT and verification items
4
+ ---
5
+
6
+ <objective>
7
+ Scan all phases for pending, skipped, blocked, and human_needed UAT items. Cross-reference against codebase to detect stale documentation. Produce prioritized human test plan.
8
+ </objective>
9
+
10
+ <execution_context>
11
+ @.agent/workflows/mindforge-audit-uat.md
12
+ </execution_context>
13
+
14
+ <context>
15
+ Core planning files are loaded in-workflow via CLI.
16
+
17
+ **Scope:**
18
+ Glob: .planning/phases/*/*-UAT.md
19
+ Glob: .planning/phases/*/*-VERIFICATION.md
20
+ </context>
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: mindforge-autonomous
3
+ description: Run all remaining phases autonomously — discuss→plan→execute per phase
4
+ ---
5
+
6
+ <objective>
7
+ Execute all remaining milestone phases autonomously. For each phase: discuss → plan → execute. Pauses only for user decisions (grey area acceptance, blockers, validation requests).
8
+
9
+ Uses ROADMAP.md phase discovery and Skill() flat invocations for each phase command. After all phases complete: milestone audit → complete → cleanup.
10
+
11
+ **Creates/Updates:**
12
+ - `.planning/STATE.md` — updated after each phase
13
+ - `.planning/ROADMAP.md` — progress updated after each phase
14
+ - Phase artifacts — CONTEXT.md, PLANs, SUMMARYs per phase
15
+
16
+ **After:** Milestone is complete and cleaned up.
17
+ </objective>
18
+
19
+ <execution_context>
20
+ @.agent/workflows/mindforge-autonomous.md
21
+ @.agent/references/ui-brand.md
22
+ </execution_context>
23
+
24
+ <context>
25
+ Optional flag: `--from N` — start from phase N instead of the first incomplete phase.
26
+
27
+ Project context, phase list, and state are resolved inside the workflow using init commands (`mindforge-tools.cjs init milestone-op`, `mindforge-tools.cjs roadmap analyze`). No upfront context loading needed.
28
+ </context>
29
+
30
+ <process>
31
+ Execute the autonomous workflow from @.agent/workflows/mindforge-autonomous.md end-to-end.
32
+ Preserve all workflow gates (phase discovery, per-phase execution, blocker handling, progress display).
33
+ </process>
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: mindforge-check-todos
3
+ description: List pending todos and select one to work on
4
+ ---
5
+
6
+
7
+ <objective>
8
+ List all pending todos, allow selection, load full context for the selected todo, and route to appropriate action.
9
+
10
+ Routes to the check-todos workflow which handles:
11
+ - Todo counting and listing with area filtering
12
+ - Interactive selection with full context loading
13
+ - Roadmap correlation checking
14
+ - Action routing (work now, add to phase, brainstorm, create phase)
15
+ - STATE.md updates and git commits
16
+ </objective>
17
+
18
+ <execution_context>
19
+ @.agent/workflows/mindforge-check-todos.md
20
+ </execution_context>
21
+
22
+ <context>
23
+ Arguments: $ARGUMENTS (optional area filter)
24
+
25
+ Todo state and roadmap correlation are loaded in-workflow using `init todos` and targeted reads.
26
+ </context>
27
+
28
+ <process>
29
+ **Follow the check-todos workflow** from `@.agent/workflows/mindforge-check-todos.md`.
30
+
31
+ The workflow handles all logic including:
32
+ 1. Todo existence checking
33
+ 2. Area filtering
34
+ 3. Interactive listing and selection
35
+ 4. Full context loading with file summaries
36
+ 5. Roadmap correlation checking
37
+ 6. Action offering and execution
38
+ 7. STATE.md updates
39
+ 8. Git commits
40
+ </process>
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: mindforge-cleanup
3
+ description: Archive accumulated phase directories from completed milestones
4
+ ---
5
+
6
+ <objective>
7
+ Archive phase directories from completed milestones into `.planning/milestones/v{X.Y}-phases/`.
8
+
9
+ Use when `.planning/phases/` has accumulated directories from past milestones.
10
+ </objective>
11
+
12
+ <execution_context>
13
+ @.agent/workflows/mindforge-cleanup.md
14
+ </execution_context>
15
+
16
+ <process>
17
+ Follow the cleanup workflow at @.agent/workflows/mindforge-cleanup.md.
18
+ Identify completed milestones, show a dry-run summary, and archive on confirmation.
19
+ </process>