@winspan/claude-forge 9.2.0 → 9.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DEVELOPMENT.md +80 -19
- package/README.md +13 -6
- package/dist/catalogs/agents.json +19 -24
- package/dist/catalogs/skills.json +139 -27
- package/dist/claudemd/templates/swarm-protocol.md +1 -1
- package/dist/cli/commands/agent.d.ts +169 -0
- package/dist/cli/commands/agent.d.ts.map +1 -0
- package/dist/cli/commands/agent.js +690 -0
- package/dist/cli/commands/agent.js.map +1 -0
- package/dist/cli/commands/codegraph.d.ts +17 -0
- package/dist/cli/commands/codegraph.d.ts.map +1 -0
- package/dist/cli/commands/codegraph.js +263 -0
- package/dist/cli/commands/codegraph.js.map +1 -0
- package/dist/cli/commands/decisions.d.ts.map +1 -1
- package/dist/cli/commands/decisions.js +46 -9
- package/dist/cli/commands/decisions.js.map +1 -1
- package/dist/cli/commands/executions.d.ts.map +1 -1
- package/dist/cli/commands/executions.js +2 -1
- package/dist/cli/commands/executions.js.map +1 -1
- package/dist/cli/commands/insights-goal-check.d.ts +5 -1
- package/dist/cli/commands/insights-goal-check.d.ts.map +1 -1
- package/dist/cli/commands/insights-goal-check.js +15 -15
- package/dist/cli/commands/insights-goal-check.js.map +1 -1
- package/dist/cli/commands/knowledge.d.ts +51 -0
- package/dist/cli/commands/knowledge.d.ts.map +1 -1
- package/dist/cli/commands/knowledge.js +202 -29
- package/dist/cli/commands/knowledge.js.map +1 -1
- package/dist/cli/commands/loop.d.ts +95 -0
- package/dist/cli/commands/loop.d.ts.map +1 -0
- package/dist/cli/commands/loop.js +408 -0
- package/dist/cli/commands/loop.js.map +1 -0
- package/dist/cli/commands/maintenance.d.ts +33 -0
- package/dist/cli/commands/maintenance.d.ts.map +1 -0
- package/dist/cli/commands/maintenance.js +75 -0
- package/dist/cli/commands/maintenance.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +23 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +82 -0
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/skills.d.ts +131 -0
- package/dist/cli/commands/skills.d.ts.map +1 -1
- package/dist/cli/commands/skills.js +409 -9
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/stats.d.ts.map +1 -1
- package/dist/cli/commands/stats.js +9 -2
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/constants.d.ts +37 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +43 -0
- package/dist/core/constants.js.map +1 -1
- package/dist/core/diagnostics/checks.d.ts.map +1 -1
- package/dist/core/diagnostics/checks.js +2 -1
- package/dist/core/diagnostics/checks.js.map +1 -1
- package/dist/core/diagnostics/daemon-status.d.ts +1 -1
- package/dist/core/diagnostics/daemon-status.d.ts.map +1 -1
- package/dist/core/diagnostics/daemon-status.js +1 -1
- package/dist/core/diagnostics/daemon-status.js.map +1 -1
- package/dist/core/diagnostics/entropy-checks.d.ts +3 -2
- package/dist/core/diagnostics/entropy-checks.d.ts.map +1 -1
- package/dist/core/diagnostics/entropy-checks.js +10 -5
- package/dist/core/diagnostics/entropy-checks.js.map +1 -1
- package/dist/core/diagnostics/heartbeat-reader.d.ts +28 -0
- package/dist/core/diagnostics/heartbeat-reader.d.ts.map +1 -0
- package/dist/core/diagnostics/heartbeat-reader.js +50 -0
- package/dist/core/diagnostics/heartbeat-reader.js.map +1 -0
- package/dist/core/event-fields.d.ts +27 -0
- package/dist/core/event-fields.d.ts.map +1 -1
- package/dist/core/event-fields.js +43 -0
- package/dist/core/event-fields.js.map +1 -1
- package/dist/core/governance/global-inject.d.ts +34 -4
- package/dist/core/governance/global-inject.d.ts.map +1 -1
- package/dist/core/governance/global-inject.js +80 -25
- package/dist/core/governance/global-inject.js.map +1 -1
- package/dist/core/insights/agent-anchor-guard.d.ts +77 -0
- package/dist/core/insights/agent-anchor-guard.d.ts.map +1 -0
- package/dist/core/insights/agent-anchor-guard.js +119 -0
- package/dist/core/insights/agent-anchor-guard.js.map +1 -0
- package/dist/core/insights/agent-distill-context.d.ts +55 -0
- package/dist/core/insights/agent-distill-context.d.ts.map +1 -0
- package/dist/core/insights/agent-distill-context.js +146 -0
- package/dist/core/insights/agent-distill-context.js.map +1 -0
- package/dist/core/insights/agent-distill-spawn.d.ts +56 -0
- package/dist/core/insights/agent-distill-spawn.d.ts.map +1 -0
- package/dist/core/insights/agent-distill-spawn.js +179 -0
- package/dist/core/insights/agent-distill-spawn.js.map +1 -0
- package/dist/core/insights/agent-drift.d.ts +66 -0
- package/dist/core/insights/agent-drift.d.ts.map +1 -0
- package/dist/core/insights/agent-drift.js +109 -0
- package/dist/core/insights/agent-drift.js.map +1 -0
- package/dist/core/insights/agent-evolution-sources.d.ts +21 -0
- package/dist/core/insights/agent-evolution-sources.d.ts.map +1 -0
- package/dist/core/insights/agent-evolution-sources.js +36 -0
- package/dist/core/insights/agent-evolution-sources.js.map +1 -0
- package/dist/core/insights/agent-health.d.ts +142 -0
- package/dist/core/insights/agent-health.d.ts.map +1 -0
- package/dist/core/insights/agent-health.js +296 -0
- package/dist/core/insights/agent-health.js.map +1 -0
- package/dist/core/insights/agent-patch-apply.d.ts +45 -0
- package/dist/core/insights/agent-patch-apply.d.ts.map +1 -0
- package/dist/core/insights/agent-patch-apply.js +165 -0
- package/dist/core/insights/agent-patch-apply.js.map +1 -0
- package/dist/core/insights/agent-suggest.d.ts +128 -0
- package/dist/core/insights/agent-suggest.d.ts.map +1 -0
- package/dist/core/insights/agent-suggest.js +284 -0
- package/dist/core/insights/agent-suggest.js.map +1 -0
- package/dist/core/insights/coverage-tiers.d.ts +46 -0
- package/dist/core/insights/coverage-tiers.d.ts.map +1 -0
- package/dist/core/insights/coverage-tiers.js +95 -0
- package/dist/core/insights/coverage-tiers.js.map +1 -0
- package/dist/{daemon/services → core/insights}/experience-extractor.d.ts +0 -7
- package/dist/core/insights/experience-extractor.d.ts.map +1 -0
- package/dist/{daemon/services → core/insights}/experience-extractor.js +5 -9
- package/dist/core/insights/experience-extractor.js.map +1 -0
- package/dist/{daemon/services → core/insights}/violation-reporter.d.ts +20 -1
- package/dist/core/insights/violation-reporter.d.ts.map +1 -0
- package/dist/{daemon/services → core/insights}/violation-reporter.js +56 -4
- package/dist/core/insights/violation-reporter.js.map +1 -0
- package/dist/core/loop/loop-engine.d.ts +140 -0
- package/dist/core/loop/loop-engine.d.ts.map +1 -0
- package/dist/core/loop/loop-engine.js +266 -0
- package/dist/core/loop/loop-engine.js.map +1 -0
- package/dist/core/queue/index.d.ts.map +1 -1
- package/dist/core/queue/index.js +2 -1
- package/dist/core/queue/index.js.map +1 -1
- package/dist/core/storage/base.d.ts +159 -0
- package/dist/core/storage/base.d.ts.map +1 -1
- package/dist/core/storage/base.js +523 -0
- package/dist/core/storage/base.js.map +1 -1
- package/dist/core/storage/codegraph-types.d.ts +79 -0
- package/dist/core/storage/codegraph-types.d.ts.map +1 -0
- package/dist/core/storage/codegraph-types.js +14 -0
- package/dist/core/storage/codegraph-types.js.map +1 -0
- package/dist/core/storage/codegraph.d.ts +186 -0
- package/dist/core/storage/codegraph.d.ts.map +1 -0
- package/dist/core/storage/codegraph.js +452 -0
- package/dist/core/storage/codegraph.js.map +1 -0
- package/dist/core/storage/decisions.d.ts +30 -5
- package/dist/core/storage/decisions.d.ts.map +1 -1
- package/dist/core/storage/decisions.js +45 -13
- package/dist/core/storage/decisions.js.map +1 -1
- package/dist/core/storage/events.d.ts +127 -0
- package/dist/core/storage/events.d.ts.map +1 -1
- package/dist/core/storage/events.js +318 -3
- package/dist/core/storage/events.js.map +1 -1
- package/dist/core/storage/feedback.d.ts +3 -23
- package/dist/core/storage/feedback.d.ts.map +1 -1
- package/dist/core/storage/feedback.js +37 -38
- package/dist/core/storage/feedback.js.map +1 -1
- package/dist/core/storage/injections.d.ts +40 -0
- package/dist/core/storage/injections.d.ts.map +1 -1
- package/dist/core/storage/injections.js +69 -0
- package/dist/core/storage/injections.js.map +1 -1
- package/dist/core/storage/knowledge.d.ts +226 -0
- package/dist/core/storage/knowledge.d.ts.map +1 -1
- package/dist/core/storage/knowledge.js +391 -4
- package/dist/core/storage/knowledge.js.map +1 -1
- package/dist/core/storage/pipeline-rollup.d.ts +1 -7
- package/dist/core/storage/pipeline-rollup.d.ts.map +1 -1
- package/dist/core/storage/pipeline-rollup.js +18 -57
- package/dist/core/storage/pipeline-rollup.js.map +1 -1
- package/dist/core/storage/routing.d.ts +34 -0
- package/dist/core/storage/routing.d.ts.map +1 -1
- package/dist/core/storage/routing.js +92 -2
- package/dist/core/storage/routing.js.map +1 -1
- package/dist/core/storage/rows.d.ts +5 -25
- package/dist/core/storage/rows.d.ts.map +1 -1
- package/dist/core/storage/schema.sql +92 -27
- package/dist/core/storage/sessions.d.ts.map +1 -1
- package/dist/core/storage/sessions.js +2 -1
- package/dist/core/storage/sessions.js.map +1 -1
- package/dist/core/storage/skills.d.ts +159 -0
- package/dist/core/storage/skills.d.ts.map +1 -1
- package/dist/core/storage/skills.js +350 -4
- package/dist/core/storage/skills.js.map +1 -1
- package/dist/core/storage/sqlite.d.ts +81 -25
- package/dist/core/storage/sqlite.d.ts.map +1 -1
- package/dist/core/storage/sqlite.js +143 -45
- package/dist/core/storage/sqlite.js.map +1 -1
- package/dist/core/storage/tasks.d.ts +270 -0
- package/dist/core/storage/tasks.d.ts.map +1 -1
- package/dist/core/storage/tasks.js +495 -16
- package/dist/core/storage/tasks.js.map +1 -1
- package/dist/core/storage/tool-intercepts.d.ts +1 -1
- package/dist/core/storage/tool-intercepts.js +1 -1
- package/dist/core/types.d.ts +26 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +1 -3
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils/binary-paths.d.ts +32 -0
- package/dist/core/utils/binary-paths.d.ts.map +1 -1
- package/dist/core/utils/binary-paths.js +52 -0
- package/dist/core/utils/binary-paths.js.map +1 -1
- package/dist/core/utils/claude-cli-resolver.d.ts.map +1 -0
- package/dist/{skills/distill → core/utils}/claude-cli-resolver.js +1 -1
- package/dist/core/utils/claude-cli-resolver.js.map +1 -0
- package/dist/core/utils/claude-cli-spawn.d.ts +1 -1
- package/dist/core/utils/claude-cli-spawn.js +2 -2
- package/dist/core/utils/claude-cli-spawn.js.map +1 -1
- package/dist/core/utils/noise-prompt.d.ts +1 -1
- package/dist/core/utils/noise-prompt.js +1 -1
- package/dist/core/utils/time.d.ts +26 -0
- package/dist/core/utils/time.d.ts.map +1 -1
- package/dist/core/utils/time.js +33 -0
- package/dist/core/utils/time.js.map +1 -1
- package/dist/daemon/config-store.d.ts.map +1 -1
- package/dist/daemon/config-store.js +14 -5
- package/dist/daemon/config-store.js.map +1 -1
- package/dist/daemon/event-parser.d.ts.map +1 -1
- package/dist/daemon/event-parser.js +5 -0
- package/dist/daemon/event-parser.js.map +1 -1
- package/dist/daemon/handlers/post-tool-use.d.ts +24 -16
- package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use.js +76 -116
- package/dist/daemon/handlers/post-tool-use.js.map +1 -1
- package/dist/daemon/handlers/pre-tool-use.d.ts +35 -10
- package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -1
- package/dist/daemon/handlers/pre-tool-use.js +71 -38
- package/dist/daemon/handlers/pre-tool-use.js.map +1 -1
- package/dist/daemon/handlers/stop.d.ts +20 -0
- package/dist/daemon/handlers/stop.d.ts.map +1 -1
- package/dist/daemon/handlers/stop.js +96 -8
- package/dist/daemon/handlers/stop.js.map +1 -1
- package/dist/daemon/handlers/user-prompt.d.ts +16 -1
- package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt.js +97 -56
- package/dist/daemon/handlers/user-prompt.js.map +1 -1
- package/dist/daemon/handlers/violation-content-backfill.d.ts +76 -0
- package/dist/daemon/handlers/violation-content-backfill.d.ts.map +1 -0
- package/dist/daemon/handlers/violation-content-backfill.js +167 -0
- package/dist/daemon/handlers/violation-content-backfill.js.map +1 -0
- package/dist/daemon/index.d.ts +19 -0
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +125 -200
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/rules/defaults.d.ts.map +1 -1
- package/dist/daemon/rules/defaults.js +151 -64
- package/dist/daemon/rules/defaults.js.map +1 -1
- package/dist/daemon/rules/types.d.ts +28 -22
- package/dist/daemon/rules/types.d.ts.map +1 -1
- package/dist/daemon/rules/workflow-defaults.js +9 -9
- package/dist/daemon/rules/workflow-defaults.js.map +1 -1
- package/dist/daemon/services/codegraph-sync.d.ts +94 -0
- package/dist/daemon/services/codegraph-sync.d.ts.map +1 -0
- package/dist/daemon/services/codegraph-sync.js +159 -0
- package/dist/daemon/services/codegraph-sync.js.map +1 -0
- package/dist/daemon/services/decision-hint.d.ts +47 -10
- package/dist/daemon/services/decision-hint.d.ts.map +1 -1
- package/dist/daemon/services/decision-hint.js +99 -24
- package/dist/daemon/services/decision-hint.js.map +1 -1
- package/dist/daemon/services/event-ttl-sweep.d.ts.map +1 -1
- package/dist/daemon/services/event-ttl-sweep.js +3 -2
- package/dist/daemon/services/event-ttl-sweep.js.map +1 -1
- package/dist/daemon/services/feedback-aggregator.d.ts +14 -26
- package/dist/daemon/services/feedback-aggregator.d.ts.map +1 -1
- package/dist/daemon/services/feedback-aggregator.js +23 -63
- package/dist/daemon/services/feedback-aggregator.js.map +1 -1
- package/dist/daemon/services/heartbeat-writer.d.ts +6 -15
- package/dist/daemon/services/heartbeat-writer.d.ts.map +1 -1
- package/dist/daemon/services/heartbeat-writer.js +7 -36
- package/dist/daemon/services/heartbeat-writer.js.map +1 -1
- package/dist/daemon/services/kb-injector.d.ts +1 -1
- package/dist/daemon/services/kb-injector.d.ts.map +1 -1
- package/dist/daemon/services/kb-injector.js +10 -2
- package/dist/daemon/services/kb-injector.js.map +1 -1
- package/dist/daemon/services/kb-rebuild-scheduler.d.ts +95 -0
- package/dist/daemon/services/kb-rebuild-scheduler.d.ts.map +1 -0
- package/dist/daemon/services/kb-rebuild-scheduler.js +149 -0
- package/dist/daemon/services/kb-rebuild-scheduler.js.map +1 -0
- package/dist/daemon/services/loop-hint.d.ts +139 -0
- package/dist/daemon/services/loop-hint.d.ts.map +1 -0
- package/dist/daemon/services/loop-hint.js +272 -0
- package/dist/daemon/services/loop-hint.js.map +1 -0
- package/dist/daemon/services/outcome-classification-service.js +1 -1
- package/dist/daemon/services/outcome-classification-service.js.map +1 -1
- package/dist/daemon/services/task-segmenter.d.ts +11 -0
- package/dist/daemon/services/task-segmenter.d.ts.map +1 -1
- package/dist/daemon/services/task-segmenter.js +48 -2
- package/dist/daemon/services/task-segmenter.js.map +1 -1
- package/dist/daemon/startup/maintenance-schedulers.d.ts +68 -0
- package/dist/daemon/startup/maintenance-schedulers.d.ts.map +1 -0
- package/dist/daemon/startup/maintenance-schedulers.js +294 -0
- package/dist/daemon/startup/maintenance-schedulers.js.map +1 -0
- package/dist/daemon/templates/agents/agent-retro-distiller.md +106 -0
- package/dist/daemon/templates/agents/claudemd-writer.md +1 -0
- package/dist/daemon/templates/agents/coder.md +165 -8
- package/dist/daemon/templates/agents/decision-maker.md +107 -21
- package/dist/daemon/templates/agents/doc-reviewer.md +4 -1
- package/dist/daemon/templates/agents/harness-debug-full.md +85 -3
- package/dist/daemon/templates/agents/knowledge-builder.md +1 -0
- package/dist/daemon/templates/agents/patch-applier.md +1 -0
- package/dist/daemon/templates/agents/planner.md +55 -3
- package/dist/daemon/templates/agents/safety-net-implementer.md +278 -0
- package/dist/daemon/templates/agents/skill-distiller.md +1 -0
- package/dist/daemon/templates/agents/task-boundary-classifier.md +1 -0
- package/dist/daemon/templates/agents/verify-agent.md +128 -5
- package/dist/hooks/stop.sh +7 -1
- package/dist/knowledge/builder.js +36 -7
- package/dist/knowledge/builder.js.map +1 -1
- package/dist/knowledge/constants.d.ts +10 -5
- package/dist/knowledge/constants.d.ts.map +1 -1
- package/dist/knowledge/constants.js +10 -5
- package/dist/knowledge/constants.js.map +1 -1
- package/dist/knowledge/graph/edge-extractor.d.ts +45 -0
- package/dist/knowledge/graph/edge-extractor.d.ts.map +1 -0
- package/dist/knowledge/graph/edge-extractor.js +242 -0
- package/dist/knowledge/graph/edge-extractor.js.map +1 -0
- package/dist/knowledge/graph/impact.d.ts +73 -0
- package/dist/knowledge/graph/impact.d.ts.map +1 -0
- package/dist/knowledge/graph/impact.js +94 -0
- package/dist/knowledge/graph/impact.js.map +1 -0
- package/dist/knowledge/graph/types.d.ts +22 -0
- package/dist/knowledge/graph/types.d.ts.map +1 -0
- package/dist/knowledge/graph/types.js +13 -0
- package/dist/knowledge/graph/types.js.map +1 -0
- package/dist/knowledge/prompt.d.ts +9 -0
- package/dist/knowledge/prompt.d.ts.map +1 -1
- package/dist/knowledge/prompt.js +17 -5
- package/dist/knowledge/prompt.js.map +1 -1
- package/dist/knowledge/query.d.ts +13 -0
- package/dist/knowledge/query.d.ts.map +1 -1
- package/dist/knowledge/query.js +107 -10
- package/dist/knowledge/query.js.map +1 -1
- package/dist/knowledge/repo-map.d.ts +11 -5
- package/dist/knowledge/repo-map.d.ts.map +1 -1
- package/dist/knowledge/repo-map.js +42 -3
- package/dist/knowledge/repo-map.js.map +1 -1
- package/dist/knowledge/validator.d.ts.map +1 -1
- package/dist/knowledge/validator.js +69 -2
- package/dist/knowledge/validator.js.map +1 -1
- package/dist/mcp/server.d.ts +64 -8
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +233 -18
- package/dist/mcp/server.js.map +1 -1
- package/dist/skills/distill/distiller.js +1 -1
- package/dist/skills/distill/distiller.js.map +1 -1
- package/dist/skills/distilled/distilled-api-design.md +4 -0
- package/dist/skills/distilled/distilled-brainstorming.md +79 -0
- package/dist/skills/distilled/distilled-brand-guidelines.md +86 -0
- package/dist/skills/distilled/distilled-canvas-design.md +128 -0
- package/dist/skills/distilled/distilled-claude-api.md +185 -0
- package/dist/skills/distilled/distilled-creator.md +5 -2
- package/dist/skills/distilled/distilled-dispatching-parallel-agents.md +136 -0
- package/dist/skills/distilled/distilled-doc-coauthoring.md +144 -0
- package/dist/skills/distilled/distilled-docx.md +231 -0
- package/dist/skills/distilled/distilled-executing-plans.md +85 -50
- package/dist/skills/distilled/distilled-finishing-a-development-branch.md +213 -0
- package/dist/skills/distilled/distilled-frontend-design.md +118 -0
- package/dist/skills/distilled/distilled-harness-engineering.md +1 -1
- package/dist/skills/distilled/distilled-receiving-code-review.md +185 -0
- package/dist/skills/distilled/distilled-subagent-driven-development.md +124 -0
- package/dist/skills/distilled/distilled-systematic-debugging.md +108 -260
- package/dist/skills/distilled/distilled-test-driven-development.md +432 -0
- package/dist/skills/distilled/distilled-using-superpowers.md +134 -0
- package/dist/skills/distilled/distilled-verification-before-completion.md +88 -78
- package/dist/skills/distilled/distilled-writing-skills.md +175 -0
- package/dist/skills/registry.d.ts +10 -50
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +7 -118
- package/dist/skills/registry.js.map +1 -1
- package/dist/skills/tools/pipeline-suggest.js +2 -2
- package/dist/skills/tools/pipeline-suggest.js.map +1 -1
- package/dist/skills/tools/skill-invoke.d.ts +2 -1
- package/dist/skills/tools/skill-invoke.d.ts.map +1 -1
- package/dist/skills/tools/skill-invoke.js +3 -1
- package/dist/skills/tools/skill-invoke.js.map +1 -1
- package/dist/web/analytics/anti-pattern-detector.d.ts.map +1 -1
- package/dist/web/analytics/anti-pattern-detector.js +6 -1
- package/dist/web/analytics/anti-pattern-detector.js.map +1 -1
- package/dist/web/analytics/drift-detector.d.ts +6 -0
- package/dist/web/analytics/drift-detector.d.ts.map +1 -1
- package/dist/web/analytics/drift-detector.js +15 -8
- package/dist/web/analytics/drift-detector.js.map +1 -1
- package/dist/web/analytics/weekly-report.d.ts +13 -0
- package/dist/web/analytics/weekly-report.d.ts.map +1 -1
- package/dist/web/analytics/weekly-report.js +17 -3
- package/dist/web/analytics/weekly-report.js.map +1 -1
- package/dist/web/routes/_helpers.d.ts +31 -0
- package/dist/web/routes/_helpers.d.ts.map +1 -1
- package/dist/web/routes/_helpers.js +33 -0
- package/dist/web/routes/_helpers.js.map +1 -1
- package/dist/web/routes/agent-distill.d.ts +49 -0
- package/dist/web/routes/agent-distill.d.ts.map +1 -0
- package/dist/web/routes/agent-distill.js +526 -0
- package/dist/web/routes/agent-distill.js.map +1 -0
- package/dist/web/routes/config.d.ts +56 -0
- package/dist/web/routes/config.d.ts.map +1 -0
- package/dist/web/routes/config.js +243 -0
- package/dist/web/routes/config.js.map +1 -0
- package/dist/web/routes/decisions.js +1 -1
- package/dist/web/routes/decisions.js.map +1 -1
- package/dist/web/routes/error-handler.d.ts +0 -4
- package/dist/web/routes/error-handler.d.ts.map +1 -1
- package/dist/web/routes/error-handler.js +0 -8
- package/dist/web/routes/error-handler.js.map +1 -1
- package/dist/web/routes/events.d.ts.map +1 -1
- package/dist/web/routes/events.js +2 -1
- package/dist/web/routes/events.js.map +1 -1
- package/dist/web/routes/insights.d.ts.map +1 -1
- package/dist/web/routes/insights.js +0 -0
- package/dist/web/routes/insights.js.map +1 -1
- package/dist/web/routes/knowledge.d.ts +43 -2
- package/dist/web/routes/knowledge.d.ts.map +1 -1
- package/dist/web/routes/knowledge.js +117 -6
- package/dist/web/routes/knowledge.js.map +1 -1
- package/dist/web/routes/pipeline.d.ts +0 -9
- package/dist/web/routes/pipeline.d.ts.map +1 -1
- package/dist/web/routes/pipeline.js +0 -4
- package/dist/web/routes/pipeline.js.map +1 -1
- package/dist/web/routes/rules.d.ts.map +1 -1
- package/dist/web/routes/rules.js +20 -6
- package/dist/web/routes/rules.js.map +1 -1
- package/dist/web/routes/sessions.d.ts.map +1 -1
- package/dist/web/routes/sessions.js +8 -7
- package/dist/web/routes/sessions.js.map +1 -1
- package/dist/web/routes/skill-stats.d.ts.map +1 -1
- package/dist/web/routes/skill-stats.js +153 -16
- package/dist/web/routes/skill-stats.js.map +1 -1
- package/dist/web/routes/skills-distill.js +1 -1
- package/dist/web/routes/skills-distill.js.map +1 -1
- package/dist/web/routes/stats.d.ts.map +1 -1
- package/dist/web/routes/stats.js +2 -1
- package/dist/web/routes/stats.js.map +1 -1
- package/dist/web/routes/task-timeline.d.ts +95 -19
- package/dist/web/routes/task-timeline.d.ts.map +1 -1
- package/dist/web/routes/task-timeline.js +344 -88
- package/dist/web/routes/task-timeline.js.map +1 -1
- package/dist/web/routes/tasks.d.ts.map +1 -1
- package/dist/web/routes/tasks.js +52 -30
- package/dist/web/routes/tasks.js.map +1 -1
- package/dist/web/routes/violations.d.ts +1 -1
- package/dist/web/routes/violations.d.ts.map +1 -1
- package/dist/web/routes/violations.js +3 -2
- package/dist/web/routes/violations.js.map +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +20 -0
- package/dist/web/server.js.map +1 -1
- package/dist/web/services/agent-distill-manager.d.ts +122 -0
- package/dist/web/services/agent-distill-manager.d.ts.map +1 -0
- package/dist/web/services/agent-distill-manager.js +397 -0
- package/dist/web/services/agent-distill-manager.js.map +1 -0
- package/dist/web/services/distill-manager.d.ts +47 -0
- package/dist/web/services/distill-manager.d.ts.map +1 -1
- package/dist/web/services/distill-manager.js +103 -0
- package/dist/web/services/distill-manager.js.map +1 -1
- package/dist/web/static/assets/AgentDetailPage-DlUeA1sX.js +2 -0
- package/dist/web/static/assets/AgentDetailPage-DlUeA1sX.js.map +1 -0
- package/dist/web/static/assets/AgentDistillRunPage-Cybo4bii.js +3 -0
- package/dist/web/static/assets/AgentDistillRunPage-Cybo4bii.js.map +1 -0
- package/dist/web/static/assets/AgentsPage-Qd9FExLG.js +2 -0
- package/dist/web/static/assets/AgentsPage-Qd9FExLG.js.map +1 -0
- package/dist/web/static/assets/DaemonHealthPage-DTSVqtrI.js +2 -0
- package/dist/web/static/assets/DaemonHealthPage-DTSVqtrI.js.map +1 -0
- package/dist/web/static/assets/DecisionDetailPage-b4BA8dhc.js +2 -0
- package/dist/web/static/assets/DecisionDetailPage-b4BA8dhc.js.map +1 -0
- package/dist/web/static/assets/DecisionsPage-a3NRo_T7.js +2 -0
- package/dist/web/static/assets/DecisionsPage-a3NRo_T7.js.map +1 -0
- package/dist/web/static/assets/DiagnosticsPage-DIVdiIQG.js +2 -0
- package/dist/web/static/assets/DiagnosticsPage-DIVdiIQG.js.map +1 -0
- package/dist/web/static/assets/DistillDetailPage-U6a3l2iP.js +4 -0
- package/dist/web/static/assets/DistillDetailPage-U6a3l2iP.js.map +1 -0
- package/dist/web/static/assets/DistillPage-O7BHtRN8.js +2 -0
- package/dist/web/static/assets/DistillPage-O7BHtRN8.js.map +1 -0
- package/dist/web/static/assets/DistillRunPage-D1JuRWWr.js +2 -0
- package/dist/web/static/assets/DistillRunPage-D1JuRWWr.js.map +1 -0
- package/dist/web/static/assets/GlobalScopeHint-Q3wTJx3F.js +2 -0
- package/dist/web/static/assets/GlobalScopeHint-Q3wTJx3F.js.map +1 -0
- package/dist/web/static/assets/IssueDetailPage-BDfrtk2C.js +2 -0
- package/dist/web/static/assets/IssueDetailPage-BDfrtk2C.js.map +1 -0
- package/dist/web/static/assets/IssuesPage-SKmhlCrw.js +2 -0
- package/dist/web/static/assets/IssuesPage-SKmhlCrw.js.map +1 -0
- package/dist/web/static/assets/KbDetailPage-Yna86Na8.js +2 -0
- package/dist/web/static/assets/KbDetailPage-Yna86Na8.js.map +1 -0
- package/dist/web/static/assets/KbHitsPage-Cljl7H9p.js +2 -0
- package/dist/web/static/assets/KbHitsPage-Cljl7H9p.js.map +1 -0
- package/dist/web/static/assets/{MarkdownRenderer-DZmTl-8J.js → MarkdownRenderer-DlDQNihj.js} +2 -2
- package/dist/web/static/assets/{MarkdownRenderer-DZmTl-8J.js.map → MarkdownRenderer-DlDQNihj.js.map} +1 -1
- package/dist/web/static/assets/NotFound-LMzbP51V.js +2 -0
- package/dist/web/static/assets/{NotFound-BQPh0vaF.js.map → NotFound-LMzbP51V.js.map} +1 -1
- package/dist/web/static/assets/SettingsPage-DzoK4PKg.js +2 -0
- package/dist/web/static/assets/SettingsPage-DzoK4PKg.js.map +1 -0
- package/dist/web/static/assets/SkillDetailPage-BuBJJ_NX.js +2 -0
- package/dist/web/static/assets/SkillDetailPage-BuBJJ_NX.js.map +1 -0
- package/dist/web/static/assets/SkillsPage-aojkJpBc.js +2 -0
- package/dist/web/static/assets/SkillsPage-aojkJpBc.js.map +1 -0
- package/dist/web/static/assets/TaskDetailPage-1ckxnGhw.js +4 -0
- package/dist/web/static/assets/TaskDetailPage-1ckxnGhw.js.map +1 -0
- package/dist/web/static/assets/TasksHubPage-C2PLh3eg.js +6 -0
- package/dist/web/static/assets/TasksHubPage-C2PLh3eg.js.map +1 -0
- package/dist/web/static/assets/WorkplacePage-DHrp5VxS.js +2 -0
- package/dist/web/static/assets/WorkplacePage-DHrp5VxS.js.map +1 -0
- package/dist/web/static/assets/arco-DV6xCLhr.js +14 -0
- package/dist/web/static/assets/arco-DV6xCLhr.js.map +1 -0
- package/dist/web/static/assets/charts-BSV4cyC4.js +37 -0
- package/dist/web/static/assets/charts-BSV4cyC4.js.map +1 -0
- package/dist/web/static/assets/{index-7bl3kbcx.css → index-B_v_MKlb.css} +1 -1
- package/dist/web/static/assets/index-DileOOE4.js +4 -0
- package/dist/web/static/assets/index-DileOOE4.js.map +1 -0
- package/dist/web/static/assets/markdown-CA7ePUts.js +30 -0
- package/dist/web/static/assets/markdown-CA7ePUts.js.map +1 -0
- package/dist/web/static/assets/{outcome-DUn1NjlC.js → outcome-BKGy9azt.js} +2 -2
- package/dist/web/static/assets/{outcome-DUn1NjlC.js.map → outcome-BKGy9azt.js.map} +1 -1
- package/dist/web/static/assets/{query-S6X1S7K9.js → query-CgCOpYWf.js} +2 -2
- package/dist/web/static/assets/{query-S6X1S7K9.js.map → query-CgCOpYWf.js.map} +1 -1
- package/dist/web/static/assets/{react-router-JVUrkhdd.js → react-router-Cxmg8RuL.js} +3 -3
- package/dist/web/static/assets/{react-router-JVUrkhdd.js.map → react-router-Cxmg8RuL.js.map} +1 -1
- package/dist/web/static/assets/{syntax-highlighter-BkZfCDsz.js → syntax-highlighter-BDYycNja.js} +3 -3
- package/dist/web/static/assets/{syntax-highlighter-BkZfCDsz.js.map → syntax-highlighter-BDYycNja.js.map} +1 -1
- package/dist/web/static/assets/task-title-BhOcemuR.js +2 -0
- package/dist/web/static/assets/task-title-BhOcemuR.js.map +1 -0
- package/dist/web/static/assets/useAgentStats-B-uTgqBd.js +2 -0
- package/dist/web/static/assets/useAgentStats-B-uTgqBd.js.map +1 -0
- package/dist/web/static/assets/useDecisions-D-G2Ft5T.js +2 -0
- package/dist/web/static/assets/useDecisions-D-G2Ft5T.js.map +1 -0
- package/dist/web/static/assets/useDistill-21dZkXlT.js +3 -0
- package/dist/web/static/assets/useDistill-21dZkXlT.js.map +1 -0
- package/dist/web/static/assets/useEffectiveProject-DQiyX54y.js +2 -0
- package/dist/web/static/assets/useEffectiveProject-DQiyX54y.js.map +1 -0
- package/dist/web/static/assets/useIssuesFeed-CFiyQkAL.js +2 -0
- package/dist/web/static/assets/useIssuesFeed-CFiyQkAL.js.map +1 -0
- package/dist/web/static/assets/useKbHits-xKXWgqh9.js +2 -0
- package/dist/web/static/assets/useKbHits-xKXWgqh9.js.map +1 -0
- package/dist/web/static/assets/useSkillStats-B5hbIwdf.js +2 -0
- package/dist/web/static/assets/useSkillStats-B5hbIwdf.js.map +1 -0
- package/dist/web/static/assets/vendor-DS-q4Eyc.js +36 -0
- package/dist/web/static/assets/vendor-DS-q4Eyc.js.map +1 -0
- package/dist/web/static/index.html +6 -6
- package/package.json +5 -3
- package/dist/core/storage/workflow-recommendations.d.ts +0 -124
- package/dist/core/storage/workflow-recommendations.d.ts.map +0 -1
- package/dist/core/storage/workflow-recommendations.js +0 -274
- package/dist/core/storage/workflow-recommendations.js.map +0 -1
- package/dist/daemon/services/experience-extractor.d.ts.map +0 -1
- package/dist/daemon/services/experience-extractor.js.map +0 -1
- package/dist/daemon/services/violation-reporter.d.ts.map +0 -1
- package/dist/daemon/services/violation-reporter.js.map +0 -1
- package/dist/daemon/templates/agents/harness-hotfix.md +0 -99
- package/dist/daemon/templates/agents/hybrid-feature-with-safety.md +0 -104
- package/dist/daemon/templates/agents/refactor-specialist.md +0 -98
- package/dist/skills/distill/claude-cli-resolver.d.ts.map +0 -1
- package/dist/skills/distill/claude-cli-resolver.js.map +0 -1
- package/dist/skills/distilled/distilled-defi-amm-security.md +0 -293
- package/dist/skills/keyword-score.d.ts +0 -29
- package/dist/skills/keyword-score.d.ts.map +0 -1
- package/dist/skills/keyword-score.js +0 -54
- package/dist/skills/keyword-score.js.map +0 -1
- package/dist/web/static/assets/AgentContentPage-DkeRNxok.js +0 -2
- package/dist/web/static/assets/AgentContentPage-DkeRNxok.js.map +0 -1
- package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js +0 -2
- package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js.map +0 -1
- package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js +0 -3
- package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js.map +0 -1
- package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js +0 -2
- package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js.map +0 -1
- package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js +0 -2
- package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js.map +0 -1
- package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js +0 -2
- package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js.map +0 -1
- package/dist/web/static/assets/DriftTab-DqpepOhI.js +0 -2
- package/dist/web/static/assets/DriftTab-DqpepOhI.js.map +0 -1
- package/dist/web/static/assets/HealthHomePage-CN6zNIie.js +0 -3
- package/dist/web/static/assets/HealthHomePage-CN6zNIie.js.map +0 -1
- package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js +0 -2
- package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js.map +0 -1
- package/dist/web/static/assets/NotFound-BQPh0vaF.js +0 -2
- package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js +0 -2
- package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js.map +0 -1
- package/dist/web/static/assets/SettingsPage-oLJBNzQj.js +0 -2
- package/dist/web/static/assets/SettingsPage-oLJBNzQj.js.map +0 -1
- package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js +0 -2
- package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js.map +0 -1
- package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js +0 -2
- package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js.map +0 -1
- package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js +0 -2
- package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js.map +0 -1
- package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js +0 -6
- package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js.map +0 -1
- package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js +0 -3
- package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js.map +0 -1
- package/dist/web/static/assets/arco-Bhi3a6Qp.js +0 -14
- package/dist/web/static/assets/arco-Bhi3a6Qp.js.map +0 -1
- package/dist/web/static/assets/charts-BuHQWDbQ.js +0 -37
- package/dist/web/static/assets/charts-BuHQWDbQ.js.map +0 -1
- package/dist/web/static/assets/index-BIYnq1Dx.js +0 -4
- package/dist/web/static/assets/index-BIYnq1Dx.js.map +0 -1
- package/dist/web/static/assets/useTabsParam-k8qte_0C.js +0 -2
- package/dist/web/static/assets/useTabsParam-k8qte_0C.js.map +0 -1
- package/dist/web/static/assets/vendor-DWgdB1eY.js +0 -65
- package/dist/web/static/assets/vendor-DWgdB1eY.js.map +0 -1
- /package/dist/{skills/distill → core/utils}/claude-cli-resolver.d.ts +0 -0
package/DEVELOPMENT.md
CHANGED
|
@@ -24,13 +24,17 @@ src/
|
|
|
24
24
|
│ │ ├── base.ts / rows.ts 连接 + 行映射工具
|
|
25
25
|
│ │ ├── maintenance.ts 清理/压缩
|
|
26
26
|
│ │ └── performance-indexes.sql 附加索引
|
|
27
|
-
│ ├── ai/ ClaudeProvider 封装(用于 classifier、distiller、skill-upgrade)
|
|
28
27
|
│ ├── queue/ 通用 SQLite 队列工具
|
|
29
|
-
│ ├──
|
|
28
|
+
│ ├── diagnostics/ 自检 / 健康诊断工具
|
|
29
|
+
│ ├── governance/ 治理协议注入(inject-global 等)
|
|
30
|
+
│ ├── utils/ logger / git / path / time / lru-cache / forge-resume-block /
|
|
31
|
+
│ │ claude-cli-spawn(headless `claude` 子进程)等
|
|
30
32
|
│ ├── config.ts ConfigManager(~/.claude-forge/config.yaml)
|
|
31
33
|
│ ├── constants.ts FORGE_PATHS、各类阈值常量
|
|
32
34
|
│ ├── event-fields.ts hook 事件字段统一抽取
|
|
33
35
|
│ └── types.ts ForgeEvent / HookResult 等核心类型契约
|
|
36
|
+
│ (注:曾经的 core/ai/ ClaudeProvider 目录已整组删除,spec 0902 起所有 LLM
|
|
37
|
+
│ 调用收敛为 `child_process.spawn('claude', ...)` headless 子进程)
|
|
34
38
|
│
|
|
35
39
|
├── daemon/ 后台守护进程
|
|
36
40
|
│ ├── index.ts 入口:socket server + 生命周期 + 同步任务
|
|
@@ -40,15 +44,37 @@ src/
|
|
|
40
44
|
│ ├── event-parser.ts hook 原始 JSON → ForgeEvent
|
|
41
45
|
│ ├── hook-sync.ts 启动时把 dist/hooks/ 同步到 ~/.claude/hooks/
|
|
42
46
|
│ ├── skill-sync.ts 启动时把 dist/skills/distilled/ 同步到 ~/.claude/skills/
|
|
47
|
+
│ ├── agent-sync.ts 启动时把 templates/agents/ 同步到 ~/.claude/agents/
|
|
48
|
+
│ ├── config-store.ts daemon 运行期配置缓存
|
|
43
49
|
│ ├── launchd-installer.ts macOS launchd 安装
|
|
44
50
|
│ ├── launchd/ launchd plist 模板
|
|
45
|
-
│ ├──
|
|
46
|
-
│
|
|
51
|
+
│ ├── templates/agents/ canonical agent .md 源(build → dist,sync → ~/.claude/agents/)
|
|
52
|
+
│ ├── handlers/ (5 个 hook handler)
|
|
53
|
+
│ │ ├── user-prompt.ts UserPromptSubmit:分类 + skill 推荐 + agent 路由 + KB 注入
|
|
54
|
+
│ │ ├── pre-tool-use.ts PreToolUse:规则引擎,按 tool_intercept 规则 deny/warn/allow
|
|
47
55
|
│ │ ├── post-tool-use.ts PostToolUse:观察,按需注入提示
|
|
48
56
|
│ │ ├── stop.ts Stop:写 session 摘要、distill 决策
|
|
49
57
|
│ │ └── history-exporter.ts 导出完整历史到 .claude-forge/history/
|
|
50
|
-
│
|
|
51
|
-
│
|
|
58
|
+
│ ├── rules/ (5 个,PreToolUse 规则引擎)
|
|
59
|
+
│ │ ├── defaults.ts 默认 tool_intercept 规则(edit/write-multi-file-hard 等 deny)
|
|
60
|
+
│ │ ├── registry.ts 规则注册与首个匹配查找
|
|
61
|
+
│ │ ├── workflow-defaults.ts workflow 推荐 / Task spawn 匹配规则
|
|
62
|
+
│ │ ├── whitelist.ts 白名单 / 项目级关闭
|
|
63
|
+
│ │ └── types.ts ToolInterceptRule / RuleContext 类型
|
|
64
|
+
│ └── services/ (约 20 个后台服务)
|
|
65
|
+
│ ├── spec-gate.ts SpecGate:spec/decision 批准短路
|
|
66
|
+
│ ├── spec-approval.ts bare「批准 / approve <token>」批准解析
|
|
67
|
+
│ ├── context-injector.ts 上下文注入
|
|
68
|
+
│ ├── kb-injector.ts 知识库注入
|
|
69
|
+
│ ├── task-segmenter.ts UserPromptSubmit 按时间窗划分任务段
|
|
70
|
+
│ ├── task-boundary-classifier.ts 任务边界分类
|
|
71
|
+
│ ├── violation-reporter.ts 主线程合规违规汇总
|
|
72
|
+
│ ├── decision-hint.ts [DECISION HINT] mint
|
|
73
|
+
│ ├── outcome-classifier.ts / outcome-classification-service.ts / outcome-nudge.ts 决策结果回填
|
|
74
|
+
│ ├── experience-extractor.ts / feedback-aggregator.ts 经验/反馈聚合
|
|
75
|
+
│ ├── intercept-revive.ts / intercept-rollback-guard.ts / intercept-timeout-sweeper.ts 拦截治理
|
|
76
|
+
│ ├── idle-session-sweeper.ts / idle-task-budget.ts / event-ttl-sweep.ts GC / 预算
|
|
77
|
+
│ └── heartbeat-writer.ts 心跳写盘
|
|
52
78
|
│
|
|
53
79
|
├── skills/ Skill 推荐与方法论分发
|
|
54
80
|
│ ├── registry.ts 扫描 ~/.claude/skills/ + src/skills/distilled/,提供 match()(keyword-only since spec 0902 D R-B)
|
|
@@ -62,15 +88,22 @@ src/
|
|
|
62
88
|
├── web/ Web 管理后台
|
|
63
89
|
│ ├── server.ts Express 服务器 + 路由注册
|
|
64
90
|
│ ├── auth-middleware.ts 本地 token 校验
|
|
65
|
-
│ ├──
|
|
66
|
-
│
|
|
91
|
+
│ ├── routes/ 每个 API 模块独立文件(sessions / events / tasks / skills /
|
|
92
|
+
│ │ decisions / knowledge / patch / health / diagnostics / drift /
|
|
93
|
+
│ │ insights / pipeline / reports / rules / trace / violations ...)
|
|
67
94
|
│ ├── analytics/ 趋势/统计计算
|
|
95
|
+
│ ├── services/ 路由共享服务层
|
|
68
96
|
│ └── static/ React 前端构建产物的最终落点(dist/web/static/)
|
|
97
|
+
│ (注:曾经的 ssrf-guard.ts 与 routes/ai.ts 已删除)
|
|
69
98
|
│
|
|
70
99
|
├── cli/
|
|
71
100
|
│ ├── index.ts CLI 入口(commander)
|
|
72
101
|
│ ├── init/ `cf init`:安装 hook 脚本
|
|
73
|
-
│ └── commands/
|
|
102
|
+
│ └── commands/ 27 个子命令:daemon / config / skills / claudemd / status /
|
|
103
|
+
│ logs / stats / menu / trace / mcp / executions / template /
|
|
104
|
+
│ init / decisions / governance / knowledge / spec / doctor /
|
|
105
|
+
│ fix / entropy / agents / bypass / insights / insights-goal-check /
|
|
106
|
+
│ project / admin / violations
|
|
74
107
|
│
|
|
75
108
|
├── claudemd/ CLAUDE.md 生成与维护
|
|
76
109
|
│ ├── tech-detector.ts 项目技术栈识别
|
|
@@ -92,13 +125,22 @@ src/
|
|
|
92
125
|
├── mcp/ MCP server(暴露 skill_invoke / skill_list / pipeline_suggest 给 agent)
|
|
93
126
|
│ └── server.ts
|
|
94
127
|
│
|
|
95
|
-
├── knowledge/
|
|
128
|
+
├── knowledge/ 项目知识库系统(27 src)
|
|
129
|
+
│ ├── builder.ts KB page 构建(分析 src/ → .forge-knowledge/,每 page 一次 claude spawn)
|
|
130
|
+
│ ├── cli-provider.ts CliKnowledgeProvider:经 claude-cli-spawn headless 生成 KB
|
|
96
131
|
│ ├── repo-map.ts 仓库结构快照生成
|
|
97
|
-
│ ├──
|
|
98
|
-
│ ├──
|
|
132
|
+
│ ├── module-hash.ts 模块内容 hash(增量 rebuild 判定)
|
|
133
|
+
│ ├── cross-module.ts 跨模块 page 生成
|
|
134
|
+
│ ├── query.ts 关键词查询接口
|
|
135
|
+
│ ├── audit-applier.ts KB 审计修订应用
|
|
136
|
+
│ ├── project-detector.ts 项目类型探测(选择 adapter)
|
|
99
137
|
│ ├── git-hooks.ts Git hooks 集成(commit 后自动 rebuild)
|
|
100
138
|
│ ├── validator.ts KB 完整性校验
|
|
101
|
-
│
|
|
139
|
+
│ ├── prompt.ts agent prompt 注入工具
|
|
140
|
+
│ ├── constants.ts / types.ts 路径常量 + 类型
|
|
141
|
+
│ ├── adapters/ 多语言项目适配器(typescript / js-vue / python / go /
|
|
142
|
+
│ │ java / kotlin / rust / monorepo)
|
|
143
|
+
│ └── tools/ MCP 工具:knowledge-query / knowledge-get-page / repo-map-lookup
|
|
102
144
|
│
|
|
103
145
|
└── templates/ 新项目初始化模板
|
|
104
146
|
|
|
@@ -149,7 +191,7 @@ npm run dev:daemon:stop
|
|
|
149
191
|
cd web && npm install && npm run dev
|
|
150
192
|
```
|
|
151
193
|
|
|
152
|
-
Daemon / CLI 都用系统 node(项目要求 Node
|
|
194
|
+
Daemon / CLI 都用系统 node(项目要求 Node 24+,实际跑在 24/26 上)。
|
|
153
195
|
|
|
154
196
|
---
|
|
155
197
|
|
|
@@ -193,9 +235,10 @@ Claude Code ──hook payload(JSON via stdin)──► src/hooks/*.sh
|
|
|
193
235
|
│
|
|
194
236
|
▼
|
|
195
237
|
src/daemon/router.ts ──┬──► handlers/user-prompt.ts
|
|
238
|
+
├──► handlers/pre-tool-use.ts (规则引擎 deny/warn/allow)
|
|
196
239
|
├──► handlers/post-tool-use.ts
|
|
197
240
|
├──► handlers/stop.ts
|
|
198
|
-
└──► (
|
|
241
|
+
└──► (Notification: 直接 allow)
|
|
199
242
|
│
|
|
200
243
|
▼
|
|
201
244
|
core/storage/* 持久化 + 返回 HookResult
|
|
@@ -207,7 +250,12 @@ Claude Code ──hook payload(JSON via stdin)──► src/hooks/*.sh
|
|
|
207
250
|
要点:
|
|
208
251
|
- daemon 必须在 100ms 内返回,超时则 Claude Code 视为放行
|
|
209
252
|
- handler 抛错被 router 捕获,不会让 daemon 崩溃
|
|
210
|
-
- `PreToolUse`
|
|
253
|
+
- `PreToolUse` **做规则阻断**:`handlers/pre-tool-use.ts` 跑 `rules/registry.ts`
|
|
254
|
+
规则引擎,命中 `rules/defaults.ts` 的 `tool_intercept` 规则(如
|
|
255
|
+
`edit-multi-file-hard` / `write-multi-file-hard` / `bash-grep-multi-file`)时
|
|
256
|
+
decision=`deny`(allow=false + hookSpecificOutput),warn 规则注入
|
|
257
|
+
additionalContext。每次决策落 `tool_intercepts` 表(事实表,写失败不阻断 tool)。
|
|
258
|
+
显式 bypass 标记(`forge:bypass=<reason>`)转 decision=`bypass` 放行
|
|
211
259
|
- daemon 不主动推消息:任何延后的指令必须等下一次 UserPromptSubmit 注入
|
|
212
260
|
|
|
213
261
|
### Skill 系统
|
|
@@ -333,7 +381,7 @@ hook event ──► writeEvent() ──┐
|
|
|
333
381
|
- Schema 由 `src/core/storage/schema.sql` 初始化
|
|
334
382
|
- 增量改动放 `src/core/storage/migrations/*.sql`(按文件名顺序执行)
|
|
335
383
|
|
|
336
|
-
###
|
|
384
|
+
### 长跑稳定性
|
|
337
385
|
|
|
338
386
|
daemon 通过三个机制保证长时间运行不膨胀:
|
|
339
387
|
|
|
@@ -409,8 +457,8 @@ spawn general-purpose agent with prompt:
|
|
|
409
457
|
### decision-maker catalog 预生成
|
|
410
458
|
|
|
411
459
|
Build 时 `scripts/dump-catalogs.ts` 会生成:
|
|
412
|
-
- `dist/catalogs/agents.json` —
|
|
413
|
-
- `dist/catalogs/skills.json` —
|
|
460
|
+
- `dist/catalogs/agents.json` — 14 agents, ~3KB
|
|
461
|
+
- `dist/catalogs/skills.json` — skills catalog, ~5KB
|
|
414
462
|
|
|
415
463
|
这两个文件由 decision-maker Step 2-3 读取(`cat dist/catalogs/*.json`),
|
|
416
464
|
替代原来的全读 3250 行 markdown,可减少 ~90% catalog token 消耗。
|
|
@@ -419,6 +467,19 @@ Build 时 `scripts/dump-catalogs.ts` 会生成:
|
|
|
419
467
|
|
|
420
468
|
---
|
|
421
469
|
|
|
470
|
+
## task-boundary-classifier agent 使用说明
|
|
471
|
+
|
|
472
|
+
`task-boundary-classifier` agent 定义在 `.claude/agents/task-boundary-classifier.md`
|
|
473
|
+
(canonical 在 `src/daemon/templates/agents/`,agent-sync 启动时镜像到
|
|
474
|
+
`~/.claude/agents/`)。它判断一段连续操作是否构成同一任务边界,供
|
|
475
|
+
`src/daemon/services/task-boundary-classifier.ts` 在任务分段时调用。
|
|
476
|
+
|
|
477
|
+
与其它 agent 一致:程序化调用走 `child_process.spawn('claude', ...)` headless
|
|
478
|
+
子进程(不受 TUI restart 影响);TUI 内手动 `subagent_type='task-boundary-classifier'`
|
|
479
|
+
spawn 首次需 TUI restart(macOS Cmd+R)。
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
422
483
|
## skill-distiller agent 使用说明
|
|
423
484
|
|
|
424
485
|
`skill-distiller` agent 定义在 `.claude/agents/skill-distiller.md`(与
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Claude Forge 是一个在本地运行的守护进程,通过 Claude Code 的 Hook API 拦截 `UserPromptSubmit`、`PreToolUse`、`PostToolUse`、`Stop` 等事件,在其中做意图分类、Agent 路由、Skill 推荐、规则阻断、治理建议。
|
|
6
6
|
|
|
7
|
-
**版本**: 见 `cf --version` · **Node**: >= 18
|
|
7
|
+
**版本**: 见 `cf --version` · **Node**: >= 18(实际跑 24/26)· **License**: MIT
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -77,13 +77,20 @@ open docs/architecture/diagrams/overview.drawio # macOS 用 drawio desktop / we
|
|
|
77
77
|
| 命令 | 说明 |
|
|
78
78
|
|---|---|
|
|
79
79
|
| `cf init` | 初始化 hook 脚本到 `~/.claude/hooks/` |
|
|
80
|
-
| `cf daemon {start,stop,status}` | daemon 生命周期 |
|
|
80
|
+
| `cf daemon {start,stop,status,restart}` | daemon 生命周期 |
|
|
81
|
+
| `cf daemon {install,uninstall}` | 安装/卸载 macOS LaunchAgent(崩溃 auto-restart)|
|
|
82
|
+
| `cf daemon ensure-running` | 心跳过期或 PID 死亡时强制重启 |
|
|
83
|
+
| `cf daemon logs [--tail]` | 查看 daemon 日志 |
|
|
81
84
|
| `cf config {show,path,edit,list,get,set}` | 配置管理 — runtime feature flags (forge_config 表) + YAML view/edit。**`ai.*` / `skill_matching.*` 字段已在 spec [`0902`](docs/design/2026-05-29/0902-ai-config-removal-master-spec.md) 子 spec D R-D 从 schema 中彻底删除**(AI 流程改走 `claude` CLI 子进程,不再读 `ANTHROPIC_API_KEY`);老 `~/.claude-forge/config.yaml` 中的残留 `ai:` / `skill_matching:` 会被静默丢弃,daemon 启动时 warn 一次提示用户清理 |
|
|
82
85
|
| `cf status` | 当前 daemon + Web + 存储概况 |
|
|
83
86
|
| `cf logs [--tail]` | 查看 daemon 日志 |
|
|
84
87
|
| `cf stats` | 近期 intent / 路由统计 |
|
|
85
|
-
| `cf rules` | 查看/编辑治理规则(YAML) |
|
|
86
88
|
| `cf agents` | 列出已注册 agent |
|
|
89
|
+
| `cf decisions {register,update,outcome,...}` | 决策治理:注册 spec / 回填 options / 闭环 outcome(C1 统一批准子系统)|
|
|
90
|
+
| `cf governance inject-global` | 把决策治理协议写入 `~/.claude/CLAUDE.md`(`--remove` 撤销)|
|
|
91
|
+
| `cf spec register` | 注册 spec 文件等待批准(`cf decisions register` 的 thin alias)|
|
|
92
|
+
| `cf doctor` | 环境/配置健康自检 |
|
|
93
|
+
| `cf fix` | 一键修复常见环境/配置问题 |
|
|
87
94
|
| `cf skills list` | 列出所有 skill(内置 + 用户层) |
|
|
88
95
|
| `cf skills invoke <id>` | 调用指定 skill 并打印方法论 |
|
|
89
96
|
| `cf skills sync` | 同步内置 skill 到 `~/.claude/skills/` |
|
|
@@ -92,7 +99,7 @@ open docs/architecture/diagrams/overview.drawio # macOS 用 drawio desktop / we
|
|
|
92
99
|
| `cf executions {list,show}` | 浏览历史执行记录 |
|
|
93
100
|
| `cf mcp` | MCP 配置 |
|
|
94
101
|
| `cf claudemd` | 生成/更新项目 CLAUDE.md(通过 `claude` CLI 子进程 + `claudemd-writer` agent,**不再读 `ANTHROPIC_API_KEY`**) |
|
|
95
|
-
| `cf knowledge {init,build,update,query,list,audit,clean,rollback}` (alias: `cf kb`) | 项目知识库(`.forge-knowledge/`)。`init` / `build` / `update` 通过 `claude` CLI 子进程 + `knowledge-builder` agent,**不再读 `ANTHROPIC_API_KEY
|
|
102
|
+
| `cf knowledge {init,build,update,query,list,audit,clean,rollback,fix}` (alias: `cf kb`) | 项目知识库(`.forge-knowledge/`)。`init` / `build` / `update` / `fix` 通过 `claude` CLI 子进程 + `knowledge-builder` agent,**不再读 `ANTHROPIC_API_KEY`**;`fix` 是一次性维护入口(修补陈旧/缺失 KB page);query / list / audit / clean / rollback 纯本地 |
|
|
96
103
|
| `cf template` | 模板管理 |
|
|
97
104
|
| `cf menu` | 交互式菜单(推荐入口) |
|
|
98
105
|
|
|
@@ -259,9 +266,9 @@ keychain,daemon 自身不持 API key。
|
|
|
259
266
|
|
|
260
267
|
| 模块 | 一句话职责 |
|
|
261
268
|
|---|---|
|
|
262
|
-
| `src/core/` | 共享内核:SQLite
|
|
269
|
+
| `src/core/` | 共享内核:SQLite 存储、配置、类型契约 |
|
|
263
270
|
| `src/daemon/` | 守护进程:Unix socket server + hook 事件分发 + 服务编排 |
|
|
264
|
-
| `src/skills/` | Skill 系统:内置
|
|
271
|
+
| `src/skills/` | Skill 系统:内置 12 个 distilled + 用户层 + AI 辅助升级 |
|
|
265
272
|
| `src/web/` | Express + SSE 后端 + React 仪表盘 |
|
|
266
273
|
| `src/cli/` | claude-forge / cf 命令入口 |
|
|
267
274
|
| `src/hooks/` | bash 脚本,与 daemon 通过 Unix socket 通信 |
|
|
@@ -1,72 +1,67 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"name": "agent-retro-distiller",
|
|
4
|
+
"description": "",
|
|
5
|
+
"source_file": "src/daemon/templates/agents/agent-retro-distiller.md"
|
|
6
|
+
},
|
|
2
7
|
{
|
|
3
8
|
"name": "claudemd-writer",
|
|
4
9
|
"description": "",
|
|
5
|
-
"source_file": "
|
|
10
|
+
"source_file": "src/daemon/templates/agents/claudemd-writer.md"
|
|
6
11
|
},
|
|
7
12
|
{
|
|
8
13
|
"name": "coder",
|
|
9
14
|
"description": "Standard BMAD implementation agent for spec-driven work in well-tested modules. Use when a spec exists at docs/design/**/*-spec.md AND the target module has >=50% test coverage (or is a brand new modu",
|
|
10
|
-
"source_file": "
|
|
15
|
+
"source_file": "src/daemon/templates/agents/coder.md"
|
|
11
16
|
},
|
|
12
17
|
{
|
|
13
18
|
"name": "decision-maker",
|
|
14
19
|
"description": "Lightweight decision agent for prompts the daemon flagged as decision-worthy. NOT a planner (no implementation plan) — produces a 1-page decision document covering Options + Recommendation + Open Ques",
|
|
15
|
-
"source_file": "
|
|
20
|
+
"source_file": "src/daemon/templates/agents/decision-maker.md"
|
|
16
21
|
},
|
|
17
22
|
{
|
|
18
23
|
"name": "doc-reviewer",
|
|
19
24
|
"description": "Read-only code, spec, or document analysis. Returns a structured report. Use when user asks to review/analyze/compare/audit existing code or docs WITHOUT modifying anything. Triggers on \"review this\",",
|
|
20
|
-
"source_file": "
|
|
25
|
+
"source_file": "src/daemon/templates/agents/doc-reviewer.md"
|
|
21
26
|
},
|
|
22
27
|
{
|
|
23
28
|
"name": "harness-debug-full",
|
|
24
29
|
"description": "Unknown or intermittent bug — reproduce, then find root cause, then fix, then verify. Use when symptoms are described but root cause is NOT known, or when behavior is intermittent / random / flaky / \"",
|
|
25
|
-
"source_file": "
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"name": "harness-hotfix",
|
|
29
|
-
"description": "Known-cause bug fixer with safety-net discipline. Use when the root cause of a bug is already identified AND the affected module has <50% test coverage. Triggers on \"修复 X bug\", \"hotfix\", \"urgent fix\",",
|
|
30
|
-
"source_file": ".claude/agents/harness-hotfix.md"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"name": "hybrid-feature-with-safety",
|
|
34
|
-
"description": "New feature that touches legacy low-coverage code. Use when adding new functionality that requires modifying files in modules with <50% test coverage. Triggers on \"新功能 + 改老代码\", \"add X to legacy module",
|
|
35
|
-
"source_file": ".claude/agents/hybrid-feature-with-safety.md"
|
|
30
|
+
"source_file": "src/daemon/templates/agents/harness-debug-full.md"
|
|
36
31
|
},
|
|
37
32
|
{
|
|
38
33
|
"name": "knowledge-builder",
|
|
39
34
|
"description": "",
|
|
40
|
-
"source_file": "
|
|
35
|
+
"source_file": "src/daemon/templates/agents/knowledge-builder.md"
|
|
41
36
|
},
|
|
42
37
|
{
|
|
43
38
|
"name": "patch-applier",
|
|
44
39
|
"description": "",
|
|
45
|
-
"source_file": "
|
|
40
|
+
"source_file": "src/daemon/templates/agents/patch-applier.md"
|
|
46
41
|
},
|
|
47
42
|
{
|
|
48
43
|
"name": "planner",
|
|
49
44
|
"description": "Spec writer for non-trivial work. Research current state, propose 2-3 options, recommend one, write spec to docs/design/, then STOP. Use for BMAD Phase 1. Triggers on \"write a spec\", \"plan this\", \"BMA",
|
|
50
|
-
"source_file": "
|
|
45
|
+
"source_file": "src/daemon/templates/agents/planner.md"
|
|
51
46
|
},
|
|
52
47
|
{
|
|
53
|
-
"name": "
|
|
54
|
-
"description": "
|
|
55
|
-
"source_file": "
|
|
48
|
+
"name": "safety-net-implementer",
|
|
49
|
+
"description": "Safety-net implementation agent for low-coverage (<50%) modules — replaces harness-hotfix / refactor-specialist / hybrid-feature-with-safety. Three modes, one discipline. mode=hotfix for known-cause b",
|
|
50
|
+
"source_file": "src/daemon/templates/agents/safety-net-implementer.md"
|
|
56
51
|
},
|
|
57
52
|
{
|
|
58
53
|
"name": "skill-distiller",
|
|
59
54
|
"description": "",
|
|
60
|
-
"source_file": "
|
|
55
|
+
"source_file": "src/daemon/templates/agents/skill-distiller.md"
|
|
61
56
|
},
|
|
62
57
|
{
|
|
63
58
|
"name": "task-boundary-classifier",
|
|
64
59
|
"description": "",
|
|
65
|
-
"source_file": "
|
|
60
|
+
"source_file": "src/daemon/templates/agents/task-boundary-classifier.md"
|
|
66
61
|
},
|
|
67
62
|
{
|
|
68
63
|
"name": "verify-agent",
|
|
69
64
|
"description": "Live runtime verifier. Runs the actual app/CLI/browser, drives the changed surface, probes edges, returns PASS/FAIL/BLOCKED/SKIP with evidence. Use after implementation and before commit. Triggers on ",
|
|
70
|
-
"source_file": "
|
|
65
|
+
"source_file": "src/daemon/templates/agents/verify-agent.md"
|
|
71
66
|
}
|
|
72
67
|
]
|
|
@@ -10,7 +10,11 @@
|
|
|
10
10
|
"api 设计",
|
|
11
11
|
"restful",
|
|
12
12
|
"openapi",
|
|
13
|
-
"接口设计"
|
|
13
|
+
"接口设计",
|
|
14
|
+
"rest api",
|
|
15
|
+
"web api",
|
|
16
|
+
"http api",
|
|
17
|
+
"endpoint"
|
|
14
18
|
]
|
|
15
19
|
},
|
|
16
20
|
{
|
|
@@ -28,13 +32,51 @@
|
|
|
28
32
|
"技术选型"
|
|
29
33
|
]
|
|
30
34
|
},
|
|
35
|
+
{
|
|
36
|
+
"name": "distilled-brainstorming",
|
|
37
|
+
"description": "Distilled IT-universal skill: brainstorming (score 3.5/5)",
|
|
38
|
+
"source_file": "src/skills/distilled/distilled-brainstorming.md",
|
|
39
|
+
"keywords": [
|
|
40
|
+
"brainstorming"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "distilled-brand-guidelines",
|
|
45
|
+
"description": "Distilled IT-universal skill: brand-guidelines (score 3/5)",
|
|
46
|
+
"source_file": "src/skills/distilled/distilled-brand-guidelines.md",
|
|
47
|
+
"keywords": [
|
|
48
|
+
"brand",
|
|
49
|
+
"guidelines"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "distilled-canvas-design",
|
|
54
|
+
"description": "Distilled IT-universal skill: canvas-design (score 3.5/5)",
|
|
55
|
+
"source_file": "src/skills/distilled/distilled-canvas-design.md",
|
|
56
|
+
"keywords": [
|
|
57
|
+
"canvas",
|
|
58
|
+
"design"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "distilled-claude-api",
|
|
63
|
+
"description": "Distilled IT-universal skill: claude-api (score 4/5)",
|
|
64
|
+
"source_file": "src/skills/distilled/distilled-claude-api.md",
|
|
65
|
+
"keywords": [
|
|
66
|
+
"claude",
|
|
67
|
+
"api"
|
|
68
|
+
]
|
|
69
|
+
},
|
|
31
70
|
{
|
|
32
71
|
"name": "distilled-creator",
|
|
33
72
|
"description": "Distilled IT-universal skill: skill-creator (score 3.5/5)",
|
|
34
73
|
"source_file": "src/skills/distilled/distilled-creator.md",
|
|
35
74
|
"keywords": [
|
|
36
|
-
"
|
|
37
|
-
"skill"
|
|
75
|
+
"skill creation",
|
|
76
|
+
"create skill",
|
|
77
|
+
"创建技能",
|
|
78
|
+
"skill development",
|
|
79
|
+
"distill skill"
|
|
38
80
|
]
|
|
39
81
|
},
|
|
40
82
|
{
|
|
@@ -53,24 +95,60 @@
|
|
|
53
95
|
]
|
|
54
96
|
},
|
|
55
97
|
{
|
|
56
|
-
"name": "distilled-
|
|
57
|
-
"description": "Distilled IT-universal skill:
|
|
58
|
-
"source_file": "src/skills/distilled/distilled-
|
|
98
|
+
"name": "distilled-dispatching-parallel-agents",
|
|
99
|
+
"description": "Distilled IT-universal skill: dispatching-parallel-agents (score 3.5/5)",
|
|
100
|
+
"source_file": "src/skills/distilled/distilled-dispatching-parallel-agents.md",
|
|
101
|
+
"keywords": [
|
|
102
|
+
"dispatching",
|
|
103
|
+
"parallel",
|
|
104
|
+
"agents"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "distilled-doc-coauthoring",
|
|
109
|
+
"description": "Distilled IT-universal skill: doc-coauthoring (score 4.5/5)",
|
|
110
|
+
"source_file": "src/skills/distilled/distilled-doc-coauthoring.md",
|
|
59
111
|
"keywords": [
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
|
|
112
|
+
"doc",
|
|
113
|
+
"coauthoring"
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"name": "distilled-docx",
|
|
118
|
+
"description": "Distilled IT-universal skill: docx (score 3/5)",
|
|
119
|
+
"source_file": "src/skills/distilled/distilled-docx.md",
|
|
120
|
+
"keywords": [
|
|
121
|
+
"docx"
|
|
63
122
|
]
|
|
64
123
|
},
|
|
65
124
|
{
|
|
66
125
|
"name": "distilled-executing-plans",
|
|
67
|
-
"description": "Distilled IT-universal skill: executing-plans (score
|
|
126
|
+
"description": "Distilled IT-universal skill: executing-plans (score 3/5)",
|
|
68
127
|
"source_file": "src/skills/distilled/distilled-executing-plans.md",
|
|
69
128
|
"keywords": [
|
|
70
129
|
"executing",
|
|
71
130
|
"plans"
|
|
72
131
|
]
|
|
73
132
|
},
|
|
133
|
+
{
|
|
134
|
+
"name": "distilled-finishing-a-development-branch",
|
|
135
|
+
"description": "Distilled IT-universal skill: finishing-a-development-branch (score 4/5)",
|
|
136
|
+
"source_file": "src/skills/distilled/distilled-finishing-a-development-branch.md",
|
|
137
|
+
"keywords": [
|
|
138
|
+
"finishing",
|
|
139
|
+
"development",
|
|
140
|
+
"branch"
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"name": "distilled-frontend-design",
|
|
145
|
+
"description": "Distilled IT-universal skill: frontend-design (score 4.5/5)",
|
|
146
|
+
"source_file": "src/skills/distilled/distilled-frontend-design.md",
|
|
147
|
+
"keywords": [
|
|
148
|
+
"frontend",
|
|
149
|
+
"design"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
74
152
|
{
|
|
75
153
|
"name": "distilled-harness-engineering",
|
|
76
154
|
"description": "Distilled IT-universal skill: harness-engineering (score 5/5)",
|
|
@@ -87,7 +165,7 @@
|
|
|
87
165
|
"改造",
|
|
88
166
|
"老代码"
|
|
89
167
|
],
|
|
90
|
-
"spawn_agent": "
|
|
168
|
+
"spawn_agent": "safety-net-implementer"
|
|
91
169
|
},
|
|
92
170
|
{
|
|
93
171
|
"name": "distilled-karpathy-guidelines",
|
|
@@ -131,6 +209,16 @@
|
|
|
131
209
|
"性能"
|
|
132
210
|
]
|
|
133
211
|
},
|
|
212
|
+
{
|
|
213
|
+
"name": "distilled-receiving-code-review",
|
|
214
|
+
"description": "Distilled IT-universal skill: receiving-code-review (score 4/5)",
|
|
215
|
+
"source_file": "src/skills/distilled/distilled-receiving-code-review.md",
|
|
216
|
+
"keywords": [
|
|
217
|
+
"receiving",
|
|
218
|
+
"code",
|
|
219
|
+
"review"
|
|
220
|
+
]
|
|
221
|
+
},
|
|
134
222
|
{
|
|
135
223
|
"name": "distilled-spec-driven-design",
|
|
136
224
|
"description": "Distilled IT-universal skill: spec-driven design + file-based planning (portable, hand-rewritten 2026-05-27)",
|
|
@@ -157,30 +245,45 @@
|
|
|
157
245
|
],
|
|
158
246
|
"spawn_agent": "planner"
|
|
159
247
|
},
|
|
248
|
+
{
|
|
249
|
+
"name": "distilled-subagent-driven-development",
|
|
250
|
+
"description": "Distilled IT-universal skill: subagent-driven-development (score 3.5/5)",
|
|
251
|
+
"source_file": "src/skills/distilled/distilled-subagent-driven-development.md",
|
|
252
|
+
"keywords": [
|
|
253
|
+
"subagent",
|
|
254
|
+
"driven",
|
|
255
|
+
"development"
|
|
256
|
+
]
|
|
257
|
+
},
|
|
160
258
|
{
|
|
161
259
|
"name": "distilled-systematic-debugging",
|
|
162
|
-
"description": "Distilled IT-universal skill: systematic-debugging (score 5/5)",
|
|
260
|
+
"description": "Distilled IT-universal skill: systematic-debugging (score 4.5/5)",
|
|
163
261
|
"source_file": "src/skills/distilled/distilled-systematic-debugging.md",
|
|
164
262
|
"keywords": [
|
|
165
263
|
"systematic",
|
|
166
|
-
"debugging"
|
|
167
|
-
"debug",
|
|
168
|
-
"调试",
|
|
169
|
-
"bug",
|
|
170
|
-
"修复",
|
|
171
|
-
"fix",
|
|
172
|
-
"hotfix",
|
|
173
|
-
"报错",
|
|
174
|
-
"异常",
|
|
175
|
-
"error",
|
|
176
|
-
"不工作",
|
|
177
|
-
"失败",
|
|
178
|
-
"failed",
|
|
179
|
-
"crash",
|
|
180
|
-
"问题"
|
|
264
|
+
"debugging"
|
|
181
265
|
],
|
|
182
266
|
"spawn_agent": "harness-debug-full"
|
|
183
267
|
},
|
|
268
|
+
{
|
|
269
|
+
"name": "distilled-test-driven-development",
|
|
270
|
+
"description": "Distilled IT-universal skill: test-driven-development (score 3.5/5)",
|
|
271
|
+
"source_file": "src/skills/distilled/distilled-test-driven-development.md",
|
|
272
|
+
"keywords": [
|
|
273
|
+
"test",
|
|
274
|
+
"driven",
|
|
275
|
+
"development"
|
|
276
|
+
]
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"name": "distilled-using-superpowers",
|
|
280
|
+
"description": "Distilled IT-universal skill: using-superpowers (score 4.5/5)",
|
|
281
|
+
"source_file": "src/skills/distilled/distilled-using-superpowers.md",
|
|
282
|
+
"keywords": [
|
|
283
|
+
"using",
|
|
284
|
+
"superpowers"
|
|
285
|
+
]
|
|
286
|
+
},
|
|
184
287
|
{
|
|
185
288
|
"name": "distilled-verification-before-completion",
|
|
186
289
|
"description": "Distilled IT-universal skill: verification-before-completion (score 5/5)",
|
|
@@ -190,5 +293,14 @@
|
|
|
190
293
|
"before",
|
|
191
294
|
"completion"
|
|
192
295
|
]
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"name": "distilled-writing-skills",
|
|
299
|
+
"description": "Distilled IT-universal skill: writing-skills (score 4/5)",
|
|
300
|
+
"source_file": "src/skills/distilled/distilled-writing-skills.md",
|
|
301
|
+
"keywords": [
|
|
302
|
+
"writing",
|
|
303
|
+
"skills"
|
|
304
|
+
]
|
|
193
305
|
}
|
|
194
306
|
]
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
2. **搜索 / 查代码**:任何 grep / find / git diff / 跨文件查找(单文件已知路径的 Read 除外)
|
|
36
36
|
→ spawn `Explore` 或 `doc-reviewer`;主线程不自己查。
|
|
37
37
|
3. **实施**:用户批准后,实质改动(Edit/Write / 多文件 / 新功能 / 重构 / bugfix)
|
|
38
|
-
→ spawn `coder` / `refactor
|
|
38
|
+
→ spawn `coder` / `safety-net-implementer`(mode=hotfix|refactor|hybrid-feature)等;主线程不自己动手。
|
|
39
39
|
4. **验证**:实施后 spawn `verify-agent` 验证。
|
|
40
40
|
|
|
41
41
|
**并行优先(要效率)**:工作可拆分 / 相互独立时,在一条消息里 batch spawn 多个 agent
|