sillyspec 3.27.5 → 3.27.7
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/skills/sillyspec-archive/SKILL.md +87 -87
- package/.claude/skills/sillyspec-auto/SKILL.md +93 -93
- package/.claude/skills/sillyspec-brainstorm/SKILL.md +114 -114
- package/.claude/skills/sillyspec-commit/SKILL.md +67 -67
- package/.claude/skills/sillyspec-continue/SKILL.md +47 -47
- package/.claude/skills/sillyspec-doctor/SKILL.md +76 -76
- package/.claude/skills/sillyspec-execute/SKILL.md +214 -214
- package/.claude/skills/sillyspec-explore/SKILL.md +102 -102
- package/.claude/skills/sillyspec-export/SKILL.md +57 -57
- package/.claude/skills/sillyspec-init/SKILL.md +177 -177
- package/.claude/skills/sillyspec-knowledge/SKILL.md +269 -269
- package/.claude/skills/sillyspec-plan/SKILL.md +156 -156
- package/.claude/skills/sillyspec-propose/SKILL.md +87 -0
- package/.claude/skills/sillyspec-quick/SKILL.md +116 -116
- package/.claude/skills/sillyspec-resume/SKILL.md +70 -70
- package/.claude/skills/sillyspec-scan/SKILL.md +79 -79
- package/.claude/skills/sillyspec-state/SKILL.md +64 -64
- package/.claude/skills/sillyspec-status/SKILL.md +54 -54
- package/.claude/skills/sillyspec-verify/SKILL.md +87 -87
- package/.claude/skills/sillyspec-workspace/SKILL.md +175 -175
- package/.claude/skills/verify-per-user/SKILL.md +6 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-archive/SKILL.md +87 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-auto/SKILL.md +93 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-brainstorm/SKILL.md +114 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-commit/SKILL.md +67 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-continue/SKILL.md +47 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-doctor/SKILL.md +76 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-execute/SKILL.md +214 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-explore/SKILL.md +102 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-export/SKILL.md +57 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-init/SKILL.md +177 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-knowledge/SKILL.md +270 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-plan/SKILL.md +156 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-propose/SKILL.md +87 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-quick/SKILL.md +116 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-resume/SKILL.md +70 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-scan/SKILL.md +79 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-state/SKILL.md +64 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-status/SKILL.md +54 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-verify/SKILL.md +87 -0
- package/.worktrees/2c37b1d7/.claude/skills/sillyspec-workspace/SKILL.md +175 -0
- package/.worktrees/2c37b1d7/.claude/skills/verify-per-user/SKILL.md +6 -0
- package/.worktrees/2c37b1d7/.gitattributes +2 -0
- package/.worktrees/2c37b1d7/.husky/pre-push +20 -0
- package/.worktrees/2c37b1d7/README.md +203 -0
- package/.worktrees/2c37b1d7/SKILL.md +91 -0
- package/.worktrees/2c37b1d7/architecture-analysis.md +448 -0
- package/.worktrees/2c37b1d7/bin/sillyspec.js +2 -0
- package/.worktrees/2c37b1d7/eval/README.md +86 -0
- package/.worktrees/2c37b1d7/eval/eval.config.json +28 -0
- package/.worktrees/2c37b1d7/eval/lib/adapters/cli.mjs +63 -0
- package/.worktrees/2c37b1d7/eval/lib/adapters/dryrun.mjs +27 -0
- package/.worktrees/2c37b1d7/eval/lib/config.mjs +82 -0
- package/.worktrees/2c37b1d7/eval/lib/db.mjs +76 -0
- package/.worktrees/2c37b1d7/eval/lib/report.mjs +120 -0
- package/.worktrees/2c37b1d7/eval/lib/runner.mjs +157 -0
- package/.worktrees/2c37b1d7/eval/lib/tasks.mjs +73 -0
- package/.worktrees/2c37b1d7/eval/lib/util.mjs +107 -0
- package/.worktrees/2c37b1d7/eval/lib/workdir.mjs +30 -0
- package/.worktrees/2c37b1d7/eval/run.mjs +83 -0
- package/.worktrees/2c37b1d7/eval/tasks/001-slugify/files/package.json +6 -0
- package/.worktrees/2c37b1d7/eval/tasks/001-slugify/solution/src/slugify.mjs +26 -0
- package/.worktrees/2c37b1d7/eval/tasks/001-slugify/task.json +6 -0
- package/.worktrees/2c37b1d7/eval/tasks/001-slugify/verify.mjs +28 -0
- package/.worktrees/2c37b1d7/eval/tasks/002-each-day/files/package.json +6 -0
- package/.worktrees/2c37b1d7/eval/tasks/002-each-day/files/src/dates.mjs +4 -0
- package/.worktrees/2c37b1d7/eval/tasks/002-each-day/solution/src/dates.mjs +30 -0
- package/.worktrees/2c37b1d7/eval/tasks/002-each-day/task.json +6 -0
- package/.worktrees/2c37b1d7/eval/tasks/002-each-day/verify.mjs +31 -0
- package/.worktrees/2c37b1d7/eval/tasks/003-word-report/files/data/notes.txt +5 -0
- package/.worktrees/2c37b1d7/eval/tasks/003-word-report/files/package.json +6 -0
- package/.worktrees/2c37b1d7/eval/tasks/003-word-report/solution/bin/report.mjs +36 -0
- package/.worktrees/2c37b1d7/eval/tasks/003-word-report/task.json +6 -0
- package/.worktrees/2c37b1d7/eval/tasks/003-word-report/verify.mjs +38 -0
- package/.worktrees/2c37b1d7/logo.jpg +0 -0
- package/.worktrees/2c37b1d7/package-lock.json +977 -0
- package/.worktrees/2c37b1d7/package.json +41 -0
- package/.worktrees/2c37b1d7/packages/dashboard/dist/assets/index-Bq_Z2hne.js +7446 -0
- package/.worktrees/2c37b1d7/packages/dashboard/dist/assets/index-O2W5RV4z.css +1 -0
- package/.worktrees/2c37b1d7/packages/dashboard/dist/favicon.jpg +0 -0
- package/.worktrees/2c37b1d7/packages/dashboard/dist/index.html +16 -0
- package/.worktrees/2c37b1d7/packages/dashboard/dist/logo.jpg +0 -0
- package/.worktrees/2c37b1d7/packages/dashboard/dist/prototype-dashboard.html +836 -0
- package/.worktrees/2c37b1d7/packages/dashboard/dist/prototype-overview.html +256 -0
- package/.worktrees/2c37b1d7/packages/dashboard/package.json +25 -0
- package/.worktrees/2c37b1d7/packages/dashboard/server/executor.js +95 -0
- package/.worktrees/2c37b1d7/packages/dashboard/server/index.js +679 -0
- package/.worktrees/2c37b1d7/packages/dashboard/server/parser.js +526 -0
- package/.worktrees/2c37b1d7/packages/dashboard/server/watcher.js +357 -0
- package/.worktrees/2c37b1d7/src/agent-session-log.js +803 -0
- package/.worktrees/2c37b1d7/src/change-list.js +290 -0
- package/.worktrees/2c37b1d7/src/change-risk-profile.js +339 -0
- package/.worktrees/2c37b1d7/src/check-primitives.js +65 -0
- package/.worktrees/2c37b1d7/src/classify-change.js +109 -0
- package/.worktrees/2c37b1d7/src/commit-suggest.js +202 -0
- package/.worktrees/2c37b1d7/src/config-cat.js +88 -0
- package/.worktrees/2c37b1d7/src/config-schema.js +328 -0
- package/.worktrees/2c37b1d7/src/constants.js +97 -0
- package/.worktrees/2c37b1d7/src/contract-matrix.js +533 -0
- package/.worktrees/2c37b1d7/src/datetime.js +20 -0
- package/.worktrees/2c37b1d7/src/db-engine.js +55 -0
- package/.worktrees/2c37b1d7/src/db.js +381 -0
- package/.worktrees/2c37b1d7/src/decision-distill.js +517 -0
- package/.worktrees/2c37b1d7/src/dispatch/backends/local-agent.js +155 -0
- package/.worktrees/2c37b1d7/src/dispatch/backends/sillyhub-mcp.js +245 -0
- package/.worktrees/2c37b1d7/src/dispatch/probe.js +246 -0
- package/.worktrees/2c37b1d7/src/dispatch/strategy.js +121 -0
- package/.worktrees/2c37b1d7/src/docs-check.js +825 -0
- package/.worktrees/2c37b1d7/src/docs-debt.js +393 -0
- package/.worktrees/2c37b1d7/src/docs-gate.js +107 -0
- package/.worktrees/2c37b1d7/src/doctor-diagnostics.js +1099 -0
- package/.worktrees/2c37b1d7/src/endpoint-extractor.js +409 -0
- package/.worktrees/2c37b1d7/src/foreign-declared.js +155 -0
- package/.worktrees/2c37b1d7/src/fs-atomic.js +73 -0
- package/.worktrees/2c37b1d7/src/git-helper.js +150 -0
- package/.worktrees/2c37b1d7/src/hooks/claude-pre-tool-use.cjs +130 -0
- package/.worktrees/2c37b1d7/src/hooks/worktree-guard.js +892 -0
- package/.worktrees/2c37b1d7/src/index.js +2854 -0
- package/.worktrees/2c37b1d7/src/init.js +626 -0
- package/.worktrees/2c37b1d7/src/knowledge-match.js +231 -0
- package/.worktrees/2c37b1d7/src/local-detect.js +128 -0
- package/.worktrees/2c37b1d7/src/local-register.js +104 -0
- package/.worktrees/2c37b1d7/src/machine-interface.js +543 -0
- package/.worktrees/2c37b1d7/src/migrate.js +127 -0
- package/.worktrees/2c37b1d7/src/module-impact.js +166 -0
- package/.worktrees/2c37b1d7/src/module-resolve.js +222 -0
- package/.worktrees/2c37b1d7/src/modules.js +580 -0
- package/.worktrees/2c37b1d7/src/plan-adopt-waves.js +126 -0
- package/.worktrees/2c37b1d7/src/progress/change-registry.js +336 -0
- package/.worktrees/2c37b1d7/src/progress/consistency-doctor.js +355 -0
- package/.worktrees/2c37b1d7/src/progress/shared.js +36 -0
- package/.worktrees/2c37b1d7/src/progress/stage-machine.js +594 -0
- package/.worktrees/2c37b1d7/src/progress/step-store.js +265 -0
- package/.worktrees/2c37b1d7/src/progress.js +1304 -0
- package/.worktrees/2c37b1d7/src/quick-recommend.js +115 -0
- package/.worktrees/2c37b1d7/src/quicklog.js +883 -0
- package/.worktrees/2c37b1d7/src/review-tier.js +77 -0
- package/.worktrees/2c37b1d7/src/run/command.js +1641 -0
- package/.worktrees/2c37b1d7/src/run/complete-handlers.js +1552 -0
- package/.worktrees/2c37b1d7/src/run/complete.js +1259 -0
- package/.worktrees/2c37b1d7/src/run/concurrent-detect.js +156 -0
- package/.worktrees/2c37b1d7/src/run/gates.js +1111 -0
- package/.worktrees/2c37b1d7/src/run/multi-repo-context.js +208 -0
- package/.worktrees/2c37b1d7/src/run/next.js +128 -0
- package/.worktrees/2c37b1d7/src/run/prompt.js +843 -0
- package/.worktrees/2c37b1d7/src/run/quick-audit.js +186 -0
- package/.worktrees/2c37b1d7/src/run/scan-profile.js +269 -0
- package/.worktrees/2c37b1d7/src/run/shared.js +1562 -0
- package/.worktrees/2c37b1d7/src/run/stage.js +587 -0
- package/.worktrees/2c37b1d7/src/run.js +23 -0
- package/.worktrees/2c37b1d7/src/scan-diff.js +388 -0
- package/.worktrees/2c37b1d7/src/scan-postcheck.js +524 -0
- package/.worktrees/2c37b1d7/src/scan-staleness.js +95 -0
- package/.worktrees/2c37b1d7/src/setup.js +414 -0
- package/.worktrees/2c37b1d7/src/sillyhub-mcp/client.js +597 -0
- package/.worktrees/2c37b1d7/src/sillyhub-mcp/config.js +62 -0
- package/.worktrees/2c37b1d7/src/spec-dir-typo.js +50 -0
- package/.worktrees/2c37b1d7/src/spec-sync.js +358 -0
- package/.worktrees/2c37b1d7/src/stage-contract-engine.js +171 -0
- package/.worktrees/2c37b1d7/src/stage-contract-spec.js +551 -0
- package/.worktrees/2c37b1d7/src/stage-contract.js +948 -0
- package/.worktrees/2c37b1d7/src/stage-review.js +597 -0
- package/.worktrees/2c37b1d7/src/stages/archive.js +199 -0
- package/.worktrees/2c37b1d7/src/stages/brainstorm-auto.js +285 -0
- package/.worktrees/2c37b1d7/src/stages/brainstorm.js +624 -0
- package/.worktrees/2c37b1d7/src/stages/cmd-existence.js +145 -0
- package/.worktrees/2c37b1d7/src/stages/doctor.js +540 -0
- package/.worktrees/2c37b1d7/src/stages/execute.js +1277 -0
- package/.worktrees/2c37b1d7/src/stages/explore.js +43 -0
- package/.worktrees/2c37b1d7/src/stages/index.js +29 -0
- package/.worktrees/2c37b1d7/src/stages/knowledge.js +514 -0
- package/.worktrees/2c37b1d7/src/stages/plan-postcheck.js +1398 -0
- package/.worktrees/2c37b1d7/src/stages/plan.js +655 -0
- package/.worktrees/2c37b1d7/src/stages/quick.js +167 -0
- package/.worktrees/2c37b1d7/src/stages/scan.js +608 -0
- package/.worktrees/2c37b1d7/src/stages/status.js +64 -0
- package/.worktrees/2c37b1d7/src/stages/verify.js +246 -0
- package/.worktrees/2c37b1d7/src/sync.js +1470 -0
- package/.worktrees/2c37b1d7/src/task-review.js +1498 -0
- package/.worktrees/2c37b1d7/src/taskcard-placeholders.js +21 -0
- package/.worktrees/2c37b1d7/src/taskcard.js +250 -0
- package/.worktrees/2c37b1d7/src/verify-postcheck.js +1718 -0
- package/.worktrees/2c37b1d7/src/verify-probes.js +327 -0
- package/.worktrees/2c37b1d7/src/version.js +19 -0
- package/.worktrees/2c37b1d7/src/workflow.js +600 -0
- package/.worktrees/2c37b1d7/src/workspace.js +125 -0
- package/.worktrees/2c37b1d7/src/worktree-apply.js +1611 -0
- package/.worktrees/2c37b1d7/src/worktree-deps.js +668 -0
- package/.worktrees/2c37b1d7/src/worktree.js +1849 -0
- package/.worktrees/2c37b1d7/templates/claude-instruction.md +23 -0
- package/.worktrees/2c37b1d7/templates/prompts/taskcard-rules.md +29 -0
- package/.worktrees/2c37b1d7/templates/prompts/testcase-design.md +12 -0
- package/.worktrees/2c37b1d7/templates/prompts/verify-probes.md +32 -0
- package/.worktrees/2c37b1d7/templates/workflows/archive-impact.yaml +79 -0
- package/.worktrees/2c37b1d7/templates/workflows/scan-docs.yaml +132 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-archive/SKILL.md +87 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-auto/SKILL.md +93 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-brainstorm/SKILL.md +114 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-commit/SKILL.md +67 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-continue/SKILL.md +47 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-doctor/SKILL.md +76 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-execute/SKILL.md +214 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-explore/SKILL.md +102 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-export/SKILL.md +57 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-init/SKILL.md +177 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-knowledge/SKILL.md +270 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-plan/SKILL.md +156 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-quick/SKILL.md +116 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-resume/SKILL.md +70 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-scan/SKILL.md +79 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-state/SKILL.md +64 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-status/SKILL.md +54 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-verify/SKILL.md +87 -0
- package/.worktrees/542c4415/.claude/skills/sillyspec-workspace/SKILL.md +175 -0
- package/.worktrees/542c4415/.gitattributes +2 -0
- package/.worktrees/542c4415/.husky/pre-push +20 -0
- package/.worktrees/542c4415/README.md +203 -0
- package/.worktrees/542c4415/SKILL.md +91 -0
- package/.worktrees/542c4415/architecture-analysis.md +448 -0
- package/.worktrees/542c4415/bin/sillyspec.js +2 -0
- package/.worktrees/542c4415/eval/README.md +86 -0
- package/.worktrees/542c4415/eval/eval.config.json +28 -0
- package/.worktrees/542c4415/eval/lib/adapters/cli.mjs +63 -0
- package/.worktrees/542c4415/eval/lib/adapters/dryrun.mjs +27 -0
- package/.worktrees/542c4415/eval/lib/config.mjs +82 -0
- package/.worktrees/542c4415/eval/lib/db.mjs +76 -0
- package/.worktrees/542c4415/eval/lib/report.mjs +120 -0
- package/.worktrees/542c4415/eval/lib/runner.mjs +157 -0
- package/.worktrees/542c4415/eval/lib/tasks.mjs +73 -0
- package/.worktrees/542c4415/eval/lib/util.mjs +107 -0
- package/.worktrees/542c4415/eval/lib/workdir.mjs +30 -0
- package/.worktrees/542c4415/eval/run.mjs +83 -0
- package/.worktrees/542c4415/eval/tasks/001-slugify/files/package.json +6 -0
- package/.worktrees/542c4415/eval/tasks/001-slugify/solution/src/slugify.mjs +26 -0
- package/.worktrees/542c4415/eval/tasks/001-slugify/task.json +6 -0
- package/.worktrees/542c4415/eval/tasks/001-slugify/verify.mjs +28 -0
- package/.worktrees/542c4415/eval/tasks/002-each-day/files/package.json +6 -0
- package/.worktrees/542c4415/eval/tasks/002-each-day/files/src/dates.mjs +4 -0
- package/.worktrees/542c4415/eval/tasks/002-each-day/solution/src/dates.mjs +30 -0
- package/.worktrees/542c4415/eval/tasks/002-each-day/task.json +6 -0
- package/.worktrees/542c4415/eval/tasks/002-each-day/verify.mjs +31 -0
- package/.worktrees/542c4415/eval/tasks/003-word-report/files/data/notes.txt +5 -0
- package/.worktrees/542c4415/eval/tasks/003-word-report/files/package.json +6 -0
- package/.worktrees/542c4415/eval/tasks/003-word-report/solution/bin/report.mjs +36 -0
- package/.worktrees/542c4415/eval/tasks/003-word-report/task.json +6 -0
- package/.worktrees/542c4415/eval/tasks/003-word-report/verify.mjs +38 -0
- package/.worktrees/542c4415/logo.jpg +0 -0
- package/.worktrees/542c4415/package-lock.json +977 -0
- package/.worktrees/542c4415/package.json +41 -0
- package/.worktrees/542c4415/packages/dashboard/dist/assets/index-Bq_Z2hne.js +7446 -0
- package/.worktrees/542c4415/packages/dashboard/dist/assets/index-O2W5RV4z.css +1 -0
- package/.worktrees/542c4415/packages/dashboard/dist/favicon.jpg +0 -0
- package/.worktrees/542c4415/packages/dashboard/dist/index.html +16 -0
- package/.worktrees/542c4415/packages/dashboard/dist/logo.jpg +0 -0
- package/.worktrees/542c4415/packages/dashboard/dist/prototype-dashboard.html +836 -0
- package/.worktrees/542c4415/packages/dashboard/dist/prototype-overview.html +256 -0
- package/.worktrees/542c4415/packages/dashboard/package.json +25 -0
- package/.worktrees/542c4415/packages/dashboard/server/executor.js +95 -0
- package/.worktrees/542c4415/packages/dashboard/server/index.js +679 -0
- package/.worktrees/542c4415/packages/dashboard/server/parser.js +526 -0
- package/.worktrees/542c4415/packages/dashboard/server/watcher.js +357 -0
- package/.worktrees/542c4415/src/agent-session-log.js +803 -0
- package/.worktrees/542c4415/src/change-list.js +290 -0
- package/.worktrees/542c4415/src/change-risk-profile.js +339 -0
- package/.worktrees/542c4415/src/check-primitives.js +65 -0
- package/.worktrees/542c4415/src/classify-change.js +109 -0
- package/.worktrees/542c4415/src/commit-suggest.js +202 -0
- package/.worktrees/542c4415/src/config-cat.js +88 -0
- package/.worktrees/542c4415/src/config-schema.js +328 -0
- package/.worktrees/542c4415/src/constants.js +97 -0
- package/.worktrees/542c4415/src/contract-matrix.js +533 -0
- package/.worktrees/542c4415/src/datetime.js +20 -0
- package/.worktrees/542c4415/src/db-engine.js +55 -0
- package/.worktrees/542c4415/src/db.js +381 -0
- package/.worktrees/542c4415/src/decision-distill.js +517 -0
- package/.worktrees/542c4415/src/dispatch/backends/local-agent.js +155 -0
- package/.worktrees/542c4415/src/dispatch/backends/sillyhub-mcp.js +245 -0
- package/.worktrees/542c4415/src/dispatch/probe.js +246 -0
- package/.worktrees/542c4415/src/dispatch/strategy.js +121 -0
- package/.worktrees/542c4415/src/docs-check.js +825 -0
- package/.worktrees/542c4415/src/docs-debt.js +393 -0
- package/.worktrees/542c4415/src/docs-gate.js +107 -0
- package/.worktrees/542c4415/src/doctor-diagnostics.js +1099 -0
- package/.worktrees/542c4415/src/endpoint-extractor.js +409 -0
- package/.worktrees/542c4415/src/foreign-declared.js +155 -0
- package/.worktrees/542c4415/src/fs-atomic.js +73 -0
- package/.worktrees/542c4415/src/git-helper.js +150 -0
- package/.worktrees/542c4415/src/hooks/claude-pre-tool-use.cjs +130 -0
- package/.worktrees/542c4415/src/hooks/worktree-guard.js +892 -0
- package/.worktrees/542c4415/src/index.js +2854 -0
- package/.worktrees/542c4415/src/init.js +626 -0
- package/.worktrees/542c4415/src/knowledge-match.js +231 -0
- package/.worktrees/542c4415/src/local-detect.js +128 -0
- package/.worktrees/542c4415/src/local-register.js +104 -0
- package/.worktrees/542c4415/src/machine-interface.js +543 -0
- package/.worktrees/542c4415/src/migrate.js +127 -0
- package/.worktrees/542c4415/src/module-impact.js +166 -0
- package/.worktrees/542c4415/src/module-resolve.js +222 -0
- package/.worktrees/542c4415/src/modules.js +580 -0
- package/.worktrees/542c4415/src/plan-adopt-waves.js +126 -0
- package/.worktrees/542c4415/src/progress/change-registry.js +336 -0
- package/.worktrees/542c4415/src/progress/consistency-doctor.js +355 -0
- package/.worktrees/542c4415/src/progress/shared.js +36 -0
- package/.worktrees/542c4415/src/progress/stage-machine.js +594 -0
- package/.worktrees/542c4415/src/progress/step-store.js +265 -0
- package/.worktrees/542c4415/src/progress.js +1304 -0
- package/.worktrees/542c4415/src/quick-recommend.js +115 -0
- package/.worktrees/542c4415/src/quicklog.js +883 -0
- package/.worktrees/542c4415/src/review-tier.js +77 -0
- package/.worktrees/542c4415/src/run/command.js +1641 -0
- package/.worktrees/542c4415/src/run/complete-handlers.js +1552 -0
- package/.worktrees/542c4415/src/run/complete.js +1259 -0
- package/.worktrees/542c4415/src/run/concurrent-detect.js +156 -0
- package/.worktrees/542c4415/src/run/gates.js +1111 -0
- package/.worktrees/542c4415/src/run/multi-repo-context.js +208 -0
- package/.worktrees/542c4415/src/run/next.js +128 -0
- package/.worktrees/542c4415/src/run/prompt.js +843 -0
- package/.worktrees/542c4415/src/run/quick-audit.js +186 -0
- package/.worktrees/542c4415/src/run/scan-profile.js +269 -0
- package/.worktrees/542c4415/src/run/shared.js +1562 -0
- package/.worktrees/542c4415/src/run/stage.js +587 -0
- package/.worktrees/542c4415/src/run.js +23 -0
- package/.worktrees/542c4415/src/scan-diff.js +388 -0
- package/.worktrees/542c4415/src/scan-postcheck.js +524 -0
- package/.worktrees/542c4415/src/scan-staleness.js +95 -0
- package/.worktrees/542c4415/src/setup.js +414 -0
- package/.worktrees/542c4415/src/sillyhub-mcp/client.js +597 -0
- package/.worktrees/542c4415/src/sillyhub-mcp/config.js +62 -0
- package/.worktrees/542c4415/src/spec-dir-typo.js +50 -0
- package/.worktrees/542c4415/src/spec-sync.js +358 -0
- package/.worktrees/542c4415/src/stage-contract-engine.js +171 -0
- package/.worktrees/542c4415/src/stage-contract-spec.js +551 -0
- package/.worktrees/542c4415/src/stage-contract.js +948 -0
- package/.worktrees/542c4415/src/stage-review.js +597 -0
- package/.worktrees/542c4415/src/stages/archive.js +199 -0
- package/.worktrees/542c4415/src/stages/brainstorm-auto.js +285 -0
- package/.worktrees/542c4415/src/stages/brainstorm.js +624 -0
- package/.worktrees/542c4415/src/stages/cmd-existence.js +145 -0
- package/.worktrees/542c4415/src/stages/doctor.js +540 -0
- package/.worktrees/542c4415/src/stages/execute.js +1277 -0
- package/.worktrees/542c4415/src/stages/explore.js +43 -0
- package/.worktrees/542c4415/src/stages/index.js +29 -0
- package/.worktrees/542c4415/src/stages/knowledge.js +514 -0
- package/.worktrees/542c4415/src/stages/plan-postcheck.js +1398 -0
- package/.worktrees/542c4415/src/stages/plan.js +655 -0
- package/.worktrees/542c4415/src/stages/quick.js +167 -0
- package/.worktrees/542c4415/src/stages/scan.js +608 -0
- package/.worktrees/542c4415/src/stages/status.js +64 -0
- package/.worktrees/542c4415/src/stages/verify.js +246 -0
- package/.worktrees/542c4415/src/sync.js +1470 -0
- package/.worktrees/542c4415/src/task-review.js +1498 -0
- package/.worktrees/542c4415/src/taskcard-placeholders.js +21 -0
- package/.worktrees/542c4415/src/taskcard.js +250 -0
- package/.worktrees/542c4415/src/verify-postcheck.js +1718 -0
- package/.worktrees/542c4415/src/verify-probes.js +327 -0
- package/.worktrees/542c4415/src/version.js +19 -0
- package/.worktrees/542c4415/src/workflow.js +600 -0
- package/.worktrees/542c4415/src/workspace.js +125 -0
- package/.worktrees/542c4415/src/worktree-apply.js +1611 -0
- package/.worktrees/542c4415/src/worktree-deps.js +668 -0
- package/.worktrees/542c4415/src/worktree.js +1849 -0
- package/.worktrees/542c4415/templates/claude-instruction.md +23 -0
- package/.worktrees/542c4415/templates/prompts/taskcard-rules.md +29 -0
- package/.worktrees/542c4415/templates/prompts/testcase-design.md +12 -0
- package/.worktrees/542c4415/templates/prompts/verify-probes.md +32 -0
- package/.worktrees/542c4415/templates/workflows/archive-impact.yaml +79 -0
- package/.worktrees/542c4415/templates/workflows/scan-docs.yaml +132 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-archive/SKILL.md +87 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-auto/SKILL.md +93 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-brainstorm/SKILL.md +114 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-commit/SKILL.md +67 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-continue/SKILL.md +47 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-doctor/SKILL.md +76 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-execute/SKILL.md +214 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-explore/SKILL.md +102 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-export/SKILL.md +57 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-init/SKILL.md +177 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-knowledge/SKILL.md +270 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-plan/SKILL.md +156 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-propose/SKILL.md +87 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-quick/SKILL.md +116 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-resume/SKILL.md +70 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-scan/SKILL.md +79 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-state/SKILL.md +64 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-status/SKILL.md +54 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-verify/SKILL.md +87 -0
- package/.worktrees/8d2d0392/.claude/skills/sillyspec-workspace/SKILL.md +175 -0
- package/.worktrees/8d2d0392/.claude/skills/verify-per-user/SKILL.md +6 -0
- package/.worktrees/8d2d0392/.gitattributes +2 -0
- package/.worktrees/8d2d0392/.husky/pre-push +20 -0
- package/.worktrees/8d2d0392/README.md +203 -0
- package/.worktrees/8d2d0392/SKILL.md +91 -0
- package/.worktrees/8d2d0392/architecture-analysis.md +448 -0
- package/.worktrees/8d2d0392/bin/sillyspec.js +2 -0
- package/.worktrees/8d2d0392/eval/README.md +86 -0
- package/.worktrees/8d2d0392/eval/eval.config.json +28 -0
- package/.worktrees/8d2d0392/eval/lib/adapters/cli.mjs +63 -0
- package/.worktrees/8d2d0392/eval/lib/adapters/dryrun.mjs +27 -0
- package/.worktrees/8d2d0392/eval/lib/config.mjs +82 -0
- package/.worktrees/8d2d0392/eval/lib/db.mjs +76 -0
- package/.worktrees/8d2d0392/eval/lib/report.mjs +120 -0
- package/.worktrees/8d2d0392/eval/lib/runner.mjs +157 -0
- package/.worktrees/8d2d0392/eval/lib/tasks.mjs +73 -0
- package/.worktrees/8d2d0392/eval/lib/util.mjs +107 -0
- package/.worktrees/8d2d0392/eval/lib/workdir.mjs +30 -0
- package/.worktrees/8d2d0392/eval/run.mjs +83 -0
- package/.worktrees/8d2d0392/eval/tasks/001-slugify/files/package.json +6 -0
- package/.worktrees/8d2d0392/eval/tasks/001-slugify/solution/src/slugify.mjs +26 -0
- package/.worktrees/8d2d0392/eval/tasks/001-slugify/task.json +6 -0
- package/.worktrees/8d2d0392/eval/tasks/001-slugify/verify.mjs +28 -0
- package/.worktrees/8d2d0392/eval/tasks/002-each-day/files/package.json +6 -0
- package/.worktrees/8d2d0392/eval/tasks/002-each-day/files/src/dates.mjs +4 -0
- package/.worktrees/8d2d0392/eval/tasks/002-each-day/solution/src/dates.mjs +30 -0
- package/.worktrees/8d2d0392/eval/tasks/002-each-day/task.json +6 -0
- package/.worktrees/8d2d0392/eval/tasks/002-each-day/verify.mjs +31 -0
- package/.worktrees/8d2d0392/eval/tasks/003-word-report/files/data/notes.txt +5 -0
- package/.worktrees/8d2d0392/eval/tasks/003-word-report/files/package.json +6 -0
- package/.worktrees/8d2d0392/eval/tasks/003-word-report/solution/bin/report.mjs +36 -0
- package/.worktrees/8d2d0392/eval/tasks/003-word-report/task.json +6 -0
- package/.worktrees/8d2d0392/eval/tasks/003-word-report/verify.mjs +38 -0
- package/.worktrees/8d2d0392/logo.jpg +0 -0
- package/.worktrees/8d2d0392/package-lock.json +977 -0
- package/.worktrees/8d2d0392/package.json +41 -0
- package/.worktrees/8d2d0392/packages/dashboard/dist/assets/index-Bq_Z2hne.js +7446 -0
- package/.worktrees/8d2d0392/packages/dashboard/dist/assets/index-O2W5RV4z.css +1 -0
- package/.worktrees/8d2d0392/packages/dashboard/dist/favicon.jpg +0 -0
- package/.worktrees/8d2d0392/packages/dashboard/dist/index.html +16 -0
- package/.worktrees/8d2d0392/packages/dashboard/dist/logo.jpg +0 -0
- package/.worktrees/8d2d0392/packages/dashboard/dist/prototype-dashboard.html +836 -0
- package/.worktrees/8d2d0392/packages/dashboard/dist/prototype-overview.html +256 -0
- package/.worktrees/8d2d0392/packages/dashboard/package.json +25 -0
- package/.worktrees/8d2d0392/packages/dashboard/server/executor.js +95 -0
- package/.worktrees/8d2d0392/packages/dashboard/server/index.js +679 -0
- package/.worktrees/8d2d0392/packages/dashboard/server/parser.js +526 -0
- package/.worktrees/8d2d0392/packages/dashboard/server/watcher.js +357 -0
- package/.worktrees/8d2d0392/src/agent-session-log.js +803 -0
- package/.worktrees/8d2d0392/src/change-list.js +290 -0
- package/.worktrees/8d2d0392/src/change-risk-profile.js +339 -0
- package/.worktrees/8d2d0392/src/check-primitives.js +65 -0
- package/.worktrees/8d2d0392/src/classify-change.js +109 -0
- package/.worktrees/8d2d0392/src/commit-suggest.js +202 -0
- package/.worktrees/8d2d0392/src/config-cat.js +88 -0
- package/.worktrees/8d2d0392/src/config-schema.js +328 -0
- package/.worktrees/8d2d0392/src/constants.js +97 -0
- package/.worktrees/8d2d0392/src/contract-matrix.js +533 -0
- package/.worktrees/8d2d0392/src/datetime.js +20 -0
- package/.worktrees/8d2d0392/src/db-engine.js +55 -0
- package/.worktrees/8d2d0392/src/db.js +381 -0
- package/.worktrees/8d2d0392/src/decision-distill.js +517 -0
- package/.worktrees/8d2d0392/src/dispatch/backends/local-agent.js +155 -0
- package/.worktrees/8d2d0392/src/dispatch/backends/sillyhub-mcp.js +245 -0
- package/.worktrees/8d2d0392/src/dispatch/probe.js +246 -0
- package/.worktrees/8d2d0392/src/dispatch/strategy.js +121 -0
- package/.worktrees/8d2d0392/src/docs-check.js +825 -0
- package/.worktrees/8d2d0392/src/docs-debt.js +393 -0
- package/.worktrees/8d2d0392/src/docs-gate.js +107 -0
- package/.worktrees/8d2d0392/src/doctor-diagnostics.js +1099 -0
- package/.worktrees/8d2d0392/src/endpoint-extractor.js +409 -0
- package/.worktrees/8d2d0392/src/foreign-declared.js +78 -0
- package/.worktrees/8d2d0392/src/fs-atomic.js +73 -0
- package/.worktrees/8d2d0392/src/git-helper.js +150 -0
- package/.worktrees/8d2d0392/src/hooks/claude-pre-tool-use.cjs +130 -0
- package/.worktrees/8d2d0392/src/hooks/worktree-guard.js +892 -0
- package/.worktrees/8d2d0392/src/index.js +2854 -0
- package/.worktrees/8d2d0392/src/init.js +626 -0
- package/.worktrees/8d2d0392/src/knowledge-match.js +231 -0
- package/.worktrees/8d2d0392/src/local-detect.js +128 -0
- package/.worktrees/8d2d0392/src/local-register.js +104 -0
- package/.worktrees/8d2d0392/src/machine-interface.js +543 -0
- package/.worktrees/8d2d0392/src/migrate.js +127 -0
- package/.worktrees/8d2d0392/src/module-impact.js +166 -0
- package/.worktrees/8d2d0392/src/module-resolve.js +222 -0
- package/.worktrees/8d2d0392/src/modules.js +580 -0
- package/.worktrees/8d2d0392/src/plan-adopt-waves.js +126 -0
- package/.worktrees/8d2d0392/src/progress/change-registry.js +336 -0
- package/.worktrees/8d2d0392/src/progress/consistency-doctor.js +355 -0
- package/.worktrees/8d2d0392/src/progress/shared.js +36 -0
- package/.worktrees/8d2d0392/src/progress/stage-machine.js +594 -0
- package/.worktrees/8d2d0392/src/progress/step-store.js +265 -0
- package/.worktrees/8d2d0392/src/progress.js +1304 -0
- package/.worktrees/8d2d0392/src/quick-recommend.js +115 -0
- package/.worktrees/8d2d0392/src/quicklog.js +883 -0
- package/.worktrees/8d2d0392/src/review-tier.js +77 -0
- package/.worktrees/8d2d0392/src/run/command.js +1641 -0
- package/.worktrees/8d2d0392/src/run/complete-handlers.js +1552 -0
- package/.worktrees/8d2d0392/src/run/complete.js +1259 -0
- package/.worktrees/8d2d0392/src/run/concurrent-detect.js +156 -0
- package/.worktrees/8d2d0392/src/run/gates.js +1094 -0
- package/.worktrees/8d2d0392/src/run/multi-repo-context.js +208 -0
- package/.worktrees/8d2d0392/src/run/next.js +128 -0
- package/.worktrees/8d2d0392/src/run/prompt.js +843 -0
- package/.worktrees/8d2d0392/src/run/quick-audit.js +186 -0
- package/.worktrees/8d2d0392/src/run/scan-profile.js +269 -0
- package/.worktrees/8d2d0392/src/run/shared.js +1562 -0
- package/.worktrees/8d2d0392/src/run/stage.js +587 -0
- package/.worktrees/8d2d0392/src/run.js +23 -0
- package/.worktrees/8d2d0392/src/scan-diff.js +388 -0
- package/.worktrees/8d2d0392/src/scan-postcheck.js +524 -0
- package/.worktrees/8d2d0392/src/scan-staleness.js +95 -0
- package/.worktrees/8d2d0392/src/setup.js +414 -0
- package/.worktrees/8d2d0392/src/sillyhub-mcp/client.js +597 -0
- package/.worktrees/8d2d0392/src/sillyhub-mcp/config.js +62 -0
- package/.worktrees/8d2d0392/src/spec-dir-typo.js +50 -0
- package/.worktrees/8d2d0392/src/spec-sync.js +358 -0
- package/.worktrees/8d2d0392/src/stage-contract-engine.js +171 -0
- package/.worktrees/8d2d0392/src/stage-contract-spec.js +551 -0
- package/.worktrees/8d2d0392/src/stage-contract.js +948 -0
- package/.worktrees/8d2d0392/src/stage-review.js +597 -0
- package/.worktrees/8d2d0392/src/stages/archive.js +199 -0
- package/.worktrees/8d2d0392/src/stages/brainstorm-auto.js +285 -0
- package/.worktrees/8d2d0392/src/stages/brainstorm.js +624 -0
- package/.worktrees/8d2d0392/src/stages/cmd-existence.js +145 -0
- package/.worktrees/8d2d0392/src/stages/doctor.js +540 -0
- package/.worktrees/8d2d0392/src/stages/execute.js +1277 -0
- package/.worktrees/8d2d0392/src/stages/explore.js +43 -0
- package/.worktrees/8d2d0392/src/stages/index.js +29 -0
- package/.worktrees/8d2d0392/src/stages/knowledge.js +514 -0
- package/.worktrees/8d2d0392/src/stages/plan-postcheck.js +1398 -0
- package/.worktrees/8d2d0392/src/stages/plan.js +651 -0
- package/.worktrees/8d2d0392/src/stages/quick.js +167 -0
- package/.worktrees/8d2d0392/src/stages/scan.js +608 -0
- package/.worktrees/8d2d0392/src/stages/status.js +64 -0
- package/.worktrees/8d2d0392/src/stages/verify.js +246 -0
- package/.worktrees/8d2d0392/src/sync.js +1470 -0
- package/.worktrees/8d2d0392/src/task-review.js +1498 -0
- package/.worktrees/8d2d0392/src/taskcard-placeholders.js +21 -0
- package/.worktrees/8d2d0392/src/taskcard.js +217 -0
- package/.worktrees/8d2d0392/src/verify-postcheck.js +1718 -0
- package/.worktrees/8d2d0392/src/verify-probes.js +327 -0
- package/.worktrees/8d2d0392/src/version.js +19 -0
- package/.worktrees/8d2d0392/src/workflow.js +600 -0
- package/.worktrees/8d2d0392/src/workspace.js +125 -0
- package/.worktrees/8d2d0392/src/worktree-apply.js +1611 -0
- package/.worktrees/8d2d0392/src/worktree-deps.js +576 -0
- package/.worktrees/8d2d0392/src/worktree.js +1838 -0
- package/.worktrees/8d2d0392/templates/claude-instruction.md +23 -0
- package/.worktrees/8d2d0392/templates/prompts/taskcard-rules.md +29 -0
- package/.worktrees/8d2d0392/templates/prompts/testcase-design.md +12 -0
- package/.worktrees/8d2d0392/templates/prompts/verify-probes.md +32 -0
- package/.worktrees/8d2d0392/templates/workflows/archive-impact.yaml +79 -0
- package/.worktrees/8d2d0392/templates/workflows/scan-docs.yaml +132 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-archive/SKILL.md +87 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-auto/SKILL.md +93 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-brainstorm/SKILL.md +114 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-commit/SKILL.md +67 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-continue/SKILL.md +47 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-doctor/SKILL.md +76 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-execute/SKILL.md +214 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-explore/SKILL.md +102 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-export/SKILL.md +57 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-init/SKILL.md +177 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-knowledge/SKILL.md +270 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-plan/SKILL.md +156 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-quick/SKILL.md +116 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-resume/SKILL.md +70 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-scan/SKILL.md +79 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-state/SKILL.md +64 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-status/SKILL.md +54 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-verify/SKILL.md +87 -0
- package/.worktrees/c1eae35e/.claude/skills/sillyspec-workspace/SKILL.md +175 -0
- package/.worktrees/c1eae35e/.gitattributes +2 -0
- package/.worktrees/c1eae35e/.husky/pre-push +20 -0
- package/.worktrees/c1eae35e/README.md +203 -0
- package/.worktrees/c1eae35e/SKILL.md +91 -0
- package/.worktrees/c1eae35e/architecture-analysis.md +448 -0
- package/.worktrees/c1eae35e/bin/sillyspec.js +2 -0
- package/.worktrees/c1eae35e/eval/README.md +86 -0
- package/.worktrees/c1eae35e/eval/eval.config.json +28 -0
- package/.worktrees/c1eae35e/eval/lib/adapters/cli.mjs +63 -0
- package/.worktrees/c1eae35e/eval/lib/adapters/dryrun.mjs +27 -0
- package/.worktrees/c1eae35e/eval/lib/config.mjs +82 -0
- package/.worktrees/c1eae35e/eval/lib/db.mjs +76 -0
- package/.worktrees/c1eae35e/eval/lib/report.mjs +120 -0
- package/.worktrees/c1eae35e/eval/lib/runner.mjs +157 -0
- package/.worktrees/c1eae35e/eval/lib/tasks.mjs +73 -0
- package/.worktrees/c1eae35e/eval/lib/util.mjs +107 -0
- package/.worktrees/c1eae35e/eval/lib/workdir.mjs +30 -0
- package/.worktrees/c1eae35e/eval/run.mjs +83 -0
- package/.worktrees/c1eae35e/eval/tasks/001-slugify/files/package.json +6 -0
- package/.worktrees/c1eae35e/eval/tasks/001-slugify/solution/src/slugify.mjs +26 -0
- package/.worktrees/c1eae35e/eval/tasks/001-slugify/task.json +6 -0
- package/.worktrees/c1eae35e/eval/tasks/001-slugify/verify.mjs +28 -0
- package/.worktrees/c1eae35e/eval/tasks/002-each-day/files/package.json +6 -0
- package/.worktrees/c1eae35e/eval/tasks/002-each-day/files/src/dates.mjs +4 -0
- package/.worktrees/c1eae35e/eval/tasks/002-each-day/solution/src/dates.mjs +30 -0
- package/.worktrees/c1eae35e/eval/tasks/002-each-day/task.json +6 -0
- package/.worktrees/c1eae35e/eval/tasks/002-each-day/verify.mjs +31 -0
- package/.worktrees/c1eae35e/eval/tasks/003-word-report/files/data/notes.txt +5 -0
- package/.worktrees/c1eae35e/eval/tasks/003-word-report/files/package.json +6 -0
- package/.worktrees/c1eae35e/eval/tasks/003-word-report/solution/bin/report.mjs +36 -0
- package/.worktrees/c1eae35e/eval/tasks/003-word-report/task.json +6 -0
- package/.worktrees/c1eae35e/eval/tasks/003-word-report/verify.mjs +38 -0
- package/.worktrees/c1eae35e/logo.jpg +0 -0
- package/.worktrees/c1eae35e/package-lock.json +977 -0
- package/.worktrees/c1eae35e/package.json +41 -0
- package/.worktrees/c1eae35e/packages/dashboard/dist/assets/index-Bq_Z2hne.js +7446 -0
- package/.worktrees/c1eae35e/packages/dashboard/dist/assets/index-O2W5RV4z.css +1 -0
- package/.worktrees/c1eae35e/packages/dashboard/dist/favicon.jpg +0 -0
- package/.worktrees/c1eae35e/packages/dashboard/dist/index.html +16 -0
- package/.worktrees/c1eae35e/packages/dashboard/dist/logo.jpg +0 -0
- package/.worktrees/c1eae35e/packages/dashboard/dist/prototype-dashboard.html +836 -0
- package/.worktrees/c1eae35e/packages/dashboard/dist/prototype-overview.html +256 -0
- package/.worktrees/c1eae35e/packages/dashboard/package.json +25 -0
- package/.worktrees/c1eae35e/packages/dashboard/server/executor.js +95 -0
- package/.worktrees/c1eae35e/packages/dashboard/server/index.js +679 -0
- package/.worktrees/c1eae35e/packages/dashboard/server/parser.js +526 -0
- package/.worktrees/c1eae35e/packages/dashboard/server/watcher.js +357 -0
- package/.worktrees/c1eae35e/src/agent-session-log.js +803 -0
- package/.worktrees/c1eae35e/src/change-list.js +290 -0
- package/.worktrees/c1eae35e/src/change-risk-profile.js +339 -0
- package/.worktrees/c1eae35e/src/check-primitives.js +65 -0
- package/.worktrees/c1eae35e/src/classify-change.js +109 -0
- package/.worktrees/c1eae35e/src/commit-suggest.js +202 -0
- package/.worktrees/c1eae35e/src/config-cat.js +88 -0
- package/.worktrees/c1eae35e/src/config-schema.js +328 -0
- package/.worktrees/c1eae35e/src/constants.js +97 -0
- package/.worktrees/c1eae35e/src/contract-matrix.js +533 -0
- package/.worktrees/c1eae35e/src/datetime.js +20 -0
- package/.worktrees/c1eae35e/src/db-engine.js +55 -0
- package/.worktrees/c1eae35e/src/db.js +381 -0
- package/.worktrees/c1eae35e/src/decision-distill.js +517 -0
- package/.worktrees/c1eae35e/src/dispatch/backends/local-agent.js +155 -0
- package/.worktrees/c1eae35e/src/dispatch/backends/sillyhub-mcp.js +245 -0
- package/.worktrees/c1eae35e/src/dispatch/probe.js +246 -0
- package/.worktrees/c1eae35e/src/dispatch/strategy.js +121 -0
- package/.worktrees/c1eae35e/src/docs-check.js +825 -0
- package/.worktrees/c1eae35e/src/docs-debt.js +393 -0
- package/.worktrees/c1eae35e/src/docs-gate.js +107 -0
- package/.worktrees/c1eae35e/src/doctor-diagnostics.js +1099 -0
- package/.worktrees/c1eae35e/src/endpoint-extractor.js +409 -0
- package/.worktrees/c1eae35e/src/foreign-declared.js +155 -0
- package/.worktrees/c1eae35e/src/fs-atomic.js +73 -0
- package/.worktrees/c1eae35e/src/git-helper.js +150 -0
- package/.worktrees/c1eae35e/src/hooks/claude-pre-tool-use.cjs +130 -0
- package/.worktrees/c1eae35e/src/hooks/worktree-guard.js +892 -0
- package/.worktrees/c1eae35e/src/index.js +2854 -0
- package/.worktrees/c1eae35e/src/init.js +626 -0
- package/.worktrees/c1eae35e/src/knowledge-match.js +231 -0
- package/.worktrees/c1eae35e/src/local-detect.js +128 -0
- package/.worktrees/c1eae35e/src/local-register.js +104 -0
- package/.worktrees/c1eae35e/src/machine-interface.js +543 -0
- package/.worktrees/c1eae35e/src/migrate.js +127 -0
- package/.worktrees/c1eae35e/src/module-impact.js +166 -0
- package/.worktrees/c1eae35e/src/module-resolve.js +222 -0
- package/.worktrees/c1eae35e/src/modules.js +580 -0
- package/.worktrees/c1eae35e/src/plan-adopt-waves.js +126 -0
- package/.worktrees/c1eae35e/src/progress/change-registry.js +336 -0
- package/.worktrees/c1eae35e/src/progress/consistency-doctor.js +355 -0
- package/.worktrees/c1eae35e/src/progress/shared.js +36 -0
- package/.worktrees/c1eae35e/src/progress/stage-machine.js +594 -0
- package/.worktrees/c1eae35e/src/progress/step-store.js +265 -0
- package/.worktrees/c1eae35e/src/progress.js +1304 -0
- package/.worktrees/c1eae35e/src/quick-recommend.js +115 -0
- package/.worktrees/c1eae35e/src/quicklog.js +883 -0
- package/.worktrees/c1eae35e/src/review-tier.js +77 -0
- package/.worktrees/c1eae35e/src/run/command.js +1641 -0
- package/.worktrees/c1eae35e/src/run/complete-handlers.js +1552 -0
- package/.worktrees/c1eae35e/src/run/complete.js +1259 -0
- package/.worktrees/c1eae35e/src/run/concurrent-detect.js +156 -0
- package/.worktrees/c1eae35e/src/run/gates.js +1111 -0
- package/.worktrees/c1eae35e/src/run/multi-repo-context.js +208 -0
- package/.worktrees/c1eae35e/src/run/next.js +128 -0
- package/.worktrees/c1eae35e/src/run/prompt.js +843 -0
- package/.worktrees/c1eae35e/src/run/quick-audit.js +186 -0
- package/.worktrees/c1eae35e/src/run/scan-profile.js +269 -0
- package/.worktrees/c1eae35e/src/run/shared.js +1562 -0
- package/.worktrees/c1eae35e/src/run/stage.js +587 -0
- package/.worktrees/c1eae35e/src/run.js +23 -0
- package/.worktrees/c1eae35e/src/scan-diff.js +388 -0
- package/.worktrees/c1eae35e/src/scan-postcheck.js +524 -0
- package/.worktrees/c1eae35e/src/scan-staleness.js +95 -0
- package/.worktrees/c1eae35e/src/setup.js +414 -0
- package/.worktrees/c1eae35e/src/sillyhub-mcp/client.js +597 -0
- package/.worktrees/c1eae35e/src/sillyhub-mcp/config.js +62 -0
- package/.worktrees/c1eae35e/src/spec-dir-typo.js +50 -0
- package/.worktrees/c1eae35e/src/spec-sync.js +358 -0
- package/.worktrees/c1eae35e/src/stage-contract-engine.js +171 -0
- package/.worktrees/c1eae35e/src/stage-contract-spec.js +551 -0
- package/.worktrees/c1eae35e/src/stage-contract.js +948 -0
- package/.worktrees/c1eae35e/src/stage-review.js +597 -0
- package/.worktrees/c1eae35e/src/stages/archive.js +199 -0
- package/.worktrees/c1eae35e/src/stages/brainstorm-auto.js +285 -0
- package/.worktrees/c1eae35e/src/stages/brainstorm.js +624 -0
- package/.worktrees/c1eae35e/src/stages/cmd-existence.js +145 -0
- package/.worktrees/c1eae35e/src/stages/doctor.js +540 -0
- package/.worktrees/c1eae35e/src/stages/execute.js +1277 -0
- package/.worktrees/c1eae35e/src/stages/explore.js +43 -0
- package/.worktrees/c1eae35e/src/stages/index.js +29 -0
- package/.worktrees/c1eae35e/src/stages/knowledge.js +514 -0
- package/.worktrees/c1eae35e/src/stages/plan-postcheck.js +1398 -0
- package/.worktrees/c1eae35e/src/stages/plan.js +655 -0
- package/.worktrees/c1eae35e/src/stages/quick.js +167 -0
- package/.worktrees/c1eae35e/src/stages/scan.js +608 -0
- package/.worktrees/c1eae35e/src/stages/status.js +64 -0
- package/.worktrees/c1eae35e/src/stages/verify.js +246 -0
- package/.worktrees/c1eae35e/src/sync.js +1470 -0
- package/.worktrees/c1eae35e/src/task-review.js +1498 -0
- package/.worktrees/c1eae35e/src/taskcard-placeholders.js +21 -0
- package/.worktrees/c1eae35e/src/taskcard.js +250 -0
- package/.worktrees/c1eae35e/src/verify-postcheck.js +1718 -0
- package/.worktrees/c1eae35e/src/verify-probes.js +327 -0
- package/.worktrees/c1eae35e/src/version.js +19 -0
- package/.worktrees/c1eae35e/src/workflow.js +600 -0
- package/.worktrees/c1eae35e/src/workspace.js +125 -0
- package/.worktrees/c1eae35e/src/worktree-apply.js +1611 -0
- package/.worktrees/c1eae35e/src/worktree-deps.js +668 -0
- package/.worktrees/c1eae35e/src/worktree.js +1849 -0
- package/.worktrees/c1eae35e/templates/claude-instruction.md +23 -0
- package/.worktrees/c1eae35e/templates/prompts/taskcard-rules.md +29 -0
- package/.worktrees/c1eae35e/templates/prompts/testcase-design.md +12 -0
- package/.worktrees/c1eae35e/templates/prompts/verify-probes.md +32 -0
- package/.worktrees/c1eae35e/templates/workflows/archive-impact.yaml +79 -0
- package/.worktrees/c1eae35e/templates/workflows/scan-docs.yaml +132 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-archive/SKILL.md +87 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-auto/SKILL.md +93 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-brainstorm/SKILL.md +114 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-commit/SKILL.md +67 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-continue/SKILL.md +47 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-doctor/SKILL.md +76 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-execute/SKILL.md +214 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-explore/SKILL.md +102 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-export/SKILL.md +57 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-init/SKILL.md +177 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-knowledge/SKILL.md +270 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-plan/SKILL.md +156 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-propose/SKILL.md +87 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-quick/SKILL.md +116 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-resume/SKILL.md +70 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-scan/SKILL.md +79 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-state/SKILL.md +64 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-status/SKILL.md +54 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-verify/SKILL.md +87 -0
- package/.worktrees/dafc71ad/.claude/skills/sillyspec-workspace/SKILL.md +175 -0
- package/.worktrees/dafc71ad/.gitattributes +2 -0
- package/.worktrees/dafc71ad/.husky/pre-push +20 -0
- package/.worktrees/dafc71ad/README.md +203 -0
- package/.worktrees/dafc71ad/SKILL.md +91 -0
- package/.worktrees/dafc71ad/analysis.md +366 -0
- package/.worktrees/dafc71ad/architecture-analysis.md +448 -0
- package/.worktrees/dafc71ad/bin/sillyspec.js +2 -0
- package/.worktrees/dafc71ad/eval/README.md +86 -0
- package/.worktrees/dafc71ad/eval/eval.config.json +28 -0
- package/.worktrees/dafc71ad/eval/lib/adapters/cli.mjs +63 -0
- package/.worktrees/dafc71ad/eval/lib/adapters/dryrun.mjs +27 -0
- package/.worktrees/dafc71ad/eval/lib/config.mjs +82 -0
- package/.worktrees/dafc71ad/eval/lib/db.mjs +76 -0
- package/.worktrees/dafc71ad/eval/lib/report.mjs +120 -0
- package/.worktrees/dafc71ad/eval/lib/runner.mjs +157 -0
- package/.worktrees/dafc71ad/eval/lib/tasks.mjs +73 -0
- package/.worktrees/dafc71ad/eval/lib/util.mjs +107 -0
- package/.worktrees/dafc71ad/eval/lib/workdir.mjs +30 -0
- package/.worktrees/dafc71ad/eval/run.mjs +83 -0
- package/.worktrees/dafc71ad/eval/tasks/001-slugify/files/package.json +6 -0
- package/.worktrees/dafc71ad/eval/tasks/001-slugify/solution/src/slugify.mjs +26 -0
- package/.worktrees/dafc71ad/eval/tasks/001-slugify/task.json +6 -0
- package/.worktrees/dafc71ad/eval/tasks/001-slugify/verify.mjs +28 -0
- package/.worktrees/dafc71ad/eval/tasks/002-each-day/files/package.json +6 -0
- package/.worktrees/dafc71ad/eval/tasks/002-each-day/files/src/dates.mjs +4 -0
- package/.worktrees/dafc71ad/eval/tasks/002-each-day/solution/src/dates.mjs +30 -0
- package/.worktrees/dafc71ad/eval/tasks/002-each-day/task.json +6 -0
- package/.worktrees/dafc71ad/eval/tasks/002-each-day/verify.mjs +31 -0
- package/.worktrees/dafc71ad/eval/tasks/003-word-report/files/data/notes.txt +5 -0
- package/.worktrees/dafc71ad/eval/tasks/003-word-report/files/package.json +6 -0
- package/.worktrees/dafc71ad/eval/tasks/003-word-report/solution/bin/report.mjs +36 -0
- package/.worktrees/dafc71ad/eval/tasks/003-word-report/task.json +6 -0
- package/.worktrees/dafc71ad/eval/tasks/003-word-report/verify.mjs +38 -0
- package/.worktrees/dafc71ad/logo.jpg +0 -0
- package/.worktrees/dafc71ad/package-lock.json +977 -0
- package/.worktrees/dafc71ad/package.json +41 -0
- package/.worktrees/dafc71ad/packages/dashboard/dist/assets/index-Bq_Z2hne.js +7446 -0
- package/.worktrees/dafc71ad/packages/dashboard/dist/assets/index-O2W5RV4z.css +1 -0
- package/.worktrees/dafc71ad/packages/dashboard/dist/favicon.jpg +0 -0
- package/.worktrees/dafc71ad/packages/dashboard/dist/index.html +16 -0
- package/.worktrees/dafc71ad/packages/dashboard/dist/logo.jpg +0 -0
- package/.worktrees/dafc71ad/packages/dashboard/dist/prototype-dashboard.html +836 -0
- package/.worktrees/dafc71ad/packages/dashboard/dist/prototype-overview.html +256 -0
- package/.worktrees/dafc71ad/packages/dashboard/package.json +25 -0
- package/.worktrees/dafc71ad/packages/dashboard/server/executor.js +95 -0
- package/.worktrees/dafc71ad/packages/dashboard/server/index.js +679 -0
- package/.worktrees/dafc71ad/packages/dashboard/server/parser.js +526 -0
- package/.worktrees/dafc71ad/packages/dashboard/server/watcher.js +357 -0
- package/.worktrees/dafc71ad/src/agent-session-log.js +803 -0
- package/.worktrees/dafc71ad/src/change-list.js +290 -0
- package/.worktrees/dafc71ad/src/change-risk-profile.js +339 -0
- package/.worktrees/dafc71ad/src/check-primitives.js +65 -0
- package/.worktrees/dafc71ad/src/classify-change.js +109 -0
- package/.worktrees/dafc71ad/src/commit-suggest.js +202 -0
- package/.worktrees/dafc71ad/src/config-cat.js +88 -0
- package/.worktrees/dafc71ad/src/config-schema.js +328 -0
- package/.worktrees/dafc71ad/src/constants.js +97 -0
- package/.worktrees/dafc71ad/src/contract-matrix.js +533 -0
- package/.worktrees/dafc71ad/src/datetime.js +20 -0
- package/.worktrees/dafc71ad/src/db-engine.js +55 -0
- package/.worktrees/dafc71ad/src/db.js +381 -0
- package/.worktrees/dafc71ad/src/decision-distill.js +517 -0
- package/.worktrees/dafc71ad/src/dispatch/backends/local-agent.js +155 -0
- package/.worktrees/dafc71ad/src/dispatch/backends/sillyhub-mcp.js +245 -0
- package/.worktrees/dafc71ad/src/dispatch/probe.js +246 -0
- package/.worktrees/dafc71ad/src/dispatch/strategy.js +121 -0
- package/.worktrees/dafc71ad/src/docs-check.js +825 -0
- package/.worktrees/dafc71ad/src/docs-debt.js +393 -0
- package/.worktrees/dafc71ad/src/docs-gate.js +107 -0
- package/.worktrees/dafc71ad/src/doctor-diagnostics.js +1099 -0
- package/.worktrees/dafc71ad/src/endpoint-extractor.js +409 -0
- package/.worktrees/dafc71ad/src/foreign-declared.js +155 -0
- package/.worktrees/dafc71ad/src/fs-atomic.js +73 -0
- package/.worktrees/dafc71ad/src/git-helper.js +150 -0
- package/.worktrees/dafc71ad/src/hooks/claude-pre-tool-use.cjs +130 -0
- package/.worktrees/dafc71ad/src/hooks/worktree-guard.js +892 -0
- package/.worktrees/dafc71ad/src/index.js +2854 -0
- package/.worktrees/dafc71ad/src/init.js +626 -0
- package/.worktrees/dafc71ad/src/knowledge-match.js +231 -0
- package/.worktrees/dafc71ad/src/local-detect.js +128 -0
- package/.worktrees/dafc71ad/src/local-register.js +104 -0
- package/.worktrees/dafc71ad/src/machine-interface.js +543 -0
- package/.worktrees/dafc71ad/src/migrate.js +127 -0
- package/.worktrees/dafc71ad/src/module-impact.js +166 -0
- package/.worktrees/dafc71ad/src/module-resolve.js +222 -0
- package/.worktrees/dafc71ad/src/modules.js +580 -0
- package/.worktrees/dafc71ad/src/plan-adopt-waves.js +126 -0
- package/.worktrees/dafc71ad/src/progress/change-registry.js +336 -0
- package/.worktrees/dafc71ad/src/progress/consistency-doctor.js +355 -0
- package/.worktrees/dafc71ad/src/progress/shared.js +36 -0
- package/.worktrees/dafc71ad/src/progress/stage-machine.js +594 -0
- package/.worktrees/dafc71ad/src/progress/step-store.js +265 -0
- package/.worktrees/dafc71ad/src/progress.js +1304 -0
- package/.worktrees/dafc71ad/src/quick-recommend.js +115 -0
- package/.worktrees/dafc71ad/src/quicklog.js +883 -0
- package/.worktrees/dafc71ad/src/review-tier.js +77 -0
- package/.worktrees/dafc71ad/src/run/command.js +1641 -0
- package/.worktrees/dafc71ad/src/run/complete-handlers.js +1552 -0
- package/.worktrees/dafc71ad/src/run/complete.js +1259 -0
- package/.worktrees/dafc71ad/src/run/concurrent-detect.js +156 -0
- package/.worktrees/dafc71ad/src/run/gates.js +1111 -0
- package/.worktrees/dafc71ad/src/run/multi-repo-context.js +208 -0
- package/.worktrees/dafc71ad/src/run/next.js +128 -0
- package/.worktrees/dafc71ad/src/run/prompt.js +843 -0
- package/.worktrees/dafc71ad/src/run/quick-audit.js +186 -0
- package/.worktrees/dafc71ad/src/run/scan-profile.js +269 -0
- package/.worktrees/dafc71ad/src/run/shared.js +1562 -0
- package/.worktrees/dafc71ad/src/run/stage.js +587 -0
- package/.worktrees/dafc71ad/src/run.js +23 -0
- package/.worktrees/dafc71ad/src/scan-diff.js +388 -0
- package/.worktrees/dafc71ad/src/scan-postcheck.js +524 -0
- package/.worktrees/dafc71ad/src/scan-staleness.js +95 -0
- package/.worktrees/dafc71ad/src/setup.js +414 -0
- package/.worktrees/dafc71ad/src/sillyhub-mcp/client.js +597 -0
- package/.worktrees/dafc71ad/src/sillyhub-mcp/config.js +62 -0
- package/.worktrees/dafc71ad/src/spec-dir-typo.js +50 -0
- package/.worktrees/dafc71ad/src/spec-sync.js +358 -0
- package/.worktrees/dafc71ad/src/stage-contract-engine.js +171 -0
- package/.worktrees/dafc71ad/src/stage-contract-spec.js +551 -0
- package/.worktrees/dafc71ad/src/stage-contract.js +948 -0
- package/.worktrees/dafc71ad/src/stage-review.js +597 -0
- package/.worktrees/dafc71ad/src/stages/archive.js +199 -0
- package/.worktrees/dafc71ad/src/stages/brainstorm-auto.js +285 -0
- package/.worktrees/dafc71ad/src/stages/brainstorm.js +624 -0
- package/.worktrees/dafc71ad/src/stages/cmd-existence.js +145 -0
- package/.worktrees/dafc71ad/src/stages/doctor.js +540 -0
- package/.worktrees/dafc71ad/src/stages/execute.js +1277 -0
- package/.worktrees/dafc71ad/src/stages/explore.js +43 -0
- package/.worktrees/dafc71ad/src/stages/index.js +29 -0
- package/.worktrees/dafc71ad/src/stages/knowledge.js +514 -0
- package/.worktrees/dafc71ad/src/stages/plan-postcheck.js +1398 -0
- package/.worktrees/dafc71ad/src/stages/plan.js +655 -0
- package/.worktrees/dafc71ad/src/stages/quick.js +167 -0
- package/.worktrees/dafc71ad/src/stages/scan.js +608 -0
- package/.worktrees/dafc71ad/src/stages/status.js +64 -0
- package/.worktrees/dafc71ad/src/stages/verify.js +246 -0
- package/.worktrees/dafc71ad/src/sync.js +1470 -0
- package/.worktrees/dafc71ad/src/task-review.js +1498 -0
- package/.worktrees/dafc71ad/src/taskcard-placeholders.js +21 -0
- package/.worktrees/dafc71ad/src/taskcard.js +250 -0
- package/.worktrees/dafc71ad/src/verify-postcheck.js +1718 -0
- package/.worktrees/dafc71ad/src/verify-probes.js +327 -0
- package/.worktrees/dafc71ad/src/version.js +19 -0
- package/.worktrees/dafc71ad/src/workflow.js +600 -0
- package/.worktrees/dafc71ad/src/workspace.js +125 -0
- package/.worktrees/dafc71ad/src/worktree-apply.js +1611 -0
- package/.worktrees/dafc71ad/src/worktree-deps.js +668 -0
- package/.worktrees/dafc71ad/src/worktree.js +1849 -0
- package/.worktrees/dafc71ad/templates/claude-instruction.md +23 -0
- package/.worktrees/dafc71ad/templates/prompts/taskcard-rules.md +29 -0
- package/.worktrees/dafc71ad/templates/prompts/testcase-design.md +12 -0
- package/.worktrees/dafc71ad/templates/prompts/verify-probes.md +32 -0
- package/.worktrees/dafc71ad/templates/workflows/archive-impact.yaml +79 -0
- package/.worktrees/dafc71ad/templates/workflows/scan-docs.yaml +132 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-archive/SKILL.md +87 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-auto/SKILL.md +93 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-brainstorm/SKILL.md +114 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-commit/SKILL.md +67 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-continue/SKILL.md +47 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-doctor/SKILL.md +76 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-execute/SKILL.md +214 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-explore/SKILL.md +102 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-export/SKILL.md +57 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-init/SKILL.md +177 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-knowledge/SKILL.md +270 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-plan/SKILL.md +156 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-propose/SKILL.md +87 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-quick/SKILL.md +116 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-resume/SKILL.md +70 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-scan/SKILL.md +79 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-state/SKILL.md +64 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-status/SKILL.md +54 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-verify/SKILL.md +87 -0
- package/.worktrees/e58fcc4c/.claude/skills/sillyspec-workspace/SKILL.md +175 -0
- package/.worktrees/e58fcc4c/.gitattributes +2 -0
- package/.worktrees/e58fcc4c/.husky/pre-push +20 -0
- package/.worktrees/e58fcc4c/README.md +203 -0
- package/.worktrees/e58fcc4c/SKILL.md +91 -0
- package/.worktrees/e58fcc4c/architecture-analysis.md +503 -0
- package/.worktrees/e58fcc4c/bin/sillyspec.js +2 -0
- package/.worktrees/e58fcc4c/eval/README.md +86 -0
- package/.worktrees/e58fcc4c/eval/eval.config.json +28 -0
- package/.worktrees/e58fcc4c/eval/lib/adapters/cli.mjs +63 -0
- package/.worktrees/e58fcc4c/eval/lib/adapters/dryrun.mjs +27 -0
- package/.worktrees/e58fcc4c/eval/lib/config.mjs +82 -0
- package/.worktrees/e58fcc4c/eval/lib/db.mjs +76 -0
- package/.worktrees/e58fcc4c/eval/lib/report.mjs +120 -0
- package/.worktrees/e58fcc4c/eval/lib/runner.mjs +157 -0
- package/.worktrees/e58fcc4c/eval/lib/tasks.mjs +73 -0
- package/.worktrees/e58fcc4c/eval/lib/util.mjs +107 -0
- package/.worktrees/e58fcc4c/eval/lib/workdir.mjs +30 -0
- package/.worktrees/e58fcc4c/eval/run.mjs +83 -0
- package/.worktrees/e58fcc4c/eval/tasks/001-slugify/files/package.json +6 -0
- package/.worktrees/e58fcc4c/eval/tasks/001-slugify/solution/src/slugify.mjs +26 -0
- package/.worktrees/e58fcc4c/eval/tasks/001-slugify/task.json +6 -0
- package/.worktrees/e58fcc4c/eval/tasks/001-slugify/verify.mjs +28 -0
- package/.worktrees/e58fcc4c/eval/tasks/002-each-day/files/package.json +6 -0
- package/.worktrees/e58fcc4c/eval/tasks/002-each-day/files/src/dates.mjs +4 -0
- package/.worktrees/e58fcc4c/eval/tasks/002-each-day/solution/src/dates.mjs +30 -0
- package/.worktrees/e58fcc4c/eval/tasks/002-each-day/task.json +6 -0
- package/.worktrees/e58fcc4c/eval/tasks/002-each-day/verify.mjs +31 -0
- package/.worktrees/e58fcc4c/eval/tasks/003-word-report/files/data/notes.txt +5 -0
- package/.worktrees/e58fcc4c/eval/tasks/003-word-report/files/package.json +6 -0
- package/.worktrees/e58fcc4c/eval/tasks/003-word-report/solution/bin/report.mjs +36 -0
- package/.worktrees/e58fcc4c/eval/tasks/003-word-report/task.json +6 -0
- package/.worktrees/e58fcc4c/eval/tasks/003-word-report/verify.mjs +38 -0
- package/.worktrees/e58fcc4c/logo.jpg +0 -0
- package/.worktrees/e58fcc4c/package-lock.json +977 -0
- package/.worktrees/e58fcc4c/package.json +41 -0
- package/.worktrees/e58fcc4c/packages/dashboard/dist/assets/index-Bq_Z2hne.js +7446 -0
- package/.worktrees/e58fcc4c/packages/dashboard/dist/assets/index-O2W5RV4z.css +1 -0
- package/.worktrees/e58fcc4c/packages/dashboard/dist/favicon.jpg +0 -0
- package/.worktrees/e58fcc4c/packages/dashboard/dist/index.html +16 -0
- package/.worktrees/e58fcc4c/packages/dashboard/dist/logo.jpg +0 -0
- package/.worktrees/e58fcc4c/packages/dashboard/dist/prototype-dashboard.html +836 -0
- package/.worktrees/e58fcc4c/packages/dashboard/dist/prototype-overview.html +256 -0
- package/.worktrees/e58fcc4c/packages/dashboard/package.json +25 -0
- package/.worktrees/e58fcc4c/packages/dashboard/server/executor.js +95 -0
- package/.worktrees/e58fcc4c/packages/dashboard/server/index.js +679 -0
- package/.worktrees/e58fcc4c/packages/dashboard/server/parser.js +526 -0
- package/.worktrees/e58fcc4c/packages/dashboard/server/watcher.js +357 -0
- package/.worktrees/e58fcc4c/src/agent-session-log.js +803 -0
- package/.worktrees/e58fcc4c/src/change-list.js +290 -0
- package/.worktrees/e58fcc4c/src/change-risk-profile.js +339 -0
- package/.worktrees/e58fcc4c/src/check-primitives.js +65 -0
- package/.worktrees/e58fcc4c/src/classify-change.js +109 -0
- package/.worktrees/e58fcc4c/src/commit-suggest.js +202 -0
- package/.worktrees/e58fcc4c/src/config-cat.js +88 -0
- package/.worktrees/e58fcc4c/src/config-schema.js +328 -0
- package/.worktrees/e58fcc4c/src/constants.js +97 -0
- package/.worktrees/e58fcc4c/src/contract-matrix.js +533 -0
- package/.worktrees/e58fcc4c/src/datetime.js +20 -0
- package/.worktrees/e58fcc4c/src/db-engine.js +55 -0
- package/.worktrees/e58fcc4c/src/db.js +381 -0
- package/.worktrees/e58fcc4c/src/decision-distill.js +517 -0
- package/.worktrees/e58fcc4c/src/dispatch/backends/local-agent.js +155 -0
- package/.worktrees/e58fcc4c/src/dispatch/backends/sillyhub-mcp.js +245 -0
- package/.worktrees/e58fcc4c/src/dispatch/probe.js +246 -0
- package/.worktrees/e58fcc4c/src/dispatch/strategy.js +121 -0
- package/.worktrees/e58fcc4c/src/docs-check.js +825 -0
- package/.worktrees/e58fcc4c/src/docs-debt.js +393 -0
- package/.worktrees/e58fcc4c/src/docs-gate.js +107 -0
- package/.worktrees/e58fcc4c/src/doctor-diagnostics.js +1099 -0
- package/.worktrees/e58fcc4c/src/endpoint-extractor.js +409 -0
- package/.worktrees/e58fcc4c/src/foreign-declared.js +155 -0
- package/.worktrees/e58fcc4c/src/fs-atomic.js +73 -0
- package/.worktrees/e58fcc4c/src/git-helper.js +150 -0
- package/.worktrees/e58fcc4c/src/hooks/claude-pre-tool-use.cjs +130 -0
- package/.worktrees/e58fcc4c/src/hooks/worktree-guard.js +892 -0
- package/.worktrees/e58fcc4c/src/index.js +2854 -0
- package/.worktrees/e58fcc4c/src/init.js +626 -0
- package/.worktrees/e58fcc4c/src/knowledge-match.js +231 -0
- package/.worktrees/e58fcc4c/src/local-detect.js +128 -0
- package/.worktrees/e58fcc4c/src/local-register.js +104 -0
- package/.worktrees/e58fcc4c/src/machine-interface.js +543 -0
- package/.worktrees/e58fcc4c/src/migrate.js +127 -0
- package/.worktrees/e58fcc4c/src/module-impact.js +166 -0
- package/.worktrees/e58fcc4c/src/module-resolve.js +222 -0
- package/.worktrees/e58fcc4c/src/modules.js +580 -0
- package/.worktrees/e58fcc4c/src/plan-adopt-waves.js +126 -0
- package/.worktrees/e58fcc4c/src/progress/change-registry.js +336 -0
- package/.worktrees/e58fcc4c/src/progress/consistency-doctor.js +355 -0
- package/.worktrees/e58fcc4c/src/progress/shared.js +36 -0
- package/.worktrees/e58fcc4c/src/progress/stage-machine.js +594 -0
- package/.worktrees/e58fcc4c/src/progress/step-store.js +265 -0
- package/.worktrees/e58fcc4c/src/progress.js +1304 -0
- package/.worktrees/e58fcc4c/src/quick-recommend.js +115 -0
- package/.worktrees/e58fcc4c/src/quicklog.js +883 -0
- package/.worktrees/e58fcc4c/src/review-tier.js +77 -0
- package/.worktrees/e58fcc4c/src/run/command.js +1641 -0
- package/.worktrees/e58fcc4c/src/run/complete-handlers.js +1552 -0
- package/.worktrees/e58fcc4c/src/run/complete.js +1259 -0
- package/.worktrees/e58fcc4c/src/run/concurrent-detect.js +156 -0
- package/.worktrees/e58fcc4c/src/run/gates.js +1111 -0
- package/.worktrees/e58fcc4c/src/run/multi-repo-context.js +208 -0
- package/.worktrees/e58fcc4c/src/run/next.js +128 -0
- package/.worktrees/e58fcc4c/src/run/prompt.js +843 -0
- package/.worktrees/e58fcc4c/src/run/quick-audit.js +186 -0
- package/.worktrees/e58fcc4c/src/run/scan-profile.js +269 -0
- package/.worktrees/e58fcc4c/src/run/shared.js +1562 -0
- package/.worktrees/e58fcc4c/src/run/stage.js +587 -0
- package/.worktrees/e58fcc4c/src/run.js +23 -0
- package/.worktrees/e58fcc4c/src/scan-diff.js +388 -0
- package/.worktrees/e58fcc4c/src/scan-postcheck.js +524 -0
- package/.worktrees/e58fcc4c/src/scan-staleness.js +95 -0
- package/.worktrees/e58fcc4c/src/setup.js +414 -0
- package/.worktrees/e58fcc4c/src/sillyhub-mcp/client.js +597 -0
- package/.worktrees/e58fcc4c/src/sillyhub-mcp/config.js +62 -0
- package/.worktrees/e58fcc4c/src/spec-dir-typo.js +50 -0
- package/.worktrees/e58fcc4c/src/spec-sync.js +358 -0
- package/.worktrees/e58fcc4c/src/stage-contract-engine.js +171 -0
- package/.worktrees/e58fcc4c/src/stage-contract-spec.js +551 -0
- package/.worktrees/e58fcc4c/src/stage-contract.js +948 -0
- package/.worktrees/e58fcc4c/src/stage-review.js +597 -0
- package/.worktrees/e58fcc4c/src/stages/archive.js +199 -0
- package/.worktrees/e58fcc4c/src/stages/brainstorm-auto.js +285 -0
- package/.worktrees/e58fcc4c/src/stages/brainstorm.js +624 -0
- package/.worktrees/e58fcc4c/src/stages/cmd-existence.js +145 -0
- package/.worktrees/e58fcc4c/src/stages/doctor.js +540 -0
- package/.worktrees/e58fcc4c/src/stages/execute.js +1277 -0
- package/.worktrees/e58fcc4c/src/stages/explore.js +43 -0
- package/.worktrees/e58fcc4c/src/stages/index.js +29 -0
- package/.worktrees/e58fcc4c/src/stages/knowledge.js +514 -0
- package/.worktrees/e58fcc4c/src/stages/plan-postcheck.js +1398 -0
- package/.worktrees/e58fcc4c/src/stages/plan.js +655 -0
- package/.worktrees/e58fcc4c/src/stages/quick.js +167 -0
- package/.worktrees/e58fcc4c/src/stages/scan.js +608 -0
- package/.worktrees/e58fcc4c/src/stages/status.js +64 -0
- package/.worktrees/e58fcc4c/src/stages/verify.js +246 -0
- package/.worktrees/e58fcc4c/src/sync.js +1470 -0
- package/.worktrees/e58fcc4c/src/task-review.js +1498 -0
- package/.worktrees/e58fcc4c/src/taskcard-placeholders.js +21 -0
- package/.worktrees/e58fcc4c/src/taskcard.js +250 -0
- package/.worktrees/e58fcc4c/src/verify-postcheck.js +1718 -0
- package/.worktrees/e58fcc4c/src/verify-probes.js +327 -0
- package/.worktrees/e58fcc4c/src/version.js +19 -0
- package/.worktrees/e58fcc4c/src/workflow.js +600 -0
- package/.worktrees/e58fcc4c/src/workspace.js +125 -0
- package/.worktrees/e58fcc4c/src/worktree-apply.js +1611 -0
- package/.worktrees/e58fcc4c/src/worktree-deps.js +668 -0
- package/.worktrees/e58fcc4c/src/worktree.js +1849 -0
- package/.worktrees/e58fcc4c/templates/claude-instruction.md +23 -0
- package/.worktrees/e58fcc4c/templates/prompts/taskcard-rules.md +29 -0
- package/.worktrees/e58fcc4c/templates/prompts/testcase-design.md +12 -0
- package/.worktrees/e58fcc4c/templates/prompts/verify-probes.md +32 -0
- package/.worktrees/e58fcc4c/templates/workflows/archive-impact.yaml +79 -0
- package/.worktrees/e58fcc4c/templates/workflows/scan-docs.yaml +132 -0
- package/architecture-analysis.md +448 -0
- package/package.json +1 -1
- package/src/contract-matrix.js +7 -4
- package/src/endpoint-extractor.js +41 -52
- package/src/foreign-declared.js +88 -5
- package/src/fs-atomic.js +20 -3
- package/src/hooks/worktree-guard.js +9 -3
- package/src/index.js +36 -19
- package/src/module-impact.js +1 -1
- package/src/modules.js +23 -21
- package/src/progress/stage-machine.js +23 -0
- package/src/progress.js +38 -2
- package/src/quicklog.js +7 -5
- package/src/run/command.js +7 -6
- package/src/run/complete-handlers.js +6 -2
- package/src/run/complete.js +33 -20
- package/src/run/gates.js +31 -4
- package/src/run/next.js +4 -3
- package/src/run/prompt.js +66 -6
- package/src/run/scan-profile.js +1 -0
- package/src/run/shared.js +11 -5
- package/src/run/stage.js +15 -12
- package/src/scan-diff.js +4 -2
- package/src/stage-contract-spec.js +1 -1
- package/src/stage-contract.js +16 -8
- package/src/stages/brainstorm-auto.js +43 -1
- package/src/stages/brainstorm.js +24 -8
- package/src/stages/execute.js +36 -9
- package/src/stages/knowledge.js +18 -5
- package/src/stages/plan-postcheck.js +63 -7
- package/src/stages/plan.js +13 -6
- package/src/stages/verify.js +1 -1
- package/src/sync.js +27 -11
- package/src/task-review.js +5 -3
- package/src/taskcard.js +35 -0
- package/src/verify-postcheck.js +24 -13
- package/src/verify-probes.js +39 -13
- package/src/worktree-apply.js +481 -292
- package/src/worktree-deps.js +93 -1
- package/src/worktree.js +91 -21
- package/templates/prompts/taskcard-rules.md +1 -1
|
@@ -0,0 +1,608 @@
|
|
|
1
|
+
export const definition = {
|
|
2
|
+
name: 'scan',
|
|
3
|
+
title: '代码扫描',
|
|
4
|
+
description: '分析项目结构、约定和架构',
|
|
5
|
+
auxiliary: true,
|
|
6
|
+
steps: [
|
|
7
|
+
{
|
|
8
|
+
name: '探测项目结构并建议子项目',
|
|
9
|
+
prompt: `扫描项目顶层目录结构,自动发现可能的子项目,**需用户确认后才创建 projects 配置**。
|
|
10
|
+
|
|
11
|
+
### 操作
|
|
12
|
+
1. 列出项目顶层目录:\`ls -d */ 2>/dev/null | grep -v node_modules | grep -v '.git' | grep -v '.sillyspec'\`
|
|
13
|
+
2. 对每个顶层目录,快速判断是否为独立项目(检查 package.json / pom.xml / build.gradle / pyproject.toml / go.mod 等构建文件)
|
|
14
|
+
3. 对每个疑似独立项目,检测技术栈:\`cat <dir>/package.json 2>/dev/null | head -5\` 或类似
|
|
15
|
+
4. 对比 \`{PROJECTS_ROOT}/\` 已有配置,找出未注册的子项目
|
|
16
|
+
|
|
17
|
+
### 判断标准(满足任一即为子项目)
|
|
18
|
+
- 有独立的构建文件(package.json, pom.xml, build.gradle, pyproject.toml 等)
|
|
19
|
+
- 有独立的源码目录结构(src/, app/, lib/ 等)
|
|
20
|
+
- 有独立的测试目录(test/, tests/, __tests__/ 等)
|
|
21
|
+
- 不是 .git / node_modules / .sillyspec / dist / build 等工具目录
|
|
22
|
+
|
|
23
|
+
### 输出格式
|
|
24
|
+
列出发现的可能子项目列表,每个含:
|
|
25
|
+
- 目录名
|
|
26
|
+
- 技术栈(如 Next.js + TypeScript、FastAPI + Python)
|
|
27
|
+
- 是否已注册到 projects/
|
|
28
|
+
- 建议:注册 / 跳过
|
|
29
|
+
|
|
30
|
+
### ⛔ 红线
|
|
31
|
+
- **不要自动创建 projects 配置文件**,只列出建议供用户确认
|
|
32
|
+
- **不要修改任何文件**,只做探测和报告
|
|
33
|
+
|
|
34
|
+
### 输出
|
|
35
|
+
子项目建议列表(含技术栈和注册状态)`,
|
|
36
|
+
outputHint: '子项目建议列表',
|
|
37
|
+
optional: false
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: '构建扫描项目列表',
|
|
41
|
+
conditionalWait: true,
|
|
42
|
+
waitReason: '等待用户确认扫描项目列表',
|
|
43
|
+
waitOptions: ['全部重新扫描', '只补缺失', '跳过'],
|
|
44
|
+
prompt: `确定本次要扫描的项目列表。
|
|
45
|
+
|
|
46
|
+
### 操作
|
|
47
|
+
1. \`ls {PROJECTS_ROOT}/*.yaml 2>/dev/null\` — 列出所有已注册项目
|
|
48
|
+
2. 对每个项目,检查已有的 scan 文档状态:\`ls {DOCS_ROOT}/scan/*.md 2>/dev/null\`
|
|
49
|
+
3. 按以下格式展示:
|
|
50
|
+
|
|
51
|
+
\`\`\`
|
|
52
|
+
扫描项目列表:
|
|
53
|
+
1. sillyspec(主项目)— scan 文档:0/7 已存在
|
|
54
|
+
2. dashboard(子项目)— scan 文档:0/7 已存在
|
|
55
|
+
\`\`\`
|
|
56
|
+
|
|
57
|
+
4. **如果存在歧义(多项目且无法自动判定),必须暂停等待用户**:
|
|
58
|
+
- 选择要扫描的项目(默认全部)
|
|
59
|
+
- 每个项目的扫描策略:**重新扫描(全部覆盖)** / **只补扫描缺失的文档** / **跳过**
|
|
60
|
+
- 调用:\`sillyspec run scan --wait --reason "等待用户确认扫描项目列表" --options "全部重新扫描,只补缺失,跳过" --output "项目列表和策略建议"\`
|
|
61
|
+
5. **如果只有单一项目且已明确,正常完成即可,不需要等待。**
|
|
62
|
+
|
|
63
|
+
### ⛔ 重要
|
|
64
|
+
- **不要自行决定跳过**,有歧义时暂停等用户选择后再继续
|
|
65
|
+
- 最终确定的项目列表将用于后续所有步骤
|
|
66
|
+
- **后续每个需要生成文档的步骤,都必须对列表中的每个项目分别执行**
|
|
67
|
+
|
|
68
|
+
### 输出格式规范
|
|
69
|
+
--output 必须使用以下结构化格式之一(CLI 只解析这些格式,**不要输出自由文本列表**):
|
|
70
|
+
|
|
71
|
+
**格式 A:scan_projects YAML block**
|
|
72
|
+
在 --output 中输出:
|
|
73
|
+
scan_projects:
|
|
74
|
+
- id: backend
|
|
75
|
+
- id: frontend
|
|
76
|
+
- id: daemon
|
|
77
|
+
|
|
78
|
+
**格式 B:BEGIN_PROJECT_LIST 标记块**
|
|
79
|
+
在 --output 中输出:
|
|
80
|
+
BEGIN_PROJECT_LIST
|
|
81
|
+
- backend
|
|
82
|
+
- frontend
|
|
83
|
+
- daemon
|
|
84
|
+
END_PROJECT_LIST
|
|
85
|
+
|
|
86
|
+
如果不需要解析项目列表(如单项目已明确),--output 写普通摘要即可。`,
|
|
87
|
+
outputHint: '结构化项目列表(YAML block 或 BEGIN_PROJECT_LIST)',
|
|
88
|
+
optional: false
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: '构建环境探测',
|
|
92
|
+
perProject: true,
|
|
93
|
+
prompt: `探测当前项目的构建环境和依赖。
|
|
94
|
+
|
|
95
|
+
### 操作
|
|
96
|
+
对扫描列表中的每个项目重复以下操作:
|
|
97
|
+
1. 进入项目目录(子项目用其 path,如 \`packages/dashboard/\`)
|
|
98
|
+
2. \`cat package.json pom.xml build.gradle go.mod Cargo.toml requirements.txt pyproject.toml Gemfile composer.json 2>/dev/null\`
|
|
99
|
+
3. \`find <project-dir> -maxdepth 2 -name "*.config.*" -not -path "*/node_modules/*" -not -path "*/.git/*" | head -20 | xargs cat 2>/dev/null\`
|
|
100
|
+
4. 结果保存到 \`{DOCS_ROOT}/scan/_env-detect.md\`(临时文件,扫描完删除)
|
|
101
|
+
|
|
102
|
+
### 输出
|
|
103
|
+
每个项目的环境探测结果摘要`,
|
|
104
|
+
outputHint: '环境探测摘要',
|
|
105
|
+
optional: false
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: '断点续扫检测',
|
|
109
|
+
perProject: true,
|
|
110
|
+
prompt: `检测当前项目已有扫描文档,列出缺失的。
|
|
111
|
+
|
|
112
|
+
### 操作
|
|
113
|
+
对扫描列表中的每个项目分别执行:
|
|
114
|
+
1. 检查 7 份文档是否存在:ARCHITECTURE、STRUCTURE、CONVENTIONS、INTEGRATIONS、TESTING、CONCERNS、PROJECT
|
|
115
|
+
路径:\`{DOCS_ROOT}/scan/<DOC>.md\`
|
|
116
|
+
2. 列出已有 ✅ 和缺失 ⬜
|
|
117
|
+
|
|
118
|
+
### 输出
|
|
119
|
+
每个项目的已有/缺失文档列表`,
|
|
120
|
+
outputHint: '断点续扫状态',
|
|
121
|
+
optional: false
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: '深度扫描 — 7 份文档(子代理并行)',
|
|
125
|
+
perProject: true,
|
|
126
|
+
prompt: `按照 \`{WORKFLOWS_ROOT}/scan-docs.yaml\` 中定义的角色和检查规则,使用子代理并行生成当前项目的 7 份扫描文档。
|
|
127
|
+
|
|
128
|
+
**你必须使用子代理执行,不要自己写文档。**
|
|
129
|
+
**对扫描列表中的每个项目分别执行以下流程。**
|
|
130
|
+
|
|
131
|
+
### 操作
|
|
132
|
+
1. 读取 \`{WORKFLOWS_ROOT}/scan-docs.yaml\`,了解角色定义、输出要求和检查规则
|
|
133
|
+
2. 对每个项目(扫描列表中标记为需生成/覆盖的项目):
|
|
134
|
+
a. 将 \`<project>\` 替换为实际项目名,得到该项目的目标文件路径
|
|
135
|
+
b. 为每个角色启动独立子代理(可并行),每个子代理负责 1-2 份文档
|
|
136
|
+
c. 子代理的搜索范围限定在该项目目录内(子项目如 \`packages/dashboard/\`,不要搜索主项目源码)
|
|
137
|
+
d. 子代理直接用 grep/rg 搜索源码并写入文件,结果不回传到你的上下文
|
|
138
|
+
e. 等待该项目所有子代理完成后,验证文件是否生成且非空
|
|
139
|
+
f. 该项目完成后,继续下一个项目
|
|
140
|
+
3. 所有项目完成后,运行以下命令检查产物:
|
|
141
|
+
\`sillyspec workflow check scan-docs --project <project>\`(CLI 子命令,任意项目根可用)
|
|
142
|
+
对每个项目分别执行(将 \`<project>\` 替换为实际项目名)
|
|
143
|
+
4. 如果检查报告有失败项,按报告中的角色和文件重试失败的部分
|
|
144
|
+
|
|
145
|
+
### 覆盖保护
|
|
146
|
+
- **scan_depth: quick 的浅层文档允许覆盖升级**:读取旧 frontmatter 时,若旧文档含 scan_depth: quick(由 --quick 快速接入生成的浅层版本),即使其 source_commit 与当前 HEAD 一致、updated_at 未变,也允许覆盖重写——深度扫描的目的就是把它升级为完整文档。
|
|
147
|
+
- 生成每份 scan 文档时,frontmatter 必须包含:
|
|
148
|
+
\`\`\`yaml
|
|
149
|
+
---
|
|
150
|
+
author: <git 用户名(git config user.name 的输出,如 qinyi)>
|
|
151
|
+
created_at: <精确到秒的时间,如 2026-07-27 10:30:00>
|
|
152
|
+
source_commit: <git-head-short>
|
|
153
|
+
updated_at: <now-iso-datetime>
|
|
154
|
+
generator: sillyspec-scan
|
|
155
|
+
---
|
|
156
|
+
\`\`\`
|
|
157
|
+
(\`<git-head-short>\` / \`<now-iso-datetime>\` 两占位符由 CLI 注入 prompt 时自动替换为当前 HEAD 短哈希与时间——照 prompt 里已替换的真实值抄写,勿自跑 git rev-parse;漏 header 事后 \`sillyspec scan-fix-headers\` 一键补 author/created_at)
|
|
158
|
+
- 覆盖已有 scan 文档前先读取旧 frontmatter;如果旧文档的 \`source_commit\` 与当前 HEAD 不一致,或旧文档 \`updated_at\` 晚于本次 scan 开始时间,不要覆盖。
|
|
159
|
+
- 如果用户明确传入 \`--force-rescan\`,允许覆盖,但仍需写入新的 \`source_commit\` 和 \`updated_at\`。
|
|
160
|
+
|
|
161
|
+
### 子代理上下文注入
|
|
162
|
+
启动每个子代理前,将以下信息拼入子代理 prompt:
|
|
163
|
+
- 项目名(直接用实际项目名)
|
|
164
|
+
- 目标文件路径(从 workflow YAML 中 \`<project>\` 替换后的路径)
|
|
165
|
+
- 检查要求(从 workflow YAML 中该角色的 checks)
|
|
166
|
+
- 断点续扫步骤列出的缺失文档列表
|
|
167
|
+
- 环境探测结果摘要(如有 _env-detect.md,直接贴入)
|
|
168
|
+
- **⚠️ 必须强调:子代理必须用 write 工具将文件写入磁盘**
|
|
169
|
+
- **文件标题用中文**(sillyhub 平台解析识别用):frontmatter 必须在文件最前(第 1 行 --- 起),frontmatter 结束的 --- 之后空一行,再写 # 中文名(English)作为标题。严禁把 # 标题放到 frontmatter 之前(否则 frontmatter 不在头部、「检查产物完整性」步的 frontmatter 检查会报缺 author/created_at)。各文档标准标题格式:
|
|
170
|
+
- STRUCTURE.md = # 目录结构(Structure)
|
|
171
|
+
- CONVENTIONS.md = # 代码约定(Conventions)
|
|
172
|
+
- ARCHITECTURE.md = # 架构(Architecture)
|
|
173
|
+
- TESTING.md = # 测试(Testing)
|
|
174
|
+
- CONCERNS.md = # 关注点(Concerns)
|
|
175
|
+
- INTEGRATIONS.md = # 集成(Integrations)
|
|
176
|
+
- PROJECT.md = # 项目(Project)
|
|
177
|
+
|
|
178
|
+
### 完成后
|
|
179
|
+
列出每个项目的 7 份文档状态:
|
|
180
|
+
- ✅ ARCHITECTURE.md / ❌ 缺失
|
|
181
|
+
- ✅ CONVENTIONS.md / ❌ 缺失
|
|
182
|
+
- ...`,
|
|
183
|
+
outputHint: '7 份文档生成状态(含 workflow 检查报告)',
|
|
184
|
+
optional: false
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
name: '生成本地配置',
|
|
188
|
+
prompt: `自动生成 local.yaml 本地配置文件。
|
|
189
|
+
|
|
190
|
+
### 操作
|
|
191
|
+
1. 检查 {SPEC_ROOT}/local.yaml 是否已存在,已存在则跳过(提示"local.yaml 已存在,跳过生成")
|
|
192
|
+
2. 调用 \`sillyspec local detect\` 命令生成 local.yaml(该命令封装了纯 fs 项目类型嗅探:package.json→nodejs / pom.xml→maven / build.gradle→gradle / Makefile→make / 否则 generic,对应默认 commands)。**不要自行嗅探 package.json/pom.xml/build.gradle 等文件**——探测逻辑唯一归属 local-detect.js,本步骤只负责调用命令并报告结果。
|
|
193
|
+
3. 该命令内部已处理:确保目录存在(mkdir -p)、已存在则跳过、原子写入(先写 tmp 再 rename)。
|
|
194
|
+
4. 报告生成的 project.type 与 local.yaml 路径。
|
|
195
|
+
5. **detect 只生成 \`project.type\` / \`commands.{build,test,lint}\`(存在性核验驱动)/ \`test_strategy\` 骨架**,以下策略字段由你(agent)按项目实际情况补充——能在 package.json / lockfile / 构建文件 / CI 配置 / README 中找到依据就填,不确定留空或注释:
|
|
196
|
+
- \`commands.install\`:依赖安装命令(如 \`npm install\` / \`pnpm install\` / \`yarn\`)
|
|
197
|
+
- \`env\`:构建/测试所需环境变量键值(仅从 README / CI 配置 / .env.example 能确证的)
|
|
198
|
+
- \`test_strategy\`:detect 未注入时按项目实际补(full=全量 / module=只测变更模块 / skip=跳过测试)
|
|
199
|
+
- \`modules\`:模块路径根(module_paths,如 \`src/\` / \`packages/\`)
|
|
200
|
+
- \`known_failures\`:已知失败/不稳定测试清单(仅从 CI 历史 / 测试注释能确证的)
|
|
201
|
+
|
|
202
|
+
### platform / dispatch / mcp 段检查(FR-08,可选补充)
|
|
203
|
+
detect 不写这三段,由你按项目是否接入 sillyhub 平台决定是否补:
|
|
204
|
+
- **platform 段缺失**(要接入 sillyhub 平台)→ 运行 \`sillyspec platform connect <url> <token>\` 自动写入(推荐)
|
|
205
|
+
- **dispatch 段调参缺失**(启用 sillyhub 派发且需调优)→ 手填示例 \`probe_ttl_ms\` / \`poll_interval_ms\` / \`worker_timeout_ms\`(仅在你确知调优值时填,否则留默认)
|
|
206
|
+
- **mcp 段缺失**(dispatch worker 走 MCP 协议连 sillyhub)→ 优先 \`sillyspec platform connect\`(同源假设,platform+mcp 同写);不同源则手填 \`mcp.url\` / \`mcp.token\`,或设环境变量 \`SILLYHUB_MCP_URL\` / \`SILLYHUB_MCP_TOKEN\`(不入盘)
|
|
207
|
+
|
|
208
|
+
### ⛔ 铁律(R-04,防编造)
|
|
209
|
+
只写能从 package.json / lockfile / 构建文件 / CI 配置 / README 中确证的事实。不确定的字段一律留空或写注释占位,**绝不编造命令、路径或凭据**。commands 键的存在性已由 detect 核验,不要重复核验。
|
|
210
|
+
|
|
211
|
+
### 输出格式参考(detect 自动产出骨架 + agent 补充策略字段)
|
|
212
|
+
\`\`\`yaml
|
|
213
|
+
# SillySpec 本地配置(自动生成,可手动修改)
|
|
214
|
+
project:
|
|
215
|
+
type: nodejs # nodejs/maven/gradle/make/generic
|
|
216
|
+
|
|
217
|
+
# commands 键存在性由 detect 核验 package.json scripts 驱动:
|
|
218
|
+
# 有 scripts.build 才写 build,有 scripts.test 才写 test,有 scripts.lint 才写 lint
|
|
219
|
+
# (仅 test/lint 无 build 的项目,build 键不写)
|
|
220
|
+
commands:
|
|
221
|
+
build: "npm run build" # 仅 scripts.build 存在时由 detect 写入
|
|
222
|
+
test: "npm test"
|
|
223
|
+
lint: "npm run lint"
|
|
224
|
+
# install: "npm install" # ← agent 补:依赖安装命令
|
|
225
|
+
|
|
226
|
+
# 测试策略:full=全量测试, module=只测变更模块, skip=跳过测试
|
|
227
|
+
test_strategy: module
|
|
228
|
+
|
|
229
|
+
# ↓ 以下为 agent 按项目实际补充的策略字段(不确定留空或注释)
|
|
230
|
+
# env: # ← agent 补:构建/测试所需环境变量
|
|
231
|
+
# NODE_ENV: test
|
|
232
|
+
# modules: # ← agent 补:模块路径根(module_paths)
|
|
233
|
+
# - src/
|
|
234
|
+
# known_failures: # ← agent 补:已知失败/不稳定测试
|
|
235
|
+
# - "test/flaky.test.mjs"
|
|
236
|
+
|
|
237
|
+
# ↓ 外部连接段(接入 sillyhub 平台时补,detect 不写)
|
|
238
|
+
# platform: # ← sillyspec platform connect <url> <token> 写入
|
|
239
|
+
# url: ...
|
|
240
|
+
# token: ...
|
|
241
|
+
# mcp: # ← platform connect 同源写入 或 手填 或 env(SILLYHUB_MCP_URL/TOKEN)
|
|
242
|
+
# url: ...
|
|
243
|
+
# token: ...
|
|
244
|
+
# dispatch: # ← agent 按需调参(确知调优值才填)
|
|
245
|
+
# probe_ttl_ms: 30000
|
|
246
|
+
# poll_interval_ms: 2000
|
|
247
|
+
# worker_timeout_ms: 60000
|
|
248
|
+
\`\`\`
|
|
249
|
+
|
|
250
|
+
### 输出
|
|
251
|
+
local.yaml 生成结果(已存在/已生成 + project.type + agent 补充的策略字段摘要)`,
|
|
252
|
+
outputHint: 'local.yaml 生成状态',
|
|
253
|
+
optional: false
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
name: '生成模块映射',
|
|
257
|
+
perProject: true,
|
|
258
|
+
prompt: `生成当前项目的模块索引文件 \`_module-map.yaml\`。
|
|
259
|
+
|
|
260
|
+
### ⚠️ 重要:这个文件是唯一的结构化索引源
|
|
261
|
+
所有结构化事实(paths/tags/entrypoints/depends_on/used_by)只维护在这个文件里。
|
|
262
|
+
模块卡片(modules/*.md)只负责人类语义说明,不重复索引信息。
|
|
263
|
+
|
|
264
|
+
### 操作
|
|
265
|
+
对扫描列表中的每个项目分别执行:
|
|
266
|
+
1. 检查 \`{DOCS_ROOT}/modules/_module-map.yaml\` 是否已存在,已存在则跳过
|
|
267
|
+
2. 分析项目源码目录结构,识别模块划分:
|
|
268
|
+
- 用 \`find . -maxdepth 3 -type d -not -path "*/node_modules/*" -not -path "*/.git/*"\` 查看目录结构
|
|
269
|
+
- 每个有明确职责的独立目录识别为一个模块
|
|
270
|
+
- 路径用 glob 模式
|
|
271
|
+
3. 用 grep/rg 分析每个模块:
|
|
272
|
+
- \`main_symbols\`:模块导出的主要函数/类/常量(grep export / module.exports / def / class)
|
|
273
|
+
- \`entrypoints\`:对外 API 端点或命令入口(grep route / router / @Controller / @GetMapping 等)
|
|
274
|
+
- \`tags\`:模块相关关键词标签
|
|
275
|
+
- \`aliases\`:模块的别名(其他开发者可能怎么称呼这个模块)
|
|
276
|
+
4. 分析跨模块依赖关系:
|
|
277
|
+
- 用 grep import/require 分析模块间的引用链
|
|
278
|
+
- 填充 depends_on(本模块依赖谁)和 used_by(谁依赖本模块)
|
|
279
|
+
5. 生成 \`{DOCS_ROOT}/modules/_module-map.yaml\`
|
|
280
|
+
6. 如果 modules/ 目录不存在,先创建
|
|
281
|
+
7. 原子写入(先写 tmp 文件再 rename)
|
|
282
|
+
|
|
283
|
+
### YAML 格式
|
|
284
|
+
\`\`\`yaml
|
|
285
|
+
schema_version: 2
|
|
286
|
+
project: <project-name>
|
|
287
|
+
source_commit: <git-head-short>
|
|
288
|
+
generated_at: <now-datetime>
|
|
289
|
+
generator: sillyspec-scan
|
|
290
|
+
|
|
291
|
+
modules:
|
|
292
|
+
<module-id>:
|
|
293
|
+
status: active
|
|
294
|
+
doc: modules/<module-id>.md
|
|
295
|
+
paths:
|
|
296
|
+
- <glob-pattern>
|
|
297
|
+
tags:
|
|
298
|
+
- <tag1>
|
|
299
|
+
- <tag2>
|
|
300
|
+
aliases:
|
|
301
|
+
- <alias1>
|
|
302
|
+
entrypoints:
|
|
303
|
+
- <exported-symbol-or-api-endpoint>
|
|
304
|
+
main_symbols:
|
|
305
|
+
- <exported-class-or-function>
|
|
306
|
+
depends_on:
|
|
307
|
+
- <other-module-id>
|
|
308
|
+
used_by:
|
|
309
|
+
- <other-module-id>
|
|
310
|
+
needs_review: false
|
|
311
|
+
concerns: []
|
|
312
|
+
review_reasons: []
|
|
313
|
+
\`\`\`
|
|
314
|
+
|
|
315
|
+
### 示例
|
|
316
|
+
\`\`\`yaml
|
|
317
|
+
schema_version: 2
|
|
318
|
+
project: multi-agent-platform
|
|
319
|
+
source_commit: abc1234
|
|
320
|
+
generated_at: 2026-06-02 22:00:00
|
|
321
|
+
generator: sillyspec-scan
|
|
322
|
+
|
|
323
|
+
modules:
|
|
324
|
+
auth-service:
|
|
325
|
+
status: active
|
|
326
|
+
doc: modules/auth-service.md
|
|
327
|
+
paths:
|
|
328
|
+
- src/modules/auth/**
|
|
329
|
+
- src/middleware/auth.js
|
|
330
|
+
tags:
|
|
331
|
+
- auth
|
|
332
|
+
- jwt
|
|
333
|
+
- rbac
|
|
334
|
+
- middleware
|
|
335
|
+
aliases:
|
|
336
|
+
- login
|
|
337
|
+
- token
|
|
338
|
+
- authentication
|
|
339
|
+
entrypoints:
|
|
340
|
+
- authenticate
|
|
341
|
+
- authorize
|
|
342
|
+
- signToken
|
|
343
|
+
- refreshToken
|
|
344
|
+
main_symbols:
|
|
345
|
+
- AuthService
|
|
346
|
+
- AuthController
|
|
347
|
+
- hashPassword
|
|
348
|
+
- verifyPassword
|
|
349
|
+
depends_on:
|
|
350
|
+
- users
|
|
351
|
+
- redis
|
|
352
|
+
used_by:
|
|
353
|
+
- api-routes
|
|
354
|
+
- admin-routes
|
|
355
|
+
needs_review: false
|
|
356
|
+
concerns: []
|
|
357
|
+
review_reasons: []
|
|
358
|
+
\`\`\`
|
|
359
|
+
|
|
360
|
+
### 关键规则
|
|
361
|
+
- module-id 用 kebab-case(如 auth-service)
|
|
362
|
+
- depends_on / used_by 引用其他模块的 module-id
|
|
363
|
+
- tags 和 aliases 用于 brainstorm 阶段的需求→模块匹配,尽量覆盖开发者可能用的词
|
|
364
|
+
- entrypoints 和 main_symbols 用于 execute 阶段快速定位源码
|
|
365
|
+
- 不要编造无法从源码 grep 到的符号
|
|
366
|
+
- 如果无法确定依赖关系,depends_on/used_by 留空列表,不要猜
|
|
367
|
+
|
|
368
|
+
### 输出
|
|
369
|
+
_module-map.yaml 生成结果(已存在/已生成/模块列表)`,
|
|
370
|
+
outputHint: '_module-map.yaml 生成状态',
|
|
371
|
+
optional: true
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
name: '生成模块卡片文档',
|
|
375
|
+
perProject: true,
|
|
376
|
+
conditionalWait: true,
|
|
377
|
+
waitReason: '检测到已有模块文档覆盖风险',
|
|
378
|
+
waitOptions: ['只生成缺失', '全部重新生成', '跳过'],
|
|
379
|
+
prompt: `根据当前项目的 \`_module-map.yaml\` 生成模块卡片文档。
|
|
380
|
+
|
|
381
|
+
### ⚠️ 重要:模块卡片只负责人类语义说明
|
|
382
|
+
结构化索引(paths/tags/entrypoints/depends_on/used_by)已经在 _module-map.yaml 里维护。
|
|
383
|
+
卡片里不要重复这些信息,只写 _module-map.yaml 无法表达的语义内容。
|
|
384
|
+
|
|
385
|
+
### 操作
|
|
386
|
+
对扫描列表中的每个项目分别执行:
|
|
387
|
+
1. 读取 \`{DOCS_ROOT}/modules/_module-map.yaml\`,获取模块列表和路径
|
|
388
|
+
2. 检查 \`{DOCS_ROOT}/modules/\` 下已有的模块文档(<module>.md)
|
|
389
|
+
3. 列出每个模块的状态:已有文档 / 缺失
|
|
390
|
+
4. **如果有覆盖风险(已有模块文档会被覆盖),必须暂停等待用户**:
|
|
391
|
+
- 展示模块列表及现有文档状态
|
|
392
|
+
- 明确提供选项:**为缺失模块生成初始文档** / **全部重新生成(覆盖已有)** / **跳过**
|
|
393
|
+
- 调用:\`sillyspec run scan --wait --reason "检测到已有模块文档覆盖风险" --options "只生成缺失,全部重新生成,跳过" --output "受影响模块列表"\`
|
|
394
|
+
5. **如果没有覆盖风险(全部都是缺失模块),正常完成即可,不需要等待。**
|
|
395
|
+
|
|
396
|
+
### 生成方法(子代理并行,只针对用户选中的模块)
|
|
397
|
+
**你必须为每个模块启动独立子代理执行,不要自己写文档。**
|
|
398
|
+
|
|
399
|
+
每个子代理的 prompt(**主 agent 启动前必须拼入**):
|
|
400
|
+
- 模块名和路径(从 _module-map.yaml 读取)
|
|
401
|
+
- 环境探测结果摘要(构建工具、语言框架)
|
|
402
|
+
- scan 文档关键信息摘要(ARCHITECTURE.md 的技术栈、CONVENTIONS.md 的代码风格要点,如已生成)
|
|
403
|
+
\`\`\`
|
|
404
|
+
模块名:<module-id>
|
|
405
|
+
模块路径:<glob patterns>
|
|
406
|
+
目标文件:{DOCS_ROOT}/modules/<module-id>.md
|
|
407
|
+
|
|
408
|
+
操作:
|
|
409
|
+
1. 用 grep/rg 搜索模块路径范围内的源码(禁止读源码全文)
|
|
410
|
+
2. 提取:模块职责、对外接口、关键逻辑、注意事项
|
|
411
|
+
3. 按以下模板写入目标文件:
|
|
412
|
+
|
|
413
|
+
---
|
|
414
|
+
schema_version: 1
|
|
415
|
+
doc_type: module-card
|
|
416
|
+
module_id: <module-id>
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
# <中文名>(<module-id>)
|
|
420
|
+
|
|
421
|
+
## 定位
|
|
422
|
+
(负责什么,不负责什么 — 明确边界)
|
|
423
|
+
|
|
424
|
+
## 契约摘要
|
|
425
|
+
(核心能力列表,具体导出符号以 _module-map.yaml 的 entrypoints/main_symbols 为准)
|
|
426
|
+
|
|
427
|
+
## 关键逻辑
|
|
428
|
+
(最核心的流程摘要,用 text 伪代码,不超过 3-5 行)
|
|
429
|
+
|
|
430
|
+
## 注意事项
|
|
431
|
+
(维护提醒、已知限制、修改时需同步检查的模块)
|
|
432
|
+
|
|
433
|
+
## 人工备注
|
|
434
|
+
|
|
435
|
+
<!-- MANUAL_NOTES_START -->
|
|
436
|
+
|
|
437
|
+
<!-- MANUAL_NOTES_END -->
|
|
438
|
+
|
|
439
|
+
规则:
|
|
440
|
+
- 不要编造接口或依赖,只写 grep/rg 能搜到的
|
|
441
|
+
- 一级标题格式 \`# <中文名>(<module-id>)\`:中文名从模块职责提炼 2-8 字(如 认证与令牌、变更中心),括号内保留 module-id 原样——sillyhub 平台解析识别用
|
|
442
|
+
- 目标长度:500-1000 字 / 80-150 行
|
|
443
|
+
- 如果模块特别复杂(状态机、多角色交互、复杂领域规则),可以在 modules/details/ 下生成扩展文档(如 details/<module-id>-flow.md),agent 默认不读
|
|
444
|
+
- 不要重复 _module-map.yaml 中的索引信息
|
|
445
|
+
- 不要写设计决策表、完整依赖表、变更索引长表
|
|
446
|
+
- 人工备注区域保持空标记,留给用户填写
|
|
447
|
+
\`\`\`
|
|
448
|
+
|
|
449
|
+
等待所有子代理完成,验证文件是否生成且非空。
|
|
450
|
+
|
|
451
|
+
### 输出
|
|
452
|
+
已生成的模块文档路径列表`,
|
|
453
|
+
outputHint: '模块文档生成状态',
|
|
454
|
+
optional: true
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
name: '生成业务流程和术语表(可选)',
|
|
458
|
+
perProject: true,
|
|
459
|
+
prompt: `根据当前项目的模块依赖关系和源码,生成跨模块业务流程文档和术语表。
|
|
460
|
+
|
|
461
|
+
⚠️ 这一步是可选的。如果项目模块简单、流程不明显,可以跳过。
|
|
462
|
+
|
|
463
|
+
### flows/ 目录
|
|
464
|
+
目标目录:\`{DOCS_ROOT}/flows/\`
|
|
465
|
+
|
|
466
|
+
根据 _module-map.yaml 中的模块依赖关系,识别跨模块业务流程:
|
|
467
|
+
1. 读取 \`_module-map.yaml\`,分析 used_by 链条
|
|
468
|
+
2. 用 grep/rg 搜索路由定义、API 端点、事件处理
|
|
469
|
+
3. 识别跨模块的完整业务流程(如登录→下单→支付)
|
|
470
|
+
4. 每个流程生成一个文件:\`flows/<flow-name>.md\`
|
|
471
|
+
|
|
472
|
+
文件格式:
|
|
473
|
+
\`\`\`markdown
|
|
474
|
+
# <flow-name>
|
|
475
|
+
|
|
476
|
+
## 目标
|
|
477
|
+
(一句话描述这个流程的业务目的)
|
|
478
|
+
|
|
479
|
+
## 参与模块
|
|
480
|
+
- module-a:做什么
|
|
481
|
+
- module-b:做什么
|
|
482
|
+
|
|
483
|
+
## 流程摘要
|
|
484
|
+
\`\`\`text
|
|
485
|
+
step1 → step2 → step3
|
|
486
|
+
\`\`\`
|
|
487
|
+
|
|
488
|
+
## 失败回滚
|
|
489
|
+
| 失败点 | 处理 |
|
|
490
|
+
|---|---|
|
|
491
|
+
\`\`\`
|
|
492
|
+
|
|
493
|
+
### glossary.md
|
|
494
|
+
目标文件:\`{DOCS_ROOT}/glossary.md\`
|
|
495
|
+
|
|
496
|
+
提取项目专有术语:
|
|
497
|
+
1. 用 grep 搜索 TODO/FIXME 注释中的术语定义
|
|
498
|
+
2. 从数据库表注释提取
|
|
499
|
+
3. 从 README 和文档中提取定义段落
|
|
500
|
+
|
|
501
|
+
文件格式:
|
|
502
|
+
\`\`\`markdown
|
|
503
|
+
# 术语表(Glossary)
|
|
504
|
+
|
|
505
|
+
## Session
|
|
506
|
+
在本项目中,session 指...(项目内特殊含义)
|
|
507
|
+
|
|
508
|
+
## Order
|
|
509
|
+
订单主实体,代表...(业务定义)
|
|
510
|
+
\`\`\`
|
|
511
|
+
|
|
512
|
+
### 操作
|
|
513
|
+
1. 分析模块依赖关系,识别可能的业务流程
|
|
514
|
+
2. 如果发现 2+ 个跨模块流程,生成 flows/ 文档
|
|
515
|
+
3. 提取术语生成 glossary.md
|
|
516
|
+
4. 如果没有明显的流程或术语,跳过此步
|
|
517
|
+
|
|
518
|
+
### 输出
|
|
519
|
+
生成的文件路径列表(或"已跳过")`,
|
|
520
|
+
outputHint: '流程和术语表生成状态',
|
|
521
|
+
optional: true
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
name: 'Extract Project Knowledge',
|
|
525
|
+
perProject: true,
|
|
526
|
+
prompt: `从本次 scan 产物中提取长期有效、跨变更复用的项目知识,写入知识库。
|
|
527
|
+
|
|
528
|
+
### 知识分类
|
|
529
|
+
| 文件 | 内容 |
|
|
530
|
+
|------|------|
|
|
531
|
+
| conventions.md | 项目约定:目录规范、命名规范、提交规范、测试规范 |
|
|
532
|
+
| patterns.md | 可复用模式:鉴权方式、错误处理方式、模块组织方式 |
|
|
533
|
+
| known-issues.md | 已知坑:不可直接改的模块、历史兼容问题、代理限制 |
|
|
534
|
+
| uncategorized.md | 不确定分类、需要人工确认的知识 |
|
|
535
|
+
|
|
536
|
+
INDEX.md 维护索引,格式(每行:关键词1|关键词2 → [条目名](文件#锚点);关键词用于 execute 阶段命中匹配,必须给出能区分该知识的词):
|
|
537
|
+
\`\`\`markdown
|
|
538
|
+
# 知识索引(Knowledge Index)
|
|
539
|
+
|
|
540
|
+
## 约定(Conventions)
|
|
541
|
+
- ESM|module|import → [ESM Only](conventions.md#esm-only)
|
|
542
|
+
\`\`\`
|
|
543
|
+
|
|
544
|
+
### ⛔ 硬规则(必须遵守)
|
|
545
|
+
1. **只写未来变更会反复用到的知识** — 不要把 scan 报告摘要塞进知识库
|
|
546
|
+
2. **不要重复 knowledge 文件中已有的内容** — 读取现有文件,追加新条目,不覆盖
|
|
547
|
+
3. **不确定分类或不确定长期有效 → uncategorized.md** — 宁可不确定也不要放错
|
|
548
|
+
4. **每个正式分类条目必须更新 INDEX.md** — 添加对应分类下的链接
|
|
549
|
+
5. **每个条目用 markdown 锚点格式** — 文件内用 \`## 标题\`,INDEX 用 \`[#标题]\` 或 \`(文件名#标题)\`
|
|
550
|
+
6. **knowledge 文件标题用中文**(sillyhub 平台解析识别用):conventions.md 第一行 # 项目约定(Conventions)、patterns.md = # 复用模式(Patterns)、known-issues.md = # 已知问题(Known Issues)、uncategorized.md = # 未分类知识(Uncategorized)、INDEX.md 见模板(知识索引)
|
|
551
|
+
|
|
552
|
+
### 操作
|
|
553
|
+
1. 读取现有 knowledge 文件:\`{KNOWLEDGE_ROOT}/INDEX.md\`、\`{KNOWLEDGE_ROOT}/conventions.md\` 等
|
|
554
|
+
2. 遍历 scan 产物(\`{DOCS_ROOT}/scan/*.md\`、\`{DOCS_ROOT}/modules/*.md\`),识别可复用知识
|
|
555
|
+
3. 将新知识按分类写入对应文件(追加模式,不覆盖已有内容)
|
|
556
|
+
4. 更新 INDEX.md 索引
|
|
557
|
+
5. 如果确实没有新知识可提取(已有文件已覆盖),输出"无新知识"而非创建空条目
|
|
558
|
+
|
|
559
|
+
### 输出
|
|
560
|
+
新增知识条目数量 + 分类分布(或"无新知识")`,
|
|
561
|
+
outputHint: '知识条目数量',
|
|
562
|
+
optional: false
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
name: '自检和提交',
|
|
566
|
+
perProject: true,
|
|
567
|
+
prompt: `验证当前项目的扫描完整性,清理并提交。
|
|
568
|
+
|
|
569
|
+
### 操作
|
|
570
|
+
对扫描列表中的每个项目分别执行:
|
|
571
|
+
1. 检查 7 份 scan 文档是否全部生成(\`{DOCS_ROOT}/scan/\`)
|
|
572
|
+
2. 检查模块文档状态(\`{DOCS_ROOT}/modules/\`)
|
|
573
|
+
3. 自检门控:ARCHITECTURE(技术栈+Schema摘要)、CONVENTIONS(隐形规则+代码风格)、STRUCTURE(目录结构)、INTEGRATIONS(外部依赖)、TESTING(测试现状)、CONCERNS(技术债务)、PROJECT(项目概览)
|
|
574
|
+
4. 检查 flows/ 和 glossary.md 是否已生成(如有)
|
|
575
|
+
5. 清理:\`rm -f {DOCS_ROOT}/scan/_env-detect.md\`
|
|
576
|
+
6. 如果非平台模式:\`git add {DOCS_ROOT}/ {KNOWLEDGE_ROOT}/\` — 暂存本次扫描产物(scan 文档 / 模块文档 / flows / glossary / knowledge;勿用 .sillyspec/ 整目录——会裹挟 changes/ 下其他活跃变更;不要 commit,由用户通过统一提交工具处理)。如果平台模式:跳过 git add(specRoot 不在 sourceRoot 的 git repo 内)。
|
|
577
|
+
|
|
578
|
+
### ⛔ 路径合规检查(平台模式下必须执行)
|
|
579
|
+
7. 确认所有文档都写入 \`{DOCS_ROOT}/\`(spec-root 下),**而非源码目录下的 .sillyspec/**
|
|
580
|
+
8. 检查是否出现 tool_use_error 或 API Error 未恢复
|
|
581
|
+
9. 检查 7 份文档 header 是否包含 author 和 created_at
|
|
582
|
+
10. 复查 detect 核验结果——commands 键已由 detect 核验 scripts 存在性,agent 无需重复核验或标 unavailable,仅确认 local.yaml 与 detect 产出一致
|
|
583
|
+
|
|
584
|
+
### ⛔ API 错误处理
|
|
585
|
+
- 遇到 API Error 529(服务过载)或 rate_limit 时,**停止当前操作并报告**,不要自动重试
|
|
586
|
+
- 遇到 tool_use_error 时,记录错误信息并跳过该文件/操作,继续处理下一项
|
|
587
|
+
- 如果连续 3 次操作失败,输出失败摘要并停止
|
|
588
|
+
|
|
589
|
+
### ⛔ 最终状态判定
|
|
590
|
+
如果出现以下**任意**情况,最终状态**不能**写"全部通过",只能写 \`completed_with_warnings\` 或 \`failed_post_check\`:
|
|
591
|
+
- 源码目录下存在 docs(路径合规检查失败)
|
|
592
|
+
- source_commit 为 null
|
|
593
|
+
- Write 工具出现过失败
|
|
594
|
+
- API Error 529 或 rate_limit
|
|
595
|
+
- fallback / retry / skipped validation
|
|
596
|
+
- 文档引用不存在的文件或模块
|
|
597
|
+
- 文档内容包含 .sillyspec/ 等工具目录的扫描结果
|
|
598
|
+
|
|
599
|
+
### 输出
|
|
600
|
+
每个项目的扫描完整性报告(必须包含路径合规检查结果和最终状态)
|
|
601
|
+
|
|
602
|
+
### 注意
|
|
603
|
+
- ❌ 修改代码 / 编造路径 / 读源码全文`,
|
|
604
|
+
outputHint: '自检报告',
|
|
605
|
+
optional: false
|
|
606
|
+
}
|
|
607
|
+
]
|
|
608
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export const definition = {
|
|
2
|
+
name: 'status',
|
|
3
|
+
title: '项目快照',
|
|
4
|
+
description: '项目级只读快照(非流程推进)。查「下一步该做什么/当前阶段进度」请用 sillyspec progress show,勿混淆。',
|
|
5
|
+
auxiliary: true,
|
|
6
|
+
steps: [
|
|
7
|
+
{
|
|
8
|
+
name: '项目基础信息',
|
|
9
|
+
prompt: `收集项目基础信息。
|
|
10
|
+
|
|
11
|
+
### 操作
|
|
12
|
+
1. \`cat .sillyspec/docs/*/scan/PROJECT.md 2>/dev/null | head -20 || echo "未初始化"\`
|
|
13
|
+
2. 获取 project 名
|
|
14
|
+
3. \`ls .sillyspec/docs/<project>/scan/ 2>/dev/null | head -10\`
|
|
15
|
+
4. \`cat .sillyspec/REQUIREMENTS.md 2>/dev/null | head -20\`
|
|
16
|
+
5. \`cat .sillyspec/ROADMAP.md 2>/dev/null\`
|
|
17
|
+
|
|
18
|
+
### 输出
|
|
19
|
+
项目基础信息摘要`,
|
|
20
|
+
outputHint: '项目基础信息',
|
|
21
|
+
optional: false
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: '变更状态',
|
|
25
|
+
prompt: `检查进行中的变更和归档历史。
|
|
26
|
+
|
|
27
|
+
### 操作
|
|
28
|
+
1. \`ls .sillyspec/changes/ 2>/dev/null | grep -v archive\`
|
|
29
|
+
2. 对每个进行中的变更:检查 proposal.md ✅/❌、design.md ✅/❌、requirements.md ✅/❌、tasks.md — X/Y 完成
|
|
30
|
+
3. \`ls .sillyspec/changes/archive/ 2>/dev/null | wc -l\`
|
|
31
|
+
|
|
32
|
+
### 输出
|
|
33
|
+
变更状态列表`,
|
|
34
|
+
outputHint: '变更状态',
|
|
35
|
+
optional: false
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: '输出状态报告',
|
|
39
|
+
prompt: `生成完整状态报告。
|
|
40
|
+
|
|
41
|
+
### 输出格式:
|
|
42
|
+
\`\`\`
|
|
43
|
+
📊 SillySpec 状态
|
|
44
|
+
|
|
45
|
+
📋 项目:xxx(已初始化 / 未初始化)
|
|
46
|
+
📂 代码库:已扫描(7 份文档)/ 未扫描
|
|
47
|
+
|
|
48
|
+
🔄 进行中:N 个变更
|
|
49
|
+
- [change-1] Phase 3 (Execute) — tasks 5/8
|
|
50
|
+
|
|
51
|
+
✅ 已归档:N 个变更
|
|
52
|
+
📝 设计文档:N 份
|
|
53
|
+
📝 实现计划:N 份
|
|
54
|
+
|
|
55
|
+
💡 下一步:/sillyspec:continue
|
|
56
|
+
\`\`\`
|
|
57
|
+
|
|
58
|
+
### 注意
|
|
59
|
+
- 不修改任何文件`,
|
|
60
|
+
outputHint: '状态报告',
|
|
61
|
+
optional: false
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|