@accelerationguy/accel 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/CLAUDE.md +19 -0
- package/LICENSE +33 -0
- package/README.md +275 -0
- package/bin/install.js +661 -0
- package/docs/getting-started.md +164 -0
- package/docs/module-guide.md +139 -0
- package/modules/drive/LICENSE +21 -0
- package/modules/drive/PAUL-VS-GSD.md +171 -0
- package/modules/drive/README.md +555 -0
- package/modules/drive/assets/terminal.svg +67 -0
- package/modules/drive/bin/install.js +210 -0
- package/modules/drive/integration.js +76 -0
- package/modules/drive/package.json +38 -0
- package/modules/drive/src/commands/add-phase.md +36 -0
- package/modules/drive/src/commands/apply.md +83 -0
- package/modules/drive/src/commands/assumptions.md +37 -0
- package/modules/drive/src/commands/audit.md +57 -0
- package/modules/drive/src/commands/complete-milestone.md +36 -0
- package/modules/drive/src/commands/config.md +175 -0
- package/modules/drive/src/commands/consider-issues.md +41 -0
- package/modules/drive/src/commands/discover.md +48 -0
- package/modules/drive/src/commands/discuss-milestone.md +33 -0
- package/modules/drive/src/commands/discuss.md +34 -0
- package/modules/drive/src/commands/flows.md +73 -0
- package/modules/drive/src/commands/handoff.md +201 -0
- package/modules/drive/src/commands/help.md +525 -0
- package/modules/drive/src/commands/init.md +54 -0
- package/modules/drive/src/commands/map-codebase.md +34 -0
- package/modules/drive/src/commands/milestone.md +34 -0
- package/modules/drive/src/commands/pause.md +44 -0
- package/modules/drive/src/commands/plan-fix.md +216 -0
- package/modules/drive/src/commands/plan.md +36 -0
- package/modules/drive/src/commands/progress.md +138 -0
- package/modules/drive/src/commands/register.md +29 -0
- package/modules/drive/src/commands/remove-phase.md +37 -0
- package/modules/drive/src/commands/research-phase.md +209 -0
- package/modules/drive/src/commands/research.md +47 -0
- package/modules/drive/src/commands/resume.md +49 -0
- package/modules/drive/src/commands/status.md +78 -0
- package/modules/drive/src/commands/unify.md +87 -0
- package/modules/drive/src/commands/verify.md +60 -0
- package/modules/drive/src/references/checkpoints.md +234 -0
- package/modules/drive/src/references/context-management.md +219 -0
- package/modules/drive/src/references/git-strategy.md +206 -0
- package/modules/drive/src/references/loop-phases.md +254 -0
- package/modules/drive/src/references/plan-format.md +263 -0
- package/modules/drive/src/references/quality-principles.md +152 -0
- package/modules/drive/src/references/research-quality-control.md +247 -0
- package/modules/drive/src/references/sonarqube-integration.md +244 -0
- package/modules/drive/src/references/specialized-workflow-integration.md +186 -0
- package/modules/drive/src/references/subagent-criteria.md +179 -0
- package/modules/drive/src/references/tdd.md +219 -0
- package/modules/drive/src/references/work-units.md +161 -0
- package/modules/drive/src/rules/commands.md +108 -0
- package/modules/drive/src/rules/references.md +107 -0
- package/modules/drive/src/rules/style.md +123 -0
- package/modules/drive/src/rules/templates.md +51 -0
- package/modules/drive/src/rules/workflows.md +133 -0
- package/modules/drive/src/templates/CONTEXT.md +88 -0
- package/modules/drive/src/templates/DEBUG.md +164 -0
- package/modules/drive/src/templates/DISCOVERY.md +148 -0
- package/modules/drive/src/templates/HANDOFF.md +77 -0
- package/modules/drive/src/templates/ISSUES.md +93 -0
- package/modules/drive/src/templates/MILESTONES.md +167 -0
- package/modules/drive/src/templates/PLAN.md +328 -0
- package/modules/drive/src/templates/PROJECT.md +219 -0
- package/modules/drive/src/templates/RESEARCH.md +130 -0
- package/modules/drive/src/templates/ROADMAP.md +328 -0
- package/modules/drive/src/templates/SPECIAL-FLOWS.md +70 -0
- package/modules/drive/src/templates/STATE.md +210 -0
- package/modules/drive/src/templates/SUMMARY.md +221 -0
- package/modules/drive/src/templates/UAT-ISSUES.md +139 -0
- package/modules/drive/src/templates/codebase/architecture.md +259 -0
- package/modules/drive/src/templates/codebase/concerns.md +329 -0
- package/modules/drive/src/templates/codebase/conventions.md +311 -0
- package/modules/drive/src/templates/codebase/integrations.md +284 -0
- package/modules/drive/src/templates/codebase/stack.md +190 -0
- package/modules/drive/src/templates/codebase/structure.md +287 -0
- package/modules/drive/src/templates/codebase/testing.md +484 -0
- package/modules/drive/src/templates/config.md +181 -0
- package/modules/drive/src/templates/milestone-archive.md +236 -0
- package/modules/drive/src/templates/milestone-context.md +190 -0
- package/modules/drive/src/templates/paul-json.md +147 -0
- package/modules/drive/src/vector-config/PAUL +26 -0
- package/modules/drive/src/vector-config/PAUL.manifest +11 -0
- package/modules/drive/src/workflows/apply-phase.md +393 -0
- package/modules/drive/src/workflows/audit-plan.md +344 -0
- package/modules/drive/src/workflows/complete-milestone.md +479 -0
- package/modules/drive/src/workflows/configure-special-flows.md +283 -0
- package/modules/drive/src/workflows/consider-issues.md +172 -0
- package/modules/drive/src/workflows/create-milestone.md +268 -0
- package/modules/drive/src/workflows/debug.md +292 -0
- package/modules/drive/src/workflows/discovery.md +187 -0
- package/modules/drive/src/workflows/discuss-milestone.md +245 -0
- package/modules/drive/src/workflows/discuss-phase.md +231 -0
- package/modules/drive/src/workflows/init-project.md +698 -0
- package/modules/drive/src/workflows/map-codebase.md +459 -0
- package/modules/drive/src/workflows/pause-work.md +259 -0
- package/modules/drive/src/workflows/phase-assumptions.md +181 -0
- package/modules/drive/src/workflows/plan-phase.md +385 -0
- package/modules/drive/src/workflows/quality-gate.md +263 -0
- package/modules/drive/src/workflows/register-manifest.md +107 -0
- package/modules/drive/src/workflows/research.md +241 -0
- package/modules/drive/src/workflows/resume-project.md +200 -0
- package/modules/drive/src/workflows/roadmap-management.md +334 -0
- package/modules/drive/src/workflows/transition-phase.md +368 -0
- package/modules/drive/src/workflows/unify-phase.md +290 -0
- package/modules/drive/src/workflows/verify-work.md +241 -0
- package/modules/forge/README.md +281 -0
- package/modules/forge/bin/install.js +200 -0
- package/modules/forge/package.json +32 -0
- package/modules/forge/skillsmith/rules/checklists-rules.md +42 -0
- package/modules/forge/skillsmith/rules/context-rules.md +43 -0
- package/modules/forge/skillsmith/rules/entry-point-rules.md +44 -0
- package/modules/forge/skillsmith/rules/frameworks-rules.md +43 -0
- package/modules/forge/skillsmith/rules/tasks-rules.md +52 -0
- package/modules/forge/skillsmith/rules/templates-rules.md +43 -0
- package/modules/forge/skillsmith/skillsmith.md +82 -0
- package/modules/forge/skillsmith/tasks/audit.md +277 -0
- package/modules/forge/skillsmith/tasks/discover.md +145 -0
- package/modules/forge/skillsmith/tasks/distill.md +276 -0
- package/modules/forge/skillsmith/tasks/scaffold.md +349 -0
- package/modules/forge/specs/checklists.md +193 -0
- package/modules/forge/specs/context.md +223 -0
- package/modules/forge/specs/entry-point.md +320 -0
- package/modules/forge/specs/frameworks.md +228 -0
- package/modules/forge/specs/rules.md +245 -0
- package/modules/forge/specs/tasks.md +344 -0
- package/modules/forge/specs/templates.md +335 -0
- package/modules/forge/terminal.svg +70 -0
- package/modules/ignition/README.md +245 -0
- package/modules/ignition/bin/install.js +184 -0
- package/modules/ignition/checklists/planning-quality.md +55 -0
- package/modules/ignition/data/application/config.md +21 -0
- package/modules/ignition/data/application/guide.md +51 -0
- package/modules/ignition/data/application/skill-loadout.md +11 -0
- package/modules/ignition/data/campaign/config.md +18 -0
- package/modules/ignition/data/campaign/guide.md +36 -0
- package/modules/ignition/data/campaign/skill-loadout.md +10 -0
- package/modules/ignition/data/client/config.md +18 -0
- package/modules/ignition/data/client/guide.md +36 -0
- package/modules/ignition/data/client/skill-loadout.md +11 -0
- package/modules/ignition/data/utility/config.md +18 -0
- package/modules/ignition/data/utility/guide.md +31 -0
- package/modules/ignition/data/utility/skill-loadout.md +8 -0
- package/modules/ignition/data/workflow/config.md +19 -0
- package/modules/ignition/data/workflow/guide.md +41 -0
- package/modules/ignition/data/workflow/skill-loadout.md +10 -0
- package/modules/ignition/integration.js +54 -0
- package/modules/ignition/package.json +35 -0
- package/modules/ignition/seed.md +81 -0
- package/modules/ignition/tasks/add-type.md +164 -0
- package/modules/ignition/tasks/graduate.md +182 -0
- package/modules/ignition/tasks/ideate.md +221 -0
- package/modules/ignition/tasks/launch.md +137 -0
- package/modules/ignition/tasks/status.md +71 -0
- package/modules/ignition/templates/planning-application.md +193 -0
- package/modules/ignition/templates/planning-campaign.md +138 -0
- package/modules/ignition/templates/planning-client.md +149 -0
- package/modules/ignition/templates/planning-utility.md +112 -0
- package/modules/ignition/templates/planning-workflow.md +125 -0
- package/modules/ignition/terminal.svg +74 -0
- package/modules/mission-control/CONTEXT-CONTINUITY-SPEC.md +293 -0
- package/modules/mission-control/CONTEXT-ENGINEERING-GUIDE.md +282 -0
- package/modules/mission-control/README.md +91 -0
- package/modules/mission-control/assets/terminal.svg +80 -0
- package/modules/mission-control/examples/entities.example.json +133 -0
- package/modules/mission-control/examples/projects.example.json +318 -0
- package/modules/mission-control/examples/state.example.json +183 -0
- package/modules/mission-control/examples/vector.example.json +245 -0
- package/modules/mission-control/mission-control/checklists/install-verification.md +46 -0
- package/modules/mission-control/mission-control/frameworks/framework-registry.md +83 -0
- package/modules/mission-control/mission-control/mission-control.md +83 -0
- package/modules/mission-control/mission-control/tasks/insights.md +73 -0
- package/modules/mission-control/mission-control/tasks/install.md +194 -0
- package/modules/mission-control/mission-control/tasks/status.md +125 -0
- package/modules/mission-control/schemas/entities.schema.json +89 -0
- package/modules/mission-control/schemas/projects.schema.json +221 -0
- package/modules/mission-control/schemas/state.schema.json +108 -0
- package/modules/mission-control/schemas/vector.schema.json +200 -0
- package/modules/momentum/README.md +678 -0
- package/modules/momentum/bin/install.js +563 -0
- package/modules/momentum/integration.js +131 -0
- package/modules/momentum/package.json +42 -0
- package/modules/momentum/schemas/entities.schema.json +89 -0
- package/modules/momentum/schemas/projects.schema.json +221 -0
- package/modules/momentum/schemas/state.schema.json +108 -0
- package/modules/momentum/src/commands/audit-claude-md.md +31 -0
- package/modules/momentum/src/commands/audit.md +33 -0
- package/modules/momentum/src/commands/groom.md +35 -0
- package/modules/momentum/src/commands/history.md +27 -0
- package/modules/momentum/src/commands/pulse.md +33 -0
- package/modules/momentum/src/commands/scaffold.md +33 -0
- package/modules/momentum/src/commands/status.md +28 -0
- package/modules/momentum/src/commands/surface-convert.md +35 -0
- package/modules/momentum/src/commands/surface-create.md +34 -0
- package/modules/momentum/src/commands/surface-list.md +27 -0
- package/modules/momentum/src/commands/vector-hygiene.md +33 -0
- package/modules/momentum/src/framework/context/momentum-principles.md +71 -0
- package/modules/momentum/src/framework/frameworks/audit-strategies.md +53 -0
- package/modules/momentum/src/framework/frameworks/satellite-registration.md +44 -0
- package/modules/momentum/src/framework/tasks/audit-claude-md.md +68 -0
- package/modules/momentum/src/framework/tasks/audit.md +64 -0
- package/modules/momentum/src/framework/tasks/groom.md +164 -0
- package/modules/momentum/src/framework/tasks/history.md +34 -0
- package/modules/momentum/src/framework/tasks/pulse.md +83 -0
- package/modules/momentum/src/framework/tasks/scaffold.md +202 -0
- package/modules/momentum/src/framework/tasks/status.md +35 -0
- package/modules/momentum/src/framework/tasks/surface-convert.md +143 -0
- package/modules/momentum/src/framework/tasks/surface-create.md +184 -0
- package/modules/momentum/src/framework/tasks/surface-list.md +42 -0
- package/modules/momentum/src/framework/tasks/vector-hygiene.md +160 -0
- package/modules/momentum/src/framework/templates/workspace-json.md +96 -0
- package/modules/momentum/src/hooks/_template.py +129 -0
- package/modules/momentum/src/hooks/active-hook.py +178 -0
- package/modules/momentum/src/hooks/backlog-hook.py +115 -0
- package/modules/momentum/src/hooks/mission-control-insights.py +169 -0
- package/modules/momentum/src/hooks/momentum-pulse-check.py +351 -0
- package/modules/momentum/src/hooks/operator.py +53 -0
- package/modules/momentum/src/hooks/psmm-injector.py +67 -0
- package/modules/momentum/src/hooks/satellite-detection.py +248 -0
- package/modules/momentum/src/packages/momentum-mcp/index.js +119 -0
- package/modules/momentum/src/packages/momentum-mcp/package.json +10 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/entities.js +226 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/operator.js +106 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/projects.js +322 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/psmm.js +206 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/state.js +199 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/surfaces.js +404 -0
- package/modules/momentum/src/skill/momentum.md +111 -0
- package/modules/momentum/src/tasks/groom.md +164 -0
- package/modules/momentum/src/templates/operator.json +66 -0
- package/modules/momentum/src/templates/workspace.json +111 -0
- package/modules/momentum/terminal.svg +77 -0
- package/modules/radar/README.md +1552 -0
- package/modules/radar/commands/audit.md +233 -0
- package/modules/radar/commands/guardrails.md +194 -0
- package/modules/radar/commands/init.md +207 -0
- package/modules/radar/commands/playbook.md +176 -0
- package/modules/radar/commands/remediate.md +156 -0
- package/modules/radar/commands/report.md +172 -0
- package/modules/radar/commands/resume.md +176 -0
- package/modules/radar/commands/status.md +148 -0
- package/modules/radar/commands/transform.md +205 -0
- package/modules/radar/commands/validate.md +177 -0
- package/modules/radar/docs/ARCHITECTURE.md +336 -0
- package/modules/radar/docs/GETTING-STARTED.md +287 -0
- package/modules/radar/docs/standards/agents.md +197 -0
- package/modules/radar/docs/standards/commands.md +250 -0
- package/modules/radar/docs/standards/domains.md +191 -0
- package/modules/radar/docs/standards/personas.md +211 -0
- package/modules/radar/docs/standards/rules.md +218 -0
- package/modules/radar/docs/standards/runtime.md +445 -0
- package/modules/radar/docs/standards/schemas.md +269 -0
- package/modules/radar/docs/standards/tools.md +273 -0
- package/modules/radar/docs/standards/workflows.md +254 -0
- package/modules/radar/docs/terminal.svg +72 -0
- package/modules/radar/docs/validation/convention-compliance-report.md +183 -0
- package/modules/radar/docs/validation/cross-reference-report.md +195 -0
- package/modules/radar/docs/validation/validation-summary.md +118 -0
- package/modules/radar/docs/validation/version-manifest.yaml +363 -0
- package/modules/radar/install.sh +711 -0
- package/modules/radar/integration.js +53 -0
- package/modules/radar/src/core/agents/architect.md +25 -0
- package/modules/radar/src/core/agents/compliance-officer.md +25 -0
- package/modules/radar/src/core/agents/data-engineer.md +25 -0
- package/modules/radar/src/core/agents/devils-advocate.md +22 -0
- package/modules/radar/src/core/agents/performance-engineer.md +25 -0
- package/modules/radar/src/core/agents/principal-engineer.md +23 -0
- package/modules/radar/src/core/agents/reality-gap-analyst.md +22 -0
- package/modules/radar/src/core/agents/security-engineer.md +25 -0
- package/modules/radar/src/core/agents/senior-app-engineer.md +25 -0
- package/modules/radar/src/core/agents/sre.md +25 -0
- package/modules/radar/src/core/agents/staff-engineer.md +23 -0
- package/modules/radar/src/core/agents/test-engineer.md +25 -0
- package/modules/radar/src/core/personas/architect.md +111 -0
- package/modules/radar/src/core/personas/compliance-officer.md +104 -0
- package/modules/radar/src/core/personas/data-engineer.md +113 -0
- package/modules/radar/src/core/personas/devils-advocate.md +105 -0
- package/modules/radar/src/core/personas/performance-engineer.md +119 -0
- package/modules/radar/src/core/personas/principal-engineer.md +119 -0
- package/modules/radar/src/core/personas/reality-gap-analyst.md +111 -0
- package/modules/radar/src/core/personas/security-engineer.md +108 -0
- package/modules/radar/src/core/personas/senior-app-engineer.md +111 -0
- package/modules/radar/src/core/personas/sre.md +117 -0
- package/modules/radar/src/core/personas/staff-engineer.md +109 -0
- package/modules/radar/src/core/personas/test-engineer.md +109 -0
- package/modules/radar/src/core/workflows/disagreement-resolution.md +183 -0
- package/modules/radar/src/core/workflows/phase-0-context.md +148 -0
- package/modules/radar/src/core/workflows/phase-1-reconnaissance.md +169 -0
- package/modules/radar/src/core/workflows/phase-2-domain-audits.md +190 -0
- package/modules/radar/src/core/workflows/phase-3-cross-domain.md +177 -0
- package/modules/radar/src/core/workflows/phase-4-adversarial-review.md +165 -0
- package/modules/radar/src/core/workflows/phase-5-report.md +189 -0
- package/modules/radar/src/core/workflows/phase-checkpoint.md +222 -0
- package/modules/radar/src/core/workflows/session-handoff.md +152 -0
- package/modules/radar/src/domains/00-context.md +201 -0
- package/modules/radar/src/domains/01-architecture.md +248 -0
- package/modules/radar/src/domains/02-data.md +224 -0
- package/modules/radar/src/domains/03-correctness.md +230 -0
- package/modules/radar/src/domains/04-security.md +274 -0
- package/modules/radar/src/domains/05-compliance.md +228 -0
- package/modules/radar/src/domains/06-testing.md +228 -0
- package/modules/radar/src/domains/07-reliability.md +246 -0
- package/modules/radar/src/domains/08-performance.md +247 -0
- package/modules/radar/src/domains/09-maintainability.md +271 -0
- package/modules/radar/src/domains/10-operability.md +250 -0
- package/modules/radar/src/domains/11-change-risk.md +246 -0
- package/modules/radar/src/domains/12-team-risk.md +221 -0
- package/modules/radar/src/domains/13-risk-synthesis.md +202 -0
- package/modules/radar/src/rules/agent-boundaries.md +78 -0
- package/modules/radar/src/rules/disagreement-protocol.md +76 -0
- package/modules/radar/src/rules/epistemic-hygiene.md +78 -0
- package/modules/radar/src/schemas/confidence.md +185 -0
- package/modules/radar/src/schemas/disagreement.md +238 -0
- package/modules/radar/src/schemas/finding.md +287 -0
- package/modules/radar/src/schemas/report-section.md +150 -0
- package/modules/radar/src/schemas/signal.md +108 -0
- package/modules/radar/src/tools/checkov.md +463 -0
- package/modules/radar/src/tools/git-history.md +581 -0
- package/modules/radar/src/tools/gitleaks.md +447 -0
- package/modules/radar/src/tools/grype.md +611 -0
- package/modules/radar/src/tools/semgrep.md +378 -0
- package/modules/radar/src/tools/sonarqube.md +550 -0
- package/modules/radar/src/tools/syft.md +539 -0
- package/modules/radar/src/tools/trivy.md +439 -0
- package/modules/radar/src/transform/agents/change-risk-modeler.md +24 -0
- package/modules/radar/src/transform/agents/execution-validator.md +24 -0
- package/modules/radar/src/transform/agents/guardrail-generator.md +24 -0
- package/modules/radar/src/transform/agents/pedagogy-agent.md +24 -0
- package/modules/radar/src/transform/agents/remediation-architect.md +24 -0
- package/modules/radar/src/transform/personas/change-risk-modeler.md +95 -0
- package/modules/radar/src/transform/personas/execution-validator.md +95 -0
- package/modules/radar/src/transform/personas/guardrail-generator.md +103 -0
- package/modules/radar/src/transform/personas/pedagogy-agent.md +105 -0
- package/modules/radar/src/transform/personas/remediation-architect.md +95 -0
- package/modules/radar/src/transform/rules/change-risk-rules.md +87 -0
- package/modules/radar/src/transform/rules/safety-governance.md +87 -0
- package/modules/radar/src/transform/schemas/change-risk.md +139 -0
- package/modules/radar/src/transform/schemas/intervention-level.md +207 -0
- package/modules/radar/src/transform/schemas/playbook.md +205 -0
- package/modules/radar/src/transform/schemas/verification-plan.md +134 -0
- package/modules/radar/src/transform/workflows/phase-6-remediation.md +148 -0
- package/modules/radar/src/transform/workflows/phase-7-risk-validation.md +161 -0
- package/modules/radar/src/transform/workflows/phase-8-execution-planning.md +159 -0
- package/modules/radar/src/transform/workflows/transform-safety.md +158 -0
- package/modules/vector/.vector-template/sessions/.gitkeep +0 -0
- package/modules/vector/.vector-template/vector.json +72 -0
- package/modules/vector/AUDIT-CLAUDEMD.md +154 -0
- package/modules/vector/INSTALL.md +185 -0
- package/modules/vector/LICENSE +21 -0
- package/modules/vector/README.md +409 -0
- package/modules/vector/VECTOR-BLOCK.md +57 -0
- package/modules/vector/assets/terminal.svg +68 -0
- package/modules/vector/bin/install.js +455 -0
- package/modules/vector/bin/migrate-v1-to-v2.sh +492 -0
- package/modules/vector/commands/help.md +46 -0
- package/modules/vector/hooks/vector-hook.py +775 -0
- package/modules/vector/mcp/index.js +118 -0
- package/modules/vector/mcp/package.json +10 -0
- package/modules/vector/mcp/tools/decisions.js +269 -0
- package/modules/vector/mcp/tools/domains.js +361 -0
- package/modules/vector/mcp/tools/staging.js +252 -0
- package/modules/vector/mcp/tools/vector-json.js +647 -0
- package/modules/vector/package.json +38 -0
- package/modules/vector/schemas/vector.schema.json +237 -0
- package/package.json +39 -0
- package/shared/branding/branding.js +70 -0
- package/shared/config/defaults.json +59 -0
- package/shared/events/README.md +175 -0
- package/shared/events/event-bus.js +134 -0
- package/shared/events/event_bus.py +255 -0
- package/shared/events/integrations.js +161 -0
- package/shared/events/schemas/audit-complete.schema.json +21 -0
- package/shared/events/schemas/phase-progress.schema.json +23 -0
- package/shared/events/schemas/plan-created.schema.json +21 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Daily workspace activation. Read workspace state, calculate drift, present health dashboard, prime the operator for their session.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<user-story>
|
|
6
|
+
As an AI builder, I want a quick workspace health briefing at session start, so that I know what needs attention before I start working.
|
|
7
|
+
</user-story>
|
|
8
|
+
|
|
9
|
+
<when-to-use>
|
|
10
|
+
- Start of every work session
|
|
11
|
+
- When user says "momentum pulse", "what's the state of things", "workspace status"
|
|
12
|
+
- When the pulse hook detects overdue grooming and injects a prompt
|
|
13
|
+
- Entry point routes here via /momentum:pulse
|
|
14
|
+
</when-to-use>
|
|
15
|
+
|
|
16
|
+
<steps>
|
|
17
|
+
|
|
18
|
+
<step name="read_state" priority="first">
|
|
19
|
+
Read workspace state from `.accel/momentum/workspace.json` and `.accel/momentum/STATE.md`.
|
|
20
|
+
|
|
21
|
+
1. Read `.accel/momentum/workspace.json` — the manifest
|
|
22
|
+
2. Read `.accel/momentum/STATE.md` — the last known state
|
|
23
|
+
3. If either file is missing, suggest running `/momentum:scaffold` first
|
|
24
|
+
4. Extract: last groom date, groom cadence, area list, satellite list
|
|
25
|
+
</step>
|
|
26
|
+
|
|
27
|
+
<step name="calculate_drift">
|
|
28
|
+
Check each tracked area against filesystem reality.
|
|
29
|
+
|
|
30
|
+
For each area in the manifest:
|
|
31
|
+
1. Check filesystem timestamps on tracked paths (stat modification dates)
|
|
32
|
+
2. Compare against last groom date and area-specific cadence
|
|
33
|
+
3. Calculate days overdue (0 if within cadence)
|
|
34
|
+
4. Classify: Current (within cadence), Stale (1-2x overdue), Critical (2x+ overdue)
|
|
35
|
+
|
|
36
|
+
For each registered satellite:
|
|
37
|
+
1. Check if state file exists and is readable
|
|
38
|
+
2. Extract last modification date
|
|
39
|
+
3. Report current phase if parseable
|
|
40
|
+
|
|
41
|
+
Calculate total drift score: sum of days-overdue across all areas, with Critical areas weighted 2x.
|
|
42
|
+
</step>
|
|
43
|
+
|
|
44
|
+
<step name="present_dashboard">
|
|
45
|
+
Present the health dashboard to the operator.
|
|
46
|
+
|
|
47
|
+
Format:
|
|
48
|
+
```
|
|
49
|
+
Momentum Pulse — {workspace-name}
|
|
50
|
+
Last Groom: {date} ({N} days ago)
|
|
51
|
+
Drift Score: {score}
|
|
52
|
+
|
|
53
|
+
| Area | Status | Age | Due |
|
|
54
|
+
|------|--------|-----|-----|
|
|
55
|
+
...
|
|
56
|
+
|
|
57
|
+
Satellites:
|
|
58
|
+
| Project | Phase | Last Active |
|
|
59
|
+
...
|
|
60
|
+
|
|
61
|
+
{Recommendation based on drift score}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Recommendations:
|
|
65
|
+
- Drift 0: "Workspace is clean. Proceed normally."
|
|
66
|
+
- Drift 1-7: "Minor drift in {areas}. Consider grooming this week."
|
|
67
|
+
- Drift 8-14: "Moderate drift. Run /momentum:groom soon."
|
|
68
|
+
- Drift 15+: "Critical drift. Workspace context is stale. Run /momentum:groom now."
|
|
69
|
+
</step>
|
|
70
|
+
|
|
71
|
+
</steps>
|
|
72
|
+
|
|
73
|
+
<output>
|
|
74
|
+
Health dashboard with drift score, area statuses, satellite health, and recommended next action.
|
|
75
|
+
</output>
|
|
76
|
+
|
|
77
|
+
<acceptance-criteria>
|
|
78
|
+
- [ ] All manifest areas checked against filesystem reality
|
|
79
|
+
- [ ] Drift score calculated correctly
|
|
80
|
+
- [ ] Satellites checked for health
|
|
81
|
+
- [ ] Clear recommendation provided based on drift level
|
|
82
|
+
- [ ] Dashboard is concise and scannable (not a wall of text)
|
|
83
|
+
</acceptance-criteria>
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Set up Momentum in a new or existing workspace. Scan the workspace, ask guided questions, generate the manifest, install hooks, initialize JSON data surfaces, and run operator profile setup. Optional --full mode adds CLAUDE.md audit and guided first groom.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<user-story>
|
|
6
|
+
As an AI builder setting up my workspace, I want a guided scaffolding process that configures workspace management for my specific setup, so that I get maintenance automation without manual configuration.
|
|
7
|
+
</user-story>
|
|
8
|
+
|
|
9
|
+
<when-to-use>
|
|
10
|
+
- First-time Momentum installation in any workspace
|
|
11
|
+
- When user says "momentum scaffold", "set up momentum", "initialize workspace management"
|
|
12
|
+
- Entry point routes here via /momentum:scaffold
|
|
13
|
+
- Use --full flag for batteries-included mode with CLAUDE.md audit + first groom
|
|
14
|
+
</when-to-use>
|
|
15
|
+
|
|
16
|
+
<context>
|
|
17
|
+
@templates/workspace-json.md
|
|
18
|
+
</context>
|
|
19
|
+
|
|
20
|
+
<steps>
|
|
21
|
+
|
|
22
|
+
<step name="detect_mode" priority="first">
|
|
23
|
+
Determine scaffold mode.
|
|
24
|
+
|
|
25
|
+
1. Check if user specified `--full` or mentioned wanting full setup
|
|
26
|
+
2. If `--full`: CLAUDE.md audit + first groom will be offered after data layer setup
|
|
27
|
+
3. If standard: data layer + hooks + operator profile
|
|
28
|
+
4. Announce mode: "Running Momentum scaffold ({standard|full} mode)."
|
|
29
|
+
</step>
|
|
30
|
+
|
|
31
|
+
<step name="scan_workspace">
|
|
32
|
+
Scan the workspace and detect what exists.
|
|
33
|
+
|
|
34
|
+
1. List top-level directories and files
|
|
35
|
+
2. Detect common patterns:
|
|
36
|
+
- .accel/momentum/data/ → existing JSON surfaces (v2 data model)
|
|
37
|
+
- ACTIVE.md, BACKLOG.md → legacy working memory (offer migration)
|
|
38
|
+
- projects/ → project tracking
|
|
39
|
+
- apps/ → satellite projects
|
|
40
|
+
- tools/ → tool management
|
|
41
|
+
- .claude/ → system layer
|
|
42
|
+
- .mcp.json → MCP configuration
|
|
43
|
+
- content/ → content pipeline
|
|
44
|
+
- clients/ → client work
|
|
45
|
+
- obsidian/ → knowledge graph
|
|
46
|
+
- .vector/ → Vector dynamic rules
|
|
47
|
+
3. Detect satellite projects (directories with .drive/ inside apps/)
|
|
48
|
+
4. Present findings: "I found: {list of detected areas}"
|
|
49
|
+
|
|
50
|
+
**Wait for confirmation before proceeding.**
|
|
51
|
+
</step>
|
|
52
|
+
|
|
53
|
+
<step name="guided_configuration">
|
|
54
|
+
Walk through each detected area and configure tracking.
|
|
55
|
+
|
|
56
|
+
For each detected area:
|
|
57
|
+
1. "I found {area}. Want Momentum to track this?"
|
|
58
|
+
2. If yes: "What grooming cadence? (weekly/bi-weekly/monthly)"
|
|
59
|
+
3. Auto-select audit strategy based on area type
|
|
60
|
+
4. Allow override of defaults
|
|
61
|
+
|
|
62
|
+
Also ask:
|
|
63
|
+
- "What day do you prefer for weekly grooming?" (default: Friday)
|
|
64
|
+
- "Any directories I should scan for satellite projects?" (default: apps/)
|
|
65
|
+
- "Anything else you want tracked that I didn't detect?"
|
|
66
|
+
|
|
67
|
+
Build workspace.json from responses using `@templates/workspace-json.md` schema.
|
|
68
|
+
</step>
|
|
69
|
+
|
|
70
|
+
<step name="install_data_layer">
|
|
71
|
+
Create .accel/momentum/ directory and generate JSON data surfaces.
|
|
72
|
+
|
|
73
|
+
1. Create `.accel/momentum/` directory structure:
|
|
74
|
+
```
|
|
75
|
+
.accel/momentum/
|
|
76
|
+
├── workspace.json
|
|
77
|
+
├── operator.json
|
|
78
|
+
├── data/
|
|
79
|
+
│ ├── active.json
|
|
80
|
+
│ ├── backlog.json
|
|
81
|
+
│ ├── projects.json
|
|
82
|
+
│ ├── entities.json
|
|
83
|
+
│ └── state.json
|
|
84
|
+
├── hooks/
|
|
85
|
+
├── momentum-mcp/
|
|
86
|
+
├── grooming/
|
|
87
|
+
└── audits/
|
|
88
|
+
```
|
|
89
|
+
2. Write workspace.json from guided configuration (with surfaces and vector_hygiene sections)
|
|
90
|
+
3. Initialize JSON data surfaces with empty starter content (don't overwrite existing)
|
|
91
|
+
4. Copy operator.json template (don't overwrite existing)
|
|
92
|
+
5. Register any detected satellite projects in workspace.json
|
|
93
|
+
6. Report: "Momentum data layer installed. {N} areas tracked, {N} satellites registered, {N} data surfaces initialized."
|
|
94
|
+
|
|
95
|
+
**Legacy migration:** If ACTIVE.md or BACKLOG.md exist at workspace root, offer to convert them to JSON surfaces using `/momentum:surface convert`. Do not delete originals — let the user do that after verifying the conversion.
|
|
96
|
+
</step>
|
|
97
|
+
|
|
98
|
+
<step name="install_hooks">
|
|
99
|
+
Install and register Momentum hooks.
|
|
100
|
+
|
|
101
|
+
All hooks live in `.accel/momentum/hooks/`. Session hooks are registered in `.claude/settings.json`.
|
|
102
|
+
|
|
103
|
+
**UserPromptSubmit hooks** (fire every prompt):
|
|
104
|
+
- active-hook.py — active work surface injection
|
|
105
|
+
- backlog-hook.py — backlog surface injection
|
|
106
|
+
- momentum-pulse-check.py — drift detection + groom reminders
|
|
107
|
+
- psmm-injector.py — per-session meta memory injection
|
|
108
|
+
- operator.py — operator identity context injection
|
|
109
|
+
- satellite-detection.py — Drive project auto-registration
|
|
110
|
+
|
|
111
|
+
**On-demand hooks** (invoked by commands, not auto-registered):
|
|
112
|
+
- mission-control-insights.py — workspace analytics (invoked by /accel:insights)
|
|
113
|
+
|
|
114
|
+
For each auto-fire hook:
|
|
115
|
+
1. Check if `.accel/momentum/hooks/{hook}` exists
|
|
116
|
+
2. If not: copy from `~/.claude/momentum-framework/hooks/{hook}` (global install source)
|
|
117
|
+
- If `~/.claude/momentum-framework/hooks/{hook}` doesn't exist either, warn:
|
|
118
|
+
"Momentum framework not globally installed. Run `npx momentum-framework --global` first, then re-run scaffold."
|
|
119
|
+
3. Check `.claude/settings.json` for hook registration in `UserPromptSubmit` array
|
|
120
|
+
4. If not registered: add the hook entry with absolute path to `.accel/momentum/hooks/{hook}`
|
|
121
|
+
|
|
122
|
+
Hook registration format in settings.json:
|
|
123
|
+
```json
|
|
124
|
+
{
|
|
125
|
+
"hooks": {
|
|
126
|
+
"UserPromptSubmit": [
|
|
127
|
+
{ "type": "command", "command": "python3 /absolute/path/.accel/momentum/hooks/{hook}" }
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Report: "Hooks installed ({N} auto-fire hooks registered, 1 on-demand hook available)."
|
|
134
|
+
</step>
|
|
135
|
+
|
|
136
|
+
<step name="operator_profile">
|
|
137
|
+
Guide the operator through their profile setup.
|
|
138
|
+
|
|
139
|
+
1. Check if `.accel/momentum/operator.json` has completed sections (check `completed_at` fields)
|
|
140
|
+
2. If all sections completed: "Operator profile already configured. Want to update any section?"
|
|
141
|
+
3. If incomplete or new:
|
|
142
|
+
- Walk through each section of operator.json:
|
|
143
|
+
a. **Deep Why** — 5 progressively deeper questions about motivation
|
|
144
|
+
b. **North Star** — One measurable metric with timeframe
|
|
145
|
+
c. **Key Values** — Rank-ordered values with concrete meanings (max 5)
|
|
146
|
+
d. **Elevator Pitch** — Layered pitch (1-4 floors)
|
|
147
|
+
e. **Surface Vision** — Concrete scenes of what success looks like
|
|
148
|
+
- Each section can be skipped: "Skip for now? You can complete it later."
|
|
149
|
+
- Write responses to operator.json after each section
|
|
150
|
+
4. Report: "Operator profile {complete|partially complete}. The operator hook will inject your identity context every session."
|
|
151
|
+
</step>
|
|
152
|
+
|
|
153
|
+
<step name="install_mcp">
|
|
154
|
+
Verify MCP server is wired.
|
|
155
|
+
|
|
156
|
+
1. Check `.mcp.json` for momentum-mcp registration
|
|
157
|
+
2. If not registered:
|
|
158
|
+
- Check if `.accel/momentum/momentum-mcp/` exists with node_modules
|
|
159
|
+
- If no node_modules: run `npm install` in `.accel/momentum/momentum-mcp/`
|
|
160
|
+
- Add registration to `.mcp.json`:
|
|
161
|
+
```json
|
|
162
|
+
{ "momentum-mcp": { "type": "stdio", "command": "node", "args": ["./.accel/momentum/momentum-mcp/index.js"] } }
|
|
163
|
+
```
|
|
164
|
+
3. Report: "Momentum MCP server registered. Claude can now manage your data surfaces through tool calls."
|
|
165
|
+
</step>
|
|
166
|
+
|
|
167
|
+
<step name="full_mode_extras">
|
|
168
|
+
**Full mode only.**
|
|
169
|
+
|
|
170
|
+
**CLAUDE.md audit:**
|
|
171
|
+
1. Check if CLAUDE.md exists
|
|
172
|
+
2. If exists: "Want me to audit your CLAUDE.md against Momentum conventions?"
|
|
173
|
+
- If yes: route to `/momentum:audit-claude-md` task
|
|
174
|
+
3. If doesn't exist: "Want me to generate a CLAUDE.md template for your workspace?"
|
|
175
|
+
- If yes: generate based on detected workspace structure
|
|
176
|
+
|
|
177
|
+
**First groom:**
|
|
178
|
+
1. "Want to run an initial groom to establish baseline? This reviews each area once."
|
|
179
|
+
2. If yes: run /momentum:groom flow
|
|
180
|
+
3. If no: "Baseline set from filesystem timestamps. First groom due: {date}."
|
|
181
|
+
</step>
|
|
182
|
+
|
|
183
|
+
</steps>
|
|
184
|
+
|
|
185
|
+
<output>
|
|
186
|
+
Fully configured Momentum installation. Standard mode: data layer with JSON surfaces, hooks wired, operator profile setup, MCP registered. Full mode: adds CLAUDE.md audit and guided first groom.
|
|
187
|
+
</output>
|
|
188
|
+
|
|
189
|
+
<acceptance-criteria>
|
|
190
|
+
- [ ] Workspace scanned and areas detected
|
|
191
|
+
- [ ] Operator confirmed tracked areas and cadences
|
|
192
|
+
- [ ] .accel/momentum/ directory created with all required files
|
|
193
|
+
- [ ] workspace.json generated from guided configuration
|
|
194
|
+
- [ ] JSON data surfaces initialized (active, backlog, projects, entities, state)
|
|
195
|
+
- [ ] operator.json created and profile questionnaire offered
|
|
196
|
+
- [ ] Satellite projects detected and registered
|
|
197
|
+
- [ ] All auto-fire hooks installed and registered in settings.json
|
|
198
|
+
- [ ] Momentum MCP server wired in .mcp.json
|
|
199
|
+
- [ ] (Full mode) CLAUDE.md audit offered
|
|
200
|
+
- [ ] (Full mode) First groom offered
|
|
201
|
+
- [ ] Operator informed of next groom date
|
|
202
|
+
</acceptance-criteria>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Quick one-liner workspace health check. No conversation, just the numbers.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<user-story>
|
|
6
|
+
As an AI builder, I want a fast health check I can glance at, so that I know if anything needs attention without a full briefing.
|
|
7
|
+
</user-story>
|
|
8
|
+
|
|
9
|
+
<when-to-use>
|
|
10
|
+
- When user wants a quick check without full pulse
|
|
11
|
+
- Entry point routes here via /momentum:status
|
|
12
|
+
</when-to-use>
|
|
13
|
+
|
|
14
|
+
<steps>
|
|
15
|
+
|
|
16
|
+
<step name="quick_check" priority="first">
|
|
17
|
+
Read state and output one-liner.
|
|
18
|
+
|
|
19
|
+
1. Read `.accel/momentum/STATE.md`
|
|
20
|
+
2. Calculate current drift score from timestamps
|
|
21
|
+
3. Count overdue areas and past-due backlog items
|
|
22
|
+
4. Output single line: "Momentum: Drift {score} | {N} areas overdue | {N} backlog items past review-by | Last groom: {date}"
|
|
23
|
+
</step>
|
|
24
|
+
|
|
25
|
+
</steps>
|
|
26
|
+
|
|
27
|
+
<output>
|
|
28
|
+
Single-line health summary. No conversation.
|
|
29
|
+
</output>
|
|
30
|
+
|
|
31
|
+
<acceptance-criteria>
|
|
32
|
+
- [ ] Output is one line
|
|
33
|
+
- [ ] Drift score is current (not cached)
|
|
34
|
+
- [ ] Overdue counts are accurate
|
|
35
|
+
</acceptance-criteria>
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Convert an existing @-mentioned markdown file into a structured data surface. Analyzes the markdown structure, proposes a schema, migrates content, and generates all surface artifacts (JSON, hook, registration).
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<user-story>
|
|
6
|
+
As an AI builder, I want to convert my existing markdown tracking files into structured surfaces so Claude gets cheap passive awareness instead of expensive @-file parsing.
|
|
7
|
+
</user-story>
|
|
8
|
+
|
|
9
|
+
<when-to-use>
|
|
10
|
+
- /momentum:surface convert {file-path}
|
|
11
|
+
- "convert this file to a surface", "make this a data surface"
|
|
12
|
+
- User has a markdown file they @-mention regularly and wants it structured
|
|
13
|
+
</when-to-use>
|
|
14
|
+
|
|
15
|
+
<context>
|
|
16
|
+
@.accel/momentum/hooks/_template.py
|
|
17
|
+
@.accel/momentum/workspace.json
|
|
18
|
+
</context>
|
|
19
|
+
|
|
20
|
+
<steps>
|
|
21
|
+
|
|
22
|
+
<step name="read" priority="first">
|
|
23
|
+
## Step 1: Read & Analyze
|
|
24
|
+
|
|
25
|
+
1. Read the specified markdown file completely
|
|
26
|
+
2. Detect structure:
|
|
27
|
+
- **Headings** → potential categories or priority groups
|
|
28
|
+
- **Bold labels** (e.g., `**Status:**`) → field names
|
|
29
|
+
- **List items** → individual entries
|
|
30
|
+
- **Checkboxes** → checklist/progress fields
|
|
31
|
+
- **Dates** → timestamp fields
|
|
32
|
+
- **File paths** → location fields
|
|
33
|
+
- **Tables** → structured data (archived items, reference tables)
|
|
34
|
+
3. Identify patterns:
|
|
35
|
+
- How many distinct items?
|
|
36
|
+
- What fields recur across items?
|
|
37
|
+
- Are there priority/status groupings?
|
|
38
|
+
- Is there an archived/done section?
|
|
39
|
+
|
|
40
|
+
Present findings:
|
|
41
|
+
```
|
|
42
|
+
Detected structure in {file}:
|
|
43
|
+
Items found: {count}
|
|
44
|
+
Sections: {list of heading-based groups}
|
|
45
|
+
Recurring fields: {field names}
|
|
46
|
+
Archived section: {yes/no}
|
|
47
|
+
```
|
|
48
|
+
</step>
|
|
49
|
+
|
|
50
|
+
<step name="propose">
|
|
51
|
+
## Step 2: Propose Schema
|
|
52
|
+
|
|
53
|
+
Based on analysis, propose:
|
|
54
|
+
|
|
55
|
+
1. **Surface name** — infer from filename (e.g., ACTIVE.md → "active")
|
|
56
|
+
2. **Schema** — field names, types, required fields, ID prefix
|
|
57
|
+
3. **Sample conversion** — show 2-3 items converted to JSON
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Proposed schema for "{name}":
|
|
61
|
+
ID prefix: {PREFIX}
|
|
62
|
+
Required: {fields}
|
|
63
|
+
Optional: {fields}
|
|
64
|
+
Priority levels: {if detected}
|
|
65
|
+
|
|
66
|
+
Sample conversion:
|
|
67
|
+
"{heading item}" →
|
|
68
|
+
{
|
|
69
|
+
"id": "PREFIX-001",
|
|
70
|
+
"title": "...",
|
|
71
|
+
"status": "...",
|
|
72
|
+
...
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Ask: "Does this schema look right? Adjust anything?"
|
|
77
|
+
|
|
78
|
+
**Wait for response.**
|
|
79
|
+
</step>
|
|
80
|
+
|
|
81
|
+
<step name="confirm">
|
|
82
|
+
## Step 3: Confirm
|
|
83
|
+
|
|
84
|
+
Apply any user adjustments to the schema. Lock it for generation.
|
|
85
|
+
|
|
86
|
+
If user is satisfied, confirm:
|
|
87
|
+
"Schema locked. I'll generate the surface and migrate {count} items."
|
|
88
|
+
</step>
|
|
89
|
+
|
|
90
|
+
<step name="generate">
|
|
91
|
+
## Step 4: Generate Artifacts
|
|
92
|
+
|
|
93
|
+
Same generation as surface-create Step 5:
|
|
94
|
+
- `.accel/momentum/data/{name}.json` — with migrated items (not empty)
|
|
95
|
+
- `.accel/momentum/hooks/{name}-hook.py` — from _template.py with appropriate grouping
|
|
96
|
+
- workspace.json surface registration
|
|
97
|
+
- settings.json hook entry
|
|
98
|
+
|
|
99
|
+
Include staleness detection with sensible defaults based on detected priority levels.
|
|
100
|
+
</step>
|
|
101
|
+
|
|
102
|
+
<step name="migrate">
|
|
103
|
+
## Step 5: Migrate Content
|
|
104
|
+
|
|
105
|
+
Parse every item from the markdown into JSON entries:
|
|
106
|
+
- Map heading groups to priority/category fields
|
|
107
|
+
- Map bold labels to field values
|
|
108
|
+
- Preserve checklists as arrays of {text, done} objects
|
|
109
|
+
- Preserve dates in ISO format
|
|
110
|
+
- Preserve file paths as location fields
|
|
111
|
+
- Map done/closed/archived sections to the archived array
|
|
112
|
+
|
|
113
|
+
Report:
|
|
114
|
+
```
|
|
115
|
+
Migration complete:
|
|
116
|
+
Items migrated: {count}
|
|
117
|
+
Archived items: {count}
|
|
118
|
+
Unmapped items: {count, if any — list them}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
If any items couldn't be auto-mapped, present them for manual resolution.
|
|
122
|
+
</step>
|
|
123
|
+
|
|
124
|
+
<step name="cleanup">
|
|
125
|
+
## Step 6: Clean Up
|
|
126
|
+
|
|
127
|
+
1. Check if the original file is @-referenced in CLAUDE.md
|
|
128
|
+
2. If found, offer: "Remove @{file} from CLAUDE.md? The surface hook replaces it."
|
|
129
|
+
3. Suggest: "Original file preserved at {path} for reference."
|
|
130
|
+
|
|
131
|
+
Do NOT delete the original markdown file — the user decides its fate.
|
|
132
|
+
</step>
|
|
133
|
+
|
|
134
|
+
</steps>
|
|
135
|
+
|
|
136
|
+
<verification>
|
|
137
|
+
After conversion:
|
|
138
|
+
- [ ] .accel/momentum/data/{name}.json exists with migrated items
|
|
139
|
+
- [ ] Item count matches source markdown
|
|
140
|
+
- [ ] .accel/momentum/hooks/{name}-hook.py exists and produces output
|
|
141
|
+
- [ ] workspace.json and settings.json updated
|
|
142
|
+
- [ ] Original markdown file is untouched
|
|
143
|
+
</verification>
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Create a new data surface through guided conversation. Generates: JSON data file, injection hook, workspace.json registration, and settings.json hook entry. The user answers questions; Claude generates everything.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<user-story>
|
|
6
|
+
As an AI builder, I want to create custom data surfaces so Claude has structured, passive awareness of any domain I track — without manually wiring JSON files, hooks, and config.
|
|
7
|
+
</user-story>
|
|
8
|
+
|
|
9
|
+
<when-to-use>
|
|
10
|
+
- /momentum:surface create {name}
|
|
11
|
+
- "create a surface", "add a new surface", "I want to track X"
|
|
12
|
+
- User wants structured data with hook injection and MCP access
|
|
13
|
+
</when-to-use>
|
|
14
|
+
|
|
15
|
+
<context>
|
|
16
|
+
@.accel/momentum/hooks/_template.py
|
|
17
|
+
@.accel/momentum/workspace.json
|
|
18
|
+
</context>
|
|
19
|
+
|
|
20
|
+
<steps>
|
|
21
|
+
|
|
22
|
+
<step name="define" priority="first">
|
|
23
|
+
## Step 1: Define
|
|
24
|
+
|
|
25
|
+
Extract surface name from args or ask: "What should this surface be called? (lowercase, no spaces)"
|
|
26
|
+
|
|
27
|
+
**Validate:**
|
|
28
|
+
1. Name is lowercase, alphanumeric + hyphens only
|
|
29
|
+
2. Not already registered in workspace.json surfaces section
|
|
30
|
+
3. No reserved names: "active", "backlog", "psmm", "staging"
|
|
31
|
+
|
|
32
|
+
Ask: "What does this surface track? (one sentence)"
|
|
33
|
+
→ This becomes the `description` in workspace.json.
|
|
34
|
+
|
|
35
|
+
**Wait for response before proceeding.**
|
|
36
|
+
</step>
|
|
37
|
+
|
|
38
|
+
<step name="schema">
|
|
39
|
+
## Step 2: Schema
|
|
40
|
+
|
|
41
|
+
Ask: "What fields does each item need?"
|
|
42
|
+
|
|
43
|
+
Guide through these decisions (one at a time):
|
|
44
|
+
|
|
45
|
+
1. **Required fields** — What must every item have?
|
|
46
|
+
- Default minimum: `["title"]`
|
|
47
|
+
- Common additions: status, priority, category, assignee, due_date
|
|
48
|
+
|
|
49
|
+
2. **ID prefix** — Auto-suggest first 3 chars of name, uppercase.
|
|
50
|
+
- e.g., surface "clients" → prefix "CLI"
|
|
51
|
+
- User can override
|
|
52
|
+
|
|
53
|
+
3. **Priority/status enums** — If the surface has priority or status fields:
|
|
54
|
+
- Ask: "What priority levels?" (e.g., high, medium, low)
|
|
55
|
+
- Ask: "What status values?" (e.g., active, pending, done)
|
|
56
|
+
|
|
57
|
+
4. **Time rules** (optional) — If the surface benefits from review-by dates:
|
|
58
|
+
- Ask: "Should items have review-by deadlines? If so, how many days per priority level?"
|
|
59
|
+
- Default: none
|
|
60
|
+
|
|
61
|
+
Build the schema object from answers:
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"id_prefix": "CLI",
|
|
65
|
+
"required_fields": ["title", "status"],
|
|
66
|
+
"priority_levels": ["high", "medium", "low"],
|
|
67
|
+
"status_values": ["active", "pending", "done"]
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Wait for response before proceeding.**
|
|
72
|
+
</step>
|
|
73
|
+
|
|
74
|
+
<step name="injection">
|
|
75
|
+
## Step 3: Injection
|
|
76
|
+
|
|
77
|
+
Ask: "How should items appear in Claude's context each prompt?"
|
|
78
|
+
|
|
79
|
+
Guide through:
|
|
80
|
+
|
|
81
|
+
1. **Grouping** — How to organize items in the injection?
|
|
82
|
+
- By priority (default) | By status | By date | Flat (no grouping)
|
|
83
|
+
|
|
84
|
+
2. **Summary format** — What fields to show per line?
|
|
85
|
+
- Default: `- [ID] Title (status)`
|
|
86
|
+
- Can add: priority tag, due date, custom field
|
|
87
|
+
|
|
88
|
+
3. **Staleness thresholds** — Days before an item is flagged STALE per priority:
|
|
89
|
+
- Suggest defaults based on priority levels from Step 2
|
|
90
|
+
- e.g., high: 5d, medium: 10d, low: 30d
|
|
91
|
+
- User can adjust
|
|
92
|
+
|
|
93
|
+
4. **Behavioral mode:**
|
|
94
|
+
- Silent (default) — passive awareness, respond only when asked
|
|
95
|
+
- Proactive — mention items unprompted (rare, use for critical surfaces)
|
|
96
|
+
- Threshold — stay silent unless deadline/staleness threshold crossed
|
|
97
|
+
|
|
98
|
+
**Wait for response before proceeding.**
|
|
99
|
+
</step>
|
|
100
|
+
|
|
101
|
+
<step name="tools">
|
|
102
|
+
## Step 4: Tools (Informational)
|
|
103
|
+
|
|
104
|
+
Inform the user:
|
|
105
|
+
|
|
106
|
+
"All 7 Momentum MCP tools work automatically with your new surface:
|
|
107
|
+
- `momentum_list_surfaces` — see all surfaces
|
|
108
|
+
- `momentum_get_surface("{name}")` — read all items
|
|
109
|
+
- `momentum_get_item("{name}", id)` — get specific item
|
|
110
|
+
- `momentum_add_item("{name}", data)` — add new item (validates required fields, auto-generates ID)
|
|
111
|
+
- `momentum_update_item("{name}", id, data)` — update fields (resets staleness clock)
|
|
112
|
+
- `momentum_archive_item("{name}", id)` — move to archived
|
|
113
|
+
- `momentum_search(query, "{name}")` — search items
|
|
114
|
+
|
|
115
|
+
No configuration needed — Momentum MCP auto-discovers surfaces from workspace.json."
|
|
116
|
+
|
|
117
|
+
**Continue to generation.**
|
|
118
|
+
</step>
|
|
119
|
+
|
|
120
|
+
<step name="generate" priority="critical">
|
|
121
|
+
## Step 5: Generate
|
|
122
|
+
|
|
123
|
+
Create all artifacts:
|
|
124
|
+
|
|
125
|
+
**1. Data file:** `.accel/momentum/data/{name}.json`
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"surface": "{name}",
|
|
129
|
+
"version": 1,
|
|
130
|
+
"last_modified": "{timestamp}",
|
|
131
|
+
"items": [],
|
|
132
|
+
"archived": []
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**2. Hook file:** `.accel/momentum/hooks/{name}-hook.py`
|
|
137
|
+
- Read `.accel/momentum/hooks/_template.py` as the starting point
|
|
138
|
+
- Customize SURFACE_NAME, grouping logic, summary format, staleness thresholds, behavioral directive
|
|
139
|
+
- Use the injection decisions from Step 3
|
|
140
|
+
- Include `from datetime import date` for staleness calculation
|
|
141
|
+
- Follow the _template.py contract exactly
|
|
142
|
+
|
|
143
|
+
**3. Registration:** Add to `.accel/momentum/workspace.json` surfaces section:
|
|
144
|
+
```json
|
|
145
|
+
"{name}": {
|
|
146
|
+
"file": "data/{name}.json",
|
|
147
|
+
"description": "{description from Step 1}",
|
|
148
|
+
"hook": true,
|
|
149
|
+
"silent": true,
|
|
150
|
+
"schema": { ...schema from Step 2... }
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**4. Hook registration:** Add to `.claude/settings.json` UserPromptSubmit hooks:
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"type": "command",
|
|
158
|
+
"command": "python3 {absolute_workspace_path}/.accel/momentum/hooks/{name}-hook.py"
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
Use absolute path resolved from workspace root.
|
|
162
|
+
|
|
163
|
+
**5. Report:**
|
|
164
|
+
```
|
|
165
|
+
Surface "{name}" created:
|
|
166
|
+
Data: .accel/momentum/data/{name}.json (empty, ready for items)
|
|
167
|
+
Hook: .accel/momentum/hooks/{name}-hook.py (will inject next prompt)
|
|
168
|
+
Schema: {id_prefix}-NNN, {required_fields}
|
|
169
|
+
Tools: momentum_get_item("{name}", id), momentum_add_item("{name}", data), etc.
|
|
170
|
+
|
|
171
|
+
Add your first item: momentum_add_item("{name}", {title: "..."})
|
|
172
|
+
```
|
|
173
|
+
</step>
|
|
174
|
+
|
|
175
|
+
</steps>
|
|
176
|
+
|
|
177
|
+
<verification>
|
|
178
|
+
After generation:
|
|
179
|
+
- [ ] .accel/momentum/data/{name}.json exists and is valid JSON
|
|
180
|
+
- [ ] .accel/momentum/hooks/{name}-hook.py exists and parses as valid Python
|
|
181
|
+
- [ ] workspace.json has the surface registration
|
|
182
|
+
- [ ] settings.json has the hook entry with absolute path
|
|
183
|
+
- [ ] Hook outputs correct XML when piped test input
|
|
184
|
+
</verification>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Display all registered data surfaces with item counts, hook status, and staleness summary.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<when-to-use>
|
|
6
|
+
- /momentum:surface list
|
|
7
|
+
- "what surfaces exist", "show surfaces", "list surfaces"
|
|
8
|
+
</when-to-use>
|
|
9
|
+
|
|
10
|
+
<steps>
|
|
11
|
+
|
|
12
|
+
<step name="read_and_display">
|
|
13
|
+
## Show Surfaces
|
|
14
|
+
|
|
15
|
+
1. Call `momentum_list_surfaces` to get all registered surfaces with item counts
|
|
16
|
+
2. For each surface, read the data file to count stale items (items with no `updated` field or `updated` older than threshold)
|
|
17
|
+
|
|
18
|
+
Display as:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Data Surfaces
|
|
22
|
+
═══════════════════════════════════════
|
|
23
|
+
|
|
24
|
+
| Surface | Items | Hook | Description |
|
|
25
|
+
|---------|-------|------|-------------|
|
|
26
|
+
| active | 12 | ✓ | Active work items, projects, and tasks |
|
|
27
|
+
| backlog | 8 | ✓ | Future work queue, ideas, and deferred tasks |
|
|
28
|
+
|
|
29
|
+
Total: {count} surfaces, {total_items} items
|
|
30
|
+
|
|
31
|
+
Create a new surface: /momentum:surface create {name}
|
|
32
|
+
Convert a file: /momentum:surface convert {path}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
If no surfaces registered:
|
|
36
|
+
```
|
|
37
|
+
No data surfaces registered.
|
|
38
|
+
Run /momentum:surface create {name} to create your first surface.
|
|
39
|
+
```
|
|
40
|
+
</step>
|
|
41
|
+
|
|
42
|
+
</steps>
|