@tyroneross/build-loop 0.30.3
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/.agents/plugins/marketplace.json +10 -0
- package/.claude-plugin/marketplace.json +38 -0
- package/.claude-plugin/plugin.json +30 -0
- package/.codex-plugin/plugin.json +41 -0
- package/.cursor/rules/build-loop-surface.mdc +22 -0
- package/AGENTS.md +498 -0
- package/LICENSE +202 -0
- package/README.md +403 -0
- package/agents/alignment-checker.md +124 -0
- package/agents/api-assessor.md +136 -0
- package/agents/architecture-scout.md +185 -0
- package/agents/assessment-orchestrator.md +163 -0
- package/agents/build-orchestrator.md +198 -0
- package/agents/database-assessor.md +133 -0
- package/agents/design-contract-specialist.md +239 -0
- package/agents/fact-checker.md +69 -0
- package/agents/fix-critique.md +161 -0
- package/agents/frontend-assessor.md +136 -0
- package/agents/implementer.md +185 -0
- package/agents/independent-auditor.md +143 -0
- package/agents/mock-scanner.md +78 -0
- package/agents/optimize-runner.md +112 -0
- package/agents/overfitting-reviewer.md +96 -0
- package/agents/performance-assessor.md +159 -0
- package/agents/plan-critic.md +85 -0
- package/agents/promotion-reviewer.md +121 -0
- package/agents/recurring-pattern-detector.md +248 -0
- package/agents/retrospective-synthesizer.md +109 -0
- package/agents/root-cause-investigator.md +285 -0
- package/agents/scope-auditor.md +121 -0
- package/agents/security-reviewer.md +151 -0
- package/agents/self-improvement-architect.md +125 -0
- package/agents/synthesis-critic.md +99 -0
- package/agents/transcript-pattern-miner.md +165 -0
- package/agents/ui-validator.md +193 -0
- package/codex-skills/build-loop/SKILL.md +20 -0
- package/codex-skills/debug-loop/SKILL.md +18 -0
- package/codex-skills/handoff/SKILL.md +22 -0
- package/codex-skills/knowledge/SKILL.md +21 -0
- package/codex-skills/optimize/SKILL.md +18 -0
- package/codex-skills/research/SKILL.md +18 -0
- package/commands/agent-rally-point.md +301 -0
- package/commands/assess.md +41 -0
- package/commands/debug.md +20 -0
- package/commands/debugger-detail.md +34 -0
- package/commands/debugger-scan.md +15 -0
- package/commands/debugger-status.md +20 -0
- package/commands/debugger.md +32 -0
- package/commands/handoff.md +113 -0
- package/commands/knowledge-review.md +16 -0
- package/commands/optimize.md +31 -0
- package/commands/plan-verify.md +39 -0
- package/commands/promote-experiment.md +129 -0
- package/commands/research.md +22 -0
- package/commands/run.md +12 -0
- package/commands/self-review.md +51 -0
- package/commands/start-prd.md +57 -0
- package/commands/test.md +34 -0
- package/dist/src/assessment-orchestrator.d.ts +78 -0
- package/dist/src/assessment-orchestrator.d.ts.map +1 -0
- package/dist/src/assessment-orchestrator.js +304 -0
- package/dist/src/assessment-orchestrator.js.map +1 -0
- package/dist/src/audit-miner.d.ts +21 -0
- package/dist/src/audit-miner.d.ts.map +1 -0
- package/dist/src/audit-miner.js +421 -0
- package/dist/src/audit-miner.js.map +1 -0
- package/dist/src/batch-operations.d.ts +30 -0
- package/dist/src/batch-operations.d.ts.map +1 -0
- package/dist/src/batch-operations.js +339 -0
- package/dist/src/batch-operations.js.map +1 -0
- package/dist/src/config.d.ts +83 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +176 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/context-engine.d.ts +45 -0
- package/dist/src/context-engine.d.ts.map +1 -0
- package/dist/src/context-engine.js +135 -0
- package/dist/src/context-engine.js.map +1 -0
- package/dist/src/debug-wrapper.d.ts +58 -0
- package/dist/src/debug-wrapper.d.ts.map +1 -0
- package/dist/src/debug-wrapper.js +285 -0
- package/dist/src/debug-wrapper.js.map +1 -0
- package/dist/src/index.d.ts +31 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +149 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/interactive-verifier.d.ts +26 -0
- package/dist/src/interactive-verifier.d.ts.map +1 -0
- package/dist/src/interactive-verifier.js +435 -0
- package/dist/src/interactive-verifier.js.map +1 -0
- package/dist/src/lessons.d.ts +59 -0
- package/dist/src/lessons.d.ts.map +1 -0
- package/dist/src/lessons.js +172 -0
- package/dist/src/lessons.js.map +1 -0
- package/dist/src/log-reader.d.ts +39 -0
- package/dist/src/log-reader.d.ts.map +1 -0
- package/dist/src/log-reader.js +291 -0
- package/dist/src/log-reader.js.map +1 -0
- package/dist/src/logger.d.ts +59 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +328 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/parallel-retrieval.d.ts +52 -0
- package/dist/src/parallel-retrieval.d.ts.map +1 -0
- package/dist/src/parallel-retrieval.js +309 -0
- package/dist/src/parallel-retrieval.js.map +1 -0
- package/dist/src/pattern-extractor.d.ts +30 -0
- package/dist/src/pattern-extractor.d.ts.map +1 -0
- package/dist/src/pattern-extractor.js +386 -0
- package/dist/src/pattern-extractor.js.map +1 -0
- package/dist/src/result-aggregator.d.ts +44 -0
- package/dist/src/result-aggregator.d.ts.map +1 -0
- package/dist/src/result-aggregator.js +315 -0
- package/dist/src/result-aggregator.js.map +1 -0
- package/dist/src/retrieval.d.ts +139 -0
- package/dist/src/retrieval.d.ts.map +1 -0
- package/dist/src/retrieval.js +724 -0
- package/dist/src/retrieval.js.map +1 -0
- package/dist/src/setup/auto-setup.d.ts +15 -0
- package/dist/src/setup/auto-setup.d.ts.map +1 -0
- package/dist/src/setup/auto-setup.js +157 -0
- package/dist/src/setup/auto-setup.js.map +1 -0
- package/dist/src/setup/configure-hooks.d.ts +8 -0
- package/dist/src/setup/configure-hooks.d.ts.map +1 -0
- package/dist/src/setup/configure-hooks.js +16 -0
- package/dist/src/setup/configure-hooks.js.map +1 -0
- package/dist/src/setup/create-slash-commands.d.ts +8 -0
- package/dist/src/setup/create-slash-commands.d.ts.map +1 -0
- package/dist/src/setup/create-slash-commands.js +101 -0
- package/dist/src/setup/create-slash-commands.js.map +1 -0
- package/dist/src/setup/index.d.ts +8 -0
- package/dist/src/setup/index.d.ts.map +1 -0
- package/dist/src/setup/index.js +17 -0
- package/dist/src/setup/index.js.map +1 -0
- package/dist/src/setup/inject-claude-md.d.ts +10 -0
- package/dist/src/setup/inject-claude-md.d.ts.map +1 -0
- package/dist/src/setup/inject-claude-md.js +150 -0
- package/dist/src/setup/inject-claude-md.js.map +1 -0
- package/dist/src/setup/uninstall.d.ts +22 -0
- package/dist/src/setup/uninstall.d.ts.map +1 -0
- package/dist/src/setup/uninstall.js +235 -0
- package/dist/src/setup/uninstall.js.map +1 -0
- package/dist/src/storage.d.ts +192 -0
- package/dist/src/storage.d.ts.map +1 -0
- package/dist/src/storage.js +1037 -0
- package/dist/src/storage.js.map +1 -0
- package/dist/src/string-similarity.d.ts +8 -0
- package/dist/src/string-similarity.d.ts.map +1 -0
- package/dist/src/string-similarity.js +57 -0
- package/dist/src/string-similarity.js.map +1 -0
- package/dist/src/traces/adapters/browser.d.ts +69 -0
- package/dist/src/traces/adapters/browser.d.ts.map +1 -0
- package/dist/src/traces/adapters/browser.js +280 -0
- package/dist/src/traces/adapters/browser.js.map +1 -0
- package/dist/src/traces/adapters/index.d.ts +23 -0
- package/dist/src/traces/adapters/index.d.ts.map +1 -0
- package/dist/src/traces/adapters/index.js +67 -0
- package/dist/src/traces/adapters/index.js.map +1 -0
- package/dist/src/traces/adapters/langchain.d.ts +42 -0
- package/dist/src/traces/adapters/langchain.d.ts.map +1 -0
- package/dist/src/traces/adapters/langchain.js +151 -0
- package/dist/src/traces/adapters/langchain.js.map +1 -0
- package/dist/src/traces/adapters/opentelemetry.d.ts +46 -0
- package/dist/src/traces/adapters/opentelemetry.d.ts.map +1 -0
- package/dist/src/traces/adapters/opentelemetry.js +164 -0
- package/dist/src/traces/adapters/opentelemetry.js.map +1 -0
- package/dist/src/traces/adapters/sentry.d.ts +58 -0
- package/dist/src/traces/adapters/sentry.d.ts.map +1 -0
- package/dist/src/traces/adapters/sentry.js +212 -0
- package/dist/src/traces/adapters/sentry.js.map +1 -0
- package/dist/src/traces/index.d.ts +10 -0
- package/dist/src/traces/index.d.ts.map +1 -0
- package/dist/src/traces/index.js +45 -0
- package/dist/src/traces/index.js.map +1 -0
- package/dist/src/traces/storage.d.ts +78 -0
- package/dist/src/traces/storage.d.ts.map +1 -0
- package/dist/src/traces/storage.js +399 -0
- package/dist/src/traces/storage.js.map +1 -0
- package/dist/src/traces/summarizer.d.ts +83 -0
- package/dist/src/traces/summarizer.d.ts.map +1 -0
- package/dist/src/traces/summarizer.js +247 -0
- package/dist/src/traces/summarizer.js.map +1 -0
- package/dist/src/traces/types.d.ts +365 -0
- package/dist/src/traces/types.d.ts.map +1 -0
- package/dist/src/traces/types.js +14 -0
- package/dist/src/traces/types.js.map +1 -0
- package/dist/src/types.d.ts +495 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +27 -0
- package/dist/src/types.js.map +1 -0
- package/docs/agent-surface-policy.md +45 -0
- package/docs/memory-setup.md +226 -0
- package/hooks/_arch_scan_bg.py +88 -0
- package/hooks/_plugin_drift_check_bg.py +85 -0
- package/hooks/_session_start_lib.sh +42 -0
- package/hooks/git/pre-push +141 -0
- package/hooks/hooks.json +126 -0
- package/hooks/post-commit +30 -0
- package/hooks/pre-commit +29 -0
- package/hooks/pre-edit-apppulse.sh +6 -0
- package/hooks/pre-edit-architecture.sh +106 -0
- package/hooks/pre-edit-rally-point.sh +92 -0
- package/hooks/session-start-apppulse.sh +6 -0
- package/hooks/session-start-architecture.sh +10 -0
- package/hooks/session-start-git-hooks.sh +12 -0
- package/hooks/session-start-plugin-drift.sh +27 -0
- package/hooks/session-start-rally-point.sh +44 -0
- package/hooks/session-start-retrieval.sh +24 -0
- package/hooks/session-start-worktree-gc.sh +105 -0
- package/hooks/test_apppulse_hooks.sh +6 -0
- package/hooks/test_rally_point_hooks.sh +388 -0
- package/hooks/test_sec008_hooks.sh +66 -0
- package/package.json +111 -0
- package/scripts/README.md +301 -0
- package/scripts/_db_url.py +61 -0
- package/scripts/_paths.py +445 -0
- package/scripts/blm.py +162 -0
- package/scripts/blm_api.py +263 -0
- package/scripts/check_cache_sync.py +490 -0
- package/scripts/embed_backend.py +475 -0
- package/scripts/install_memory.py +556 -0
- package/scripts/lessons_index/__init__.py +77 -0
- package/scripts/lessons_index/__main__.py +135 -0
- package/scripts/lessons_index/ingest.py +288 -0
- package/scripts/lessons_index/query.py +285 -0
- package/scripts/lessons_index/schema.py +114 -0
- package/scripts/memory_context/__init__.py +610 -0
- package/scripts/memory_graph/__init__.py +393 -0
- package/scripts/project_resolver.py +172 -0
- package/scripts/prune_codex_plugin_cache.py +23 -0
- package/scripts/prune_plugin_cache.py +359 -0
- package/scripts/semantic_index/__init__.py +482 -0
- package/scripts/semantic_index/_bench_hybrid.py +175 -0
- package/scripts/semantic_index/backfill.py +263 -0
- package/scripts/semantic_index/hybrid.py +174 -0
- package/scripts/semantic_index/test_backfill.py +292 -0
- package/scripts/semantic_index/test_hybrid.py +541 -0
- package/scripts/sync_navgator_lessons.py +666 -0
- package/scripts/sync_plugin_cache.py +388 -0
- package/skills/agent-rally-point/SKILL.md +165 -0
- package/skills/agent-rally-watcher/SKILL.md +83 -0
- package/skills/api-registry-bridge/SKILL.md +59 -0
- package/skills/architecture/dead/SKILL.md +56 -0
- package/skills/architecture/impact/SKILL.md +88 -0
- package/skills/architecture/review/SKILL.md +227 -0
- package/skills/architecture/rules/SKILL.md +72 -0
- package/skills/architecture/scan/SKILL.md +79 -0
- package/skills/architecture/trace/SKILL.md +65 -0
- package/skills/attribution-standard/SKILL.md +122 -0
- package/skills/authentication/SKILL.md +81 -0
- package/skills/authentication/references/better-auth-magic-link.md +135 -0
- package/skills/authentication/references/better-auth-setup.md +224 -0
- package/skills/authentication/references/google-calendar-sync.md +278 -0
- package/skills/authentication/references/google-cloud-console.md +159 -0
- package/skills/authentication/references/google-geocoding-directions.md +126 -0
- package/skills/authentication/references/google-lessons-example-web-app.md +177 -0
- package/skills/authentication/references/google-maps.md +162 -0
- package/skills/authentication/references/google-oauth-setup.md +343 -0
- package/skills/authentication/references/google-places.md +173 -0
- package/skills/authentication/references/lessons-example-web-app-better-auth.md +126 -0
- package/skills/authentication/references/resend-email.md +227 -0
- package/skills/authentication/references/resend-otp-magic-link.md +153 -0
- package/skills/authentication/references/supabase-auth.md +172 -0
- package/skills/auto-decision-capture/SKILL.md +419 -0
- package/skills/build-loop/SKILL.md +516 -0
- package/skills/build-loop/detect-plugins.mjs +82 -0
- package/skills/build-loop/eval-guide.md +65 -0
- package/skills/build-loop/fallbacks.md +549 -0
- package/skills/build-loop/phases/fact-check.md +42 -0
- package/skills/build-loop/phases/ui-validation.md +267 -0
- package/skills/build-loop/references/apple-native-planning.md +439 -0
- package/skills/build-loop/references/capability-routing.md +181 -0
- package/skills/build-loop/references/codex-subagents.md +98 -0
- package/skills/build-loop/references/coordination.md +161 -0
- package/skills/build-loop/references/correction-aware-capture.md +177 -0
- package/skills/build-loop/references/independent-auditor.md +72 -0
- package/skills/build-loop/references/intent-capability-pack.md +170 -0
- package/skills/build-loop/references/intent-exploration-prompts.md +96 -0
- package/skills/build-loop/references/leadership.md +72 -0
- package/skills/build-loop/references/memory.md +284 -0
- package/skills/build-loop/references/modular-systems-pack.md +96 -0
- package/skills/build-loop/references/output-style.md +129 -0
- package/skills/build-loop/references/pay-it-forward-arch.md +98 -0
- package/skills/build-loop/references/phase-1-assess.md +218 -0
- package/skills/build-loop/references/phase-2-plan.md +77 -0
- package/skills/build-loop/references/phase-3-execute.md +47 -0
- package/skills/build-loop/references/phase-4-review.md +310 -0
- package/skills/build-loop/references/phase-5-iterate.md +71 -0
- package/skills/build-loop/references/phase-6-learn.md +56 -0
- package/skills/build-loop/references/recent-design-structures.md +274 -0
- package/skills/build-loop/references/refactor-history/ASSESSMENT.md +85 -0
- package/skills/build-loop/references/refactor-history/STANDALONE_TEST_RUN.md +149 -0
- package/skills/build-loop/references/refactor-history/scenarios/01-simple-bugfix.md +32 -0
- package/skills/build-loop/references/refactor-history/scenarios/02-ui-build-with-iteration.md +48 -0
- package/skills/build-loop/references/refactor-history/scenarios/03-multi-failure-escalation.md +60 -0
- package/skills/build-loop/references/refactor-history/scenarios/04-ui-build-ibr-absent.md +51 -0
- package/skills/build-loop/references/refactor-history/scenarios/05-refactor-navgator-absent.md +71 -0
- package/skills/build-loop/references/refactor-history/scenarios/06-recurring-bug-debugger-absent.md +52 -0
- package/skills/build-loop/references/refactor-history/trace-comparison.md +202 -0
- package/skills/build-loop/references/self-recursive-dev.md +77 -0
- package/skills/build-loop/references/self-review.md +232 -0
- package/skills/build-loop/references/ui-io-contract.md +116 -0
- package/skills/build-loop/scanners/audit-design-rules.mjs +476 -0
- package/skills/build-loop/scanners/require-visual-evidence.mjs +239 -0
- package/skills/build-loop/templates/backlog-item.md +35 -0
- package/skills/build-loop/templates/codex-worker-prompt.md +89 -0
- package/skills/build-loop/templates/ui-subagent-prompt.md +179 -0
- package/skills/build-loop/templates/ux-fix-plan.md +40 -0
- package/skills/building-with-deepagents/SKILL.md +195 -0
- package/skills/building-with-deepagents/references/anti-patterns.md +141 -0
- package/skills/building-with-deepagents/references/api-quick-reference.md +184 -0
- package/skills/capabilities/SKILL.md +91 -0
- package/skills/debug-loop/SKILL.md +278 -0
- package/skills/debug-loop/references/convergence-rules.md +145 -0
- package/skills/debug-loop/references/swiftui-macos-clunky-ui-debugger.html +823 -0
- package/skills/debugging/assess/SKILL.md +111 -0
- package/skills/debugging/debug-loop/SKILL.md +231 -0
- package/skills/debugging/memory/SKILL.md +147 -0
- package/skills/debugging/store/SKILL.md +153 -0
- package/skills/debugging-memory/SKILL.md +440 -0
- package/skills/debugging-memory/examples/incident-example.json +67 -0
- package/skills/debugging-memory/references/incident-documentation.md +280 -0
- package/skills/debugging-memory/references/ios-notification-alarm-playbook.md +300 -0
- package/skills/debugging-memory/references/pattern-extraction.md +163 -0
- package/skills/debugging-memory/references/subagent-integration.md +312 -0
- package/skills/defenseclaw-bridge/SKILL.md +156 -0
- package/skills/defenseclaw-bridge/references/dc-config-mapping.md +162 -0
- package/skills/defenseclaw-bridge/references/output-format.md +108 -0
- package/skills/handoff/SKILL.md +94 -0
- package/skills/ibr-bridge/SKILL.md +68 -0
- package/skills/knowledge/SKILL.md +127 -0
- package/skills/knowledge/references/recall-integration.md +83 -0
- package/skills/knowledge/templates/madr-minimal.md +56 -0
- package/skills/knowledge-review/SKILL.md +112 -0
- package/skills/logging-tracer/SKILL.md +202 -0
- package/skills/logging-tracer/references/log-analysis.md +128 -0
- package/skills/logging-tracer/references/stack-templates.md +274 -0
- package/skills/logging-tracer-bridge/SKILL.md +70 -0
- package/skills/mcp-builder/SKILL.md +278 -0
- package/skills/mcp-builder/references/mcp-security.md +106 -0
- package/skills/model-tiering/SKILL.md +216 -0
- package/skills/native-ax-driver/SKILL.md +220 -0
- package/skills/native-ax-driver/scripts/layout_fill.py +222 -0
- package/skills/native-ax-driver/scripts/native_driver.py +495 -0
- package/skills/native-ax-driver/swift/bl-ax-driver/Package.swift +20 -0
- package/skills/native-ax-driver/swift/bl-ax-driver/Sources/main.swift +542 -0
- package/skills/optimize/SKILL.md +202 -0
- package/skills/optimize/profiles.md +61 -0
- package/skills/plan-verify/SKILL.md +115 -0
- package/skills/plan-verify/test-fixtures/example-app-v20-findings.json +27 -0
- package/skills/plan-verify/test-fixtures/example-app-v20.md +42 -0
- package/skills/plan-verify/test-fixtures/example-app-v22-findings.json +15 -0
- package/skills/plan-verify/test-fixtures/example-app-v22.md +1608 -0
- package/skills/plan-verify/test-fixtures/unrelated-good-plan-findings.json +15 -0
- package/skills/plan-verify/test-fixtures/unrelated-good-plan.md +55 -0
- package/skills/plugin-builder/SKILL.md +329 -0
- package/skills/plugin-builder/references/authoritative-sources.md +104 -0
- package/skills/plugin-builder/references/build-loop-phase-guidance.md +94 -0
- package/skills/plugin-builder/references/components-guide.md +221 -0
- package/skills/plugin-builder/references/distribution.md +317 -0
- package/skills/plugin-builder/references/dual-host-claude-codex.md +220 -0
- package/skills/plugin-builder/references/hooks-reference.md +210 -0
- package/skills/plugin-builder/references/manifest-schema.md +111 -0
- package/skills/plugin-builder/references/plugin-hygiene-lessons.md +307 -0
- package/skills/plugin-tests/SKILL.md +94 -0
- package/skills/prd-bridge/SKILL.md +135 -0
- package/skills/research/SKILL.md +80 -0
- package/skills/security-methodology/SKILL.md +105 -0
- package/skills/security-methodology/references/cross-source-matrix.md +77 -0
- package/skills/security-methodology/references/mitre-atlas-starter.md +83 -0
- package/skills/security-methodology/references/nist-600-1-mapping.md +119 -0
- package/skills/security-methodology/references/owasp-agentic-top-10.md +157 -0
- package/skills/security-methodology/references/owasp-llm-top-10.md +144 -0
- package/skills/security-methodology/references/owasp-web-top-10.md +65 -0
- package/skills/self-improve/SKILL.md +298 -0
- package/skills/spec-writing/SKILL.md +548 -0
- package/skills/spec-writing/scripts/check_checklist.py +478 -0
- package/skills/sync-skills/SKILL.md +132 -0
- package/skills/telemetry/SKILL.md +66 -0
- package/skills/ui-design/SKILL.md +75 -0
- package/skills/ui-design/references/design-patterns-multi.md +165 -0
- package/skills/ui-design/references/design-preferences-from-owned-apps.md +150 -0
- package/skills/ui-design/references/evidence-capture-policy.md +55 -0
- package/skills/ui-design/references/ui-guidance-sources.md +330 -0
- package/skills/ui-design/references/universal-design-principles.alt.md +182 -0
- package/skills/ui-design/references/universal-design-principles.md +419 -0
- package/templates/memory/MEMORY.md.template +55 -0
- package/templates/memory/constitution.md.template +64 -0
- package/templates/memory/manifest.json +47 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-loop:debugging-assess
|
|
3
|
+
description: Parallel domain assessment for complex debugging symptoms — fans out database / frontend / API / performance assessors in parallel and ranks findings. Build-loop's native assessor orchestration, adapted from debugger command workflows (no canonical SKILL.md exists upstream).
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
user-invocable: false
|
|
6
|
+
source: claude-code-debugger/commands/assess.md
|
|
7
|
+
source_hash: f97d4966e110928acea7678124aad0c421e6fc64ddf0a6f53a7e14580650307a
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
11
|
+
|
|
12
|
+
# Parallel Domain Assessment
|
|
13
|
+
|
|
14
|
+
Run multiple specialized assessor agents in parallel against a vague or multi-domain symptom, then rank findings by confidence. Native to build-loop; initially adapted from the debugger command workflow.
|
|
15
|
+
|
|
16
|
+
> **Divergence note**: the standalone debugger ships this as a slash command, not a discrete SKILL.md. The assessor agents (`api-assessor`, `database-assessor`, `frontend-assessor`, `performance-assessor`) are bundled into build-loop under `agents/` and used directly here.
|
|
17
|
+
|
|
18
|
+
## When to Activate
|
|
19
|
+
|
|
20
|
+
- Phase 5 Iterate: after 2 consecutive same-root-cause failures in Review-B
|
|
21
|
+
- Symptom is vague or unclear ("app broken", "something wrong")
|
|
22
|
+
- Multiple domains may be involved ("search is slow and returns wrong results")
|
|
23
|
+
- Post-deploy regression with unknown scope
|
|
24
|
+
- Complex issue affecting multiple layers
|
|
25
|
+
|
|
26
|
+
## Hard Caps
|
|
27
|
+
|
|
28
|
+
- Spawn parallel assessors via `Agent` tool; obey the `~/.claude/CLAUDE.md` §Sub-Agents 4-parallel cap
|
|
29
|
+
- Pin model to `sonnet` for each domain assessor — at the orchestrator's Opus 4.7 tier, defaulting to `inherit` would fan out 4× Opus invocations and shred the cost ledger
|
|
30
|
+
- Only escalate an individual assessor to Opus if its initial output flags `confidence: low` or `needs_judgment: true`
|
|
31
|
+
|
|
32
|
+
## Workflow
|
|
33
|
+
|
|
34
|
+
1. **Detect domains** from symptom keywords:
|
|
35
|
+
|
|
36
|
+
| Domain | Trigger Keywords |
|
|
37
|
+
|--------|-----------------|
|
|
38
|
+
| Database | query, schema, migration, prisma, sql, connection, constraint, index |
|
|
39
|
+
| Frontend | react, hook, useEffect, render, component, state, hydration, browser |
|
|
40
|
+
| API | endpoint, route, request, response, auth, 500, 404, cors, middleware |
|
|
41
|
+
| Performance | slow, latency, timeout, memory, leak, cpu, bottleneck, optimization |
|
|
42
|
+
|
|
43
|
+
2. **Search memory once** — invoke `build-loop:debugging-memory` with the symptom; pass any matching incidents to each assessor as context. Don't make each assessor re-query memory.
|
|
44
|
+
|
|
45
|
+
3. **Launch assessors in parallel** with `Agent`, all in a single message:
|
|
46
|
+
- `database-assessor` — queries, schema, migrations, connection issues
|
|
47
|
+
- `frontend-assessor` — React, hooks, rendering, state, hydration, SSR
|
|
48
|
+
- `api-assessor` — endpoints, REST/GraphQL, auth, middleware, CORS
|
|
49
|
+
- `performance-assessor` — latency, memory, CPU, bottlenecks
|
|
50
|
+
|
|
51
|
+
Pass each: `{ symptom, repro_steps, related_incidents, files_in_scope, model: "sonnet" }`.
|
|
52
|
+
|
|
53
|
+
4. **Aggregate results** — each assessor returns JSON:
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"confidence": 0.0-1.0,
|
|
57
|
+
"probable_causes": ["..."],
|
|
58
|
+
"recommended_actions": ["..."],
|
|
59
|
+
"related_incidents": ["INC_..."]
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
5. **Rank** by confidence, then by `len(related_incidents)`. Generate priority sequence of recommended actions.
|
|
64
|
+
|
|
65
|
+
6. **Present unified diagnosis** — top 3 actions, evidence count, escalation if all assessors return `confidence < 0.4`.
|
|
66
|
+
|
|
67
|
+
## Result Aggregation Format
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
═══ PARALLEL DOMAIN ASSESSMENT ═══
|
|
71
|
+
Symptom: <symptom string>
|
|
72
|
+
Assessors fired: database, frontend, api, performance
|
|
73
|
+
|
|
74
|
+
Top finding (confidence 0.78, database-assessor):
|
|
75
|
+
Probable cause: N+1 query on Article.findMany inside getServerSideProps
|
|
76
|
+
Recommended action: add `include: { author: true }` to eliminate per-row lookup
|
|
77
|
+
Related incidents: INC_DB_20260315_..., INC_DB_20260201_...
|
|
78
|
+
|
|
79
|
+
Secondary finding (confidence 0.52, performance-assessor):
|
|
80
|
+
Probable cause: missing index on Article.publishedAt
|
|
81
|
+
Recommended action: add migration `CREATE INDEX articles_published_at`
|
|
82
|
+
|
|
83
|
+
Action sequence: 1) eliminate N+1, 2) add index, 3) re-verify latency
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## When Assessors Disagree
|
|
87
|
+
|
|
88
|
+
If two assessors return overlapping `probable_causes` with similar confidence — flag as **multi-causal**. Both fixes may be needed. Don't pick one and discard the other.
|
|
89
|
+
|
|
90
|
+
If they disagree fundamentally (e.g., database-assessor says query, performance-assessor says rendering) — present both, ask user which path to pursue first, OR escalate to `build-loop:debugging-debug-loop` for causal-tree investigation.
|
|
91
|
+
|
|
92
|
+
## Output
|
|
93
|
+
|
|
94
|
+
Write summary to `.build-loop/state.json.debugging.assess[<symptom-hash>]`:
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"symptom": "...",
|
|
98
|
+
"assessors_fired": ["database", "frontend", "api", "performance"],
|
|
99
|
+
"top_finding": { "domain": "database", "confidence": 0.78, "cause": "..." },
|
|
100
|
+
"action_sequence": [...],
|
|
101
|
+
"multi_causal": false
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Sibling Skills
|
|
106
|
+
|
|
107
|
+
- `build-loop:debugging-memory` — search before assessing (mandatory pre-step)
|
|
108
|
+
- `build-loop:debugging-debug-loop` — escalate when assessment is inconclusive
|
|
109
|
+
- `build-loop:debugging-store` — store the resolved incident after the recommended action lands
|
|
110
|
+
|
|
111
|
+
*Source: adapted from the standalone debugger assess command plus the four assessor agents. Drift-checked by `build-loop:sync-skills`.*
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-loop:debugging-debug-loop
|
|
3
|
+
description: Iterative root-cause debugging with 5 Whys, causal/fault-tree analysis, hypothesis testing, fix-verify-score cycles, and fix-critique pressure-test. Up to 5 iterations. Build-loop's native debug loop, adapted from debugger workflows.
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
user-invocable: false
|
|
6
|
+
source: claude-code-debugger/skills/debug-loop/SKILL.md
|
|
7
|
+
source_hash: 07b2dd2ad30c210b14bbac3c4e7ddd772ed642dd4c478dfbdb81b52ae809c92a
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
11
|
+
|
|
12
|
+
# Debug Loop — Iterative Root Cause Debugging
|
|
13
|
+
|
|
14
|
+
A 7-phase debugging loop: investigate with structured root-cause methods, hypothesize root cause, implement targeted fix, verify with evidence, score against criteria, pressure-test via critique agent, and report with transparency markers. Iterates up to 5x on failures. Native to build-loop; initially adapted from the debugger workflow lineage.
|
|
15
|
+
|
|
16
|
+
## Scope Check
|
|
17
|
+
|
|
18
|
+
Trigger is the **verdict category**, not a numeric score — research shows LLM-assigned confidence scores are poorly calibrated for open-ended tasks (Tian et al., EMNLP 2023; 49-84% calibration error on open-ended generation).
|
|
19
|
+
|
|
20
|
+
- **Skip the loop** if `build-loop:debugging-memory` returned `KNOWN_FIX` — apply the fix directly and verify
|
|
21
|
+
- **Skip the loop** for trivial issues: typos, missing imports, obvious config errors
|
|
22
|
+
- **Enter the loop** when: verdict is `LIKELY_MATCH`, `WEAK_SIGNAL`, or `NO_MATCH`, the user asks for deep investigation, the initial diagnosis feels superficial, or a previous fix attempt didn't hold
|
|
23
|
+
|
|
24
|
+
## Efficiency
|
|
25
|
+
|
|
26
|
+
- Terminal output: current phase, key findings (one line each), status changes, failures. No verbose reasoning
|
|
27
|
+
- Agent context: minimum needed per job. Pass symptom + relevant findings, not full conversation history
|
|
28
|
+
- Load convergence rules reference on demand only when entering iteration
|
|
29
|
+
|
|
30
|
+
## Phase 1: INVESTIGATE — Gather Evidence and Trace Root Cause
|
|
31
|
+
|
|
32
|
+
**Goal**: Understand what's actually failing and why, not just what it looks like.
|
|
33
|
+
|
|
34
|
+
1. **Search debugging memory** — invoke `build-loop:debugging-memory` with the symptom. Note related incidents from local build-loop memory and optional standalone Coding Debugger memory when available.
|
|
35
|
+
2. **Reproduce the issue** — identify exact steps, commands, or conditions that trigger the bug
|
|
36
|
+
3. **Deploy `root-cause-investigator` agent** — pass the symptom and reproduction steps for causal tree analysis. The agent explores multiple branches (not a single chain), prioritizes by evidence strength, and prunes with evidence.
|
|
37
|
+
4. **Research gate** — if the investigator flags unfamiliar error codes, library behavior, or version-specific issues:
|
|
38
|
+
- Search externally (WebSearch, Context7, or documentation)
|
|
39
|
+
- Document what was searched and what was found
|
|
40
|
+
- If search is unavailable, document what SHOULD be searched
|
|
41
|
+
5. **Assess completeness** — does the investigation explain ALL reported symptoms? Check for multi-causal bugs (2+ independent root causes)
|
|
42
|
+
|
|
43
|
+
**Output**: Causal tree (with confirmed and pruned branches), reproduction steps, evidence gathered, research performed.
|
|
44
|
+
|
|
45
|
+
### Root-Cause Frameworks
|
|
46
|
+
|
|
47
|
+
Use the lightest framework that fits the failure. Stack frameworks only when the current one stalls.
|
|
48
|
+
|
|
49
|
+
| Framework | Use when | Output |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| 5 Whys | A symptom has a plausible linear chain and needs a controllable system cause | Five-level why-chain ending in a code, test, config, protocol, or process control |
|
|
52
|
+
| Causal tree / fault tree | Multiple causes could explain the same symptom | Branches with confirming and pruning evidence |
|
|
53
|
+
| Ishikawa / fishbone | The failure may span people/process/code/tooling/data/environment | Category map, then the top 2-3 branches to test |
|
|
54
|
+
| Kepner-Tregoe problem analysis | The issue is intermittent, version-specific, or boundary-sensitive | Is/is-not table: affected/unaffected versions, inputs, users, routes, environments |
|
|
55
|
+
| Differential diagnosis | Several hypotheses look similar from symptoms alone | Ranked hypotheses plus the discriminating test for each |
|
|
56
|
+
| Falsification test | A hypothesis is attractive but under-proven | Smallest test that would disprove it |
|
|
57
|
+
|
|
58
|
+
For hard fixes, record which framework was used and the decisive evidence. The framework is a thinking scaffold, not a report section unless it clarifies the outcome.
|
|
59
|
+
|
|
60
|
+
## Phase 2: HYPOTHESIZE — State the Root Cause
|
|
61
|
+
|
|
62
|
+
**Goal**: Commit to a specific, testable hypothesis before writing any fix.
|
|
63
|
+
|
|
64
|
+
Start with plain language before implementation detail. State what failed in normal words, then trace visible symptom -> technical failure -> upstream dependency/interface/process failure -> first controllable system failure. Do not use "agent forgot", "agent missed context", or similar actor-blame language as the terminal cause unless you also name the missing system control that allowed it.
|
|
65
|
+
|
|
66
|
+
1. **State the root cause hypothesis** with evidence level:
|
|
67
|
+
- **Strong**: Multiple evidence types (code, logs, reproduction) all point to this cause
|
|
68
|
+
- **Moderate**: Some direct evidence plus reasonable inference
|
|
69
|
+
- **Weak**: Mostly inference, limited direct evidence — consider investigating other branches first
|
|
70
|
+
2. **Predict verification test**: If this hypothesis is correct, what specific test would prove it?
|
|
71
|
+
3. **Predict related symptoms**: What else should be affected if this root cause is real?
|
|
72
|
+
4. **If multiple hypotheses exist**, rank by evidence strength. Pursue the strongest first.
|
|
73
|
+
|
|
74
|
+
## Phase 3: FIX — Implement Targeted Change
|
|
75
|
+
|
|
76
|
+
**Goal**: Make the minimal change that addresses the hypothesized root cause.
|
|
77
|
+
|
|
78
|
+
1. **Fix the root cause, not the symptom** — adding a null check instead of fixing why something is null is a symptom fix
|
|
79
|
+
2. **Minimal changes** — touch only what's needed. Don't refactor, don't improve, don't clean up
|
|
80
|
+
3. **Note exactly what was changed and why** — this becomes the evidence trail
|
|
81
|
+
|
|
82
|
+
## Phase 4: VERIFY — Test the Fix with Evidence
|
|
83
|
+
|
|
84
|
+
**Goal**: Collect concrete evidence that the fix works.
|
|
85
|
+
|
|
86
|
+
1. Run the prediction test from Phase 2 — does it confirm the hypothesis?
|
|
87
|
+
2. Run the original reproduction steps — is the symptom gone?
|
|
88
|
+
3. Run related test suite — do existing tests still pass?
|
|
89
|
+
4. Check for regressions — run broader test suite if available
|
|
90
|
+
5. Verify related symptom predictions — are predicted effects present?
|
|
91
|
+
|
|
92
|
+
Every verification step must produce evidence: command output, test results, observable behavior. "It should work" is not evidence.
|
|
93
|
+
|
|
94
|
+
## Phase 5: SCORE — Evaluate Against Criteria
|
|
95
|
+
|
|
96
|
+
**Goal**: Objective pass/fail with evidence.
|
|
97
|
+
|
|
98
|
+
| # | Criterion | Method | Pass Condition | Evidence Required |
|
|
99
|
+
|---|-----------|--------|----------------|-------------------|
|
|
100
|
+
| 1 | Symptom resolved | Reproduction steps | Symptom no longer occurs | Command output or test result |
|
|
101
|
+
| 2 | Tests pass | Test suite | All relevant tests pass | Test runner output |
|
|
102
|
+
| 3 | No regressions | Broader test suite | No new failures introduced | Test runner output |
|
|
103
|
+
| 4 | Root cause addressed | Code review | Fix targets root cause, not symptom | Diff + reasoning |
|
|
104
|
+
| 5 | Hypothesis confirmed | Prediction test | Prediction test passes | Test output |
|
|
105
|
+
|
|
106
|
+
**All criteria must have evidence.** No criterion marked PASS without proof.
|
|
107
|
+
|
|
108
|
+
If any criterion fails → enter iteration (Phase 6 rules apply).
|
|
109
|
+
If all criteria pass → proceed to critique (Phase 6).
|
|
110
|
+
|
|
111
|
+
## Phase 6: CRITIQUE — Pressure-Test Before Declaring Done
|
|
112
|
+
|
|
113
|
+
**Goal**: Challenge the fix before the user relies on it.
|
|
114
|
+
|
|
115
|
+
1. **Deploy `fix-critique` agent** with: the symptom, the causal tree from investigation (confirmed branch path + pruned branches), the fix (what was changed), the verification evidence
|
|
116
|
+
2. **Evaluate verdict**:
|
|
117
|
+
- **APPROVED** → proceed to REPORT
|
|
118
|
+
- **CHALLENGED** → concerns become input for the next iteration. Route back to INVESTIGATE with the specific challenges as new investigation targets
|
|
119
|
+
|
|
120
|
+
The critique agent checks 5 things:
|
|
121
|
+
- Root cause vs symptom fix
|
|
122
|
+
- Symptom coverage (similar bugs elsewhere)
|
|
123
|
+
- Regression risk
|
|
124
|
+
- Evidence verification
|
|
125
|
+
- Causal tree consistency
|
|
126
|
+
|
|
127
|
+
## Phase 7: REPORT — Transparent Status
|
|
128
|
+
|
|
129
|
+
**Goal**: Clear, honest summary. No overclaiming.
|
|
130
|
+
|
|
131
|
+
### Transparency Markers
|
|
132
|
+
|
|
133
|
+
- ✅ **Verified**: Checked with evidence (test output, reproduction, command results)
|
|
134
|
+
- ⚠️ **Assumed**: Believed true based on reasoning, not verified with a test
|
|
135
|
+
- ❓ **Unknown**: Not checked — explicitly acknowledged gap
|
|
136
|
+
|
|
137
|
+
### Report Contents
|
|
138
|
+
|
|
139
|
+
1. Verdict: Fixed (all criteria pass + critique approved) or Unresolved (iteration limit hit)
|
|
140
|
+
2. Plain-language failure: what went wrong in normal words
|
|
141
|
+
3. Why it happened: symptom -> technical failure -> upstream dependency/interface/process failure -> first controllable system failure
|
|
142
|
+
4. Technical details needed to prove the cause
|
|
143
|
+
5. Tradeoffs and impact
|
|
144
|
+
6. Prevention control
|
|
145
|
+
7. Root cause + evidence level
|
|
146
|
+
8. Causal tree — confirmed branches, pruned branches with rejection evidence, multi-causal findings
|
|
147
|
+
9. Fix applied — what was changed, with rationale
|
|
148
|
+
10. Scorecard — final pass/fail per criterion + evidence
|
|
149
|
+
11. Research used — what was searched, what was found
|
|
150
|
+
12. Iteration history (if >1 iteration) — what was tried, what failed, what changed
|
|
151
|
+
13. Remaining gaps — anything ⚠️ or ❓
|
|
152
|
+
|
|
153
|
+
### After Reporting
|
|
154
|
+
|
|
155
|
+
- Store via `build-loop:debugging-store`
|
|
156
|
+
- Record outcome through standalone Coding Debugger only when it supplied the matched prior incident
|
|
157
|
+
- Write state to `.build-loop/debugging-debug-loop/scorecard.md`
|
|
158
|
+
|
|
159
|
+
## Iteration Rules
|
|
160
|
+
|
|
161
|
+
When any criterion fails or critique is CHALLENGED:
|
|
162
|
+
|
|
163
|
+
1. Diagnose why the criterion failed — don't blind retry
|
|
164
|
+
2. Revise the hypothesis if verification disproved it
|
|
165
|
+
3. Create targeted fix plan for failed criteria only
|
|
166
|
+
4. Execute fix
|
|
167
|
+
5. Re-verify ONLY failed criteria — don't re-run passing checks
|
|
168
|
+
6. Re-score and re-critique
|
|
169
|
+
|
|
170
|
+
### Convergence Detection
|
|
171
|
+
|
|
172
|
+
- **Same hypothesis fails 2x** → escalate to user ("I've tried this approach twice — the hypothesis may be wrong or there's a constraint I'm not seeing")
|
|
173
|
+
- **Fix A breaks criterion B (oscillation)** → flag as coupled issue, present both sides, ask user
|
|
174
|
+
- **3+ criteria fail after a fix** → systemic issue, stop loop and reassess
|
|
175
|
+
- **New regression detected** → fix is causing side effects, reconsider
|
|
176
|
+
- **Hard stop at 5 iterations** → report what's known and what isn't
|
|
177
|
+
|
|
178
|
+
### State Tracking
|
|
179
|
+
|
|
180
|
+
Write iteration state to `.build-loop/debugging-debug-loop/state.json`:
|
|
181
|
+
|
|
182
|
+
```json
|
|
183
|
+
{
|
|
184
|
+
"symptom": "...",
|
|
185
|
+
"iteration": 1,
|
|
186
|
+
"phase": "VERIFY",
|
|
187
|
+
"hypotheses": [
|
|
188
|
+
{ "iteration": 1, "hypothesis": "...", "evidence_level": "strong|moderate|weak", "result": "confirmed|disproved|partial", "evidence": "..." }
|
|
189
|
+
],
|
|
190
|
+
"scorecard": [
|
|
191
|
+
{ "criterion": "symptom_resolved", "result": "PASS|FAIL", "evidence": "..." }
|
|
192
|
+
],
|
|
193
|
+
"critique_verdict": "APPROVED|CHALLENGED|pending",
|
|
194
|
+
"changes_made": ["file:change summary"]
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
`mkdir -p .build-loop/debugging-debug-loop/` before writing.
|
|
199
|
+
|
|
200
|
+
## Process Flow
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
MEMORY SEARCH → INVESTIGATE → HYPOTHESIZE → FIX → VERIFY → SCORE
|
|
204
|
+
↓
|
|
205
|
+
All pass? ──yes──→ CRITIQUE ──approved──→ REPORT
|
|
206
|
+
↓ ↓
|
|
207
|
+
no challenged
|
|
208
|
+
↓ ↓
|
|
209
|
+
ITERATE ←──────────────┘
|
|
210
|
+
(up to 5x)
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Anti-Patterns
|
|
214
|
+
|
|
215
|
+
| Anti-Pattern | What to Do Instead |
|
|
216
|
+
|-------------|-------------------|
|
|
217
|
+
| Accepting the first explanation | Branch first — identify 2+ plausible causes |
|
|
218
|
+
| Fixing the symptom | Trace to root cause |
|
|
219
|
+
| "This should fix it" | Run the tests, show the output |
|
|
220
|
+
| Retrying the same approach | If it failed once with the same evidence, change the hypothesis |
|
|
221
|
+
| Declaring victory without evidence | Every claim needs ✅/⚠️/❓ |
|
|
222
|
+
| Skipping research when stuck | Search for unfamiliar behavior |
|
|
223
|
+
| Hiding uncertainty | ⚠️ and ❓ are not failures — hiding them is |
|
|
224
|
+
|
|
225
|
+
## Sibling Skills
|
|
226
|
+
|
|
227
|
+
- `build-loop:debugging-memory` — mandatory pre-step (Phase 1.1)
|
|
228
|
+
- `build-loop:debugging-assess` — escalation path when investigation can't isolate domain
|
|
229
|
+
- `build-loop:debugging-store` — Phase 7 incident storage
|
|
230
|
+
|
|
231
|
+
*Source: adapted from the debugger workflow lineage and maintained as a build-loop-native skill. Drift-checked by `build-loop:sync-skills`.*
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-loop:debugging-memory-search
|
|
3
|
+
description: Memory-first lookup before debugging — search local build-loop incidents and optionally standalone Coding Debugger memory. Build-loop's native debugging memory, adapted from debugger workflows. Distinct from the legacy in-tree `build-loop:debugging-memory` skill (kept for backward compat); this is the source-tracked native version.
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
user-invocable: false
|
|
6
|
+
source: claude-code-debugger/skills/debugging-memory/SKILL.md
|
|
7
|
+
source_hash: 5c4ee5ada781107e7def92abeca4d51fc0efc61700f7cf43e948da34f4c0681d
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
11
|
+
|
|
12
|
+
# Debugging Memory Workflow (Native, Sourced)
|
|
13
|
+
|
|
14
|
+
Memory-first debugging. Core principle: **never solve the same bug twice**. Native to build-loop; initially adapted from the debugger workflow lineage. Search local `.build-loop/issues/` first, then use standalone Coding Debugger for cross-project memory only when that plugin is installed.
|
|
15
|
+
|
|
16
|
+
> **Naming note**: this skill is `build-loop:debugging-memory-search` to avoid colliding with the legacy in-tree `build-loop:debugging-memory` skill (which the orchestrator continues to call as the memory-first gate's primary entry point). Both have equivalent content; this one carries `source` + `source_hash` provenance and is drift-checked by `build-loop:sync-skills`. New code should prefer the legacy name until the orchestrator is migrated; sibling skills in `skills/debugging/` reference the legacy name where the gate's exact runtime semantics are needed.
|
|
17
|
+
|
|
18
|
+
## When to Activate
|
|
19
|
+
|
|
20
|
+
- Phase 1 Assess: pull recent project incident context for orientation (`list-recent` intent)
|
|
21
|
+
- Phase 4 Review-B Validate: on every criterion failure with an error-like signal — read logs first, synthesize symptom, search memory
|
|
22
|
+
- Phase 5 Iterate: at the start of every Iterate attempt, re-search with the new symptom (failure may have shifted shape after a fix)
|
|
23
|
+
|
|
24
|
+
## Memory-First Approach
|
|
25
|
+
|
|
26
|
+
Before investigating any bug, check debugging memory with the symptom description.
|
|
27
|
+
|
|
28
|
+
The search returns a **verdict** with matching incidents and patterns when structured memory is available. File-backed fallback returns a degraded local verdict with the same action shape.
|
|
29
|
+
|
|
30
|
+
**Verdict-based decision tree:**
|
|
31
|
+
|
|
32
|
+
1. **KNOWN_FIX**: Apply the documented fix directly only when the strict direct-apply gate (below) passes; otherwise adapt the prior incident as a hypothesis and route to the standard fix flow
|
|
33
|
+
2. **LIKELY_MATCH**: Review the past incident, use it as a starting point — never direct-apply
|
|
34
|
+
3. **WEAK_SIGNAL**: Consider loosely related incidents, but investigate fresh
|
|
35
|
+
4. **NO_MATCH**: Proceed with standard debugging via `build-loop:debugging-debug-loop`, then document the solution after
|
|
36
|
+
|
|
37
|
+
### Direct-apply gate (KNOWN_FIX only)
|
|
38
|
+
|
|
39
|
+
All three must pass — otherwise downgrade to adapted-plan routing and record `direct_apply_blocked_by`:
|
|
40
|
+
|
|
41
|
+
1. **file_match**: at least one file in the prior incident's `files_changed` exists in current repo at same relative path
|
|
42
|
+
2. **version_match**: dependency versions in the prior incident match current within minor (semver). If the prior incident's `tags` include a version, compare it to current `package.json`/`requirements.txt`/etc.
|
|
43
|
+
3. **second_signal**: at least one secondary signal — same error class, same callsite line range, or same component layer
|
|
44
|
+
|
|
45
|
+
Skip direct-apply for any pattern with category `react-hooks`, `performance`, or anything where the fix is "increase value X" — those are context-sensitive.
|
|
46
|
+
|
|
47
|
+
## Progressive Depth Retrieval
|
|
48
|
+
|
|
49
|
+
1. **Initial search**: local build-loop incident lookup; if standalone Coding Debugger is available, use its `search` tool for cross-project matches
|
|
50
|
+
2. **Drill down**: read the local issue file or, for Coding Debugger matches, use `detail` with the ID
|
|
51
|
+
3. **Outcome tracking**: for Coding Debugger matches, use `outcome` to record whether the fix worked
|
|
52
|
+
|
|
53
|
+
## Visibility
|
|
54
|
+
|
|
55
|
+
When this skill activates, always announce it to the user:
|
|
56
|
+
|
|
57
|
+
1. **Before searching**: "Checking debugging memory for similar issues..."
|
|
58
|
+
2. **After search**: "Found X matching incident(s) from past debugging sessions" or "No matching incidents — starting fresh investigation"
|
|
59
|
+
|
|
60
|
+
## Deep Investigation Mode
|
|
61
|
+
|
|
62
|
+
For non-trivial issues, escalate to the `build-loop:debugging-debug-loop` skill. Trigger is the **verdict category**, not a numeric confidence score:
|
|
63
|
+
|
|
64
|
+
- **`KNOWN_FIX`** → apply directly, skip the loop
|
|
65
|
+
- **`LIKELY_MATCH`** → enter debug loop (past incidents need verification against current context)
|
|
66
|
+
- **`WEAK_SIGNAL`** → enter debug loop (loosely related, fresh investigation needed)
|
|
67
|
+
- **`NO_MATCH`** → enter debug loop (no prior knowledge)
|
|
68
|
+
|
|
69
|
+
Also enter the debug loop when:
|
|
70
|
+
- Initial diagnosis feels superficial
|
|
71
|
+
- Previous fix didn't hold
|
|
72
|
+
- User explicitly asks for root-cause analysis
|
|
73
|
+
- Multiple symptoms suggest a shared cause
|
|
74
|
+
|
|
75
|
+
## Basic Steps (simple, clear-cut issues)
|
|
76
|
+
|
|
77
|
+
1. **Reproduce** — exact steps, environmental factors, minimal repro
|
|
78
|
+
2. **Isolate** — binary search recent changes, disable components, check logs
|
|
79
|
+
3. **Diagnose** — trace execution, examine state, identify offending code
|
|
80
|
+
4. **Fix** — minimal, targeted, no side effects
|
|
81
|
+
5. **Verify** — original repro, related tests, regression check
|
|
82
|
+
|
|
83
|
+
## Incident Documentation
|
|
84
|
+
|
|
85
|
+
After fixing a bug, store via `build-loop:debugging-store`. Required fields: `symptom`, `root_cause`, `fix`. Optional: `category`, `tags`, `files_changed`, `file`.
|
|
86
|
+
|
|
87
|
+
## Quality Indicators
|
|
88
|
+
|
|
89
|
+
The memory system scores incidents on:
|
|
90
|
+
- Root cause analysis depth (30%)
|
|
91
|
+
- Fix documentation completeness (30%)
|
|
92
|
+
- Verification status (20%)
|
|
93
|
+
- Tags and metadata (20%)
|
|
94
|
+
|
|
95
|
+
Target 75%+ quality score for effective future retrieval.
|
|
96
|
+
|
|
97
|
+
## Tagging Strategy
|
|
98
|
+
|
|
99
|
+
- Technology: `react`, `typescript`, `api`, `database`
|
|
100
|
+
- Category: `logic`, `config`, `dependency`, `performance`
|
|
101
|
+
- Symptom type: `crash`, `render`, `timeout`, `validation`
|
|
102
|
+
|
|
103
|
+
## Pattern Recognition
|
|
104
|
+
|
|
105
|
+
The memory system extracts patterns when 3+ similar incidents exist. Patterns have higher reliability than individual incidents. When a pattern matches, trust the solution template (90%+ confidence), apply the recommended approach, note caveats.
|
|
106
|
+
|
|
107
|
+
## Optional Coding Debugger Tools
|
|
108
|
+
|
|
109
|
+
| Tool | Purpose |
|
|
110
|
+
|------|---------|
|
|
111
|
+
| `search` | Search memory for similar bugs (returns verdict) |
|
|
112
|
+
| `store` | Store a new debugging incident |
|
|
113
|
+
| `detail` | Get full incident or pattern details |
|
|
114
|
+
| `status` | Show memory statistics |
|
|
115
|
+
| `list` | List recent incidents |
|
|
116
|
+
| `patterns` | List known fix patterns |
|
|
117
|
+
| `outcome` | Record whether a fix worked |
|
|
118
|
+
|
|
119
|
+
Use these only when standalone Coding Debugger is installed. Build-loop does not register these MCP tools itself.
|
|
120
|
+
|
|
121
|
+
## Review-F Outcome Feedback
|
|
122
|
+
|
|
123
|
+
Closes the memory-first gate's feedback loop. Both required:
|
|
124
|
+
|
|
125
|
+
- For each newly resolved Review-B/Iterate failure: invoke `build-loop:debugging-store` with `{symptom, root_cause, fix, tags: ["build-loop", project, layer], files}`
|
|
126
|
+
- For each Review-B memory gate where standalone Coding Debugger supplied a prior `KNOWN_FIX` or `LIKELY_MATCH`: invoke its `outcome` tool with `{incident_id, result: "worked"|"failed"|"modified", notes}` — this trains the optional verdict classifier
|
|
127
|
+
|
|
128
|
+
Skipping `outcome` means the optional verdict classifier never improves.
|
|
129
|
+
|
|
130
|
+
## Subagent Integration
|
|
131
|
+
|
|
132
|
+
When debugging involves subagents:
|
|
133
|
+
|
|
134
|
+
1. **Pre-query memory once** through `build-loop:debugging-memory` before spawning agents
|
|
135
|
+
2. **Distribute context** — each agent gets relevant subset
|
|
136
|
+
3. **Aggregate findings** — collect insights from all agents
|
|
137
|
+
4. **Store unified incident** — single `build-loop:debugging-store` call to document combined diagnosis
|
|
138
|
+
|
|
139
|
+
Subagents do not inherit Skill or MCP access — pre-load context into their prompt.
|
|
140
|
+
|
|
141
|
+
## Sibling Skills
|
|
142
|
+
|
|
143
|
+
- `build-loop:debugging-store` — write incident after fix
|
|
144
|
+
- `build-loop:debugging-assess` — parallel domain assessment for multi-domain symptoms
|
|
145
|
+
- `build-loop:debugging-debug-loop` — iterative root-cause analysis with causal-tree investigation
|
|
146
|
+
|
|
147
|
+
*Source: adapted from the debugger workflow lineage and maintained as a build-loop-native skill. Drift-checked by `build-loop:sync-skills`.*
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-loop:debugging-store
|
|
3
|
+
description: Store a debugging incident after fixing a bug — writes build-loop's native local incident record and optionally mirrors to standalone Coding Debugger. Build-loop's native incident storage; canonical source has no discrete SKILL.md (the §"Incident Documentation" section of debugging-memory).
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
user-invocable: false
|
|
6
|
+
source: claude-code-debugger/skills/debugging-memory/SKILL.md
|
|
7
|
+
source_hash: 5c4ee5ada781107e7def92abeca4d51fc0efc61700f7cf43e948da34f4c0681d
|
|
8
|
+
source_section: "Incident Documentation"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
12
|
+
|
|
13
|
+
# Debugging Incident Storage
|
|
14
|
+
|
|
15
|
+
Persist a fixed bug to debugging memory so future builds can recognize recurrence. Native to build-loop; initially adapted from the §"Incident Documentation" workflow in the debugger lineage.
|
|
16
|
+
|
|
17
|
+
> **Divergence note**: the standalone debugger does not ship a discrete `store` SKILL.md. Build-loop keeps storage as a native skill because Review-F needs deterministic local persistence even when no MCP server exists.
|
|
18
|
+
|
|
19
|
+
## When to Activate
|
|
20
|
+
|
|
21
|
+
- Phase 4 Review-F Report: for each Review-B/Iterate failure newly resolved this build, store the incident
|
|
22
|
+
- After any `build-loop:debugging-debug-loop` run that produced a verified fix
|
|
23
|
+
- User asks "save this fix", "remember this bug"
|
|
24
|
+
|
|
25
|
+
## Native Path — Build-Loop Incident Note
|
|
26
|
+
|
|
27
|
+
Write one incident note per resolved failure:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
mkdir -p .build-loop/issues
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Path:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
.build-loop/issues/YYYY-MM-DD-<short-slug>.md
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Template:
|
|
40
|
+
|
|
41
|
+
```markdown
|
|
42
|
+
# <one-line symptom>
|
|
43
|
+
|
|
44
|
+
**Symptom**: <error string, failing command, or observed behavior>
|
|
45
|
+
**Root cause**: <technical cause plus first controllable system cause>
|
|
46
|
+
**Fix**: <what changed and why>
|
|
47
|
+
**Verification**: <commands, tests, or observed proof>
|
|
48
|
+
**Files**: <paths touched>
|
|
49
|
+
**Tags**: build-loop, <project>, <layer>, <framework>, <symptom-type>
|
|
50
|
+
**RCA framework**: <5 Whys | causal tree | fishbone | Kepner-Tregoe | differential diagnosis | falsification>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Required**: `symptom`, `root_cause`, `fix`, `verification`. Everything else improves future retrieval.
|
|
54
|
+
|
|
55
|
+
## Optional Mirror — Coding Debugger MCP
|
|
56
|
+
|
|
57
|
+
If standalone Coding Debugger is installed and available, mirror the same incident:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
mcp__plugin_coding_debugger__store({
|
|
61
|
+
symptom: "user-facing description (≤200 chars, preserves error type/file/key phrase)",
|
|
62
|
+
root_cause: "technical explanation of why",
|
|
63
|
+
fix: "what was changed",
|
|
64
|
+
category: "logic|config|dependency|performance|react-hooks",
|
|
65
|
+
tags: ["build-loop", "<project>", "<layer>", "<framework>", "<symptom-type>"],
|
|
66
|
+
files_changed: ["path/to/file1.ts", "path/to/file2.ts"],
|
|
67
|
+
file: "path/to/primary/problematic/file.ts"
|
|
68
|
+
})
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Mirror failure is not a build failure. Report it as "local incident stored; Coding Debugger mirror unavailable."
|
|
72
|
+
|
|
73
|
+
## Tag Discipline
|
|
74
|
+
|
|
75
|
+
Always include:
|
|
76
|
+
- `"build-loop"` — distinguishes build-orchestrator origins from manual `/build-loop:debug` runs
|
|
77
|
+
- Project name (lowercase, slugified)
|
|
78
|
+
- Layer (`frontend`, `backend`, `database`, `infra`, `external`)
|
|
79
|
+
|
|
80
|
+
Add as relevant:
|
|
81
|
+
- Technology: `react`, `typescript`, `python`, `api`, `prisma`
|
|
82
|
+
- Category: `logic`, `config`, `dependency`, `performance`
|
|
83
|
+
- Symptom type: `crash`, `render`, `timeout`, `validation`
|
|
84
|
+
|
|
85
|
+
## Quality Score Targets
|
|
86
|
+
|
|
87
|
+
The memory system scores stored incidents:
|
|
88
|
+
- Root cause depth (30%)
|
|
89
|
+
- Fix documentation completeness (30%)
|
|
90
|
+
- Verification status (20%)
|
|
91
|
+
- Tags and metadata (20%)
|
|
92
|
+
|
|
93
|
+
Target 75%+. Score below 75% means future searches won't surface this incident reliably — pad the description and tags before storing.
|
|
94
|
+
|
|
95
|
+
## JSON Compatibility Fallback
|
|
96
|
+
|
|
97
|
+
If a downstream process requires JSON, write a compatibility copy after the native note:
|
|
98
|
+
|
|
99
|
+
**Step 1: Generate incident ID**
|
|
100
|
+
```
|
|
101
|
+
INC_<CATEGORY>_YYYYMMDD_HHMMSS_xxxx
|
|
102
|
+
```
|
|
103
|
+
where `xxxx` is 4 random alphanumeric characters. Example: `INC_API_20260403_143052_a7b2`.
|
|
104
|
+
|
|
105
|
+
**Step 2: Ensure directory exists**
|
|
106
|
+
```bash
|
|
107
|
+
mkdir -p .build-loop/debugging/incidents
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Step 3: Write the JSON**
|
|
111
|
+
```json
|
|
112
|
+
{
|
|
113
|
+
"incident_id": "INC_API_20260403_143052_a7b2",
|
|
114
|
+
"timestamp": 1735654252000,
|
|
115
|
+
"symptom": "User-facing description of the bug",
|
|
116
|
+
"root_cause": {
|
|
117
|
+
"description": "Technical explanation",
|
|
118
|
+
"file": "path/to/problematic/file.ts",
|
|
119
|
+
"category": "logic|config|dependency|performance|react-hooks",
|
|
120
|
+
"confidence": 0.85
|
|
121
|
+
},
|
|
122
|
+
"fix": {
|
|
123
|
+
"approach": "What was done",
|
|
124
|
+
"changes": [
|
|
125
|
+
{ "file": "path/to/file.ts", "lines_changed": 10, "change_type": "modify|add|delete", "summary": "..." }
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
"verification": {
|
|
129
|
+
"status": "verified|unverified",
|
|
130
|
+
"regression_tests_passed": true,
|
|
131
|
+
"success_criteria_met": true
|
|
132
|
+
},
|
|
133
|
+
"tags": ["build-loop", "project-name", "layer", "category"],
|
|
134
|
+
"files_changed": ["list/of/all/files.ts"],
|
|
135
|
+
"quality_score": 0.75
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Write to `.build-loop/debugging/incidents/<incident_id>.json`. Flag `debugger JSON compatibility copy written` in Review-F only if another workflow requested JSON.
|
|
140
|
+
|
|
141
|
+
## After Storing
|
|
142
|
+
|
|
143
|
+
1. Confirm the local note path.
|
|
144
|
+
2. If standalone Coding Debugger supplied the prior incident, invoke `outcome({incident_id, result: "worked"|"failed"|"modified", notes})` to train its verdict classifier.
|
|
145
|
+
3. If the note lacks verification, enrich it before ending Review-F.
|
|
146
|
+
|
|
147
|
+
## Sibling Skills
|
|
148
|
+
|
|
149
|
+
- `build-loop:debugging-memory` — search memory before debugging
|
|
150
|
+
- `build-loop:debugging-assess` — parallel domain assessment
|
|
151
|
+
- `build-loop:debugging-debug-loop` — full iterative debugging that produces the incident this skill stores
|
|
152
|
+
|
|
153
|
+
*Source: adapted from the debugger incident-documentation workflow and maintained as a build-loop-native skill. Drift-checked by `build-loop:sync-skills`.*
|