@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,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: optimize
|
|
3
|
+
description: "(Advanced override — `/build-loop:run` auto-routes here; use this only to force the mode.) Run autonomous metric-driven optimization. Detects available targets or accepts a specific one."
|
|
4
|
+
argument-hint: "[target]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
8
|
+
|
|
9
|
+
Load the `build-loop:optimize` skill.
|
|
10
|
+
|
|
11
|
+
{{#if ARGUMENTS}}
|
|
12
|
+
Target: `{{ARGUMENTS}}`
|
|
13
|
+
|
|
14
|
+
Run all three phases:
|
|
15
|
+
1. **Setup** — configure the optimization for the specified target
|
|
16
|
+
2. **Loop** — iterate: hypothesize → edit → measure → keep or revert
|
|
17
|
+
3. **Review** — check for overfitting, summarize results
|
|
18
|
+
|
|
19
|
+
If the target matches a known profile (`simplify`, `optimize-build`, `optimize-tests`, `optimize-bundle`, `optimize-perf`, `semantic-search-latency`), use the pre-configured settings from `profiles.md`.
|
|
20
|
+
|
|
21
|
+
For custom targets, run Phase 1 (Setup) interactively.
|
|
22
|
+
For latency-sensitive targets, prefer repeated sampling with warmups and a stable aggregate such as `median` or `p95` instead of a single timing sample.
|
|
23
|
+
{{else}}
|
|
24
|
+
No target specified.
|
|
25
|
+
|
|
26
|
+
1. Run `python3 ${CLAUDE_PLUGIN_ROOT}/scripts/optimize_loop.py --detect --workdir "$PWD"` to discover available targets
|
|
27
|
+
2. Check for existing `.build-loop/optimize/experiment.json` — offer to resume if found
|
|
28
|
+
3. Present available targets and let the user choose
|
|
29
|
+
4. The `simplify` target is always available (reduces line count in changed files)
|
|
30
|
+
5. For response-time work, initialize a custom target with `--metric-samples`, `--metric-warmups`, and `--metric-aggregate` so the loop compares stable latency numbers instead of one noisy run
|
|
31
|
+
{{/if}}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-verify
|
|
3
|
+
description: "Deterministic verifier for plan markdown — grep-checkable rules (delete-with-callers, numeric-drift, route-change-evidence, package-state, missing-evidence). Run before accepting a Phase 2 plan."
|
|
4
|
+
argument-hint: "<plan.md>"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
8
|
+
|
|
9
|
+
Load the `plan-verify` skill from `${CLAUDE_PLUGIN_ROOT}/skills/plan-verify/SKILL.md` for context.
|
|
10
|
+
|
|
11
|
+
{{#if ARGUMENTS}}
|
|
12
|
+
Plan file: `{{ARGUMENTS}}`
|
|
13
|
+
|
|
14
|
+
Run:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/plan_verify.py {{ARGUMENTS}} --repo "$PWD" --json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Then:
|
|
21
|
+
|
|
22
|
+
1. Report the summary (BLOCKER / WARN / INFO counts and per-rule breakdown).
|
|
23
|
+
2. If exit code is 1, list each BLOCKER with claim_text + line + rule_id and stop — do NOT proceed to Phase 3.
|
|
24
|
+
3. If exit code is 0, surface WARN findings as advisory and proceed.
|
|
25
|
+
4. If exit code is 2, treat as verifier outage and surface to the user.
|
|
26
|
+
|
|
27
|
+
For non-deterministic checks (alternatives considered, MECE scope, marker adequacy),
|
|
28
|
+
follow up by dispatching the `plan-critic` agent with the same plan + this script's JSON output.
|
|
29
|
+
{{else}}
|
|
30
|
+
No plan file specified.
|
|
31
|
+
|
|
32
|
+
Usage: `/plan-verify <path-to-plan.md>`
|
|
33
|
+
|
|
34
|
+
Example: `/plan-verify .build-loop/plan.md`
|
|
35
|
+
|
|
36
|
+
The verifier exits 0 if there are no BLOCKERs, 1 if BLOCKERs are present, 2 on verifier error.
|
|
37
|
+
|
|
38
|
+
To inspect rules, read `${CLAUDE_PLUGIN_ROOT}/skills/plan-verify/SKILL.md`.
|
|
39
|
+
{{/if}}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-loop:promote-experiment
|
|
3
|
+
description: Promote an auto-promoted experimental skill or agent from project-local `.build-loop/skills/active/` into the build-loop plugin repo, making it available across every project. Requires user confirmation and opens a PR on the plugin repo for review.
|
|
4
|
+
argument-hint: <artifact-name>
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
8
|
+
|
|
9
|
+
# /build-loop:promote-experiment <name>
|
|
10
|
+
|
|
11
|
+
Promote a proven experimental artifact into the build-loop plugin itself. This is the manual, user-approved counterpart to Phase 6 Learn's auto-promote — which stays local to the project. Cross-project promotion modifies the plugin repo and affects every user, so it is never automatic.
|
|
12
|
+
|
|
13
|
+
## Prerequisites
|
|
14
|
+
|
|
15
|
+
1. The artifact must exist at `.build-loop/skills/active/<name>/SKILL.md` (already auto-promoted within the project), OR at `.build-loop/skills/experimental/<name>/SKILL.md` (user is fast-tracking without waiting for A/B completion — require explicit confirmation).
|
|
16
|
+
|
|
17
|
+
2. The build-loop plugin repo must be writable. Check:
|
|
18
|
+
```bash
|
|
19
|
+
BUILD_LOOP_REPO="${CLAUDE_PLUGIN_ROOT:-$HOME/Desktop/git-folder/build-loop}"
|
|
20
|
+
[ -d "$BUILD_LOOP_REPO/.git" ] && [ -w "$BUILD_LOOP_REPO/skills" ]
|
|
21
|
+
```
|
|
22
|
+
If false, abort with "build-loop plugin repo not writable at $BUILD_LOOP_REPO".
|
|
23
|
+
|
|
24
|
+
3. The user must supply `<name>` as an argument. If missing, list current candidates:
|
|
25
|
+
```bash
|
|
26
|
+
ls .build-loop/skills/active/ 2>/dev/null
|
|
27
|
+
ls .build-loop/skills/experimental/ 2>/dev/null
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Steps
|
|
31
|
+
|
|
32
|
+
### 1. Read the evidence
|
|
33
|
+
|
|
34
|
+
Collect:
|
|
35
|
+
- The artifact's SKILL.md content
|
|
36
|
+
- Its experiments jsonl (`.build-loop/experiments/<name>.jsonl`)
|
|
37
|
+
- All `applied` entries across this project (and, if a global index exists at `~/.build-loop/experiments/<name>.jsonl`, append those too)
|
|
38
|
+
- Any `auto_promote` or `extend_sample` decisions from `.build-loop/experiments/decisions.jsonl`
|
|
39
|
+
|
|
40
|
+
Compute:
|
|
41
|
+
- Total applied runs (across projects)
|
|
42
|
+
- Aggregate win rate vs baseline
|
|
43
|
+
- Any regression signals (reversed auto-promotes, discard attempts)
|
|
44
|
+
|
|
45
|
+
### 2. Synthesize a promotion dossier
|
|
46
|
+
|
|
47
|
+
Build a markdown summary for the user:
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
## Promotion dossier: <name>
|
|
51
|
+
|
|
52
|
+
**Type**: skill | agent
|
|
53
|
+
**Auto-promoted in this project**: <date>, after N runs
|
|
54
|
+
**Cross-project evidence**: P projects, Q applied runs, R wins, S regressions
|
|
55
|
+
**Aggregate metric delta**: +X% vs baseline (target was +Y%)
|
|
56
|
+
**SKILL.md length**: N lines
|
|
57
|
+
**Dependencies declared**: (none | list)
|
|
58
|
+
**Last modified**: <date>
|
|
59
|
+
|
|
60
|
+
**What the skill does** (from description frontmatter):
|
|
61
|
+
<one line>
|
|
62
|
+
|
|
63
|
+
**Recommended promotion target**:
|
|
64
|
+
- Name on promote: build-loop:<name> (or rename to: build-loop:<suggested-name>)
|
|
65
|
+
- Target path: skills/<name>/SKILL.md in the plugin repo
|
|
66
|
+
- Triggers on: <extracted trigger phrases>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 3. Ask the user
|
|
70
|
+
|
|
71
|
+
Use `AskUserQuestion`:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
Question: "Promote '<name>' into the build-loop plugin repo?"
|
|
75
|
+
Header: "Promote"
|
|
76
|
+
Options:
|
|
77
|
+
- "Promote as drafted" — copy SKILL.md verbatim, open PR
|
|
78
|
+
- "Promote with rename" — user provides new name, then copy + PR
|
|
79
|
+
- "Review first" — output the dossier but do not copy (user decides after reading)
|
|
80
|
+
- Cancel (implicit via AskUserQuestion "Other")
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 4. Execute
|
|
84
|
+
|
|
85
|
+
If user approved promotion:
|
|
86
|
+
|
|
87
|
+
1. Determine target path: `$BUILD_LOOP_REPO/skills/<final-name>/SKILL.md` (plus any references/ subdirectory from source).
|
|
88
|
+
2. If target already exists:
|
|
89
|
+
- Abort and ask user to choose a new name, OR confirm overwrite.
|
|
90
|
+
3. Create a feature branch on the plugin repo: `feat/promote-<name>-from-<project-slug>`.
|
|
91
|
+
4. Copy files. Edit frontmatter: remove `experimental: true`, `promoted_at`, `promoted_from_project`; add `promoted_at: <ISO>`, `promoted_from_project: <project-name>`, `original_baseline: <N>`, `aggregate_delta: <percent>`.
|
|
92
|
+
5. Update the plugin's `skills/build-loop/SKILL.md` capability routing table to reference the new skill if it fits an existing row, OR add a new row (ask the user which).
|
|
93
|
+
6. Commit:
|
|
94
|
+
```
|
|
95
|
+
feat(skills): promote <name> from Phase 6 Learn
|
|
96
|
+
|
|
97
|
+
Originated as auto-drafted experimental skill in <project>.
|
|
98
|
+
Aggregate track record: P projects, Q runs, +X% vs baseline
|
|
99
|
+
(target was +Y%). SKILL.md copied verbatim with promotion
|
|
100
|
+
metadata added to frontmatter.
|
|
101
|
+
|
|
102
|
+
Evidence log: .build-loop/experiments/<name>.jsonl (N entries)
|
|
103
|
+
Signed off by Opus 4.7 on <auto-promote date>.
|
|
104
|
+
```
|
|
105
|
+
7. Push the branch and open a PR with the promotion dossier as the body.
|
|
106
|
+
|
|
107
|
+
### 5. Record in project
|
|
108
|
+
|
|
109
|
+
Append to `.build-loop/experiments/decisions.jsonl`:
|
|
110
|
+
|
|
111
|
+
```jsonl
|
|
112
|
+
{"event": "cross_project_promote", "date": "ISO", "name": "<name>", "plugin_pr_url": "<url>", "aggregate_evidence": { runs, projects, delta }}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Do not delete the local artifact — it stays in `.build-loop/skills/active/<name>/`. The plugin version will shadow it once installed; the local copy is retained as the historical source.
|
|
116
|
+
|
|
117
|
+
## Safety rails
|
|
118
|
+
|
|
119
|
+
- **Never auto-invoke**. Phase 6 Learn auto-promote stops at the project boundary. This command is the only path to the plugin repo.
|
|
120
|
+
- **Require user confirmation**. AskUserQuestion is mandatory.
|
|
121
|
+
- **Always open a PR**, never commit to main directly. Plugin maintainers review before merge.
|
|
122
|
+
- **Preserve provenance**. Frontmatter records the source project, baseline, and delta. If the promoted skill regresses in a cross-project context, the track record makes rollback decisions clear.
|
|
123
|
+
- **Never overwrite without confirmation**. If a skill with the same name exists, abort and let the user rename or approve overwrite.
|
|
124
|
+
|
|
125
|
+
## Related
|
|
126
|
+
|
|
127
|
+
- Phase 6 Learn auto-promote (project-local): `skills/self-improve/SKILL.md`
|
|
128
|
+
- User removal override: `.build-loop/skills/.demoted` file or `rm -rf .build-loop/skills/active/<name>/`
|
|
129
|
+
- Global cross-project evidence index: `~/.build-loop/experiments/<name>.jsonl` (appended on every applied run across projects)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: research
|
|
3
|
+
description: "(Advanced override — `/build-loop:run` auto-routes here; use this only to force the mode.) Generate a repo-grounded research packet without committing to build. Pre-decision analysis."
|
|
4
|
+
argument-hint: "[topic]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
8
|
+
|
|
9
|
+
Load the `build-loop:research` skill.
|
|
10
|
+
|
|
11
|
+
{{#if ARGUMENTS}}
|
|
12
|
+
Topic: `{{ARGUMENTS}}`
|
|
13
|
+
|
|
14
|
+
Run the research packet workflow:
|
|
15
|
+
1. Scan the repo for context relevant to the topic
|
|
16
|
+
2. Classify the task type
|
|
17
|
+
3. Generate a structured research packet (Bottom line, What I found, Best path, Why, Risks, Confidence, Next action)
|
|
18
|
+
4. Archive to `.build-loop/research/`
|
|
19
|
+
5. Present the packet — user decides next step: build, optimize, or shelve
|
|
20
|
+
{{else}}
|
|
21
|
+
No topic specified. Ask the user what they want to research or evaluate.
|
|
22
|
+
{{/if}}
|
package/commands/run.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "The single entry for any coding task — build, fix, refactor, optimize, research, or test. Auto-routes to the right mode; you don't pick."
|
|
3
|
+
argument-hint: "[--parallel] [goal description]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
7
|
+
|
|
8
|
+
{{#if ARGUMENTS}}
|
|
9
|
+
Load the `build-loop:build-loop` skill. Goal: `{{ARGUMENTS}}`
|
|
10
|
+
{{else}}
|
|
11
|
+
Load the `build-loop:build-loop` skill. Ask the user what they're building or changing.
|
|
12
|
+
{{/if}}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Periodic self-review: mine recent build activity for issues and efficiency signals, optionally apply SAFE improvements. Use --install/--uninstall/--status to manage the launchd schedule."
|
|
3
|
+
argument-hint: "[light|deep] [--install|--uninstall|--status]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
7
|
+
|
|
8
|
+
{{#if ARGUMENTS}}
|
|
9
|
+
{{#contains ARGUMENTS "--install"}}
|
|
10
|
+
Run `python3 scripts/install_self_review.py install --json` in the current repo and report the result.
|
|
11
|
+
{{else}}
|
|
12
|
+
{{#contains ARGUMENTS "--uninstall"}}
|
|
13
|
+
Run `python3 scripts/install_self_review.py uninstall --json` in the current repo and report the result.
|
|
14
|
+
{{else}}
|
|
15
|
+
{{#contains ARGUMENTS "--status"}}
|
|
16
|
+
Run `python3 scripts/install_self_review.py status --json` in the current repo and report loaded/not-loaded state for both scheduled jobs.
|
|
17
|
+
{{else}}
|
|
18
|
+
Determine mode from ARGUMENTS: if it contains "deep" use `deep`, otherwise use `light`.
|
|
19
|
+
Determine mode from ARGUMENTS: if it contains "deep" use `deep`, otherwise use `light`.
|
|
20
|
+
Run `python3 scripts/self_review/__main__.py --mode <mode> --workdir . --json` and display the digest path and queued proposal count. If mode is deep, also describe the queued proposals and their classify_hint values.
|
|
21
|
+
{{/contains}}
|
|
22
|
+
{{/contains}}
|
|
23
|
+
{{/contains}}
|
|
24
|
+
{{else}}
|
|
25
|
+
Run `python3 scripts/self_review/__main__.py --mode light --workdir . --json` and display the digest path and queued proposal count.
|
|
26
|
+
{{/if}}
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Reference
|
|
31
|
+
|
|
32
|
+
**Manual trigger (light — daily digest, no apply)**
|
|
33
|
+
```
|
|
34
|
+
/build-loop:self-review light
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Manual trigger (deep — full review; routes SAFE proposals through /build-loop:run)**
|
|
38
|
+
```
|
|
39
|
+
/build-loop:self-review deep
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Launchd schedule management**
|
|
43
|
+
```
|
|
44
|
+
/build-loop:self-review --install # install both launchd jobs (reads .build-loop/config.json)
|
|
45
|
+
/build-loop:self-review --status # check loaded/not-loaded
|
|
46
|
+
/build-loop:self-review --uninstall # remove jobs and plists
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Scheduled runs are fully autonomous: the deep job (Sunday 03:00 by default) runs the gatherer, then calls `claude -p` with the apply prompt to route SAFE proposals through `/build-loop:run`, which applies + commits + collapses. Push behavior is governed by `selfReview.autonomy` in `.build-loop/config.json` (`apply_push` / `apply_local` / `propose`). RISKY and DECISION proposals are never applied autonomously — they stay queued for manual review.
|
|
50
|
+
|
|
51
|
+
See `skills/build-loop/references/self-review.md` for the full config schema, graceful-degradation notes, and the APPLY PROMPT.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: start-prd
|
|
3
|
+
description: "Start a living PRD for the current project by answering 3-5 strategic questions. Loads the prd-builder skill if installed."
|
|
4
|
+
argument-hint: "[appname]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
8
|
+
|
|
9
|
+
Load the `prd-builder` skill from RossLabs-AI-Toolkit if available. If unavailable, fall back to the inline guidance below.
|
|
10
|
+
|
|
11
|
+
{{#if ARGUMENTS}}
|
|
12
|
+
App name: `{{ARGUMENTS}}`
|
|
13
|
+
|
|
14
|
+
Run the prd-builder workflow for this app:
|
|
15
|
+
1. Confirm the skill applies (check trigger conditions).
|
|
16
|
+
2. Ask Q1-3 in a single message, formatted as draft inferences (not blank prompts) based on whatever you know about the project from the codebase + memory.
|
|
17
|
+
3. Wait for the user to redirect or confirm.
|
|
18
|
+
4. Optionally ask Q4-5 if Q1-3 leave specific gaps the user wants pinned down.
|
|
19
|
+
5. Draft the PRD at `docs/prd-{{ARGUMENTS}}.md` per the prd-builder Output Specification.
|
|
20
|
+
6. Run the Fidelity check; deepen any section that fails prediction.
|
|
21
|
+
7. Add a project-level pointer in `CLAUDE.md` (or `.claude/CLAUDE.md`): *"For non-trivial changes, read `docs/prd-{{ARGUMENTS}}.md` and apply its LLM Navigation Map."*
|
|
22
|
+
8. (If applicable) bidirectionally link to existing research packets, audit docs, or operationalization documents.
|
|
23
|
+
{{else}}
|
|
24
|
+
No app name provided. Either:
|
|
25
|
+
- Provide an appname argument: `/build-loop:start-prd myapp` → drafts `docs/prd-myapp.md`
|
|
26
|
+
- Or ask the user what app this PRD is for, then proceed with the workflow above.
|
|
27
|
+
{{/if}}
|
|
28
|
+
|
|
29
|
+
## Fallback when prd-builder skill is not installed
|
|
30
|
+
|
|
31
|
+
If the `prd-builder` skill is unavailable in this session, walk the user through the 3 core questions inline:
|
|
32
|
+
|
|
33
|
+
**Q1 — Who and when (persona + trigger):** Describe the primary user (role, life stage, what they already use that this competes with). List 1-3 trigger moments that make them open the app. List 3-7 explicit "is NOT" exclusions.
|
|
34
|
+
|
|
35
|
+
**Q2 — Outcome (the measurable change):** Pick ONE measurable change after N weeks/months of usage. Number, behavior, or self-perception.
|
|
36
|
+
|
|
37
|
+
**Q3 — Stance (the philosophy):** Three sentences:
|
|
38
|
+
1. Privacy/Data: "We will/won't [send/store/share] X because Y."
|
|
39
|
+
2. Complexity: "Regular users will/won't see [advanced feature class] because Y."
|
|
40
|
+
3. Cost: "App is [free/freemium/paid/subscription/...] because Y."
|
|
41
|
+
|
|
42
|
+
Then draft a markdown PRD at `docs/prd-{{ARGUMENTS}}.md` with:
|
|
43
|
+
- Frontmatter (name, status, revision, last_updated, load_when, evolves_when, core_principles)
|
|
44
|
+
- Body sections: How to use this PRD, LLM Navigation Map, Section Index, Fidelity check, Intent, North Star, Persona, Outcome, Methodology, Stance, Non-goals (illustrative), Roadmap stance, One-line summary, Open questions, Pivot log, Document maintenance.
|
|
45
|
+
|
|
46
|
+
Cite `~/dev/git-folder/RossLabs-AI-Toolkit/skills/prd-builder/SKILL.md` for the full output spec.
|
|
47
|
+
|
|
48
|
+
After drafting, run the Fidelity check by predicting answers to:
|
|
49
|
+
- Should the next major release prioritize speed or accuracy?
|
|
50
|
+
- Should new features add complexity or simplify existing ones?
|
|
51
|
+
- Should the home screen show many metrics or one north-star indicator?
|
|
52
|
+
- Should we accept a feature request from a vocal user who doesn't fit the persona?
|
|
53
|
+
- When should the app degrade gracefully vs fail loudly?
|
|
54
|
+
- When should we move work from on-device to cloud (or vice versa)?
|
|
55
|
+
- Should onboarding be opinionated or open?
|
|
56
|
+
|
|
57
|
+
If you can predict each cleanly with PRD section citations, the PRD passes. If not, deepen the failing section.
|
package/commands/test.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "(Advanced override — `/build-loop:run` auto-routes here on 'test plugin'/'validate plugin' language; use this to force the mode.) Run build-loop's plugin-tests static-analysis suite against the current repo (skill resolution, manifest, MCP, triggers, bridges, agent surfaces, cache pruning)"
|
|
3
|
+
allowed-tools: Bash, Read
|
|
4
|
+
argument-hint: "[--strict] [<test-name>]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
8
|
+
|
|
9
|
+
Load the `build-loop:plugin-tests` skill.
|
|
10
|
+
|
|
11
|
+
{{#if ARGUMENTS}}
|
|
12
|
+
Args: `{{ARGUMENTS}}`
|
|
13
|
+
|
|
14
|
+
If `<test-name>` is one of `skill-resolution`, `plugin-manifest`, `mcp-registration`, `trigger-phrases`, `bridge-preflight`, `agent-surface-policy`, `cache-prune`, run only that single script. Otherwise treat the args as flags for the runner.
|
|
15
|
+
|
|
16
|
+
Example:
|
|
17
|
+
- `/build-loop:test skill-resolution` — run only the namesake-collision test
|
|
18
|
+
- `/build-loop:test --strict` — exit non-zero on any soft warning (CI gate)
|
|
19
|
+
{{else}}
|
|
20
|
+
Run the full plugin-test suite from the repo root:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
for t in scripts/test_skill_resolution.py scripts/test_plugin_manifest.py \
|
|
24
|
+
scripts/test_mcp_registration.py scripts/test_trigger_phrases.py \
|
|
25
|
+
scripts/test_bridge_preflight.py scripts/test_agent_surface_policy.py \
|
|
26
|
+
scripts/test_prune_plugin_cache.py scripts/test_prune_codex_plugin_cache.py; do
|
|
27
|
+
echo "=== $(basename $t) ==="
|
|
28
|
+
python3 "$t" || EXIT=1
|
|
29
|
+
done
|
|
30
|
+
exit ${EXIT:-0}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Surface failures with the script name + test name + the assertion message. On any failure, suggest the fix path documented in the test's docstring.
|
|
34
|
+
{{/if}}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assessment Orchestrator
|
|
3
|
+
*
|
|
4
|
+
* Coordinates parallel domain-specific assessments for comprehensive debugging.
|
|
5
|
+
* Detects which domains are involved based on symptom keywords and launches
|
|
6
|
+
* appropriate assessors in parallel.
|
|
7
|
+
*/
|
|
8
|
+
import type { DomainAssessment, OrchestrationResult } from './types';
|
|
9
|
+
export type Domain = 'database' | 'frontend' | 'api' | 'performance';
|
|
10
|
+
export type DomainPriority = 'high' | 'medium' | 'low';
|
|
11
|
+
export interface DomainDetection {
|
|
12
|
+
domain: Domain;
|
|
13
|
+
priority: DomainPriority;
|
|
14
|
+
matchCount: number;
|
|
15
|
+
matchedKeywords: string[];
|
|
16
|
+
}
|
|
17
|
+
export interface OrchestrationConfig {
|
|
18
|
+
minMatchThreshold?: number;
|
|
19
|
+
maxParallelDomains?: number;
|
|
20
|
+
includeLowPriority?: boolean;
|
|
21
|
+
domainWeights?: Partial<Record<Domain, number>>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Detect which domains are potentially involved based on symptom keywords
|
|
25
|
+
*/
|
|
26
|
+
export declare function detectDomains(symptom: string, config?: OrchestrationConfig): DomainDetection[];
|
|
27
|
+
/**
|
|
28
|
+
* Select which domains should be assessed based on detection results
|
|
29
|
+
*/
|
|
30
|
+
export declare function selectDomainsForAssessment(detections: DomainDetection[], config?: OrchestrationConfig): Domain[];
|
|
31
|
+
/**
|
|
32
|
+
* Format domain detection results for the orchestrator agent
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatDetectionForAgent(detections: DomainDetection[]): string;
|
|
35
|
+
/**
|
|
36
|
+
* Generate prompts for each domain assessor agent
|
|
37
|
+
*/
|
|
38
|
+
export declare function generateAssessorPrompts(symptom: string, domains: Domain[]): Record<Domain, string>;
|
|
39
|
+
/**
|
|
40
|
+
* Parse assessment JSON from agent response
|
|
41
|
+
*/
|
|
42
|
+
export declare function parseAssessmentResponse(response: string, domain: Domain): DomainAssessment | null;
|
|
43
|
+
/**
|
|
44
|
+
* Rank assessments by confidence and evidence
|
|
45
|
+
*/
|
|
46
|
+
export declare function rankAssessments(assessments: DomainAssessment[]): DomainAssessment[];
|
|
47
|
+
/**
|
|
48
|
+
* Generate priority ranking for orchestration result
|
|
49
|
+
*/
|
|
50
|
+
export declare function generatePriorityRanking(rankedAssessments: DomainAssessment[]): Array<{
|
|
51
|
+
rank: number;
|
|
52
|
+
domain: Domain;
|
|
53
|
+
action: string;
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* Generate recommended sequence of actions
|
|
57
|
+
*/
|
|
58
|
+
export declare function generateRecommendedSequence(rankedAssessments: DomainAssessment[]): string[];
|
|
59
|
+
/**
|
|
60
|
+
* Create the final orchestration result
|
|
61
|
+
*/
|
|
62
|
+
export declare function createOrchestrationResult(symptom: string, assessments: DomainAssessment[]): OrchestrationResult;
|
|
63
|
+
/**
|
|
64
|
+
* Format orchestration result for display
|
|
65
|
+
*/
|
|
66
|
+
export declare function formatOrchestrationResult(result: OrchestrationResult): string;
|
|
67
|
+
/**
|
|
68
|
+
* Main orchestration entry point
|
|
69
|
+
* Note: This prepares the orchestration but doesn't spawn agents directly.
|
|
70
|
+
* The actual agent spawning is done by Claude Code using the Task tool.
|
|
71
|
+
*/
|
|
72
|
+
export declare function prepareOrchestration(symptom: string, config?: OrchestrationConfig): {
|
|
73
|
+
detections: DomainDetection[];
|
|
74
|
+
selectedDomains: Domain[];
|
|
75
|
+
prompts: Record<Domain, string>;
|
|
76
|
+
shouldUseOrchestrator: boolean;
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=assessment-orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assessment-orchestrator.d.ts","sourceRoot":"","sources":["../../src/assessment-orchestrator.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAkCrE,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,aAAa,CAAC;AACrE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAElC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjD;AASD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,mBAAwB,GAC/B,eAAe,EAAE,CA0CnB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,eAAe,EAAE,EAC7B,MAAM,GAAE,mBAAwB,GAC/B,MAAM,EAAE,CAoBV;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAe7E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,gBAAgB,GAAG,IAAI,CA2BzB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,gBAAgB,EAAE,GAC9B,gBAAgB,EAAE,CAmBpB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,iBAAiB,EAAE,gBAAgB,EAAE,GACpC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAMzD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,iBAAiB,EAAE,gBAAgB,EAAE,GACpC,MAAM,EAAE,CAcV;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,gBAAgB,EAAE,GAC9B,mBAAmB,CAcrB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAoC7E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,mBAAwB,GAC/B;IACD,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAeA"}
|