@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
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: distilled-finishing-a-development-branch
|
|
3
|
+
version: 0.2.0-distilled
|
|
4
|
+
description: 'Distilled IT-universal skill: finishing-a-development-branch (score 4/5)'
|
|
5
|
+
keywords:
|
|
6
|
+
- finishing
|
|
7
|
+
- development
|
|
8
|
+
- branch
|
|
9
|
+
rubric_version: 2
|
|
10
|
+
distilled_from:
|
|
11
|
+
- upstream: https://github.com/obra/superpowers.git
|
|
12
|
+
license: MIT
|
|
13
|
+
commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
|
|
14
|
+
paths:
|
|
15
|
+
- finishing-a-development-branch/SKILL.md
|
|
16
|
+
distilled_at: '2026-06-15T00:51:18.934Z'
|
|
17
|
+
distilled_by: claude-code skill-distiller agent
|
|
18
|
+
it_universal_score: 4
|
|
19
|
+
it_universal_dims:
|
|
20
|
+
d1: 1
|
|
21
|
+
d2: 0.5
|
|
22
|
+
d3: 0.5
|
|
23
|
+
d4: 1
|
|
24
|
+
d5: 1
|
|
25
|
+
it_universal_rationale: >-
|
|
26
|
+
Language-neutral git workflow with environment-detection and structured options; only minor
|
|
27
|
+
worktree-path conventions need adapting per harness.
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
# Finishing a Development Branch
|
|
31
|
+
|
|
32
|
+
## When to use
|
|
33
|
+
- Implementation is complete and you need to integrate or dispose of the work
|
|
34
|
+
- You are on a feature/fix branch and all tests pass
|
|
35
|
+
- You need to choose between merge, PR, keep, or discard in a structured way
|
|
36
|
+
- Working with git worktrees and must avoid phantom-state cleanup mistakes
|
|
37
|
+
|
|
38
|
+
## Core idea
|
|
39
|
+
|
|
40
|
+
Before presenting any option to the user, always verify tests pass—broken code must not be merged or pushed. Next, detect the git workspace state (normal repo vs. named-branch worktree vs. detached HEAD) because this controls which options are valid and how cleanup works. Present exactly 4 options (or 3 for detached HEAD) so the conversation stays concrete. Execute in safe order: merge first, remove worktree second, delete branch last. Apply worktree cleanup only for merge/discard paths and only for worktrees your tooling created (provenance check), never for harness-owned workspaces.
|
|
41
|
+
|
|
42
|
+
## Steps
|
|
43
|
+
|
|
44
|
+
### 1 — Verify tests
|
|
45
|
+
|
|
46
|
+
Run the project's test suite before anything else:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Pick the right command for your stack:
|
|
50
|
+
npm test # Node/JS
|
|
51
|
+
cargo test # Rust
|
|
52
|
+
pytest # Python
|
|
53
|
+
go test ./... # Go
|
|
54
|
+
# etc.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
If tests fail, stop. Show the failures and do not proceed to menu.
|
|
58
|
+
|
|
59
|
+
### 2 — Detect workspace state
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P)
|
|
63
|
+
GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
| State | Menu | Worktree cleanup? |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| `GIT_DIR == GIT_COMMON` (normal repo) | 4 options | No worktree exists |
|
|
69
|
+
| `GIT_DIR != GIT_COMMON`, named branch | 4 options | Provenance-based (Step 6) |
|
|
70
|
+
| `GIT_DIR != GIT_COMMON`, detached HEAD | 3 options | No (externally managed) |
|
|
71
|
+
|
|
72
|
+
### 3 — Determine base branch
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
If ambiguous, ask: "This branch split from `main` — is that correct?"
|
|
79
|
+
|
|
80
|
+
### 4 — Present options
|
|
81
|
+
|
|
82
|
+
**Normal repo / named-branch worktree → exactly 4 options:**
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
Implementation complete. What would you like to do?
|
|
86
|
+
|
|
87
|
+
1. Merge back to <base-branch> locally
|
|
88
|
+
2. Push and create a Pull Request
|
|
89
|
+
3. Keep the branch as-is (I'll handle it later)
|
|
90
|
+
4. Discard this work
|
|
91
|
+
|
|
92
|
+
Which option?
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Detached HEAD → exactly 3 options:**
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
Implementation complete. You're on a detached HEAD (externally managed workspace).
|
|
99
|
+
|
|
100
|
+
1. Push as new branch and create a Pull Request
|
|
101
|
+
2. Keep as-is (I'll handle it later)
|
|
102
|
+
3. Discard this work
|
|
103
|
+
|
|
104
|
+
Which option?
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Keep the menu concise — no extra explanation inline.
|
|
108
|
+
|
|
109
|
+
### 5 — Execute the chosen option
|
|
110
|
+
|
|
111
|
+
#### Option 1 — Merge locally
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel)
|
|
115
|
+
cd "$MAIN_ROOT"
|
|
116
|
+
git checkout <base-branch>
|
|
117
|
+
git pull
|
|
118
|
+
git merge <feature-branch>
|
|
119
|
+
# Re-run tests on merged result; stop if they fail
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
After tests pass on merged result → run Step 6 cleanup, then:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
git branch -d <feature-branch>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
#### Option 2 — Push and create PR
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
git push -u origin <feature-branch>
|
|
132
|
+
gh pr create --title "<title>" --body "$(cat <<'EOF'
|
|
133
|
+
## Summary
|
|
134
|
+
- <bullet 1>
|
|
135
|
+
- <bullet 2>
|
|
136
|
+
|
|
137
|
+
## Test Plan
|
|
138
|
+
- [ ] <verification step>
|
|
139
|
+
EOF
|
|
140
|
+
)"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Do NOT clean up the worktree** — user needs it for PR iteration.
|
|
144
|
+
|
|
145
|
+
#### Option 3 — Keep as-is
|
|
146
|
+
|
|
147
|
+
Report: "Keeping branch `<name>`. Worktree preserved at `<path>`."
|
|
148
|
+
Do nothing else.
|
|
149
|
+
|
|
150
|
+
#### Option 4 — Discard
|
|
151
|
+
|
|
152
|
+
First confirm with the user:
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
This will permanently delete:
|
|
156
|
+
- Branch <name>
|
|
157
|
+
- All commits: <list>
|
|
158
|
+
- Worktree at <path> (if applicable)
|
|
159
|
+
|
|
160
|
+
Type 'discard' to confirm.
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Wait for the exact word `discard`. Then:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel)
|
|
167
|
+
cd "$MAIN_ROOT"
|
|
168
|
+
# Run Step 6 cleanup first, then:
|
|
169
|
+
git branch -D <feature-branch>
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### 6 — Worktree cleanup (Options 1 and 4 only)
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P)
|
|
176
|
+
GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P)
|
|
177
|
+
WORKTREE_PATH=$(git rev-parse --show-toplevel)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
- **`GIT_DIR == GIT_COMMON`**: Normal repo, no worktree. Done.
|
|
181
|
+
- **Worktree path is under your tooling's managed directories** (e.g. `.worktrees/`, `worktrees/`, or your harness's configured path): you own cleanup.
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel)
|
|
185
|
+
cd "$MAIN_ROOT"
|
|
186
|
+
git worktree remove "$WORKTREE_PATH"
|
|
187
|
+
git worktree prune # self-healing: remove stale registrations
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
- **Otherwise**: The host harness owns this workspace. Do **not** remove it. Use the harness's workspace-exit mechanism if available; otherwise leave it in place.
|
|
191
|
+
|
|
192
|
+
## Quick-reference matrix
|
|
193
|
+
|
|
194
|
+
| Option | Merge | Push | Keep worktree | Delete branch |
|
|
195
|
+
|---|---|---|---|---|
|
|
196
|
+
| 1 Merge locally | ✓ | — | no | yes (soft) |
|
|
197
|
+
| 2 Create PR | — | ✓ | **yes** | — |
|
|
198
|
+
| 3 Keep as-is | — | — | **yes** | — |
|
|
199
|
+
| 4 Discard | — | — | no | yes (force) |
|
|
200
|
+
|
|
201
|
+
## Anti-patterns
|
|
202
|
+
|
|
203
|
+
- **Skipping test verification** — never offer the menu before tests pass
|
|
204
|
+
- **Open-ended "what next?"** — always present the numbered menu, not a free-form question
|
|
205
|
+
- **Cleaning up worktree for PR path** — user needs it alive for review feedback
|
|
206
|
+
- **Deleting branch before removing worktree** — `git branch -d` will fail; remove worktree first
|
|
207
|
+
- **Running `git worktree remove` from inside the worktree** — always `cd` to main repo root first
|
|
208
|
+
- **Removing harness-owned worktrees** — provenance check required; only remove what your tooling created
|
|
209
|
+
- **Merging without re-running tests** — always verify tests on the merged result, not just the feature branch
|
|
210
|
+
- **Skipping discard confirmation** — require the typed word `discard`; do not proceed on "yes"
|
|
211
|
+
|
|
212
|
+
## References
|
|
213
|
+
- Upstream: https://github.com/obra/superpowers.git
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: distilled-frontend-design
|
|
3
|
+
version: 0.2.0-distilled
|
|
4
|
+
description: 'Distilled IT-universal skill: frontend-design (score 4.5/5)'
|
|
5
|
+
keywords:
|
|
6
|
+
- frontend
|
|
7
|
+
- design
|
|
8
|
+
rubric_version: 2
|
|
9
|
+
distilled_from:
|
|
10
|
+
- upstream: https://github.com/anthropics/skills.git
|
|
11
|
+
license: Apache-2.0
|
|
12
|
+
commit: 690f15cac7f7b4c055c5ab109c79ed9259934081
|
|
13
|
+
paths:
|
|
14
|
+
- frontend-design/SKILL.md
|
|
15
|
+
distilled_at: '2026-06-15T01:09:37.059Z'
|
|
16
|
+
distilled_by: claude-code skill-distiller agent
|
|
17
|
+
it_universal_score: 4.5
|
|
18
|
+
it_universal_dims:
|
|
19
|
+
d1: 0.5
|
|
20
|
+
d2: 1
|
|
21
|
+
d3: 1
|
|
22
|
+
d4: 1
|
|
23
|
+
d5: 1
|
|
24
|
+
it_universal_rationale: >-
|
|
25
|
+
Pure design-methodology skill covering HTML/CSS/JS/React/Vue with no repo-specific paths, no
|
|
26
|
+
IDE/CI lock-in, and transferable aesthetic doctrine applicable to any web UI project.
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Production-Grade Frontend Design (Avoiding Generic AI Aesthetics)
|
|
30
|
+
|
|
31
|
+
## When to use
|
|
32
|
+
- Building any web UI: components, pages, dashboards, landing pages, posters, or full apps
|
|
33
|
+
- Styling or beautifying an existing interface
|
|
34
|
+
- Generating HTML/CSS/JS, React, Vue, or other frontend artifacts
|
|
35
|
+
- When the goal is a memorable, polished result rather than "functional but forgettable"
|
|
36
|
+
|
|
37
|
+
## Core idea
|
|
38
|
+
Before writing a single line of code, commit to a **bold, intentional aesthetic direction** and execute it with precision. The biggest failure mode in AI-generated UI is converging on the same generic choices (purple gradients, Inter font, evenly-distributed pastels, predictable card layouts). Instead, pick an extreme — brutally minimal, maximalist chaos, retro-futuristic, editorial, industrial — and pursue it without hedging. Production-quality comes from cohesion and intentionality, not complexity. A restrained minimal design is as valid as an elaborate maximalist one, provided every detail serves the chosen direction. The one rule: no two designs should look the same.
|
|
39
|
+
|
|
40
|
+
## Steps
|
|
41
|
+
|
|
42
|
+
### 1. Design Thinking (before coding)
|
|
43
|
+
Answer four questions explicitly:
|
|
44
|
+
- **Purpose**: What problem does this UI solve? Who are the users?
|
|
45
|
+
- **Tone**: Choose a specific aesthetic extreme (see palette below). Name it; commit to it.
|
|
46
|
+
- **Constraints**: Framework requirements, performance targets, accessibility needs.
|
|
47
|
+
- **Differentiator**: What is the single most memorable thing about this design?
|
|
48
|
+
|
|
49
|
+
**Aesthetic palette to choose from (non-exhaustive):**
|
|
50
|
+
Brutally minimal · Maximalist chaos · Retro-futuristic · Organic/natural · Luxury/refined · Playful/toy-like · Editorial/magazine · Brutalist/raw · Art deco/geometric · Soft/pastel · Industrial/utilitarian · Vaporwave · Swiss grid · Dark gothic · Cottagecore · Bauhaus
|
|
51
|
+
|
|
52
|
+
### 2. Typography
|
|
53
|
+
- Select **two** fonts: a distinctive display font + a refined body font. Pair them with contrast (serif + grotesque, slab + geometric sans, etc.).
|
|
54
|
+
- Avoid: Arial, Roboto, Inter, system-ui, and any font that reads as "AI default".
|
|
55
|
+
- Use large, expressive type scales — big headings create hierarchy without extra elements.
|
|
56
|
+
- Letter-spacing, line-height, and font-weight are as important as font choice.
|
|
57
|
+
|
|
58
|
+
### 3. Color & Theme
|
|
59
|
+
- Define a **dominant color** + one or two **sharp accent** colors via CSS custom properties (`--color-*`).
|
|
60
|
+
- Avoid timid, evenly-distributed palettes. High contrast between dominant and accent creates energy.
|
|
61
|
+
- Alternate between dark-background and light-background themes across generations — never default to white.
|
|
62
|
+
- All color decisions should flow from `var(--*)` tokens for easy theming.
|
|
63
|
+
|
|
64
|
+
```css
|
|
65
|
+
:root {
|
|
66
|
+
--bg: #0c0c0c;
|
|
67
|
+
--surface: #1a1a1a;
|
|
68
|
+
--accent: #e8ff5a; /* sharp, single accent */
|
|
69
|
+
--text: #f0ede8;
|
|
70
|
+
--text-muted: #888;
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 4. Motion & Animation
|
|
75
|
+
- Prefer **CSS-only** animations for HTML artifacts; use Motion/Framer Motion for React when available.
|
|
76
|
+
- Focus effort on **one well-orchestrated moment**: a staggered page load with `animation-delay` creates more delight than many scattered micro-interactions.
|
|
77
|
+
- Use scroll-triggered reveals and hover states that **surprise** the user.
|
|
78
|
+
- Animations should reinforce the aesthetic (brutalist: snappy/hard cuts; luxury: slow eases; playful: bouncy springs).
|
|
79
|
+
|
|
80
|
+
```css
|
|
81
|
+
/* Staggered reveal pattern */
|
|
82
|
+
.item { opacity: 0; transform: translateY(20px); animation: reveal 0.5s ease forwards; }
|
|
83
|
+
.item:nth-child(1) { animation-delay: 0.1s; }
|
|
84
|
+
.item:nth-child(2) { animation-delay: 0.2s; }
|
|
85
|
+
/* ... */
|
|
86
|
+
@keyframes reveal { to { opacity: 1; transform: none; } }
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 5. Spatial Composition
|
|
90
|
+
- Break grid monotony: use asymmetry, overlapping elements, diagonal flow, or grid-breaking accents.
|
|
91
|
+
- Alternate between generous negative space (minimalist) and controlled density (maximalist).
|
|
92
|
+
- Avoid equal-weight columns and predictable card grids unless the aesthetic calls for strict structure.
|
|
93
|
+
|
|
94
|
+
### 6. Backgrounds & Visual Atmosphere
|
|
95
|
+
Go beyond solid colors. Choose contextually:
|
|
96
|
+
- **Gradient meshes** (radial-gradient composited at multiple positions)
|
|
97
|
+
- **Noise/grain textures** (SVG `feTurbulence` or CSS `backdrop-filter`)
|
|
98
|
+
- **Geometric patterns** (repeating SVG or CSS `background-image: repeating-linear-gradient(...)`)
|
|
99
|
+
- **Layered transparencies** with `rgba` + `backdrop-filter: blur()`
|
|
100
|
+
- **Dramatic shadows** as design elements, not just depth cues
|
|
101
|
+
- **Decorative borders / ruled lines** for editorial aesthetics
|
|
102
|
+
|
|
103
|
+
### 7. Implementation discipline
|
|
104
|
+
- Match code complexity to aesthetic vision. Maximalist → elaborate animations and effects. Minimalist → restraint, precise spacing, subtle details.
|
|
105
|
+
- Ship working code, not wireframes. All interactive states (hover, focus, active, disabled) must be designed.
|
|
106
|
+
- Use semantic HTML; keep accessibility a baseline, not an afterthought (`aria-*`, focus rings, contrast ratios).
|
|
107
|
+
|
|
108
|
+
## Anti-patterns
|
|
109
|
+
- ❌ Inter / Roboto / Arial / system-ui as the "default" font
|
|
110
|
+
- ❌ Purple-gradient-on-white-background as the "default" color scheme
|
|
111
|
+
- ❌ Predictable card-grid layouts with equal gutters everywhere
|
|
112
|
+
- ❌ Timid, evenly-distributed pastel palettes
|
|
113
|
+
- ❌ Space Grotesk or similar "popular AI pick" fonts repeated across designs
|
|
114
|
+
- ❌ Animations on every element rather than one orchestrated focal moment
|
|
115
|
+
- ❌ Generating the same aesthetic twice — vary theme (light/dark), font pairing, and spatial logic each time
|
|
116
|
+
|
|
117
|
+
## References
|
|
118
|
+
- Upstream: https://github.com/anthropics/skills.git
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: distilled-receiving-code-review
|
|
3
|
+
version: 0.2.0-distilled
|
|
4
|
+
description: 'Distilled IT-universal skill: receiving-code-review (score 4/5)'
|
|
5
|
+
keywords:
|
|
6
|
+
- receiving
|
|
7
|
+
- code
|
|
8
|
+
- review
|
|
9
|
+
rubric_version: 2
|
|
10
|
+
distilled_from:
|
|
11
|
+
- upstream: https://github.com/obra/superpowers.git
|
|
12
|
+
license: MIT
|
|
13
|
+
commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
|
|
14
|
+
paths:
|
|
15
|
+
- receiving-code-review/SKILL.md
|
|
16
|
+
- upstream: https://github.com/obra/superpowers.git
|
|
17
|
+
license: MIT
|
|
18
|
+
commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
|
|
19
|
+
paths:
|
|
20
|
+
- requesting-code-review/SKILL.md
|
|
21
|
+
- upstream: https://github.com/affaan-m/ECC.git
|
|
22
|
+
license: MIT
|
|
23
|
+
commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
|
|
24
|
+
paths:
|
|
25
|
+
- flutter-dart-code-review/SKILL.md
|
|
26
|
+
- upstream: https://github.com/affaan-m/ECC.git
|
|
27
|
+
license: MIT
|
|
28
|
+
commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
|
|
29
|
+
paths:
|
|
30
|
+
- scientific-thinking-literature-review/SKILL.md
|
|
31
|
+
- upstream: https://github.com/affaan-m/ECC.git
|
|
32
|
+
license: MIT
|
|
33
|
+
commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
|
|
34
|
+
paths:
|
|
35
|
+
- flutter-dart-code-review/SKILL.md
|
|
36
|
+
- upstream: https://github.com/affaan-m/ECC.git
|
|
37
|
+
license: MIT
|
|
38
|
+
commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
|
|
39
|
+
paths:
|
|
40
|
+
- flutter-dart-code-review/SKILL.md
|
|
41
|
+
- upstream: https://github.com/affaan-m/ECC.git
|
|
42
|
+
license: MIT
|
|
43
|
+
commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
|
|
44
|
+
paths:
|
|
45
|
+
- prediction-market-risk-review/SKILL.md
|
|
46
|
+
- upstream: https://github.com/affaan-m/ECC.git
|
|
47
|
+
license: MIT
|
|
48
|
+
commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
|
|
49
|
+
paths:
|
|
50
|
+
- scientific-thinking-literature-review/SKILL.md
|
|
51
|
+
distilled_at: '2026-06-15T00:52:05.047Z'
|
|
52
|
+
distilled_by: claude-code skill-distiller agent
|
|
53
|
+
it_universal_score: 4
|
|
54
|
+
it_universal_dims:
|
|
55
|
+
d1: 1
|
|
56
|
+
d2: 0.5
|
|
57
|
+
d3: 1
|
|
58
|
+
d4: 0.5
|
|
59
|
+
d5: 1
|
|
60
|
+
it_universal_rationale: >-
|
|
61
|
+
Language-neutral code-review reception methodology (verify → evaluate → implement) applicable to
|
|
62
|
+
any codebase and review workflow; project-specific terms removed.
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
# Receiving Code Review: Verify Before You Implement
|
|
66
|
+
|
|
67
|
+
## When to use
|
|
68
|
+
- When receiving code review feedback (from teammates, CI bots, or external reviewers)
|
|
69
|
+
- Before implementing any review suggestion, especially if it seems unclear or technically questionable
|
|
70
|
+
- When you feel the urge to say "You're absolutely right!" and immediately start coding
|
|
71
|
+
- When feedback items are partially unclear and you're tempted to implement what you understand now
|
|
72
|
+
|
|
73
|
+
## Core idea
|
|
74
|
+
|
|
75
|
+
Code review reception is a **technical evaluation exercise**, not a social performance. The only correct response to feedback is to verify it against codebase reality before acting. Performative agreement ("Great point!", "You're absolutely right!") is a red flag that you are about to implement something without understanding it. Clarity on all items must precede implementation of any item — partial understanding produces wrong implementations. External reviewers often lack full context; skepticism paired with careful checking is the right posture.
|
|
76
|
+
|
|
77
|
+
## Steps
|
|
78
|
+
|
|
79
|
+
### 1. Full read first
|
|
80
|
+
Read all feedback completely before reacting or touching any code.
|
|
81
|
+
|
|
82
|
+
### 2. Clarify before acting
|
|
83
|
+
```
|
|
84
|
+
IF any item is unclear:
|
|
85
|
+
STOP — do not implement anything yet
|
|
86
|
+
ASK for clarification on ALL unclear items
|
|
87
|
+
|
|
88
|
+
Rationale: Items may be interdependent. Partial understanding → wrong implementation.
|
|
89
|
+
|
|
90
|
+
Example:
|
|
91
|
+
Feedback: "Fix items 1–6"
|
|
92
|
+
You understand 1,2,3,6. Unclear on 4,5.
|
|
93
|
+
✅ "I understand 1,2,3,6. Need clarification on 4 and 5 before proceeding."
|
|
94
|
+
❌ Implement 1,2,3,6 now and ask about 4,5 later
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 3. Evaluate by feedback source
|
|
98
|
+
|
|
99
|
+
**From project lead / code owner (trusted)**
|
|
100
|
+
- Implement after understanding, no sycophancy
|
|
101
|
+
- Still ask if scope is unclear
|
|
102
|
+
- Skip to action or a brief technical acknowledgment
|
|
103
|
+
|
|
104
|
+
**From external reviewers (skeptical)**
|
|
105
|
+
```
|
|
106
|
+
BEFORE implementing, check:
|
|
107
|
+
1. Is this technically correct for THIS codebase?
|
|
108
|
+
2. Does it break existing functionality?
|
|
109
|
+
3. Is there a reason the current impl exists (legacy, compat)?
|
|
110
|
+
4. Does it work across all required platforms/versions?
|
|
111
|
+
5. Does the reviewer have full context?
|
|
112
|
+
|
|
113
|
+
IF suggestion seems wrong → push back with technical reasoning
|
|
114
|
+
IF you can't easily verify → say so: "I can't verify this without [X]. Should I [investigate/ask/proceed]?"
|
|
115
|
+
IF it conflicts with a prior architectural decision → discuss with project lead first
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 4. YAGNI check for "proper" feature suggestions
|
|
119
|
+
```
|
|
120
|
+
IF reviewer suggests implementing a feature "properly":
|
|
121
|
+
Search codebase for actual usage
|
|
122
|
+
|
|
123
|
+
IF unused: "This endpoint/function isn't called anywhere. Remove it (YAGNI)?"
|
|
124
|
+
IF used: Then implement properly
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### 5. Implement in priority order
|
|
128
|
+
```
|
|
129
|
+
1. Blocking issues (breaks, security)
|
|
130
|
+
2. Simple fixes (typos, wrong imports)
|
|
131
|
+
3. Complex fixes (refactoring, logic changes)
|
|
132
|
+
|
|
133
|
+
Test each fix individually. Verify no regressions before moving to next.
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 6. Acknowledge correctly
|
|
137
|
+
```
|
|
138
|
+
✅ "Fixed. [One-sentence description of what changed]"
|
|
139
|
+
✅ "Good catch — [specific issue]. Fixed in [location]."
|
|
140
|
+
✅ [Just fix it and show the diff]
|
|
141
|
+
|
|
142
|
+
❌ "You're absolutely right!"
|
|
143
|
+
❌ "Great point!"
|
|
144
|
+
❌ "Thanks for catching that!" / any gratitude expression
|
|
145
|
+
```
|
|
146
|
+
Actions speak. The code itself shows you heard the feedback.
|
|
147
|
+
|
|
148
|
+
### 7. Gracefully correct a wrong pushback
|
|
149
|
+
```
|
|
150
|
+
If you pushed back and were wrong:
|
|
151
|
+
✅ "Checked [X] — you're right, it does [Y]. Implementing now."
|
|
152
|
+
✅ "Verified this; my initial read was wrong because [reason]. Fixing."
|
|
153
|
+
|
|
154
|
+
❌ Long apology
|
|
155
|
+
❌ Defending the pushback
|
|
156
|
+
❌ Over-explaining
|
|
157
|
+
```
|
|
158
|
+
State the correction factually and move on.
|
|
159
|
+
|
|
160
|
+
## When to push back
|
|
161
|
+
|
|
162
|
+
Push back when:
|
|
163
|
+
- The suggestion breaks existing functionality or tests
|
|
164
|
+
- The reviewer lacks full codebase context
|
|
165
|
+
- YAGNI: the feature/endpoint is not actually used
|
|
166
|
+
- It is technically incorrect for this stack/version
|
|
167
|
+
- Legacy or compatibility constraints exist that the reviewer missed
|
|
168
|
+
- It conflicts with a prior architectural decision by the project lead
|
|
169
|
+
|
|
170
|
+
**How to push back:** Use technical reasoning, not defensiveness. Ask specific questions. Reference working tests or existing code. Escalate to project lead if architectural.
|
|
171
|
+
|
|
172
|
+
## Anti-patterns
|
|
173
|
+
|
|
174
|
+
| Anti-pattern | Correct alternative |
|
|
175
|
+
|---|---|
|
|
176
|
+
| Performative agreement ("Absolutely right!") | State the requirement or just act |
|
|
177
|
+
| Blind implementation without verification | Grep/read codebase first |
|
|
178
|
+
| Batching all fixes without testing each | One fix → test → next |
|
|
179
|
+
| Assuming reviewer is always right | Check whether it breaks things |
|
|
180
|
+
| Avoiding pushback to stay comfortable | Technical correctness > social comfort |
|
|
181
|
+
| Implementing understood items while skipping unclear ones | Clarify ALL items first |
|
|
182
|
+
| Can't verify → proceed anyway | State the limitation, ask for direction |
|
|
183
|
+
|
|
184
|
+
## References
|
|
185
|
+
- Upstream: https://github.com/obra/superpowers.git
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: distilled-subagent-driven-development
|
|
3
|
+
version: 0.2.0-distilled
|
|
4
|
+
description: 'Distilled IT-universal skill: subagent-driven-development (score 3.5/5)'
|
|
5
|
+
keywords:
|
|
6
|
+
- subagent
|
|
7
|
+
- driven
|
|
8
|
+
- development
|
|
9
|
+
rubric_version: 2
|
|
10
|
+
distilled_from:
|
|
11
|
+
- upstream: https://github.com/obra/superpowers.git
|
|
12
|
+
license: MIT
|
|
13
|
+
commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
|
|
14
|
+
paths:
|
|
15
|
+
- subagent-driven-development/SKILL.md
|
|
16
|
+
distilled_at: '2026-06-15T00:53:29.788Z'
|
|
17
|
+
distilled_by: claude-code skill-distiller agent
|
|
18
|
+
it_universal_score: 3.5
|
|
19
|
+
it_universal_dims:
|
|
20
|
+
d1: 1
|
|
21
|
+
d2: 0.5
|
|
22
|
+
d3: 0.5
|
|
23
|
+
d4: 0.5
|
|
24
|
+
d5: 1
|
|
25
|
+
it_universal_rationale: >-
|
|
26
|
+
Language-neutral orchestration methodology with transferable status taxonomy, model-selection
|
|
27
|
+
heuristics, and two-stage review pattern; only minor framework-specific template filenames require
|
|
28
|
+
renaming in a new codebase.
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# Subagent-Driven Development
|
|
32
|
+
|
|
33
|
+
## When to use
|
|
34
|
+
- You have a concrete implementation plan with multiple, mostly-independent tasks
|
|
35
|
+
- You want continuous execution without human check-ins between each task
|
|
36
|
+
- You need systematic quality gates (spec compliance + code quality) that self-loop until passing
|
|
37
|
+
- You want each implementer to have clean, unpolluted context rather than inheriting the coordinator's history
|
|
38
|
+
|
|
39
|
+
## Core idea
|
|
40
|
+
|
|
41
|
+
Dispatch a **fresh subagent** for each task in your plan, giving it exactly the context it needs — no more, no less. After each task, run two sequential review subagents: first a **spec compliance reviewer** (did the implementer build precisely what was asked — nothing missing, nothing extra?), then a **code quality reviewer** (is it well-structured and maintainable?). Each review stage loops — reviewer finds issues → implementer fixes → reviewer re-reviews — until the stage is ✅ before advancing.
|
|
42
|
+
|
|
43
|
+
The coordinator reads the entire plan once upfront, extracts all task text, creates a task tracker, then executes sequentially without stopping to narrate progress. The only valid stops are: BLOCKED status that cannot be resolved, genuine ambiguity preventing progress, or all tasks complete.
|
|
44
|
+
|
|
45
|
+
## Steps
|
|
46
|
+
|
|
47
|
+
### 0 — Setup (once)
|
|
48
|
+
1. Read the plan file once. Extract all tasks with their **full text** and any cross-task context notes.
|
|
49
|
+
2. Create a task tracker (e.g., todo list) with every task marked pending.
|
|
50
|
+
3. Do not re-read the plan during execution.
|
|
51
|
+
|
|
52
|
+
### 1 — Dispatch implementer subagent (per task)
|
|
53
|
+
- Provide: full task text, scene-setting (where this task fits in the overall plan), any files or interfaces relevant to this task.
|
|
54
|
+
- **Never** let the subagent read the plan file itself — construct exactly what it needs.
|
|
55
|
+
- If the subagent asks questions before starting, answer completely before it proceeds.
|
|
56
|
+
|
|
57
|
+
### 2 — Handle implementer status
|
|
58
|
+
|
|
59
|
+
| Status | Action |
|
|
60
|
+
|---|---|
|
|
61
|
+
| `DONE` | Proceed to spec compliance review |
|
|
62
|
+
| `DONE_WITH_CONCERNS` | Read concerns. Correctness/scope concerns → address before review. Observations ("file is getting large") → note and proceed |
|
|
63
|
+
| `NEEDS_CONTEXT` | Provide the missing information, re-dispatch same subagent |
|
|
64
|
+
| `BLOCKED` | Assess root cause: (a) provide more context + re-dispatch, (b) upgrade to a more capable model, (c) split the task into smaller pieces, (d) escalate to human. Never force retry without changing something. |
|
|
65
|
+
|
|
66
|
+
### 3 — Spec compliance review
|
|
67
|
+
- Dispatch a spec reviewer subagent with: original task spec + committed code (provide git SHAs or diff).
|
|
68
|
+
- Question it answers: **Did the implementation match the spec exactly?** Nothing missing, nothing extra.
|
|
69
|
+
- If issues found → implementer subagent fixes → spec reviewer re-reviews. Loop until ✅.
|
|
70
|
+
- **Do not start code quality review until spec compliance is ✅.**
|
|
71
|
+
|
|
72
|
+
### 4 — Code quality review
|
|
73
|
+
- Dispatch a code quality reviewer subagent with: the committed code.
|
|
74
|
+
- Question it answers: **Is this well-structured, tested, and maintainable?**
|
|
75
|
+
- If issues found → implementer subagent fixes → code quality reviewer re-reviews. Loop until ✅.
|
|
76
|
+
|
|
77
|
+
### 5 — Mark complete, advance
|
|
78
|
+
- Mark the task complete in the task tracker.
|
|
79
|
+
- Move immediately to the next task. No progress summaries.
|
|
80
|
+
|
|
81
|
+
### 6 — Final review (after all tasks)
|
|
82
|
+
- Dispatch a final code reviewer for the entire implementation holistically.
|
|
83
|
+
- Proceed to branch finalization (full test run, linting, PR preparation).
|
|
84
|
+
|
|
85
|
+
## Model Selection
|
|
86
|
+
|
|
87
|
+
Choose the least powerful model that can handle each role — reduces cost and increases speed.
|
|
88
|
+
|
|
89
|
+
| Role / Task Type | Suggested model tier |
|
|
90
|
+
|---|---|
|
|
91
|
+
| Mechanical implementation: isolated function, clear spec, 1–2 files | Cheapest / fastest |
|
|
92
|
+
| Integration tasks: multi-file coordination, pattern matching, debugging | Standard |
|
|
93
|
+
| Architecture, design decisions, broad codebase understanding | Most capable |
|
|
94
|
+
| Spec compliance review | Standard (needs judgment, not brute force) |
|
|
95
|
+
| Code quality review | Most capable (architectural patterns, test adequacy) |
|
|
96
|
+
|
|
97
|
+
## Anti-patterns
|
|
98
|
+
|
|
99
|
+
- **Never start on main/master** without explicit user consent — work on a feature branch
|
|
100
|
+
- **Never skip spec compliance review** before code quality review — wrong order wastes cycles
|
|
101
|
+
- **Never skip code quality review** even if spec passes — both gates are required
|
|
102
|
+
- **Never dispatch multiple implementer subagents in parallel** — they will conflict on shared files
|
|
103
|
+
- **Never make the subagent read the plan file** — provide the extracted task text directly
|
|
104
|
+
- **Never skip scene-setting context** — subagent needs to understand where the task fits
|
|
105
|
+
- **Never let implementer self-review substitute for reviewer subagents** — self-review is supplementary
|
|
106
|
+
- **Never accept "close enough" on spec compliance** — it is either ✅ or the fix loop runs
|
|
107
|
+
- **Never skip re-review after fixes** — reviewer found issues → implementer fixes → same reviewer reviews again
|
|
108
|
+
- **Never pause between tasks to ask "should I continue?"** — the human asked you to execute the plan; execute it
|
|
109
|
+
- **Never ignore BLOCKED status** — something must change before retry (model, context, or task scope)
|
|
110
|
+
|
|
111
|
+
## Key Principles
|
|
112
|
+
|
|
113
|
+
**Fresh context = focused subagents.** Each implementer subagent is constructed from scratch by the coordinator. It inherits no session history, no tool call history, no side conversations. This keeps it on-task and prevents compounding confusion across tasks.
|
|
114
|
+
|
|
115
|
+
**Spec before quality.** Spec compliance first ensures the right thing was built. Code quality second ensures it was built well. Reversing the order wastes quality review effort on implementations that may be refactored or scrapped.
|
|
116
|
+
|
|
117
|
+
**Review loops are the mechanism, not optional.** A reviewer finding issues does not mean failure — it means the loop is working. The loop closes when the reviewer explicitly approves.
|
|
118
|
+
|
|
119
|
+
**Continuous execution is a contract.** The human asked you to execute the plan. Pausing to narrate progress or ask "shall I continue?" breaks the contract and wastes their time.
|
|
120
|
+
|
|
121
|
+
**Context curation is the coordinator's core job.** The coordinator's value is in extracting exactly the right text, interfaces, and background from the plan and codebase, and handing it to each subagent. Get this right and subagents succeed on the first attempt.
|
|
122
|
+
|
|
123
|
+
## References
|
|
124
|
+
- Upstream: https://github.com/obra/superpowers.git
|