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,98 @@
1
+ # MindForge Skills Engine — Registry
2
+
3
+ ## Purpose
4
+ The skills registry tracks every available skill pack across all three tiers,
5
+ their versions, trigger keywords, compatibility requirements, and source locations.
6
+ The registry is the first thing the skills loader reads.
7
+
8
+ ## Registry file location
9
+ `.mindforge/org/skills/MANIFEST.md` — org-level manifest (shared via git)
10
+
11
+ ## Manifest format
12
+
13
+ The MANIFEST.md uses a structured table format readable by both humans and agents:
14
+
15
+ ```markdown
16
+ # MindForge Skills Manifest
17
+ # Version: 1.0.0
18
+ # MindForge compatibility: >=0.1.0
19
+ # Last updated: [ISO-8601]
20
+
21
+ ## Core Skills (Tier 1 — maintained by MindForge)
22
+
23
+ | Name | Version | Status | Min MindForge | Triggers (excerpt) |
24
+ |---|---|---|---|---|
25
+ | security-review | 1.0.0 | stable | 0.1.0 | auth, password, token, JWT |
26
+ | code-quality | 1.0.0 | stable | 0.1.0 | refactor, review, lint |
27
+ | api-design | 1.0.0 | stable | 0.1.0 | API, endpoint, REST |
28
+ | testing-standards | 1.0.0 | stable | 0.1.0 | test, spec, coverage |
29
+ | documentation | 1.0.0 | stable | 0.1.0 | README, docs, changelog |
30
+ | performance | 1.0.0 | stable | 0.3.0 | performance, latency, cache |
31
+ | accessibility | 1.0.0 | stable | 0.3.0 | a11y, aria, wcag, screen reader |
32
+ | data-privacy | 1.0.0 | stable | 0.3.0 | GDPR, PII, consent, retention |
33
+ | incident-response | 1.0.0 | stable | 0.3.0 | incident, outage, postmortem |
34
+ | database-patterns | 1.0.0 | stable | 0.3.0 | query, index, migration, N+1 |
35
+
36
+ ## Org Skills (Tier 2 — maintained by your organisation)
37
+
38
+ | Name | Version | Status | Min MindForge | Triggers (excerpt) |
39
+ |---|---|---|---|---|
40
+ | [org-skill-name] | 1.0.0 | stable | 0.1.0 | [trigger keywords] |
41
+
42
+ ## Project Skills (Tier 3 — maintained per project)
43
+
44
+ | Name | Version | Status | Min MindForge | Triggers (excerpt) |
45
+ |---|---|---|---|---|
46
+ | [project-skill-name] | 1.0.0 | stable | 0.1.0 | [trigger keywords] |
47
+ ```
48
+
49
+ ## Parsing rules for MANIFEST.md
50
+
51
+ 1. Only parse rows inside the three tier tables.
52
+ 2. Treat the header row as column definitions.
53
+ 3. Columns are positional: Name | Version | Status | Min MindForge | Triggers (excerpt) or Path.
54
+ 4. Ignore placeholder rows like `(none yet ...)`.
55
+ 5. If a row is missing required columns: mark as invalid and warn.
56
+
57
+ ## Registry operations
58
+
59
+ ### Scan and build registry (run at session start)
60
+ If MANIFEST.md does not exist on first install:
61
+ 1. Create it with the current Core skills table from the MindForge default template
62
+ 2. Log a warning: "MANIFEST.md was missing; created default registry."
63
+ 3. Continue scan on the newly created file
64
+
65
+ 1. Read `.mindforge/org/skills/MANIFEST.md`
66
+ 2. For each skill in the manifest, verify its SKILL.md file exists at the expected path
67
+ 3. If a skill in the manifest has no corresponding file: mark as `missing`
68
+ 4. If a SKILL.md file exists but is not in the manifest: mark as `unregistered`
69
+ 5. Build the in-session registry: a flat list of all valid skills with their metadata
70
+
71
+ ### Registry health check
72
+ Run as part of `/mindforge:health`:
73
+ - All manifest entries have corresponding SKILL.md files ✅ / ❌ missing
74
+ - All SKILL.md files have valid frontmatter (name, version, triggers) ✅ / ❌ invalid
75
+ - No trigger keyword conflicts between skills at the same tier ✅ / ⚠️ conflict
76
+ - All skill versions are valid semver strings ✅ / ❌ invalid
77
+
78
+ ### Adding a skill to the registry
79
+ 1. Create the skill directory and SKILL.md (content per the authoring guide)
80
+ 2. Validate the SKILL.md frontmatter is complete and correct
81
+ 3. Add an entry to MANIFEST.md in the correct tier section
82
+ 4. Commit: `feat(skills): add [skill-name] v[version]`
83
+
84
+ ### Removing a skill from the registry
85
+ 1. Mark the skill as `deprecated` in MANIFEST.md (do not delete the entry)
86
+ 2. Add a `deprecated_at` and `replacement` field to the SKILL.md frontmatter
87
+ 3. After 2 sprints of deprecation: delete the skill directory and manifest entry
88
+ 4. Never hard-delete a skill that might still be referenced in existing PLAN files
89
+
90
+ ## Tier priority for conflict resolution
91
+ When two skills at different tiers have overlapping trigger keywords:
92
+ Priority order: Project (Tier 3) > Org (Tier 2) > Core (Tier 1)
93
+
94
+ The higher-priority tier's skill is loaded. The lower-priority skill is not loaded.
95
+ This allows org and project skills to override core skill behaviour intentionally.
96
+
97
+ When two skills at the SAME tier have conflicting trigger keywords:
98
+ See `conflict-resolver.md`.
@@ -0,0 +1,75 @@
1
+ # MindForge Skills Engine — Versioning
2
+
3
+ ## Purpose
4
+ Define how skill versions work, what constitutes a breaking change, and how
5
+ agents handle version mismatches between what is installed and what is needed.
6
+
7
+ ## Versioning scheme
8
+ Skills use Semantic Versioning (semver.org): MAJOR.MINOR.PATCH
9
+
10
+ | Increment | When | Example |
11
+ |---|---|---|
12
+ | MAJOR | Breaking change to skill interface (removed triggers, changed output format, changed mandatory actions) | 1.0.0 → 2.0.0 |
13
+ | MINOR | New trigger keywords, new optional sections, new examples | 1.0.0 → 1.1.0 |
14
+ | PATCH | Clarifications, typo fixes, improved examples with no behaviour change | 1.0.0 → 1.0.1 |
15
+
16
+ ## Frontmatter version fields
17
+
18
+ Every SKILL.md must have these frontmatter fields:
19
+
20
+ ```yaml
21
+ ---
22
+ name: security-review
23
+ version: 1.2.0
24
+ min_mindforge_version: 0.1.0
25
+ status: stable
26
+ deprecated_at: # ISO-8601 date if deprecated, empty if not
27
+ replacement: # skill name if deprecated, empty if not
28
+ breaking_changes:
29
+ - "2.0.0: removed 'xss' as standalone trigger (now part of 'injection' trigger)"
30
+ changelog:
31
+ - "1.2.0: added supply chain security check"
32
+ - "1.1.0: expanded OWASP checklist to include A08-A10"
33
+ - "1.0.0: initial stable release"
34
+ ---
35
+ ```
36
+
37
+ ## Compatibility check protocol
38
+
39
+ Before loading any skill, verify compatibility:
40
+
41
+ ### Check 1 — MindForge version compatibility
42
+ Read `min_mindforge_version` from the skill's frontmatter.
43
+ Compare against the current MindForge version (from `package.json`).
44
+
45
+ If skill's `min_mindforge_version` > current MindForge version:
46
+ - Log a warning: "Skill [name] v[X] requires MindForge v[min] but current is v[current]."
47
+ - Load the skill anyway (do not block execution)
48
+ - Add to AUDIT entry: `"compatibility_warning": "skill requires newer MindForge"`
49
+
50
+ ### Check 2 — Deprecation check
51
+ If the skill's `deprecated_at` field is set:
52
+ - Warn: "Skill [name] was deprecated on [date]. Use [replacement] instead."
53
+ - Load the replacement skill (if available) in addition to the deprecated one
54
+ - Add to AUDIT entry: `"deprecated_skill_loaded": true`
55
+
56
+ ### Check 3 — Breaking change awareness
57
+ If the skill has a MAJOR version bump since it was last used in this project:
58
+ - List the breaking changes from the `breaking_changes` field
59
+ - Alert: "Skill [name] has breaking changes since your last usage.
60
+ Review these before continuing: [list changes]"
61
+
62
+ ## Skill upgrade protocol
63
+
64
+ When `/mindforge:skills update [skill-name]` is run:
65
+
66
+ 1. Check current version from MANIFEST.md
67
+ 2. Compare against the latest version in the MindForge repository
68
+ 3. If a newer version exists:
69
+ a. Show the diff in behaviour (changelog entries)
70
+ b. If MINOR or PATCH: auto-update, no confirmation needed
71
+ c. If MAJOR: show breaking changes, require explicit confirmation
72
+ 4. After update: re-validate all PLAN files that reference this skill
73
+ (check if any `<context>` fields would be affected by the breaking changes)
74
+ 5. Update MANIFEST.md with new version
75
+ 6. Commit: `chore(skills): upgrade [name] v[old] → v[new]`
@@ -0,0 +1,111 @@
1
+ # MindForge Engine — Verification Pipeline
2
+
3
+ ## Purpose
4
+ Automatically verify that a completed phase has actually delivered what it
5
+ promised in REQUIREMENTS.md. This is the agent's self-audit before human UAT.
6
+
7
+ ## Four verification stages
8
+
9
+ ### Stage 1 — Automated test suite
10
+ ```bash
11
+ # Run the project's test suite (adapt command to project)
12
+ npm test
13
+ # or
14
+ pytest
15
+ # or
16
+ cargo test
17
+ ```
18
+
19
+ Pass criteria: ALL tests pass, zero failures.
20
+ If any fail: stop. Do not proceed to Stage 2.
21
+ Create fix plans for the failing tests before continuing (e.g., `PLAN-[N]-FIX-01.md`).
22
+ Record in VERIFICATION.md: "Stage 1: FAILED — [X] tests failing"
23
+
24
+ ### Stage 2 — Requirement traceability
25
+ For each functional requirement tagged v1 for this phase in REQUIREMENTS.md:
26
+
27
+ 1. Read the requirement and its acceptance criterion
28
+ 2. Search the codebase for the implementation:
29
+ ```bash
30
+ grep -r "[key term from requirement]" src/ --include="*.ts"
31
+ ```
32
+ 3. Find a test that covers this requirement:
33
+ ```bash
34
+ grep -r "[acceptance criterion term]" tests/ --include="*.test.ts"
35
+ ```
36
+ 4. Classify:
37
+ - ✅ Implemented and tested
38
+ - ⚠️ Implemented but no test
39
+ - ❌ Not found
40
+
41
+ Any ❌ result: create a fix plan before proceeding to Stage 3.
42
+ Any ⚠️ result: create a test task for the next phase backlog.
43
+
44
+ ### Stage 3 — Type safety and linting (TypeScript/Python projects)
45
+ ```bash
46
+ # TypeScript
47
+ npx tsc --noEmit
48
+ npx eslint . --ext .ts,.tsx --max-warnings 0
49
+
50
+ # Python
51
+ mypy .
52
+ ruff check .
53
+ ```
54
+
55
+ Pass criteria: Zero errors, zero warnings.
56
+ If any errors: create targeted fix tasks. Do not proceed to Stage 4 with errors.
57
+
58
+ ### Stage 4 — Security regression check
59
+ Activate `security-reviewer.md` persona.
60
+ Run the OWASP checklist from `security-review/SKILL.md` against all files
61
+ modified in this phase.
62
+
63
+ Specifically look for:
64
+ - Any new endpoints without authentication (if the project uses auth)
65
+ - Any new database queries without parameterisation
66
+ - Any new file handling without MIME type validation
67
+ - Any new environment variables without validation at startup
68
+
69
+ Write findings to `.planning/phases/[N]/SECURITY-REVIEW-[N].md`.
70
+
71
+ ## VERIFICATION.md template
72
+
73
+ Write to `.planning/phases/[N]/VERIFICATION.md`:
74
+
75
+ ```markdown
76
+ # Phase [N] Verification Report
77
+
78
+ ## Date
79
+ [ISO-8601]
80
+
81
+ ## Stage 1 — Test suite
82
+ - Command: `[test command]`
83
+ - Result: [X] tests passing, [Y] failing
84
+ - Status: ✅ PASS / ❌ FAIL
85
+
86
+ ## Stage 2 — Requirement traceability
87
+
88
+ | FR ID | Requirement | Status | Evidence |
89
+ |-------|-------------------------------|--------|---------------------------------|
90
+ | FR-01 | [requirement text] | ✅ | `src/auth/login.ts:47` + test |
91
+ | FR-02 | [requirement text] | ✅ | `src/auth/register.ts:23` + test|
92
+ | FR-03 | [requirement text] | ⚠️ | `src/auth/reset.ts:15`, no test |
93
+
94
+ ## Stage 3 — Static analysis
95
+ - TypeScript errors: [0 / N]
96
+ - ESLint warnings: [0 / N]
97
+ - Status: ✅ PASS / ❌ FAIL
98
+
99
+ ## Stage 4 — Security regression
100
+ - New endpoints reviewed: [X]
101
+ - New database queries reviewed: [X]
102
+ - Findings: [None / see SECURITY-REVIEW-[N].md]
103
+ - Status: ✅ PASS / ❌ FAIL
104
+
105
+ ## Overall status
106
+ ✅ All stages passed — ready for human UAT
107
+ ❌ [N] stages failed — fix plans created
108
+
109
+ ## Fix plans created (if any)
110
+ - `PLAN-[N]-FIX-01.md`: [what it fixes]
111
+ ```
@@ -0,0 +1,235 @@
1
+ # MindForge Engine — Wave Executor
2
+
3
+ ## Purpose
4
+ Group tasks from the dependency graph into waves and execute each wave.
5
+ Within a wave, all tasks are independent and can run in parallel.
6
+ Between waves, execution is strictly sequential.
7
+
8
+ ## Wave grouping algorithm
9
+
10
+ ### Input
11
+ The dependency graph from `dependency-parser.md`.
12
+
13
+ ### Algorithm — Kahn's topological sort (adapted for waves)
14
+
15
+ ```
16
+ Initialize:
17
+ remaining = all plan IDs
18
+ completed = empty set
19
+ waves = []
20
+
21
+ Repeat until remaining is empty:
22
+ current_wave = []
23
+ for each plan in remaining:
24
+ if ALL of plan's dependencies are in completed:
25
+ add plan to current_wave
26
+
27
+ if current_wave is empty AND remaining is not empty:
28
+ ERROR: circular dependency detected (should have been caught by parser)
29
+
30
+ waves.append(current_wave)
31
+ completed.add(all plans in current_wave)
32
+ remaining.remove(all plans in current_wave)
33
+
34
+ Return waves
35
+ ```
36
+
37
+ ### Example output for the 5-plan example above:
38
+ ```
39
+ Wave 1: [01, 02] ← No dependencies — run in parallel
40
+ Wave 2: [03, 04] ← Depend on Wave 1 — run in parallel after Wave 1
41
+ Wave 3: [05] ← Depends on both Wave 2 tasks — runs after Wave 2
42
+ ```
43
+
44
+ ## Wave execution protocol
45
+
46
+ ### Before starting a wave
47
+ 1. Confirm all plans in previous wave have:
48
+ - Status: Completed in SUMMARY file
49
+ - Git commit SHA recorded
50
+ - `<verify>` step passed
51
+
52
+ If any plan in the previous wave failed: STOP the entire phase.
53
+ Do not start the next wave. Report which plan failed and why.
54
+
55
+ ### During a wave — parallel execution
56
+ For each plan in the current wave, spawn a subagent with this exact context
57
+ package (see `context-injector.md` for the injection protocol):
58
+
59
+ ### Subagent invocation protocol (runtime-agnostic)
60
+ Use the runtime-specific mechanism, but keep the inputs identical:
61
+ - **Claude Code:** spawn a subagent with the context package and the PLAN file.
62
+ Require the subagent to write `SUMMARY-[N]-[M].md` and report completion.
63
+ - **Antigravity:** spawn an agent via `.agent/` command with the same context
64
+ package and the PLAN file. Require the same SUMMARY file output.
65
+
66
+ **Context package per subagent:**
67
+ ```
68
+ REQUIRED (always inject):
69
+ .mindforge/org/CONVENTIONS.md
70
+ .mindforge/org/SECURITY.md
71
+ The specific PLAN file (PLAN-[N]-[M].md)
72
+ The persona file specified in <persona> field
73
+
74
+ CONDITIONAL (inject only if referenced in plan):
75
+ .planning/ARCHITECTURE.md ← if plan touches architecture
76
+ .planning/decisions/ADR-*.md ← only ADRs referenced in plan's <context>
77
+ Relevant SKILL.md files ← only skills listed in plan's <context>
78
+
79
+ NEVER inject to subagents:
80
+ STATE.md ← subagents do not need project-level state
81
+ ROADMAP.md ← subagents do not need project-level roadmap
82
+ HANDOFF.json ← subagents do not maintain session continuity
83
+ Other plans ← subagents must not see sibling task plans
84
+ ```
85
+
86
+ ### After each plan in a wave completes
87
+ The executing subagent must:
88
+ 1. Run the `<verify>` step and capture output
89
+ 2. Write SUMMARY-[N]-[M].md with verify output included
90
+ 3. Commit with: `git add [files-in-plan] && git commit -m "type(scope): task name"`
91
+ 4. Write an AUDIT entry (see `audit/AUDIT-SCHEMA.md`)
92
+ 5. Report completion status back to the orchestrator
93
+
94
+ ### Wave completion
95
+ After all plans in a wave complete:
96
+ 1. Collect all SUMMARY files from this wave
97
+ 2. Run the project's full test suite
98
+ 3. If no test command exists yet: STOP and instruct the user to define it
99
+ in CONVENTIONS.md or add an initial test harness.
100
+ 4. If tests fail: identify which plan introduced the failure (use `git bisect`)
101
+ 5. Do not start the next wave until all tests pass
102
+
103
+ ## Failure handling
104
+
105
+ ### Task verify failure (mid-wave)
106
+
107
+ When a task's `<verify>` step fails:
108
+
109
+ 1. **Stop the task immediately.** Do not attempt a second run automatically.
110
+ 2. **Write the SUMMARY file** with status `Failed ❌` and the full verify output.
111
+ 3. **Write a `task_failed` AUDIT entry** (see AUDIT-SCHEMA.md).
112
+ 4. **Stop the entire wave.** Other tasks in this wave that have not yet started:
113
+ do not start them. Tasks already running in parallel: let them complete
114
+ naturally, but do not start the next wave regardless of their outcome.
115
+ 5. **Report to the orchestrator:**
116
+ ```
117
+ ━━━ Wave [W] STOPPED — Task Failure ━━━━━━━━━━━━━━━━━━━━━━
118
+ Failed task : Plan [N]-[M]: [task name]
119
+ Verify output:
120
+ [full verify output]
121
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
122
+ ```
123
+ 6. **Ask the user:**
124
+ ```
125
+ Options:
126
+ 1. Spawn debug agent to diagnose the failure
127
+ 2. Show me the failing code and I'll fix it manually
128
+ 3. Skip this task and continue the wave (not recommended)
129
+ 4. Abort the entire phase
130
+
131
+ Choose 1, 2, 3, or 4:
132
+ ```
133
+ 7. If user chooses 1: invoke `/mindforge:debug` with the failure context pre-loaded.
134
+ 8. If user chooses 3 (skip): write a `quality_gate_failed` AUDIT entry with
135
+ `"gate": "verify_skipped_by_user"` and continue. This is tracked.
136
+ 9. If user chooses 4: update STATE.md with `status: Phase [N] aborted` and stop.
137
+
138
+ ### Test suite failure (between waves)
139
+
140
+ When the test suite fails after a wave completes:
141
+
142
+ 1. **Identify the failing tests** — capture the full test output.
143
+ 2. **Identify the likely causal commit:**
144
+ ```bash
145
+ git log --oneline -[number of tasks in this wave]
146
+ ```
147
+ 3. **Report specifically:**
148
+ ```
149
+ ━━━ Test Suite Failure After Wave [W] ━━━━━━━━━━━━━━━━━━━━━
150
+ [N] tests failing.
151
+
152
+ Likely cause: [commit sha] — [commit message]
153
+ Failing tests:
154
+ - [test name]: [error]
155
+ - [test name]: [error]
156
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
157
+ ```
158
+ 4. **Write a `quality_gate_failed` AUDIT entry.**
159
+ 5. **Do not start the next wave.** This is absolute — no exceptions.
160
+ 6. **Ask the user:**
161
+ ```
162
+ Options:
163
+ 1. Debug the failing tests now
164
+ 2. Revert the last wave's commits and re-plan
165
+ 3. I'll fix the tests manually — notify me when done
166
+ ```
167
+
168
+ ### Subagent hang (no SUMMARY file after expected duration)
169
+
170
+ When a subagent has been running for an unexpectedly long time:
171
+ (Heuristic: if a task with < 5 files has no SUMMARY after 30 minutes of session time)
172
+
173
+ 1. Alert the user: "Task [N]-[M] appears to be taking longer than expected.
174
+ Check if the subagent is still running or has stalled."
175
+ 2. Provide the option to: wait longer | restart the task | skip the task.
176
+ 3. Never silently let a wave stall indefinitely.
177
+
178
+ ### Missing PLAN file detected at runtime
179
+
180
+ When execute-phase discovers a PLAN file referenced in the dependency graph is missing:
181
+
182
+ 1. Stop immediately.
183
+ 2. Report: "PLAN-[N]-[M].md was referenced but does not exist.
184
+ Run /mindforge:plan-phase [N] to regenerate the missing plan."
185
+ 3. Do not continue with partial plan execution.
186
+
187
+ ### Phase completion
188
+ After all waves complete:
189
+ 1. Run the phase verification pipeline (see `verification-pipeline.md`)
190
+ 2. Write VERIFICATION.md
191
+ 3. Update STATE.md: phase N = complete
192
+ 4. Update HANDOFF.json with next phase information
193
+
194
+ ## Wave execution report format
195
+
196
+ Write to `.planning/phases/[N]/WAVE-REPORT-[N].md`:
197
+
198
+ ```markdown
199
+ # Wave Execution Report — Phase [N]
200
+
201
+ ## Wave 1
202
+ | Plan | Task Name | Status | Duration | Commit |
203
+ |------|---------------------|--------|----------|------------|
204
+ | 01 | Create user model | ✅ | ~8 min | abc1234 |
205
+ | 02 | Create product model| ✅ | ~6 min | def5678 |
206
+
207
+ **Wave 1 test results:** All passing ✅
208
+
209
+ ## Wave 2
210
+ | Plan | Task Name | Status | Duration | Commit |
211
+ |------|-----------------------|--------|----------|------------|
212
+ | 03 | User API endpoints | ✅ | ~12 min | ghi9012 |
213
+ | 04 | Product API endpoints | ✅ | ~10 min | jkl3456 |
214
+
215
+ **Wave 2 test results:** All passing ✅
216
+
217
+ ## Wave 3
218
+ | Plan | Task Name | Status | Duration | Commit |
219
+ |------|---------------|--------|----------|------------|
220
+ | 05 | Checkout UI | ✅ | ~15 min | mno7890 |
221
+
222
+ **Wave 3 test results:** All passing ✅
223
+
224
+ ### Failure row format (if any task fails)
225
+ | Plan | Task Name | Status | Duration | Commit | Error |
226
+ |------|-------------------|--------|----------|---------|-------|
227
+ | 02 | Create product model | ❌ | ~4 min | n/a | Verify failed: TypeError ... |
228
+
229
+ ## Phase summary
230
+ - Total tasks: 5
231
+ - Total commits: 5
232
+ - Elapsed: ~51 min
233
+ - Test results: All passing
234
+ - Status: Phase [N] complete ✅
235
+ ```
@@ -0,0 +1,17 @@
1
+ # MindForge Governance Configuration
2
+
3
+ ## Tier policy
4
+ - Tier 1: low-risk documentation or isolated code cleanup
5
+ - Tier 2: broader product or operational changes
6
+ - Tier 3: security, privacy, auth, secrets, payments, compliance, or emergency
7
+
8
+ ## Enforcement rules
9
+ - Tier 3 signals have higher priority than file-count heuristics
10
+ - Compliance gates are blocking
11
+ - Integration failures are non-fatal unless they prevent a required approval or
12
+ compliance decision from being observed
13
+
14
+ ## Record locations
15
+ - Approval files: `.planning/approvals/`
16
+ - Audit archive: `.planning/audit-archive/`
17
+ - Milestones: `.planning/milestones/`
@@ -0,0 +1,37 @@
1
+ # MindForge Governance — Approval Workflow
2
+
3
+ ## Purpose
4
+ Define the human approval process for Tier 2 peer review, Tier 3
5
+ security/compliance review, and emergency override handling.
6
+
7
+ ## Approval sources
8
+ Approvals are represented as files in `.planning/approvals/`. Commands must list
9
+ only `status: pending` approval requests by default.
10
+
11
+ ## Identity model
12
+ Current approver identity is derived from `git config user.email` or `$USER`.
13
+ This is convenient but spoofable. For higher-assurance environments, integrate
14
+ the approval flow with your IdP or SCM identity provider.
15
+
16
+ ## Standard workflow
17
+ 1. Classifier determines tier
18
+ 2. Create approval file with reason, scope, diff summary, and expiry time
19
+ 3. Notify configured approvers
20
+ 4. Record approval or rejection
21
+ 5. On rejection, create a fix task that carries the rejection reason forward
22
+ 6. Re-request approval only after the rejection reason has been addressed
23
+
24
+ ## Expiry and SLA handling
25
+ Expiry processing is session-dependent. If no MindForge session is active, an
26
+ expired approval will be detected the next time the approval command runs.
27
+
28
+ Use config-driven values from `INTEGRATIONS-CONFIG.md`:
29
+ - `TIER2_APPROVERS`
30
+ - `TIER3_APPROVERS`
31
+ - `EMERGENCY_APPROVERS`
32
+ - SLA and expiry hour settings
33
+
34
+ ## Emergency override
35
+ Emergency approval requires the `--emergency` flag and an approver identity that
36
+ appears in `EMERGENCY_APPROVERS`. Log the approver identity and rationale in
37
+ AUDIT. Emergency override bypass is never implicit.
@@ -0,0 +1,63 @@
1
+ # MindForge Governance — Change Classifier
2
+
3
+ ## Purpose
4
+ Assign each change a governance tier before execution and again before release.
5
+ Tier 3 signals always override lower-risk heuristics.
6
+
7
+ ## Trigger points
8
+ - Before each plan executes
9
+ - Before PR or merge request creation
10
+ - Before emergency override requests are processed
11
+
12
+ ## Tier model
13
+
14
+ | Tier | Meaning | Approval requirement |
15
+ |---|---|---|
16
+ | 1 | Low-risk documentation or isolated refactor | none |
17
+ | 2 | Broad change, cross-cutting impact, or moderate operational risk | peer approval |
18
+ | 3 | Security, privacy, auth, payment, secrets, or compliance-sensitive | security/compliance approval |
19
+
20
+ ## Step 1 — Base heuristics
21
+ - More than 10 files or more than 300 lines changed defaults to Tier 2
22
+ - Infra, deployment, or schema changes default to at least Tier 2
23
+ - File count is only a signal; it never downgrades a Tier 3 match
24
+
25
+ ## Step 2 — Apply Tier 3 rules first
26
+ Tier 3 uses three independent signals. Any one match makes the change Tier 3.
27
+
28
+ ### Signal A — File path patterns
29
+ Security-critical directories and files:
30
+ `auth/`, `security/`, `payment/`, `billing/`, `privacy/`, `crypto/`, `secrets/`
31
+
32
+ Security-critical names:
33
+ `login.ts`, `logout.ts`, `token.ts`, `password.ts`, `credentials.ts`,
34
+ `session.ts`, `oauth.ts`, `jwt.ts`, `hash.ts`, `encrypt.ts`, `stripe.ts`,
35
+ `payment.ts`, `billing.ts`, `pii.ts`, `consent.ts`
36
+
37
+ ### Signal B — Code content patterns
38
+ Scan the actual diff content, not only filenames, for patterns such as:
39
+ `bcrypt`, `argon2`, `jwt.sign`, `jwt.verify`, `jose.sign`, `jose.verify`,
40
+ `stripe.`, `paypal.`, `createCipheriv`, `createDecipheriv`, `crypto.subtle`,
41
+ `hashPassword`, `verifyPassword`, `encrypt(`, `decrypt(`, `role.*permission`,
42
+ `hasPermission`, `SET ROLE`, `GRANT`
43
+
44
+ This protects against security-critical code being added to innocuous filenames
45
+ like `src/utils/helper.ts`.
46
+
47
+ ### Signal C — AUDIT history patterns
48
+ If the current phase has a recent HIGH or CRITICAL `security_finding`, the next
49
+ change in that phase is elevated to Tier 3 automatically.
50
+
51
+ ## Classification audit entry
52
+ Record why the tier was selected:
53
+
54
+ ```json
55
+ {
56
+ "event": "change_classified",
57
+ "tier": 3,
58
+ "classification_reason": "code pattern: jwt.sign found in src/utils/helper.ts",
59
+ "signals_checked": ["file_path", "code_content", "audit_history"],
60
+ "signal_triggered": "code_content",
61
+ "pattern_matched": "jwt.sign"
62
+ }
63
+ ```
@@ -0,0 +1,31 @@
1
+ # MindForge Governance — Compliance Gates
2
+
3
+ ## Purpose
4
+ Apply non-bypassable release gates for secrets, approvals, and privacy controls.
5
+
6
+ ## Gate 1 — Required verification
7
+ The plan's verify step and the project test suite must pass.
8
+
9
+ ## Gate 2 — Required approvals
10
+ Tier 2 and Tier 3 changes must have approved, non-expired approval records.
11
+
12
+ ## Gate 3 — Secret detection
13
+ No real secrets may enter the diff, audit log, or published docs.
14
+ Override is not permitted.
15
+
16
+ For tests that exercise secret detection, use clearly fake patterns that do not
17
+ match production secret regexes, for example `TEST_ONLY_FAKE_KEY_abc123`.
18
+
19
+ ## Gate 4 — GDPR/PII compliance check
20
+ This gate runs independently of skill loading.
21
+
22
+ Trigger if the diff adds fields or columns resembling:
23
+ `email`, `phone`, `mobile`, `address`, `postcode`, `zip`, `ssn`, `dob`,
24
+ `birth_date`, `first_name`, `last_name`, `national_id`, `passport`,
25
+ `credit_card`, `bank_account`, `iban`, `bic`
26
+
27
+ If triggered, verify `.planning/ARCHITECTURE.md` documents retention policy for
28
+ the relevant data. If retention is missing:
29
+ - block completion
30
+ - write `compliance_gate_failed` to AUDIT
31
+ - require Tier 3 compliance approval for override