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,191 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: competitive-analysis
|
|
3
|
+
description: >-
|
|
4
|
+
Compare this plugin against external plugins, tools, feature sets, or ideas to
|
|
5
|
+
find gaps and weaknesses. Produces a structured gap analysis report with rough
|
|
6
|
+
specs for closing each gap. Use this skill whenever the user references
|
|
7
|
+
capabilities from OUTSIDE the plugin — another plugin they found, a competitor's
|
|
8
|
+
tool, a feature list from a different project, a repo URL, or a hypothetical
|
|
9
|
+
concept for capabilities we lack. Trigger phrases include "how do we compare
|
|
10
|
+
to X", "what does Y have that we don't", "what are we missing", "gap analysis",
|
|
11
|
+
"competitive analysis", "weaknesses compared to", "stack up against",
|
|
12
|
+
"where do we fall short", and "should we add X — I saw it in another tool".
|
|
13
|
+
Also trigger when the user pastes a feature list or describes capabilities
|
|
14
|
+
they saw elsewhere and asks whether we should have them. Do NOT trigger for
|
|
15
|
+
internal operations like running reviews, auditing our own agents, adding
|
|
16
|
+
skills, threat modeling, domain analysis, or debugging — those use other skills.
|
|
17
|
+
role: orchestrator
|
|
18
|
+
user-invocable: true
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Competitive Analysis
|
|
22
|
+
|
|
23
|
+
## Overview
|
|
24
|
+
|
|
25
|
+
Systematic comparison of the dev-team plugin against another plugin, tool, feature set, or idea. The goal is to surface gaps, weaknesses, and improvement opportunities — then produce rough specs for closing each gap.
|
|
26
|
+
|
|
27
|
+
This skill is analytical first, generative second. It catalogs what both sides offer, identifies where dev-team falls short, and then drafts actionable specs for each gap. The analysis should be honest — if the other plugin does something better, say so plainly.
|
|
28
|
+
|
|
29
|
+
## Input Sources
|
|
30
|
+
|
|
31
|
+
The comparison target can come in several forms. Determine which applies and gather the data accordingly:
|
|
32
|
+
|
|
33
|
+
| Source | How to gather |
|
|
34
|
+
| -------- | -------------- |
|
|
35
|
+
| **URL** (repo, docs, marketplace) | Fetch the URL. Look for README, CLAUDE.md, plugin manifests, agent/skill/command directories. If the repo is large, focus on the manifest, README, and directory listing first. |
|
|
36
|
+
| **Local path** | Read the directory structure, then key files (README, CLAUDE.md, manifests, agent/skill dirs). |
|
|
37
|
+
| **Pasted description or feature list** | Use as-is. Ask clarifying questions only if the description is too vague to compare against. |
|
|
38
|
+
| **Concept or idea** | Treat as a hypothetical plugin with the described capabilities. Note in the report that the comparison is against an idea, not a shipped product. |
|
|
39
|
+
|
|
40
|
+
## Analysis Framework
|
|
41
|
+
|
|
42
|
+
### Step 1: Catalog dev-team
|
|
43
|
+
|
|
44
|
+
Read `knowledge/agent-registry.md` for the full inventory. Organize into these capability layers:
|
|
45
|
+
|
|
46
|
+
- **Team agents** — roles and primary focus areas
|
|
47
|
+
- **Review agents** — what code quality aspects are covered
|
|
48
|
+
- **Skills** — reusable knowledge modules
|
|
49
|
+
- **Commands** — user-invocable workflows
|
|
50
|
+
- **Templates** — language/framework-specific scaffolding
|
|
51
|
+
- **Knowledge files** — progressive-disclosure reference data
|
|
52
|
+
- **Hooks** — automated guards and triggers
|
|
53
|
+
- **Workflows** — multi-phase orchestration (Research → Plan → Implement)
|
|
54
|
+
|
|
55
|
+
### Step 2: Catalog the comparison target
|
|
56
|
+
|
|
57
|
+
Map the other plugin's capabilities into the same layers where possible. Not every plugin will have all layers — that's fine. For capabilities that don't map cleanly, create an "Other" category and describe them.
|
|
58
|
+
|
|
59
|
+
For each capability, note:
|
|
60
|
+
|
|
61
|
+
- What it does (one line)
|
|
62
|
+
- How mature it appears (shipped, experimental, documented but not implemented)
|
|
63
|
+
- Whether dev-team has an equivalent
|
|
64
|
+
|
|
65
|
+
### Step 3: Gap analysis
|
|
66
|
+
|
|
67
|
+
Compare layer by layer. For each gap, classify it:
|
|
68
|
+
|
|
69
|
+
| Classification | Meaning |
|
|
70
|
+
| --------------- | --------- |
|
|
71
|
+
| **Missing (dev-team)** | The other plugin has this; we have nothing equivalent |
|
|
72
|
+
| **Weaker (dev-team)** | We have something similar, but the other plugin's version is more capable or better designed |
|
|
73
|
+
| **Different approach** | Both plugins address this need, but with fundamentally different strategies worth examining |
|
|
74
|
+
| **Stronger (dev-team)** | We do this better (include these for balance — the report should be honest in both directions) |
|
|
75
|
+
|
|
76
|
+
Focus the gap analysis on things that matter. A missing agent for an obscure framework isn't as important as a missing workflow capability. Use judgment about what would actually improve the plugin if addressed.
|
|
77
|
+
|
|
78
|
+
**Always write the classification with the `(dev-team)` qualifier in every table cell** — never the bare word alone. "Stronger" and "Weaker" are meaningless out of context to a reader scanning a single row without the legend in view; "Missing (dev-team)" and "Stronger (dev-team)" are unambiguous on their own. `Different approach` needs no qualifier since it doesn't imply a direction.
|
|
79
|
+
|
|
80
|
+
### Step 4: Rough specs for gaps
|
|
81
|
+
|
|
82
|
+
For each **Missing** or **Weaker** gap, produce a rough spec:
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
### Gap: [Name]
|
|
86
|
+
|
|
87
|
+
**Classification**: Missing (dev-team) | Weaker (dev-team)
|
|
88
|
+
**Layer**: Agent | Skill | Command | Workflow | Hook | Template | Knowledge
|
|
89
|
+
**Priority**: High | Medium | Low
|
|
90
|
+
|
|
91
|
+
**What the other plugin does**:
|
|
92
|
+
[1-2 sentences]
|
|
93
|
+
|
|
94
|
+
**What we have now** (if Weaker):
|
|
95
|
+
[What exists and why it falls short]
|
|
96
|
+
|
|
97
|
+
**Proposed addition**:
|
|
98
|
+
- **Type**: [agent / skill / command / hook / template]
|
|
99
|
+
- **File**: [proposed file path]
|
|
100
|
+
- **Description**: [What it would do — 2-3 sentences]
|
|
101
|
+
- **Dependencies**: [What existing components it would interact with]
|
|
102
|
+
- **Estimated complexity**: [Small / Medium / Large]
|
|
103
|
+
- **Model tier**: [haiku / sonnet / opus — if applicable]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
For **Different approach** items, don't write a spec — write a short analysis of tradeoffs instead, so the reader can decide whether to adopt the alternative approach.
|
|
107
|
+
|
|
108
|
+
### Step 5: Prioritization
|
|
109
|
+
|
|
110
|
+
After listing all gaps, rank the top 5 by impact. Impact considers:
|
|
111
|
+
|
|
112
|
+
- How many users would benefit
|
|
113
|
+
- How fundamental the capability is (workflow > convenience)
|
|
114
|
+
- How much effort it would take relative to the value (quick wins first)
|
|
115
|
+
- Whether it addresses a real limitation vs. a nice-to-have
|
|
116
|
+
|
|
117
|
+
## Output Format
|
|
118
|
+
|
|
119
|
+
Write the report to `.dev-team-reports/competitive-analysis-<date>.md` using this structure.
|
|
120
|
+
|
|
121
|
+
For the header block and closing Provenance section, follow
|
|
122
|
+
`knowledge/report-template.md`; the sections below are this skill's own
|
|
123
|
+
body.
|
|
124
|
+
|
|
125
|
+
(`Date`, `Target`, `Tool versions`, and `Scope` come from that shared
|
|
126
|
+
header — `Tool versions` renders `_Not applicable — no tool version applies
|
|
127
|
+
to a comparison._` per the empty-section rule; `Source type` has no
|
|
128
|
+
shared-contract equivalent and stays as this skill's own field.)
|
|
129
|
+
|
|
130
|
+
```markdown
|
|
131
|
+
# Competitive Analysis: dev-team vs [Target]
|
|
132
|
+
|
|
133
|
+
**Date**: <date>
|
|
134
|
+
**Target**: [Name, URL, or description of what was compared]
|
|
135
|
+
**Tool versions**: _Not applicable — no tool version applies to a comparison._
|
|
136
|
+
**Scope**: [Layers/capabilities compared]
|
|
137
|
+
**Source type**: URL | Local path | Description | Concept
|
|
138
|
+
|
|
139
|
+
## Executive Summary
|
|
140
|
+
|
|
141
|
+
[2-3 sentences: what was compared, how many gaps found, top finding]
|
|
142
|
+
|
|
143
|
+
## Capability Comparison
|
|
144
|
+
|
|
145
|
+
### [Layer Name]
|
|
146
|
+
|
|
147
|
+
| Capability | dev-team | [Target] | Classification |
|
|
148
|
+
|-----------|-----------------|----------|----------------|
|
|
149
|
+
| ... | ... | ... | Missing (dev-team) / Weaker (dev-team) / Different approach / Stronger (dev-team) |
|
|
150
|
+
|
|
151
|
+
[Repeat for each layer that has differences]
|
|
152
|
+
|
|
153
|
+
## Gap Specs
|
|
154
|
+
|
|
155
|
+
[One spec block per Missing or Weaker gap, using the template from Step 4]
|
|
156
|
+
|
|
157
|
+
## Different Approaches Worth Examining
|
|
158
|
+
|
|
159
|
+
[Short tradeoff analysis for each Different Approach item]
|
|
160
|
+
|
|
161
|
+
## Our Strengths
|
|
162
|
+
|
|
163
|
+
[Brief list of areas where dev-team is stronger — keeps the report balanced]
|
|
164
|
+
|
|
165
|
+
## Top 5 Priorities
|
|
166
|
+
|
|
167
|
+
| Rank | Gap | Layer | Complexity | Why |
|
|
168
|
+
|------|-----|-------|-----------|-----|
|
|
169
|
+
| 1 | ... | ... | ... | ... |
|
|
170
|
+
|
|
171
|
+
## Next Steps
|
|
172
|
+
|
|
173
|
+
[Concrete recommendations: which gaps to address first, any quick wins, things that need more research]
|
|
174
|
+
|
|
175
|
+
## Provenance
|
|
176
|
+
|
|
177
|
+
- Repository: `<repo path>`
|
|
178
|
+
- Branch / SHA: `<branch>` / `<sha>`
|
|
179
|
+
- Run parameters: `<flags>`
|
|
180
|
+
- `dev-team` plugin version: `<plugin_version>`
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Presenting Results
|
|
184
|
+
|
|
185
|
+
After writing the report, display in chat:
|
|
186
|
+
|
|
187
|
+
1. The file path
|
|
188
|
+
2. The executive summary
|
|
189
|
+
3. The top 5 priorities table
|
|
190
|
+
|
|
191
|
+
Do not repeat the full report in chat.
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context-loading-protocol
|
|
3
|
+
description: Decide which agents and skills to load for a given task. Use at the start of every task to select the minimum viable context load, calculate the token budget, and stay below the 40% utilization ceiling.
|
|
4
|
+
role: orchestrator
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Context Loading Protocol
|
|
9
|
+
|
|
10
|
+
Token-budget reference (CLAUDE.md baseline, full-load ceiling, per-agent and per-skill costs) is the **Baseline Budget** section of `CLAUDE.md`. This skill is the runtime procedure; don't duplicate the table here — it goes stale.
|
|
11
|
+
|
|
12
|
+
## Constraints
|
|
13
|
+
|
|
14
|
+
- Never load all agents upfront; load only the primary agent for each phase.
|
|
15
|
+
- Keep total context below **40%** of the model's window at all times.
|
|
16
|
+
- Load agents on demand when their phase begins, not speculatively.
|
|
17
|
+
- Use tool-based file reads (Read); do not paste file contents into the prompt.
|
|
18
|
+
|
|
19
|
+
## Enforcement
|
|
20
|
+
|
|
21
|
+
No hook blocks or warns on capability loads any more (the former context
|
|
22
|
+
ceiling hook was removed; see [ADR 0043](../../../../docs/adr/0043-replace-the-context-ceiling-guard-with-harness-autocompact.md)).
|
|
23
|
+
The harness compacts the conversation itself at the percentage
|
|
24
|
+
`/dev-team:setup` writes to the repo's `.claude/settings.json`
|
|
25
|
+
(`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`, default 40). Repos that never ran `/setup`
|
|
26
|
+
keep the harness default, which is much later, and get a one-line advisory at
|
|
27
|
+
session start. After a compaction, a `compact` SessionStart hook re-injects
|
|
28
|
+
the active `/build` phase, step and plan progress.
|
|
29
|
+
|
|
30
|
+
So the budget estimate below is the planning tool you apply *before* loading,
|
|
31
|
+
and `/handoff` is yours to run by hand when a deliberate, structured summary
|
|
32
|
+
is worth more than a generic compaction.
|
|
33
|
+
|
|
34
|
+
### Why 40%
|
|
35
|
+
|
|
36
|
+
The 40% default is a conservative planning target, not a claimed accuracy cliff.
|
|
37
|
+
Chroma's [Context Rot study](https://www.trychroma.com/research/context-rot) found
|
|
38
|
+
degradation across 18 models (including Claude 4) is gradual, not a sharp drop at
|
|
39
|
+
any single percentage. Needle-in-a-haystack benchmarks like RULER and NoLiMa show a
|
|
40
|
+
model's *effective* context is often only about half its advertised window, with
|
|
41
|
+
sharp accuracy drops on non-lexical retrieval well before the window limit. Anthropic's
|
|
42
|
+
[effective context engineering guidance](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents)
|
|
43
|
+
recommends proactive compaction well ahead of the limit. Given that evidence,
|
|
44
|
+
budgeting to 40% of the window leaves headroom before quality degrades, rather
|
|
45
|
+
than chasing a precise threshold that doesn't exist. There is no absolute token
|
|
46
|
+
cap: the percentage applies to the window, so 40% of a 1M window is 400K.
|
|
47
|
+
|
|
48
|
+
Full guide — how the threshold is configured, the two SessionStart hooks,
|
|
49
|
+
troubleshooting: [Context Management](../../docs/context-management.md).
|
|
50
|
+
|
|
51
|
+
## Loading Decision Procedure
|
|
52
|
+
|
|
53
|
+
### Step 0: Confirm there is a task
|
|
54
|
+
|
|
55
|
+
Before loading anything or reading files, confirm an actionable instruction exists. If the user has not yet said what they want, wait — do not speculatively read files, verify code, or load agents. Premature investigation before a task is given wastes context and is a common interrupt trigger. Once a task exists, proceed to Step 1.
|
|
56
|
+
|
|
57
|
+
### Step 1: Classify the task
|
|
58
|
+
|
|
59
|
+
| Profile | Description | Example |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| **Simple/Single** | One agent, no skills | "Fix this typo", "Write a unit test" |
|
|
62
|
+
| **Standard/Single** | One agent + 1–2 skills | "Implement this feature using hexagonal architecture" |
|
|
63
|
+
| **Multi-Agent** | 2–3 agents coordinating | "Design and implement a new API endpoint" |
|
|
64
|
+
| **Complex/Multi** | 3+ agents + skills | "Build a new bounded context with full test coverage" |
|
|
65
|
+
|
|
66
|
+
### Step 2: Select agents
|
|
67
|
+
|
|
68
|
+
Load the **minimum set**:
|
|
69
|
+
|
|
70
|
+
1. Identify the **primary agent** (owns the deliverable).
|
|
71
|
+
2. Identify **supporting agents** (input or review).
|
|
72
|
+
3. Do NOT load agents for downstream validation yet — load them when their phase begins.
|
|
73
|
+
|
|
74
|
+
Order: primary first, then supporting agents one at a time as their phase begins.
|
|
75
|
+
|
|
76
|
+
### Step 3: Select skills
|
|
77
|
+
|
|
78
|
+
For each loaded agent, check its `## Skills` section:
|
|
79
|
+
|
|
80
|
+
- Only load skills **relevant to the current task** — not all skills the agent references.
|
|
81
|
+
- Skills shared by multiple loaded agents only need to be loaded once.
|
|
82
|
+
|
|
83
|
+
### Step 4: Calculate token budget
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
Total = CLAUDE.md baseline
|
|
87
|
+
+ conversation history (estimate)
|
|
88
|
+
+ agent files (sum selected)
|
|
89
|
+
+ skill files (sum selected)
|
|
90
|
+
+ expected output (estimate)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Target: total < 40% of the model's context window.** For Claude with a 200K window, that's < 80K tokens; on a 1M-window model it is 400K (there is no absolute cap). See [Why 40%](#why-40) for the rationale. The config files are a small fraction; the real budget concern is conversation history + output accumulation over multi-turn tasks.
|
|
94
|
+
|
|
95
|
+
### Step 5: Load via tool-based file reads
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
Read agents/software-engineer.md
|
|
99
|
+
Read skills/hexagonal-architecture/SKILL.md
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Do NOT copy file contents into the system prompt or conversation.
|
|
103
|
+
|
|
104
|
+
## Loading Profiles
|
|
105
|
+
|
|
106
|
+
Pre-computed loading sets for common task types.
|
|
107
|
+
|
|
108
|
+
### Code Implementation
|
|
109
|
+
|
|
110
|
+
- **Load**: Software Engineer + relevant skill(s)
|
|
111
|
+
- **Defer**: QA (load after implementation), Architect (load only if design questions arise)
|
|
112
|
+
|
|
113
|
+
### Architecture Design
|
|
114
|
+
|
|
115
|
+
- **Load**: Architect + relevant architecture skill(s)
|
|
116
|
+
- **Defer**: Software Engineer (load at implementation), QA (load at validation)
|
|
117
|
+
|
|
118
|
+
### Bug Fix
|
|
119
|
+
|
|
120
|
+
- **Load**: Software Engineer only
|
|
121
|
+
- **Defer**: QA (load if regression test needed)
|
|
122
|
+
|
|
123
|
+
### New Feature (full lifecycle)
|
|
124
|
+
|
|
125
|
+
Three phases, each in a fresh context window with a human review gate between. Each phase's output is a structured progress file in `.claude/memory/` that onboards the next phase.
|
|
126
|
+
|
|
127
|
+
| Phase | Load | Purpose | Output |
|
|
128
|
+
|---|---|---|---|
|
|
129
|
+
| 1. Research | Orchestrator + sub-agents (exploration) | Understand system, find files, trace data flows | Research progress file |
|
|
130
|
+
| 2. Plan | Architect + PM (if needed) + relevant skill(s) | Specify every change: files, snippets, tests | Implementation plan progress file |
|
|
131
|
+
| 3. Implement | Software Engineer + QA + skill(s) | Execute the plan; code, tests | Working code + test results |
|
|
132
|
+
|
|
133
|
+
Key rules:
|
|
134
|
+
|
|
135
|
+
- Each phase starts with a fresh context window, loading only the previous phase's progress file.
|
|
136
|
+
- Human reviews and approves the progress file before the next phase begins.
|
|
137
|
+
- Sub-agents primarily provide context isolation — they search, read, and return concise findings.
|
|
138
|
+
- If implementation is large, compact mid-phase: update the plan progress file with completed steps and continue in a fresh context.
|
|
139
|
+
|
|
140
|
+
## Unloading
|
|
141
|
+
|
|
142
|
+
Since tokens can't be literally removed from context:
|
|
143
|
+
|
|
144
|
+
1. **Phase transitions** — summarize completed phase output into `.claude/memory/` and start a new conversation for the next phase.
|
|
145
|
+
2. **Within a conversation** — stop referencing the agent/skill; the orchestrator mentally notes it's no longer active. Use the Handoff skill (continue mode) to compress stale content.
|
|
146
|
+
3. **Multi-turn accumulation** — when conversation history crosses **30%** utilization, trigger summarization before loading additional agents.
|
|
147
|
+
|
|
148
|
+
## Anti-patterns
|
|
149
|
+
|
|
150
|
+
- Loading all agents upfront — wastes tokens before any work begins. Load only the primary agent.
|
|
151
|
+
- Loading all of an agent's skills — most are irrelevant to the specific request.
|
|
152
|
+
- Never unloading — context grows monotonically until hallucination risk. Summarize and phase-transition.
|
|
153
|
+
- Loading agents "just in case" — adds cost without value. Load on demand when the phase begins.
|
|
154
|
+
|
|
155
|
+
## Output
|
|
156
|
+
|
|
157
|
+
Loading plan as one table: selected agents + skills, token costs, estimated total, and utilization percentage against the 40% ceiling. No narration.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: continue
|
|
3
|
+
description: >-
|
|
4
|
+
Resume work from a prior session by reading phase progress files in
|
|
5
|
+
.claude/memory/ and active plans. Use this when starting a new session on in-progress work,
|
|
6
|
+
or when the user says "continue", "pick up where I left off", "resume",
|
|
7
|
+
or "what was I working on".
|
|
8
|
+
argument-hint: ""
|
|
9
|
+
user-invocable: true
|
|
10
|
+
allowed-tools: Read, Glob, Grep, Bash(git log *), Bash(git branch *), Bash(git status *), Bash(git diff *), Bash(ls *)
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Continue Session
|
|
14
|
+
|
|
15
|
+
Role: orchestrator. This command resumes work from a prior session — it does not start new work.
|
|
16
|
+
|
|
17
|
+
Arguments: optional — a phase or plan name to resume; defaults to the most recent.
|
|
18
|
+
|
|
19
|
+
You have been invoked with the `/continue` command.
|
|
20
|
+
|
|
21
|
+
## Orchestrator constraints
|
|
22
|
+
|
|
23
|
+
1. Resume from .claude/memory/ progress files; do not restart completed phases.
|
|
24
|
+
2. Summarize prior state; do not replay full history.
|
|
25
|
+
3. **Be concise.** Report where work resumes, no narration.
|
|
26
|
+
|
|
27
|
+
## Steps
|
|
28
|
+
|
|
29
|
+
### 1. Scan for in-progress work
|
|
30
|
+
|
|
31
|
+
Find phase progress files with `Glob(".claude/memory/*.md")` — never `Read` the bare `.claude/memory/` directory to see what it contains (`${CLAUDE_PLUGIN_ROOT}/knowledge/directory-enumeration.md`). These follow the pattern:
|
|
32
|
+
|
|
33
|
+
- `.claude/memory/research-progress-*.md` — Research phase output
|
|
34
|
+
- `.claude/memory/plan-progress-*.md` — Plan phase output
|
|
35
|
+
- `.claude/memory/implementation-progress-*.md` — Implementation phase output
|
|
36
|
+
- `.claude/memory/decisions.md` — Accumulated decision log
|
|
37
|
+
|
|
38
|
+
Also check (same rule — `Glob`, not a directory `Read`):
|
|
39
|
+
|
|
40
|
+
- `plans/` directory for active plan files
|
|
41
|
+
- `docs/specs/` for design documents without corresponding implementation — or, on a repo that opted into `/specs`' issue-first persistence convention, a `--spec-issue <url>` reference recorded in the active plan instead of a file
|
|
42
|
+
- `.claude/review-summaries/` for recent review results
|
|
43
|
+
- `corrections/` for unapplied code review fixes
|
|
44
|
+
|
|
45
|
+
### 2. Check git state
|
|
46
|
+
|
|
47
|
+
Run `git status` and `git log --oneline -5` to understand:
|
|
48
|
+
|
|
49
|
+
- Current branch and its relationship to main
|
|
50
|
+
- Any uncommitted changes
|
|
51
|
+
- Recent commit messages for context
|
|
52
|
+
|
|
53
|
+
### 3. Summarize current state
|
|
54
|
+
|
|
55
|
+
Present a structured summary:
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
## Session State
|
|
59
|
+
|
|
60
|
+
**Branch**: feature/xyz (ahead of main by 3 commits)
|
|
61
|
+
**Last phase completed**: Plan (2026-03-17)
|
|
62
|
+
**Next phase**: Implement
|
|
63
|
+
|
|
64
|
+
### In-Progress Work
|
|
65
|
+
- [Plan] Widget refactor — 8/12 steps complete
|
|
66
|
+
- [Review] 2 unapplied corrections from last review
|
|
67
|
+
|
|
68
|
+
### Uncommitted Changes
|
|
69
|
+
- `src/widget.ts` — modified
|
|
70
|
+
- `src/widget.test.ts` — modified
|
|
71
|
+
|
|
72
|
+
### Recommended Next Action
|
|
73
|
+
Continue implementation from step 9 of the widget refactor plan.
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 4. Ask for confirmation
|
|
77
|
+
|
|
78
|
+
Present the recommended next action and ask: "Resume from here, or would you like to do something else?"
|
|
79
|
+
|
|
80
|
+
If the user confirms, load the appropriate phase context and continue execution.
|
|
81
|
+
|
|
82
|
+
### 5. Load phase context
|
|
83
|
+
|
|
84
|
+
Based on the identified phase:
|
|
85
|
+
|
|
86
|
+
- **Research**: Load research progress file + relevant design doc
|
|
87
|
+
- **Plan**: Load plan progress file + design doc
|
|
88
|
+
- **Implement**: Load implementation progress file + plan + any review corrections
|
|
89
|
+
|
|
90
|
+
Follow the Context Loading Protocol for phased loading.
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cost-report
|
|
3
|
+
description: >-
|
|
4
|
+
Report actual token spend and dollar cost of dispatched work — per agent and
|
|
5
|
+
total — and flag cost regressions. Use when the user asks "how much did that
|
|
6
|
+
cost", "token spend", "cost of this run", "cost report", or wants to check for
|
|
7
|
+
a cost regression after /code-review or an orchestration run.
|
|
8
|
+
argument-hint: "[--transcript <path>] [--tolerance <n>]"
|
|
9
|
+
user-invocable: true
|
|
10
|
+
allowed-tools: >-
|
|
11
|
+
Bash(python3 *, jq *, tail *, cat *, ls *, test *)
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Cost Report (#102)
|
|
15
|
+
|
|
16
|
+
Role: worker. Reports runtime cost/token spend captured by the cost meter.
|
|
17
|
+
|
|
18
|
+
Token usage is not available to hooks, so the `Stop`/`SubagentStop` hook
|
|
19
|
+
(`hooks/cost_meter.py`) records a per-session summary to
|
|
20
|
+
`metrics/cost-metering.jsonl` by parsing the session transcript, converting
|
|
21
|
+
tokens to dollars via `knowledge/model-pricing.json`. This skill reports that
|
|
22
|
+
data.
|
|
23
|
+
|
|
24
|
+
## Steps
|
|
25
|
+
|
|
26
|
+
1. **Per-session breakdown.** If the user passes `--transcript <path>` (or you
|
|
27
|
+
know the current transcript path), run an exact per-agent report:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
python3 "${CLAUDE_PLUGIN_ROOT}/hooks/lib/cost_meter.py" report --transcript <path>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Otherwise show the most recently recorded session from the metrics log
|
|
34
|
+
(prefer the migrated `.claude/metrics/` location, falling back to the
|
|
35
|
+
legacy bare `metrics/` path for a project mid-transition):
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
log=".claude/metrics/cost-metering.jsonl"; [ -f "$log" ] || log="metrics/cost-metering.jsonl"
|
|
39
|
+
tail -n 1 "$log" | python3 -m json.tool
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
2. **Regression check.** Compare the latest session's total cost against the
|
|
43
|
+
rolling mean of prior sessions (default tolerance +50%):
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
log=".claude/metrics/cost-metering.jsonl"; [ -f "$log" ] || log="metrics/cost-metering.jsonl"
|
|
47
|
+
python3 "${CLAUDE_PLUGIN_ROOT}/hooks/lib/cost_meter.py" regression \
|
|
48
|
+
--log "$log" --tolerance 0.5
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
3. Report the per-model, per-thread (main/subagent), and per-agent-type tokens
|
|
52
|
+
+ cost, the session total, and whether a cost regression was detected. Do
|
|
53
|
+
not invent numbers — print exactly what the meter emits. If
|
|
54
|
+
`.claude/metrics/cost-metering.jsonl` (or the legacy `metrics/cost-metering.jsonl`)
|
|
55
|
+
is absent, tell the user the meter hasn't recorded a session yet (the hook
|
|
56
|
+
records on turn end).
|
|
57
|
+
|
|
58
|
+
For a windowed cost-regression baseline (mean of only the N most recent prior
|
|
59
|
+
sessions instead of all-time), pass `--window N`:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
log=".claude/metrics/cost-metering.jsonl"; [ -f "$log" ] || log="metrics/cost-metering.jsonl"
|
|
63
|
+
python3 "${CLAUDE_PLUGIN_ROOT}/hooks/lib/cost_meter.py" regression \
|
|
64
|
+
--log "$log" --tolerance 0.5 --window 10
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Attribution dimensions (#102, #170, #1094)
|
|
68
|
+
|
|
69
|
+
`report` breaks spend down by **model**, by **thread** (main-loop vs
|
|
70
|
+
subagent), and by **agent type** (#1094), plus the session **total**.
|
|
71
|
+
|
|
72
|
+
The agent-type dimension answers "which agent type drives spend" (e.g.
|
|
73
|
+
`security-review` vs `test-review` vs `general-purpose`): main-loop turns land
|
|
74
|
+
in `main`; sidechain turns are attributed via the native `attributionAgent`
|
|
75
|
+
field the harness stamps on subagent records, falling back to the Task/Agent
|
|
76
|
+
dispatch join (`tool_use` `input.subagent_type` paired with
|
|
77
|
+
`toolUseResult.agentId`). Sidechain spend carrying neither signal lands in an
|
|
78
|
+
honest `unattributed` bucket — the meter never guesses. The meter also folds in
|
|
79
|
+
the sibling per-subagent transcript files
|
|
80
|
+
(`<dir>/<session-id>/subagents/agent-*.jsonl`) that newer harness versions
|
|
81
|
+
write instead of inline sidechain turns, so subagent spend stays visible.
|
|
82
|
+
|
|
83
|
+
Attribution is limited to what the Claude Code harness actually records on
|
|
84
|
+
transcript turns. Per-command, per-phase, and per-fix-loop-iteration buckets
|
|
85
|
+
were **removed** (#170): they relied on `attributionSkill` / `orchestrationPhase`
|
|
86
|
+
/ `fixLoopIteration` fields the harness never writes (verified 0/312 in a real
|
|
87
|
+
transcript), and a plugin has no write-path into the transcript — so those
|
|
88
|
+
dimensions were always empty. The main/subagent split uses the native
|
|
89
|
+
`isSidechain` flag, which the harness does provide; the agent-type dimension
|
|
90
|
+
likewise reads only harness-recorded fields (verified against a real
|
|
91
|
+
transcript, #1094).
|
|
92
|
+
|
|
93
|
+
## Review value (#348)
|
|
94
|
+
|
|
95
|
+
`/build` records, per inline review checkpoint, whether review actually changed
|
|
96
|
+
anything (`metrics/review-value.jsonl`, schema in `performance-metrics`). When
|
|
97
|
+
that file exists, surface a compact "review value" summary so the user can see
|
|
98
|
+
whether the pipeline's review overhead paid off on this work — the count of
|
|
99
|
+
checkpoints that **found+fixed** a defect vs. those that **passed no-op**, with
|
|
100
|
+
the fix-loop iterations spent:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
log=".claude/metrics/review-value.jsonl"; [ -f "$log" ] || log="metrics/review-value.jsonl"
|
|
104
|
+
[ -f "$log" ] && jq -s '
|
|
105
|
+
{checkpoints: length,
|
|
106
|
+
no_op: (map(select(.outcome=="no-op")) | length),
|
|
107
|
+
fixed: (map(select(.outcome=="fixed")) | length),
|
|
108
|
+
escalated:(map(select(.outcome=="escalated")) | length),
|
|
109
|
+
issues_found: (map(.issues_found) | add // 0),
|
|
110
|
+
issues_fixed: (map(.issues_fixed) | add // 0),
|
|
111
|
+
fix_iterations: (map(.fix_iterations) | add // 0)}' \
|
|
112
|
+
"$log"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
A run that is mostly `no_op` is evidence the review ceremony is over-provisioned
|
|
116
|
+
for that class of work — feed it back into the `/plan` plan-tier and `/build`
|
|
117
|
+
per-step complexity routing. Counts only; no code or file content is stored.
|
|
118
|
+
|
|
119
|
+
## Context pollution — per-phase resident vs one-time spend (#1520)
|
|
120
|
+
|
|
121
|
+
A one-time token bill and context that lingers and "charges rent" on every
|
|
122
|
+
subsequent turn are economically different costs (Martin Fowler, "The
|
|
123
|
+
Orchestrator's Tax"). The session totals above cannot tell them apart. The
|
|
124
|
+
`phase_marker.py` PostToolUse hook records a marker at every `/handoff` (a
|
|
125
|
+
phase boundary) capturing, for the **main-loop** context, the resident
|
|
126
|
+
occupancy and the cumulative output spend at that boundary. `phase-report`
|
|
127
|
+
turns the marker sequence into a per-phase ratio:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
log=".claude/metrics/phase-markers.jsonl"; [ -f "$log" ] || log="metrics/phase-markers.jsonl"
|
|
131
|
+
python3 "${CLAUDE_PLUGIN_ROOT}/hooks/lib/cost_meter.py" phase-report --log "$log"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Report the per-phase `resident_tokens`, `spent_tokens` (output generated during
|
|
135
|
+
the phase), and `resident_to_spent_ratio`. A **high** ratio flags a phase whose
|
|
136
|
+
context stayed resident (pollution — a candidate for earlier mid-phase
|
|
137
|
+
compaction or narrower subagent scoping) rather than being one-time cost; a low
|
|
138
|
+
ratio means most of the phase's spend was transient. If the log is absent, tell
|
|
139
|
+
the user no phase boundary has been recorded yet (the hook records on each
|
|
140
|
+
`/handoff`).
|
|
141
|
+
|
|
142
|
+
**Honesty caveat — this is a session-scoped proxy, not exact per-phase
|
|
143
|
+
accounting.** `resident` is sampled at the `/handoff` marker because that is the
|
|
144
|
+
closest phase boundary the harness exposes; the harness records no explicit
|
|
145
|
+
phase marker of its own (the same reason per-command/per-phase *cost*
|
|
146
|
+
attribution was removed in #170 — see Attribution dimensions above). The metric
|
|
147
|
+
lives in its own `phase-markers.jsonl` log and is never folded into the
|
|
148
|
+
`cost-metering.jsonl` incremental state.
|
|
149
|
+
|
|
150
|
+
## Privacy boundary
|
|
151
|
+
|
|
152
|
+
The meter persists **only** token counts, dollar amounts, model identifiers,
|
|
153
|
+
the main/subagent thread flag, agent-type identifiers, and — for phase markers —
|
|
154
|
+
a phase label and the resident/spent token counts. It never records prompt
|
|
155
|
+
text, code, file paths, or tool payloads. `metrics/cost-metering.jsonl` and
|
|
156
|
+
`metrics/phase-markers.jsonl` are metrics-only artifacts by construction.
|
|
157
|
+
|
|
158
|
+
1. **Account pace (optional, #142).** When the user asks "am I on track for my
|
|
159
|
+
budget", "how much have I burned this week", or "which model should I use for
|
|
160
|
+
the rest of the period", report account-level pace: cumulative spend over a
|
|
161
|
+
rolling window, the implied daily rate, and the projected spend for a billing
|
|
162
|
+
period — flagging when pace would exhaust a stated budget:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
log=".claude/metrics/cost-metering.jsonl"; [ -f "$log" ] || log="metrics/cost-metering.jsonl"
|
|
166
|
+
python3 "${CLAUDE_PLUGIN_ROOT}/hooks/lib/cost_meter.py" pace \
|
|
167
|
+
--log "$log" --budget 100 --period-days 30 --window-days 7
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Without `--budget` it reports pace only (no flag). When it flags an
|
|
171
|
+
over-budget pace it suggests dropping a model tier (Opus→Sonnet) for the rest
|
|
172
|
+
of the window.
|
|
173
|
+
|
|
174
|
+
## Notes
|
|
175
|
+
|
|
176
|
+
- Disable the meter with `DEV_TEAM_COST_METER=off`.
|
|
177
|
+
- Pricing lives in `knowledge/model-pricing.json` — update it when rates change
|
|
178
|
+
(it is the named instrument for every cost number this skill prints).
|