pi-dev-team 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/PORTING.md +134 -0
- package/README.md +207 -0
- package/UPSTREAM.json +64 -0
- package/agents/Explore.md +15 -0
- package/agents/a11y-review.md +118 -0
- package/agents/adr-author.md +70 -0
- package/agents/ai-provenance-review.md +120 -0
- package/agents/angular-reactivity-review.md +95 -0
- package/agents/arch-review.md +135 -0
- package/agents/architect.md +78 -0
- package/agents/autoship-batch-proposer.md +69 -0
- package/agents/claude-setup-review.md +136 -0
- package/agents/codebase-recon.md +184 -0
- package/agents/component-architecture-review.md +119 -0
- package/agents/concurrency-review.md +109 -0
- package/agents/correctness-review.md +290 -0
- package/agents/data-flow-tracer.md +120 -0
- package/agents/doc-review.md +165 -0
- package/agents/domain-review.md +136 -0
- package/agents/general-purpose.md +10 -0
- package/agents/gherkin-quality-critic.md +113 -0
- package/agents/js-fp-review.md +114 -0
- package/agents/mutation-kill.md +684 -0
- package/agents/naming-review.md +142 -0
- package/agents/orchestrator.md +339 -0
- package/agents/performance-review.md +105 -0
- package/agents/plan-review-acceptance.md +115 -0
- package/agents/plan-review-design.md +90 -0
- package/agents/plan-review-parallelization.md +84 -0
- package/agents/plan-review-strategic.md +96 -0
- package/agents/plan-review-ux.md +110 -0
- package/agents/platform-engineer.md +64 -0
- package/agents/product-manager.md +68 -0
- package/agents/progress-guardian.md +79 -0
- package/agents/qa-engineer.md +289 -0
- package/agents/quality-reviewer.md +132 -0
- package/agents/react-reactivity-review.md +102 -0
- package/agents/refactor-opportunity-review.md +128 -0
- package/agents/security-engineer.md +60 -0
- package/agents/security-review.md +218 -0
- package/agents/session-analysis.md +95 -0
- package/agents/software-engineer.md +105 -0
- package/agents/spec-compliance-review.md +100 -0
- package/agents/spec-reviewer.md +114 -0
- package/agents/structure-review.md +146 -0
- package/agents/tech-writer.md +84 -0
- package/agents/test-review.md +246 -0
- package/agents/test-smell-review.md +188 -0
- package/agents/token-efficiency-review.md +139 -0
- package/agents/ui-ux-designer.md +54 -0
- package/agents/vue-reactivity-review.md +95 -0
- package/bin/__pycache__/claudecpython-314.pyc +0 -0
- package/bin/claude +258 -0
- package/docs/upstream/.pages +1 -0
- package/docs/upstream/CHANGELOG.md +2586 -0
- package/docs/upstream/README.md +155 -0
- package/docs/upstream/agent-architecture.md +214 -0
- package/docs/upstream/agent_info.md +187 -0
- package/docs/upstream/artifact-migration.md +124 -0
- package/docs/upstream/code-intelligence-nudge.md +149 -0
- package/docs/upstream/code-review-process.md +294 -0
- package/docs/upstream/concurrent-use.md +73 -0
- package/docs/upstream/context-management.md +111 -0
- package/docs/upstream/developer-notes.md +280 -0
- package/docs/upstream/diagrams/architecture-overview.svg +101 -0
- package/docs/upstream/diagrams/review-dispatch.svg +139 -0
- package/docs/upstream/diagrams/team-agents.svg +128 -0
- package/docs/upstream/diagrams/test-improve-flow.svg +166 -0
- package/docs/upstream/diagrams/workflow-linear.svg +66 -0
- package/docs/upstream/diagrams/workflow-three-phase.svg +200 -0
- package/docs/upstream/eval-maintenance.md +95 -0
- package/docs/upstream/eval-running-guide.md +147 -0
- package/docs/upstream/eval-system.md +291 -0
- package/docs/upstream/session-review-oss-complements.md +75 -0
- package/docs/upstream/session-review.md +212 -0
- package/docs/upstream/skills.md +188 -0
- package/docs/upstream/team-structure.md +21 -0
- package/docs/upstream/telemetry-ci-access.md +129 -0
- package/docs/upstream/telemetry-repo-security.md +120 -0
- package/docs/upstream/test-evaluation.md +277 -0
- package/docs/upstream/test-improve.md +154 -0
- package/docs/upstream/triage-workflow.md +282 -0
- package/docs/upstream/workflows.md +289 -0
- package/extensions/dev-team/index.ts +539 -0
- package/extensions/dev-team/lib/agents.ts +272 -0
- package/extensions/dev-team/lib/ai-credits.ts +92 -0
- package/extensions/dev-team/lib/autocompact.ts +81 -0
- package/extensions/dev-team/lib/child-run.ts +102 -0
- package/extensions/dev-team/lib/config.ts +236 -0
- package/extensions/dev-team/lib/gh-command.ts +103 -0
- package/extensions/dev-team/lib/github-style.ts +307 -0
- package/extensions/dev-team/lib/hooks.ts +350 -0
- package/extensions/dev-team/lib/metrics.ts +115 -0
- package/extensions/dev-team/lib/safe-read.ts +49 -0
- package/extensions/dev-team/lib/session-files.ts +57 -0
- package/extensions/dev-team/lib/session-spend.ts +123 -0
- package/extensions/dev-team/lib/shell-scan.ts +205 -0
- package/extensions/dev-team/lib/skills.ts +213 -0
- package/extensions/dev-team/lib/subagent-render.ts +245 -0
- package/extensions/dev-team/lib/subagent-types.ts +164 -0
- package/extensions/dev-team/lib/subagent.ts +596 -0
- package/extensions/dev-team/lib/terminal-text.ts +54 -0
- package/extensions/dev-team/lib/tools-misc.ts +152 -0
- package/extensions/dev-team/lib/transcript.ts +110 -0
- package/extensions/dev-team/lib/trust.ts +52 -0
- package/extensions/dev-team/lib/usage-breakdown.ts +176 -0
- package/extensions/dev-team/lib/usage-chart.ts +153 -0
- package/extensions/dev-team/lib/usage-command.ts +107 -0
- package/extensions/dev-team/lib/usage-history.ts +203 -0
- package/extensions/dev-team/lib/usage-render.ts +225 -0
- package/extensions/dev-team/lib/usage-split-bar.ts +127 -0
- package/extensions/dev-team/lib/usage-state.ts +116 -0
- package/extensions/dev-team/lib/usage-text.ts +159 -0
- package/extensions/dev-team/lib/usage-view.ts +109 -0
- package/hooks/__pycache__/refactor_test_freeze_guard.cpython-314.pyc +0 -0
- package/hooks/agent_dispatch_ledger.py +190 -0
- package/hooks/autocompact_setup_nudge.py +99 -0
- package/hooks/bash_retry_guard.py +228 -0
- package/hooks/boundary_events_write_guard.py +352 -0
- package/hooks/code_intelligence_nudge.py +293 -0
- package/hooks/code_intelligence_turn_mark.py +317 -0
- package/hooks/codegraph_bootstrap.py +139 -0
- package/hooks/contract_version_guard.py +362 -0
- package/hooks/cost_meter.py +106 -0
- package/hooks/destructive-commands.json +62 -0
- package/hooks/destructive_guard.py +477 -0
- package/hooks/eval_compliance_check.py +440 -0
- package/hooks/guards.json +17 -0
- package/hooks/hooks.json +323 -0
- package/hooks/internal_double_gate.py +296 -0
- package/hooks/js_fp_review.py +212 -0
- package/hooks/knowledge_index.py +119 -0
- package/hooks/lib/__pycache__/artifact_paths.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/atomic_state.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/autocompact_config.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/boundary_events.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/doc_classification.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/gh_pr_create_detect.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/git_safe_diff.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/instrument_log.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/metrics_query.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/plugin_version.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/pre_commit_doc_classifier.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/review_agent_registry.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/review_gate_corroboration.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/review_gate_hash.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/review_verdicts.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/stdin_json.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/stryker_invocation.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/telemetry_consent.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/test_file_classify.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/token_efficiency_limits.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/verify_guard_state.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/xunit_v3_operator_gate.cpython-314.pyc +0 -0
- package/hooks/lib/agent_skill_hints.py +74 -0
- package/hooks/lib/artifact_paths.py +263 -0
- package/hooks/lib/atomic_state.py +557 -0
- package/hooks/lib/autocompact_config.py +103 -0
- package/hooks/lib/autoship_log.py +106 -0
- package/hooks/lib/banned_scripts_policy.py +51 -0
- package/hooks/lib/boundary_events.py +436 -0
- package/hooks/lib/build_knowledge_index.py +504 -0
- package/hooks/lib/build_skills_index.py +361 -0
- package/hooks/lib/build_state.py +116 -0
- package/hooks/lib/classify_ship_outcome.py +126 -0
- package/hooks/lib/config_changelog_schema.py +115 -0
- package/hooks/lib/cost_meter.py +955 -0
- package/hooks/lib/doc_classification.py +116 -0
- package/hooks/lib/gh_pr_create_detect.py +136 -0
- package/hooks/lib/git_safe_diff.py +123 -0
- package/hooks/lib/instrument_log.py +66 -0
- package/hooks/lib/iteration_journal_gate.py +197 -0
- package/hooks/lib/knowledge_index_paths.py +88 -0
- package/hooks/lib/mcp_json_repowise.py +177 -0
- package/hooks/lib/metrics_query.py +202 -0
- package/hooks/lib/minimal_yaml.py +434 -0
- package/hooks/lib/plugin_version.py +142 -0
- package/hooks/lib/pre_commit_detect.py +537 -0
- package/hooks/lib/pre_commit_doc_classifier.py +126 -0
- package/hooks/lib/pricing.py +118 -0
- package/hooks/lib/report_pdf.py +371 -0
- package/hooks/lib/review_agent_registry.py +142 -0
- package/hooks/lib/review_dispatch_ledger.py +101 -0
- package/hooks/lib/review_gate_corroboration.py +521 -0
- package/hooks/lib/review_gate_hash.py +252 -0
- package/hooks/lib/review_gate_normalized_hash.py +1115 -0
- package/hooks/lib/review_verdicts.py +301 -0
- package/hooks/lib/run_report.py +160 -0
- package/hooks/lib/skill_categories.yaml +125 -0
- package/hooks/lib/stdin_json.py +57 -0
- package/hooks/lib/stryker_invocation.py +102 -0
- package/hooks/lib/telemetry_consent.py +41 -0
- package/hooks/lib/telemetry_report.py +108 -0
- package/hooks/lib/test_file_classify.py +160 -0
- package/hooks/lib/token_efficiency_limits.py +51 -0
- package/hooks/lib/turn_identity.py +77 -0
- package/hooks/lib/verify_guard_state.py +110 -0
- package/hooks/lib/workflow_state.py +206 -0
- package/hooks/lib/xunit_v3_operator_gate.py +596 -0
- package/hooks/mcp_json_repowise_nudge.py +74 -0
- package/hooks/mutation_adapters/__init__.py +7 -0
- package/hooks/mutation_adapters/__pycache__/__init__.cpython-314.pyc +0 -0
- package/hooks/mutation_adapters/__pycache__/lib.cpython-314.pyc +0 -0
- package/hooks/mutation_adapters/__pycache__/mutmut.cpython-314.pyc +0 -0
- package/hooks/mutation_adapters/__pycache__/pitest.cpython-314.pyc +0 -0
- package/hooks/mutation_adapters/__pycache__/stryker.cpython-314.pyc +0 -0
- package/hooks/mutation_adapters/__pycache__/stryker_net.cpython-314.pyc +0 -0
- package/hooks/mutation_adapters/lib.py +478 -0
- package/hooks/mutation_adapters/mutmut.py +188 -0
- package/hooks/mutation_adapters/pitest.py +266 -0
- package/hooks/mutation_adapters/stryker.py +157 -0
- package/hooks/mutation_adapters/stryker_net.py +264 -0
- package/hooks/mutation_gate.py +193 -0
- package/hooks/mutation_testing_smoke_gate.py +371 -0
- package/hooks/pending_review_notify.py +121 -0
- package/hooks/phase_marker.py +138 -0
- package/hooks/post_compact_state_reinject.py +180 -0
- package/hooks/post_format.py +115 -0
- package/hooks/pre_commit_knowledge_index.py +128 -0
- package/hooks/pre_commit_review.py +66 -0
- package/hooks/pre_pr_review.py +694 -0
- package/hooks/pre_tool_guard.py +405 -0
- package/hooks/py.sh +73 -0
- package/hooks/refactor-bash-write-patterns.json +29 -0
- package/hooks/refactor_test_bash_guard.py +253 -0
- package/hooks/refactor_test_freeze_guard.py +139 -0
- package/hooks/refactor_test_revert_guard.py +186 -0
- package/hooks/repo_review_nudge.py +287 -0
- package/hooks/review_verdict_recorder.py +464 -0
- package/hooks/scan_bash_command_for_banned_scripts.py +428 -0
- package/hooks/scan_worktree_for_banned_scripts.py +238 -0
- package/hooks/session_learning_trigger.py +248 -0
- package/hooks/skills_index.py +126 -0
- package/hooks/stryker_xunit_shim_guard.py +571 -0
- package/hooks/subagent_completion_guard.py +309 -0
- package/hooks/subagent_skill_context.py +139 -0
- package/hooks/task_completion_metrics.py +216 -0
- package/hooks/tdd_guard.py +229 -0
- package/hooks/telemetry.py +341 -0
- package/hooks/token_efficiency_review.py +194 -0
- package/hooks/verify_guard.py +183 -0
- package/hooks/verify_guard_edit_marker.py +73 -0
- package/hooks/version_check.py +173 -0
- package/knowledge/accepted-risks-schema.md +98 -0
- package/knowledge/adr-decision-criteria.md +64 -0
- package/knowledge/adversarial-review-protocol.md +139 -0
- package/knowledge/agent-registry.md +228 -0
- package/knowledge/agent-review-methodology.md +80 -0
- package/knowledge/ai-friendly-repo-guidelines.md +67 -0
- package/knowledge/architecture-assessment.md +96 -0
- package/knowledge/artifact-lifecycle.md +57 -0
- package/knowledge/cd-maturity-model.md +82 -0
- package/knowledge/cd-test-architecture.md +190 -0
- package/knowledge/ci-cd-file-scope.md +24 -0
- package/knowledge/codegraph-vs-graphify.md +192 -0
- package/knowledge/component-test-patterns.md +139 -0
- package/knowledge/database-change-management.md +80 -0
- package/knowledge/database-test-patterns.md +79 -0
- package/knowledge/decision-defaults.md +88 -0
- package/knowledge/dependency-breaking-techniques.md +116 -0
- package/knowledge/deployment-pipeline.md +86 -0
- package/knowledge/design-smells.md +122 -0
- package/knowledge/directory-enumeration.md +38 -0
- package/knowledge/domain-modeling.md +123 -0
- package/knowledge/evidence-bundle.md +90 -0
- package/knowledge/exploratory-testing-field-guide.md +122 -0
- package/knowledge/failure-routing.md +28 -0
- package/knowledge/fixture-construction.md +56 -0
- package/knowledge/frontend-component-architecture.md +139 -0
- package/knowledge/gherkin-quality-review-dispatch.md +135 -0
- package/knowledge/index.json +6766 -0
- package/knowledge/internal-collaborator-doubling.md +101 -0
- package/knowledge/legacy-test-strategy.md +71 -0
- package/knowledge/long-run-waiting.md +66 -0
- package/knowledge/microservice-testing.md +71 -0
- package/knowledge/model-pricing.json +23 -0
- package/knowledge/mutation-score-formulas.md +60 -0
- package/knowledge/object-calisthenics.md +147 -0
- package/knowledge/oracle-provenance.md +94 -0
- package/knowledge/orchestrator-script-implementation.md +185 -0
- package/knowledge/owasp-detection.md +148 -0
- package/knowledge/plan-review-rubric.md +56 -0
- package/knowledge/proxy-connectivity.md +62 -0
- package/knowledge/reactive-effect-patterns.md +73 -0
- package/knowledge/recon-inventory-excludes.txt +32 -0
- package/knowledge/references/bdd-value-guide.md +61 -0
- package/knowledge/references/csharp-http-client-testing.md +264 -0
- package/knowledge/release-strategies.md +74 -0
- package/knowledge/report-output-location.md +117 -0
- package/knowledge/report-pdf-integration.md +63 -0
- package/knowledge/report-print.css +129 -0
- package/knowledge/report-template.md +114 -0
- package/knowledge/report-to-pdf.md +69 -0
- package/knowledge/request-processing-flow.md +63 -0
- package/knowledge/result-verification.md +52 -0
- package/knowledge/review-agent-output-contract.md +121 -0
- package/knowledge/review-lens-classification.md +113 -0
- package/knowledge/review-rubric.md +62 -0
- package/knowledge/review-template.md +104 -0
- package/knowledge/rule-fixtures/A02.insecure-random-js/negative.js +1 -0
- package/knowledge/rule-fixtures/A02.insecure-random-js/positive.js +1 -0
- package/knowledge/rule-fixtures/A02.weak-hashing-md5/negative.py +1 -0
- package/knowledge/rule-fixtures/A02.weak-hashing-md5/positive.py +1 -0
- package/knowledge/rule-fixtures/A03.command-injection/negative.js +1 -0
- package/knowledge/rule-fixtures/A03.command-injection/positive.js +1 -0
- package/knowledge/rule-fixtures/A03.sql-injection/negative.js +1 -0
- package/knowledge/rule-fixtures/A03.sql-injection/positive.js +1 -0
- package/knowledge/rule-fixtures/A03.xss-innerhtml/negative.js +1 -0
- package/knowledge/rule-fixtures/A03.xss-innerhtml/positive.js +1 -0
- package/knowledge/rule-fixtures/A05.cors-wildcard/negative.js +1 -0
- package/knowledge/rule-fixtures/A05.cors-wildcard/positive.js +1 -0
- package/knowledge/rule-fixtures/A05.default-credentials/negative.js +1 -0
- package/knowledge/rule-fixtures/A05.default-credentials/positive.js +1 -0
- package/knowledge/rule-fixtures/A07.jwt-alg-none/negative.js +1 -0
- package/knowledge/rule-fixtures/A07.jwt-alg-none/positive.js +1 -0
- package/knowledge/rule-fixtures/A08.binary-formatter/negative.cs +1 -0
- package/knowledge/rule-fixtures/A08.binary-formatter/positive.cs +1 -0
- package/knowledge/rule-fixtures/A08.js-eval/negative.js +1 -0
- package/knowledge/rule-fixtures/A08.js-eval/positive.js +1 -0
- package/knowledge/rule-fixtures/A08.object-input-stream/negative.java +1 -0
- package/knowledge/rule-fixtures/A08.object-input-stream/positive.java +1 -0
- package/knowledge/schemas/disposition-register-v1.json +65 -0
- package/knowledge/schemas/recon-envelope-v1.json +198 -0
- package/knowledge/schemas/unified-finding-v1.json +72 -0
- package/knowledge/security-primitives-contract.md +301 -0
- package/knowledge/security-review-rule-map.yaml +107 -0
- package/knowledge/skills-registry.md +72 -0
- package/knowledge/task-size-classifier.md +103 -0
- package/knowledge/telemetry-schema.md +881 -0
- package/knowledge/test-automation-maturity.md +56 -0
- package/knowledge/test-automation-principles.md +71 -0
- package/knowledge/test-cadence-tradeoffs.md +68 -0
- package/knowledge/test-doubles.md +105 -0
- package/knowledge/test-file-indicators.md +22 -0
- package/knowledge/test-layer-gates.md +35 -0
- package/knowledge/test-matrix-examples/django-batch.md +24 -0
- package/knowledge/test-matrix-examples/dotnet-grpc-fronting-api.md +90 -0
- package/knowledge/test-matrix-examples/dotnet-http-consumer.md +131 -0
- package/knowledge/test-matrix-examples/react-node-spa.md +24 -0
- package/knowledge/test-matrix-examples/spring-boot-service.md +25 -0
- package/knowledge/test-matrix-examples/ssr-htmx.md +24 -0
- package/knowledge/test-organization.md +70 -0
- package/knowledge/test-pyramid.md +84 -0
- package/knowledge/test-refactoring.md +67 -0
- package/knowledge/test-review-division-of-labor.md +85 -0
- package/knowledge/test-smells.md +80 -0
- package/knowledge/test-stack-profiles/bdd-frameworks.md +235 -0
- package/knowledge/test-stack-profiles/django.md +13 -0
- package/knowledge/test-stack-profiles/dotnet.md +18 -0
- package/knowledge/test-stack-profiles/go.md +16 -0
- package/knowledge/test-stack-profiles/node.md +16 -0
- package/knowledge/test-stack-profiles/react.md +12 -0
- package/knowledge/test-stack-profiles/spring-boot.md +16 -0
- package/knowledge/test-stack-profiles/ssr-htmx.md +14 -0
- package/knowledge/test-stack-profiles/vue.md +12 -0
- package/knowledge/test-strategy.md +70 -0
- package/knowledge/testability-patterns.md +240 -0
- package/knowledge/testing-quadrants.md +44 -0
- package/knowledge/testing-techniques/approval.md +15 -0
- package/knowledge/testing-techniques/chaos.md +17 -0
- package/knowledge/testing-techniques/fuzz.md +15 -0
- package/knowledge/testing-techniques/property-based.md +15 -0
- package/knowledge/testing-techniques/schema-validation.md +15 -0
- package/knowledge/testing-techniques/screenshot.md +15 -0
- package/knowledge/three-phase-workflow.md +198 -0
- package/knowledge/value-patterns.md +55 -0
- package/knowledge/verification-mode.md +116 -0
- package/knowledge/virtual-service-libraries.md +75 -0
- package/knowledge/wave-consolidation-guidance.md +21 -0
- package/overrides/agents/Explore.md +15 -0
- package/overrides/agents/general-purpose.md +10 -0
- package/overrides/notes/autoship.md +6 -0
- package/overrides/notes/issues-from-assessment.md +3 -0
- package/overrides/notes/issues-from-plan.md +3 -0
- package/overrides/notes/mutation-night-watch.md +3 -0
- package/overrides/notes/mutation-testing.md +3 -0
- package/overrides/notes/pr.md +7 -0
- package/overrides/notes/project-init.md +6 -0
- package/overrides/notes/setup.md +13 -0
- package/overrides/notes/specs.md +3 -0
- package/overrides/skills/headless-run/SKILL.md +45 -0
- package/overrides/skills/upgrade/SKILL.md +30 -0
- package/overrides/skills/version/SKILL.md +25 -0
- package/package.json +36 -0
- package/scripts/authoring_digest.py +93 -0
- package/scripts/autoship_discover.py +121 -0
- package/scripts/autoship_group.py +409 -0
- package/scripts/autoship_proposals.py +494 -0
- package/scripts/autoship_queue.py +291 -0
- package/scripts/autoship_reclaim.py +495 -0
- package/scripts/build_jobs.py +108 -0
- package/scripts/build_rollback_point.py +240 -0
- package/scripts/build_slice_scope.py +157 -0
- package/scripts/build_wave.py +109 -0
- package/scripts/build_wave_reconcile.py +252 -0
- package/scripts/build_worktree_baseref.py +113 -0
- package/scripts/check_agent_scope.py +117 -0
- package/scripts/check_agent_tool_mapping.py +213 -0
- package/scripts/check_review_agent_mcp_tools.py +317 -0
- package/scripts/check_security_assessment_mcp_tools.py +165 -0
- package/scripts/checkpoint_abort.py +502 -0
- package/scripts/claude_setup_review.py +438 -0
- package/scripts/codebase_recon.py +556 -0
- package/scripts/coverage_config.py +623 -0
- package/scripts/coverage_delta_steering.py +330 -0
- package/scripts/coverage_discovery_dotnet.py +315 -0
- package/scripts/coverage_discovery_java.py +742 -0
- package/scripts/coverage_discovery_js.py +546 -0
- package/scripts/coverage_gap_ranking.py +556 -0
- package/scripts/coverage_readiness.py +455 -0
- package/scripts/coverage_report_parse.py +521 -0
- package/scripts/detect_bdd_convention.py +252 -0
- package/scripts/eval_ablation.py +376 -0
- package/scripts/gherkin_analysis_coverage_gate.py +306 -0
- package/scripts/gherkin_cross_feature_duplicate_titles_gate.py +173 -0
- package/scripts/gherkin_effectiveness_rollup.py +238 -0
- package/scripts/gherkin_failure_path_gate.py +206 -0
- package/scripts/gherkin_feature_merge.py +720 -0
- package/scripts/gherkin_stub_gate.py +163 -0
- package/scripts/gherkin_stub_merge.py +479 -0
- package/scripts/git_origin_host.py +88 -0
- package/scripts/install-java-static-analysis.py +110 -0
- package/scripts/issue_deps.py +74 -0
- package/scripts/lib/_bdd_markers.py +28 -0
- package/scripts/lib/_gherkin_text.py +93 -0
- package/scripts/lib/_vendored_tree.py +70 -0
- package/scripts/lib/autoship_state.py +397 -0
- package/scripts/lib/claude_md_guard.py +226 -0
- package/scripts/lib/deterministic_recon.py +446 -0
- package/scripts/lib/mcp_tool_grants.py +211 -0
- package/scripts/lib/plan_parse.py +386 -0
- package/scripts/lib/review_result.py +84 -0
- package/scripts/lib/review_roster.py +86 -0
- package/scripts/lib/session_log/__init__.py +34 -0
- package/scripts/lib/session_log/__pycache__/__init__.cpython-314.pyc +0 -0
- package/scripts/lib/session_log/__pycache__/records.cpython-314.pyc +0 -0
- package/scripts/lib/session_log/classify.py +231 -0
- package/scripts/lib/session_log/corrections.py +194 -0
- package/scripts/lib/session_log/discovery.py +108 -0
- package/scripts/lib/session_log/records.py +218 -0
- package/scripts/lib/session_log/redact.py +76 -0
- package/scripts/lib/session_log/signals.py +373 -0
- package/scripts/lib/session_report_downstream.py +614 -0
- package/scripts/lib/session_report_maintainer.py +1273 -0
- package/scripts/lib/session_report_shared.py +262 -0
- package/scripts/lib/settings_hook_guard.py +157 -0
- package/scripts/lib/slug.py +33 -0
- package/scripts/lib/stub_extractors/__init__.py +82 -0
- package/scripts/lib/stub_extractors/_common.py +328 -0
- package/scripts/lib/stub_extractors/csharp.py +19 -0
- package/scripts/lib/stub_extractors/go.py +173 -0
- package/scripts/lib/stub_extractors/java.py +18 -0
- package/scripts/lib/stub_extractors/jsts.py +126 -0
- package/scripts/mutation_stack_sections.py +149 -0
- package/scripts/mutation_yield_steering.py +345 -0
- package/scripts/orchestrator.py +895 -0
- package/scripts/plan_gherkin_export.py +227 -0
- package/scripts/plan_waves.py +208 -0
- package/scripts/pr_close_keyword_lint.py +108 -0
- package/scripts/progress_guardian.py +888 -0
- package/scripts/recon_inventory.py +273 -0
- package/scripts/review_findings_log.py +93 -0
- package/scripts/run_invariants.py +124 -0
- package/scripts/select_lenses.py +640 -0
- package/scripts/session_report.py +486 -0
- package/scripts/set_autocompact_env.py +221 -0
- package/scripts/ship_resume_guard.py +135 -0
- package/scripts/ship_review_gate.py +63 -0
- package/scripts/specs_convention_marker.py +103 -0
- package/scripts/test_improve_resume.py +277 -0
- package/scripts/test_review_mechanics.py +958 -0
- package/scripts/token_efficiency_review.py +322 -0
- package/scripts/verdict_scope.py +285 -0
- package/scripts/verify_gherkin_quality_critic_isolation.py +296 -0
- package/scripts/verify_tier.py +157 -0
- package/skills/adr-tools/SKILL.md +118 -0
- package/skills/agent-readiness/SKILL.md +105 -0
- package/skills/agent-readiness/ai_friendly_analyzers.py +326 -0
- package/skills/agent-readiness/scanner.py +441 -0
- package/skills/agent-readiness/scorecard.yaml +88 -0
- package/skills/api-design/SKILL.md +115 -0
- package/skills/apply-fixes/SKILL.md +171 -0
- package/skills/apply-test-doubles/SKILL.md +321 -0
- package/skills/artifact-lifecycle/SKILL.md +127 -0
- package/skills/autoship/SKILL.md +1124 -0
- package/skills/benchmark/SKILL.md +105 -0
- package/skills/branch-workflow/SKILL.md +89 -0
- package/skills/browse/SKILL.md +184 -0
- package/skills/browser-testing/SKILL.md +62 -0
- package/skills/browser-testing/references/playwright-patterns.md +216 -0
- package/skills/build/SKILL.md +422 -0
- package/skills/build/references/static-self-heal.md +245 -0
- package/skills/careful/SKILL.md +72 -0
- package/skills/cd-test-architecture/SKILL.md +371 -0
- package/skills/ci-debugging/SKILL.md +105 -0
- package/skills/co-evolution-audit/SKILL.md +269 -0
- package/skills/code-review/SKILL.md +1015 -0
- package/skills/code-review/examples/aggregated-sample.json +56 -0
- package/skills/code-review/examples/sample-report.md +41 -0
- package/skills/code-review/output-format.md +478 -0
- package/skills/code-review/scripts/activation.py +86 -0
- package/skills/code-review/scripts/change_impact.py +357 -0
- package/skills/code-review/scripts/change_shape.py +372 -0
- package/skills/code-review/scripts/change_size.py +212 -0
- package/skills/code-review/scripts/changed_file_list.py +141 -0
- package/skills/code-review/scripts/closing_pass.py +187 -0
- package/skills/code-review/scripts/consolidate.py +277 -0
- package/skills/code-review/scripts/contract_failure_report.py +185 -0
- package/skills/code-review/scripts/dispatch_reconcile.py +66 -0
- package/skills/code-review/scripts/dispatch_waves.py +164 -0
- package/skills/code-review/scripts/finding_signature.py +446 -0
- package/skills/code-review/scripts/ledger.py +283 -0
- package/skills/code-review/scripts/partition.py +169 -0
- package/skills/code-review/scripts/render_tiered_findings.py +274 -0
- package/skills/code-review/scripts/repo_invariants.py +1066 -0
- package/skills/code-review/scripts/review_context_pack.py +306 -0
- package/skills/code-review/scripts/review_round_log.py +345 -0
- package/skills/code-review/scripts/review_value_coverage.py +297 -0
- package/skills/code-review/scripts/validate_review_output.py +467 -0
- package/skills/code-review/sliced-mode.md +205 -0
- package/skills/competitive-analysis/SKILL.md +191 -0
- package/skills/context-loading-protocol/SKILL.md +157 -0
- package/skills/continue/SKILL.md +90 -0
- package/skills/cost-report/SKILL.md +178 -0
- package/skills/coverage-baseline/SKILL.md +335 -0
- package/skills/coverage-baseline/references/multi-project-discovery.md +202 -0
- package/skills/coverage-delta/SKILL.md +181 -0
- package/skills/coverage-delta/references/mutation-gate.md +70 -0
- package/skills/design-doc/SKILL.md +95 -0
- package/skills/design-interrogation/SKILL.md +89 -0
- package/skills/design-it-twice/SKILL.md +91 -0
- package/skills/docker-image-audit/SKILL.md +108 -0
- package/skills/docker-image-audit/references/install-guide.md +64 -0
- package/skills/docker-image-audit/references/report-template.md +73 -0
- package/skills/docker-image-create/SKILL.md +185 -0
- package/skills/domain-analysis/SKILL.md +183 -0
- package/skills/domain-driven-design/SKILL.md +194 -0
- package/skills/exploratory-testing/SKILL.md +108 -0
- package/skills/explore/SKILL.md +51 -0
- package/skills/farley-score/SKILL.md +165 -0
- package/skills/feature-file-validation/SKILL.md +78 -0
- package/skills/feature-file-validation/references/validation-rules.md +115 -0
- package/skills/feedback-learning/SKILL.md +414 -0
- package/skills/fix/SKILL.md +450 -0
- package/skills/freeze/SKILL.md +68 -0
- package/skills/frontend-architecture/SKILL.md +113 -0
- package/skills/gherkin-derive/SKILL.md +630 -0
- package/skills/gherkin-public/SKILL.md +266 -0
- package/skills/governance-compliance/SKILL.md +150 -0
- package/skills/guard/SKILL.md +75 -0
- package/skills/handoff/SKILL.md +139 -0
- package/skills/handoff/references/summary-templates.md +242 -0
- package/skills/harness-audit/SKILL.md +751 -0
- package/skills/harness-audit/scripts/lesson_validate.py +386 -0
- package/skills/harness-audit/scripts/redundancy_criterion.py +188 -0
- package/skills/headless-run/SKILL.md +45 -0
- package/skills/headless-run/scripts/isolated_dispatch.py +381 -0
- package/skills/help/SKILL.md +72 -0
- package/skills/hexagonal-architecture/SKILL.md +85 -0
- package/skills/human-oversight-protocol/SKILL.md +224 -0
- package/skills/issues-from-assessment/SKILL.md +223 -0
- package/skills/issues-from-plan/SKILL.md +133 -0
- package/skills/legacy-code/SKILL.md +132 -0
- package/skills/mermaid-diagramming/SKILL.md +120 -0
- package/skills/mutation-night-watch/SKILL.md +154 -0
- package/skills/mutation-night-watch/references/scheduling.md +135 -0
- package/skills/mutation-testing/SKILL.md +396 -0
- package/skills/mutation-testing/references/languages/csharp-stryker-net.md +676 -0
- package/skills/mutation-testing/references/languages/go-go-mutesting.md +95 -0
- package/skills/mutation-testing/references/languages/java-pitest.md +77 -0
- package/skills/mutation-testing/references/languages/javascript-stryker.md +188 -0
- package/skills/mutation-testing/references/languages/python-mutmut.md +97 -0
- package/skills/mutation-testing/references/time-estimation.md +34 -0
- package/skills/mutation-testing/references/tool-detection.md +15 -0
- package/skills/mutation-testing/references/workflow-callers.md +23 -0
- package/skills/mutation-testing/scripts/__pycache__/xunit_v3_feature_detector.cpython-314.pyc +0 -0
- package/skills/mutation-testing/scripts/csharp_stryker_net_slice_runner.py +635 -0
- package/skills/mutation-testing/scripts/csharp_stryker_net_status_loop.py +525 -0
- package/skills/mutation-testing/scripts/csharp_stryker_net_wrapper.py +681 -0
- package/skills/mutation-testing/scripts/mutation_baseline_reuse.py +292 -0
- package/skills/mutation-testing/scripts/mutation_exclude_policy.py +268 -0
- package/skills/mutation-testing/scripts/mutation_feasibility_gate.py +463 -0
- package/skills/mutation-testing/scripts/mutation_kill_headless.py +331 -0
- package/skills/mutation-testing/scripts/mutation_kill_insert.py +199 -0
- package/skills/mutation-testing/scripts/mutation_kill_insert_python.py +150 -0
- package/skills/mutation-testing/scripts/mutation_kill_loop.py +869 -0
- package/skills/mutation-testing/scripts/mutation_kill_loop_python.py +949 -0
- package/skills/mutation-testing/scripts/mutation_kill_retry.py +592 -0
- package/skills/mutation-testing/scripts/mutation_kill_shared.py +620 -0
- package/skills/mutation-testing/scripts/mutation_nightwatch.py +462 -0
- package/skills/mutation-testing/scripts/mutation_nightwatch_stacks.py +425 -0
- package/skills/mutation-testing/scripts/mutation_report.py +743 -0
- package/skills/mutation-testing/scripts/mutation_report_cli.py +175 -0
- package/skills/mutation-testing/scripts/mutation_safety_gate.py +69 -0
- package/skills/mutation-testing/scripts/stryker_shard_pipeline.py +847 -0
- package/skills/mutation-testing/scripts/stryker_shard_setup.py +440 -0
- package/skills/mutation-testing/scripts/stryker_timeout_retry.py +142 -0
- package/skills/mutation-testing/scripts/xunit_v3_feature_detector.py +341 -0
- package/skills/performance-benchmark/SKILL.md +174 -0
- package/skills/performance-benchmark/examples/report-format.md +43 -0
- package/skills/performance-benchmark/references/benchmark-script.md +169 -0
- package/skills/performance-metrics/SKILL.md +265 -0
- package/skills/plan/SKILL.md +199 -0
- package/skills/plan/references/gherkin-persistence.md +43 -0
- package/skills/plan/references/plan-template.md +182 -0
- package/skills/pr/SKILL.md +289 -0
- package/skills/pr/scripts/gate_retry_state.py +368 -0
- package/skills/project-init/README.md +141 -0
- package/skills/project-init/SKILL.md +1197 -0
- package/skills/project-init/evals/evals.json +200 -0
- package/skills/project-init/references/capability-tools.md +55 -0
- package/skills/project-init/references/configs.md +221 -0
- package/skills/property-based-testing/SKILL.md +121 -0
- package/skills/property-based-testing/fixtures/invariant_fixture.py +15 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/README.md +42 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/LICENSE +21 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/README.md +263 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/cjs/fast-check.d.ts +5165 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/cjs/fast-check.js +12147 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/cjs/package.json +3 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/cjs/types57/fast-check.d.ts +5165 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/fast-check.d.ts +5165 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/fast-check.js +12011 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/rolldown-runtime-D7D4PA-g.js +13 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/types57/fast-check.d.ts +5165 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/package.json +94 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/LICENSE +21 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/README.md +168 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/RandomGenerator-DcXj09Ch.d.ts +14 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformBigInt.d.ts +15 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformBigInt.js +38 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformFloat32.d.ts +15 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformFloat32.js +18 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformFloat64.d.ts +15 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformFloat64.js +22 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformInt.d.ts +15 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformInt.js +134 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/RandomGenerator-DcXj09Ch.d.ts +14 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformBigInt.d.ts +15 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformBigInt.js +37 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformFloat32.d.ts +15 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformFloat32.js +17 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformFloat64.d.ts +15 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformFloat64.js +21 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformInt.d.ts +15 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformInt.js +133 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/congruential32.d.ts +7 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/congruential32.js +44 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/mersenne.d.ts +7 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/mersenne.js +90 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/xoroshiro128plus.d.ts +7 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/xoroshiro128plus.js +80 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/xorshift128plus.d.ts +7 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/xorshift128plus.js +78 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/package.json +3 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/types/JumpableRandomGenerator.d.ts +16 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/types/JumpableRandomGenerator.js +0 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/types/RandomGenerator.d.ts +2 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/types/RandomGenerator.js +0 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/generateN.d.ts +6 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/generateN.js +8 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/purify.d.ts +12 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/purify.js +9 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/skipN.d.ts +6 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/skipN.js +6 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/congruential32.d.ts +7 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/congruential32.js +46 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/mersenne.d.ts +7 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/mersenne.js +92 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/xoroshiro128plus.d.ts +7 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/xoroshiro128plus.js +82 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/xorshift128plus.d.ts +7 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/xorshift128plus.js +80 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/types/JumpableRandomGenerator.d.ts +16 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/types/JumpableRandomGenerator.js +0 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/types/RandomGenerator.d.ts +2 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/types/RandomGenerator.js +0 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/generateN.d.ts +6 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/generateN.js +9 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/purify.d.ts +12 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/purify.js +10 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/skipN.d.ts +6 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/skipN.js +7 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/package.json +133 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/package-lock.json +1179 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/package.json +14 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/roundtrip.js +29 -0
- package/skills/property-based-testing/fixtures/js-roundtrip/roundtrip.properties.test.js +16 -0
- package/skills/property-based-testing/fixtures/no_property_fixture.py +10 -0
- package/skills/property-based-testing/fixtures/roundtrip_fixture.py +16 -0
- package/skills/property-based-testing/references/languages/javascript.md +54 -0
- package/skills/property-based-testing/scripts/detect_and_dispatch.py +80 -0
- package/skills/property-based-testing/scripts/hypothesis_scaffold.py +276 -0
- package/skills/proxy-resilience/SKILL.md +84 -0
- package/skills/quality-gate-pipeline/SKILL.md +184 -0
- package/skills/quality-targets-converge/SKILL.md +254 -0
- package/skills/repo-review/SKILL.md +159 -0
- package/skills/report-pdf/SKILL.md +66 -0
- package/skills/review/SKILL.md +47 -0
- package/skills/review-agent/SKILL.md +152 -0
- package/skills/review-summary/SKILL.md +73 -0
- package/skills/run-report/SKILL.md +70 -0
- package/skills/semantic-duplication-scan/SKILL.md +337 -0
- package/skills/semantic-scan/SKILL.md +53 -0
- package/skills/semgrep-analyze/SKILL.md +139 -0
- package/skills/setup/SKILL.md +1122 -0
- package/skills/ship/SKILL.md +240 -0
- package/skills/source-verification/SKILL.md +210 -0
- package/skills/source-verification/scripts/claim_extractor.py +155 -0
- package/skills/specs/.size-baseline.json +4 -0
- package/skills/specs/SKILL.md +243 -0
- package/skills/specs/references/completeness-checklist.md +83 -0
- package/skills/specs/references/extraction.md +58 -0
- package/skills/specs/references/glossary.md +59 -0
- package/skills/specs/references/persistence.md +115 -0
- package/skills/specs/references/predictability-check.md +77 -0
- package/skills/static-analysis-integration/SKILL.md +235 -0
- package/skills/static-analysis-integration/adapters/_envelope.py +26 -0
- package/skills/static-analysis-integration/adapters/jscpd-adapter.py +66 -0
- package/skills/static-analysis-integration/adapters/lizard-adapter.py +81 -0
- package/skills/static-analysis-integration/adapters/mypy-adapter.py +50 -0
- package/skills/static-analysis-integration/adapters/mypy-src-layout.py +93 -0
- package/skills/static-analysis-integration/adapters/security-review-adapter.py +212 -0
- package/skills/static-analysis-integration/maintenance.md +23 -0
- package/skills/static-analysis-integration/references/language-setup.md +228 -0
- package/skills/static-analysis-integration/references/sarif-parser.md +124 -0
- package/skills/static-analysis-integration/references/security-review-adapter.md +118 -0
- package/skills/static-analysis-integration/references/tool-configs.md +617 -0
- package/skills/static-analysis-integration/rulesets/pmd-quickstart.xml +24 -0
- package/skills/stryker-xunit-v2-shim/SKILL.md +274 -0
- package/skills/stryker-xunit-v2-shim/references/shim-howto.md +256 -0
- package/skills/stryker-xunit-v2-shim/scripts/generate_shim.py +143 -0
- package/skills/systematic-debugging/SKILL.md +130 -0
- package/skills/telemetry/SKILL.md +75 -0
- package/skills/test-audit-disable/SKILL.md +129 -0
- package/skills/test-design/SKILL.md +177 -0
- package/skills/test-design/scripts/__pycache__/internal_double_detector.cpython-314.pyc +0 -0
- package/skills/test-design/scripts/internal_double_detector.py +631 -0
- package/skills/test-design-advisor/SKILL.md +166 -0
- package/skills/test-driven-development/SKILL.md +169 -0
- package/skills/test-health/SKILL.md +262 -0
- package/skills/test-improve/SKILL.md +239 -0
- package/skills/test-improve/references/phase-0-approach-contract.md +228 -0
- package/skills/test-improve/references/phase-1-analyze.md +131 -0
- package/skills/test-improve/references/phase-2-baseline.md +121 -0
- package/skills/test-improve/references/phase-3-derive-gherkin.md +53 -0
- package/skills/test-improve/references/phase-4-plan-fixes.md +34 -0
- package/skills/test-improve/references/phase-5-improve.md +215 -0
- package/skills/test-improve/references/phase-6-refactor-decision.md +45 -0
- package/skills/test-improve/references/phase-7-refactor.md +44 -0
- package/skills/test-improve/references/phase-8-validate.md +66 -0
- package/skills/test-improve/references/phase-9-close-out-prompt.md +11 -0
- package/skills/test-improve/references/phase-9-report.md +62 -0
- package/skills/test-improve/references/review-loop.md +92 -0
- package/skills/test-improve/templates/executive-summary.md +123 -0
- package/skills/threat-modeling/SKILL.md +108 -0
- package/skills/triage/SKILL.md +211 -0
- package/skills/ubiquitous-language/SKILL.md +192 -0
- package/skills/ubiquitous-language/scripts/collect_domain_signals.py +300 -0
- package/skills/unfreeze/SKILL.md +37 -0
- package/skills/upgrade/SKILL.md +31 -0
- package/skills/upgrade/scripts/check_version_drift.py +113 -0
- package/skills/upgrade/scripts/enable_autoupdate.py +149 -0
- package/skills/version/SKILL.md +25 -0
- package/sync/__pycache__/sync_upstream.cpython-314.pyc +0 -0
- package/sync/sync_upstream.py +293 -0
- package/templates/ACCEPTED-RISKS.md.tmpl +46 -0
- package/templates/agents/agent-template.md +151 -0
- package/templates/agents/angular-testing.md +66 -0
- package/templates/agents/csharp-quality.md +63 -0
- package/templates/agents/esm-enforcer.md +52 -0
- package/templates/agents/front-end-testing.md +65 -0
- package/templates/agents/go-quality.md +65 -0
- package/templates/agents/python-quality.md +62 -0
- package/templates/agents/react-testing.md +61 -0
- package/templates/agents/ts-enforcer.md +60 -0
- package/templates/agents/twelve-factor-audit.md +49 -0
- package/tools/entropy-check.py +250 -0
- package/tools/model-hash-verify.py +213 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# `/test-improve`
|
|
2
|
+
|
|
3
|
+
**File:** [`skills/test-improve/SKILL.md`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/test-improve/SKILL.md)
|
|
4
|
+
**Role:** orchestrator.
|
|
5
|
+
|
|
6
|
+
`/test-improve` is the **consolidated** analyze-then-improve orchestrator for
|
|
7
|
+
legacy or in-flight test suites, and one of the plugin's two multi-phase
|
|
8
|
+
pipelines with inter-phase human gates (the other is [`/ship`](workflows.md#ship)).
|
|
9
|
+
It defaults to lightweight ceremony, prompts for heavier capabilities
|
|
10
|
+
(Gherkin extraction, mutation testing, refactor-for-testability) only on
|
|
11
|
+
demand, and always baselines coverage (and mutation, when enabled) before any
|
|
12
|
+
test change.
|
|
13
|
+
|
|
14
|
+
This page is the canonical phase reference. For where `/test-improve` sits
|
|
15
|
+
among the plugin's other commands see [workflows.md](workflows.md); for how it
|
|
16
|
+
fits the wider agent architecture see
|
|
17
|
+
[agent-architecture.md](agent-architecture.md#test-improvement-workflow-test-improve).
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
## Phases
|
|
22
|
+
|
|
23
|
+
Each phase writes a progress file to
|
|
24
|
+
`.claude/memory/test-improve/<slug>/phase-<n>.md` so `/continue` (and `--from-phase`)
|
|
25
|
+
can resume.
|
|
26
|
+
|
|
27
|
+
**Execution order.** Phases keep their historical identity numbers (Phase 1
|
|
28
|
+
is always Analyze, Phase 2 is always Baseline, etc.), but **Baseline (Phase 2)
|
|
29
|
+
and Derive Gherkin (Phase 3) execute before Analyze (Phase 1)** so
|
|
30
|
+
`/test-health` can use documented-but-untested Gherkin scenarios as a
|
|
31
|
+
coverage signal: `0 → 2 → 3 → 1 → 4 → 5 → 6 → 7 → 8 → 9`. Phase 7 and Phase 8
|
|
32
|
+
are **not alternatives** — when Phase 6 returns `[y]`, both run in sequence;
|
|
33
|
+
otherwise Phase 8 follows Phase 6 directly. When the BDD binding mode is
|
|
34
|
+
`none`, Phase 3 is skipped and the sequence becomes
|
|
35
|
+
`0 → 2 → 1 → 4 → 5 → 6 → 7 → 8 → 9`. The list below follows this execution
|
|
36
|
+
order, not numeric order. The phase-start banner prints a separate
|
|
37
|
+
`Step <position>/<total> — Phase <N>: <name>` counter — `<position>` is a
|
|
38
|
+
running count of phases printed so far this run (never a fixed per-identity
|
|
39
|
+
slot), and `<total>` is computed per run (base 9, -1 when BDD binding mode
|
|
40
|
+
is `none`, +1 once Phase 6 enters Phase 7) rather than a hardcoded 9 or 10.
|
|
41
|
+
|
|
42
|
+
- **Phase 0 — Approach contract.** Batched prompt (Enter accepts all
|
|
43
|
+
defaults): mutation mode `[kill-loop]` (`off` / `kill-loop` /
|
|
44
|
+
`baseline+kill-loop`), BDD rubric `[none]`, refactor `[no-refactor]`,
|
|
45
|
+
quality targets, sink (`--parent <url>` vs local files), and the all-or-none
|
|
46
|
+
code-lookup install (explicit `y`/`n`, not part of Enter-accepts-all). An
|
|
47
|
+
Enter-through run now performs the mutant-kill loop by default. Go stack shows
|
|
48
|
+
the alpha go-mutesting advisory before the mutation prompt. Answers are
|
|
49
|
+
immutable for the run. A stated coverage target that is structurally
|
|
50
|
+
unreachable under `no-refactor` is surfaced here as `[w] waive / [s] switch
|
|
51
|
+
to refactor-allowed / [c] continue as-is`, computed by
|
|
52
|
+
`scripts/coverage_gap_ranking.py`; with no coverage report on disk yet the
|
|
53
|
+
check is recorded `deferred` and re-run at Phase 2 (#1787).
|
|
54
|
+
- **Phase 2 — Baseline (before any test edit).**
|
|
55
|
+
`/coverage-baseline --workflow test-improve` unconditionally;
|
|
56
|
+
`/mutation-testing --baseline --workflow test-improve` only in
|
|
57
|
+
`baseline+kill-loop` mode (`off` and `kill-loop` take no baseline).
|
|
58
|
+
Go = advisory-only marker. Honest score = hard kills, timeouts separate.
|
|
59
|
+
Then `scripts/coverage_gap_ranking.py` writes
|
|
60
|
+
`data/coverage-gap-ranking.json` — per-module buckets ranked by uncovered
|
|
61
|
+
lines descending, each marked `seam: established|absent` — the targeting
|
|
62
|
+
input Phases 1, 4, and 5 read instead of mutation survivors (#1786), and the
|
|
63
|
+
place a deferred Phase-0 conflict check resolves.
|
|
64
|
+
- **Phase 3 — Derive Gherkin (conditional).** `none` skips entirely (Phase 1
|
|
65
|
+
follows Phase 2 directly in that case); `xunit-with-annotations` writes
|
|
66
|
+
`.feature` files without a runner; `bdd-runner` wires the native parser.
|
|
67
|
+
- **Phase 1 — Analyze.** Delegate to `/test-health` (sole worker). No
|
|
68
|
+
separate calls to `/cd-test-architecture`, `/test-design`,
|
|
69
|
+
`/mutation-testing`. Whenever a coverage percentage is a stated goal, the
|
|
70
|
+
improvement plan's coverage-driven items are ordered by
|
|
71
|
+
`coverage-gap-ranking.json` rank, never by mutation survivor count —
|
|
72
|
+
survivors order work only *within* a `seam: established` module (#1786).
|
|
73
|
+
Mutation section respects Phase-0 setting. A
|
|
74
|
+
separate, direct classification pass persists a before-snapshot of test
|
|
75
|
+
counts by MinimumCD type to `test-counts-before.json`. `--analyze-only`
|
|
76
|
+
runs Phase 0 then this phase directly, bypassing the Baseline/Derive-Gherkin
|
|
77
|
+
ordering above, and exits with no baseline captured.
|
|
78
|
+
- **Phase 4 — Plan fixes.** `/issues-from-assessment --workflow test-improve`
|
|
79
|
+
partitions findings into `NO_REFACTOR` (Phase-5 Stories) /
|
|
80
|
+
`REFACTOR_REQUIRED` (deferred to Phase 7) / `LOW_VALUE` (advisory-only). The
|
|
81
|
+
NO_REFACTOR Story set is written in `coverage-gap-ranking.json` rank order
|
|
82
|
+
when a coverage percentage is a stated goal (#1786).
|
|
83
|
+
- **Phase 5 — Improve without refactoring.** Per Story: `/build`
|
|
84
|
+
(no-refactor) → `/coverage-delta --workflow test-improve --story <id>` →
|
|
85
|
+
`scripts/coverage_delta_steering.py` (three consecutive near-zero-delta
|
|
86
|
+
Stories exit 3 and prompt `[t] re-check Phase-1 targeting / [c] continue`
|
|
87
|
+
mid-phase, #1790) → `mutation-kill` agent, dispatched once per module batch
|
|
88
|
+
(`--file <every story file in the batch> --max-rounds 3
|
|
89
|
+
--target-honest-score <Phase-0 mutation target>`, #2030; `[c/r/w/q]` on
|
|
90
|
+
residuals) → `scripts/mutation_yield_steering.py` at the batch boundary
|
|
91
|
+
(two consecutive batches killing fewer than the minimum net survivors exit
|
|
92
|
+
3 and prompt the same `[t] re-check Phase-1 targeting / [c] continue`,
|
|
93
|
+
#2033 — the #1790 mechanism ported to the more expensive lane, sharing its
|
|
94
|
+
status vocabulary and exit-code contract). End-of-phase review loop
|
|
95
|
+
dispatches `/code-review --since <base-sha> --internal` once — not a
|
|
96
|
+
separate `/test-design` dispatch in parallel with it; `test-review` and
|
|
97
|
+
`test-smell-review` (the two agents `/test-design` used to add) are
|
|
98
|
+
already in `/code-review`'s own roster for a test/seam-scoped diff, so
|
|
99
|
+
that dual dispatch was a duplicate and #1966/#1987 removed it — confirms
|
|
100
|
+
those two test lenses weren't dropped by the change-size gate, scores
|
|
101
|
+
Farley on the in-scope test files, `/apply-fixes` then a narrowed
|
|
102
|
+
re-confirmation (not a full re-dispatch), cap 2 iterations, `[r/w/q]`
|
|
103
|
+
escalation. See `references/review-loop.md` steps 1-5. Evidence in
|
|
104
|
+
`phase-5-review.json`.
|
|
105
|
+
- **Phase 6 — Refactor decision prompt.** `[y] enter Phase 7 / [b] backlog
|
|
106
|
+
and skip to Phase 8 / [q] quit`. The letter `y` is deliberately chosen over
|
|
107
|
+
`r`, which is already claimed by mutation-kill's `[c/r/w/q]` (retry) and the
|
|
108
|
+
review loop's `[r/w/q]` (revise).
|
|
109
|
+
- **Phase 7 — Refactor-for-testability (conditional).** Only when `[y]`.
|
|
110
|
+
Seam-only production-code changes; existing tests are immutable. Each Story
|
|
111
|
+
precondition-checks the paired Phase-5 baseline is closed and green. Same
|
|
112
|
+
end-of-phase review loop; evidence in `phase-7-review.json`.
|
|
113
|
+
- **Phase 8 — Validate.** `/quality-targets-converge --workflow test-improve
|
|
114
|
+
--refactor-mode <value>` — threading Phase 0's `no-refactor`/
|
|
115
|
+
`refactor-allowed` value keeps the coverage-gap dispatch table from
|
|
116
|
+
proposing a `[Refactor-for-testability]` Story once no-refactor was
|
|
117
|
+
already chosen at Phase 6; it writes a `refactor-backlog.md` entry
|
|
118
|
+
instead. Mutation off = skipped (not waived). Go = advisory-only.
|
|
119
|
+
Coverage < 90% in no-refactor mode → `[y/n]` re-run-in-refactor-allowed
|
|
120
|
+
prompt lists backlogged items and records `coverage_reprompt_fired: true`
|
|
121
|
+
in `phase-8.md` (so Phase 9's close-out prompt below doesn't re-ask). The
|
|
122
|
+
identical classification pass from Phase 1 recounts test-by-type into
|
|
123
|
+
`test-counts-after.json`. `/handoff` is suggested here, and after Phase 1
|
|
124
|
+
and the Phase 5/7 review loops — the context-heaviest boundaries.
|
|
125
|
+
- **Phase 9 — Executive-summary report.** Interpolates the shipped
|
|
126
|
+
[`templates/executive-summary.md`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/test-improve/templates/executive-summary.md)
|
|
127
|
+
from the git-tracked `.dev-team-reports/test-improve/<slug>/data/`
|
|
128
|
+
directory plus `.claude/memory/test-improve/<slug>/` process/audit state to
|
|
129
|
+
`.dev-team-reports/test-improve/<slug>/report-<date>.md`. 10 numbered sections;
|
|
130
|
+
empty sections render "Not applicable" (never omitted). § 1 includes a
|
|
131
|
+
"Tests by type" table (Baseline/Achieved/Δ per MinimumCD type). § 7
|
|
132
|
+
foregrounds a seam-needed/behavior-gained/estimated-risk table sourced
|
|
133
|
+
from `refactor-backlog.md`. Parent tracker (or
|
|
134
|
+
`.claude/plans/test-improve/FEATURE.md`) is updated with a link to the report.
|
|
135
|
+
Report is regeneratable from memory. After Phase 9, if
|
|
136
|
+
`refactor-backlog.md` has entries and Phase 8's re-run prompt never fired
|
|
137
|
+
this run, a close-out `[y/n]` prompt asks whether to re-run with
|
|
138
|
+
refactor-allowed mode.
|
|
139
|
+
|
|
140
|
+
## Arguments
|
|
141
|
+
|
|
142
|
+
`/test-improve <repo-path> [--parent <url>] [--analyze-only] [--from-phase <n>] [--stack <id>]`
|
|
143
|
+
|
|
144
|
+
| Flag | Behavior |
|
|
145
|
+
| --- | --- |
|
|
146
|
+
| `<repo-path>` | Positional. Path to the repository to improve (required). |
|
|
147
|
+
| `--parent <url>` | Post progress and Stories to this tracker issue URL instead of local plan files. |
|
|
148
|
+
| `--analyze-only` | Run Phase 0–1 only; skip improvement phases. |
|
|
149
|
+
| `--from-phase <n>` | Resume from phase `n` (requires existing `.claude/memory/test-improve/<slug>/` files). |
|
|
150
|
+
| `--stack <id>` | Override auto-detected stack identifier (e.g. `go`, `python`, `java`). |
|
|
151
|
+
|
|
152
|
+
`/continue` resumes any phase from `.claude/memory/test-improve/<slug>/phase-<n>.md`;
|
|
153
|
+
`--from-phase <n>` does the same explicitly and never re-prompts Phase 0.
|
|
154
|
+
`--analyze-only` runs Phase 0 + Phase 1 and exits before baseline capture.
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
# Triage Workflow: Discovery to Applied Fix
|
|
2
|
+
|
|
3
|
+
How a defect or review finding travels from discovery to an applied fix. The
|
|
4
|
+
pieces are three individual skills; this document is the lifecycle that
|
|
5
|
+
connects them.
|
|
6
|
+
|
|
7
|
+
> **Authoritative sources**: the skill specs at
|
|
8
|
+
> [`skills/triage/SKILL.md`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/triage/SKILL.md),
|
|
9
|
+
> [`skills/code-review/SKILL.md`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/code-review/SKILL.md), and
|
|
10
|
+
> [`skills/apply-fixes/SKILL.md`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/apply-fixes/SKILL.md). This
|
|
11
|
+
> document is a reader-friendly walkthrough; where it and a skill spec
|
|
12
|
+
> disagree, the spec wins.
|
|
13
|
+
|
|
14
|
+
**On this page**: [Lifecycle at a glance](#the-lifecycle-at-a-glance) · [1. Intake](#1-intake-when-to-reach-for-triage) · [2. Investigation](#2-investigation-root-cause-before-recording) · [3. The triage record](#3-the-triage-record) · [4. Review-corrections flow](#4-the-review-corrections-flow) · [5. `/apply-fixes` flow](#5-the-apply-fixes-flow) · [6. Ownership of leftover corrections](#6-ownership-of-leftover-corrections) · [7. A worked example](#7-a-worked-example)
|
|
15
|
+
|
|
16
|
+
## The lifecycle at a glance
|
|
17
|
+
|
|
18
|
+
Two entry points feed one fix pipeline:
|
|
19
|
+
|
|
20
|
+
- **A reported bug** enters through [`/triage`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/triage/SKILL.md),
|
|
21
|
+
which investigates hands-off and writes a **triage record** to
|
|
22
|
+
`.dev-team-reports/triage/<slug>.md` with a TDD fix plan. It deliberately does **not** fix
|
|
23
|
+
the bug — the record hands off to `/plan`/`/build` or a direct fix.
|
|
24
|
+
- **A review finding** enters through
|
|
25
|
+
[`/code-review`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/code-review/SKILL.md), whose fix loop
|
|
26
|
+
auto-applies actionable issues and emits everything else as **correction
|
|
27
|
+
prompts** — self-contained JSON files in `corrections/` — which
|
|
28
|
+
[`/apply-fixes`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/apply-fixes/SKILL.md) later consumes.
|
|
29
|
+
|
|
30
|
+
```mermaid
|
|
31
|
+
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#dbeafe', 'primaryTextColor': '#1e3a5f', 'primaryBorderColor': '#3b82f6', 'lineColor': '#64748b', 'secondaryColor': '#f1f5f9', 'tertiaryColor': '#e0f2fe', 'background': '#ffffff', 'mainBkg': '#dbeafe', 'nodeBorder': '#2563eb', 'clusterBkg': '#eff6ff', 'clusterBorder': '#bfdbfe', 'titleColor': '#1e3a5f', 'edgeLabelBackground': '#f8fafc'}}}%%
|
|
32
|
+
flowchart TD
|
|
33
|
+
A[Bug report / error message] --> B[/triage/]
|
|
34
|
+
B --> C[.dev-team-reports/triage/<slug>.md<br/>triage record + TDD fix plan]
|
|
35
|
+
C --> D[/plan → /build, or direct fix/]
|
|
36
|
+
E[Code change] --> F[/code-review/]
|
|
37
|
+
F -->|actionable issues| G[Review-fix loop<br/>auto-applies]
|
|
38
|
+
F -->|suggestions, confidence: none,<br/>auto-fix failures| H[corrections/*.json<br/>correction prompts]
|
|
39
|
+
H --> I[/apply-fixes corrections/]
|
|
40
|
+
I --> J[Validated minimal fixes<br/>+ Fix Summary]
|
|
41
|
+
D --> K[Commit]
|
|
42
|
+
G --> K
|
|
43
|
+
J --> K
|
|
44
|
+
H -.->|branch merges<br/>unactioned| L[Orphaned file on main<br/>— the failure this policy prevents]
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 1. Intake — when to reach for `/triage`
|
|
48
|
+
|
|
49
|
+
Use `/triage` when a defect arrives as a *report*: a bug description, an
|
|
50
|
+
error message, a failing behavior someone wants investigated — anything
|
|
51
|
+
phrased like "triage this", "investigate and write it up", or where you want
|
|
52
|
+
a hands-off investigation that produces an actionable record instead of an
|
|
53
|
+
immediate code change.
|
|
54
|
+
|
|
55
|
+
Go straight to a fix (skip `/triage`) when the root cause is already known
|
|
56
|
+
and the fix is small enough to implement immediately — a triage record adds
|
|
57
|
+
no value if you would write it and then act on it in the same breath.
|
|
58
|
+
|
|
59
|
+
**The one-question capture rule.** `/triage` takes the bug description from
|
|
60
|
+
its arguments or the conversation. If no description is available, it asks
|
|
61
|
+
EXACTLY one question — `What's the problem you're seeing?` — and stops. If a
|
|
62
|
+
description *is* given, it asks nothing and starts investigating immediately.
|
|
63
|
+
In practice: give the symptom, the error text, or the reproduction in the
|
|
64
|
+
invocation and the entire investigation runs without further interaction.
|
|
65
|
+
|
|
66
|
+
## 2. Investigation — root cause before recording
|
|
67
|
+
|
|
68
|
+
`/triage` runs as a worker under three constraints:
|
|
69
|
+
|
|
70
|
+
1. **Investigate and record; do not fix the bug.** The worker's boundary is
|
|
71
|
+
the record. Fixing happens later, under `/plan`/`/build` or a direct fix,
|
|
72
|
+
where tests and review gates apply.
|
|
73
|
+
2. **Find root cause before recording; do not record on symptoms alone.**
|
|
74
|
+
The record exists to make the fix mechanical — a symptom description
|
|
75
|
+
without a cause is not a triage record.
|
|
76
|
+
3. **Be concise.** Chat output is two lines (see
|
|
77
|
+
[the triage record](#3-the-triage-record) below), never the full record
|
|
78
|
+
body.
|
|
79
|
+
|
|
80
|
+
The investigation applies the systematic debugging protocol from
|
|
81
|
+
[`skills/systematic-debugging/SKILL.md`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/systematic-debugging/SKILL.md):
|
|
82
|
+
|
|
83
|
+
1. **Reproduce** — run the failing test or trigger the error.
|
|
84
|
+
2. **Investigate** — trace data flow, check recent changes, find working
|
|
85
|
+
reference code.
|
|
86
|
+
3. **Root cause** — form and test a hypothesis.
|
|
87
|
+
|
|
88
|
+
Deep codebase exploration is delegated to an `Explore` sub-agent: related
|
|
89
|
+
source files and dependencies, existing tests (covered vs missing), recent
|
|
90
|
+
changes to affected files (`git log`), error handling in the code path, and
|
|
91
|
+
similar patterns elsewhere that work correctly.
|
|
92
|
+
|
|
93
|
+
## 3. The triage record
|
|
94
|
+
|
|
95
|
+
The record is written to `.dev-team-reports/triage/<slug>.md` — YAML frontmatter (`id`,
|
|
96
|
+
`created`, `status: open`) followed by four sections:
|
|
97
|
+
|
|
98
|
+
| Section | Contents |
|
|
99
|
+
| --------- | ---------- |
|
|
100
|
+
| **Problem** | Actual behavior, expected behavior, reproduction steps |
|
|
101
|
+
| **Root Cause Analysis** | The code path involved, why it fails, contributing factors — described as *modules and behaviors, not file paths*, so the record survives refactors |
|
|
102
|
+
| **TDD Fix Plan** | Ordered RED-GREEN cycles (at least one), each a vertical slice: a specific test capturing the broken/missing behavior, then the minimal change to pass it, plus any post-green REFACTOR cleanup |
|
|
103
|
+
| **Acceptance Criteria** | Root cause addressed (not just symptom), new tests pass, existing tests pass, no regressions |
|
|
104
|
+
|
|
105
|
+
If no root cause was determined, the TDD Fix Plan body is exactly
|
|
106
|
+
`Root cause not determined — manual investigation required` — the record
|
|
107
|
+
still captures the investigation, but flags itself as incomplete.
|
|
108
|
+
|
|
109
|
+
**Slug and collisions.** The slug is derived from the bug title by a
|
|
110
|
+
deterministic normalization (lowercase, ASCII-only, hyphens, ≤ 60 chars, no
|
|
111
|
+
split words; empty result falls back to `triage-YYYYMMDD`). If
|
|
112
|
+
`.dev-team-reports/triage/<slug>.md` already exists, `-2`, `-3`, … up to `-99` is appended —
|
|
113
|
+
an existing record is **never overwritten**. If `.dev-team-reports/triage/` cannot be written
|
|
114
|
+
at all, the same content goes to a temp file and to chat so nothing is lost.
|
|
115
|
+
|
|
116
|
+
**Why issue-tracker independent?** The record is a plain file in the repo,
|
|
117
|
+
so it works with no tracker configured, travels with branches and worktrees,
|
|
118
|
+
and can be pasted into any tracker later. Nothing in the workflow depends on
|
|
119
|
+
GitHub, Jira, or anything else being reachable.
|
|
120
|
+
|
|
121
|
+
**Handoff.** Chat output is exactly two lines: the record path
|
|
122
|
+
(`triage-record: .dev-team-reports/triage/<slug>.md`) and a root-cause summary of at most 120
|
|
123
|
+
characters. From there:
|
|
124
|
+
|
|
125
|
+
- **Substantial fix** → feed the record to
|
|
126
|
+
[`/plan`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/plan/SKILL.md); each RED-GREEN cycle maps to a plan
|
|
127
|
+
step, and [`/build`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/build/SKILL.md) executes it under TDD.
|
|
128
|
+
- **Small fix** → implement the cycles directly, in order — the plan is
|
|
129
|
+
already TDD-shaped.
|
|
130
|
+
|
|
131
|
+
## 4. The review-corrections flow
|
|
132
|
+
|
|
133
|
+
[`/code-review`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/code-review/SKILL.md) classifies every finding by
|
|
134
|
+
severity and confidence. The rubric decides what the **fix loop**
|
|
135
|
+
auto-applies and what is report-only:
|
|
136
|
+
|
|
137
|
+
| Severity | Confidence | Actionable? |
|
|
138
|
+
| ---------- | ------------ | ------------- |
|
|
139
|
+
| error or warning | high or medium | **Yes** — auto-applied by the fix loop |
|
|
140
|
+
| error or warning | none | No — report only (human judgment) |
|
|
141
|
+
| suggestion | any | No — report only, never auto-applied |
|
|
142
|
+
|
|
143
|
+
After the report, `/code-review` writes one **correction prompt** per
|
|
144
|
+
remaining issue — suggestion-severity findings, issues whose auto-fix failed,
|
|
145
|
+
and anything else the loop did not resolve — as JSON files in `corrections/`.
|
|
146
|
+
Each prompt carries `priority`, `confidence`, `category` (the reviewing agent),
|
|
147
|
+
`instruction`, `context`, and `affectedFiles`; the full field schema is in
|
|
148
|
+
[`skills/code-review/output-format.md`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/code-review/output-format.md#correction-prompt-json).
|
|
149
|
+
|
|
150
|
+
Severity maps to priority: error→high, warning→medium, suggestion→low.
|
|
151
|
+
Correction prompts are only generated for `confidence: high` or
|
|
152
|
+
`confidence: medium` findings — `confidence: none` findings appear in the
|
|
153
|
+
review report only and must be resolved by a human.
|
|
154
|
+
|
|
155
|
+
Each prompt is self-contained: it names the reviewing agent, the fix
|
|
156
|
+
instruction, and the affected files, so it can be actioned in a later
|
|
157
|
+
session with no memory of the review that produced it.
|
|
158
|
+
|
|
159
|
+
## 5. The `/apply-fixes` flow
|
|
160
|
+
|
|
161
|
+
[`/apply-fixes`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/apply-fixes/SKILL.md) consumes a corrections
|
|
162
|
+
directory and applies each prompt as a minimal, individually-validated fix:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
/apply-fixes corrections/ # apply everything
|
|
166
|
+
/apply-fixes corrections/ --dry # preview without changing anything
|
|
167
|
+
/apply-fixes corrections/ --skip-tests # skip per-fix test runs
|
|
168
|
+
/apply-fixes corrections/ --repo <path> # target a different repository
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Also available: `--skip-build`, `--skip-lint`, `--verbose`.
|
|
172
|
+
|
|
173
|
+
It first loads the target repository's rules (`CLAUDE.md`, `.clinerules`,
|
|
174
|
+
`.claude/rules/index.md`, `CONTRIBUTING.md`), then processes prompts sorted
|
|
175
|
+
by priority (high first), then confidence (high before medium):
|
|
176
|
+
|
|
177
|
+
- **`confidence: high`** — auto-applied.
|
|
178
|
+
- **`confidence: medium`** — the suggested diff is shown and the user
|
|
179
|
+
confirms (`y/n/skip`); declined prompts are recorded as "skipped by user".
|
|
180
|
+
Running non-interactively (e.g. CI), medium is treated as high.
|
|
181
|
+
|
|
182
|
+
Three constraints govern every fix:
|
|
183
|
+
|
|
184
|
+
1. **Minimal fix** — apply exactly what the instruction says; no
|
|
185
|
+
refactoring or improvement beyond it.
|
|
186
|
+
2. **Validate after each fix** — lint, build, and tests run after every
|
|
187
|
+
individual fix (unless skipped); a validation failure is reported and the
|
|
188
|
+
run moves on — no cascading fix attempts.
|
|
189
|
+
3. **One concern per fix** — prompts are never combined or reordered.
|
|
190
|
+
|
|
191
|
+
Results are reported as a Fix Summary table (Applied / Skipped / Failed /
|
|
192
|
+
Validation Failed, per category), and successfully applied prompt files are
|
|
193
|
+
moved to a `completed/` subdirectory so a re-run does not re-apply them.
|
|
194
|
+
|
|
195
|
+
## 6. Ownership of leftover corrections
|
|
196
|
+
|
|
197
|
+
`corrections/` is a **branch-scoped working artifact**. The policy:
|
|
198
|
+
|
|
199
|
+
> **A `corrections/*.json` file must not outlive its branch unactioned.**
|
|
200
|
+
> Before the branch merges, its author disposes of every correction prompt
|
|
201
|
+
> in one of three ways — and the merged branch carries the disposition, not
|
|
202
|
+
> the file.
|
|
203
|
+
|
|
204
|
+
1. **Apply** — run `/apply-fixes corrections/`, review the diff, commit the
|
|
205
|
+
fixes. Delete the directory (including `completed/`) before merge; the
|
|
206
|
+
fix commits are the record.
|
|
207
|
+
2. **Defer** — file a tracking issue that carries or links the findings,
|
|
208
|
+
then delete the file in the same change. The issue is now the record and
|
|
209
|
+
has an assignee.
|
|
210
|
+
3. **Decline** — delete the file, recording why in the commit message
|
|
211
|
+
(e.g. `chore: decline stale corrections — superseded by refactor #NNN`).
|
|
212
|
+
|
|
213
|
+
**If a `corrections/*.json` is found on `main` anyway**: the owner is the
|
|
214
|
+
author of the commit that introduced it — find them with
|
|
215
|
+
`git log --diff-filter=A -- corrections/<file>`. The owner's next action is
|
|
216
|
+
one of the three dispositions above; when the findings cannot be evaluated
|
|
217
|
+
quickly, default to **Defer** (file the issue, delete the file). Leaving the
|
|
218
|
+
file in place "for later" is not a disposition — it is the failure mode this
|
|
219
|
+
policy exists to prevent.
|
|
220
|
+
|
|
221
|
+
That failure mode is real: the Issue-537 branch review left
|
|
222
|
+
`corrections/issue-537-gherkin-persistence-suggestions.json` (14 findings,
|
|
223
|
+
including two with correctness teeth) sitting on `main` for months — no
|
|
224
|
+
tracking issue, nothing pointing at it — until it was noticed by accident
|
|
225
|
+
and removed.
|
|
226
|
+
|
|
227
|
+
## 7. A worked example
|
|
228
|
+
|
|
229
|
+
One suggestion-severity finding, traced end to end. The subject is a real
|
|
230
|
+
finding from the Issue-537 branch review (shown here in the canonical
|
|
231
|
+
one-file-per-issue prompt shape).
|
|
232
|
+
|
|
233
|
+
**Discovery.** During `/code-review` on the branch, `performance-review`
|
|
234
|
+
reports that a directory-exclusion list misses Maven's `target/` — copied
|
|
235
|
+
`.feature` resources in Maven builds would skew a detection signal. Severity
|
|
236
|
+
`suggestion`, confidence `high`.
|
|
237
|
+
|
|
238
|
+
**Classification.** Per the rubric, suggestion severity is report-only — the
|
|
239
|
+
fix loop does not touch it. The finding appears in the review report tagged
|
|
240
|
+
`[suggestion]`.
|
|
241
|
+
|
|
242
|
+
**Correction prompt.** Step 8 of `/code-review` writes it to `corrections/`:
|
|
243
|
+
|
|
244
|
+
```json
|
|
245
|
+
{
|
|
246
|
+
"priority": "low",
|
|
247
|
+
"confidence": "high",
|
|
248
|
+
"category": "performance-review",
|
|
249
|
+
"instruction": "Extend VENDORED_DIR_NAMES with target, __pycache__, .tox, .next, out, coverage — target/ also matters for correctness. Add a fixture test per new exclusion.",
|
|
250
|
+
"context": "VENDORED_DIR_NAMES in plugins/dev-team/scripts/detect_bdd_convention.py",
|
|
251
|
+
"affectedFiles": ["plugins/dev-team/scripts/detect_bdd_convention.py"]
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**Applying.** The branch author runs:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
/apply-fixes corrections/ --dry # preview: 1 prompt, high confidence, auto-apply
|
|
259
|
+
/apply-fixes corrections/
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
`/apply-fixes` reads the repository rules, applies the minimal edit (extend
|
|
263
|
+
the exclusion list, add the fixture tests — nothing more), then runs lint,
|
|
264
|
+
build, and tests.
|
|
265
|
+
|
|
266
|
+
**Validation and commit.** Tests pass; the Fix Summary reports
|
|
267
|
+
`Total: 1 | Applied: 1`, and the prompt file moves to
|
|
268
|
+
`corrections/completed/`. The author reviews `git diff`, commits the fix
|
|
269
|
+
conventionally, and deletes `corrections/` before merging — disposition
|
|
270
|
+
**Apply**, leaving nothing to orphan.
|
|
271
|
+
|
|
272
|
+
## Related documents
|
|
273
|
+
|
|
274
|
+
- [Code Review Process](code-review-process.md) — the full `/code-review`
|
|
275
|
+
pipeline that produces correction prompts
|
|
276
|
+
- [Top-level Workflows](workflows.md) — the multi-phase orchestrators
|
|
277
|
+
(`/ship`, `/test-improve`) that embed `/code-review` and `/apply-fixes`
|
|
278
|
+
- [Skills reference](skills.md) — catalog of all slash commands
|
|
279
|
+
- [`skills/triage/SKILL.md`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/triage/SKILL.md),
|
|
280
|
+
[`skills/apply-fixes/SKILL.md`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/apply-fixes/SKILL.md),
|
|
281
|
+
[`skills/code-review/output-format.md`](https://github.com/bdfinst/agentic-dev-team/blob/main/plugins/dev-team/skills/code-review/output-format.md)
|
|
282
|
+
— the authoritative specs
|