mindforge-cc 1.0.0

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 (324) hide show
  1. package/.agent/CLAUDE.md +462 -0
  2. package/.agent/forge/help.md +7 -0
  3. package/.agent/forge/init-project.md +32 -0
  4. package/.agent/forge/plan-phase.md +30 -0
  5. package/.agent/mindforge/approve.md +18 -0
  6. package/.agent/mindforge/audit.md +30 -0
  7. package/.agent/mindforge/benchmark.md +33 -0
  8. package/.agent/mindforge/complete-milestone.md +18 -0
  9. package/.agent/mindforge/debug.md +126 -0
  10. package/.agent/mindforge/discuss-phase.md +138 -0
  11. package/.agent/mindforge/execute-phase.md +165 -0
  12. package/.agent/mindforge/health.md +21 -0
  13. package/.agent/mindforge/help.md +23 -0
  14. package/.agent/mindforge/init-org.md +131 -0
  15. package/.agent/mindforge/init-project.md +155 -0
  16. package/.agent/mindforge/install-skill.md +15 -0
  17. package/.agent/mindforge/map-codebase.md +298 -0
  18. package/.agent/mindforge/metrics.md +22 -0
  19. package/.agent/mindforge/migrate.md +40 -0
  20. package/.agent/mindforge/milestone.md +12 -0
  21. package/.agent/mindforge/next.md +105 -0
  22. package/.agent/mindforge/plan-phase.md +125 -0
  23. package/.agent/mindforge/plugins.md +40 -0
  24. package/.agent/mindforge/pr-review.md +41 -0
  25. package/.agent/mindforge/profile-team.md +23 -0
  26. package/.agent/mindforge/publish-skill.md +19 -0
  27. package/.agent/mindforge/quick.md +135 -0
  28. package/.agent/mindforge/release.md +10 -0
  29. package/.agent/mindforge/retrospective.md +26 -0
  30. package/.agent/mindforge/review.md +157 -0
  31. package/.agent/mindforge/security-scan.md +233 -0
  32. package/.agent/mindforge/ship.md +100 -0
  33. package/.agent/mindforge/skills.md +141 -0
  34. package/.agent/mindforge/status.md +104 -0
  35. package/.agent/mindforge/sync-confluence.md +11 -0
  36. package/.agent/mindforge/sync-jira.md +12 -0
  37. package/.agent/mindforge/tokens.md +8 -0
  38. package/.agent/mindforge/update.md +42 -0
  39. package/.agent/mindforge/verify-phase.md +62 -0
  40. package/.agent/mindforge/workspace.md +29 -0
  41. package/.claude/CLAUDE.md +462 -0
  42. package/.claude/commands/forge/help.md +7 -0
  43. package/.claude/commands/forge/init-project.md +32 -0
  44. package/.claude/commands/forge/plan-phase.md +30 -0
  45. package/.claude/commands/mindforge/approve.md +18 -0
  46. package/.claude/commands/mindforge/audit.md +30 -0
  47. package/.claude/commands/mindforge/benchmark.md +33 -0
  48. package/.claude/commands/mindforge/complete-milestone.md +18 -0
  49. package/.claude/commands/mindforge/debug.md +126 -0
  50. package/.claude/commands/mindforge/discuss-phase.md +138 -0
  51. package/.claude/commands/mindforge/execute-phase.md +165 -0
  52. package/.claude/commands/mindforge/health.md +21 -0
  53. package/.claude/commands/mindforge/help.md +23 -0
  54. package/.claude/commands/mindforge/init-org.md +131 -0
  55. package/.claude/commands/mindforge/init-project.md +155 -0
  56. package/.claude/commands/mindforge/install-skill.md +15 -0
  57. package/.claude/commands/mindforge/map-codebase.md +298 -0
  58. package/.claude/commands/mindforge/metrics.md +22 -0
  59. package/.claude/commands/mindforge/migrate.md +40 -0
  60. package/.claude/commands/mindforge/milestone.md +12 -0
  61. package/.claude/commands/mindforge/next.md +105 -0
  62. package/.claude/commands/mindforge/plan-phase.md +125 -0
  63. package/.claude/commands/mindforge/plugins.md +40 -0
  64. package/.claude/commands/mindforge/pr-review.md +41 -0
  65. package/.claude/commands/mindforge/profile-team.md +23 -0
  66. package/.claude/commands/mindforge/publish-skill.md +19 -0
  67. package/.claude/commands/mindforge/quick.md +135 -0
  68. package/.claude/commands/mindforge/release.md +10 -0
  69. package/.claude/commands/mindforge/retrospective.md +26 -0
  70. package/.claude/commands/mindforge/review.md +157 -0
  71. package/.claude/commands/mindforge/security-scan.md +233 -0
  72. package/.claude/commands/mindforge/ship.md +100 -0
  73. package/.claude/commands/mindforge/skills.md +141 -0
  74. package/.claude/commands/mindforge/status.md +104 -0
  75. package/.claude/commands/mindforge/sync-confluence.md +11 -0
  76. package/.claude/commands/mindforge/sync-jira.md +12 -0
  77. package/.claude/commands/mindforge/tokens.md +8 -0
  78. package/.claude/commands/mindforge/update.md +42 -0
  79. package/.claude/commands/mindforge/verify-phase.md +62 -0
  80. package/.claude/commands/mindforge/workspace.md +29 -0
  81. package/.forge/org/CONVENTIONS.md +0 -0
  82. package/.forge/org/ORG.md +0 -0
  83. package/.forge/org/SECURITY.md +0 -0
  84. package/.forge/org/TOOLS.md +0 -0
  85. package/.forge/personas/analyst.md +0 -0
  86. package/.forge/personas/architect.md +0 -0
  87. package/.forge/personas/debug-specialist.md +0 -0
  88. package/.forge/personas/developer.md +26 -0
  89. package/.forge/personas/qa-engineer.md +0 -0
  90. package/.forge/personas/release-manager.md +0 -0
  91. package/.forge/personas/security-reviewer.md +33 -0
  92. package/.forge/personas/tech-writer.md +0 -0
  93. package/.forge/skills/api-design/SKILL.md +0 -0
  94. package/.forge/skills/code-quality/SKILL.md +0 -0
  95. package/.forge/skills/documentation/SKILL.md +0 -0
  96. package/.forge/skills/security-review/SKILL.md +23 -0
  97. package/.forge/skills/testing-standards/SKILL.md +27 -0
  98. package/.github/workflows/mindforge-ci.yml +224 -0
  99. package/.gitlab-ci-mindforge.yml +18 -0
  100. package/.mindforge/MINDFORGE-SCHEMA.json +165 -0
  101. package/.mindforge/audit/AUDIT-SCHEMA.md +451 -0
  102. package/.mindforge/ci/ci-config-schema.md +21 -0
  103. package/.mindforge/ci/ci-mode.md +179 -0
  104. package/.mindforge/ci/github-actions-adapter.md +224 -0
  105. package/.mindforge/ci/gitlab-ci-adapter.md +31 -0
  106. package/.mindforge/ci/jenkins-adapter.md +44 -0
  107. package/.mindforge/distribution/registry-client.md +166 -0
  108. package/.mindforge/distribution/registry-schema.md +96 -0
  109. package/.mindforge/distribution/skill-publisher.md +44 -0
  110. package/.mindforge/distribution/skill-validator.md +74 -0
  111. package/.mindforge/engine/compaction-protocol.md +182 -0
  112. package/.mindforge/engine/context-injector.md +128 -0
  113. package/.mindforge/engine/dependency-parser.md +113 -0
  114. package/.mindforge/engine/skills/conflict-resolver.md +69 -0
  115. package/.mindforge/engine/skills/loader.md +184 -0
  116. package/.mindforge/engine/skills/registry.md +98 -0
  117. package/.mindforge/engine/skills/versioning.md +75 -0
  118. package/.mindforge/engine/verification-pipeline.md +111 -0
  119. package/.mindforge/engine/wave-executor.md +235 -0
  120. package/.mindforge/governance/GOVERNANCE-CONFIG.md +17 -0
  121. package/.mindforge/governance/approval-workflow.md +37 -0
  122. package/.mindforge/governance/change-classifier.md +63 -0
  123. package/.mindforge/governance/compliance-gates.md +31 -0
  124. package/.mindforge/integrations/confluence.md +27 -0
  125. package/.mindforge/integrations/connection-manager.md +163 -0
  126. package/.mindforge/integrations/github.md +25 -0
  127. package/.mindforge/integrations/gitlab.md +13 -0
  128. package/.mindforge/integrations/jira.md +102 -0
  129. package/.mindforge/integrations/slack.md +41 -0
  130. package/.mindforge/intelligence/antipattern-detector.md +75 -0
  131. package/.mindforge/intelligence/difficulty-scorer.md +55 -0
  132. package/.mindforge/intelligence/health-engine.md +208 -0
  133. package/.mindforge/intelligence/skill-gap-analyser.md +40 -0
  134. package/.mindforge/intelligence/smart-compaction.md +71 -0
  135. package/.mindforge/metrics/METRICS-SCHEMA.md +42 -0
  136. package/.mindforge/metrics/quality-tracker.md +32 -0
  137. package/.mindforge/monorepo/cross-package-planner.md +114 -0
  138. package/.mindforge/monorepo/dependency-graph-builder.md +32 -0
  139. package/.mindforge/monorepo/workspace-detector.md +129 -0
  140. package/.mindforge/org/CONVENTIONS.md +62 -0
  141. package/.mindforge/org/ORG.md +51 -0
  142. package/.mindforge/org/SECURITY.md +50 -0
  143. package/.mindforge/org/TOOLS.md +53 -0
  144. package/.mindforge/org/integrations/INTEGRATIONS-CONFIG.md +58 -0
  145. package/.mindforge/org/skills/MANIFEST.md +38 -0
  146. package/.mindforge/personas/analyst.md +52 -0
  147. package/.mindforge/personas/architect.md +75 -0
  148. package/.mindforge/personas/debug-specialist.md +52 -0
  149. package/.mindforge/personas/developer.md +85 -0
  150. package/.mindforge/personas/overrides/README.md +85 -0
  151. package/.mindforge/personas/qa-engineer.md +61 -0
  152. package/.mindforge/personas/release-manager.md +76 -0
  153. package/.mindforge/personas/security-reviewer.md +91 -0
  154. package/.mindforge/personas/tech-writer.md +51 -0
  155. package/.mindforge/plugins/PLUGINS-MANIFEST.md +23 -0
  156. package/.mindforge/plugins/plugin-loader.md +93 -0
  157. package/.mindforge/plugins/plugin-registry.md +44 -0
  158. package/.mindforge/plugins/plugin-schema.md +68 -0
  159. package/.mindforge/pr-review/ai-reviewer.md +266 -0
  160. package/.mindforge/pr-review/finding-formatter.md +46 -0
  161. package/.mindforge/pr-review/review-prompt-templates.md +44 -0
  162. package/.mindforge/production/compatibility-layer.md +39 -0
  163. package/.mindforge/production/migration-engine.md +52 -0
  164. package/.mindforge/production/production-checklist.md +165 -0
  165. package/.mindforge/production/token-optimiser.md +68 -0
  166. package/.mindforge/skills/accessibility/SKILL.md +106 -0
  167. package/.mindforge/skills/api-design/SKILL.md +98 -0
  168. package/.mindforge/skills/code-quality/SKILL.md +88 -0
  169. package/.mindforge/skills/data-privacy/SKILL.md +126 -0
  170. package/.mindforge/skills/database-patterns/SKILL.md +192 -0
  171. package/.mindforge/skills/documentation/SKILL.md +91 -0
  172. package/.mindforge/skills/incident-response/SKILL.md +180 -0
  173. package/.mindforge/skills/performance/SKILL.md +120 -0
  174. package/.mindforge/skills/security-review/SKILL.md +83 -0
  175. package/.mindforge/skills/testing-standards/SKILL.md +97 -0
  176. package/.mindforge/team/TEAM-PROFILE.md +42 -0
  177. package/.mindforge/team/multi-handoff.md +23 -0
  178. package/.mindforge/team/profiles/README.md +13 -0
  179. package/.mindforge/team/session-merger.md +18 -0
  180. package/.planning/ARCHITECTURE.md +0 -0
  181. package/.planning/AUDIT.jsonl +0 -0
  182. package/.planning/HANDOFF.json +28 -0
  183. package/.planning/PROJECT.md +33 -0
  184. package/.planning/RELEASE-CHECKLIST.md +68 -0
  185. package/.planning/REQUIREMENTS.md +0 -0
  186. package/.planning/ROADMAP.md +0 -0
  187. package/.planning/STATE.md +31 -0
  188. package/.planning/approvals/.gitkeep +1 -0
  189. package/.planning/archive/.gitkeep +1 -0
  190. package/.planning/audit-archive/.gitkeep +1 -0
  191. package/.planning/decisions/.gitkeep +0 -0
  192. package/.planning/decisions/ADR-001-handoff-tracking.md +41 -0
  193. package/.planning/decisions/ADR-002-markdown-commands.md +46 -0
  194. package/.planning/decisions/ADR-003-skills-trigger-model.md +37 -0
  195. package/.planning/decisions/ADR-004-wave-parallelism-model.md +45 -0
  196. package/.planning/decisions/ADR-005-append-only-audit-log.md +51 -0
  197. package/.planning/decisions/ADR-006-tiered-skills-system.md +22 -0
  198. package/.planning/decisions/ADR-007-trigger-keyword-model.md +22 -0
  199. package/.planning/decisions/ADR-008-just-in-time-skill-loading.md +29 -0
  200. package/.planning/decisions/ADR-009-enterprise-integration-retry-policy.md +8 -0
  201. package/.planning/decisions/ADR-010-governance-tier-escalation.md +8 -0
  202. package/.planning/decisions/ADR-011-multi-developer-handoff-contract.md +8 -0
  203. package/.planning/decisions/ADR-012-intelligence-feedback-loops.md +19 -0
  204. package/.planning/decisions/ADR-013-mindforge-md-constitution.md +16 -0
  205. package/.planning/decisions/ADR-014-metrics-as-signals-not-evaluation.md +15 -0
  206. package/.planning/decisions/ADR-015-npm-based-skill-registry.md +26 -0
  207. package/.planning/decisions/ADR-016-ci-exit-code-0-on-timeout.md +27 -0
  208. package/.planning/decisions/ADR-017-sdk-localhost-only.md +28 -0
  209. package/.planning/decisions/ADR-018-installer-self-install-detection.md +15 -0
  210. package/.planning/decisions/ADR-019-self-update-scope-preservation.md +14 -0
  211. package/.planning/decisions/ADR-020-v1.0.0-stable-interface-contract.md +23 -0
  212. package/.planning/jira-sync.json +9 -0
  213. package/.planning/milestones/.gitkeep +1 -0
  214. package/.planning/phases/day1/REVIEW-DAY1.md +50 -0
  215. package/.planning/phases/day1/SECURITY-REVIEW-DAY1.md +15 -0
  216. package/.planning/phases/day2/REVIEW-DAY2.md +521 -0
  217. package/.planning/phases/day3/REVIEW-DAY3.md +234 -0
  218. package/.planning/slack-threads.json +6 -0
  219. package/CHANGELOG.md +175 -0
  220. package/LICENSE +21 -0
  221. package/MINDFORGE.md +76 -0
  222. package/README.md +182 -0
  223. package/RELEASENOTES.md +41 -0
  224. package/SECURITY.md +4 -0
  225. package/bin/install.js +120 -0
  226. package/bin/installer-core.js +292 -0
  227. package/bin/migrations/0.1.0-to-0.5.0.js +37 -0
  228. package/bin/migrations/0.5.0-to-0.6.0.js +17 -0
  229. package/bin/migrations/0.6.0-to-1.0.0.js +100 -0
  230. package/bin/migrations/migrate.js +151 -0
  231. package/bin/migrations/schema-versions.js +64 -0
  232. package/bin/updater/changelog-fetcher.js +62 -0
  233. package/bin/updater/self-update.js +169 -0
  234. package/bin/updater/version-comparator.js +68 -0
  235. package/bin/validate-config.js +92 -0
  236. package/bin/wizard/config-generator.js +112 -0
  237. package/bin/wizard/environment-detector.js +76 -0
  238. package/bin/wizard/setup-wizard.js +237 -0
  239. package/docs/Context/Master-Context.md +701 -0
  240. package/docs/architecture/README.md +35 -0
  241. package/docs/architecture/decision-records-index.md +26 -0
  242. package/docs/ci-cd-integration.md +30 -0
  243. package/docs/ci-quickstart.md +78 -0
  244. package/docs/commands-reference.md +11 -0
  245. package/docs/contributing/CONTRIBUTING.md +38 -0
  246. package/docs/contributing/plugin-authoring.md +50 -0
  247. package/docs/contributing/skill-authoring.md +41 -0
  248. package/docs/enterprise-setup.md +25 -0
  249. package/docs/faq.md +38 -0
  250. package/docs/getting-started.md +36 -0
  251. package/docs/governance-guide.md +23 -0
  252. package/docs/mindforge-md-reference.md +53 -0
  253. package/docs/monorepo-guide.md +26 -0
  254. package/docs/persona-customisation.md +56 -0
  255. package/docs/quick-verify.md +33 -0
  256. package/docs/reference/audit-events.md +53 -0
  257. package/docs/reference/commands.md +82 -0
  258. package/docs/reference/config-reference.md +64 -0
  259. package/docs/reference/sdk-api.md +48 -0
  260. package/docs/reference/skills-api.md +57 -0
  261. package/docs/release-checklist-guide.md +37 -0
  262. package/docs/requirements.md +29 -0
  263. package/docs/sdk-reference.md +27 -0
  264. package/docs/security/SECURITY.md +42 -0
  265. package/docs/security/penetration-test-results.md +31 -0
  266. package/docs/security/threat-model.md +142 -0
  267. package/docs/skills-authoring-guide.md +119 -0
  268. package/docs/skills-publishing-guide.md +21 -0
  269. package/docs/team-setup-guide.md +21 -0
  270. package/docs/troubleshooting.md +119 -0
  271. package/docs/tutorial.md +195 -0
  272. package/docs/upgrade.md +44 -0
  273. package/docs/user-guide.md +131 -0
  274. package/docs/usp-features.md +214 -0
  275. package/eslint.config.mjs +31 -0
  276. package/examples/starter-project/.planning/AUDIT.jsonl +1 -0
  277. package/examples/starter-project/.planning/HANDOFF.json +23 -0
  278. package/examples/starter-project/.planning/PROJECT.md +27 -0
  279. package/examples/starter-project/.planning/STATE.md +10 -0
  280. package/examples/starter-project/MINDFORGE.md +40 -0
  281. package/examples/starter-project/README.md +14 -0
  282. package/implementation-roadmap/day-1-imp/DAY1-HARDEN.md +823 -0
  283. package/implementation-roadmap/day-1-imp/DAY1-IMPLEMENT.md +2459 -0
  284. package/implementation-roadmap/day-1-imp/DAY1-REVIEW.md +288 -0
  285. package/implementation-roadmap/day-2-imp/DAY2-HARDEN.md +954 -0
  286. package/implementation-roadmap/day-2-imp/DAY2-IMPLEMENT.md +2347 -0
  287. package/implementation-roadmap/day-2-imp/DAY2-REVIEW.md +422 -0
  288. package/implementation-roadmap/day-3-imp/DAY3-HARDEN.md +870 -0
  289. package/implementation-roadmap/day-3-imp/DAY3-IMPLEMENT.md +2798 -0
  290. package/implementation-roadmap/day-3-imp/DAY3-REVIEW.md +484 -0
  291. package/implementation-roadmap/day-4-imp/DAY4-HARDEN.md +1087 -0
  292. package/implementation-roadmap/day-4-imp/DAY4-IMPLEMENT.md +2874 -0
  293. package/implementation-roadmap/day-4-imp/DAY4-REVIEW.md +386 -0
  294. package/implementation-roadmap/day-5-imp/DAY5-HARDEN.md +1078 -0
  295. package/implementation-roadmap/day-5-imp/DAY5-IMPLEMENT.md +3151 -0
  296. package/implementation-roadmap/day-5-imp/DAY5-REVIEW.md +345 -0
  297. package/implementation-roadmap/day-6-imp/DAY6-COMPLETE.md +3919 -0
  298. package/implementation-roadmap/day-7-imp-prod/DAY7-PRODUCTION-FINAL.md +4513 -0
  299. package/package.json +31 -0
  300. package/sdk/README.md +69 -0
  301. package/sdk/eslint.config.mjs +34 -0
  302. package/sdk/package-lock.json +1507 -0
  303. package/sdk/package.json +30 -0
  304. package/sdk/src/client.ts +133 -0
  305. package/sdk/src/commands.ts +63 -0
  306. package/sdk/src/events.ts +166 -0
  307. package/sdk/src/index.ts +22 -0
  308. package/sdk/src/types.ts +87 -0
  309. package/sdk/tsconfig.json +13 -0
  310. package/tests/audit.test.js +206 -0
  311. package/tests/ci-mode.test.js +162 -0
  312. package/tests/compaction.test.js +161 -0
  313. package/tests/distribution.test.js +205 -0
  314. package/tests/e2e.test.js +618 -0
  315. package/tests/governance.test.js +130 -0
  316. package/tests/install.test.js +209 -0
  317. package/tests/integrations.test.js +128 -0
  318. package/tests/intelligence.test.js +117 -0
  319. package/tests/metrics.test.js +96 -0
  320. package/tests/migration.test.js +309 -0
  321. package/tests/production.test.js +416 -0
  322. package/tests/sdk.test.js +200 -0
  323. package/tests/skills-platform.test.js +403 -0
  324. package/tests/wave-engine.test.js +338 -0
@@ -0,0 +1,484 @@
1
+ # MindForge — Day 3 Review Prompt
2
+ # Branch: `feat/mindforge-skills-platform`
3
+ # Run this AFTER DAY3-IMPLEMENT.md is complete
4
+
5
+ ---
6
+
7
+ ## CONTEXT
8
+
9
+ You are performing a **Day 3 Architecture & Quality Review** of the MindForge
10
+ skills platform, five new skill packs, persona customisation system, and five
11
+ new commands.
12
+
13
+ Activate **`architect.md` + `qa-engineer.md` + `security-reviewer.md`** simultaneously.
14
+
15
+ Day 3 risk profile is different from Days 1 and 2:
16
+ - Day 1 risk: incomplete instructions
17
+ - Day 2 risk: orchestration logic gaps
18
+ - Day 3 risk: **skills quality** (are the skill packs actually correct and safe?)
19
+ and **loader correctness** (does the right skill load at the right time?).
20
+
21
+ A skill that loads when it shouldn't wastes context. A skill that doesn't load
22
+ when it should misses domain expertise. A skill with incorrect guidance produces
23
+ wrong implementations. All three failure modes need review.
24
+
25
+ ---
26
+
27
+ ## REVIEW PASS 1 — Skills Engine: Logic and Completeness
28
+
29
+ ### Registry (`registry.md`)
30
+
31
+ - [ ] Does the registry clearly distinguish between "skill not in manifest" vs.
32
+ "skill in manifest but file missing"? Both need different error messages.
33
+ - [ ] Is the MANIFEST.md format machine-parseable by an agent reading it?
34
+ (Tables are human-readable but an agent needs clear column positions)
35
+ Does the registry spec describe how to parse the table? Or just what it contains?
36
+ - [ ] What happens when MANIFEST.md doesn't exist on first install?
37
+ Is there an auto-creation path, or does the agent crash?
38
+ - [ ] The "tier priority" rule (Project > Org > Core) — is it clearly stated
39
+ what happens at LOAD time when a tier conflict exists?
40
+ (It says "higher tier wins" but does it specify: load only the higher, or load both?)
41
+
42
+ ### Loader (`loader.md`)
43
+
44
+ **Trigger matching completeness:**
45
+ - [ ] Text matching uses the task's `<n>`, `<action>`, and `<context>` fields.
46
+ What about the `<files>` field's TEXT content (not just file paths)?
47
+ A `<files>` entry of `src/auth/session-manager.ts` contains "auth" — should this trigger security-review?
48
+ It should, but does the spec say so explicitly?
49
+
50
+ - [ ] File path matching checks for `/auth/` and `/security/` in paths.
51
+ But what about files like `src/features/user/login.ts`?
52
+ "login" should trigger security-review but the path `/user/` wouldn't match.
53
+ Does the file path matching also check file NAMES (not just directory names)?
54
+
55
+ - [ ] "Multi-word trigger matching: 'database migration' matches 'migration' trigger"
56
+ — this is about substring matching within multi-word triggers.
57
+ But the task text might say "write a data migration". Does "migration" still match
58
+ even without "database" in front? The spec needs to be explicit about word-boundary matching.
59
+
60
+ **Context budget — 4+ skills:**
61
+ - [ ] When summarising skills 4+, what is the summary format?
62
+ "trigger keywords + mandatory actions list + output format" — but how long is that?
63
+ The budget says "summarise to avoid exceeding 30K tokens" but no word/token target is given.
64
+ Add: "summary of each lower-priority skill must not exceed 200 words."
65
+
66
+ - [ ] The budget table shows "4+ skills = 12K+ tokens = 🔴 summarise lower-priority skills."
67
+ But which skills are "lower priority"? The most recently matched? The lowest-tier ones?
68
+ The spec must define the priority ordering for summarisation:
69
+ Recommendation: summarise in reverse tier order (Project skills summarised last),
70
+ then within the same tier, summarise skills with fewer trigger matches first.
71
+
72
+ ### Versioning (`versioning.md`)
73
+
74
+ - [ ] The "breaking changes" section says to "re-validate all PLAN files that reference
75
+ this skill." But PLAN files reference skills by name in their `<context>` field.
76
+ The validation should check: does the plan's usage of this skill violate any of the
77
+ breaking changes? Describe how this check works (or acknowledge it's manual).
78
+
79
+ - [ ] The `min_mindforge_version` check compares against `package.json` version.
80
+ But `package.json` has `version: "0.1.0"` on Day 1.
81
+ When Day 3 skills require `min_mindforge_version: 0.3.0` — this would cause
82
+ a compatibility warning on every task. Is this intended?
83
+ Resolution: bump `package.json` version to `0.3.0` on Day 3.
84
+ Flag if this was not done.
85
+
86
+ ### Conflict resolver (`conflict-resolver.md`)
87
+
88
+ - [ ] Type 4 (mutual exclusion) — "if tied: ask the user." But asking the user
89
+ during task execution breaks the parallel wave model (subagents cannot ask users).
90
+ What happens if mutual-exclusion conflict occurs during wave execution?
91
+ Resolution: if conflict cannot be resolved without user input during execution,
92
+ load neither skill and flag in the AUDIT log. Defer the conflict to the next
93
+ interactive session.
94
+
95
+ ---
96
+
97
+ ## REVIEW PASS 2 — Skill Pack Content Quality
98
+
99
+ This is the most important review pass for Day 3. Each skill pack is providing
100
+ expert guidance to an AI agent. Incorrect guidance produces wrong implementations.
101
+
102
+ ### `performance/SKILL.md`
103
+
104
+ **Technical accuracy checks:**
105
+ - [ ] LCP, INP, CLS thresholds — verify these match Google's current thresholds
106
+ (LCP < 2.5s good, INP < 200ms good, CLS < 0.1 good — currently correct per 2026 standards)
107
+ - [ ] "p50 < 100ms, p95 < 500ms" — are these appropriate defaults for all projects?
108
+ A social media feed and a bank transaction have very different latency requirements.
109
+ Should these be marked as "examples" rather than universal standards?
110
+ Recommendation: mark as "default targets — adjust per REQUIREMENTS.md NFRs"
111
+ - [ ] Cache TTL recommendations — are these appropriate defaults?
112
+ "Session data: 24 hours" is standard. "Computed aggregates: 1-5 minutes" — appropriate.
113
+ But these should include a caveat: "adjust based on freshness requirements."
114
+ - [ ] "Index foreign key columns — ORM does not always do this automatically."
115
+ This is true for Prisma with PostgreSQL — is it true for all ORMs mentioned?
116
+ SQLAlchemy and Drizzle may auto-index. The claim needs qualification.
117
+
118
+ **Missing content:**
119
+ - [ ] No mention of database query result caching (separate from API caching)
120
+ - [ ] No mention of connection pool sizing recommendations (critical for performance)
121
+ Add: "Connection pool size: start with CPU cores × 2, adjust based on monitoring"
122
+ - [ ] No mention of server-side rendering vs. static generation for frontend performance
123
+ (Critical for Next.js projects — SSG is dramatically faster than SSR for static content)
124
+
125
+ ### `accessibility/SKILL.md`
126
+
127
+ **Technical accuracy checks:**
128
+ - [ ] WCAG 2.1 Level AA is correctly stated as the minimum.
129
+ Should also mention WCAG 2.2 (released October 2023) — specifically, the new SC:
130
+ - 2.5.7 Dragging Movements (Level AA)
131
+ - 2.5.8 Target Size (Minimum) (Level AA)
132
+ - 3.2.6 Consistent Help (Level AA)
133
+ - 3.3.7 Redundant Entry (Level AA)
134
+ Add a note: "WCAG 2.2 adds 4 new Level AA criteria — see official spec."
135
+
136
+ - [ ] "All interactive elements reachable by Tab key" — partially correct.
137
+ Focus order should follow the visual/logical reading order, not just be reachable.
138
+ An element at the bottom of the DOM but visually at the top (via CSS positioning)
139
+ creates a confusing Tab order. The spec should address visual vs. DOM order.
140
+
141
+ - [ ] The ARIA section says `role="checkbox"` requires `aria-checked`.
142
+ More examples would help: `role="slider"` requires `aria-valuenow`, `aria-valuemin`, `aria-valuemax`.
143
+ Either add a reference to the ARIA spec or acknowledge the list is illustrative.
144
+
145
+ - [ ] No mention of reduced motion: `@media (prefers-reduced-motion: reduce)`.
146
+ For any animation guidance: must include reduced motion handling.
147
+ This is WCAG 2.3.3 (Level AAA) but also a UX requirement for vestibular disorder users.
148
+
149
+ ### `data-privacy/SKILL.md`
150
+
151
+ **Technical accuracy checks:**
152
+ - [ ] GDPR consent requirements are correctly described.
153
+ Add: "Consent withdrawal must be as easy as giving consent."
154
+ (GDPR Article 7(3) — often missed in implementations)
155
+
156
+ - [ ] "Data retention: define retention period for every PII field."
157
+ The skill should mention that different data requires different retention rules:
158
+ - Financial records: typically 7 years (tax/accounting requirements)
159
+ - Health records: varies by jurisdiction (often 10+ years)
160
+ - User account data: until deletion request + X days
161
+ Add a note directing to legal counsel for jurisdiction-specific requirements.
162
+
163
+ - [ ] "Right to erasure" implementation — the skill says "delete or anonymise ALL PII."
164
+ Missing: the spec should distinguish between erasure and anonymisation:
165
+ - Erasure: the data is gone
166
+ - Anonymisation: data remains but is no longer linkable to the individual
167
+ GDPR allows anonymisation as an alternative to deletion in certain cases.
168
+ The skill should acknowledge this distinction.
169
+
170
+ - [ ] The "Forbidden patterns" code examples are accurate and specific — good.
171
+ But they only cover Node.js/JavaScript. The skill should note it's language-agnostic
172
+ and these patterns translate to Python, Go, etc.
173
+
174
+ ### `incident-response/SKILL.md`
175
+
176
+ - [ ] The postmortem template says "Author: [who wrote this]" — in an AI agent context,
177
+ who is the author? This should probably be the engineer who triggered the investigation.
178
+ Clarify: the agent writes the draft but the human engineer reviews and takes ownership.
179
+
180
+ - [ ] "P0: Immediate (24/7)" — this implies the engineer is paged immediately.
181
+ The skill should mention that in automated incident detection, a human must always
182
+ be in the loop before any automated mitigation actions are taken.
183
+ Add: "Never take automated rollback or configuration changes without human approval
184
+ in the loop for P0 incidents. Automated actions must be pre-approved and scoped."
185
+
186
+ - [ ] The monitoring standards section says "every new feature must ship with" metrics.
187
+ But it doesn't specify WHERE the metrics should be instrumented.
188
+ Add: "Instrument at the service boundary (route handler), not inside business logic.
189
+ Business logic must be testable without a metrics framework."
190
+
191
+ ### `database-patterns/SKILL.md`
192
+
193
+ **Technical accuracy checks:**
194
+ - [ ] "UUID over auto-increment" — generally correct for distributed systems.
195
+ But the skill should note the performance trade-off: sequential UUIDs (UUIDv7)
196
+ vs. random UUIDs (UUIDv4). Random UUIDs fragment B-tree indexes badly at scale.
197
+ Recommendation: use UUIDv7 (time-ordered) for primary keys if on PostgreSQL 15+ or use `gen_random_uuid()` with awareness of the fragmentation risk.
198
+ Add: "For high-write tables: consider UUIDv7 or ULID to maintain index locality."
199
+
200
+ - [ ] Cursor pagination example uses `created_at` as the cursor.
201
+ But `created_at` is not unique — two records created at the same millisecond
202
+ produce an ambiguous cursor. The cursor should be `(created_at, id)` combined:
203
+ ```sql
204
+ WHERE (created_at, id) < (:cursor_time, :cursor_id)
205
+ ORDER BY created_at DESC, id DESC
206
+ ```
207
+ This is a correctness bug in the current skill. Flag as BLOCKING.
208
+
209
+ - [ ] The N+1 example uses Prisma syntax (`include: { orders: true }`).
210
+ The pattern applies to all ORMs but the example is framework-specific.
211
+ Add a framework-agnostic SQL equivalent alongside the Prisma example.
212
+
213
+ - [ ] Transaction example is correct.
214
+ Add: "Set transaction isolation level explicitly for financial operations:
215
+ `SET TRANSACTION ISOLATION LEVEL SERIALIZABLE`
216
+ Default READ COMMITTED allows phantom reads in financial transactions."
217
+
218
+ ---
219
+
220
+ ## REVIEW PASS 3 — New Commands: Completeness and Safety
221
+
222
+ ### `/mindforge:skills` command
223
+
224
+ - [ ] **`list` subcommand** — the table format shows skill name and version.
225
+ But it doesn't show the file path. For debugging missing skills, the path is
226
+ critical. Add it to the displayed output (or make it available with `--verbose`).
227
+
228
+ - [ ] **`validate` subcommand** — it checks frontmatter validity.
229
+ But does it check that every skill file ends with a "self-check" section?
230
+ The authoring guide requires one — validation should enforce it.
231
+
232
+ - [ ] **`add` subcommand** — asks which tier (2 or 3). But what prevents a user
233
+ from accidentally adding a project skill to the org tier?
234
+ Add: a confirmation step showing the exact MANIFEST.md entry that will be written.
235
+
236
+ - [ ] **`update` subcommand** — "update automatically for MINOR or PATCH."
237
+ But "automatically" means without running the test suite. After a skill update,
238
+ skills-platform tests should be re-run to verify the update didn't break anything.
239
+ Add this step to the update subcommand.
240
+
241
+ ### `/mindforge:review` command
242
+
243
+ - [ ] **TypeScript-specific checks** — the review includes `no any without justification`.
244
+ But what constitutes a valid justification? The spec should give examples:
245
+ - Valid: `// any here because lib type defs are incorrect for v3.x`
246
+ - Invalid: `// any for now` or `// TODO fix this`
247
+
248
+ - [ ] **Review scope for "phase N"** — the command says "review all commits in phase N."
249
+ But it describes using `git log --oneline --name-only [start-sha]..[end-sha]`.
250
+ How are the start and end SHAs determined for a phase?
251
+ The spec needs to say: read the phase's PLAN commit SHAs from SUMMARY files.
252
+
253
+ - [ ] **Verdict thresholds** — when is it "approved with conditions" vs. "changes required"?
254
+ The current spec says:
255
+ - `✅ APPROVED` = no blocking or major findings
256
+ - `⚠️ APPROVED WITH CONDITIONS` = major findings
257
+ - `❌ CHANGES REQUIRED` = blocking findings
258
+ This logic is correct. Verify the code review report template matches these thresholds exactly.
259
+
260
+ ### `/mindforge:security-scan` command
261
+
262
+ - [ ] **A10 SSRF scan** — the pattern `fetch(req.body.url,` would not match URL input
263
+ via path parameters (`req.params.url`), query strings (`req.query.url`), or
264
+ headers. The SSRF pattern is too narrow. Expand to:
265
+ ```
266
+ fetch(req., axios.get(req., axios.post(req., http.get(req.,
267
+ ```
268
+ Or more precisely: any HTTP client call where a `req.*` expression appears as the URL argument.
269
+
270
+ - [ ] **Secret detection in `--secrets` mode** — the AWS credential pattern
271
+ `AKIA[A-Z0-9]{16}` is correct for access key IDs. But it misses:
272
+ - AWS session tokens: `FwoGZXIvYXdz...` (base64-encoded, long)
273
+ - Azure connection strings: `DefaultEndpointsProtocol=https;AccountName=...`
274
+ - GCP service account keys: `"type": "service_account"` in JSON files
275
+ Consider adding at least the `DefaultEndpointsProtocol` pattern.
276
+
277
+ - [ ] **Output report — secret redaction** — the spec says "show first 4 chars + ***."
278
+ But the report is written to a file that may be committed to git.
279
+ Should the report file itself redact secrets, or just the console output?
280
+ Clarify: secrets are redacted in BOTH the console output AND the file report.
281
+ The file contains only: the matched pattern type, not any part of the secret value.
282
+
283
+ ### `/mindforge:map-codebase` command
284
+
285
+ - [ ] **Subagent B (Architecture Analyst) reads ALL files in src/**
286
+ On a large codebase (hundreds of files), this could exhaust the subagent's context.
287
+ Add: "For large codebases (> 200 source files): sample representative files
288
+ from each subdirectory rather than reading all files. Read: 2-3 files per
289
+ major directory, prioritising the largest files and entry points."
290
+
291
+ - [ ] **CONVENTIONS.md status: DRAFT** — the map-codebase command correctly marks
292
+ inferred conventions as DRAFT. But the prevent-and-proceed question is:
293
+ does `/mindforge:execute-phase` check whether CONVENTIONS.md is still in DRAFT
294
+ status before executing? If conventions are wrong, all generated code may violate
295
+ the actual project style.
296
+ Recommendation: add a DRAFT warning to STATE.md. When execute-phase reads STATE.md,
297
+ it should flag: "CONVENTIONS.md is in DRAFT status. Confirm conventions before
298
+ executing production code."
299
+
300
+ - [ ] **Temp directory cleanup** — the command deletes `.planning/map-temp/` at the end.
301
+ But if the command fails mid-way, the temp directory is left behind.
302
+ Add: check for and clean up temp directory at the START of the command too
303
+ (not just at the end), to prevent stale data from a previous failed run.
304
+
305
+ ### `/mindforge:discuss-phase` command
306
+
307
+ - [ ] **Domain detection** — the command identifies the phase domain as
308
+ "Visual/UI", "API/Backend", etc. But what if a phase spans multiple domains?
309
+ (e.g., "Add checkout feature" = UI + API + Database + Payment integration)
310
+ The command should support multi-domain phases: detect all relevant domains
311
+ and ask questions from each applicable set, not just the primary one.
312
+
313
+ - [ ] **`--auto` mode warning** — the command warns "results may not match your vision exactly."
314
+ This is too gentle. The warning should be more explicit:
315
+ "WARNING: auto mode means the planner makes ALL implementation decisions.
316
+ The output will be functionally correct but may not match your team's style,
317
+ your UX preferences, or specific technical choices you've already made.
318
+ Use only for throwaway work or when you genuinely don't have preferences."
319
+
320
+ - [ ] **CONTEXT.md — open questions section** — the template has an "Open questions"
321
+ section. But the plan-phase command reads CONTEXT.md to make plans.
322
+ Does plan-phase know to ask the user about open questions before planning?
323
+ If not: open questions get silently resolved by the planner, defeating their purpose.
324
+ Add a step to `plan-phase.md`: "Before planning, check CONTEXT.md for open questions.
325
+ Present them to the user and resolve before creating plans."
326
+
327
+ ---
328
+
329
+ ## REVIEW PASS 4 — Test Suite Quality
330
+
331
+ Read `tests/skills-platform.test.js` completely.
332
+
333
+ - [ ] **Trigger count minimum** — the test asserts "at least 5 trigger keywords."
334
+ Is 5 enough? The performance skill has 31 triggers. 5 seems too low.
335
+ Consider raising to 10 minimum for quality enforcement.
336
+
337
+ - [ ] **Trigger conflict test** — the test allows up to 5 conflicts between Tier 1 skills.
338
+ Enumerate the expected conflicts and verify there are no more than 5:
339
+ - "query" appears in both `database-patterns` and `performance`
340
+ - "endpoint" appears in both `api-design` and `security-review`
341
+ List all expected conflicts. If there are more than expected: investigate.
342
+
343
+ - [ ] **Missing test: loader ordering** — there is no test for "Project tier overrides
344
+ Org tier which overrides Core tier." This is a critical behavioural rule.
345
+ The test cannot fully test runtime behaviour, but it can verify that a project
346
+ tier skill with the same name as a core skill exists in the right directory.
347
+
348
+ - [ ] **Missing test: command content validation** — tests check command files exist
349
+ and are not empty. But they don't check for key content markers:
350
+ - `skills.md` should contain "validate" subcommand
351
+ - `review.md` should contain "CODE-REVIEW" report path
352
+ - `security-scan.md` should contain "OWASP"
353
+ - `map-codebase.md` should contain "subagent"
354
+ - `discuss-phase.md` should contain "CONTEXT.md"
355
+ Add these content smoke tests.
356
+
357
+ - [ ] **Missing test: MANIFEST.md path references** — every skill in MANIFEST.md
358
+ should reference a path that actually exists. Test this:
359
+ ```javascript
360
+ test('all MANIFEST.md paths resolve to existing files', () => {
361
+ const content = fs.readFileSync('.mindforge/org/skills/MANIFEST.md', 'utf8');
362
+ const pathPattern = /\.mindforge\/skills\/[\w-]+\/SKILL\.md/g;
363
+ const paths = content.match(pathPattern) || [];
364
+ paths.forEach(p => {
365
+ assert.ok(fs.existsSync(p), `MANIFEST.md references missing file: ${p}`);
366
+ });
367
+ });
368
+ ```
369
+
370
+ ---
371
+
372
+ ## REVIEW PASS 5 — Cross-Component Consistency
373
+
374
+ - [ ] **`package.json` version** — Day 3 skills require `min_mindforge_version: 0.3.0`.
375
+ Is `package.json` `version` field updated to at least `0.3.0`?
376
+ If not: all Day 3 skills will produce a compatibility warning on every task.
377
+ Flag if not updated.
378
+
379
+ - [ ] **CLAUDE.md → skills loader reference** — CLAUDE.md says to load skills using
380
+ the "full protocol in `.mindforge/engine/skills/loader.md`."
381
+ Does `loader.md` exist at that path? ✓
382
+ Does CLAUDE.md describe the loading as part of the Session Start Protocol,
383
+ or separately? Skills loading should happen AFTER context files are read but
384
+ BEFORE each task begins — not at session start (too early) and not mid-task (too late).
385
+ Verify the timing is correctly described.
386
+
387
+ - [ ] **`discuss-phase` → `plan-phase` handoff** — `discuss-phase` writes CONTEXT.md.
388
+ Does `plan-phase` explicitly reference reading CONTEXT.md?
389
+ If not: CONTEXT.md is created but ignored. This is a silent integration failure.
390
+ Check `plan-phase.md`: it should read CONTEXT.md before creating plans.
391
+
392
+ - [ ] **`map-codebase` CONVENTIONS.md DRAFT status** — `map-codebase` writes
393
+ CONVENTIONS.md with `# Status: DRAFT`. Does CLAUDE.md's Session Start Protocol
394
+ check for DRAFT status in CONVENTIONS.md and warn if found?
395
+ If not: agents will use unconfirmed conventions as if they were authoritative.
396
+
397
+ - [ ] **`security-scan` report path** — the command writes to `.planning/SECURITY-SCAN-[timestamp].md`
398
+ (top-level planning directory). All other reports go in `.planning/phases/[N]/`.
399
+ Is this inconsistency intentional? (Security scans are standalone, not phase-specific)
400
+ If intentional: document it explicitly. If not intentional: pick one convention.
401
+
402
+ ---
403
+
404
+ ## REVIEW PASS 6 — Security Review
405
+
406
+ ### Skills loading — injection safety
407
+ - [ ] The loader injects SKILL.md content into agent context. Could a malicious or
408
+ corrupted SKILL.md inject adversarial content into the agent's context?
409
+ (e.g., a SKILL.md that contains "IGNORE ALL PREVIOUS INSTRUCTIONS")
410
+ Mitigation: validate that SKILL.md content does not contain instruction-injection
411
+ patterns before loading. This is a prompt injection risk for project/org skills
412
+ especially, since users author those files.
413
+
414
+ ### `map-codebase` — what it reads
415
+ - [ ] The map-codebase command reads `.env` files to find service configurations.
416
+ Does it read `.env` files? If so: it could expose secrets in the analysis output.
417
+ The command must explicitly SKIP `.env` files and any file matching `.gitignore` patterns.
418
+ Add: "Never read `.env`, `.env.*`, `*.key`, `*.pem`, `secrets/*` during codebase mapping."
419
+
420
+ ### `security-scan` report persistence
421
+ - [ ] Security scan reports are written to `.planning/SECURITY-SCAN-*.md`.
422
+ These files are committed to git. They describe vulnerabilities in the codebase.
423
+ In a public repository, this would expose vulnerability information to attackers.
424
+ Add a note: "Security scan reports should not be committed to public repositories.
425
+ Add `.planning/SECURITY-SCAN-*.md` to `.gitignore` for public repos."
426
+ Consider adding this pattern to the Day 1 `.gitignore`.
427
+
428
+ ### Persona overrides — content validation
429
+ - [ ] Override files are in `.mindforge/personas/overrides/` and are applied to agent personas.
430
+ A malicious override file could instruct an agent to skip security checks or
431
+ bypass quality gates.
432
+ Mitigation: add to CLAUDE.md — "When loading persona override files, validate that
433
+ they do not contain phrases that remove mandatory behaviours. Specifically:
434
+ override files must not contain 'skip', 'ignore', or 'bypass' in proximity to
435
+ 'security', 'quality gate', or 'verify'. Flag any such override for human review."
436
+
437
+ ---
438
+
439
+ ## REVIEW OUTPUT FORMAT
440
+
441
+ ```
442
+ ## Finding [N] — [Severity]: [Short title]
443
+
444
+ **File:** [path/to/file.md line N]
445
+ **Category:** [Skills Engine / Skill Content / Commands / Tests / Consistency / Security]
446
+ **Severity:** BLOCKING | MAJOR | MINOR | SUGGESTION
447
+
448
+ **Issue:**
449
+ [Specific description]
450
+
451
+ **Impact:**
452
+ [What fails if unfixed]
453
+
454
+ **Recommendation:**
455
+ [Exact change]
456
+ ```
457
+
458
+ ---
459
+
460
+ ## REVIEW SUMMARY TABLE
461
+
462
+ ```
463
+ ## Day 3 Review Summary
464
+
465
+ | Category | BLOCKING | MAJOR | MINOR | SUGGESTION |
466
+ |----------------|----------|-------|-------|------------|
467
+ | Skills Engine | | | | |
468
+ | Skill Content | | | | |
469
+ | Commands | | | | |
470
+ | Test Suite | | | | |
471
+ | Consistency | | | | |
472
+ | Security | | | | |
473
+ | **TOTAL** | | | | |
474
+
475
+ ## Verdict
476
+ [ ] ✅ APPROVED — Proceed to DAY3-HARDEN.md
477
+ [ ] ⚠️ APPROVED WITH CONDITIONS — Fix [N] major findings
478
+ [ ] ❌ NOT APPROVED — [N] blocking findings. Fix and re-review.
479
+ ```
480
+
481
+ ---
482
+
483
+ **Branch:** `feat/mindforge-skills-platform`
484
+ **All BLOCKING items resolved → proceed to DAY3-HARDEN.md**