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.
- package/.agent/CLAUDE.md +462 -0
- package/.agent/forge/help.md +7 -0
- package/.agent/forge/init-project.md +32 -0
- package/.agent/forge/plan-phase.md +30 -0
- package/.agent/mindforge/approve.md +18 -0
- package/.agent/mindforge/audit.md +30 -0
- package/.agent/mindforge/benchmark.md +33 -0
- package/.agent/mindforge/complete-milestone.md +18 -0
- package/.agent/mindforge/debug.md +126 -0
- package/.agent/mindforge/discuss-phase.md +138 -0
- package/.agent/mindforge/execute-phase.md +165 -0
- package/.agent/mindforge/health.md +21 -0
- package/.agent/mindforge/help.md +23 -0
- package/.agent/mindforge/init-org.md +131 -0
- package/.agent/mindforge/init-project.md +155 -0
- package/.agent/mindforge/install-skill.md +15 -0
- package/.agent/mindforge/map-codebase.md +298 -0
- package/.agent/mindforge/metrics.md +22 -0
- package/.agent/mindforge/migrate.md +40 -0
- package/.agent/mindforge/milestone.md +12 -0
- package/.agent/mindforge/next.md +105 -0
- package/.agent/mindforge/plan-phase.md +125 -0
- package/.agent/mindforge/plugins.md +40 -0
- package/.agent/mindforge/pr-review.md +41 -0
- package/.agent/mindforge/profile-team.md +23 -0
- package/.agent/mindforge/publish-skill.md +19 -0
- package/.agent/mindforge/quick.md +135 -0
- package/.agent/mindforge/release.md +10 -0
- package/.agent/mindforge/retrospective.md +26 -0
- package/.agent/mindforge/review.md +157 -0
- package/.agent/mindforge/security-scan.md +233 -0
- package/.agent/mindforge/ship.md +100 -0
- package/.agent/mindforge/skills.md +141 -0
- package/.agent/mindforge/status.md +104 -0
- package/.agent/mindforge/sync-confluence.md +11 -0
- package/.agent/mindforge/sync-jira.md +12 -0
- package/.agent/mindforge/tokens.md +8 -0
- package/.agent/mindforge/update.md +42 -0
- package/.agent/mindforge/verify-phase.md +62 -0
- package/.agent/mindforge/workspace.md +29 -0
- package/.claude/CLAUDE.md +462 -0
- package/.claude/commands/forge/help.md +7 -0
- package/.claude/commands/forge/init-project.md +32 -0
- package/.claude/commands/forge/plan-phase.md +30 -0
- package/.claude/commands/mindforge/approve.md +18 -0
- package/.claude/commands/mindforge/audit.md +30 -0
- package/.claude/commands/mindforge/benchmark.md +33 -0
- package/.claude/commands/mindforge/complete-milestone.md +18 -0
- package/.claude/commands/mindforge/debug.md +126 -0
- package/.claude/commands/mindforge/discuss-phase.md +138 -0
- package/.claude/commands/mindforge/execute-phase.md +165 -0
- package/.claude/commands/mindforge/health.md +21 -0
- package/.claude/commands/mindforge/help.md +23 -0
- package/.claude/commands/mindforge/init-org.md +131 -0
- package/.claude/commands/mindforge/init-project.md +155 -0
- package/.claude/commands/mindforge/install-skill.md +15 -0
- package/.claude/commands/mindforge/map-codebase.md +298 -0
- package/.claude/commands/mindforge/metrics.md +22 -0
- package/.claude/commands/mindforge/migrate.md +40 -0
- package/.claude/commands/mindforge/milestone.md +12 -0
- package/.claude/commands/mindforge/next.md +105 -0
- package/.claude/commands/mindforge/plan-phase.md +125 -0
- package/.claude/commands/mindforge/plugins.md +40 -0
- package/.claude/commands/mindforge/pr-review.md +41 -0
- package/.claude/commands/mindforge/profile-team.md +23 -0
- package/.claude/commands/mindforge/publish-skill.md +19 -0
- package/.claude/commands/mindforge/quick.md +135 -0
- package/.claude/commands/mindforge/release.md +10 -0
- package/.claude/commands/mindforge/retrospective.md +26 -0
- package/.claude/commands/mindforge/review.md +157 -0
- package/.claude/commands/mindforge/security-scan.md +233 -0
- package/.claude/commands/mindforge/ship.md +100 -0
- package/.claude/commands/mindforge/skills.md +141 -0
- package/.claude/commands/mindforge/status.md +104 -0
- package/.claude/commands/mindforge/sync-confluence.md +11 -0
- package/.claude/commands/mindforge/sync-jira.md +12 -0
- package/.claude/commands/mindforge/tokens.md +8 -0
- package/.claude/commands/mindforge/update.md +42 -0
- package/.claude/commands/mindforge/verify-phase.md +62 -0
- package/.claude/commands/mindforge/workspace.md +29 -0
- package/.forge/org/CONVENTIONS.md +0 -0
- package/.forge/org/ORG.md +0 -0
- package/.forge/org/SECURITY.md +0 -0
- package/.forge/org/TOOLS.md +0 -0
- package/.forge/personas/analyst.md +0 -0
- package/.forge/personas/architect.md +0 -0
- package/.forge/personas/debug-specialist.md +0 -0
- package/.forge/personas/developer.md +26 -0
- package/.forge/personas/qa-engineer.md +0 -0
- package/.forge/personas/release-manager.md +0 -0
- package/.forge/personas/security-reviewer.md +33 -0
- package/.forge/personas/tech-writer.md +0 -0
- package/.forge/skills/api-design/SKILL.md +0 -0
- package/.forge/skills/code-quality/SKILL.md +0 -0
- package/.forge/skills/documentation/SKILL.md +0 -0
- package/.forge/skills/security-review/SKILL.md +23 -0
- package/.forge/skills/testing-standards/SKILL.md +27 -0
- package/.github/workflows/mindforge-ci.yml +224 -0
- package/.gitlab-ci-mindforge.yml +18 -0
- package/.mindforge/MINDFORGE-SCHEMA.json +165 -0
- package/.mindforge/audit/AUDIT-SCHEMA.md +451 -0
- package/.mindforge/ci/ci-config-schema.md +21 -0
- package/.mindforge/ci/ci-mode.md +179 -0
- package/.mindforge/ci/github-actions-adapter.md +224 -0
- package/.mindforge/ci/gitlab-ci-adapter.md +31 -0
- package/.mindforge/ci/jenkins-adapter.md +44 -0
- package/.mindforge/distribution/registry-client.md +166 -0
- package/.mindforge/distribution/registry-schema.md +96 -0
- package/.mindforge/distribution/skill-publisher.md +44 -0
- package/.mindforge/distribution/skill-validator.md +74 -0
- package/.mindforge/engine/compaction-protocol.md +182 -0
- package/.mindforge/engine/context-injector.md +128 -0
- package/.mindforge/engine/dependency-parser.md +113 -0
- package/.mindforge/engine/skills/conflict-resolver.md +69 -0
- package/.mindforge/engine/skills/loader.md +184 -0
- package/.mindforge/engine/skills/registry.md +98 -0
- package/.mindforge/engine/skills/versioning.md +75 -0
- package/.mindforge/engine/verification-pipeline.md +111 -0
- package/.mindforge/engine/wave-executor.md +235 -0
- package/.mindforge/governance/GOVERNANCE-CONFIG.md +17 -0
- package/.mindforge/governance/approval-workflow.md +37 -0
- package/.mindforge/governance/change-classifier.md +63 -0
- package/.mindforge/governance/compliance-gates.md +31 -0
- package/.mindforge/integrations/confluence.md +27 -0
- package/.mindforge/integrations/connection-manager.md +163 -0
- package/.mindforge/integrations/github.md +25 -0
- package/.mindforge/integrations/gitlab.md +13 -0
- package/.mindforge/integrations/jira.md +102 -0
- package/.mindforge/integrations/slack.md +41 -0
- package/.mindforge/intelligence/antipattern-detector.md +75 -0
- package/.mindforge/intelligence/difficulty-scorer.md +55 -0
- package/.mindforge/intelligence/health-engine.md +208 -0
- package/.mindforge/intelligence/skill-gap-analyser.md +40 -0
- package/.mindforge/intelligence/smart-compaction.md +71 -0
- package/.mindforge/metrics/METRICS-SCHEMA.md +42 -0
- package/.mindforge/metrics/quality-tracker.md +32 -0
- package/.mindforge/monorepo/cross-package-planner.md +114 -0
- package/.mindforge/monorepo/dependency-graph-builder.md +32 -0
- package/.mindforge/monorepo/workspace-detector.md +129 -0
- package/.mindforge/org/CONVENTIONS.md +62 -0
- package/.mindforge/org/ORG.md +51 -0
- package/.mindforge/org/SECURITY.md +50 -0
- package/.mindforge/org/TOOLS.md +53 -0
- package/.mindforge/org/integrations/INTEGRATIONS-CONFIG.md +58 -0
- package/.mindforge/org/skills/MANIFEST.md +38 -0
- package/.mindforge/personas/analyst.md +52 -0
- package/.mindforge/personas/architect.md +75 -0
- package/.mindforge/personas/debug-specialist.md +52 -0
- package/.mindforge/personas/developer.md +85 -0
- package/.mindforge/personas/overrides/README.md +85 -0
- package/.mindforge/personas/qa-engineer.md +61 -0
- package/.mindforge/personas/release-manager.md +76 -0
- package/.mindforge/personas/security-reviewer.md +91 -0
- package/.mindforge/personas/tech-writer.md +51 -0
- package/.mindforge/plugins/PLUGINS-MANIFEST.md +23 -0
- package/.mindforge/plugins/plugin-loader.md +93 -0
- package/.mindforge/plugins/plugin-registry.md +44 -0
- package/.mindforge/plugins/plugin-schema.md +68 -0
- package/.mindforge/pr-review/ai-reviewer.md +266 -0
- package/.mindforge/pr-review/finding-formatter.md +46 -0
- package/.mindforge/pr-review/review-prompt-templates.md +44 -0
- package/.mindforge/production/compatibility-layer.md +39 -0
- package/.mindforge/production/migration-engine.md +52 -0
- package/.mindforge/production/production-checklist.md +165 -0
- package/.mindforge/production/token-optimiser.md +68 -0
- package/.mindforge/skills/accessibility/SKILL.md +106 -0
- package/.mindforge/skills/api-design/SKILL.md +98 -0
- package/.mindforge/skills/code-quality/SKILL.md +88 -0
- package/.mindforge/skills/data-privacy/SKILL.md +126 -0
- package/.mindforge/skills/database-patterns/SKILL.md +192 -0
- package/.mindforge/skills/documentation/SKILL.md +91 -0
- package/.mindforge/skills/incident-response/SKILL.md +180 -0
- package/.mindforge/skills/performance/SKILL.md +120 -0
- package/.mindforge/skills/security-review/SKILL.md +83 -0
- package/.mindforge/skills/testing-standards/SKILL.md +97 -0
- package/.mindforge/team/TEAM-PROFILE.md +42 -0
- package/.mindforge/team/multi-handoff.md +23 -0
- package/.mindforge/team/profiles/README.md +13 -0
- package/.mindforge/team/session-merger.md +18 -0
- package/.planning/ARCHITECTURE.md +0 -0
- package/.planning/AUDIT.jsonl +0 -0
- package/.planning/HANDOFF.json +28 -0
- package/.planning/PROJECT.md +33 -0
- package/.planning/RELEASE-CHECKLIST.md +68 -0
- package/.planning/REQUIREMENTS.md +0 -0
- package/.planning/ROADMAP.md +0 -0
- package/.planning/STATE.md +31 -0
- package/.planning/approvals/.gitkeep +1 -0
- package/.planning/archive/.gitkeep +1 -0
- package/.planning/audit-archive/.gitkeep +1 -0
- package/.planning/decisions/.gitkeep +0 -0
- package/.planning/decisions/ADR-001-handoff-tracking.md +41 -0
- package/.planning/decisions/ADR-002-markdown-commands.md +46 -0
- package/.planning/decisions/ADR-003-skills-trigger-model.md +37 -0
- package/.planning/decisions/ADR-004-wave-parallelism-model.md +45 -0
- package/.planning/decisions/ADR-005-append-only-audit-log.md +51 -0
- package/.planning/decisions/ADR-006-tiered-skills-system.md +22 -0
- package/.planning/decisions/ADR-007-trigger-keyword-model.md +22 -0
- package/.planning/decisions/ADR-008-just-in-time-skill-loading.md +29 -0
- package/.planning/decisions/ADR-009-enterprise-integration-retry-policy.md +8 -0
- package/.planning/decisions/ADR-010-governance-tier-escalation.md +8 -0
- package/.planning/decisions/ADR-011-multi-developer-handoff-contract.md +8 -0
- package/.planning/decisions/ADR-012-intelligence-feedback-loops.md +19 -0
- package/.planning/decisions/ADR-013-mindforge-md-constitution.md +16 -0
- package/.planning/decisions/ADR-014-metrics-as-signals-not-evaluation.md +15 -0
- package/.planning/decisions/ADR-015-npm-based-skill-registry.md +26 -0
- package/.planning/decisions/ADR-016-ci-exit-code-0-on-timeout.md +27 -0
- package/.planning/decisions/ADR-017-sdk-localhost-only.md +28 -0
- package/.planning/decisions/ADR-018-installer-self-install-detection.md +15 -0
- package/.planning/decisions/ADR-019-self-update-scope-preservation.md +14 -0
- package/.planning/decisions/ADR-020-v1.0.0-stable-interface-contract.md +23 -0
- package/.planning/jira-sync.json +9 -0
- package/.planning/milestones/.gitkeep +1 -0
- package/.planning/phases/day1/REVIEW-DAY1.md +50 -0
- package/.planning/phases/day1/SECURITY-REVIEW-DAY1.md +15 -0
- package/.planning/phases/day2/REVIEW-DAY2.md +521 -0
- package/.planning/phases/day3/REVIEW-DAY3.md +234 -0
- package/.planning/slack-threads.json +6 -0
- package/CHANGELOG.md +175 -0
- package/LICENSE +21 -0
- package/MINDFORGE.md +76 -0
- package/README.md +182 -0
- package/RELEASENOTES.md +41 -0
- package/SECURITY.md +4 -0
- package/bin/install.js +120 -0
- package/bin/installer-core.js +292 -0
- package/bin/migrations/0.1.0-to-0.5.0.js +37 -0
- package/bin/migrations/0.5.0-to-0.6.0.js +17 -0
- package/bin/migrations/0.6.0-to-1.0.0.js +100 -0
- package/bin/migrations/migrate.js +151 -0
- package/bin/migrations/schema-versions.js +64 -0
- package/bin/updater/changelog-fetcher.js +62 -0
- package/bin/updater/self-update.js +169 -0
- package/bin/updater/version-comparator.js +68 -0
- package/bin/validate-config.js +92 -0
- package/bin/wizard/config-generator.js +112 -0
- package/bin/wizard/environment-detector.js +76 -0
- package/bin/wizard/setup-wizard.js +237 -0
- package/docs/Context/Master-Context.md +701 -0
- package/docs/architecture/README.md +35 -0
- package/docs/architecture/decision-records-index.md +26 -0
- package/docs/ci-cd-integration.md +30 -0
- package/docs/ci-quickstart.md +78 -0
- package/docs/commands-reference.md +11 -0
- package/docs/contributing/CONTRIBUTING.md +38 -0
- package/docs/contributing/plugin-authoring.md +50 -0
- package/docs/contributing/skill-authoring.md +41 -0
- package/docs/enterprise-setup.md +25 -0
- package/docs/faq.md +38 -0
- package/docs/getting-started.md +36 -0
- package/docs/governance-guide.md +23 -0
- package/docs/mindforge-md-reference.md +53 -0
- package/docs/monorepo-guide.md +26 -0
- package/docs/persona-customisation.md +56 -0
- package/docs/quick-verify.md +33 -0
- package/docs/reference/audit-events.md +53 -0
- package/docs/reference/commands.md +82 -0
- package/docs/reference/config-reference.md +64 -0
- package/docs/reference/sdk-api.md +48 -0
- package/docs/reference/skills-api.md +57 -0
- package/docs/release-checklist-guide.md +37 -0
- package/docs/requirements.md +29 -0
- package/docs/sdk-reference.md +27 -0
- package/docs/security/SECURITY.md +42 -0
- package/docs/security/penetration-test-results.md +31 -0
- package/docs/security/threat-model.md +142 -0
- package/docs/skills-authoring-guide.md +119 -0
- package/docs/skills-publishing-guide.md +21 -0
- package/docs/team-setup-guide.md +21 -0
- package/docs/troubleshooting.md +119 -0
- package/docs/tutorial.md +195 -0
- package/docs/upgrade.md +44 -0
- package/docs/user-guide.md +131 -0
- package/docs/usp-features.md +214 -0
- package/eslint.config.mjs +31 -0
- package/examples/starter-project/.planning/AUDIT.jsonl +1 -0
- package/examples/starter-project/.planning/HANDOFF.json +23 -0
- package/examples/starter-project/.planning/PROJECT.md +27 -0
- package/examples/starter-project/.planning/STATE.md +10 -0
- package/examples/starter-project/MINDFORGE.md +40 -0
- package/examples/starter-project/README.md +14 -0
- package/implementation-roadmap/day-1-imp/DAY1-HARDEN.md +823 -0
- package/implementation-roadmap/day-1-imp/DAY1-IMPLEMENT.md +2459 -0
- package/implementation-roadmap/day-1-imp/DAY1-REVIEW.md +288 -0
- package/implementation-roadmap/day-2-imp/DAY2-HARDEN.md +954 -0
- package/implementation-roadmap/day-2-imp/DAY2-IMPLEMENT.md +2347 -0
- package/implementation-roadmap/day-2-imp/DAY2-REVIEW.md +422 -0
- package/implementation-roadmap/day-3-imp/DAY3-HARDEN.md +870 -0
- package/implementation-roadmap/day-3-imp/DAY3-IMPLEMENT.md +2798 -0
- package/implementation-roadmap/day-3-imp/DAY3-REVIEW.md +484 -0
- package/implementation-roadmap/day-4-imp/DAY4-HARDEN.md +1087 -0
- package/implementation-roadmap/day-4-imp/DAY4-IMPLEMENT.md +2874 -0
- package/implementation-roadmap/day-4-imp/DAY4-REVIEW.md +386 -0
- package/implementation-roadmap/day-5-imp/DAY5-HARDEN.md +1078 -0
- package/implementation-roadmap/day-5-imp/DAY5-IMPLEMENT.md +3151 -0
- package/implementation-roadmap/day-5-imp/DAY5-REVIEW.md +345 -0
- package/implementation-roadmap/day-6-imp/DAY6-COMPLETE.md +3919 -0
- package/implementation-roadmap/day-7-imp-prod/DAY7-PRODUCTION-FINAL.md +4513 -0
- package/package.json +31 -0
- package/sdk/README.md +69 -0
- package/sdk/eslint.config.mjs +34 -0
- package/sdk/package-lock.json +1507 -0
- package/sdk/package.json +30 -0
- package/sdk/src/client.ts +133 -0
- package/sdk/src/commands.ts +63 -0
- package/sdk/src/events.ts +166 -0
- package/sdk/src/index.ts +22 -0
- package/sdk/src/types.ts +87 -0
- package/sdk/tsconfig.json +13 -0
- package/tests/audit.test.js +206 -0
- package/tests/ci-mode.test.js +162 -0
- package/tests/compaction.test.js +161 -0
- package/tests/distribution.test.js +205 -0
- package/tests/e2e.test.js +618 -0
- package/tests/governance.test.js +130 -0
- package/tests/install.test.js +209 -0
- package/tests/integrations.test.js +128 -0
- package/tests/intelligence.test.js +117 -0
- package/tests/metrics.test.js +96 -0
- package/tests/migration.test.js +309 -0
- package/tests/production.test.js +416 -0
- package/tests/sdk.test.js +200 -0
- package/tests/skills-platform.test.js +403 -0
- package/tests/wave-engine.test.js +338 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# ADR-019: Self-update preserves the original installation scope
|
|
2
|
+
|
|
3
|
+
**Status:** Accepted | **Date:** v1.0.0 | **Day:** 7
|
|
4
|
+
|
|
5
|
+
## Context
|
|
6
|
+
`/mindforge:update --apply` must update the correct installation.
|
|
7
|
+
|
|
8
|
+
## Decision
|
|
9
|
+
Detect original scope from filesystem (local before global per priority).
|
|
10
|
+
Apply update using the detected scope. Per ADR-019.
|
|
11
|
+
|
|
12
|
+
## Rationale
|
|
13
|
+
Principle of least surprise. A local install user should get a local update.
|
|
14
|
+
Unexpected global install is confusing and may affect other projects.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# ADR-020: v1.0.0 stable interface contract
|
|
2
|
+
|
|
3
|
+
**Status:** Accepted | **Date:** v1.0.0 | **Day:** 7
|
|
4
|
+
|
|
5
|
+
## Context
|
|
6
|
+
MindForge reaches v1.0.0. "Stable" must be precisely defined.
|
|
7
|
+
|
|
8
|
+
## Decision
|
|
9
|
+
Stable public interfaces (additions require MINOR, removals/changes require MAJOR):
|
|
10
|
+
- All 36 command names and their flag interfaces
|
|
11
|
+
- HANDOFF.json schema fields
|
|
12
|
+
- AUDIT.jsonl event types and required fields
|
|
13
|
+
- All 10 core skill name values
|
|
14
|
+
- MINDFORGE.md setting keys
|
|
15
|
+
- @mindforge/sdk exported types and functions
|
|
16
|
+
- plugin.json manifest format
|
|
17
|
+
|
|
18
|
+
Governance primitives are permanently fixed and cannot become configurable
|
|
19
|
+
in any future version without a MAJOR bump and explicit RFC process.
|
|
20
|
+
|
|
21
|
+
## Consequences
|
|
22
|
+
Plugin authors and SDK consumers can build on v1.0.0 with confidence.
|
|
23
|
+
The MindForge team is committed to backwards compatibility in 1.x.x releases.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Day 1 Review — MindForge Foundation
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Overall structure matches the Day 1 specification and is consistent across Claude and Antigravity.
|
|
5
|
+
However, several blocking and major issues remain around ambiguity, safety, and hardening.
|
|
6
|
+
|
|
7
|
+
## BLOCKING findings
|
|
8
|
+
1. **CLAUDE.md missing explicit missing-file handling and plan validation**
|
|
9
|
+
- Impact: Agents can proceed with undefined state or malformed plans.
|
|
10
|
+
- Evidence: CLAUDE.md lacks required missing-file handling and plan validation steps.
|
|
11
|
+
- Recommendation: Add explicit missing-file handling, plan validation, and quality gate enforcement (see HARDEN 2).
|
|
12
|
+
|
|
13
|
+
2. **HANDOFF.json lacks anti-secret warning and expanded schema fields**
|
|
14
|
+
- Impact: Risk of secrets being recorded in tracked state files.
|
|
15
|
+
- Evidence: HANDOFF.json template has no warning and minimal fields.
|
|
16
|
+
- Recommendation: Add `_warning`, `session_summary`, `recent_files`, `recent_commits` (see HARDEN 6).
|
|
17
|
+
|
|
18
|
+
3. **Installer lacks node version guard, CLAUDE.md backup, and install verification**
|
|
19
|
+
- Impact: Silent failures and risk of overwriting user CLAUDE.md.
|
|
20
|
+
- Evidence: bin/install.js has no version check or backup of non-MindForge CLAUDE.md.
|
|
21
|
+
- Recommendation: Implement version guard, safe copy, and post-install verification (see HARDEN 5).
|
|
22
|
+
|
|
23
|
+
## MAJOR findings
|
|
24
|
+
1. **Slash commands missing explicit edge-case handling**
|
|
25
|
+
- Impact: execute-phase does not define behaviour for malformed XML or missing test suite.
|
|
26
|
+
- Evidence: execute-phase.md does not address malformed XML or missing test runner.
|
|
27
|
+
- Recommendation: Add explicit failure handling in execute-phase.md.
|
|
28
|
+
|
|
29
|
+
2. **State updates inconsistent**
|
|
30
|
+
- Impact: ship command does not update STATE.md at end.
|
|
31
|
+
- Evidence: ship.md does not specify state update.
|
|
32
|
+
- Recommendation: Add explicit STATE.md update to ship.md.
|
|
33
|
+
|
|
34
|
+
3. **.gitignore missing key/cert patterns**
|
|
35
|
+
- Impact: risk of accidental commit of private keys.
|
|
36
|
+
- Evidence: no *.key or *.pem patterns.
|
|
37
|
+
- Recommendation: add *.key and *.pem to .gitignore.
|
|
38
|
+
|
|
39
|
+
## MINOR findings
|
|
40
|
+
1. **CLAUDE.md lacks explicit guidance for corrupt HANDOFF.json**
|
|
41
|
+
- Impact: ambiguous recovery path on parse errors.
|
|
42
|
+
- Recommendation: include guidance (HARDEN 2 section).
|
|
43
|
+
|
|
44
|
+
2. **Help command lacks pre-check**
|
|
45
|
+
- Impact: minimal, but review spec expects pre-checks for all commands.
|
|
46
|
+
- Recommendation: Add a lightweight pre-check (e.g., read STATE.md if present).
|
|
47
|
+
|
|
48
|
+
## Decision required
|
|
49
|
+
- HANDOFF.json tracking: Should it be tracked or gitignored?
|
|
50
|
+
Recommendation: Track in git with explicit anti-secret warning and ADR (HARDEN 7).
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Day 1 Security Review — MindForge Foundation
|
|
2
|
+
|
|
3
|
+
## Findings
|
|
4
|
+
|
|
5
|
+
### MEDIUM — HANDOFF.json could capture secrets
|
|
6
|
+
- Risk: Session state files are tracked in git; secrets could be recorded.
|
|
7
|
+
- Recommendation: Add `_warning` field and explicit note in STATE.md. Add ADR documenting tracking decision.
|
|
8
|
+
|
|
9
|
+
### MEDIUM — .gitignore missing key/cert patterns
|
|
10
|
+
- Risk: Private keys or certs can be committed accidentally.
|
|
11
|
+
- Recommendation: Add `*.key` and `*.pem` to .gitignore.
|
|
12
|
+
|
|
13
|
+
### LOW — Installer overwrites CLAUDE.md without backup
|
|
14
|
+
- Risk: User's existing agent config could be lost.
|
|
15
|
+
- Recommendation: Add CLAUDE.md backup when overwriting non-MindForge files.
|
|
@@ -0,0 +1,521 @@
|
|
|
1
|
+
## Finding 1 — BLOCKING: HANDOFF.json schema mismatch across docs
|
|
2
|
+
|
|
3
|
+
**File:** .mindforge/engine/compaction-protocol.md
|
|
4
|
+
**Category:** Consistency
|
|
5
|
+
**Severity:** BLOCKING
|
|
6
|
+
|
|
7
|
+
**Issue:**
|
|
8
|
+
Compaction protocol writes a HANDOFF.json schema with fields like `plan_step`, `in_progress`, `recent_commits`, `recent_files`, and `agent_notes`, but the init-project template and base HANDOFF.json do not include these fields. This creates conflicting expectations between commands and engine specs.
|
|
9
|
+
|
|
10
|
+
**Impact:**
|
|
11
|
+
Session restart logic can break or silently drop fields. Different agents will write incompatible HANDOFF.json files.
|
|
12
|
+
|
|
13
|
+
**Recommendation:**
|
|
14
|
+
Update the canonical HANDOFF.json template and init-project command to include all fields required by compaction-protocol.md.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
## Finding 2 — BLOCKING: AUDIT schema missing events used by execute-phase
|
|
18
|
+
|
|
19
|
+
**File:** .mindforge/audit/AUDIT-SCHEMA.md
|
|
20
|
+
**Category:** Audit
|
|
21
|
+
**Severity:** BLOCKING
|
|
22
|
+
|
|
23
|
+
**Issue:**
|
|
24
|
+
The execute-phase command writes `phase_execution_started` and `phase_execution_completed`, but these event types are not defined in AUDIT-SCHEMA.md.
|
|
25
|
+
|
|
26
|
+
**Impact:**
|
|
27
|
+
Audit log becomes inconsistent and unverifiable. Consumers parsing AUDIT.jsonl cannot validate these events.
|
|
28
|
+
|
|
29
|
+
**Recommendation:**
|
|
30
|
+
Add explicit schema entries for `phase_execution_started` and `phase_execution_completed` (with required fields).
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
## Finding 3 — MAJOR: Dependency report lacks explicit wave assignments
|
|
34
|
+
|
|
35
|
+
**File:** .mindforge/engine/dependency-parser.md
|
|
36
|
+
**Category:** Wave Engine
|
|
37
|
+
**Severity:** MAJOR
|
|
38
|
+
|
|
39
|
+
**Issue:**
|
|
40
|
+
DEPENDENCY-GRAPH template does not include wave assignments per plan. It only lists tasks and a generic "Wave 1 → Wave 2" note.
|
|
41
|
+
|
|
42
|
+
**Impact:**
|
|
43
|
+
execute-phase cannot consume the dependency report without re-running wave grouping. Operators cannot verify the planned wave layout.
|
|
44
|
+
|
|
45
|
+
**Recommendation:**
|
|
46
|
+
Add a "Wave" column to the task table and/or add a dedicated "Wave assignments" section listing each wave's plan IDs.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
## Finding 4 — MAJOR: Wave executor lacks subagent invocation guidance
|
|
50
|
+
|
|
51
|
+
**File:** .mindforge/engine/wave-executor.md
|
|
52
|
+
**Category:** Wave Engine
|
|
53
|
+
**Severity:** MAJOR
|
|
54
|
+
|
|
55
|
+
**Issue:**
|
|
56
|
+
The spec says "spawn a subagent" but does not describe how to do this in Claude Code vs Antigravity. This is runtime-specific and currently ambiguous.
|
|
57
|
+
|
|
58
|
+
**Impact:**
|
|
59
|
+
Different agents will interpret this differently, causing inconsistent execution across runtimes.
|
|
60
|
+
|
|
61
|
+
**Recommendation:**
|
|
62
|
+
Add a short runtime-agnostic protocol for subagent invocation or a dedicated section with Claude Code vs Antigravity guidance.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
## Finding 5 — MAJOR: Wave executor missing timeout / hang handling
|
|
66
|
+
|
|
67
|
+
**File:** .mindforge/engine/wave-executor.md
|
|
68
|
+
**Category:** Wave Engine
|
|
69
|
+
**Severity:** MAJOR
|
|
70
|
+
|
|
71
|
+
**Issue:**
|
|
72
|
+
No guidance on what to do if a subagent never returns or a SUMMARY file is never written.
|
|
73
|
+
|
|
74
|
+
**Impact:**
|
|
75
|
+
Wave execution can hang indefinitely.
|
|
76
|
+
|
|
77
|
+
**Recommendation:**
|
|
78
|
+
Add a timeout rule (e.g., if no SUMMARY after N minutes, mark task blocked and stop wave).
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
## Finding 6 — MAJOR: Wave executor assumes tests exist
|
|
82
|
+
|
|
83
|
+
**File:** .mindforge/engine/wave-executor.md
|
|
84
|
+
**Category:** Wave Engine
|
|
85
|
+
**Severity:** MAJOR
|
|
86
|
+
|
|
87
|
+
**Issue:**
|
|
88
|
+
It mandates full test suite after each wave but does not define behavior if no test suite exists yet.
|
|
89
|
+
|
|
90
|
+
**Impact:**
|
|
91
|
+
Early projects may block with no clear next action.
|
|
92
|
+
|
|
93
|
+
**Recommendation:**
|
|
94
|
+
Define a fallback: if no test command exists, stop and instruct user to add tests or define the test command.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
## Finding 7 — MAJOR: WAVE-REPORT template lacks failure representation
|
|
98
|
+
|
|
99
|
+
**File:** .mindforge/engine/wave-executor.md
|
|
100
|
+
**Category:** Wave Engine
|
|
101
|
+
**Severity:** MAJOR
|
|
102
|
+
|
|
103
|
+
**Issue:**
|
|
104
|
+
WAVE-REPORT template only shows successful rows. No explicit failure row format or error capture.
|
|
105
|
+
|
|
106
|
+
**Impact:**
|
|
107
|
+
Failed waves are hard to audit; execution history becomes misleading.
|
|
108
|
+
|
|
109
|
+
**Recommendation:**
|
|
110
|
+
Add explicit failure row format with error output and status icon.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
## Finding 8 — MAJOR: Context injector does not define completion signal
|
|
114
|
+
|
|
115
|
+
**File:** .mindforge/engine/context-injector.md
|
|
116
|
+
**Category:** Wave Engine
|
|
117
|
+
**Severity:** MAJOR
|
|
118
|
+
|
|
119
|
+
**Issue:**
|
|
120
|
+
The spec says "report completion status" but does not define the mechanism (file path, message format).
|
|
121
|
+
|
|
122
|
+
**Impact:**
|
|
123
|
+
Orchestrator cannot reliably detect task completion across runtimes.
|
|
124
|
+
|
|
125
|
+
**Recommendation:**
|
|
126
|
+
Define completion signal as the presence of SUMMARY-[N]-[M].md plus explicit status line inside it.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
## Finding 9 — MAJOR: Context injector lacks placeholder detection
|
|
130
|
+
|
|
131
|
+
**File:** .mindforge/engine/context-injector.md
|
|
132
|
+
**Category:** Security
|
|
133
|
+
**Severity:** MAJOR
|
|
134
|
+
|
|
135
|
+
**Issue:**
|
|
136
|
+
SECURITY.md is injected but may still contain placeholder text. No warning or validation exists.
|
|
137
|
+
|
|
138
|
+
**Impact:**
|
|
139
|
+
Subagents assume security requirements are defined when they are not.
|
|
140
|
+
|
|
141
|
+
**Recommendation:**
|
|
142
|
+
Add a check: if SECURITY.md contains placeholders, warn the user to fill it in before sensitive work.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
## Finding 10 — MAJOR: Context injector path traversal risk in ADR references
|
|
146
|
+
|
|
147
|
+
**File:** .mindforge/engine/context-injector.md
|
|
148
|
+
**Category:** Security
|
|
149
|
+
**Severity:** MAJOR
|
|
150
|
+
|
|
151
|
+
**Issue:**
|
|
152
|
+
Plans can reference ADR paths; no validation ensures referenced files are within repo.
|
|
153
|
+
|
|
154
|
+
**Impact:**
|
|
155
|
+
Potential path traversal or unintended file disclosure.
|
|
156
|
+
|
|
157
|
+
**Recommendation:**
|
|
158
|
+
Validate that all referenced paths are under project root before inclusion.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
## Finding 11 — MAJOR: Verification pipeline Stage 1 failure has no remediation path
|
|
162
|
+
|
|
163
|
+
**File:** .mindforge/engine/verification-pipeline.md
|
|
164
|
+
**Category:** Wave Engine
|
|
165
|
+
**Severity:** MAJOR
|
|
166
|
+
|
|
167
|
+
**Issue:**
|
|
168
|
+
Stage 1 says "stop" but does not describe whether to create fix plans or how to proceed.
|
|
169
|
+
|
|
170
|
+
**Impact:**
|
|
171
|
+
Users have no defined remediation workflow.
|
|
172
|
+
|
|
173
|
+
**Recommendation:**
|
|
174
|
+
Add explicit instruction to create fix plans when Stage 1 fails.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
## Finding 12 — MAJOR: AUDIT schema missing additional event types
|
|
178
|
+
|
|
179
|
+
**File:** .mindforge/audit/AUDIT-SCHEMA.md
|
|
180
|
+
**Category:** Audit
|
|
181
|
+
**Severity:** MAJOR
|
|
182
|
+
|
|
183
|
+
**Issue:**
|
|
184
|
+
Missing event definitions for: `quick_task_completed`, `debug_completed`, `uat_started`, `uat_completed`, `ship_started`, `ship_completed`, `session_started`.
|
|
185
|
+
|
|
186
|
+
**Impact:**
|
|
187
|
+
Audit log coverage is incomplete for key lifecycle actions.
|
|
188
|
+
|
|
189
|
+
**Recommendation:**
|
|
190
|
+
Add schema entries for all missing events.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
## Finding 13 — MAJOR: AUDIT schema lacks corruption recovery guidance
|
|
194
|
+
|
|
195
|
+
**File:** .mindforge/audit/AUDIT-SCHEMA.md
|
|
196
|
+
**Category:** Audit
|
|
197
|
+
**Severity:** MAJOR
|
|
198
|
+
|
|
199
|
+
**Issue:**
|
|
200
|
+
No guidance for handling corrupted AUDIT.jsonl or long-term file growth.
|
|
201
|
+
|
|
202
|
+
**Impact:**
|
|
203
|
+
Audit system can become unusable over time without a recovery path.
|
|
204
|
+
|
|
205
|
+
**Recommendation:**
|
|
206
|
+
Add brief guidance: restore from git history, and archive to AUDIT-archive-YYYY.jsonl when size exceeds threshold.
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
## Finding 14 — MAJOR: Compaction protocol missing mid-wave handling
|
|
210
|
+
|
|
211
|
+
**File:** .mindforge/engine/compaction-protocol.md
|
|
212
|
+
**Category:** Compaction
|
|
213
|
+
**Severity:** MAJOR
|
|
214
|
+
|
|
215
|
+
**Issue:**
|
|
216
|
+
No guidance for compaction when a subagent is still running in the current wave.
|
|
217
|
+
|
|
218
|
+
**Impact:**
|
|
219
|
+
Compaction could interrupt or duplicate work.
|
|
220
|
+
|
|
221
|
+
**Recommendation:**
|
|
222
|
+
Specify: wait for running subagents to complete before compacting.
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
## Finding 15 — MAJOR: Compaction protocol WIP commits do not address hooks
|
|
226
|
+
|
|
227
|
+
**File:** .mindforge/engine/compaction-protocol.md
|
|
228
|
+
**Category:** Compaction
|
|
229
|
+
**Severity:** MAJOR
|
|
230
|
+
|
|
231
|
+
**Issue:**
|
|
232
|
+
WIP commit step does not address pre-commit hooks.
|
|
233
|
+
|
|
234
|
+
**Impact:**
|
|
235
|
+
Compaction can fail if hooks require lint/tests.
|
|
236
|
+
|
|
237
|
+
**Recommendation:**
|
|
238
|
+
Use `git commit --no-verify` for compaction WIP checkpoints and document it in STATE.md.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
## Finding 16 — MAJOR: Compaction protocol lacks HANDOFF staleness handling
|
|
242
|
+
|
|
243
|
+
**File:** .mindforge/engine/compaction-protocol.md
|
|
244
|
+
**Category:** Compaction
|
|
245
|
+
**Severity:** MAJOR
|
|
246
|
+
|
|
247
|
+
**Issue:**
|
|
248
|
+
No staleness check for old HANDOFF.json.
|
|
249
|
+
|
|
250
|
+
**Impact:**
|
|
251
|
+
Agents may continue from outdated state without warning.
|
|
252
|
+
|
|
253
|
+
**Recommendation:**
|
|
254
|
+
Warn if `updated_at` is older than 48 hours and confirm continuation.
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
## Finding 17 — MAJOR: Compaction protocol lacks concurrent session warning
|
|
258
|
+
|
|
259
|
+
**File:** .mindforge/engine/compaction-protocol.md
|
|
260
|
+
**Category:** Compaction
|
|
261
|
+
**Severity:** MAJOR
|
|
262
|
+
|
|
263
|
+
**Issue:**
|
|
264
|
+
No mention of multiple agents using the same HANDOFF.json concurrently.
|
|
265
|
+
|
|
266
|
+
**Impact:**
|
|
267
|
+
Race conditions and state corruption.
|
|
268
|
+
|
|
269
|
+
**Recommendation:**
|
|
270
|
+
Add a warning that concurrent sessions are unsupported and require manual coordination.
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
## Finding 18 — MAJOR: /mindforge:next prioritizes HANDOFF.json too late
|
|
274
|
+
|
|
275
|
+
**File:** .claude/commands/mindforge/next.md
|
|
276
|
+
**Category:** Commands
|
|
277
|
+
**Severity:** MAJOR
|
|
278
|
+
|
|
279
|
+
**Issue:**
|
|
280
|
+
HANDOFF.json handling is described after the decision tree, not as a priority path.
|
|
281
|
+
|
|
282
|
+
**Impact:**
|
|
283
|
+
The system may ignore an interrupted session and start a new flow.
|
|
284
|
+
|
|
285
|
+
**Recommendation:**
|
|
286
|
+
Move HANDOFF.json handling to the top: if it exists and is recent, prompt user before normal state detection.
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
## Finding 19 — MAJOR: /mindforge:quick lacks numbering collision prevention
|
|
290
|
+
|
|
291
|
+
**File:** .claude/commands/mindforge/quick.md
|
|
292
|
+
**Category:** Commands
|
|
293
|
+
**Severity:** MAJOR
|
|
294
|
+
|
|
295
|
+
**Issue:**
|
|
296
|
+
No rule for choosing next quick task number; concurrent runs may both use 001.
|
|
297
|
+
|
|
298
|
+
**Impact:**
|
|
299
|
+
Directory collisions and overwritten plans.
|
|
300
|
+
|
|
301
|
+
**Recommendation:**
|
|
302
|
+
Define numbering: scan `.planning/quick/`, take max + 1, and require `--force` if collision.
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
## Finding 20 — MAJOR: /mindforge:quick missing security auto-trigger
|
|
306
|
+
|
|
307
|
+
**File:** .claude/commands/mindforge/quick.md
|
|
308
|
+
**Category:** Security
|
|
309
|
+
**Severity:** MAJOR
|
|
310
|
+
|
|
311
|
+
**Issue:**
|
|
312
|
+
Quick tasks do not auto-trigger the security-review skill for security-sensitive keywords.
|
|
313
|
+
|
|
314
|
+
**Impact:**
|
|
315
|
+
Security-sensitive quick fixes can bypass security review.
|
|
316
|
+
|
|
317
|
+
**Recommendation:**
|
|
318
|
+
Add rule: if task description contains security keywords, load security-review skill regardless of flags.
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
## Finding 21 — MAJOR: /mindforge:debug lacks full test-suite verification
|
|
322
|
+
|
|
323
|
+
**File:** .claude/commands/mindforge/debug.md
|
|
324
|
+
**Category:** Commands
|
|
325
|
+
**Severity:** MAJOR
|
|
326
|
+
|
|
327
|
+
**Issue:**
|
|
328
|
+
Debug protocol does not require running full test suite after fix.
|
|
329
|
+
|
|
330
|
+
**Impact:**
|
|
331
|
+
Fix could introduce regressions unnoticed.
|
|
332
|
+
|
|
333
|
+
**Recommendation:**
|
|
334
|
+
Add step to run full test suite after fix, before marking done.
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
## Finding 22 — MINOR: /mindforge:status progress counts failed tasks
|
|
338
|
+
|
|
339
|
+
**File:** .claude/commands/mindforge/status.md
|
|
340
|
+
**Category:** Commands
|
|
341
|
+
**Severity:** MINOR
|
|
342
|
+
|
|
343
|
+
**Issue:**
|
|
344
|
+
Progress calculation uses SUMMARY count without checking `Status: Completed ✅`.
|
|
345
|
+
|
|
346
|
+
**Impact:**
|
|
347
|
+
Failed tasks could inflate progress.
|
|
348
|
+
|
|
349
|
+
**Recommendation:**
|
|
350
|
+
Count only SUMMARY files with explicit completed status.
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
## Finding 23 — MINOR: /mindforge:status does not address empty AUDIT.jsonl
|
|
354
|
+
|
|
355
|
+
**File:** .claude/commands/mindforge/status.md
|
|
356
|
+
**Category:** Commands
|
|
357
|
+
**Severity:** MINOR
|
|
358
|
+
|
|
359
|
+
**Issue:**
|
|
360
|
+
No guidance for empty audit log on fresh projects.
|
|
361
|
+
|
|
362
|
+
**Impact:**
|
|
363
|
+
Potential confusing output.
|
|
364
|
+
|
|
365
|
+
**Recommendation:**
|
|
366
|
+
Add "No activity logged yet" when AUDIT.jsonl is empty.
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
## Finding 24 — MINOR: /mindforge:status requirements coverage assumes VERIFICATION.md exists
|
|
370
|
+
|
|
371
|
+
**File:** .claude/commands/mindforge/status.md
|
|
372
|
+
**Category:** Commands
|
|
373
|
+
**Severity:** MINOR
|
|
374
|
+
|
|
375
|
+
**Issue:**
|
|
376
|
+
No fallback if VERIFICATION.md does not exist yet.
|
|
377
|
+
|
|
378
|
+
**Impact:**
|
|
379
|
+
Incomplete status output.
|
|
380
|
+
|
|
381
|
+
**Recommendation:**
|
|
382
|
+
Add "In progress" state when verification is missing.
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
## Finding 25 — MINOR: /mindforge:quick does not mention STATE.md update policy
|
|
386
|
+
|
|
387
|
+
**File:** .claude/commands/mindforge/quick.md
|
|
388
|
+
**Category:** Commands
|
|
389
|
+
**Severity:** MINOR
|
|
390
|
+
|
|
391
|
+
**Issue:**
|
|
392
|
+
No guidance on whether quick tasks update STATE.md.
|
|
393
|
+
|
|
394
|
+
**Impact:**
|
|
395
|
+
State consistency varies by operator.
|
|
396
|
+
|
|
397
|
+
**Recommendation:**
|
|
398
|
+
Specify: quick tasks do not change phase status; note quick task in STATE.md if no active phase.
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
## Finding 26 — MINOR: Dependency parser does not address duplicate task names
|
|
402
|
+
|
|
403
|
+
**File:** .mindforge/engine/dependency-parser.md
|
|
404
|
+
**Category:** Wave Engine
|
|
405
|
+
**Severity:** MINOR
|
|
406
|
+
|
|
407
|
+
**Issue:**
|
|
408
|
+
No rule for duplicate `<n>` values across different plan IDs.
|
|
409
|
+
|
|
410
|
+
**Impact:**
|
|
411
|
+
Potential confusion in summaries and audit entries.
|
|
412
|
+
|
|
413
|
+
**Recommendation:**
|
|
414
|
+
Require uniqueness or prefix summaries with plan ID.
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
## Finding 27 — MINOR: Verification pipeline grep false negatives
|
|
418
|
+
|
|
419
|
+
**File:** .mindforge/engine/verification-pipeline.md
|
|
420
|
+
**Category:** Wave Engine
|
|
421
|
+
**Severity:** MINOR
|
|
422
|
+
|
|
423
|
+
**Issue:**
|
|
424
|
+
Stage 2 relies on exact text matches; does not define fallback for false negatives.
|
|
425
|
+
|
|
426
|
+
**Impact:**
|
|
427
|
+
Requirements may be marked ⚠️ or ❌ incorrectly.
|
|
428
|
+
|
|
429
|
+
**Recommendation:**
|
|
430
|
+
Add a manual confirmation step when grep finds nothing.
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
## Finding 28 — MINOR: Audit schema lacks note about sensitive rationale text
|
|
434
|
+
|
|
435
|
+
**File:** .mindforge/audit/AUDIT-SCHEMA.md
|
|
436
|
+
**Category:** Security
|
|
437
|
+
**Severity:** MINOR
|
|
438
|
+
|
|
439
|
+
**Issue:**
|
|
440
|
+
`decision_recorded.rationale` could contain secrets if a user pastes credentials.
|
|
441
|
+
|
|
442
|
+
**Impact:**
|
|
443
|
+
Sensitive data leakage into AUDIT.jsonl.
|
|
444
|
+
|
|
445
|
+
**Recommendation:**
|
|
446
|
+
Add warning to schema: never include secrets in rationale fields.
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
## Finding 29 — SUGGESTION: Add missing tests for edge cases
|
|
450
|
+
|
|
451
|
+
**File:** tests/wave-engine.test.js
|
|
452
|
+
**Category:** Test Suite
|
|
453
|
+
**Severity:** SUGGESTION
|
|
454
|
+
|
|
455
|
+
**Issue:**
|
|
456
|
+
Wave engine tests lack cases for empty graph, self-dependency, missing dependency, and 3+ plan conflicts.
|
|
457
|
+
|
|
458
|
+
**Impact:**
|
|
459
|
+
Edge case regressions may go unnoticed.
|
|
460
|
+
|
|
461
|
+
**Recommendation:**
|
|
462
|
+
Add the missing tests listed in DAY2-REVIEW.md.
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
## Finding 30 — SUGGESTION: Add audit tests for UUID format and mixed JSONL
|
|
466
|
+
|
|
467
|
+
**File:** tests/audit.test.js
|
|
468
|
+
**Category:** Test Suite
|
|
469
|
+
**Severity:** SUGGESTION
|
|
470
|
+
|
|
471
|
+
**Issue:**
|
|
472
|
+
Audit tests do not explicitly test invalid UUID formats or mixed valid/invalid lines.
|
|
473
|
+
|
|
474
|
+
**Impact:**
|
|
475
|
+
Parser may accept malformed entries.
|
|
476
|
+
|
|
477
|
+
**Recommendation:**
|
|
478
|
+
Add explicit tests for invalid UUID format and mixed JSONL lines.
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
## Finding 31 — SUGGESTION: Add compaction tests for recent_commits and in_progress
|
|
482
|
+
|
|
483
|
+
**File:** tests/compaction.test.js
|
|
484
|
+
**Category:** Test Suite
|
|
485
|
+
**Severity:** SUGGESTION
|
|
486
|
+
|
|
487
|
+
**Issue:**
|
|
488
|
+
Compaction tests do not verify `recent_commits` or `in_progress` fields exist.
|
|
489
|
+
|
|
490
|
+
**Impact:**
|
|
491
|
+
HANDOFF schema could drift without detection.
|
|
492
|
+
|
|
493
|
+
**Recommendation:**
|
|
494
|
+
Add tests for `recent_commits` and `in_progress` fields.
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
## Day 2 Review Summary
|
|
498
|
+
|
|
499
|
+
| Category | BLOCKING | MAJOR | MINOR | SUGGESTION |
|
|
500
|
+
|---------------|----------|-------|-------|------------|
|
|
501
|
+
| Wave Engine | 0 | 6 | 2 | 1 |
|
|
502
|
+
| Audit System | 1 | 2 | 1 | 1 |
|
|
503
|
+
| Compaction | 0 | 4 | 0 | 1 |
|
|
504
|
+
| Commands | 0 | 5 | 4 | 0 |
|
|
505
|
+
| Test Suite | 0 | 0 | 0 | 3 |
|
|
506
|
+
| Consistency | 1 | 0 | 0 | 0 |
|
|
507
|
+
| Security | 0 | 2 | 1 | 0 |
|
|
508
|
+
| **TOTAL** | 2 | 19 | 8 | 6 |
|
|
509
|
+
|
|
510
|
+
## Verdict
|
|
511
|
+
[ ] ✅ APPROVED — Proceed to DAY2-HARDEN.md
|
|
512
|
+
[ ] ⚠️ APPROVED WITH CONDITIONS — Fix [N] major findings first
|
|
513
|
+
[x] ❌ NOT APPROVED — 2 blocking findings. Fix and re-review.
|
|
514
|
+
|
|
515
|
+
## Estimated fix time
|
|
516
|
+
3–5 hours
|
|
517
|
+
## Review Status
|
|
518
|
+
**Approved after fixes — 2026-03-20**
|
|
519
|
+
|
|
520
|
+
All BLOCKING and MAJOR findings below have been addressed in subsequent hardening commits.
|
|
521
|
+
This document preserves the original review record.
|