@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,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: distilled-doc-coauthoring
|
|
3
|
+
version: 0.2.0-distilled
|
|
4
|
+
description: 'Distilled IT-universal skill: doc-coauthoring (score 4.5/5)'
|
|
5
|
+
keywords:
|
|
6
|
+
- doc
|
|
7
|
+
- coauthoring
|
|
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
|
+
- doc-coauthoring/SKILL.md
|
|
15
|
+
distilled_at: '2026-06-15T01:06:31.779Z'
|
|
16
|
+
distilled_by: claude-code skill-distiller agent
|
|
17
|
+
it_universal_score: 4.5
|
|
18
|
+
it_universal_dims:
|
|
19
|
+
d1: 1
|
|
20
|
+
d2: 0.5
|
|
21
|
+
d3: 1
|
|
22
|
+
d4: 1
|
|
23
|
+
d5: 1
|
|
24
|
+
it_universal_rationale: >-
|
|
25
|
+
Language-neutral 3-stage collaborative documentation methodology (context-gather →
|
|
26
|
+
brainstorm-curate-refine → reader-test) portable to any project or domain; minor D2 deduction for
|
|
27
|
+
optional AI-assistant-specific tooling hints that are abstracted away in this distillation.
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
# Structured Doc Co-Authoring Workflow
|
|
31
|
+
|
|
32
|
+
## When to use
|
|
33
|
+
- User wants to write documentation, proposals, technical specs, decision docs, RFCs, PRDs, or similar structured content
|
|
34
|
+
- User is starting a substantial writing task and says things like "write a doc", "draft a proposal", "create a spec", "write up"
|
|
35
|
+
- User wants to ensure the document works for readers who lack the author's context
|
|
36
|
+
- Doc type is identified: "design doc", "decision doc", "RFC", "PRD"
|
|
37
|
+
|
|
38
|
+
## Core idea
|
|
39
|
+
|
|
40
|
+
Documentation fails not from lack of effort but from *context blindness* — authors assume readers share their mental model. This three-stage workflow (Context Gathering → Refinement & Structure → Reader Testing) systematically closes that gap. First, externalize all knowledge the author holds implicitly. Then build section-by-section using a brainstorm-curate-draft-refine loop that keeps the author in control of substance while the assistant handles structure and prose. Finally, test the finished document against a "fresh eyes" reader (no prior context) to catch blind spots before real readers hit them. The result is a document that stands on its own.
|
|
41
|
+
|
|
42
|
+
## Steps
|
|
43
|
+
|
|
44
|
+
### Offer the workflow first
|
|
45
|
+
Before starting, explain the three stages and ask whether the user wants the structured approach or prefers to work freeform. If they decline, work freeform. If they accept, begin Stage 1.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### Stage 1 — Context Gathering
|
|
50
|
+
|
|
51
|
+
**Goal:** Close the gap between what the user knows and what the assistant knows.
|
|
52
|
+
|
|
53
|
+
**1. Ask meta-context questions:**
|
|
54
|
+
- What type of document? (spec, decision doc, proposal, RFC, …)
|
|
55
|
+
- Who is the primary audience?
|
|
56
|
+
- What should happen when someone reads this — what's the desired impact?
|
|
57
|
+
- Is there a required template or format to follow?
|
|
58
|
+
- Any constraints, deadlines, or other context?
|
|
59
|
+
|
|
60
|
+
Tell the user they can answer in shorthand or bullet form.
|
|
61
|
+
|
|
62
|
+
**2. Encourage an unstructured info dump.** Ask them to brain-dump everything relevant without worrying about organization:
|
|
63
|
+
- Background on the project or problem
|
|
64
|
+
- Why alternative solutions aren't being used
|
|
65
|
+
- Organizational context: team dynamics, past incidents, relevant politics
|
|
66
|
+
- Timeline pressures, technical dependencies, stakeholder concerns
|
|
67
|
+
- Links to related discussions, prior documents, or existing decisions
|
|
68
|
+
|
|
69
|
+
Advise them not to organize it — just get it out.
|
|
70
|
+
|
|
71
|
+
**3. Pull in external context** if integrations or connectors are available (e.g., messaging apps, document storage). If not, ask the user to paste relevant excerpts directly.
|
|
72
|
+
|
|
73
|
+
**4. Ask clarifying questions.** Once the initial dump is done, generate 5–10 numbered questions based on remaining gaps. Tell the user they can answer in shorthand (e.g., `"1: yes, 2: no — backwards compat, 3: see linked doc"`). Continue until you can reason about edge cases and trade-offs without needing basics explained.
|
|
74
|
+
|
|
75
|
+
**5. Transition check:** Ask if there's more context to add, or if they're ready to move to drafting.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### Stage 2 — Refinement & Structure
|
|
80
|
+
|
|
81
|
+
**Goal:** Build the document section by section through brainstorming, curation, and iterative refinement.
|
|
82
|
+
|
|
83
|
+
**Set up a scaffold:**
|
|
84
|
+
- Agree on document sections. If the structure is unclear, suggest 3–5 sections appropriate to the doc type.
|
|
85
|
+
- Create a document scaffold with all section headers and placeholder text (e.g., `[To be written]`).
|
|
86
|
+
- Start with the section that has the most unknowns — usually the core proposal or decision. Leave summary/intro sections for last.
|
|
87
|
+
|
|
88
|
+
**Key instruction to give the user at the start of the first section:**
|
|
89
|
+
> "Rather than editing the doc directly, tell me what to change (e.g., 'Remove the X bullet — already covered by Y'). This helps me learn your style for future sections."
|
|
90
|
+
|
|
91
|
+
**For each section, run this loop:**
|
|
92
|
+
|
|
93
|
+
1. **Clarify** — Ask 5–10 questions about what should go in this specific section.
|
|
94
|
+
|
|
95
|
+
2. **Brainstorm** — Generate 5–20 candidate items to include (scale to section complexity). Surface things from the context dump the user may have forgotten.
|
|
96
|
+
|
|
97
|
+
3. **Curate** — Ask the user which items to keep, remove, or combine, with brief justifications:
|
|
98
|
+
> "Keep 1, 4, 7 / Remove 3 (duplicates 1) / Remove 6 (audience already knows this) / Combine 11+12"
|
|
99
|
+
If the user gives freeform feedback instead of numbered selections, extract their intent and apply it.
|
|
100
|
+
|
|
101
|
+
4. **Gap check** — Based on what they've selected, ask if anything important is missing.
|
|
102
|
+
|
|
103
|
+
5. **Draft** — Replace the placeholder with actual content. Announce you're doing this.
|
|
104
|
+
|
|
105
|
+
6. **Iterate** — Apply targeted edits in response to user feedback. Never reprint the whole document; only show the changed section.
|
|
106
|
+
|
|
107
|
+
**Quality check:** After 3 consecutive iterations with no substantial changes, ask whether anything can be cut without losing important information.
|
|
108
|
+
|
|
109
|
+
**Near completion (80%+ of sections done):** Re-read the entire document and check for:
|
|
110
|
+
- Flow and consistency across sections
|
|
111
|
+
- Redundancy or contradictions
|
|
112
|
+
- Generic filler that carries no weight — every sentence should earn its place
|
|
113
|
+
|
|
114
|
+
When all sections are complete, offer a final review pass then ask if the user is ready for Stage 3.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### Stage 3 — Reader Testing
|
|
119
|
+
|
|
120
|
+
**Goal:** Verify the document stands alone for readers who have zero prior context.
|
|
121
|
+
|
|
122
|
+
**1. Predict reader questions.** Generate 5–10 questions a realistic reader would ask when encountering this document cold — the kind of person who was linked to it or found it searching.
|
|
123
|
+
|
|
124
|
+
**2. Test with a fresh context.** Use a sub-agent or a new session with no conversation history. Feed it only the document text and ask each predicted question. Record the answers.
|
|
125
|
+
|
|
126
|
+
**3. Gap analysis.** Compare the answers to what the authors intended. Flag every place the document failed to provide sufficient context.
|
|
127
|
+
|
|
128
|
+
**4. Remediate.** Return to Stage 2 refinement for any section that produced confusing or incomplete answers, then re-test.
|
|
129
|
+
|
|
130
|
+
**5. Sign off.** When the document answers all predicted reader questions accurately using only its own text — no external context needed — it is reader-ready.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Anti-patterns
|
|
135
|
+
- **Drafting before context gathering** — skips the step that prevents author blind spots; the resulting doc will feel thin or assume too much.
|
|
136
|
+
- **Reprinting the whole document on every edit** — apply targeted replacements; only surface the changed section.
|
|
137
|
+
- **Merging brainstorm and draft into one step** — brainstorming generates options the user can reject; drafting commits to them. Keep them separate so the user retains agency over what's included.
|
|
138
|
+
- **Skipping reader testing** — authors consistently underestimate how much implicit context they carry. The fresh-eyes test is the highest-leverage step.
|
|
139
|
+
- **Letting the user edit the doc directly during Stage 2** — you lose signal about their preferences; ask them to narrate changes instead.
|
|
140
|
+
- **Writing summary or intro sections first** — these depend on all other sections being settled; always write them last.
|
|
141
|
+
- **Asking all clarifying questions at once upfront** — spread them across stages; early questions are meta-context, later questions are section-specific.
|
|
142
|
+
|
|
143
|
+
## References
|
|
144
|
+
- Upstream: https://github.com/anthropics/skills.git
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: distilled-docx
|
|
3
|
+
version: 0.2.0-distilled
|
|
4
|
+
description: 'Distilled IT-universal skill: docx (score 3/5)'
|
|
5
|
+
keywords:
|
|
6
|
+
- docx
|
|
7
|
+
rubric_version: 2
|
|
8
|
+
distilled_from:
|
|
9
|
+
- upstream: https://github.com/anthropics/skills.git
|
|
10
|
+
license: Apache-2.0
|
|
11
|
+
commit: 690f15cac7f7b4c055c5ab109c79ed9259934081
|
|
12
|
+
paths:
|
|
13
|
+
- docx/SKILL.md
|
|
14
|
+
distilled_at: '2026-06-15T01:08:46.682Z'
|
|
15
|
+
distilled_by: claude-code skill-distiller agent
|
|
16
|
+
it_universal_score: 3
|
|
17
|
+
it_universal_dims:
|
|
18
|
+
d1: 0.5
|
|
19
|
+
d2: 0.5
|
|
20
|
+
d3: 0.5
|
|
21
|
+
d4: 0.5
|
|
22
|
+
d5: 1
|
|
23
|
+
it_universal_rationale: >-
|
|
24
|
+
Rich docx-js API methodology (DXA units, table dual-width, list numbering, page-size gotchas) is
|
|
25
|
+
directly reusable in any Node.js project; project-specific Python wrapper scripts replaced with
|
|
26
|
+
standard libreoffice/unzip CLI equivalents
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# .docx Creation, Editing & Analysis (docx-js)
|
|
30
|
+
|
|
31
|
+
## When to use
|
|
32
|
+
- Creating Word documents (.docx) programmatically with Node.js
|
|
33
|
+
- Editing existing .docx files at the XML level
|
|
34
|
+
- Extracting text/content from Word documents with tracked-changes awareness
|
|
35
|
+
- Generating reports, memos, letters, or templated Word output with rich formatting
|
|
36
|
+
- Handling headings, tables, lists, images, headers/footers, TOC, footnotes, hyperlinks
|
|
37
|
+
|
|
38
|
+
## Core idea
|
|
39
|
+
A `.docx` file is a ZIP archive of XML files — unpack with `unzip`, edit, repack for surgical changes, or generate from scratch via the `docx` npm package (`npm install docx`). The library defaults to **A4 paper**, so always set page size explicitly. All dimensions use **DXA units** (1440 DXA = 1 inch). Tables require **dual width declarations** on both the `Table` object and each `TableCell` — omitting either causes broken rendering. Use `WidthType.DXA` everywhere; percentage-based widths break in Google Docs.
|
|
40
|
+
|
|
41
|
+
## Steps
|
|
42
|
+
|
|
43
|
+
### 1. Read / Extract Content
|
|
44
|
+
```bash
|
|
45
|
+
# Text extraction with tracked-changes support
|
|
46
|
+
pandoc --track-changes=all document.docx -o output.md
|
|
47
|
+
|
|
48
|
+
# Raw XML inspection — docx is just a ZIP
|
|
49
|
+
unzip document.docx -d unpacked/
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 2. Convert Legacy .doc → .docx
|
|
53
|
+
```bash
|
|
54
|
+
libreoffice --headless --convert-to docx document.doc
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 3. Convert to PDF / Images
|
|
58
|
+
```bash
|
|
59
|
+
libreoffice --headless --convert-to pdf document.docx
|
|
60
|
+
pdftoppm -jpeg -r 150 document.pdf page
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 4. Create a New Document (Node.js)
|
|
64
|
+
```javascript
|
|
65
|
+
const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
|
|
66
|
+
ImageRun, Header, Footer, AlignmentType, PageOrientation, LevelFormat,
|
|
67
|
+
ExternalHyperlink, InternalHyperlink, Bookmark, FootnoteReferenceRun,
|
|
68
|
+
TabStopType, TabStopPosition, TableOfContents, HeadingLevel,
|
|
69
|
+
BorderStyle, WidthType, ShadingType, PageNumber, PageBreak } = require('docx');
|
|
70
|
+
|
|
71
|
+
// CRITICAL: Always set page size — docx defaults to A4, not US Letter
|
|
72
|
+
const doc = new Document({
|
|
73
|
+
sections: [{
|
|
74
|
+
properties: {
|
|
75
|
+
page: {
|
|
76
|
+
size: { width: 12240, height: 15840 }, // US Letter: 8.5"×11" in DXA
|
|
77
|
+
margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } // 1" margins
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
children: [ /* content nodes */ ]
|
|
81
|
+
}]
|
|
82
|
+
});
|
|
83
|
+
Packer.toBuffer(doc).then(buf => require('fs').writeFileSync('out.docx', buf));
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Common page sizes (1440 DXA = 1 inch; content width = page − margins):**
|
|
87
|
+
|
|
88
|
+
| Paper | Width | Height | Content @ 1" margins |
|
|
89
|
+
|-----------|--------|--------|-----------------------|
|
|
90
|
+
| US Letter | 12,240 | 15,840 | 9,360 |
|
|
91
|
+
| A4 | 11,906 | 16,838 | 9,026 |
|
|
92
|
+
|
|
93
|
+
**Landscape:** Pass portrait dimensions + `orientation: PageOrientation.LANDSCAPE`; the library swaps width/height in the XML automatically.
|
|
94
|
+
|
|
95
|
+
### 5. Override Built-in Heading Styles
|
|
96
|
+
```javascript
|
|
97
|
+
const doc = new Document({
|
|
98
|
+
styles: {
|
|
99
|
+
default: { document: { run: { font: "Arial", size: 24 } } }, // 12pt default
|
|
100
|
+
paragraphStyles: [
|
|
101
|
+
{ id: "Heading1", name: "Heading 1", basedOn: "Normal", next: "Normal",
|
|
102
|
+
quickFormat: true,
|
|
103
|
+
run: { size: 32, bold: true, font: "Arial" },
|
|
104
|
+
paragraph: { spacing: { before: 240, after: 240 },
|
|
105
|
+
outlineLevel: 0 } }, // outlineLevel required for TOC pickup
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
sections: [{ children: [
|
|
109
|
+
new Paragraph({ heading: HeadingLevel.HEADING_1,
|
|
110
|
+
children: [new TextRun("Title")] })
|
|
111
|
+
]}]
|
|
112
|
+
});
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 6. Lists — Use Numbering Config, Never Unicode Bullets
|
|
116
|
+
```javascript
|
|
117
|
+
const doc = new Document({
|
|
118
|
+
numbering: { config: [
|
|
119
|
+
{ reference: "bullets",
|
|
120
|
+
levels: [{ level: 0, format: LevelFormat.BULLET, text: "•",
|
|
121
|
+
alignment: AlignmentType.LEFT,
|
|
122
|
+
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
|
|
123
|
+
{ reference: "numbers",
|
|
124
|
+
levels: [{ level: 0, format: LevelFormat.DECIMAL, text: "%1.",
|
|
125
|
+
alignment: AlignmentType.LEFT,
|
|
126
|
+
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
|
|
127
|
+
]},
|
|
128
|
+
sections: [{ children: [
|
|
129
|
+
new Paragraph({ numbering: { reference: "bullets", level: 0 },
|
|
130
|
+
children: [new TextRun("Bullet item")] }),
|
|
131
|
+
new Paragraph({ numbering: { reference: "numbers", level: 0 },
|
|
132
|
+
children: [new TextRun("Numbered item")] }),
|
|
133
|
+
]}]
|
|
134
|
+
});
|
|
135
|
+
// Same reference = numbering continues; different reference = restarts from 1
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 7. Tables — Dual Width + DXA Always
|
|
139
|
+
```javascript
|
|
140
|
+
const border = { style: BorderStyle.SINGLE, size: 1, color: "CCCCCC" };
|
|
141
|
+
const borders = { top: border, bottom: border, left: border, right: border };
|
|
142
|
+
|
|
143
|
+
new Table({
|
|
144
|
+
width: { size: 9360, type: WidthType.DXA }, // Always DXA — % breaks Google Docs
|
|
145
|
+
columnWidths: [4680, 4680], // Must sum exactly to table width
|
|
146
|
+
rows: [new TableRow({ children: [
|
|
147
|
+
new TableCell({
|
|
148
|
+
borders,
|
|
149
|
+
width: { size: 4680, type: WidthType.DXA }, // ALSO required on each cell
|
|
150
|
+
shading: { fill: "D5E8F0", type: ShadingType.CLEAR }, // CLEAR not SOLID
|
|
151
|
+
margins: { top: 80, bottom: 80, left: 120, right: 120 }, // internal padding
|
|
152
|
+
children: [new Paragraph({ children: [new TextRun("Cell")] })]
|
|
153
|
+
})
|
|
154
|
+
]})]
|
|
155
|
+
})
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 8. Images
|
|
159
|
+
```javascript
|
|
160
|
+
new Paragraph({ children: [new ImageRun({
|
|
161
|
+
type: "png", // REQUIRED: png | jpg | jpeg | gif | bmp | svg
|
|
162
|
+
data: require('fs').readFileSync("image.png"),
|
|
163
|
+
transformation: { width: 200, height: 150 },
|
|
164
|
+
altText: { title: "T", description: "D", name: "N" } // all three fields required
|
|
165
|
+
})]})
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 9. Page Breaks
|
|
169
|
+
```javascript
|
|
170
|
+
new Paragraph({ children: [new PageBreak()] }) // PageBreak must be in a Paragraph
|
|
171
|
+
new Paragraph({ pageBreakBefore: true, children: [new TextRun("New page")] }) // alternative
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 10. Headers, Footers & Page Numbers
|
|
175
|
+
```javascript
|
|
176
|
+
sections: [{
|
|
177
|
+
headers: { default: new Header({ children: [
|
|
178
|
+
new Paragraph({ children: [new TextRun("Header text")] })
|
|
179
|
+
]})},
|
|
180
|
+
footers: { default: new Footer({ children: [
|
|
181
|
+
new Paragraph({ children: [
|
|
182
|
+
new TextRun("Page "),
|
|
183
|
+
new TextRun({ children: [PageNumber.CURRENT] })
|
|
184
|
+
]})
|
|
185
|
+
]})},
|
|
186
|
+
children: [/* content */]
|
|
187
|
+
}]
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### 11. Table of Contents
|
|
191
|
+
```javascript
|
|
192
|
+
// Headings MUST use HeadingLevel enum — custom paragraph styles are NOT picked up by TOC
|
|
193
|
+
new TableOfContents("Table of Contents", { hyperlink: true, headingStyleRange: "1-3" })
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### 12. Hyperlinks & Bookmarks
|
|
197
|
+
```javascript
|
|
198
|
+
// External link
|
|
199
|
+
new ExternalHyperlink({ link: "https://example.com",
|
|
200
|
+
children: [new TextRun({ text: "Link text", style: "Hyperlink" })] })
|
|
201
|
+
|
|
202
|
+
// Internal: place bookmark at destination, reference by anchor elsewhere
|
|
203
|
+
new Bookmark({ id: "sec1", children: [new TextRun("Section 1")] })
|
|
204
|
+
new InternalHyperlink({ anchor: "sec1",
|
|
205
|
+
children: [new TextRun({ text: "Go to Section 1", style: "Hyperlink" })] })
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### 13. Footnotes
|
|
209
|
+
```javascript
|
|
210
|
+
const doc = new Document({
|
|
211
|
+
footnotes: {
|
|
212
|
+
1: { children: [new Paragraph("Source: Annual Report 2024")] },
|
|
213
|
+
},
|
|
214
|
+
sections: [{ children: [new Paragraph({
|
|
215
|
+
children: [new TextRun("Revenue grew 15%"), new FootnoteReferenceRun(1)]
|
|
216
|
+
})]}]
|
|
217
|
+
});
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Anti-patterns
|
|
221
|
+
- ❌ **Never** insert unicode bullet characters (`•` / `\u2022`) directly in `TextRun` — use `LevelFormat.BULLET` in numbering config
|
|
222
|
+
- ❌ **Never** use `WidthType.PERCENTAGE` for tables — breaks in Google Docs; always use `WidthType.DXA`
|
|
223
|
+
- ❌ **Never** omit the `type` field on `ImageRun` — causes silent rendering failure
|
|
224
|
+
- ❌ **Never** use `ShadingType.SOLID` for colored cell backgrounds — produces solid black; use `ShadingType.CLEAR`
|
|
225
|
+
- ❌ **Never** place `PageBreak` outside a `Paragraph` wrapper
|
|
226
|
+
- ❌ **Never** rely on the docx-js default page size (A4) — always set `size` explicitly in section `properties.page`
|
|
227
|
+
- ❌ **Never** set `columnWidths` on `Table` without also setting matching `width` on each `TableCell`
|
|
228
|
+
- ❌ **Never** use custom paragraph styles for TOC headings — only `HeadingLevel` enum values are recognized by `TableOfContents`
|
|
229
|
+
|
|
230
|
+
## References
|
|
231
|
+
- Upstream: https://github.com/anthropics/skills.git
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: distilled-executing-plans
|
|
3
3
|
version: 0.2.0-distilled
|
|
4
|
-
description: 'Distilled IT-universal skill: executing-plans (score
|
|
4
|
+
description: 'Distilled IT-universal skill: executing-plans (score 3/5)'
|
|
5
5
|
keywords:
|
|
6
6
|
- executing
|
|
7
7
|
- plans
|
|
@@ -9,105 +9,140 @@ rubric_version: 2
|
|
|
9
9
|
distilled_from:
|
|
10
10
|
- upstream: https://github.com/obra/superpowers.git
|
|
11
11
|
license: MIT
|
|
12
|
-
commit:
|
|
12
|
+
commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
|
|
13
13
|
paths:
|
|
14
14
|
- executing-plans/SKILL.md
|
|
15
15
|
- upstream: https://github.com/obra/superpowers.git
|
|
16
16
|
license: MIT
|
|
17
|
-
commit:
|
|
17
|
+
commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
|
|
18
18
|
paths:
|
|
19
19
|
- writing-plans/SKILL.md
|
|
20
20
|
- upstream: https://github.com/affaan-m/ECC.git
|
|
21
21
|
license: MIT
|
|
22
|
-
commit:
|
|
22
|
+
commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
|
|
23
23
|
paths:
|
|
24
24
|
- inventory-demand-planning/SKILL.md
|
|
25
25
|
- upstream: https://github.com/affaan-m/ECC.git
|
|
26
26
|
license: MIT
|
|
27
|
-
commit:
|
|
27
|
+
commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
|
|
28
28
|
paths:
|
|
29
29
|
- plan-orchestrate/SKILL.md
|
|
30
30
|
- upstream: https://github.com/affaan-m/ECC.git
|
|
31
31
|
license: MIT
|
|
32
|
-
commit:
|
|
32
|
+
commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
|
|
33
33
|
paths:
|
|
34
34
|
- inventory-demand-planning/SKILL.md
|
|
35
35
|
- upstream: https://github.com/affaan-m/ECC.git
|
|
36
36
|
license: MIT
|
|
37
|
-
commit:
|
|
37
|
+
commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
|
|
38
38
|
paths:
|
|
39
39
|
- inventory-demand-planning/SKILL.md
|
|
40
40
|
- upstream: https://github.com/affaan-m/ECC.git
|
|
41
41
|
license: MIT
|
|
42
|
-
commit:
|
|
42
|
+
commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
|
|
43
43
|
paths:
|
|
44
44
|
- plan-orchestrate/SKILL.md
|
|
45
|
-
distilled_at: '2026-
|
|
45
|
+
distilled_at: '2026-06-15T00:50:22.691Z'
|
|
46
46
|
distilled_by: claude-code skill-distiller agent
|
|
47
|
-
it_universal_score:
|
|
47
|
+
it_universal_score: 3
|
|
48
48
|
it_universal_dims:
|
|
49
49
|
d1: 1
|
|
50
50
|
d2: 0.5
|
|
51
|
-
d3:
|
|
51
|
+
d3: 0.5
|
|
52
52
|
d4: 0.5
|
|
53
|
-
d5:
|
|
53
|
+
d5: 0.5
|
|
54
54
|
it_universal_rationale: >-
|
|
55
|
-
Language-neutral plan-execution methodology with
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
Language-neutral plan-execution methodology with transferable stop-when-blocked discipline and
|
|
56
|
+
critical-review-before-coding phase separation, portable to any codebase with minor tool
|
|
57
|
+
substitution.
|
|
58
58
|
---
|
|
59
59
|
|
|
60
|
-
# Executing Plans
|
|
60
|
+
# Executing Plans: Structured Plan-to-Code Workflow
|
|
61
61
|
|
|
62
62
|
## When to use
|
|
63
|
-
- You have a written implementation plan (file or
|
|
64
|
-
- You want
|
|
65
|
-
-
|
|
63
|
+
- You have a written implementation plan (file, doc, or spec) to execute
|
|
64
|
+
- You want disciplined, reviewable task completion with a visible audit trail
|
|
65
|
+
- You need clear stopping criteria so you never guess through blockers
|
|
66
|
+
- You want an explicit separation between "plan critique" and "plan execution"
|
|
66
67
|
|
|
67
68
|
## Core idea
|
|
68
69
|
|
|
69
|
-
Before
|
|
70
|
+
Before touching any code, read the plan critically and surface concerns to your
|
|
71
|
+
partner first. Only after the plan is understood and accepted do you begin
|
|
72
|
+
execution. Track each task's state (pending → in_progress → completed) so
|
|
73
|
+
progress is always visible. Execute tasks exactly as written — do not improvise.
|
|
74
|
+
When you hit a blocker (failing verification, unclear instruction, missing
|
|
75
|
+
dependency), **stop and ask** rather than guessing your way through. The goal is
|
|
76
|
+
predictable, reviewable execution — not autonomous problem-solving that hides
|
|
77
|
+
risk inside implementation.
|
|
70
78
|
|
|
71
79
|
## Steps
|
|
72
80
|
|
|
73
|
-
|
|
81
|
+
### Phase 1: Load and Review
|
|
82
|
+
1. Read the plan document **fully** before writing any code
|
|
83
|
+
2. Identify concerns: ambiguities, missing context, risky assumptions,
|
|
84
|
+
dependency gaps, contradictions between steps
|
|
85
|
+
3. If concerns exist → raise them with your partner before starting;
|
|
86
|
+
wait for resolution or plan update
|
|
87
|
+
4. If no concerns → proceed to Phase 2
|
|
74
88
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
89
|
+
### Phase 2: Set Up Task Tracking
|
|
90
|
+
1. Create a task list (checklist, todo list, or tracking note) from the
|
|
91
|
+
plan's tasks — one entry per discrete unit of work
|
|
92
|
+
2. Confirm the list matches the plan's intent before starting
|
|
93
|
+
3. Each item should be independently executable and independently verifiable
|
|
80
94
|
|
|
81
|
-
|
|
95
|
+
### Phase 3: Execute Tasks
|
|
96
|
+
For each task in order:
|
|
97
|
+
1. Mark the task as **in_progress**
|
|
98
|
+
2. Follow the plan's steps exactly — no improvisation, no shortcuts
|
|
99
|
+
3. Run any verification steps specified in the plan (tests, lint, smoke checks,
|
|
100
|
+
manual checks)
|
|
101
|
+
4. If verification passes → mark task **completed**, move to next task
|
|
102
|
+
5. If verification fails → see "When to Stop" below
|
|
82
103
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
- Repeat for the next task.
|
|
104
|
+
### Phase 4: Wrap Up
|
|
105
|
+
After all tasks complete and all verifications pass:
|
|
106
|
+
1. Run any final integration or end-to-end checks
|
|
107
|
+
2. Summarise what was implemented versus what the plan specified
|
|
108
|
+
3. Surface any deviations (intended or forced) to your partner before closing
|
|
89
109
|
|
|
90
|
-
|
|
91
|
-
- A dependency is missing or unavailable.
|
|
92
|
-
- A verification fails repeatedly and the cause is unclear.
|
|
93
|
-
- An instruction is ambiguous or contradictory.
|
|
94
|
-
- The plan has a critical gap that prevents starting the next task.
|
|
110
|
+
## When to Stop and Ask
|
|
95
111
|
|
|
96
|
-
|
|
112
|
+
**Stop executing immediately when any of these occur:**
|
|
113
|
+
- A test or verification fails and the fix is not specified in the plan
|
|
114
|
+
- An instruction is unclear or contradicts an earlier step
|
|
115
|
+
- A required dependency, credential, or context is missing
|
|
116
|
+
- The plan has a gap that would require guessing to bridge
|
|
117
|
+
- You are about to make an architectural or scope decision the plan does not
|
|
118
|
+
authorise
|
|
97
119
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
- Present the diff / change summary to your collaborator.
|
|
101
|
-
- Get explicit sign-off before merging to the main branch.
|
|
120
|
+
**Ask for clarification rather than guessing.** Guessing through blockers causes
|
|
121
|
+
cascading errors that are much harder to debug than a clean, early stop.
|
|
102
122
|
|
|
103
|
-
##
|
|
123
|
+
## When to Return to Phase 1
|
|
124
|
+
|
|
125
|
+
Return to the Load and Review phase when:
|
|
126
|
+
- Your partner updates or revises the plan based on your feedback
|
|
127
|
+
- Mid-execution discovery reveals that the fundamental approach is wrong
|
|
128
|
+
- A blocker exposes a design issue the plan did not anticipate
|
|
104
129
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
- **
|
|
110
|
-
|
|
130
|
+
Do not continue executing against a plan that has been invalidated by new
|
|
131
|
+
information.
|
|
132
|
+
|
|
133
|
+
## Anti-patterns
|
|
134
|
+
- **Skipping the critical review**: Starting to code before critiquing the plan
|
|
135
|
+
produces avoidable rework; the review is not optional ceremony
|
|
136
|
+
- **Improvising around blockers**: If the plan does not say what to do, stop —
|
|
137
|
+
do not invent a solution and proceed silently
|
|
138
|
+
- **Marking tasks complete before verification**: A task is not done until the
|
|
139
|
+
specified verification passes
|
|
140
|
+
- **Batching or parallelising tasks**: Execute one task at a time; concurrent
|
|
141
|
+
execution makes rollback, bisection, and blame tracking harder
|
|
142
|
+
- **Working on the default/main branch without consent**: Always confirm you are
|
|
143
|
+
on a feature or working branch before any commit
|
|
144
|
+
- **Continuing on a stale plan**: If your partner has revised the plan, re-read
|
|
145
|
+
it fully before continuing — don't assume the delta is small
|
|
111
146
|
|
|
112
147
|
## References
|
|
113
148
|
- Upstream: https://github.com/obra/superpowers.git
|