mindforge-cc 2.3.0 → 2.3.5

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 (111) hide show
  1. package/.mindforge/memory/knowledge-base.jsonl +11 -0
  2. package/.mindforge/memory/pattern-library.jsonl +2 -0
  3. package/.mindforge/memory/team-preferences.jsonl +5 -0
  4. package/.planning/AUDIT.jsonl +1 -1
  5. package/.planning/HANDOFF.json +6 -26
  6. package/.planning/ROADMAP.md +3 -1
  7. package/.planning/jira-sync.json +3 -7
  8. package/.planning/phases/.gitkeep +0 -0
  9. package/.planning/research/.gitkeep +0 -0
  10. package/.planning/screenshots/.gitkeep +0 -0
  11. package/.planning/slack-threads.json +1 -4
  12. package/CHANGELOG.md +69 -9
  13. package/README.md +1 -1
  14. package/RELEASENOTES.md +1 -1
  15. package/bin/installer-core.js +143 -46
  16. package/bin/wizard/theme.js +3 -1
  17. package/package.json +1 -1
  18. package/.planning/approvals/v2-architecture-approval.json +0 -15
  19. package/.planning/decisions/ADR-001-handoff-tracking.md +0 -41
  20. package/.planning/decisions/ADR-002-markdown-commands.md +0 -46
  21. package/.planning/decisions/ADR-003-skills-trigger-model.md +0 -37
  22. package/.planning/decisions/ADR-004-wave-parallelism-model.md +0 -45
  23. package/.planning/decisions/ADR-005-append-only-audit-log.md +0 -51
  24. package/.planning/decisions/ADR-006-tiered-skills-system.md +0 -22
  25. package/.planning/decisions/ADR-007-trigger-keyword-model.md +0 -22
  26. package/.planning/decisions/ADR-008-just-in-time-skill-loading.md +0 -29
  27. package/.planning/decisions/ADR-009-enterprise-integration-retry-policy.md +0 -8
  28. package/.planning/decisions/ADR-010-governance-tier-escalation.md +0 -8
  29. package/.planning/decisions/ADR-011-multi-developer-handoff-contract.md +0 -8
  30. package/.planning/decisions/ADR-012-intelligence-feedback-loops.md +0 -19
  31. package/.planning/decisions/ADR-013-mindforge-md-constitution.md +0 -16
  32. package/.planning/decisions/ADR-014-metrics-as-signals-not-evaluation.md +0 -15
  33. package/.planning/decisions/ADR-015-npm-based-skill-registry.md +0 -26
  34. package/.planning/decisions/ADR-016-ci-exit-code-0-on-timeout.md +0 -27
  35. package/.planning/decisions/ADR-017-sdk-localhost-only.md +0 -28
  36. package/.planning/decisions/ADR-018-installer-self-install-detection.md +0 -15
  37. package/.planning/decisions/ADR-019-self-update-scope-preservation.md +0 -14
  38. package/.planning/decisions/ADR-020-v1.0.0-stable-interface-contract.md +0 -23
  39. package/.planning/decisions/ADR-021-autonomy-boundary.md +0 -17
  40. package/.planning/decisions/ADR-022-node-repair-hierarchy.md +0 -19
  41. package/.planning/decisions/ADR-023-gate-3-timing.md +0 -15
  42. package/.planning/decisions/ADR-036-learn-command-docs-as-skill-source.md +0 -26
  43. package/.planning/decisions/ADR-037-auto-capture-frequency-threshold.md +0 -26
  44. package/.planning/decisions/ADR-038-skill-quality-minimum-60.md +0 -27
  45. package/.planning/phases/day1/REVIEW-DAY1.md +0 -50
  46. package/.planning/phases/day1/SECURITY-REVIEW-DAY1.md +0 -15
  47. package/.planning/phases/day2/REVIEW-DAY2.md +0 -521
  48. package/.planning/phases/day3/REVIEW-DAY3.md +0 -234
  49. /package/{.planning/phases/01-migrate-gsd-to-mindforge/.gitkeep → .mindforge/memory/decision-library.jsonl} +0 -0
  50. /package/docs/{Context → context}/Master-Context.md +0 -0
  51. /package/docs/{References → references}/audit-events.md +0 -0
  52. /package/docs/{References → references}/checkpoints.md +0 -0
  53. /package/docs/{References → references}/commands.md +0 -0
  54. /package/docs/{References → references}/config-reference.md +0 -0
  55. /package/docs/{References → references}/continuation-format.md +0 -0
  56. /package/docs/{References → references}/decimal-phase-calculation.md +0 -0
  57. /package/docs/{References → references}/git-integration.md +0 -0
  58. /package/docs/{References → references}/git-planning-commit.md +0 -0
  59. /package/docs/{References → references}/model-profile-resolution.md +0 -0
  60. /package/docs/{References → references}/model-profiles.md +0 -0
  61. /package/docs/{References → references}/phase-argument-parsing.md +0 -0
  62. /package/docs/{References → references}/planning-config.md +0 -0
  63. /package/docs/{References → references}/questioning.md +0 -0
  64. /package/docs/{References → references}/sdk-api.md +0 -0
  65. /package/docs/{References → references}/skills-api.md +0 -0
  66. /package/docs/{References → references}/tdd.md +0 -0
  67. /package/docs/{References → references}/ui-brand.md +0 -0
  68. /package/docs/{References → references}/user-profiling.md +0 -0
  69. /package/docs/{References → references}/verification-patterns.md +0 -0
  70. /package/docs/{References → references}/workstream-flag.md +0 -0
  71. /package/docs/{Templates → templates}/Agents/CLAUDE-MD.md +0 -0
  72. /package/docs/{Templates → templates}/Agents/COPILOT-INSTRUCTIONS.md +0 -0
  73. /package/docs/{Templates → templates}/Agents/DEBUGGER-PROMPT.md +0 -0
  74. /package/docs/{Templates → templates}/Agents/PLANNER-PROMPT.md +0 -0
  75. /package/docs/{Templates → templates}/Execution/CONTINUE-HERE.md +0 -0
  76. /package/docs/{Templates → templates}/Execution/DISCUSSION-LOG.md +0 -0
  77. /package/docs/{Templates → templates}/Execution/PHASE-PROMPT.md +0 -0
  78. /package/docs/{Templates → templates}/Execution/STATE.md +0 -0
  79. /package/docs/{Templates → templates}/Execution/SUMMARY-COMPLEX.md +0 -0
  80. /package/docs/{Templates → templates}/Execution/SUMMARY-MINIMAL.md +0 -0
  81. /package/docs/{Templates → templates}/Execution/SUMMARY-STANDARD.md +0 -0
  82. /package/docs/{Templates → templates}/Execution/SUMMARY.md +0 -0
  83. /package/docs/{Templates → templates}/Profile/DEV-PREFERENCES.md +0 -0
  84. /package/docs/{Templates → templates}/Profile/USER-PROFILE.md +0 -0
  85. /package/docs/{Templates → templates}/Profile/USER-SETUP.md +0 -0
  86. /package/docs/{Templates → templates}/Project/DISCOVERY.md +0 -0
  87. /package/docs/{Templates → templates}/Project/MILESTONE-ARCHIVE.md +0 -0
  88. /package/docs/{Templates → templates}/Project/MILESTONE.md +0 -0
  89. /package/docs/{Templates → templates}/Project/PROJECT.md +0 -0
  90. /package/docs/{Templates → templates}/Project/REQUIREMENTS.md +0 -0
  91. /package/docs/{Templates → templates}/Project/RETROSPECTIVE.md +0 -0
  92. /package/docs/{Templates → templates}/Project/ROADMAP.md +0 -0
  93. /package/docs/{Templates → templates}/Quality/DEBUG.md +0 -0
  94. /package/docs/{Templates → templates}/Quality/UAT.md +0 -0
  95. /package/docs/{Templates → templates}/Quality/UI-SPEC.md +0 -0
  96. /package/docs/{Templates → templates}/Quality/VALIDATION.md +0 -0
  97. /package/docs/{Templates → templates}/Quality/VERIFICATION-REPORT.md +0 -0
  98. /package/docs/{Templates → templates}/System/CONFIG.json +0 -0
  99. /package/docs/{Templates → templates}/System/CONTEXT.md +0 -0
  100. /package/docs/{Templates/Codebase → templates/codebase}/architecture.md +0 -0
  101. /package/docs/{Templates/Codebase → templates/codebase}/concerns.md +0 -0
  102. /package/docs/{Templates/Codebase → templates/codebase}/conventions.md +0 -0
  103. /package/docs/{Templates/Codebase → templates/codebase}/integrations.md +0 -0
  104. /package/docs/{Templates/Codebase → templates/codebase}/stack.md +0 -0
  105. /package/docs/{Templates/Codebase → templates/codebase}/structure.md +0 -0
  106. /package/docs/{Templates/Codebase → templates/codebase}/testing.md +0 -0
  107. /package/docs/{Templates/Research → templates/research}/ARCHITECTURE.md +0 -0
  108. /package/docs/{Templates/Research → templates/research}/FEATURES.md +0 -0
  109. /package/docs/{Templates/Research → templates/research}/PITFALLS.md +0 -0
  110. /package/docs/{Templates/Research → templates/research}/STACK.md +0 -0
  111. /package/docs/{Templates/Research → templates/research}/SUMMARY.md +0 -0
@@ -0,0 +1,11 @@
1
+ {"id":"34a7925f-7361-4836-91eb-916495033861","timestamp":"2026-03-22T17:25:37.659Z","type":"team_preference","topic":"Use Tailwind","content":"Always use Tailwind for CSS.","source":"manual","project":"[Project Name]","confidence":0.9,"tags":["ui","css"],"linked_adrs":[],"times_referenced":0,"last_referenced":null,"deprecated":false,"deprecated_by":null}
2
+ {"id":"34a7925f-7361-4836-91eb-916495033861","timestamp":"2026-03-22T17:25:37.659Z","type":"team_preference","topic":"Use Tailwind","content":"Always use Tailwind for CSS.","source":"manual","project":"[Project Name]","confidence":0.9500000000000001,"tags":["ui","css"],"linked_adrs":[],"times_referenced":1,"last_referenced":"2026-03-22T17:25:37.665Z","deprecated":false,"deprecated_by":null}
3
+ {"id":"34a7925f-7361-4836-91eb-916495033861","timestamp":"2026-03-22T17:25:37.659Z","type":"team_preference","topic":"Use Tailwind","content":"Always use Tailwind for CSS.","source":"manual","project":"[Project Name]","confidence":0.9500000000000001,"tags":["ui","css"],"linked_adrs":[],"times_referenced":1,"last_referenced":"2026-03-22T17:25:37.665Z","deprecated":true,"deprecated_by":null,"deprecated_reason":"Switching to Vanilla CSS","deprecated_at":"2026-03-22T17:25:37.666Z"}
4
+ {"id":"a2d4b3a6-fdaa-4c9a-b654-286d9ea133e2","timestamp":"2026-03-22T17:25:37.670Z","type":"domain_knowledge","topic":"Auth with JWT","content":"Secure JWT with httpOnly cookies.","source":"manual","project":"[Project Name]","confidence":0.8,"tags":["auth"],"linked_adrs":[],"times_referenced":0,"last_referenced":null,"deprecated":false,"deprecated_by":null}
5
+ {"id":"6c1f0f31-3903-4b95-bae8-5473ffbec9eb","timestamp":"2026-03-22T17:25:37.671Z","type":"domain_knowledge","topic":"Database SQL","content":"Use indexed columns for fast queries.","source":"manual","project":"[Project Name]","confidence":0.7,"tags":["db"],"linked_adrs":[],"times_referenced":0,"last_referenced":null,"deprecated":false,"deprecated_by":null}
6
+ {"id":"a9878977-cb7c-4dcf-8161-760ffd5e7de9","timestamp":"2026-03-22T17:25:37.673Z","type":"code_pattern","topic":"React Memo","content":"Use React.memo to prevent re-renders.","source":"manual","project":"[Project Name]","confidence":0.6,"tags":["ui"],"linked_adrs":[],"times_referenced":0,"last_referenced":null,"deprecated":false,"deprecated_by":null}
7
+ {"id":"739dcb0a-9c4b-40d2-846b-535b7e4cb274","timestamp":"2026-03-22T17:25:51.782Z","type":"team_preference","topic":"Use Tailwind","content":"Always use Tailwind for CSS.","source":"manual","project":"[Project Name]","confidence":0.9,"tags":["ui","css"],"linked_adrs":[],"times_referenced":0,"last_referenced":null,"deprecated":false,"deprecated_by":null}
8
+ {"id":"739dcb0a-9c4b-40d2-846b-535b7e4cb274","timestamp":"2026-03-22T17:25:51.782Z","type":"team_preference","topic":"Use Tailwind","content":"Always use Tailwind for CSS.","source":"manual","project":"[Project Name]","confidence":0.9500000000000001,"tags":["ui","css"],"linked_adrs":[],"times_referenced":1,"last_referenced":"2026-03-25T17:42:57.286Z","deprecated":false,"deprecated_by":null}
9
+ {"id":"a9878977-cb7c-4dcf-8161-760ffd5e7de9","timestamp":"2026-03-22T17:25:37.673Z","type":"code_pattern","topic":"React Memo","content":"Use React.memo to prevent re-renders.","source":"manual","project":"[Project Name]","confidence":0.65,"tags":["ui"],"linked_adrs":[],"times_referenced":1,"last_referenced":"2026-03-25T17:42:57.297Z","deprecated":false,"deprecated_by":null}
10
+ {"id":"a2d4b3a6-fdaa-4c9a-b654-286d9ea133e2","timestamp":"2026-03-22T17:25:37.670Z","type":"domain_knowledge","topic":"Auth with JWT","content":"Secure JWT with httpOnly cookies.","source":"manual","project":"[Project Name]","confidence":0.8500000000000001,"tags":["auth"],"linked_adrs":[],"times_referenced":1,"last_referenced":"2026-03-25T17:42:57.298Z","deprecated":false,"deprecated_by":null}
11
+ {"id":"6c1f0f31-3903-4b95-bae8-5473ffbec9eb","timestamp":"2026-03-22T17:25:37.671Z","type":"domain_knowledge","topic":"Database SQL","content":"Use indexed columns for fast queries.","source":"manual","project":"[Project Name]","confidence":0.75,"tags":["db"],"linked_adrs":[],"times_referenced":1,"last_referenced":"2026-03-25T17:42:57.299Z","deprecated":false,"deprecated_by":null}
@@ -0,0 +1,2 @@
1
+ {"id":"a9878977-cb7c-4dcf-8161-760ffd5e7de9","timestamp":"2026-03-22T17:25:37.673Z","type":"code_pattern","topic":"React Memo","content":"Use React.memo to prevent re-renders.","source":"manual","project":"[Project Name]","confidence":0.6,"tags":["ui"],"linked_adrs":[],"times_referenced":0,"last_referenced":null,"deprecated":false,"deprecated_by":null}
2
+ {"id":"a9878977-cb7c-4dcf-8161-760ffd5e7de9","timestamp":"2026-03-22T17:25:37.673Z","type":"code_pattern","topic":"React Memo","content":"Use React.memo to prevent re-renders.","source":"manual","project":"[Project Name]","confidence":0.65,"tags":["ui"],"linked_adrs":[],"times_referenced":1,"last_referenced":"2026-03-25T17:42:57.297Z","deprecated":false,"deprecated_by":null}
@@ -0,0 +1,5 @@
1
+ {"id":"34a7925f-7361-4836-91eb-916495033861","timestamp":"2026-03-22T17:25:37.659Z","type":"team_preference","topic":"Use Tailwind","content":"Always use Tailwind for CSS.","source":"manual","project":"[Project Name]","confidence":0.9,"tags":["ui","css"],"linked_adrs":[],"times_referenced":0,"last_referenced":null,"deprecated":false,"deprecated_by":null}
2
+ {"id":"34a7925f-7361-4836-91eb-916495033861","timestamp":"2026-03-22T17:25:37.659Z","type":"team_preference","topic":"Use Tailwind","content":"Always use Tailwind for CSS.","source":"manual","project":"[Project Name]","confidence":0.9500000000000001,"tags":["ui","css"],"linked_adrs":[],"times_referenced":1,"last_referenced":"2026-03-22T17:25:37.665Z","deprecated":false,"deprecated_by":null}
3
+ {"id":"34a7925f-7361-4836-91eb-916495033861","timestamp":"2026-03-22T17:25:37.659Z","type":"team_preference","topic":"Use Tailwind","content":"Always use Tailwind for CSS.","source":"manual","project":"[Project Name]","confidence":0.9500000000000001,"tags":["ui","css"],"linked_adrs":[],"times_referenced":1,"last_referenced":"2026-03-22T17:25:37.665Z","deprecated":true,"deprecated_by":null,"deprecated_reason":"Switching to Vanilla CSS","deprecated_at":"2026-03-22T17:25:37.666Z"}
4
+ {"id":"739dcb0a-9c4b-40d2-846b-535b7e4cb274","timestamp":"2026-03-22T17:25:51.782Z","type":"team_preference","topic":"Use Tailwind","content":"Always use Tailwind for CSS.","source":"manual","project":"[Project Name]","confidence":0.9,"tags":["ui","css"],"linked_adrs":[],"times_referenced":0,"last_referenced":null,"deprecated":false,"deprecated_by":null}
5
+ {"id":"739dcb0a-9c4b-40d2-846b-535b7e4cb274","timestamp":"2026-03-22T17:25:51.782Z","type":"team_preference","topic":"Use Tailwind","content":"Always use Tailwind for CSS.","source":"manual","project":"[Project Name]","confidence":0.9500000000000001,"tags":["ui","css"],"linked_adrs":[],"times_referenced":1,"last_referenced":"2026-03-25T17:42:57.286Z","deprecated":false,"deprecated_by":null}
@@ -1 +1 @@
1
- {"timestamp":"2026-03-22T20:52:21.691Z","event":"skill_installed","skill_name":"security-owasp","skill_version":"1.2.0","tier":2,"source":"cli-system","validation_passed":true}
1
+ {"event":"INIT","date":"2026-03-25T00:00:00Z","summary":"MindForge Project Initialized"}
@@ -1,28 +1,8 @@
1
1
  {
2
- "schema_version": "1.0.0",
3
- "project": null,
4
- "phase": null,
5
- "plan": null,
6
- "plan_step": null,
7
- "last_completed_task": {
8
- "description": null,
9
- "commit_sha": null,
10
- "verified": null
11
- },
12
- "next_task": "Run /mindforge:init-project",
13
- "in_progress": {
14
- "file": null,
15
- "intent": null,
16
- "completed_steps": [],
17
- "remaining_steps": []
18
- },
19
- "blockers": [],
20
- "decisions_needed": [],
21
- "context_refs": [],
22
- "agent_notes": "",
23
- "session_summary": "",
24
- "recent_files": [],
25
- "recent_commits": [],
26
- "updated_at": null,
27
- "_warning": "Never store secrets, tokens, or passwords in this file. It is tracked in git."
2
+ "_warning": "DO NOT ADD SECRETS OR SENSITIVE DATA TO THIS FILE. IT IS SYNCED ACROSS SESSIONS.",
3
+ "schema_type": "HANDOFF",
4
+ "schema_version": "2.0.0",
5
+ "handoffs": [],
6
+ "current_context": "",
7
+ "last_updated": "2026-03-25T00:00:00Z"
28
8
  }
@@ -1,5 +1,6 @@
1
+ # MindForge Roadmap
1
2
 
2
- ### Phase 1: Migrate GSD to MindForge
3
+ ### Phase 1: MindForge Enterprise Stabilization
3
4
 
4
5
  **Goal:** [To be planned]
5
6
  **Requirements**: TBD
@@ -7,4 +8,5 @@
7
8
  **Plans:** 0 plans
8
9
 
9
10
  Plans:
11
+
10
12
  - [ ] TBD (run /mindforge-plan-phase 1 to break down)
@@ -1,9 +1,5 @@
1
1
  {
2
- "schema_version": "1.0.0",
3
- "last_sync": null,
4
- "project_key": null,
5
- "phase_mappings": {},
6
- "transition_cache": {},
7
- "security_bugs": [],
8
- "_warning": "Do not store credentials in this file."
2
+ "sync_status": "idle",
3
+ "last_sync": "",
4
+ "mappings": []
9
5
  }
File without changes
File without changes
File without changes
@@ -1,6 +1,3 @@
1
1
  {
2
- "schema_version": "1.0.0",
3
- "channel_id": null,
4
- "threads": {},
5
- "_warning": "Do not store tokens in this file."
2
+ "threads": []
6
3
  }
package/CHANGELOG.md CHANGED
@@ -1,27 +1,86 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.3.5] — Intelligent Asset Sync & Merge — 2026-03-26
4
+
5
+ 🚀 **MindForge v2.3.5 — Intelligent Asset Sync & Merge**
6
+
7
+ This release transforms the installation engine from a static "skip if exists" model to an intelligent "Merge & Sync" system, ensuring all framework assets, documentation, and advanced modules are correctly deployed even into existing project environments.
8
+
9
+ ### Added (v2.3.5)
10
+
11
+ - **Intelligent Merging**: Refactored `copyDir` to support `noOverwrite` mode, allowing the installer to add missing subfolders and templates without disrupting user-customized files.
12
+ - **Advanced Module Sync**: Added explicit path mapping for `memory`, `plugins`, `intelligence`, and `dashboard` modules into the standard installation payload.
13
+ - **Expanded Asset Types**: Upgraded runtime definitions to include `memorySubdir` and `pluginsSubdir` for all supported IDE environments.
14
+
15
+ ### Fixed (v2.3.5)
16
+
17
+ - **Sync Gating**: Removed restrictive directory existence checks that caused the installer to skip entire asset categories if the parent folder already existed.
18
+ - **Documentation Parity**: Hardened the documentation sync logic to ensure `references/` and `templates/` always reach the `.agents/docs/` target.
19
+
20
+ ## [2.3.4] — Architectural Sync & Zero-GSD Purge — 2026-03-25
21
+
22
+ ### Added (v2.3.4)
23
+
24
+ - **Comprehensive Planning Sync**: Expanded `.planning` deployment to include `ROADMAP.md`, `ARCHITECTURE.md`, `REQUIREMENTS.md`, and `RELEASE-CHECKLIST.md` by default.
25
+ - **Zero-GSD Standard**: Completed the removal of all "GSD" instances from the installer logic and internal system identifiers.
26
+
27
+ ### Fixed (v2.3.4)
28
+
29
+ - **Documentation Payload**: Fixed a discrepancy in the path-mapping for documentation subdirectories (`references/`, `templates/`) ensuring they correctly sync into `.agents/docs/`.
30
+ - **Directory Persistence**: Ensured that empty planning subdirectories correctly persist with `.gitkeep` during fresh installations.
31
+
32
+ ## [2.3.3] — Payload Cleanup & Enterprise Pruning — 2026-03-25
33
+
34
+ 🚀 **MindForge v2.3.3 — Payload Cleanup & Enterprise Pruning**
35
+
36
+ This release strictly prunes the installation payload to remove legacy GSD artifacts, project-specific state, and development-only folders, ensuring a clean "out-of-the-box" enterprise experience.
37
+
38
+ ### Fixed (v2.3.3)
39
+
40
+ - **Installation Payload**: Removed legacy migration folders (`01-migrate-legacy-to-mindforge`, `day1`, `day2`, `day3`).
41
+ - **State Leakage**: Excluded project-specific state files (`AUDIT.jsonl`, `HANDOFF.json`, `jira-sync.json`, `slack-threads.json`) from distribution.
42
+ - **Enterprise Pruning**: Updated `installer-core.js` to automatically filter out development-only framework folders (e.g., `distribution`, `monorepo`, `production`).
43
+
44
+ ## [2.3.2] — Asset Sync Repair — 2026-03-25
45
+
46
+ 🚀 **MindForge v2.3.2 — Asset Sync Repair**
47
+
48
+ This release fixes documentation asset synchronization and repairs logic corruption in the installer core.
49
+
50
+ ### Added (v2.3.2)
51
+
52
+ - **Docs & Templates Sync**: Integrated `docs/references` and `docs/templates` into the standard installation payload.
53
+ - **Recursive Counting**: Implemented deep directory file counting for accurate manifest reporting.
54
+
55
+ ### Fixed (v2.3.2)
56
+
57
+ - **Installer Logic**: Repaired syntax corruption and removed duplicated code blocks in `installer-core.js`.
58
+
3
59
  ## [2.1.2] — Beast Mode Branding & CI Fix — 2026-03-25
4
60
 
5
61
  🚀 **MindForge v2.1.2 — Beast Mode Branding & CI Fix**
6
62
 
7
63
  This release transforms the MindForge installation experience with a high-impact "Beast Mode" CLI interface and resolves critical CI/CD integration issues.
8
64
 
9
- ### Added
65
+ ### Added (v2.1.2)
66
+
10
67
  - **Beast Mode CLI Branding**: New ultra-blocky ASCII "MINDFORGE" branding and high-contrast "Digital Architect" design system.
11
68
  - **Payload Manifest Summary**: Architectural summary screen displaying dynamic counts of deployed Personas, Skills, and Integrations.
12
69
  - **"TRY IT NOW" Utility**: Boxed terminal widget providing immediate post-install command guidance.
13
70
  - **Enhanced Status Reporting**: Unified architectural status grid for environment detection.
14
71
 
15
- ### Fixed
72
+ ### Fixed (v2.1.2)
73
+
16
74
  - **CI/CD Permissions**: Resolved `RequestError [HttpError]: GitHub Actions is not permitted to create or approve pull requests` by adding `contents: write` to `auto-pr.yml`.
17
75
 
18
76
  ## [2.1.1] — Core Migration Finalization — 2026-03-25
19
77
 
20
78
  🧩 **MindForge v2.1.1 — Core Migration Finalization**
21
79
 
22
- This release completes the structural rebranding and migration of the GSD framework into MindForge. It finalizes the path alignment for all 120+ assets, hardens the core configuration management, and fully integrates the expanded persona ecosystem.
80
+ This release completes the structural rebranding and migration of the MindForge framework into MindForge. It finalizes the path alignment for all 120+ assets, hardens the core configuration management, and fully integrates the expanded persona ecosystem.
81
+
82
+ ### Added (v2.1.1)
23
83
 
24
- ### Added
25
84
  - **Finalized Path Mapping**: All framework assets (skills, workflows, bin) now reside in a unified, flat `.agent/` structure for cross-IDE compatibility.
26
85
  - **32-Persona Ecosystem**: Full integration of 32 specialized engineering personas with defined tool permissions and capability matrices.
27
86
  - **Unified 4-Pillar Workflow**: Hardened `plan`, `execute`, `verify`, and `ship` logic with project-level `.agent/` integrity.
@@ -29,8 +88,9 @@ This release completes the structural rebranding and migration of the GSD framew
29
88
  - **Consolidated Configuration**: Unified framework settings and project-level governance in `.mindforge/` and `.agent/`.
30
89
  - **Rebranded Lifecycle Hooks**: 5 new high-performance hooks for context monitoring, prompt guarding, and real-time status updates.
31
90
 
32
- ### Changed
33
- - **Zero-Watermark Integrity**: 100% elimination of residual "GSD" and "get-shit-done" identifiers from codebase, documentation, and metadata.
91
+ ### Changed (v2.1.1)
92
+
93
+ - **Zero-Watermark Integrity**: 100% elimination of residual "MindForge" and "get-shit-done" identifiers from codebase, documentation, and metadata.
34
94
  - **Documentation Overhaul**: Modernized the entire documentation suite, including Architecture, Personas, Skills Authoring, and Command References.
35
95
  - **Hardened Settings**: `settings.json` now features dynamic hook pathing for increased portability across system environments.
36
96
 
@@ -38,7 +98,7 @@ This release completes the structural rebranding and migration of the GSD framew
38
98
 
39
99
  🧩 **MindForge v2.1.0 — The Specialized Expansion**
40
100
 
41
- This release significantly expands the MindForge persona ecosystem, integrating 18+ high-performance specialized agents from the GSD framework. This expansion doubles the framework's baseline capabilities in research, architecture, execution, and quality assurance.
101
+ This release significantly expands the MindForge persona ecosystem, integrating 18+ high-performance specialized agents from the MindForge framework. This expansion doubles the framework's baseline capabilities in research, architecture, execution, and quality assurance.
42
102
 
43
103
  ### Added
44
104
  - **18+ New Specialized Personas**: Integration of advanced agents including `nyquist-auditor`, `user-profiler`, `advisor-researcher`, `ui-auditor`, and more.
@@ -48,7 +108,7 @@ This release significantly expands the MindForge persona ecosystem, integrating
48
108
 
49
109
  ### Changed
50
110
  - **Documentation Overhaul**: Complete update of `PERSONAS.md` and `Master-Context.md` to reflect the expanded ecosystem.
51
- - **Branding Alignment**: All integrated GSD personas rebranded and fully sanitized for MindForge native use.
111
+ - **Branding Alignment**: All integrated MindForge personas rebranded and fully sanitized for MindForge native use.
52
112
 
53
113
  ---
54
114
 
@@ -65,7 +125,7 @@ This major release transforms MindForge from a Claude-centric framework into a u
65
125
  - **Unified Migration Engine (v2.0.0)**: Additive schema upgrades for `AUDIT.jsonl` (runtime/agent_id) and `token-usage.jsonl` (model_group).
66
126
  - **Hardened Self-Building Skills**: Automated skill capture from documentation and phase outputs.
67
127
  - **7-Dimension Quality Scorer**: Enhanced static analysis for skill authoring.
68
- - **GSD Integration**: 10 new advanced commands for design-first planning, zero-friction capture, and smart routing.
128
+ - **MindForge Integration**: 10 new advanced commands for design-first planning, zero-friction capture, and smart routing.
69
129
  - **`/mindforge:do`**: Smart natural language dispatcher that routes intent to the correct command.
70
130
  - **`/mindforge:ui-phase` & `/mindforge:ui-review`**: Tier-1 visual design contract and visual audit engine.
71
131
  - **`/mindforge:note`**: Instant idea capture with todo promotion.
package/README.md CHANGED
@@ -319,7 +319,7 @@ See `.mindforge/production/token-optimiser.md`.
319
319
 
320
320
  ## What's new in v2.1.1
321
321
  - **Unified 4-Pillar Workflow**: `plan`, `execute`, `verify`, `ship` now hardened with `.agent/` structural integrity.
322
- - **Expanded Persona Ecosystem**: 32+ specialized engineering personas integrated from the GSD core.
322
+ - **Expanded Persona Ecosystem**: 32+ specialized engineering personas integrated from the MindForge core.
323
323
  - **Real-time Dashboard**: `/mindforge:dashboard` and high-performance web-based observability.
324
324
  - **Persistent Knowledge Graph**: `/mindforge:remember` and long-term project memory.
325
325
  - **Multi-Model Intelligence Layer**: `/mindforge:cross-review`, `/mindforge:research`, and `/mindforge:costs`.
package/RELEASENOTES.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Top Summary
4
4
 
5
- MindForge v2.1.1 is a major structural update that finalizes the migration of the GSD framework into the MindForge ecosystem. This release establishes a unified `.agent/` asset structure, expands the persona count from 8 to 32+, and hardens the 4-pillar workflow (`plan`, `execute`, `verify`, `ship`) for enterprise-scale AI orchestration.
5
+ MindForge v2.1.1 is a major structural update that finalizes the migration of the MindForge framework into the MindForge ecosystem. This release establishes a unified `.agent/` asset structure, expands the persona count from 8 to 32+, and hardens the 4-pillar workflow (`plan`, `execute`, `verify`, `ship`) for enterprise-scale AI orchestration.
6
6
 
7
7
  ## Highlights
8
8
 
@@ -25,6 +25,9 @@ const RUNTIMES = {
25
25
  skillsSubdir: 'skills',
26
26
  hooksSubdir: 'hooks',
27
27
  personasSubdir: 'personas',
28
+ docsSubdir: 'docs',
29
+ memorySubdir: 'memory',
30
+ pluginsSubdir: 'plugins',
28
31
  },
29
32
  antigravity: {
30
33
  displayName: 'Antigravity',
@@ -36,6 +39,9 @@ const RUNTIMES = {
36
39
  skillsSubdir: 'skills',
37
40
  hooksSubdir: 'hooks',
38
41
  personasSubdir: 'personas',
42
+ docsSubdir: 'docs',
43
+ memorySubdir: 'memory',
44
+ pluginsSubdir: 'plugins',
39
45
  },
40
46
  cursor: {
41
47
  displayName: 'Cursor',
@@ -47,6 +53,9 @@ const RUNTIMES = {
47
53
  skillsSubdir: 'skills',
48
54
  hooksSubdir: 'hooks',
49
55
  personasSubdir: 'personas',
56
+ docsSubdir: 'docs',
57
+ memorySubdir: 'memory',
58
+ pluginsSubdir: 'plugins',
50
59
  },
51
60
  opencode: {
52
61
  displayName: 'OpenCode',
@@ -58,6 +67,9 @@ const RUNTIMES = {
58
67
  skillsSubdir: 'skills',
59
68
  hooksSubdir: 'hooks',
60
69
  personasSubdir: 'personas',
70
+ docsSubdir: 'docs',
71
+ memorySubdir: 'memory',
72
+ pluginsSubdir: 'plugins',
61
73
  },
62
74
  gemini: {
63
75
  displayName: 'Gemini CLI',
@@ -69,6 +81,9 @@ const RUNTIMES = {
69
81
  skillsSubdir: 'skills',
70
82
  hooksSubdir: 'hooks',
71
83
  personasSubdir: 'personas',
84
+ docsSubdir: 'docs',
85
+ memorySubdir: 'memory',
86
+ pluginsSubdir: 'plugins',
72
87
  },
73
88
  copilot: {
74
89
  displayName: 'GitHub Copilot',
@@ -137,9 +152,19 @@ const fsu = {
137
152
  ensureDir: p => { if (!fs.existsSync(p)) fs.mkdirSync(p, { recursive: true }); },
138
153
  copy: (src, dst) => { fsu.ensureDir(path.dirname(dst)); fs.copyFileSync(src, dst); },
139
154
  listFiles: p => fs.existsSync(p) ? fs.readdirSync(p) : [],
155
+ listFilesRecursive: (p, ext = '.md') => {
156
+ if (!fs.existsSync(p)) return [];
157
+ let results = [];
158
+ for (const entry of fs.readdirSync(p, { withFileTypes: true })) {
159
+ const full = path.join(p, entry.name);
160
+ if (entry.isDirectory()) results = results.concat(fsu.listFilesRecursive(full, ext));
161
+ else if (entry.name.endsWith(ext)) results.push(full);
162
+ }
163
+ return results;
164
+ },
140
165
 
141
166
  copyDir(src, dst, options = {}) {
142
- const { excludePatterns = [] } = options;
167
+ const { excludePatterns = [], noOverwrite = false } = options;
143
168
  fsu.ensureDir(dst);
144
169
  for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
145
170
  const skip = excludePatterns.some(pat =>
@@ -149,7 +174,12 @@ const fsu = {
149
174
 
150
175
  const s = path.join(src, entry.name);
151
176
  const d = path.join(dst, entry.name);
152
- entry.isDirectory() ? fsu.copyDir(s, d, options) : fsu.copy(s, d);
177
+ if (entry.isDirectory()) {
178
+ fsu.copyDir(s, d, options);
179
+ } else {
180
+ if (noOverwrite && fsu.exists(d)) continue;
181
+ fsu.copy(s, d);
182
+ }
153
183
  }
154
184
  },
155
185
  };
@@ -198,11 +228,38 @@ const src = (...parts) => path.join(SOURCE_ROOT, ...parts);
198
228
  const SENSITIVE_EXCLUDE = [
199
229
  '.env', // exact filename match
200
230
  /^\.env\..*/, // .env.local, .env.production, etc.
201
- /\.key$/, // anything ending in .key (previous glob was incorrect)
202
- /\.pem$/, // anything ending in .pem (previous glob was incorrect)
231
+ /\.key$/i, // anything ending in .key
232
+ /\.pem$/i, // anything ending in .pem
203
233
  'secrets', // exact directory name
204
234
  '.secrets', // exact directory name
205
- /^secrets$/, // exact match at directory level
235
+ /^secrets$/i, // exact match at directory level
236
+ 'node_modules',
237
+ '.git',
238
+ '.DS_Store',
239
+ 'browser-daemon.log',
240
+ /audit\.jsonl/i,
241
+ /handoff\.json/i,
242
+ /jira-sync\.json/i,
243
+ /slack-threads\.json/i,
244
+ // Specific legacy or project-private folders
245
+ '01-migrate-legacy-to-mindforge',
246
+ 'day1',
247
+ 'day2',
248
+ 'day3',
249
+ 'research',
250
+ 'screenshots',
251
+ ];
252
+
253
+ // Special-case folders in .mindforge that are development-only
254
+ const MINDFORGE_DEV_EXCLUDE = [
255
+ 'distribution',
256
+ 'monorepo',
257
+ 'production',
258
+ 'pr-review',
259
+ 'skills-builder',
260
+ 'ci',
261
+ 'browser',
262
+ 'audit'
206
263
  ];
207
264
 
208
265
  const norm = p => path.normalize(p);
@@ -296,7 +353,7 @@ async function install(runtime, scope, options = {}) {
296
353
  const baseDir = resolveBaseDir(runtime, scope);
297
354
  const cmdsDir = norm(path.join(baseDir, cfg.commandsSubdir));
298
355
  const selfInstall = isSelfInstall();
299
- const targetDir = baseDir; // Define targetDir for the new printStatus line
356
+ const targetDir = baseDir;
300
357
 
301
358
  Theme.printPrompt(`Runtime : ${c.cyan(runtime)}`);
302
359
  Theme.printPrompt(`Scope : ${c.dim(scope)} → ${c.bold(targetDir)}`);
@@ -313,15 +370,21 @@ async function install(runtime, scope, options = {}) {
313
370
  const assetMappings = [
314
371
  { key: 'skillsSubdir', src: src('.agent', 'skills'), label: 'skills' },
315
372
  { key: 'hooksSubdir', src: src('.agent', 'hooks'), label: 'hooks' },
316
- { key: 'personasSubdir', src: src('.mindforge', 'personas'), label: 'personas' }
373
+ { key: 'personasSubdir', src: src('.mindforge', 'personas'), label: 'personas' },
374
+ { key: 'docsSubdir', src: src('docs', 'references'), label: 'references' },
375
+ { key: 'docsSubdir', src: src('docs', 'templates'), label: 'templates' }
317
376
  ];
318
377
 
319
378
  assetMappings.forEach(asset => {
320
379
  const subDir = cfg[asset.key];
321
380
  if (subDir && fsu.exists(asset.src)) {
322
- const count = fsu.listFiles(asset.src).length;
323
- const countStr = `${count} ${asset.label}`.padEnd(12);
324
- console.log(` ${countStr} ${path.join(baseDir, subDir)}`);
381
+ if (asset.label === 'references' || asset.label === 'templates') {
382
+ console.log(` ${asset.label.padEnd(12)} ${path.join(baseDir, subDir, asset.label)}`);
383
+ } else {
384
+ const count = fsu.listFiles(asset.src).length;
385
+ const countStr = `${count} ${asset.label}`.padEnd(12);
386
+ console.log(` ${countStr} → ${path.join(baseDir, subDir)}`);
387
+ }
325
388
  }
326
389
  });
327
390
  return;
@@ -436,17 +499,25 @@ async function install(runtime, scope, options = {}) {
436
499
  const assetTypes = [
437
500
  { key: 'skillsSubdir', src: src('.agent', 'skills'), label: 'skills' },
438
501
  { key: 'hooksSubdir', src: src('.agent', 'hooks'), label: 'hooks' },
439
- { key: 'personasSubdir', src: src('.mindforge', 'personas'), label: 'personas' }
502
+ { key: 'personasSubdir', src: src('.mindforge', 'personas'), label: 'personas' },
503
+ { key: 'docsSubdir', src: src('docs', 'references'), label: 'references' },
504
+ { key: 'docsSubdir', src: src('docs', 'templates'), label: 'templates' },
505
+ { key: 'memorySubdir', src: src('.mindforge', 'memory'), label: 'memory' },
506
+ { key: 'pluginsSubdir', src: src('.mindforge', 'plugins'), label: 'plugins' }
440
507
  ];
441
508
 
442
509
  assetTypes.forEach(asset => {
443
510
  const subDir = cfg[asset.key];
444
511
  if (subDir && fsu.exists(asset.src)) {
445
- const dstDir = path.join(baseDir, subDir);
512
+ let dstDir = path.join(baseDir, subDir);
513
+ // Documentation and templates go into subdirectories of their own
514
+ if (asset.label === 'references' || asset.label === 'templates') {
515
+ dstDir = path.join(dstDir, asset.label);
516
+ }
446
517
  fsu.ensureDir(dstDir);
447
518
  // Use copyDir for the whole directory
448
- fsu.copyDir(asset.src, dstDir, { excludePatterns: SENSITIVE_EXCLUDE });
449
- Theme.printResolved(`${c.bold(asset.label.padEnd(10))} (Enterprise sync)`);
519
+ fsu.copyDir(asset.src, dstDir, { excludePatterns: SENSITIVE_EXCLUDE, noOverwrite: !force });
520
+ Theme.printResolved(`${c.bold(asset.label.padEnd(12))} (Enterprise sync)`);
450
521
  }
451
522
  });
452
523
  }
@@ -457,51 +528,69 @@ async function install(runtime, scope, options = {}) {
457
528
  const forgeSrc = src('.mindforge');
458
529
  const forgeDst = path.join(process.cwd(), '.mindforge');
459
530
  if (fsu.exists(forgeSrc)) {
531
+ // Define all required enterprise framework folders
532
+ const standardFrameworkFolders = [
533
+ 'engine', 'org', 'governance', 'integrations', 'personas', 'skills',
534
+ 'team', 'intelligence', 'memory', 'metrics', 'models', 'plugins', 'dashboard'
535
+ ];
536
+
460
537
  if (minimal) {
461
538
  const minimalEntries = new Set([
462
539
  'MINDFORGE-SCHEMA.json',
463
- 'engine',
464
- 'org',
465
- 'governance',
466
- 'integrations',
467
- 'personas',
468
- 'skills',
469
- 'team',
540
+ 'engine', 'org', 'governance', 'integrations', 'personas', 'skills', 'team'
470
541
  ]);
471
542
  fsu.ensureDir(forgeDst);
472
543
  for (const entry of fs.readdirSync(forgeSrc, { withFileTypes: true })) {
473
544
  if (!minimalEntries.has(entry.name)) continue;
474
545
  const s = path.join(forgeSrc, entry.name);
475
546
  const d = path.join(forgeDst, entry.name);
476
- entry.isDirectory() ? fsu.copyDir(s, d, { excludePatterns: SENSITIVE_EXCLUDE }) : fsu.copy(s, d);
547
+ if (entry.isDirectory()) {
548
+ fsu.copyDir(s, d, { excludePatterns: SENSITIVE_EXCLUDE, noOverwrite: true });
549
+ } else {
550
+ if (!fsu.exists(d) || force) fsu.copy(s, d);
551
+ }
477
552
  }
478
- Theme.printResolved(`${c.bold('.mindforge/')} (minimal core)`);
553
+ Theme.printResolved(`${c.bold('.mindforge/')} (minimal sync)`);
479
554
  } else {
480
- fsu.copyDir(forgeSrc, forgeDst, { excludePatterns: SENSITIVE_EXCLUDE });
481
- Theme.printResolved(`${c.bold('.mindforge/')} (framework engine)`);
555
+ // Standard merge: Ensure missing folders are added, but don't overwrite existing user configs
556
+ fsu.copyDir(forgeSrc, forgeDst, {
557
+ excludePatterns: [...SENSITIVE_EXCLUDE, ...MINDFORGE_DEV_EXCLUDE],
558
+ noOverwrite: !force
559
+ });
560
+ Theme.printResolved(`${c.bold('.mindforge/')} (synchronized framework)`);
482
561
  }
483
562
  }
484
563
 
485
- // .planning/ — create only if it doesn't already exist (preserve project state)
564
+ // .planning/ — merge templates but preserve existing state
486
565
  const planningDst = path.join(process.cwd(), '.planning');
487
- if (!fsu.exists(planningDst)) {
488
- const planningSrc = src('.planning');
489
- if (fsu.exists(planningSrc)) {
490
- if (minimal) {
491
- fsu.ensureDir(planningDst);
492
- ['STATE.md', 'HANDOFF.json', 'PROJECT.md'].forEach((name) => {
493
- const s = path.join(planningSrc, name);
494
- const d = path.join(planningDst, name);
495
- if (fsu.exists(s)) fsu.copy(s, d);
496
- });
497
- console.log(' ✅ .planning/ (minimal state)');
498
- } else {
499
- fsu.copyDir(planningSrc, planningDst, { excludePatterns: SENSITIVE_EXCLUDE });
500
- Theme.printResolved(`${c.bold('.planning/')} (state templates)`);
501
- }
566
+ const planningSrc = src('.planning');
567
+ if (fsu.exists(planningSrc)) {
568
+ fsu.ensureDir(planningDst);
569
+
570
+ // Define standard planning templates that must exist
571
+ const standardPlanningFiles = [
572
+ 'STATE.md', 'HANDOFF.json', 'PROJECT.md',
573
+ 'ROADMAP.md', 'ARCHITECTURE.md', 'REQUIREMENTS.md',
574
+ 'RELEASE-CHECKLIST.md'
575
+ ];
576
+
577
+ // Always ensure top-level standard templates are copied if missing
578
+ standardPlanningFiles.forEach((name) => {
579
+ const s = path.join(planningSrc, name);
580
+ const d = path.join(planningDst, name);
581
+ if (fsu.exists(s) && (!fsu.exists(d) || force)) fsu.copy(s, d);
582
+ });
583
+
584
+ if (!minimal) {
585
+ // Merge subdirectories (empty ones persist via .gitkeep)
586
+ fsu.copyDir(planningSrc, planningDst, {
587
+ excludePatterns: SENSITIVE_EXCLUDE,
588
+ noOverwrite: true
589
+ });
590
+ Theme.printResolved(`${c.bold('.planning/')} (merged templates)`);
591
+ } else {
592
+ Theme.printResolved(`${c.bold('.planning/')} (minimal sync)`);
502
593
  }
503
- } else {
504
- Theme.printPrompt(c.dim('.planning/ already exists — preserved (run /mindforge:health to verify)'));
505
594
  }
506
595
 
507
596
  // MINDFORGE.md — create only if it doesn't already exist
@@ -573,17 +662,25 @@ function collectManifestStats() {
573
662
  skills: 0,
574
663
  governance: 0,
575
664
  integrations: 0,
576
- actions: 0
665
+ actions: 0,
666
+ docs: 0,
667
+ templates: 0
577
668
  };
578
669
 
579
670
  try {
580
671
  const forgeSrc = src('.mindforge');
581
672
  if (fsu.exists(forgeSrc)) {
582
673
  stats.personas = fsu.listFiles(path.join(forgeSrc, 'personas')).filter(f => f.endsWith('.md')).length;
583
- stats.skills = fsu.listFiles(path.join(forgeSrc, 'skills')).length;
674
+ stats.skills = fsu.listFiles(path.join(SOURCE_ROOT, '.agent', 'skills')).length;
584
675
  stats.governance = fsu.listFiles(path.join(forgeSrc, 'governance')).filter(f => f.endsWith('.md')).length;
585
676
  stats.integrations = fsu.listFiles(path.join(forgeSrc, 'integrations')).filter(f => f.endsWith('.md')).length;
586
677
  }
678
+
679
+ // Docs & Templates count
680
+ const refSrc = src('docs', 'references');
681
+ const tmpSrc = src('docs', 'templates');
682
+ if (fsu.exists(refSrc)) stats.docs = fsu.listFiles(refSrc).filter(f => f.endsWith('.md')).length;
683
+ if (fsu.exists(tmpSrc)) stats.templates = fsu.listFilesRecursive(tmpSrc).length;
587
684
 
588
685
  // Commands count
589
686
  const claudeCmdSrc = src('.claude', 'commands', 'mindforge');
@@ -596,7 +693,7 @@ function collectManifestStats() {
596
693
  }
597
694
  } catch (e) {
598
695
  // Fallback to default values if counting fails
599
- return { personas: 32, skills: 10, governance: 4, integrations: 6, actions: 60 };
696
+ return { personas: 32, skills: 10, governance: 4, integrations: 6, actions: 60, docs: 12, templates: 5 };
600
697
  }
601
698
 
602
699
  return stats;
@@ -121,7 +121,7 @@ const Theme = {
121
121
  * Print Manifest (Hardened for V2)
122
122
  */
123
123
  printManifest(stats = {}) {
124
- const { personas = 32, skills = 12, governance = 4, integrations = 7, actions = 60 } = stats;
124
+ const { personas = 32, skills = 12, governance = 4, integrations = 7, actions = 60, docs = 12, templates = 8 } = stats;
125
125
 
126
126
  console.log(` ${this.colors.bold('PAYLOAD MANIFEST')}`);
127
127
  console.log(` ${this.colors.dim('┌' + '─'.repeat(74) + '┐')}`);
@@ -131,6 +131,8 @@ const Theme = {
131
131
  ['SKILLS', skills, 'Enterprise-grade skill packs'],
132
132
  ['GOVERNANCE', governance, 'Compliance and safety modules'],
133
133
  ['INTEGRATIONS', integrations, 'Multi-platform connector suite'],
134
+ ['REFERENCES', docs, 'Standardized architecture references'],
135
+ ['TEMPLATES', templates, 'Engineering and planning templates'],
134
136
  ['ACTIONS', actions, 'Total autonomous commands deployed'],
135
137
  ];
136
138
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mindforge-cc",
3
- "version": "2.3.0",
3
+ "version": "2.3.5",
4
4
  "description": "MindForge - Enterprise Agentic Framework for Claude Code and Antigravity",
5
5
  "bin": {
6
6
  "mindforge-cc": "bin/install.js"
@@ -1,15 +0,0 @@
1
- {
2
- "id": "MF-AUTH-V2-001",
3
- "project": "MindForge",
4
- "version": "2.0.0-alpha.2",
5
- "tier": 3,
6
- "approved_by": "Antigravity (Agentic AI)",
7
- "timestamp": "2026-03-22T20:28:00Z",
8
- "scope": [
9
- ".github/workflows/*",
10
- "bin/mindforge-cli.js",
11
- "bin/change-classifier.js"
12
- ],
13
- "reason": "Implementation of 5-Layer Plane Architecture and standardized CLI routing.",
14
- "signature": "sha256:d8e8fca2dc0f896fd7cb4cb0031ba249"
15
- }