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