@winspan/claude-forge 8.54.3 → 9.2.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 +649 -33
- package/README.md +155 -17
- package/dist/catalogs/agents.json +72 -0
- package/dist/catalogs/skills.json +194 -0
- package/dist/claudemd/claudemd-generator.d.ts +45 -45
- package/dist/claudemd/claudemd-generator.d.ts.map +1 -1
- package/dist/claudemd/claudemd-generator.js +128 -449
- package/dist/claudemd/claudemd-generator.js.map +1 -1
- package/dist/claudemd/index.d.ts +14 -4
- package/dist/claudemd/index.d.ts.map +1 -1
- package/dist/claudemd/index.js +15 -4
- package/dist/claudemd/index.js.map +1 -1
- package/dist/claudemd/resume-manager.d.ts.map +1 -1
- package/dist/claudemd/resume-manager.js +37 -9
- package/dist/claudemd/resume-manager.js.map +1 -1
- package/dist/claudemd/templates/swarm-protocol.md +35 -186
- package/dist/claudemd/violations-manager.d.ts +40 -0
- package/dist/claudemd/violations-manager.d.ts.map +1 -0
- package/dist/claudemd/violations-manager.js +106 -0
- package/dist/claudemd/violations-manager.js.map +1 -0
- package/dist/cli/commands/admin.d.ts +15 -0
- package/dist/cli/commands/admin.d.ts.map +1 -0
- package/dist/cli/commands/admin.js +177 -0
- package/dist/cli/commands/admin.js.map +1 -0
- package/dist/cli/commands/agents.d.ts +18 -0
- package/dist/cli/commands/agents.d.ts.map +1 -0
- package/dist/cli/commands/agents.js +160 -0
- package/dist/cli/commands/agents.js.map +1 -0
- package/dist/cli/commands/bypass.d.ts +18 -0
- package/dist/cli/commands/bypass.d.ts.map +1 -0
- package/dist/cli/commands/bypass.js +87 -0
- package/dist/cli/commands/bypass.js.map +1 -0
- package/dist/cli/commands/claudemd.d.ts +60 -0
- package/dist/cli/commands/claudemd.d.ts.map +1 -1
- package/dist/cli/commands/claudemd.js +174 -37
- package/dist/cli/commands/claudemd.js.map +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +94 -1
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/daemon.d.ts +39 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/daemon.js +167 -20
- package/dist/cli/commands/daemon.js.map +1 -1
- package/dist/cli/commands/decisions.d.ts +129 -0
- package/dist/cli/commands/decisions.d.ts.map +1 -0
- package/dist/cli/commands/decisions.js +669 -0
- package/dist/cli/commands/decisions.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +29 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +124 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/entropy.d.ts +35 -0
- package/dist/cli/commands/entropy.d.ts.map +1 -0
- package/dist/cli/commands/entropy.js +121 -0
- package/dist/cli/commands/entropy.js.map +1 -0
- package/dist/cli/commands/executions.d.ts +1 -0
- package/dist/cli/commands/executions.d.ts.map +1 -1
- package/dist/cli/commands/executions.js +10 -1
- package/dist/cli/commands/executions.js.map +1 -1
- package/dist/cli/commands/fix.d.ts +31 -0
- package/dist/cli/commands/fix.d.ts.map +1 -0
- package/dist/cli/commands/fix.js +108 -0
- package/dist/cli/commands/fix.js.map +1 -0
- package/dist/cli/commands/governance.d.ts +21 -0
- package/dist/cli/commands/governance.d.ts.map +1 -0
- package/dist/cli/commands/governance.js +60 -0
- package/dist/cli/commands/governance.js.map +1 -0
- package/dist/cli/commands/init.d.ts +27 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +158 -146
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/insights-goal-check.d.ts +50 -0
- package/dist/cli/commands/insights-goal-check.d.ts.map +1 -0
- package/dist/cli/commands/insights-goal-check.js +318 -0
- package/dist/cli/commands/insights-goal-check.js.map +1 -0
- package/dist/cli/commands/insights.d.ts +15 -0
- package/dist/cli/commands/insights.d.ts.map +1 -0
- package/dist/cli/commands/insights.js +127 -0
- package/dist/cli/commands/insights.js.map +1 -0
- package/dist/cli/commands/knowledge.d.ts +66 -0
- package/dist/cli/commands/knowledge.d.ts.map +1 -0
- package/dist/cli/commands/knowledge.js +897 -0
- package/dist/cli/commands/knowledge.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +0 -12
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +11 -5
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/menu.d.ts.map +1 -1
- package/dist/cli/commands/menu.js +10 -184
- package/dist/cli/commands/menu.js.map +1 -1
- package/dist/cli/commands/project.d.ts +98 -0
- package/dist/cli/commands/project.d.ts.map +1 -0
- package/dist/cli/commands/project.js +382 -0
- package/dist/cli/commands/project.js.map +1 -0
- package/dist/cli/commands/skills.d.ts.map +1 -1
- package/dist/cli/commands/skills.js +14 -128
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/spec.d.ts +40 -0
- package/dist/cli/commands/spec.d.ts.map +1 -0
- package/dist/cli/commands/spec.js +49 -0
- package/dist/cli/commands/spec.js.map +1 -0
- package/dist/cli/commands/stats.d.ts.map +1 -1
- package/dist/cli/commands/stats.js +3 -2
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +17 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/trace.d.ts.map +1 -1
- package/dist/cli/commands/trace.js +4 -9
- package/dist/cli/commands/trace.js.map +1 -1
- package/dist/cli/commands/violations.d.ts +14 -0
- package/dist/cli/commands/violations.d.ts.map +1 -0
- package/dist/cli/commands/violations.js +43 -0
- package/dist/cli/commands/violations.js.map +1 -0
- package/dist/cli/index.js +26 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/hook-manager.d.ts +1 -1
- package/dist/cli/init/hook-manager.d.ts.map +1 -1
- package/dist/cli/init/hook-manager.js +6 -0
- package/dist/cli/init/hook-manager.js.map +1 -1
- package/dist/cli/utils/resolve-session.d.ts +32 -0
- package/dist/cli/utils/resolve-session.d.ts.map +1 -0
- package/dist/cli/utils/resolve-session.js +39 -0
- package/dist/cli/utils/resolve-session.js.map +1 -0
- package/dist/core/config.d.ts +4 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +11 -23
- package/dist/core/config.js.map +1 -1
- package/dist/core/constants.d.ts +14 -13
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +20 -13
- package/dist/core/constants.js.map +1 -1
- package/dist/core/diagnostics/checks.d.ts +151 -0
- package/dist/core/diagnostics/checks.d.ts.map +1 -0
- package/dist/core/diagnostics/checks.js +765 -0
- package/dist/core/diagnostics/checks.js.map +1 -0
- package/dist/core/diagnostics/daemon-status.d.ts +77 -0
- package/dist/core/diagnostics/daemon-status.d.ts.map +1 -0
- package/dist/core/diagnostics/daemon-status.js +113 -0
- package/dist/core/diagnostics/daemon-status.js.map +1 -0
- package/dist/core/diagnostics/entropy-checks.d.ts +82 -0
- package/dist/core/diagnostics/entropy-checks.d.ts.map +1 -0
- package/dist/core/diagnostics/entropy-checks.js +395 -0
- package/dist/core/diagnostics/entropy-checks.js.map +1 -0
- package/dist/core/diagnostics/fix-runner.d.ts +54 -0
- package/dist/core/diagnostics/fix-runner.d.ts.map +1 -0
- package/dist/core/diagnostics/fix-runner.js +90 -0
- package/dist/core/diagnostics/fix-runner.js.map +1 -0
- package/dist/core/diagnostics/knip-runner.d.ts +49 -0
- package/dist/core/diagnostics/knip-runner.d.ts.map +1 -0
- package/dist/core/diagnostics/knip-runner.js +100 -0
- package/dist/core/diagnostics/knip-runner.js.map +1 -0
- package/dist/core/diagnostics/markers.d.ts +96 -0
- package/dist/core/diagnostics/markers.d.ts.map +1 -0
- package/dist/core/diagnostics/markers.js +153 -0
- package/dist/core/diagnostics/markers.js.map +1 -0
- package/dist/core/governance/global-inject.d.ts +60 -0
- package/dist/core/governance/global-inject.d.ts.map +1 -0
- package/dist/core/governance/global-inject.js +129 -0
- package/dist/core/governance/global-inject.js.map +1 -0
- package/dist/core/queue/index.d.ts +16 -3
- package/dist/core/queue/index.d.ts.map +1 -1
- package/dist/core/queue/index.js +14 -3
- package/dist/core/queue/index.js.map +1 -1
- package/dist/core/storage/base.d.ts +158 -0
- package/dist/core/storage/base.d.ts.map +1 -1
- package/dist/core/storage/base.js +570 -0
- package/dist/core/storage/base.js.map +1 -1
- package/dist/core/storage/codec/tool-input-codec.d.ts +93 -0
- package/dist/core/storage/codec/tool-input-codec.d.ts.map +1 -0
- package/dist/core/storage/codec/tool-input-codec.js +159 -0
- package/dist/core/storage/codec/tool-input-codec.js.map +1 -0
- package/dist/core/storage/decisions.d.ts +362 -0
- package/dist/core/storage/decisions.d.ts.map +1 -0
- package/dist/core/storage/decisions.js +502 -0
- package/dist/core/storage/decisions.js.map +1 -0
- package/dist/core/storage/events.d.ts +112 -8
- package/dist/core/storage/events.d.ts.map +1 -1
- package/dist/core/storage/events.js +390 -39
- package/dist/core/storage/events.js.map +1 -1
- package/dist/core/storage/feedback.d.ts +131 -0
- package/dist/core/storage/feedback.d.ts.map +1 -0
- package/dist/core/storage/feedback.js +187 -0
- package/dist/core/storage/feedback.js.map +1 -0
- package/dist/core/storage/forge-config.d.ts +40 -0
- package/dist/core/storage/forge-config.d.ts.map +1 -0
- package/dist/core/storage/forge-config.js +65 -0
- package/dist/core/storage/forge-config.js.map +1 -0
- package/dist/core/storage/injections.d.ts +28 -0
- package/dist/core/storage/injections.d.ts.map +1 -1
- package/dist/core/storage/injections.js +62 -5
- package/dist/core/storage/injections.js.map +1 -1
- package/dist/core/storage/knowledge.d.ts +106 -0
- package/dist/core/storage/knowledge.d.ts.map +1 -0
- package/dist/core/storage/knowledge.js +202 -0
- package/dist/core/storage/knowledge.js.map +1 -0
- package/dist/core/storage/maintenance.d.ts +36 -9
- package/dist/core/storage/maintenance.d.ts.map +1 -1
- package/dist/core/storage/maintenance.js +56 -24
- package/dist/core/storage/maintenance.js.map +1 -1
- package/dist/core/storage/pipeline-rollup.d.ts +117 -0
- package/dist/core/storage/pipeline-rollup.d.ts.map +1 -0
- package/dist/core/storage/pipeline-rollup.js +471 -0
- package/dist/core/storage/pipeline-rollup.js.map +1 -0
- package/dist/core/storage/routing.d.ts +16 -3
- package/dist/core/storage/routing.d.ts.map +1 -1
- package/dist/core/storage/routing.js +39 -8
- package/dist/core/storage/routing.js.map +1 -1
- package/dist/core/storage/rows.d.ts +50 -7
- package/dist/core/storage/rows.d.ts.map +1 -1
- package/dist/core/storage/schema.sql +302 -23
- package/dist/core/storage/sessions.d.ts +136 -0
- package/dist/core/storage/sessions.d.ts.map +1 -1
- package/dist/core/storage/sessions.js +351 -15
- package/dist/core/storage/sessions.js.map +1 -1
- package/dist/core/storage/skills.d.ts +1 -0
- package/dist/core/storage/skills.d.ts.map +1 -1
- package/dist/core/storage/skills.js +21 -6
- package/dist/core/storage/skills.js.map +1 -1
- package/dist/core/storage/sqlite.d.ts +253 -20
- package/dist/core/storage/sqlite.d.ts.map +1 -1
- package/dist/core/storage/sqlite.js +425 -16
- package/dist/core/storage/sqlite.js.map +1 -1
- package/dist/core/storage/tasks.d.ts +474 -2
- package/dist/core/storage/tasks.d.ts.map +1 -1
- package/dist/core/storage/tasks.js +1213 -18
- package/dist/core/storage/tasks.js.map +1 -1
- package/dist/core/storage/tool-intercepts.d.ts +69 -0
- package/dist/core/storage/tool-intercepts.d.ts.map +1 -0
- package/dist/core/storage/tool-intercepts.js +116 -0
- package/dist/core/storage/tool-intercepts.js.map +1 -0
- package/dist/core/storage/workflow-recommendations.d.ts +124 -0
- package/dist/core/storage/workflow-recommendations.d.ts.map +1 -0
- package/dist/core/storage/workflow-recommendations.js +274 -0
- package/dist/core/storage/workflow-recommendations.js.map +1 -0
- package/dist/core/types.d.ts +112 -17
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +12 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils/backup.d.ts +81 -0
- package/dist/core/utils/backup.d.ts.map +1 -0
- package/dist/core/utils/backup.js +98 -0
- package/dist/core/utils/backup.js.map +1 -0
- package/dist/core/utils/binary-paths.d.ts +92 -0
- package/dist/core/utils/binary-paths.d.ts.map +1 -0
- package/dist/core/utils/binary-paths.js +166 -0
- package/dist/core/utils/binary-paths.js.map +1 -0
- package/dist/core/utils/bypass-token.d.ts +75 -0
- package/dist/core/utils/bypass-token.d.ts.map +1 -0
- package/dist/core/utils/bypass-token.js +133 -0
- package/dist/core/utils/bypass-token.js.map +1 -0
- package/dist/core/utils/cc-builtin-agents.d.ts +3 -0
- package/dist/core/utils/cc-builtin-agents.d.ts.map +1 -0
- package/dist/core/utils/cc-builtin-agents.js +29 -0
- package/dist/core/utils/cc-builtin-agents.js.map +1 -0
- package/dist/core/utils/claude-cli-spawn.d.ts +106 -0
- package/dist/core/utils/claude-cli-spawn.d.ts.map +1 -0
- package/dist/core/utils/claude-cli-spawn.js +219 -0
- package/dist/core/utils/claude-cli-spawn.js.map +1 -0
- package/dist/core/utils/forge-resume-block.d.ts.map +1 -1
- package/dist/core/utils/forge-resume-block.js +3 -2
- package/dist/core/utils/forge-resume-block.js.map +1 -1
- package/dist/core/utils/logger.d.ts +15 -3
- package/dist/core/utils/logger.d.ts.map +1 -1
- package/dist/core/utils/logger.js +20 -2
- package/dist/core/utils/logger.js.map +1 -1
- package/dist/core/utils/noise-prompt.d.ts +97 -0
- package/dist/core/utils/noise-prompt.d.ts.map +1 -0
- package/dist/core/utils/noise-prompt.js +127 -0
- package/dist/core/utils/noise-prompt.js.map +1 -0
- package/dist/core/utils/path.d.ts +0 -4
- package/dist/core/utils/path.d.ts.map +1 -1
- package/dist/core/utils/path.js +0 -7
- package/dist/core/utils/path.js.map +1 -1
- package/dist/core/utils/time.d.ts +41 -0
- package/dist/core/utils/time.d.ts.map +1 -1
- package/dist/core/utils/time.js +114 -0
- package/dist/core/utils/time.js.map +1 -1
- package/dist/daemon/agent-sync.d.ts +24 -0
- package/dist/daemon/agent-sync.d.ts.map +1 -0
- package/dist/daemon/agent-sync.js +114 -0
- package/dist/daemon/agent-sync.js.map +1 -0
- package/dist/daemon/config-store.d.ts +55 -0
- package/dist/daemon/config-store.d.ts.map +1 -0
- package/dist/daemon/config-store.js +137 -0
- package/dist/daemon/config-store.js.map +1 -0
- package/dist/daemon/event-parser.d.ts +22 -0
- package/dist/daemon/event-parser.d.ts.map +1 -1
- package/dist/daemon/event-parser.js +49 -3
- package/dist/daemon/event-parser.js.map +1 -1
- package/dist/daemon/handlers/history-exporter.d.ts.map +1 -1
- package/dist/daemon/handlers/history-exporter.js +9 -8
- package/dist/daemon/handlers/history-exporter.js.map +1 -1
- package/dist/daemon/handlers/post-tool-use.d.ts +58 -4
- package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use.js +261 -8
- package/dist/daemon/handlers/post-tool-use.js.map +1 -1
- package/dist/daemon/handlers/pre-tool-use.d.ts +156 -0
- package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -0
- package/dist/daemon/handlers/pre-tool-use.js +585 -0
- package/dist/daemon/handlers/pre-tool-use.js.map +1 -0
- package/dist/daemon/handlers/stop.d.ts +35 -7
- package/dist/daemon/handlers/stop.d.ts.map +1 -1
- package/dist/daemon/handlers/stop.js +157 -8
- package/dist/daemon/handlers/stop.js.map +1 -1
- package/dist/daemon/handlers/user-prompt.d.ts +36 -14
- package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt.js +135 -48
- package/dist/daemon/handlers/user-prompt.js.map +1 -1
- package/dist/daemon/hook-sync.d.ts.map +1 -1
- package/dist/daemon/hook-sync.js +2 -1
- package/dist/daemon/hook-sync.js.map +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +471 -43
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/lifecycle.d.ts +48 -1
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +98 -2
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/router.d.ts +4 -1
- package/dist/daemon/router.d.ts.map +1 -1
- package/dist/daemon/router.js +4 -2
- package/dist/daemon/router.js.map +1 -1
- package/dist/daemon/rules/defaults.d.ts +20 -0
- package/dist/daemon/rules/defaults.d.ts.map +1 -0
- package/dist/daemon/rules/defaults.js +692 -0
- package/dist/daemon/rules/defaults.js.map +1 -0
- package/dist/daemon/rules/registry.d.ts +47 -0
- package/dist/daemon/rules/registry.d.ts.map +1 -0
- package/dist/daemon/rules/registry.js +84 -0
- package/dist/daemon/rules/registry.js.map +1 -0
- package/dist/daemon/rules/types.d.ts +170 -0
- package/dist/daemon/rules/types.d.ts.map +1 -0
- package/dist/daemon/rules/types.js +15 -0
- package/dist/daemon/rules/types.js.map +1 -0
- package/dist/daemon/rules/whitelist.d.ts +101 -0
- package/dist/daemon/rules/whitelist.d.ts.map +1 -0
- package/dist/daemon/rules/whitelist.js +210 -0
- package/dist/daemon/rules/whitelist.js.map +1 -0
- package/dist/daemon/rules/workflow-defaults.d.ts +52 -0
- package/dist/daemon/rules/workflow-defaults.d.ts.map +1 -0
- package/dist/daemon/rules/workflow-defaults.js +521 -0
- package/dist/daemon/rules/workflow-defaults.js.map +1 -0
- package/dist/daemon/server.d.ts +11 -1
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +7 -1
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/services/context-injector.d.ts +34 -0
- package/dist/daemon/services/context-injector.d.ts.map +1 -0
- package/dist/daemon/services/context-injector.js +61 -0
- package/dist/daemon/services/context-injector.js.map +1 -0
- package/dist/daemon/services/decision-hint.d.ts +203 -0
- package/dist/daemon/services/decision-hint.d.ts.map +1 -0
- package/dist/daemon/services/decision-hint.js +487 -0
- package/dist/daemon/services/decision-hint.js.map +1 -0
- package/dist/daemon/services/event-ttl-sweep.d.ts +86 -0
- package/dist/daemon/services/event-ttl-sweep.d.ts.map +1 -0
- package/dist/daemon/services/event-ttl-sweep.js +123 -0
- package/dist/daemon/services/event-ttl-sweep.js.map +1 -0
- package/dist/daemon/services/experience-extractor.d.ts +67 -0
- package/dist/daemon/services/experience-extractor.d.ts.map +1 -0
- package/dist/daemon/services/experience-extractor.js +323 -0
- package/dist/daemon/services/experience-extractor.js.map +1 -0
- package/dist/daemon/services/feedback-aggregator.d.ts +179 -0
- package/dist/daemon/services/feedback-aggregator.d.ts.map +1 -0
- package/dist/daemon/services/feedback-aggregator.js +455 -0
- package/dist/daemon/services/feedback-aggregator.js.map +1 -0
- package/dist/daemon/services/heartbeat-writer.d.ts +55 -0
- package/dist/daemon/services/heartbeat-writer.d.ts.map +1 -0
- package/dist/daemon/services/heartbeat-writer.js +111 -0
- package/dist/daemon/services/heartbeat-writer.js.map +1 -0
- package/dist/daemon/services/idle-session-sweeper.d.ts +61 -0
- package/dist/daemon/services/idle-session-sweeper.d.ts.map +1 -0
- package/dist/daemon/services/idle-session-sweeper.js +94 -0
- package/dist/daemon/services/idle-session-sweeper.js.map +1 -0
- package/dist/daemon/services/idle-task-budget.d.ts +50 -0
- package/dist/daemon/services/idle-task-budget.d.ts.map +1 -0
- package/dist/daemon/services/idle-task-budget.js +72 -0
- package/dist/daemon/services/idle-task-budget.js.map +1 -0
- package/dist/daemon/services/intercept-revive.d.ts +60 -0
- package/dist/daemon/services/intercept-revive.d.ts.map +1 -0
- package/dist/daemon/services/intercept-revive.js +86 -0
- package/dist/daemon/services/intercept-revive.js.map +1 -0
- package/dist/daemon/services/intercept-rollback-guard.d.ts +105 -0
- package/dist/daemon/services/intercept-rollback-guard.d.ts.map +1 -0
- package/dist/daemon/services/intercept-rollback-guard.js +152 -0
- package/dist/daemon/services/intercept-rollback-guard.js.map +1 -0
- package/dist/daemon/services/intercept-timeout-sweeper.d.ts +58 -0
- package/dist/daemon/services/intercept-timeout-sweeper.d.ts.map +1 -0
- package/dist/daemon/services/intercept-timeout-sweeper.js +83 -0
- package/dist/daemon/services/intercept-timeout-sweeper.js.map +1 -0
- package/dist/daemon/services/kb-injector.d.ts +57 -0
- package/dist/daemon/services/kb-injector.d.ts.map +1 -0
- package/dist/daemon/services/kb-injector.js +140 -0
- package/dist/daemon/services/kb-injector.js.map +1 -0
- package/dist/daemon/services/outcome-classification-service.d.ts +49 -0
- package/dist/daemon/services/outcome-classification-service.d.ts.map +1 -0
- package/dist/daemon/services/outcome-classification-service.js +214 -0
- package/dist/daemon/services/outcome-classification-service.js.map +1 -0
- package/dist/daemon/services/outcome-classifier.d.ts +136 -0
- package/dist/daemon/services/outcome-classifier.d.ts.map +1 -0
- package/dist/daemon/services/outcome-classifier.js +178 -0
- package/dist/daemon/services/outcome-classifier.js.map +1 -0
- package/dist/daemon/services/outcome-nudge.d.ts +107 -0
- package/dist/daemon/services/outcome-nudge.d.ts.map +1 -0
- package/dist/daemon/services/outcome-nudge.js +242 -0
- package/dist/daemon/services/outcome-nudge.js.map +1 -0
- package/dist/daemon/services/spec-approval.d.ts +127 -0
- package/dist/daemon/services/spec-approval.d.ts.map +1 -0
- package/dist/daemon/services/spec-approval.js +216 -0
- package/dist/daemon/services/spec-approval.js.map +1 -0
- package/dist/daemon/services/spec-gate.d.ts +54 -0
- package/dist/daemon/services/spec-gate.d.ts.map +1 -0
- package/dist/daemon/services/spec-gate.js +113 -0
- package/dist/daemon/services/spec-gate.js.map +1 -0
- package/dist/daemon/services/task-boundary-classifier.d.ts +78 -0
- package/dist/daemon/services/task-boundary-classifier.d.ts.map +1 -0
- package/dist/daemon/services/task-boundary-classifier.js +202 -0
- package/dist/daemon/services/task-boundary-classifier.js.map +1 -0
- package/dist/daemon/services/task-segmenter.d.ts +219 -1
- package/dist/daemon/services/task-segmenter.d.ts.map +1 -1
- package/dist/daemon/services/task-segmenter.js +481 -17
- package/dist/daemon/services/task-segmenter.js.map +1 -1
- package/dist/daemon/services/violation-reporter.d.ts +130 -0
- package/dist/daemon/services/violation-reporter.d.ts.map +1 -0
- package/dist/daemon/services/violation-reporter.js +339 -0
- package/dist/daemon/services/violation-reporter.js.map +1 -0
- package/dist/daemon/skill-sync.d.ts +7 -2
- package/dist/daemon/skill-sync.d.ts.map +1 -1
- package/dist/daemon/skill-sync.js +114 -9
- package/dist/daemon/skill-sync.js.map +1 -1
- package/dist/daemon/templates/agents/claudemd-writer.md +101 -0
- package/dist/daemon/templates/agents/coder.md +105 -0
- package/dist/daemon/templates/agents/decision-maker.md +460 -0
- package/dist/daemon/templates/agents/doc-reviewer.md +115 -0
- package/dist/daemon/templates/agents/harness-debug-full.md +114 -0
- package/dist/daemon/templates/agents/harness-hotfix.md +99 -0
- package/dist/daemon/templates/agents/hybrid-feature-with-safety.md +104 -0
- package/dist/daemon/templates/agents/knowledge-builder.md +119 -0
- package/dist/daemon/templates/agents/patch-applier.md +144 -0
- package/dist/daemon/templates/agents/planner.md +165 -0
- package/dist/daemon/templates/agents/refactor-specialist.md +98 -0
- package/dist/daemon/templates/agents/skill-distiller.md +113 -0
- package/dist/daemon/templates/agents/task-boundary-classifier.md +64 -0
- package/dist/daemon/templates/agents/verify-agent.md +136 -0
- package/dist/daemon/utils/inject-block.d.ts +39 -0
- package/dist/daemon/utils/inject-block.d.ts.map +1 -0
- package/dist/daemon/utils/inject-block.js +25 -0
- package/dist/daemon/utils/inject-block.js.map +1 -0
- package/dist/hooks/hook-lib.sh +8 -0
- package/dist/hooks/notification.sh +19 -8
- package/dist/hooks/post-tool-use.sh +41 -23
- package/dist/hooks/pre-tool-use.sh +54 -23
- package/dist/hooks/session-start.sh +68 -0
- package/dist/hooks/stop.sh +24 -10
- package/dist/hooks/user-prompt-submit.sh +37 -21
- package/dist/knowledge/adapters/go-adapter.d.ts +65 -0
- package/dist/knowledge/adapters/go-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/go-adapter.js +294 -0
- package/dist/knowledge/adapters/go-adapter.js.map +1 -0
- package/dist/knowledge/adapters/index.d.ts +41 -0
- package/dist/knowledge/adapters/index.d.ts.map +1 -0
- package/dist/knowledge/adapters/index.js +71 -0
- package/dist/knowledge/adapters/index.js.map +1 -0
- package/dist/knowledge/adapters/java-adapter.d.ts +66 -0
- package/dist/knowledge/adapters/java-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/java-adapter.js +260 -0
- package/dist/knowledge/adapters/java-adapter.js.map +1 -0
- package/dist/knowledge/adapters/js-vue-adapter.d.ts +56 -0
- package/dist/knowledge/adapters/js-vue-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/js-vue-adapter.js +203 -0
- package/dist/knowledge/adapters/js-vue-adapter.js.map +1 -0
- package/dist/knowledge/adapters/kotlin-adapter.d.ts +55 -0
- package/dist/knowledge/adapters/kotlin-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/kotlin-adapter.js +209 -0
- package/dist/knowledge/adapters/kotlin-adapter.js.map +1 -0
- package/dist/knowledge/adapters/monorepo-adapter.d.ts +77 -0
- package/dist/knowledge/adapters/monorepo-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/monorepo-adapter.js +170 -0
- package/dist/knowledge/adapters/monorepo-adapter.js.map +1 -0
- package/dist/knowledge/adapters/python-adapter.d.ts +89 -0
- package/dist/knowledge/adapters/python-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/python-adapter.js +358 -0
- package/dist/knowledge/adapters/python-adapter.js.map +1 -0
- package/dist/knowledge/adapters/rust-adapter.d.ts +73 -0
- package/dist/knowledge/adapters/rust-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/rust-adapter.js +329 -0
- package/dist/knowledge/adapters/rust-adapter.js.map +1 -0
- package/dist/knowledge/adapters/types.d.ts +99 -0
- package/dist/knowledge/adapters/types.d.ts.map +1 -0
- package/dist/knowledge/adapters/types.js +17 -0
- package/dist/knowledge/adapters/types.js.map +1 -0
- package/dist/knowledge/adapters/typescript-adapter.d.ts +57 -0
- package/dist/knowledge/adapters/typescript-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/typescript-adapter.js +171 -0
- package/dist/knowledge/adapters/typescript-adapter.js.map +1 -0
- package/dist/knowledge/audit-applier.d.ts +70 -0
- package/dist/knowledge/audit-applier.d.ts.map +1 -0
- package/dist/knowledge/audit-applier.js +251 -0
- package/dist/knowledge/audit-applier.js.map +1 -0
- package/dist/knowledge/builder.d.ts +261 -0
- package/dist/knowledge/builder.d.ts.map +1 -0
- package/dist/knowledge/builder.js +937 -0
- package/dist/knowledge/builder.js.map +1 -0
- package/dist/knowledge/cli-provider.d.ts +151 -0
- package/dist/knowledge/cli-provider.d.ts.map +1 -0
- package/dist/knowledge/cli-provider.js +313 -0
- package/dist/knowledge/cli-provider.js.map +1 -0
- package/dist/knowledge/constants.d.ts +73 -0
- package/dist/knowledge/constants.d.ts.map +1 -0
- package/dist/knowledge/constants.js +93 -0
- package/dist/knowledge/constants.js.map +1 -0
- package/dist/knowledge/cross-module.d.ts +139 -0
- package/dist/knowledge/cross-module.d.ts.map +1 -0
- package/dist/knowledge/cross-module.js +370 -0
- package/dist/knowledge/cross-module.js.map +1 -0
- package/dist/knowledge/git-hooks.d.ts +67 -0
- package/dist/knowledge/git-hooks.d.ts.map +1 -0
- package/dist/knowledge/git-hooks.js +258 -0
- package/dist/knowledge/git-hooks.js.map +1 -0
- package/dist/knowledge/module-hash.d.ts +88 -0
- package/dist/knowledge/module-hash.d.ts.map +1 -0
- package/dist/knowledge/module-hash.js +162 -0
- package/dist/knowledge/module-hash.js.map +1 -0
- package/dist/knowledge/project-detector.d.ts +101 -0
- package/dist/knowledge/project-detector.d.ts.map +1 -0
- package/dist/knowledge/project-detector.js +223 -0
- package/dist/knowledge/project-detector.js.map +1 -0
- package/dist/knowledge/prompt.d.ts +228 -0
- package/dist/knowledge/prompt.d.ts.map +1 -0
- package/dist/knowledge/prompt.js +404 -0
- package/dist/knowledge/prompt.js.map +1 -0
- package/dist/knowledge/query.d.ts +105 -0
- package/dist/knowledge/query.d.ts.map +1 -0
- package/dist/knowledge/query.js +341 -0
- package/dist/knowledge/query.js.map +1 -0
- package/dist/knowledge/repo-map.d.ts +91 -0
- package/dist/knowledge/repo-map.d.ts.map +1 -0
- package/dist/knowledge/repo-map.js +408 -0
- package/dist/knowledge/repo-map.js.map +1 -0
- package/dist/knowledge/tools/index.d.ts +14 -0
- package/dist/knowledge/tools/index.d.ts.map +1 -0
- package/dist/knowledge/tools/index.js +11 -0
- package/dist/knowledge/tools/index.js.map +1 -0
- package/dist/knowledge/tools/knowledge-get-page.d.ts +46 -0
- package/dist/knowledge/tools/knowledge-get-page.d.ts.map +1 -0
- package/dist/knowledge/tools/knowledge-get-page.js +101 -0
- package/dist/knowledge/tools/knowledge-get-page.js.map +1 -0
- package/dist/knowledge/tools/knowledge-query.d.ts +77 -0
- package/dist/knowledge/tools/knowledge-query.d.ts.map +1 -0
- package/dist/knowledge/tools/knowledge-query.js +104 -0
- package/dist/knowledge/tools/knowledge-query.js.map +1 -0
- package/dist/knowledge/tools/repo-map-lookup.d.ts +45 -0
- package/dist/knowledge/tools/repo-map-lookup.d.ts.map +1 -0
- package/dist/knowledge/tools/repo-map-lookup.js +82 -0
- package/dist/knowledge/tools/repo-map-lookup.js.map +1 -0
- package/dist/knowledge/types.d.ts +269 -0
- package/dist/knowledge/types.d.ts.map +1 -0
- package/dist/knowledge/types.js +10 -0
- package/dist/knowledge/types.js.map +1 -0
- package/dist/knowledge/validator.d.ts +90 -0
- package/dist/knowledge/validator.d.ts.map +1 -0
- package/dist/knowledge/validator.js +288 -0
- package/dist/knowledge/validator.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +222 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/skills/builtin-skills.d.ts +35 -0
- package/dist/skills/builtin-skills.d.ts.map +1 -0
- package/dist/skills/builtin-skills.js +68 -0
- package/dist/skills/builtin-skills.js.map +1 -0
- package/dist/skills/distill/attribution.d.ts +59 -0
- package/dist/skills/distill/attribution.d.ts.map +1 -0
- package/dist/skills/distill/attribution.js +101 -0
- package/dist/skills/distill/attribution.js.map +1 -0
- package/dist/skills/distill/claude-cli-resolver.d.ts +26 -0
- package/dist/skills/distill/claude-cli-resolver.d.ts.map +1 -0
- package/dist/skills/distill/claude-cli-resolver.js +115 -0
- package/dist/skills/distill/claude-cli-resolver.js.map +1 -0
- package/dist/skills/distill/distiller.d.ts +161 -0
- package/dist/skills/distill/distiller.d.ts.map +1 -0
- package/dist/skills/distill/distiller.js +461 -0
- package/dist/skills/distill/distiller.js.map +1 -0
- package/dist/skills/distill/index.d.ts +223 -0
- package/dist/skills/distill/index.d.ts.map +1 -0
- package/dist/skills/distill/index.js +466 -0
- package/dist/skills/distill/index.js.map +1 -0
- package/dist/skills/distill/project-anchor-guard.d.ts +116 -0
- package/dist/skills/distill/project-anchor-guard.d.ts.map +1 -0
- package/dist/skills/distill/project-anchor-guard.js +334 -0
- package/dist/skills/distill/project-anchor-guard.js.map +1 -0
- package/dist/skills/distill/topic-deduper.d.ts +77 -0
- package/dist/skills/distill/topic-deduper.d.ts.map +1 -0
- package/dist/skills/distill/topic-deduper.js +119 -0
- package/dist/skills/distill/topic-deduper.js.map +1 -0
- package/dist/skills/distill/upstream-fetcher.d.ts +71 -0
- package/dist/skills/distill/upstream-fetcher.d.ts.map +1 -0
- package/dist/skills/distill/upstream-fetcher.js +202 -0
- package/dist/skills/distill/upstream-fetcher.js.map +1 -0
- package/dist/skills/distilled/distilled-api-design.md +491 -0
- package/dist/skills/distilled/distilled-architecture-decision.md +173 -0
- package/dist/skills/distilled/distilled-creator.md +178 -0
- package/dist/skills/distilled/distilled-db-schema-design.md +245 -0
- package/dist/skills/distilled/distilled-defi-amm-security.md +293 -0
- package/dist/skills/distilled/distilled-executing-plans.md +113 -0
- package/dist/skills/distilled/distilled-harness-engineering.md +242 -0
- package/dist/skills/distilled/distilled-karpathy-guidelines.md +104 -0
- package/dist/skills/distilled/distilled-performance-optimization.md +175 -0
- package/dist/skills/distilled/distilled-spec-driven-design.md +193 -0
- package/dist/skills/distilled/distilled-systematic-debugging.md +306 -0
- package/dist/skills/distilled/distilled-verification-before-completion.md +203 -0
- package/dist/skills/keyword-score.d.ts +29 -0
- package/dist/skills/keyword-score.d.ts.map +1 -0
- package/dist/skills/keyword-score.js +54 -0
- package/dist/skills/keyword-score.js.map +1 -0
- package/dist/skills/registry.d.ts +64 -20
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +102 -105
- package/dist/skills/registry.js.map +1 -1
- package/dist/skills/tools/pipeline-suggest.js +14 -14
- package/dist/skills/tools/skill-invoke.d.ts +1 -1
- package/dist/skills/tools/skill-invoke.js +1 -1
- package/dist/web/routes/agent-content.d.ts +30 -0
- package/dist/web/routes/agent-content.d.ts.map +1 -0
- package/dist/web/routes/agent-content.js +139 -0
- package/dist/web/routes/agent-content.js.map +1 -0
- package/dist/web/routes/decisions.d.ts +15 -0
- package/dist/web/routes/decisions.d.ts.map +1 -0
- package/dist/web/routes/decisions.js +181 -0
- package/dist/web/routes/decisions.js.map +1 -0
- package/dist/web/routes/diagnostics.d.ts +61 -0
- package/dist/web/routes/diagnostics.d.ts.map +1 -0
- package/dist/web/routes/diagnostics.js +203 -0
- package/dist/web/routes/diagnostics.js.map +1 -0
- package/dist/web/routes/events.d.ts.map +1 -1
- package/dist/web/routes/events.js +24 -0
- package/dist/web/routes/events.js.map +1 -1
- package/dist/web/routes/health.d.ts +33 -0
- package/dist/web/routes/health.d.ts.map +1 -0
- package/dist/web/routes/health.js +37 -0
- package/dist/web/routes/health.js.map +1 -0
- package/dist/web/routes/insights.d.ts +0 -5
- package/dist/web/routes/insights.d.ts.map +1 -1
- package/dist/web/routes/insights.js +783 -2
- package/dist/web/routes/insights.js.map +1 -1
- package/dist/web/routes/knowledge.d.ts +16 -0
- package/dist/web/routes/knowledge.d.ts.map +1 -0
- package/dist/web/routes/knowledge.js +661 -0
- package/dist/web/routes/knowledge.js.map +1 -0
- package/dist/web/routes/patch.d.ts +60 -1
- package/dist/web/routes/patch.d.ts.map +1 -1
- package/dist/web/routes/patch.js +170 -64
- package/dist/web/routes/patch.js.map +1 -1
- package/dist/web/routes/pipeline.d.ts +37 -0
- package/dist/web/routes/pipeline.d.ts.map +1 -0
- package/dist/web/routes/pipeline.js +149 -0
- package/dist/web/routes/pipeline.js.map +1 -0
- package/dist/web/routes/rules.d.ts.map +1 -1
- package/dist/web/routes/rules.js +6 -1
- 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 +9 -1
- package/dist/web/routes/sessions.js.map +1 -1
- package/dist/web/routes/skill-content.d.ts +30 -0
- package/dist/web/routes/skill-content.d.ts.map +1 -0
- package/dist/web/routes/skill-content.js +117 -0
- package/dist/web/routes/skill-content.js.map +1 -0
- package/dist/web/routes/skills-distill.d.ts +29 -0
- package/dist/web/routes/skills-distill.d.ts.map +1 -0
- package/dist/web/routes/skills-distill.js +552 -0
- package/dist/web/routes/skills-distill.js.map +1 -0
- package/dist/web/routes/skills.js +7 -7
- package/dist/web/routes/skills.js.map +1 -1
- package/dist/web/routes/task-timeline.d.ts +102 -0
- package/dist/web/routes/task-timeline.d.ts.map +1 -0
- package/dist/web/routes/task-timeline.js +274 -0
- package/dist/web/routes/task-timeline.js.map +1 -0
- package/dist/web/routes/tasks.d.ts.map +1 -1
- package/dist/web/routes/tasks.js +355 -8
- package/dist/web/routes/tasks.js.map +1 -1
- package/dist/web/routes/trace.d.ts.map +1 -1
- package/dist/web/routes/trace.js +3 -2
- package/dist/web/routes/trace.js.map +1 -1
- package/dist/web/routes/types.d.ts +0 -4
- package/dist/web/routes/types.d.ts.map +1 -1
- package/dist/web/routes/types.js +1 -1
- package/dist/web/routes/types.js.map +1 -1
- package/dist/web/routes/violations.d.ts +14 -0
- package/dist/web/routes/violations.d.ts.map +1 -0
- package/dist/web/routes/violations.js +111 -0
- package/dist/web/routes/violations.js.map +1 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +79 -19
- package/dist/web/server.js.map +1 -1
- package/dist/web/services/build-manager.d.ts +72 -0
- package/dist/web/services/build-manager.d.ts.map +1 -0
- package/dist/web/services/build-manager.js +189 -0
- package/dist/web/services/build-manager.js.map +1 -0
- package/dist/web/services/distill-manager.d.ts +125 -0
- package/dist/web/services/distill-manager.d.ts.map +1 -0
- package/dist/web/services/distill-manager.js +308 -0
- package/dist/web/services/distill-manager.js.map +1 -0
- package/dist/web/static/assets/AgentContentPage-DkeRNxok.js +2 -0
- package/dist/web/static/assets/AgentContentPage-DkeRNxok.js.map +1 -0
- package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js +2 -0
- package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js.map +1 -0
- package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js +3 -0
- package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js.map +1 -0
- package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js +2 -0
- package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js.map +1 -0
- package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js +2 -0
- package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js.map +1 -0
- package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js +2 -0
- package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js.map +1 -0
- package/dist/web/static/assets/DriftTab-DqpepOhI.js +2 -0
- package/dist/web/static/assets/DriftTab-DqpepOhI.js.map +1 -0
- package/dist/web/static/assets/HealthHomePage-CN6zNIie.js +3 -0
- package/dist/web/static/assets/HealthHomePage-CN6zNIie.js.map +1 -0
- package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js +2 -0
- package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js.map +1 -0
- package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js +3 -0
- package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js.map +1 -0
- package/dist/web/static/assets/NotFound-BQPh0vaF.js +2 -0
- package/dist/web/static/assets/NotFound-BQPh0vaF.js.map +1 -0
- package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js +2 -0
- package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js.map +1 -0
- package/dist/web/static/assets/SettingsPage-oLJBNzQj.js +2 -0
- package/dist/web/static/assets/SettingsPage-oLJBNzQj.js.map +1 -0
- package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js +2 -0
- package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js.map +1 -0
- package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js +2 -0
- package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js.map +1 -0
- package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js +2 -0
- package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js.map +1 -0
- package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js +6 -0
- package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js.map +1 -0
- package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js +3 -0
- package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js.map +1 -0
- package/dist/web/static/assets/arco-Bhi3a6Qp.js +14 -0
- package/dist/web/static/assets/arco-Bhi3a6Qp.js.map +1 -0
- package/dist/web/static/assets/arco-DFQA6dO_.css +1 -0
- package/dist/web/static/assets/charts-BuHQWDbQ.js +37 -0
- package/dist/web/static/assets/charts-BuHQWDbQ.js.map +1 -0
- package/dist/web/static/assets/date-fns-sbWH3_uq.js +2 -0
- package/dist/web/static/assets/date-fns-sbWH3_uq.js.map +1 -0
- package/dist/web/static/assets/index-7bl3kbcx.css +1 -0
- package/dist/web/static/assets/index-BIYnq1Dx.js +4 -0
- package/dist/web/static/assets/index-BIYnq1Dx.js.map +1 -0
- package/dist/web/static/assets/lucide-CnlPQoG8.js +72 -0
- package/dist/web/static/assets/lucide-CnlPQoG8.js.map +1 -0
- package/dist/web/static/assets/outcome-DUn1NjlC.js +2 -0
- package/dist/web/static/assets/outcome-DUn1NjlC.js.map +1 -0
- package/dist/web/static/assets/query-S6X1S7K9.js +2 -0
- package/dist/web/static/assets/{query-C99w429o.js.map → query-S6X1S7K9.js.map} +1 -1
- package/dist/web/static/assets/{react-router-r79dBVy4.js → react-router-JVUrkhdd.js} +3 -3
- package/dist/web/static/assets/{react-router-r79dBVy4.js.map → react-router-JVUrkhdd.js.map} +1 -1
- package/dist/web/static/assets/react-vendor-tkvCrao7.js +57 -0
- package/dist/web/static/assets/react-vendor-tkvCrao7.js.map +1 -0
- package/dist/web/static/assets/syntax-highlighter-BkZfCDsz.js +6 -0
- package/dist/web/static/assets/syntax-highlighter-BkZfCDsz.js.map +1 -0
- package/dist/web/static/assets/useTabsParam-k8qte_0C.js +2 -0
- package/dist/web/static/assets/useTabsParam-k8qte_0C.js.map +1 -0
- package/dist/web/static/assets/vendor-DWgdB1eY.js +65 -0
- package/dist/web/static/assets/vendor-DWgdB1eY.js.map +1 -0
- package/dist/web/static/index.html +12 -8
- package/package.json +14 -3
- package/dist/core/ai/provider.d.ts +0 -63
- package/dist/core/ai/provider.d.ts.map +0 -1
- package/dist/core/ai/provider.js +0 -241
- package/dist/core/ai/provider.js.map +0 -1
- package/dist/core/ai/types.d.ts +0 -43
- package/dist/core/ai/types.d.ts.map +0 -1
- package/dist/core/ai/types.js +0 -5
- package/dist/core/ai/types.js.map +0 -1
- package/dist/core/storage/token-usage.d.ts +0 -36
- package/dist/core/storage/token-usage.d.ts.map +0 -1
- package/dist/core/storage/token-usage.js +0 -59
- package/dist/core/storage/token-usage.js.map +0 -1
- package/dist/core/utils/token-tracker.d.ts +0 -39
- package/dist/core/utils/token-tracker.d.ts.map +0 -1
- package/dist/core/utils/token-tracker.js +0 -69
- package/dist/core/utils/token-tracker.js.map +0 -1
- package/dist/skills/index.d.ts +0 -3
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js +0 -3
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/matcher.d.ts +0 -26
- package/dist/skills/matcher.d.ts.map +0 -1
- package/dist/skills/matcher.js +0 -113
- package/dist/skills/matcher.js.map +0 -1
- package/dist/skills/official/code-simplifier.md +0 -52
- package/dist/skills/official/find-skills.md +0 -142
- package/dist/skills/official/official-api-design.md +0 -30
- package/dist/skills/official/official-architecture-decision.md +0 -41
- package/dist/skills/official/official-bmad.md +0 -118
- package/dist/skills/official/official-db-schema-design.md +0 -34
- package/dist/skills/official/official-debug.md +0 -25
- package/dist/skills/official/official-doc-driven.md +0 -31
- package/dist/skills/official/official-harness-engineering.md +0 -108
- package/dist/skills/official/official-performance-optimization.md +0 -30
- package/dist/skills/official/official-pr-review.md +0 -35
- package/dist/skills/official/official-release-checklist.md +0 -30
- package/dist/skills/official/official-security-hardening.md +0 -32
- package/dist/skills/official/official-spec-driven-design.md +0 -31
- package/dist/skills/official/planning-with-files.md +0 -241
- package/dist/skills/official/ui-ux-pro-max.md +0 -105
- package/dist/skills/official/webapp-testing.md +0 -96
- package/dist/skills/official-skills.d.ts +0 -26
- package/dist/skills/official-skills.d.ts.map +0 -1
- package/dist/skills/official-skills.js +0 -73
- package/dist/skills/official-skills.js.map +0 -1
- package/dist/skills/semantic-matcher.d.ts +0 -60
- package/dist/skills/semantic-matcher.d.ts.map +0 -1
- package/dist/skills/semantic-matcher.js +0 -192
- package/dist/skills/semantic-matcher.js.map +0 -1
- package/dist/skills/upgrade-engine.d.ts +0 -93
- package/dist/skills/upgrade-engine.d.ts.map +0 -1
- package/dist/skills/upgrade-engine.js +0 -447
- package/dist/skills/upgrade-engine.js.map +0 -1
- package/dist/skills/upgrade-prompt.d.ts +0 -20
- package/dist/skills/upgrade-prompt.d.ts.map +0 -1
- package/dist/skills/upgrade-prompt.js +0 -75
- package/dist/skills/upgrade-prompt.js.map +0 -1
- package/dist/web/routes/ai.d.ts +0 -10
- package/dist/web/routes/ai.d.ts.map +0 -1
- package/dist/web/routes/ai.js +0 -186
- package/dist/web/routes/ai.js.map +0 -1
- package/dist/web/routes/token-usage.d.ts +0 -7
- package/dist/web/routes/token-usage.d.ts.map +0 -1
- package/dist/web/routes/token-usage.js +0 -18
- package/dist/web/routes/token-usage.js.map +0 -1
- package/dist/web/ssrf-guard.d.ts +0 -35
- package/dist/web/ssrf-guard.d.ts.map +0 -1
- package/dist/web/ssrf-guard.js +0 -93
- package/dist/web/ssrf-guard.js.map +0 -1
- package/dist/web/static/assets/AIConfig-CdDWzJyO.js +0 -2
- package/dist/web/static/assets/AIConfig-CdDWzJyO.js.map +0 -1
- package/dist/web/static/assets/Dashboard-CoEmmIDt.js +0 -2
- package/dist/web/static/assets/Dashboard-CoEmmIDt.js.map +0 -1
- package/dist/web/static/assets/Drawer-DdRTzlLB.js +0 -2
- package/dist/web/static/assets/Drawer-DdRTzlLB.js.map +0 -1
- package/dist/web/static/assets/Events-DrIq1SUS.js +0 -2
- package/dist/web/static/assets/Events-DrIq1SUS.js.map +0 -1
- package/dist/web/static/assets/Reports-DFBM3MDK.js +0 -2
- package/dist/web/static/assets/Reports-DFBM3MDK.js.map +0 -1
- package/dist/web/static/assets/SearchInput-qCj_jAcf.js +0 -2
- package/dist/web/static/assets/SearchInput-qCj_jAcf.js.map +0 -1
- package/dist/web/static/assets/SessionDetail-CCzwdoT7.js +0 -2
- package/dist/web/static/assets/SessionDetail-CCzwdoT7.js.map +0 -1
- package/dist/web/static/assets/Sessions-FfLYkAw9.js +0 -2
- package/dist/web/static/assets/Sessions-FfLYkAw9.js.map +0 -1
- package/dist/web/static/assets/Skills-C8Gvs3Qa.js +0 -2
- package/dist/web/static/assets/Skills-C8Gvs3Qa.js.map +0 -1
- package/dist/web/static/assets/TaskDetail-BS8pYhaR.js +0 -2
- package/dist/web/static/assets/TaskDetail-BS8pYhaR.js.map +0 -1
- package/dist/web/static/assets/Tasks-CyuhizG8.js +0 -2
- package/dist/web/static/assets/Tasks-CyuhizG8.js.map +0 -1
- package/dist/web/static/assets/charts-CLrM0_uM.js +0 -37
- package/dist/web/static/assets/charts-CLrM0_uM.js.map +0 -1
- package/dist/web/static/assets/date-fns-CZ_bHujz.js +0 -2
- package/dist/web/static/assets/date-fns-CZ_bHujz.js.map +0 -1
- package/dist/web/static/assets/export-L_VBD2p1.js +0 -4
- package/dist/web/static/assets/export-L_VBD2p1.js.map +0 -1
- package/dist/web/static/assets/index-CBX47X8l.js +0 -3
- package/dist/web/static/assets/index-CBX47X8l.js.map +0 -1
- package/dist/web/static/assets/index-DjIoMdoR.css +0 -1
- package/dist/web/static/assets/lucide-Bs_edTLa.js +0 -232
- package/dist/web/static/assets/lucide-Bs_edTLa.js.map +0 -1
- package/dist/web/static/assets/query-C99w429o.js +0 -2
- package/dist/web/static/assets/react-vendor-CSp-GLFF.js +0 -49
- package/dist/web/static/assets/react-vendor-CSp-GLFF.js.map +0 -1
- package/dist/web/static/assets/syntax-highlighter-44FakypI.js +0 -9
- package/dist/web/static/assets/syntax-highlighter-44FakypI.js.map +0 -1
- package/dist/web/static/assets/task-title-BhOcemuR.js +0 -2
- package/dist/web/static/assets/task-title-BhOcemuR.js.map +0 -1
- package/dist/web/static/assets/time-Bxuk0M-C.js +0 -2
- package/dist/web/static/assets/time-Bxuk0M-C.js.map +0 -1
- package/dist/web/static/assets/vendor-CMMjVdZs.js +0 -64
- package/dist/web/static/assets/vendor-CMMjVdZs.js.map +0 -1
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: distilled-architecture-decision
|
|
3
|
+
version: 1.0.0-portable
|
|
4
|
+
description: 'Distilled IT-universal skill: architecture decision records (portable, hand-rewritten 2026-05-27)'
|
|
5
|
+
keywords:
|
|
6
|
+
- architecture
|
|
7
|
+
- adr
|
|
8
|
+
- decision
|
|
9
|
+
- design
|
|
10
|
+
- record
|
|
11
|
+
- architecture decision
|
|
12
|
+
- 架构决策
|
|
13
|
+
- 技术选型
|
|
14
|
+
rubric_version: 2
|
|
15
|
+
distilled_from:
|
|
16
|
+
- upstream: https://github.com/winspan/claude-forge.git
|
|
17
|
+
license: MIT
|
|
18
|
+
commit: 7d96b86c
|
|
19
|
+
paths:
|
|
20
|
+
- official/official-architecture-decision.md
|
|
21
|
+
distilled_at: '2026-05-27T02:11:00.000Z'
|
|
22
|
+
distilled_by: hand-rewrite (D4-reverse)
|
|
23
|
+
it_universal_score: 4.5
|
|
24
|
+
it_universal_dims:
|
|
25
|
+
d1: 1
|
|
26
|
+
d2: 1
|
|
27
|
+
d3: 1
|
|
28
|
+
d4: 1
|
|
29
|
+
d5: 0.5
|
|
30
|
+
it_universal_rationale: ADR template + decision-record discipline; entirely process-level, stack-agnostic.
|
|
31
|
+
is_stub: false
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Goal
|
|
35
|
+
|
|
36
|
+
Capture every consequential technical decision as a short, dated, immutable record so that future maintainers can reconstruct **why** the system looks the way it does — not just what it does.
|
|
37
|
+
|
|
38
|
+
## When to trigger
|
|
39
|
+
|
|
40
|
+
- Choosing among multiple plausible technologies (framework, database, queue, build tool, runtime).
|
|
41
|
+
- Drawing a system boundary (which service owns which data; what crosses an API).
|
|
42
|
+
- Picking a protocol (REST vs gRPC vs message-bus; sync vs async).
|
|
43
|
+
- A decision that will affect more than one module, team, or release cycle.
|
|
44
|
+
- Reversing or superseding a prior architectural choice.
|
|
45
|
+
- A design debate that has happened more than twice — write it down once and stop relitigating.
|
|
46
|
+
|
|
47
|
+
Skip the ADR for: trivial style tweaks, single-file refactors, bug fixes, or anything that doesn't change the shape of the system.
|
|
48
|
+
|
|
49
|
+
## Steps
|
|
50
|
+
|
|
51
|
+
1. **Detect the decision moment.** When you notice yourself or a teammate weighing trade-offs that will outlive the current sprint, pause and open a new ADR file.
|
|
52
|
+
|
|
53
|
+
2. **Pick the next number.** Use a monotonic counter (`ADR-0001`, `ADR-0002`, ...). Numbers are never reused, even for retired records. Store them in a known directory of the repo (a common convention is `docs/adr/`).
|
|
54
|
+
|
|
55
|
+
3. **Fill the template** (see "Examples" for the canonical shape). The minimum sections are: Status, Context, Decision, Alternatives considered, Consequences. Keep each section short — usually one to four paragraphs.
|
|
56
|
+
|
|
57
|
+
4. **Mark status honestly.** Start at `Proposed`. Once approved (whatever your team's bar is — a review, a meeting, a PR merge), change to `Accepted`. If later replaced, change to `Superseded by ADR-NNNN`. If retired without replacement, `Deprecated`.
|
|
58
|
+
|
|
59
|
+
5. **Never edit an Accepted ADR's substance.** Typos are fine; rewriting the decision is not. If the decision changes, write a **new** ADR that supersedes the old one. The old record stays in the repo as historical context.
|
|
60
|
+
|
|
61
|
+
6. **Cross-link.** When an ADR depends on, or invalidates, another, link both ways: ADR-0007 "supersedes ADR-0003"; ADR-0003 carries a note "superseded by ADR-0007".
|
|
62
|
+
|
|
63
|
+
7. **Reference ADRs from code or PRs** when a non-obvious choice would otherwise confuse readers. A comment like `// see ADR-0012` is cheaper than a 20-line explanation that drifts out of date.
|
|
64
|
+
|
|
65
|
+
## Anti-patterns
|
|
66
|
+
|
|
67
|
+
- **Editing an Accepted ADR.** The record loses its truth value. If circumstances changed, supersede with a new ADR.
|
|
68
|
+
- **ADRs that say "we chose X" without saying why.** The context and alternatives sections are the whole point — the choice itself is the cheap part.
|
|
69
|
+
- **Writing an ADR after the fact** to rubber-stamp a decision already shipped. Better than nothing, but flag it as `Accepted (retroactive)` and acknowledge the alternatives were not really weighed.
|
|
70
|
+
- **One giant ADR covering many decisions.** Split them. One ADR = one decision.
|
|
71
|
+
- **Burying ADRs in a wiki nobody reads.** Keep them in the repo, next to the code, in a flat browsable directory.
|
|
72
|
+
- **Status that lies.** A `Proposed` ADR that has been shipping for 6 months is not Proposed — fix the status.
|
|
73
|
+
- **Skipping ADRs for "obvious" choices.** Often the obvious choice is obvious only to the original author; the record protects future maintainers from re-evaluating from scratch.
|
|
74
|
+
|
|
75
|
+
## Success criteria
|
|
76
|
+
|
|
77
|
+
- [ ] The repo has a known directory holding ADRs (e.g. `docs/adr/`), with a flat numbering scheme.
|
|
78
|
+
- [ ] Every Accepted ADR has filled Context, Decision, Alternatives, and Consequences sections.
|
|
79
|
+
- [ ] Status of every ADR matches reality (no stale `Proposed` records).
|
|
80
|
+
- [ ] At least one ADR exists for every cross-module / cross-team choice made in the last release cycle.
|
|
81
|
+
- [ ] Superseded ADRs link to their successors, and vice versa.
|
|
82
|
+
- [ ] Code / PRs reference ADR numbers when explaining non-obvious choices.
|
|
83
|
+
|
|
84
|
+
## Failure modes
|
|
85
|
+
|
|
86
|
+
- **Decisions made in chat without a record.** When the third person asks "why are we using X?", that's the prompt — open an ADR retroactively and tag it.
|
|
87
|
+
- **ADR explosion.** If you have 200 ADRs, you've blurred the line between "architecture decision" and "any decision". Tighten the trigger criteria; small decisions belong in code comments or PR descriptions, not ADRs.
|
|
88
|
+
- **Two contradictory Accepted ADRs.** A symptom that nobody checked the existing record before writing the new one. Resolution: write a third ADR that explicitly supersedes the older one.
|
|
89
|
+
- **Authors disagree on the decision.** Don't write a wishy-washy ADR. Record the dissent in the Alternatives section: "Option B preferred by A and C; Option A chosen because of X. See discussion thread Y."
|
|
90
|
+
- **Decision turns out to be wrong.** That's fine — write a new ADR superseding the old one. The old ADR is not embarrassing; it's history. Editing it to hide the mistake is worse.
|
|
91
|
+
|
|
92
|
+
## Examples
|
|
93
|
+
|
|
94
|
+
### Canonical ADR template
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
# ADR-0007: Use a message queue between the ingest and processor
|
|
98
|
+
|
|
99
|
+
## Status
|
|
100
|
+
Accepted (2026-04-12)
|
|
101
|
+
|
|
102
|
+
## Context
|
|
103
|
+
The ingest service produces ~10k events/min. The processor's throughput is variable
|
|
104
|
+
because some events trigger expensive enrichment calls. Coupling them synchronously
|
|
105
|
+
caused 99th-percentile latency spikes and cascading retries on the upstream caller.
|
|
106
|
+
|
|
107
|
+
## Decision
|
|
108
|
+
Insert a durable message queue between ingest and processor. Ingest writes, returns
|
|
109
|
+
immediately; processor consumes at its own pace. At-least-once delivery; processor
|
|
110
|
+
handles idempotency by event ID.
|
|
111
|
+
|
|
112
|
+
## Alternatives considered
|
|
113
|
+
- Direct HTTP with a larger thread pool in the processor: rejected — does not
|
|
114
|
+
bound memory; still vulnerable to processor outage causing data loss.
|
|
115
|
+
- Persist events to the database; processor polls: rejected — DB becomes a queue,
|
|
116
|
+
and queries to drain the backlog conflict with the read workload.
|
|
117
|
+
- Bounded in-process channel: rejected — does not survive process restarts.
|
|
118
|
+
|
|
119
|
+
## Consequences
|
|
120
|
+
+ Ingest latency decoupled from processing latency.
|
|
121
|
+
+ Processor can be restarted / scaled independently.
|
|
122
|
+
- New operational surface: queue health, lag monitoring, dead-letter handling.
|
|
123
|
+
- Processor code must be idempotent; existing code is not, requiring refactor.
|
|
124
|
+
- One extra hop adds ~10-30ms to end-to-end latency.
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### A second example: superseding an earlier decision
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
# ADR-0019: Switch from polling to push for cache invalidation
|
|
131
|
+
|
|
132
|
+
## Status
|
|
133
|
+
Accepted (2026-05-20). Supersedes ADR-0011.
|
|
134
|
+
|
|
135
|
+
## Context
|
|
136
|
+
ADR-0011 chose polling because the cache layer did not support push at the time.
|
|
137
|
+
The cache vendor added a push API in their 4.0 release (2026-04). Polling now
|
|
138
|
+
accounts for ~12% of read traffic against the cache and adds 30-second staleness.
|
|
139
|
+
|
|
140
|
+
## Decision
|
|
141
|
+
Subscribe to the cache push channel; remove the polling loop.
|
|
142
|
+
|
|
143
|
+
## Alternatives considered
|
|
144
|
+
- Keep polling, reduce interval: rejected — does not solve the staleness floor
|
|
145
|
+
and increases load.
|
|
146
|
+
- Hybrid (push + slow poll as safety net): considered; reserved for ADR-0020
|
|
147
|
+
if observed push reliability drops below SLA.
|
|
148
|
+
|
|
149
|
+
## Consequences
|
|
150
|
+
+ Staleness drops from 30s to <1s p99.
|
|
151
|
+
+ Read traffic to cache drops ~12%.
|
|
152
|
+
- New dependency on push channel availability; requires monitoring.
|
|
153
|
+
- Migration window: both polling and push run for one week before polling is
|
|
154
|
+
removed (see migration plan in PR #4421).
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
And ADR-0011 receives an edit (the only allowed kind of edit on an Accepted ADR) at the top of its Status line:
|
|
158
|
+
|
|
159
|
+
```markdown
|
|
160
|
+
## Status
|
|
161
|
+
Accepted (2025-09-04). Superseded by ADR-0019 (2026-05-20).
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Adoption notes
|
|
165
|
+
|
|
166
|
+
To put this into practice in any codebase:
|
|
167
|
+
|
|
168
|
+
- Create the directory (commonly `docs/adr/`) and add a `README.md` explaining the convention.
|
|
169
|
+
- Copy a template file as `docs/adr/template.md`. New ADRs start by copying it.
|
|
170
|
+
- Add a one-liner to the project guide: "Cross-module decisions get an ADR before merging."
|
|
171
|
+
- Pick a numbering policy and commit to it. Padded four-digit numbers (`ADR-0001`) sort cleanly and survive growth.
|
|
172
|
+
- Optionally automate: a script that creates the next file with pre-filled date and number, or a CI check that PRs touching the design-doc directory must include an ADR when they change the architecture overview.
|
|
173
|
+
- Pair this skill with the spec-driven design skill: a spec answers "what will we build"; an ADR answers "why is the building shaped this way". They are complementary, not redundant.
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: distilled-creator
|
|
3
|
+
version: 0.2.0-distilled
|
|
4
|
+
description: 'Distilled IT-universal skill: skill-creator (score 3.5/5)'
|
|
5
|
+
keywords:
|
|
6
|
+
- creator
|
|
7
|
+
- skill
|
|
8
|
+
rubric_version: 2
|
|
9
|
+
distilled_from:
|
|
10
|
+
- upstream: https://github.com/anthropics/skills.git
|
|
11
|
+
license: Apache-2.0
|
|
12
|
+
commit: unknown
|
|
13
|
+
paths:
|
|
14
|
+
- skill-creator/SKILL.md
|
|
15
|
+
- upstream: https://github.com/anthropics/skills.git
|
|
16
|
+
license: Apache-2.0
|
|
17
|
+
commit: unknown
|
|
18
|
+
paths:
|
|
19
|
+
- slack-gif-creator/SKILL.md
|
|
20
|
+
distilled_at: '2026-05-29T08:13:11.204Z'
|
|
21
|
+
distilled_by: claude-code skill-distiller agent
|
|
22
|
+
it_universal_score: 3.5
|
|
23
|
+
it_universal_dims:
|
|
24
|
+
d1: 1
|
|
25
|
+
d2: 0.5
|
|
26
|
+
d3: 0.5
|
|
27
|
+
d4: 0.5
|
|
28
|
+
d5: 1
|
|
29
|
+
it_universal_rationale: >-
|
|
30
|
+
Core methodology (intent capture, three-level skill loading, parallel with/baseline eval,
|
|
31
|
+
assertion timing) is fully language-agnostic and reusable in any Claude skill ecosystem;
|
|
32
|
+
deductions only for eval-viewer script path and evals.json convention tied to one specific infra.
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
# Skill Creator: Iterative Design & Evaluation Loop
|
|
36
|
+
|
|
37
|
+
## When to use
|
|
38
|
+
- You want to create a new Claude skill (markdown + YAML instruction file) from scratch
|
|
39
|
+
- You want to improve an existing skill with test-based evidence
|
|
40
|
+
- A user shows you a workflow in conversation and says "turn this into a skill"
|
|
41
|
+
- You want to optimize a skill's description to fix undertriggering
|
|
42
|
+
- You want to benchmark skill quality with a with/without-skill comparison
|
|
43
|
+
|
|
44
|
+
## Core idea
|
|
45
|
+
A Claude skill is a markdown file with YAML frontmatter following a three-level loading hierarchy: metadata (always in context), body (loaded on trigger), and bundled resources (on demand). Good skills are built iteratively — capture intent, interview for edge cases, draft SKILL.md, run parallel test cases (with-skill vs. baseline simultaneously), draft quantitative assertions *while runs are in progress*, then evaluate, rewrite, and repeat. Skill descriptions must be slightly "pushy" to overcome Claude's tendency to undertrigger. Communication style should match the user's technical fluency — observe cues before using jargon like "assertion" or "JSON" without explanation.
|
|
46
|
+
|
|
47
|
+
## Steps
|
|
48
|
+
|
|
49
|
+
### 1. Capture Intent
|
|
50
|
+
Extract answers from conversation history first, then ask the user to fill gaps:
|
|
51
|
+
1. What should this skill enable Claude to do?
|
|
52
|
+
2. When should it trigger? (specific phrases, contexts, situations)
|
|
53
|
+
3. What is the expected output format?
|
|
54
|
+
4. Do objectively verifiable outputs exist? → plan test cases with assertions. Subjective outputs (writing style, art) → consider qualitative-only evaluation.
|
|
55
|
+
|
|
56
|
+
### 2. Interview & Research
|
|
57
|
+
Before writing test prompts, ask about edge cases, input/output formats, example files, success criteria, and dependencies. Research relevant docs or analogous patterns concurrently via subagents when available.
|
|
58
|
+
|
|
59
|
+
### 3. Write SKILL.md
|
|
60
|
+
|
|
61
|
+
**Frontmatter:**
|
|
62
|
+
```yaml
|
|
63
|
+
---
|
|
64
|
+
name: my-skill # kebab-case
|
|
65
|
+
description: |
|
|
66
|
+
What this skill does AND when to use it. Make it slightly pushy:
|
|
67
|
+
"Use this whenever the user mentions X, Y, or Z — even if they
|
|
68
|
+
don't explicitly ask for [skill name]."
|
|
69
|
+
compatibility: # optional — required tools/MCPs
|
|
70
|
+
---
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Directory anatomy:**
|
|
74
|
+
```
|
|
75
|
+
skill-name/
|
|
76
|
+
├── SKILL.md ← required; keep under 500 lines
|
|
77
|
+
└── optional-resources/
|
|
78
|
+
├── scripts/ ← executable code for deterministic tasks
|
|
79
|
+
├── references/ ← docs loaded into context on demand
|
|
80
|
+
└── assets/ ← templates, icons, fonts
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Three-level loading:**
|
|
84
|
+
|
|
85
|
+
| Level | Content | When loaded |
|
|
86
|
+
|-------|---------|-------------|
|
|
87
|
+
| Metadata | name + description (~100 words) | Always in context |
|
|
88
|
+
| SKILL.md body | Instructions (<500 lines ideal) | Whenever skill triggers |
|
|
89
|
+
| Bundled resources | Scripts / references (unlimited) | Only when referenced |
|
|
90
|
+
|
|
91
|
+
**Progressive disclosure:** If approaching 500 lines, split into hierarchy levels with clear pointers to where to read next. For reference files >300 lines, add a table of contents. For multi-variant skills (e.g., AWS / GCP / Azure), one file per variant so only the relevant one loads.
|
|
92
|
+
|
|
93
|
+
**Output format pattern:**
|
|
94
|
+
```markdown
|
|
95
|
+
## Report structure
|
|
96
|
+
ALWAYS use this exact template:
|
|
97
|
+
# [Title]
|
|
98
|
+
## Executive summary
|
|
99
|
+
## Key findings
|
|
100
|
+
## Recommendations
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Example pattern:**
|
|
104
|
+
```markdown
|
|
105
|
+
## Example 1
|
|
106
|
+
Input: Added user authentication with JWT tokens
|
|
107
|
+
Output: feat(auth): implement JWT-based authentication
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Use imperative form. Explain *why* things matter rather than stacking MUSTs. Draft once, then read with fresh eyes and revise.
|
|
111
|
+
|
|
112
|
+
**Security:** Skills must not contain malware, exploit code, or misleading content. Behavior must not surprise a user who reads the description.
|
|
113
|
+
|
|
114
|
+
### 4. Draft Test Cases
|
|
115
|
+
Write 2–3 realistic test prompts (the kind a real user would actually type). Share with the user for confirmation before running.
|
|
116
|
+
|
|
117
|
+
Save to your project's eval file (e.g., `evals/evals.json`):
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"skill_name": "example-skill",
|
|
121
|
+
"evals": [
|
|
122
|
+
{
|
|
123
|
+
"id": 1,
|
|
124
|
+
"prompt": "User's actual task prompt",
|
|
125
|
+
"expected_output": "Description of expected result",
|
|
126
|
+
"files": [],
|
|
127
|
+
"assertions": []
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
Leave `assertions` empty for now — add them in Step 6.
|
|
133
|
+
|
|
134
|
+
### 5. Spawn All Runs in One Turn (With-Skill AND Baseline)
|
|
135
|
+
For each test case, launch **two subagents simultaneously in the same turn** — never sequentially:
|
|
136
|
+
|
|
137
|
+
- **With-skill run:** provide skill path + prompt → save to `<workspace>/iteration-<N>/<eval-name>/with_skill/outputs/`
|
|
138
|
+
- **Baseline run:**
|
|
139
|
+
- *New skill:* same prompt with no skill → `without_skill/outputs/`
|
|
140
|
+
- *Improving existing skill:* snapshot old version first, point baseline at snapshot → `old_skill/outputs/`
|
|
141
|
+
|
|
142
|
+
Create `eval_metadata.json` per eval directory:
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"eval_id": 0,
|
|
146
|
+
"eval_name": "descriptive-name-of-what-is-being-tested",
|
|
147
|
+
"prompt": "The user's task prompt",
|
|
148
|
+
"assertions": []
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Name eval directories descriptively, not generically. Workspace layout: `<skill-name>-workspace/iteration-<N>/<eval-name>/`.
|
|
153
|
+
|
|
154
|
+
### 6. Draft Assertions While Runs Are In Progress
|
|
155
|
+
Use the wait time. Draft quantitative assertions — objectively verifiable checks with descriptive names readable at a glance in any benchmark viewer. For subjective skills, rely on qualitative review; do not force assertions.
|
|
156
|
+
|
|
157
|
+
Update `eval_metadata.json` and the eval file with finalized assertions before runs complete.
|
|
158
|
+
|
|
159
|
+
### 7. Review Results
|
|
160
|
+
Present with-skill vs. baseline side by side. Use your project's viewer/review script if available. Report both quantitative metrics and qualitative observations to the user.
|
|
161
|
+
|
|
162
|
+
### 8. Iterate
|
|
163
|
+
Rewrite the skill based on user feedback and quantitative failures. Repeat from Step 5 (or Step 4 if prompts also need changing). After stabilization, expand the test set for larger-scale confidence.
|
|
164
|
+
|
|
165
|
+
### 9. Optimize the Description (Final)
|
|
166
|
+
Run your project's skill description improver tool (if available) to maximize triggering accuracy. This is the last step, but it's worth doing — a poorly-written description causes good skills to be ignored.
|
|
167
|
+
|
|
168
|
+
## Anti-patterns
|
|
169
|
+
- Spawning with-skill runs first, then circling back for baselines — always launch everything in one turn
|
|
170
|
+
- Waiting for runs to finish before drafting assertions — use the time productively
|
|
171
|
+
- Forcing quantitative assertions onto subjective skills (style, art quality)
|
|
172
|
+
- Vague or passive descriptions — they must tell Claude *when* to proactively use the skill
|
|
173
|
+
- Exceeding 500 lines in SKILL.md body without adding a hierarchy layer and forward pointers
|
|
174
|
+
- Generic eval directory names (`eval-0`) instead of descriptive ones
|
|
175
|
+
- Assuming `eval_metadata.json` or assertions carry over from a prior iteration without recreating them
|
|
176
|
+
|
|
177
|
+
## References
|
|
178
|
+
- Upstream: https://github.com/anthropics/skills.git
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: distilled-db-schema-design
|
|
3
|
+
version: 0.1.0-distilled
|
|
4
|
+
description: 'Distilled IT-universal skill: db-schema-design (score 4.5/5)'
|
|
5
|
+
keywords:
|
|
6
|
+
- db
|
|
7
|
+
- schema
|
|
8
|
+
- design
|
|
9
|
+
- database
|
|
10
|
+
- 数据库设计
|
|
11
|
+
- migration
|
|
12
|
+
- 迁移
|
|
13
|
+
- sql
|
|
14
|
+
rubric_version: 2
|
|
15
|
+
distilled_from:
|
|
16
|
+
- upstream: https://github.com/winspan/claude-forge.git
|
|
17
|
+
license: MIT
|
|
18
|
+
commit: 7d96b86c
|
|
19
|
+
paths:
|
|
20
|
+
- official/official-db-schema-design.md
|
|
21
|
+
distilled_at: '2026-05-27T01:55:04.825Z'
|
|
22
|
+
distilled_by: claude-sonnet-4-6
|
|
23
|
+
it_universal_score: 4.5
|
|
24
|
+
it_universal_dims:
|
|
25
|
+
d1: 1
|
|
26
|
+
d2: 1
|
|
27
|
+
d3: 1
|
|
28
|
+
d4: 0.5
|
|
29
|
+
d5: 1
|
|
30
|
+
it_universal_rationale: DB schema + migration patterns, cross-engine.
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 触发条件
|
|
34
|
+
|
|
35
|
+
- 新建项目需要设计初始数据库结构时
|
|
36
|
+
- 现有 schema 出现性能问题、数据一致性问题或难以扩展时
|
|
37
|
+
- 添加新业务实体或修改已有实体关系时
|
|
38
|
+
- 需要对生产数据库执行结构变更(加列、改类型、删表等)时
|
|
39
|
+
- Code review 中发现 schema 设计存在反模式需要纠正时
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 核心原则
|
|
44
|
+
|
|
45
|
+
1. **先建模,再建表** — ER 图或实体关系草图能暴露设计缺陷,比直接写 DDL 的返工成本低一个数量级。
|
|
46
|
+
2. **单表单实体** — 每张表只表达一个业务实体;混合多个实体的宽表会导致更新异常和冗余。
|
|
47
|
+
3. **约束下沉到数据库层** — 外键、唯一约束、非空约束在 DB 层强制,而不仅依赖应用层校验;应用可以崩溃,数据库约束不会。
|
|
48
|
+
4. **所有变更通过迁移文件管理** — 手动改生产库无法审计、无法回滚;迁移文件是 schema 的版本历史。
|
|
49
|
+
5. **破坏性变更分阶段执行** — 直接删列或改类型会导致零停机部署失败;分步操作(加→双写→删)保证新旧代码可以同时运行。
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 工作流
|
|
54
|
+
|
|
55
|
+
1. **绘制实体关系图**
|
|
56
|
+
在动手写 DDL 之前,用任意工具(纸、draw.io、dbdiagram.io 等)画出实体、属性和关系。确认每个实体的边界和基数(1:1 / 1:N / M:N)。
|
|
57
|
+
|
|
58
|
+
2. **确定命名规范**
|
|
59
|
+
- 表名:`snake_case` 复数形式(`user_profiles`、`order_items`)
|
|
60
|
+
- 主键:统一用 `id`(自增整数或 UUID,按项目需求选择)
|
|
61
|
+
- 时间戳:每张表必须包含 `created_at`、`updated_at`
|
|
62
|
+
- 软删除:用 `deleted_at`(nullable)而非物理删除
|
|
63
|
+
|
|
64
|
+
3. **编写 DDL / 迁移文件**
|
|
65
|
+
使用项目已有的迁移工具(Flyway、Liquibase、Alembic、golang-migrate、Prisma Migrate 等)创建迁移文件,不直接在数据库控制台执行 DDL。
|
|
66
|
+
|
|
67
|
+
4. **添加必要约束**
|
|
68
|
+
- 外键列声明 `FOREIGN KEY` 约束
|
|
69
|
+
- 业务唯一性用 `UNIQUE` 约束而非仅靠应用层
|
|
70
|
+
- 非空字段显式标注 `NOT NULL`
|
|
71
|
+
|
|
72
|
+
5. **规划索引**
|
|
73
|
+
- 所有外键列建索引(大多数数据库不自动创建)
|
|
74
|
+
- 高频 `WHERE` / `ORDER BY` 列建索引
|
|
75
|
+
- 复合索引按查询的列顺序排列(最左前缀原则)
|
|
76
|
+
- 避免过度索引:写多读少的表索引越多写入越慢
|
|
77
|
+
|
|
78
|
+
6. **编写 down migration(回滚脚本)**
|
|
79
|
+
每个 up migration 必须有对应的 down migration,并在非生产环境验证回滚可以干净执行。
|
|
80
|
+
|
|
81
|
+
7. **处理破坏性变更(三步法)**
|
|
82
|
+
```
|
|
83
|
+
Step 1 — 加新列(新旧代码均可运行)
|
|
84
|
+
Step 2 — 双写:应用同时写旧列和新列,迁移存量数据
|
|
85
|
+
Step 3 — 确认数据一致后,删旧列(单独一次迁移)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
8. **Review 检查清单**
|
|
89
|
+
在合并前对照"验证标准"逐项确认,重点关注缺失索引、缺失时间戳、以及是否绕过了迁移文件直接改库。
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 反模式
|
|
94
|
+
|
|
95
|
+
1. **手动修改生产数据库**
|
|
96
|
+
直接在生产控制台执行 `ALTER TABLE` 或 `DROP COLUMN`,导致变更无法审计、无法在其他环境复现、无法回滚。所有变更必须走迁移文件。
|
|
97
|
+
|
|
98
|
+
2. **滥用 `ENUM` 类型**
|
|
99
|
+
数据库原生 `ENUM` 在多数引擎中修改成本极高(MySQL 需要重建表)。用关联表(lookup table)或受约束的字符串列代替,扩展时只需插入新行。
|
|
100
|
+
|
|
101
|
+
3. **用 JSON 列存结构化数据**
|
|
102
|
+
把本应规范化的字段塞进 JSON 列,导致无法建索引、无法做外键约束、查询复杂度上升。JSON 列只适合真正不定结构的数据(如用户自定义元数据)。
|
|
103
|
+
|
|
104
|
+
4. **EAV 模式(Entity-Attribute-Value)**
|
|
105
|
+
用三列通用表(`entity_id`, `attribute_name`, `value`)模拟动态字段,看似灵活,实则查询性能极差、类型安全丧失、关联查询变成噩梦。优先考虑 JSONB 或宽表,极端情况才考虑文档数据库。
|
|
106
|
+
|
|
107
|
+
5. **缺失时间戳或软删除字段**
|
|
108
|
+
没有 `created_at` / `updated_at` 的表在排查问题时缺乏基本的时间线信息;物理删除数据后无法审计或恢复。每张表默认加时间戳,有审计需求的加 `deleted_at`。
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 验证标准
|
|
113
|
+
|
|
114
|
+
- [ ] 存在 ER 图或等效的实体关系文档,与实际 DDL 保持同步
|
|
115
|
+
- [ ] 每张表有且仅有一个业务实体,无跨实体的宽表
|
|
116
|
+
- [ ] 所有表包含 `created_at`、`updated_at` 字段
|
|
117
|
+
- [ ] 所有外键列已建索引
|
|
118
|
+
- [ ] 高频查询的过滤列已建索引,且索引顺序与查询一致
|
|
119
|
+
- [ ] 无裸 `ENUM` 类型;动态枚举值使用关联表或字符串
|
|
120
|
+
- [ ] JSON 列仅用于非结构化数据,结构化字段已规范化
|
|
121
|
+
- [ ] 每个 schema 变更对应一个迁移文件,且 down migration 可执行
|
|
122
|
+
- [ ] 破坏性变更(删列、改类型)已拆分为多步迁移
|
|
123
|
+
- [ ] 迁移文件已在非生产环境验证(up 和 down 均通过)
|
|
124
|
+
- [ ] 无直接在数据库控制台执行的未记录变更
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 适用范围
|
|
129
|
+
|
|
130
|
+
本技能适用于任何使用关系型数据库的层次:
|
|
131
|
+
|
|
132
|
+
- **后端服务(backend service)** — 业务逻辑层通过 ORM 或查询构建器与 schema 交互,需遵循命名规范和约束设计
|
|
133
|
+
- **持久化层(persistence layer)** — 迁移文件、连接池配置、事务边界均在此层管理
|
|
134
|
+
- **调度器 / 后台任务(scheduler)** — 批量写入任务需特别关注索引对写入性能的影响
|
|
135
|
+
- **CLI 工具** — 若 CLI 直接操作数据库(如数据导入、初始化脚本),同样需要走迁移流程而非裸 DDL
|
|
136
|
+
- **知识库 / 搜索层(knowledge base)** — 若使用关系型存储作为向量或文档索引的元数据层,schema 设计原则同样适用
|
|
137
|
+
|
|
138
|
+
> // 项目特定,复用时跳过
|
|
139
|
+
> 若项目使用特定的迁移框架(如 Alembic for Python、golang-migrate for Go、Knex for Node.js),迁移文件的目录结构和命名约定以该框架文档为准,本技能描述的原则不变。
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 上游对照
|
|
144
|
+
|
|
145
|
+
本技能从单一上游的 db-schema-design 规范(来源见 frontmatter)提炼,内容已做通用化处理:移除了项目特定的路径引用和工具名称,补充了多语言生态下的迁移工具示例,并将破坏性变更的三步法展开为可操作的工作流步骤。如后续有更多上游(如针对 NoSQL 或时序数据库的 schema 设计规范)合并进来,应在"核心原则"和"反模式"中增加对应的对比说明。
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 示例(伪代码)
|
|
150
|
+
|
|
151
|
+
### 场景:为"订单系统"新增 `discount_codes` 表
|
|
152
|
+
|
|
153
|
+
**Step 1 — 建模**
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
实体:DiscountCode
|
|
157
|
+
属性:id, code(唯一), discount_percent, expires_at, created_at, updated_at, deleted_at
|
|
158
|
+
关系:Order (N) ——uses——> DiscountCode (1)
|
|
159
|
+
=> orders 表加外键列 discount_code_id
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Step 2 — 编写迁移文件(伪代码,适用于任意迁移框架)**
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
-- UP
|
|
166
|
+
CREATE TABLE discount_codes (
|
|
167
|
+
id BIGINT PRIMARY KEY AUTO_INCREMENT, -- 或 UUID
|
|
168
|
+
code VARCHAR(64) NOT NULL UNIQUE,
|
|
169
|
+
discount_percent NUMERIC(5,2) NOT NULL,
|
|
170
|
+
expires_at TIMESTAMP,
|
|
171
|
+
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
172
|
+
updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
173
|
+
deleted_at TIMESTAMP -- 软删除
|
|
174
|
+
);
|
|
175
|
+
|
|
176
|
+
-- orders 表加外键(破坏性变更三步法 Step 1:加新列)
|
|
177
|
+
ALTER TABLE orders
|
|
178
|
+
ADD COLUMN discount_code_id BIGINT,
|
|
179
|
+
ADD CONSTRAINT fk_orders_discount_code
|
|
180
|
+
FOREIGN KEY (discount_code_id)
|
|
181
|
+
REFERENCES discount_codes(id);
|
|
182
|
+
|
|
183
|
+
-- 外键列建索引
|
|
184
|
+
CREATE INDEX idx_orders_discount_code_id ON orders(discount_code_id);
|
|
185
|
+
|
|
186
|
+
-- DOWN
|
|
187
|
+
DROP INDEX idx_orders_discount_code_id ON orders;
|
|
188
|
+
ALTER TABLE orders DROP FOREIGN KEY fk_orders_discount_code;
|
|
189
|
+
ALTER TABLE orders DROP COLUMN discount_code_id;
|
|
190
|
+
DROP TABLE discount_codes;
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Step 3 — 多语言迁移工具调用示意**
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
# Python (Alembic)
|
|
197
|
+
alembic upgrade head
|
|
198
|
+
alembic downgrade -1
|
|
199
|
+
|
|
200
|
+
# Go (golang-migrate)
|
|
201
|
+
migrate -path ./migrations -database $DATABASE_URL up
|
|
202
|
+
migrate -path ./migrations -database $DATABASE_URL down 1
|
|
203
|
+
|
|
204
|
+
# Node.js (Knex / Prisma)
|
|
205
|
+
npx knex migrate:latest
|
|
206
|
+
npx knex migrate:rollback
|
|
207
|
+
|
|
208
|
+
# Java (Flyway)
|
|
209
|
+
flyway migrate
|
|
210
|
+
flyway undo # 需要 Flyway Teams
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
**Step 4 — 验证索引覆盖(伪代码)**
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
-- 检查高频查询是否命中索引
|
|
217
|
+
EXPLAIN SELECT * FROM orders
|
|
218
|
+
WHERE discount_code_id = ?
|
|
219
|
+
AND deleted_at IS NULL;
|
|
220
|
+
|
|
221
|
+
-- 期望输出:type = ref 或 range,key = idx_orders_discount_code_id
|
|
222
|
+
-- 若 type = ALL(全表扫描),说明索引未生效,需检查列类型是否匹配
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Step 5 — 破坏性变更示例:将 `discount_percent` 从 `INT` 改为 `NUMERIC`**
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
-- 错误做法(直接 ALTER,可能锁表或丢精度)
|
|
229
|
+
ALTER TABLE discount_codes MODIFY discount_percent NUMERIC(5,2);
|
|
230
|
+
|
|
231
|
+
-- 正确做法(三步法)
|
|
232
|
+
-- 迁移 A:加新列
|
|
233
|
+
ALTER TABLE discount_codes ADD COLUMN discount_percent_new NUMERIC(5,2);
|
|
234
|
+
|
|
235
|
+
-- 应用层双写(伪代码)
|
|
236
|
+
function saveDiscount(record):
|
|
237
|
+
record.discount_percent = toInt(value) // 旧列,兼容旧代码
|
|
238
|
+
record.discount_percent_new = toDecimal(value) // 新列
|
|
239
|
+
db.save(record)
|
|
240
|
+
|
|
241
|
+
-- 迁移 B:存量数据回填 + 删旧列(确认双写稳定后执行)
|
|
242
|
+
UPDATE discount_codes SET discount_percent_new = discount_percent::NUMERIC;
|
|
243
|
+
ALTER TABLE discount_codes DROP COLUMN discount_percent;
|
|
244
|
+
ALTER TABLE discount_codes RENAME COLUMN discount_percent_new TO discount_percent;
|
|
245
|
+
```
|