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,266 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gherkin-public
|
|
3
|
+
description: >-
|
|
4
|
+
Author Gherkin scenarios for the entire public interface of a repository
|
|
5
|
+
— every API endpoint, UI screen, batch-job entry point, library export,
|
|
6
|
+
and event type — at the observable boundary, not internal steps. The
|
|
7
|
+
scenarios become the executable specification of intended behavior before
|
|
8
|
+
any test or production-code change lands. After the operator approves the
|
|
9
|
+
scenarios at the Phase-2 gate, this skill also creates the Phase-4 and
|
|
10
|
+
Phase-5 `[Component tests]` Stories that will bind their test code to
|
|
11
|
+
specific scenario names — so the component tests are written from the
|
|
12
|
+
approved Gherkin, not from the assessment.
|
|
13
|
+
argument-hint: "<repo-path> [--repo-slug <slug>] [--parent <issue-url>] [--create-stories]"
|
|
14
|
+
user-invocable: true
|
|
15
|
+
allowed-tools: Read, Glob, Grep, Bash, Write
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Gherkin Public
|
|
19
|
+
|
|
20
|
+
Role: worker. Standalone Gherkin authoring skill. Reads the component map produced by `/cd-test-architecture` and writes `.feature` files at the **public boundary** of each component — the surface an external caller actually depends on. Internal steps are out of scope here; scenarios describe observable outputs.
|
|
21
|
+
|
|
22
|
+
You have been invoked with the `/gherkin-public` command.
|
|
23
|
+
|
|
24
|
+
## Parse Arguments
|
|
25
|
+
|
|
26
|
+
Arguments: $ARGUMENTS
|
|
27
|
+
|
|
28
|
+
- Positional: `<repo-path>` — the repo under modernization.
|
|
29
|
+
- `--repo-slug <slug>` — namespace under `.claude/memory/<workflow>/`. Defaults to the last path segment of `<repo-path>`.
|
|
30
|
+
|
|
31
|
+
If `<repo-path>` is absent, ask the operator.
|
|
32
|
+
|
|
33
|
+
## Steps
|
|
34
|
+
|
|
35
|
+
### 1. Load the component map
|
|
36
|
+
|
|
37
|
+
Read `.claude/memory/<workflow>/<slug>/phase-1.md` for the components & patterns table. If it's missing, tell the operator Phase 1 has not run and stop.
|
|
38
|
+
|
|
39
|
+
### 2. Pick the output directory
|
|
40
|
+
|
|
41
|
+
- Prefer `features/<workflow>/` if `<repo>/features/` already exists (matches the repo's existing Gherkin layout).
|
|
42
|
+
- Otherwise write to `<repo>/specs/<workflow>/`.
|
|
43
|
+
- Create the directory if missing.
|
|
44
|
+
|
|
45
|
+
### 3. Author scenarios per public surface
|
|
46
|
+
|
|
47
|
+
For each component in the map, generate one `.feature` file per public surface using the pattern's template. Every scenario MUST cover at least one success and one failure path. Every scenario MUST be observable at the boundary — no scenario describes an internal call.
|
|
48
|
+
|
|
49
|
+
**Grounding scenarios in real behavior.** The component map names each surface but not its actual branches or error-handling depth. Prefer CodeGraph/Repowise over raw `Grep` to inspect a surface's real failure conditions before writing its failure scenario, rather than inferring one from the surface name alone — see [`knowledge/codegraph-vs-graphify.md`](../../knowledge/codegraph-vs-graphify.md) for tool selection and the fallback contract.
|
|
50
|
+
|
|
51
|
+
**Titles must be specific enough to identify the surface without relying on the `Feature:` header for context (issue #1526).** A `Scenario:` title read in isolation — in a CI report, a BDD runner's scenario list, or a coverage dashboard — must be recognizable as belonging to its specific surface, not a generic category label that could describe any endpoint (e.g. `returns error for invalid input`, `handles success case`). Prefer wording that names the concrete condition or resource involved (e.g. `rejects the request when the id path parameter is non-numeric`, `returns the created order with a 201 and Location header`) over a bare category name. A title that is merely a paraphrase of the surface name (the same words as the `Feature:` line, reworded) fails this rule.
|
|
52
|
+
|
|
53
|
+
**API Provider** (one `.feature` per endpoint):
|
|
54
|
+
|
|
55
|
+
```gherkin
|
|
56
|
+
Feature: <method> <path>
|
|
57
|
+
As an external API consumer
|
|
58
|
+
I want <documented behavior>
|
|
59
|
+
So that <user value>
|
|
60
|
+
|
|
61
|
+
Scenario: <success-path-summary>
|
|
62
|
+
Given <request shape + auth context>
|
|
63
|
+
When the client calls <method> <path>
|
|
64
|
+
Then the response status is <code>
|
|
65
|
+
And the body conforms to <schema reference>
|
|
66
|
+
|
|
67
|
+
Scenario: <failure-mode-summary, per the assessment's failure-modes list>
|
|
68
|
+
Given <invalid request>
|
|
69
|
+
When the client calls <method> <path>
|
|
70
|
+
Then the response status is <code>
|
|
71
|
+
And the error body includes <field>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**User Interface** (one `.feature` per user-facing flow):
|
|
75
|
+
|
|
76
|
+
```gherkin
|
|
77
|
+
Feature: <flow name>
|
|
78
|
+
As a <user role>
|
|
79
|
+
I want <task>
|
|
80
|
+
So that <outcome>
|
|
81
|
+
|
|
82
|
+
Scenario: <happy path>
|
|
83
|
+
Given <starting screen + preconditions>
|
|
84
|
+
When the user <observable action sequence>
|
|
85
|
+
Then the user sees <observable outcome>
|
|
86
|
+
And the URL is <route> (or app state is <state>)
|
|
87
|
+
|
|
88
|
+
Scenario: <validation / error path>
|
|
89
|
+
Given <invalid input>
|
|
90
|
+
When the user submits
|
|
91
|
+
Then the user sees <error message>
|
|
92
|
+
And no destructive change has occurred
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Batch / Scheduled Job** (one `.feature` per job; the entry point is the surface):
|
|
96
|
+
|
|
97
|
+
```gherkin
|
|
98
|
+
Feature: <job name> — scheduled entry point
|
|
99
|
+
|
|
100
|
+
Scenario: <success path — full input → expected outputs>
|
|
101
|
+
Given the input source contains <fixture rows / messages>
|
|
102
|
+
When the job is triggered at its scheduled entry point
|
|
103
|
+
Then the job exits with code 0
|
|
104
|
+
And the output sink contains <expected rows / files / events>
|
|
105
|
+
And the run-metrics show <count> processed
|
|
106
|
+
|
|
107
|
+
Scenario: <partial-failure path>
|
|
108
|
+
Given the input source contains <N valid + M invalid rows>
|
|
109
|
+
When the job is triggered
|
|
110
|
+
Then the job exits with code <non-zero per the contract, or 0 with reported errors>
|
|
111
|
+
And the dead-letter sink contains the M invalid rows
|
|
112
|
+
And no valid row was dropped
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**CLI / Library** (one `.feature` per command or exported function):
|
|
116
|
+
|
|
117
|
+
```gherkin
|
|
118
|
+
Feature: <command-or-function>
|
|
119
|
+
|
|
120
|
+
Scenario: <documented success>
|
|
121
|
+
Given <preconditions / stdin / args>
|
|
122
|
+
When the caller invokes <cmd-or-fn> with <args>
|
|
123
|
+
Then the exit code is <n> (or the return value is <shape>)
|
|
124
|
+
And stdout contains <pattern>
|
|
125
|
+
|
|
126
|
+
Scenario: <documented error>
|
|
127
|
+
Given <invalid input>
|
|
128
|
+
When the caller invokes <cmd-or-fn>
|
|
129
|
+
Then the exit code is <non-zero>
|
|
130
|
+
And stderr contains <message>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**API / Event Consumer** (one `.feature` per outbound call or emitted event):
|
|
134
|
+
|
|
135
|
+
```gherkin
|
|
136
|
+
Feature: <component> emits <event-type>
|
|
137
|
+
|
|
138
|
+
Scenario: <triggering input → expected emission>
|
|
139
|
+
Given <inbound trigger>
|
|
140
|
+
When the component processes it
|
|
141
|
+
Then an event of type <type> is emitted to <sink>
|
|
142
|
+
And the event body matches <schema>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Event Producer / Stateful Service** — combine the API Provider and Event Consumer templates as appropriate.
|
|
146
|
+
|
|
147
|
+
### 4. Cite the assessment
|
|
148
|
+
|
|
149
|
+
In every `.feature` file's header, include:
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
# Source: .claude/memory/<workflow>/<slug>/phase-1.md
|
|
153
|
+
# Component: <name>
|
|
154
|
+
# Pattern: <pattern>
|
|
155
|
+
# Public surface: <surface-id>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
This lets the operator trace each scenario back to a component row at the Phase-2 human sign-off (Step 6), and lets `/feature-file-validation` — which `/code-review` invokes automatically whenever `.feature` or step-definition files are in the changeset — verify each scenario has matching test automation once the bound Stories are built.
|
|
159
|
+
|
|
160
|
+
### 4b. Adversarial Gherkin Quality Review
|
|
161
|
+
|
|
162
|
+
Dispatch the adversarial review against Step 3's authored `.feature` files
|
|
163
|
+
unconditionally — this skill has no `none` mode, so every completed Step 3
|
|
164
|
+
authors at least one `.feature` file, and no operator opt-in is required.
|
|
165
|
+
This runs **before** Step 5 (Persist phase-2 progress) and before the Step 6
|
|
166
|
+
human sign-off, so the operator sees the dual-agent findings alongside the
|
|
167
|
+
scenario inventory at the sign-off decision point.
|
|
168
|
+
|
|
169
|
+
Follow `knowledge/gherkin-quality-review-dispatch.md` for the shared dispatch,
|
|
170
|
+
aggregation, failure-handling, and zero-findings mechanics — this step states
|
|
171
|
+
only what's specific to `/gherkin-public`: each of the two
|
|
172
|
+
`gherkin-quality-critic` instances receives, for every surface reviewed, that
|
|
173
|
+
surface's `.feature` file content plus its Step 4 header (`# Source:`,
|
|
174
|
+
`# Component:`, `# Pattern:`, `# Public surface:`). The resulting
|
|
175
|
+
`agreed`/`single-source` buckets feed Step 8's two new report sections.
|
|
176
|
+
|
|
177
|
+
### 5. Persist phase-2 progress
|
|
178
|
+
|
|
179
|
+
Write `.claude/memory/<workflow>/<slug>/phase-2.md` with:
|
|
180
|
+
|
|
181
|
+
- Number of `.feature` files written + their paths.
|
|
182
|
+
- Surface coverage per component (one row per component: surfaces touched / surfaces total).
|
|
183
|
+
- Any components for which the operator must hand-author scenarios (e.g. heavy UI flows the worker could not derive from the map alone) — call these out explicitly.
|
|
184
|
+
- The scenario inventory: per component, the full list of `<feature-file>::<scenario-name>` pairs.
|
|
185
|
+
|
|
186
|
+
### 6. STOP for human sign-off
|
|
187
|
+
|
|
188
|
+
This is the Gherkin-review human gate the calling orchestrator (when one is used) enforces. Print the scenario inventory and wait. Do NOT proceed to Step 7 (Story creation) until the operator signs off on the scenarios. The Gherkin is the executable spec — Stories that bind to it must not be created from un-reviewed scenarios.
|
|
189
|
+
|
|
190
|
+
### 7. Create `[Component tests]` Stories bound to the approved scenarios
|
|
191
|
+
|
|
192
|
+
Once the operator has approved the scenarios (orchestrator passes `--create-stories` or `/gherkin-public` is re-invoked after approval), create one `[Component tests]` Story per (component, surface) pair via the resolved tracker CLI from Phase 0:
|
|
193
|
+
|
|
194
|
+
- **Title:** `[Component tests] <component> · <surface-id>` (e.g. `[Component tests] orders-api · POST /orders`).
|
|
195
|
+
- **Phase tag:** `Phase-4` when the surface is fully reachable at existing seams (per the seam-reachability table in `phase-1.md`); `Phase-5` when one or more scenarios require a `[Refactor-for-testability]` Story.
|
|
196
|
+
- **Predecessor links:**
|
|
197
|
+
- `[Baseline]` for the same component (from Phase 1) — baseline before tests.
|
|
198
|
+
- For Phase-5 Stories, also the matching `[Refactor-for-testability]` Story for any scenario that requires the refactor.
|
|
199
|
+
- **Body — Acceptance Criteria (this is the binding):**
|
|
200
|
+
|
|
201
|
+
```markdown
|
|
202
|
+
## Approved Gherkin scenarios (binding contract)
|
|
203
|
+
|
|
204
|
+
All scenarios below MUST have a passing test in this Story. Each test:
|
|
205
|
+
- cites the source `.feature` file + scenario name in its name or a leading comment;
|
|
206
|
+
- exercises the scenario via the public surface (no internal-step assertions);
|
|
207
|
+
- runs deterministically with no off-machine dependencies (airplane test);
|
|
208
|
+
- lands at the **component** layer per the MinimumCD taxonomy.
|
|
209
|
+
|
|
210
|
+
Source: `features/<workflow>/<surface>.feature`
|
|
211
|
+
|
|
212
|
+
- [ ] `Scenario: <success-path-summary>`
|
|
213
|
+
- [ ] `Scenario: <failure-mode-summary>`
|
|
214
|
+
- [ ] `Scenario: <…>`
|
|
215
|
+
|
|
216
|
+
## Testing approach
|
|
217
|
+
|
|
218
|
+
Binding mode: `<bdd-runner | xunit-with-annotations>` (from Phase 0).
|
|
219
|
+
|
|
220
|
+
- `bdd-runner` — generate step definitions for the scenarios above using the project's BDD runner (cucumber-js / pytest-bdd / behave / cucumber-jvm / SpecFlow / godog). Step definitions go under the project's existing step-defs directory.
|
|
221
|
+
- `xunit-with-annotations` — write one xUnit-style test method per scenario. The test method name SHALL mirror the scenario name (e.g. `Scenario: rejects invalid total` → `test_rejects_invalid_total()` / `RejectsInvalidTotal()` / etc.). The Given / When / Then become structured comments at the top of each test body, citing the feature file path.
|
|
222
|
+
|
|
223
|
+
## Doubles
|
|
224
|
+
|
|
225
|
+
<In-memory doubles for third-party dependencies + local containers / loopback for team-owned infrastructure. No off-machine calls.>
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Record the **scenario → Story-id** map in `.claude/memory/<workflow>/<slug>/gherkin-bindings.json`:
|
|
229
|
+
|
|
230
|
+
```json
|
|
231
|
+
{
|
|
232
|
+
"features/<workflow>/orders-post.feature::accepts valid order": 311,
|
|
233
|
+
"features/<workflow>/orders-post.feature::rejects invalid total": 311,
|
|
234
|
+
"features/<workflow>/orders-get.feature::returns existing order": 312,
|
|
235
|
+
…
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Append the Story creations to `phase-2.md` (one row per Story: title, phase tag, scenario count, tracker-id, predecessors). The map lets the operator confirm at the Phase-2 human sign-off that every Scenario has a Story citing it, and lets `/quality-targets-converge` check for an existing binding before proposing a new component-test Story for a coverage gap it finds later.
|
|
240
|
+
|
|
241
|
+
### 8. Report
|
|
242
|
+
|
|
243
|
+
Print:
|
|
244
|
+
|
|
245
|
+
- Output directory used.
|
|
246
|
+
- N `.feature` files written.
|
|
247
|
+
- Any components flagged for hand-authoring.
|
|
248
|
+
- N `[Component tests]` Stories created with scenario-binding count per Story.
|
|
249
|
+
- The phase-2 progress file path and the `gherkin-bindings.json` path.
|
|
250
|
+
|
|
251
|
+
**Print Step 4b's two Gherkin quality sections — "Agreed Gherkin quality
|
|
252
|
+
findings" and "Single-source (unconfirmed) Gherkin quality findings" —
|
|
253
|
+
distinct from the hand-authoring-flagged-components callout above:** follow
|
|
254
|
+
`knowledge/gherkin-quality-review-dispatch.md`'s Report section format for the
|
|
255
|
+
exact per-finding line format, the zero-findings sentence, and the
|
|
256
|
+
failure-handling wording.
|
|
257
|
+
|
|
258
|
+
## Notes
|
|
259
|
+
|
|
260
|
+
- This skill runs in **two passes**, separated by the Phase-2 human gate:
|
|
261
|
+
1. First pass (Steps 1–6) authors the `.feature` files and stops for sign-off.
|
|
262
|
+
2. Second pass (Step 7), invoked by the orchestrator with `--create-stories` after the operator approves, creates the `[Component tests]` Stories bound to the approved scenarios. Splitting the passes ensures the Stories never reference un-reviewed scenarios.
|
|
263
|
+
- The Stories produced here become the binding contract `/build` consumes in Phase 4 and Phase 5. Each Story's body cites the exact scenarios its tests must satisfy — the component tests are written **from the approved Gherkin**, not from the assessment.
|
|
264
|
+
- `gherkin-bindings.json` is the inverse map (scenario → Story). The operator uses it at the Phase-2 human sign-off to confirm every Scenario in every `.feature` has a Story citing it; `/quality-targets-converge` consults it before proposing a new component-test Story for a coverage gap (see its "Gherkin binding for proposed component tests" step); and `/feature-file-validation` — run automatically by `/code-review` whenever `.feature` files are in the changeset — verifies each `[Component tests]` Story's submitted test code actually references its bound scenarios.
|
|
265
|
+
- For UI patterns where the worker cannot infer the flow from the assessment alone, emit a stub `.feature` with the required header and a `# TODO: hand-author scenarios here` block — better to surface the gap than to invent steps. Stub `.feature` files do NOT generate Stories until the operator fills them in.
|
|
266
|
+
- **Depth-audit finding (issue #1450): no behavior change here.** `/gherkin-derive` was made to mandatorily analyze controllers, handlers, services, domain logic, workflows, validation rules, error handling, and business processes in depth, because it derives scenarios directly from code with no prior analysis pass. This skill does not: Step 1 reads a pre-built component map (`/cd-test-architecture` Phase 1) rather than discovering surfaces itself, so the in-depth analysis this skill's scenarios rely on already happened upstream, in Phase 1 — transplanting `/gherkin-derive`'s directive here would either duplicate that upstream work or silently mask a gap that actually belongs to `/cd-test-architecture`'s own analysis depth (out of this issue's scope; flagged as a possible follow-up for a human to open separately).
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: governance-compliance
|
|
3
|
+
description: Audit logging, quality gates, and ethics procedures for the agent team. Use for periodic compliance reviews, when logging task completion events, or when an ethical concern arises that requires human escalation.
|
|
4
|
+
role: worker
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Governance & Compliance
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Requirements and procedures for audit logging, multi-layer quality assurance, and ethical operation of the agent team. Ensures all agent activity is traceable, quality is validated at multiple levels, and ethical principles are maintained.
|
|
13
|
+
|
|
14
|
+
## Constraints
|
|
15
|
+
|
|
16
|
+
- The audit changelog is append-only; never modify or delete existing entries
|
|
17
|
+
- Never log credentials, API keys, or PII in `.claude/metrics/` or `.claude/memory/` files
|
|
18
|
+
- All agent decisions must be explainable on request — no black-box outputs
|
|
19
|
+
- Ethical concerns are never auto-resolved; always escalate to the human
|
|
20
|
+
|
|
21
|
+
## Audit & Transparency
|
|
22
|
+
|
|
23
|
+
### What Must Be Logged
|
|
24
|
+
|
|
25
|
+
| Event | Log Location | Retention |
|
|
26
|
+
| --- | --- | --- |
|
|
27
|
+
| Task start/completion | `.claude/metrics/{date}-task-log.jsonl` | 90 days |
|
|
28
|
+
| Configuration change | `.claude/metrics/config-changelog.jsonl` | Indefinite |
|
|
29
|
+
| Human approval/override | `.claude/metrics/config-changelog.jsonl` — `proposed`/`evidence_shown`/`risks_surfaced` required (schema: [human-oversight-protocol § Audit trail](../human-oversight-protocol/SKILL.md#audit-trail)) | Indefinite |
|
|
30
|
+
| Hallucination detection | Task log entry (`hallucination_detected` flag) | 90 days |
|
|
31
|
+
| Context summarization | `.claude/memory/{date}-{task-slug}.md` | 90 days (30 active + 60 archive) |
|
|
32
|
+
|
|
33
|
+
### Audit Trail Principles
|
|
34
|
+
|
|
35
|
+
- **Append-only**: Log entries are never modified or deleted
|
|
36
|
+
- **Timestamped**: Every entry has an ISO 8601 timestamp
|
|
37
|
+
- **Attributed**: Every entry identifies which agent acted and who approved
|
|
38
|
+
- **Complete**: No decision-making gap should exist between log entries
|
|
39
|
+
- **Reconstructable**: For every `approval`/`override` gate-decision entry, the
|
|
40
|
+
decision, the proposal, the evidence, and the surfaced risks must all be
|
|
41
|
+
recoverable from the entry alone — see [human-oversight-protocol § Audit trail](../human-oversight-protocol/SKILL.md#audit-trail)
|
|
42
|
+
for the field schema. Entries predating this schema (no `proposed`/`evidence_shown`/
|
|
43
|
+
`risks_surfaced`) remain valid — never migrated — and are not reconstructable
|
|
44
|
+
to this standard; treat them as historical, not as a compliance gap.
|
|
45
|
+
|
|
46
|
+
### Compliance Queries
|
|
47
|
+
|
|
48
|
+
To answer "why did the system do X?", trace through:
|
|
49
|
+
|
|
50
|
+
1. Task log: which agents were involved
|
|
51
|
+
2. Config changelog: what configuration was active at the time
|
|
52
|
+
3. Memory summaries: what context the agents were working with
|
|
53
|
+
|
|
54
|
+
For a gate decision specifically ("what was this approval/override based on?"),
|
|
55
|
+
also check gate-record completeness: does the `approval`/`override` entry carry
|
|
56
|
+
`proposed`, `evidence_shown`, and `risks_surfaced`? An entry missing all three is
|
|
57
|
+
either a pre-schema entry (acceptable) or a write site that skipped the schema
|
|
58
|
+
(a gap — see human-oversight-protocol's Audit trail for the required write
|
|
59
|
+
sites).
|
|
60
|
+
|
|
61
|
+
## Quality Assurance
|
|
62
|
+
|
|
63
|
+
### Multi-Layer Validation
|
|
64
|
+
|
|
65
|
+
Quality is enforced at four progressive layers:
|
|
66
|
+
|
|
67
|
+
#### Layer 1: Agent Self-Validation
|
|
68
|
+
|
|
69
|
+
- Every agent applies the [Quality Gate Pipeline](../quality-gate-pipeline/SKILL.md) before delivering output
|
|
70
|
+
- Confidence scoring on all major claims
|
|
71
|
+
- Tool-based verification for factual claims (file paths, APIs, data)
|
|
72
|
+
|
|
73
|
+
#### Layer 2: QA Agent Validation
|
|
74
|
+
|
|
75
|
+
When applicable (code generation, data analysis, architecture changes):
|
|
76
|
+
|
|
77
|
+
- QA agent reviews output against acceptance criteria
|
|
78
|
+
- Automated test generation and execution for code
|
|
79
|
+
- Consistency checks against existing codebase
|
|
80
|
+
|
|
81
|
+
#### Layer 3: Human Spot-Check
|
|
82
|
+
|
|
83
|
+
- User reviews delivered output
|
|
84
|
+
- Feedback captured via accept/reject/amend
|
|
85
|
+
- Patterns in rejections feed back through [Feedback & Learning](../feedback-learning/SKILL.md)
|
|
86
|
+
|
|
87
|
+
#### Layer 4: Post-Hoc Monitoring
|
|
88
|
+
|
|
89
|
+
- Orchestrator reviews task metrics during learning loop
|
|
90
|
+
- Identifies trends: rising rework rate, hallucination frequency, cost outliers
|
|
91
|
+
- Triggers configuration amendments when patterns emerge (minimum 3 occurrences)
|
|
92
|
+
|
|
93
|
+
### Quality Gates
|
|
94
|
+
|
|
95
|
+
No task output is delivered until it passes applicable quality gates:
|
|
96
|
+
|
|
97
|
+
| Task Type | Required Gates |
|
|
98
|
+
| --- | --- |
|
|
99
|
+
| Code implementation | Self-validation + QA review (if available) |
|
|
100
|
+
| Architecture design | Self-validation + human approval |
|
|
101
|
+
| Documentation | Self-validation + terminology consistency check |
|
|
102
|
+
| Bug fix | Self-validation + regression test |
|
|
103
|
+
| Data analysis | Self-validation + statistical validation |
|
|
104
|
+
|
|
105
|
+
## Ethics & Responsibility
|
|
106
|
+
|
|
107
|
+
### Core Principles
|
|
108
|
+
|
|
109
|
+
1. **Human accountability**: Humans are ultimately responsible for all outputs. Agents assist and recommend; humans decide and own.
|
|
110
|
+
2. **Explainability**: Every agent decision must be explainable. No "black box" outputs. When asked why, the agent must provide rationale.
|
|
111
|
+
3. **Bias awareness**: Agents must flag when their output may be influenced by training biases, especially in:
|
|
112
|
+
- Technology recommendations (may favor popular over appropriate)
|
|
113
|
+
- Estimation (may anchor to common patterns)
|
|
114
|
+
- Design decisions (may default to familiar architectures)
|
|
115
|
+
4. **Privacy**: Agents must not log, store, or transmit sensitive data (credentials, PII, API keys) in metrics or memory files.
|
|
116
|
+
5. **Proportionality**: Agent autonomy should match the risk level of the task. Higher risk = more human oversight.
|
|
117
|
+
|
|
118
|
+
### Sensitive Data Handling
|
|
119
|
+
|
|
120
|
+
| Data Type | Rule |
|
|
121
|
+
| --- | --- |
|
|
122
|
+
| Credentials, API keys | Never log, never store in .claude/memory/ or .claude/metrics/ |
|
|
123
|
+
| PII (names, emails, etc.) | Do not include in metrics entries or summaries |
|
|
124
|
+
| Business-sensitive data | Minimize in summaries; use references to source files instead |
|
|
125
|
+
| Source code | May be included in summaries when relevant to task continuity |
|
|
126
|
+
|
|
127
|
+
### When Ethical Concerns Arise
|
|
128
|
+
|
|
129
|
+
1. Agent identifies the concern and pauses
|
|
130
|
+
2. Flags to Orchestrator with: what the concern is, why it matters, what the options are
|
|
131
|
+
3. Orchestrator escalates to human (always - ethical concerns are never auto-resolved)
|
|
132
|
+
4. Human decides
|
|
133
|
+
5. Decision is logged with full rationale
|
|
134
|
+
|
|
135
|
+
## Output
|
|
136
|
+
|
|
137
|
+
Compliance checklist results (pass/fail per item) and/or new audit log entries written to `.claude/metrics/`. Be concise — report failures and entries written; omit passing items.
|
|
138
|
+
|
|
139
|
+
## Compliance Checklist
|
|
140
|
+
|
|
141
|
+
For periodic review (monthly recommended):
|
|
142
|
+
|
|
143
|
+
- [ ] All tasks in the review period have corresponding log entries
|
|
144
|
+
- [ ] No gaps in the config changelog
|
|
145
|
+
- [ ] Gate-record completeness: `approval`/`override` entries from this period carry `proposed`/`evidence_shown`/`risks_surfaced` (pre-schema entries are exempt, not counted as gaps)
|
|
146
|
+
- [ ] Memory summaries exist for long-running tasks
|
|
147
|
+
- [ ] No sensitive data present in .claude/metrics/ or .claude/memory/ files
|
|
148
|
+
- [ ] Hallucination rate reviewed qualitatively (no sensor yet — see CLAUDE.md "Claims discipline")
|
|
149
|
+
- [ ] Rework rate trend is stable or improving
|
|
150
|
+
- [ ] All human overrides have been reviewed for systemic issues
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: guard
|
|
3
|
+
description: >-
|
|
4
|
+
Activate both careful mode and freeze mode together. Blocks destructive
|
|
5
|
+
commands and scope-locks editing to the specified pattern. Use for
|
|
6
|
+
production-critical debugging sessions.
|
|
7
|
+
argument-hint: "<glob-pattern>"
|
|
8
|
+
user-invocable: true
|
|
9
|
+
allowed-tools: Write, Read
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Guard
|
|
13
|
+
|
|
14
|
+
Role: worker. Combined safety mode: careful + freeze.
|
|
15
|
+
|
|
16
|
+
You have been invoked with the `/guard` command.
|
|
17
|
+
|
|
18
|
+
## Worker constraints
|
|
19
|
+
|
|
20
|
+
1. Compose /careful + /freeze; introduce no new blocking behavior.
|
|
21
|
+
2. Do not edit source.
|
|
22
|
+
3. **Be concise.** Confirm both modes in one line each.
|
|
23
|
+
|
|
24
|
+
## Parse Arguments
|
|
25
|
+
|
|
26
|
+
Arguments: $ARGUMENTS
|
|
27
|
+
|
|
28
|
+
- Positional: `<glob-pattern>` (required) — glob pattern for files that ARE allowed to be edited
|
|
29
|
+
|
|
30
|
+
If no pattern is provided, display usage and exit:
|
|
31
|
+
> Usage: `/guard <glob-pattern>`
|
|
32
|
+
> Example: `/guard src/auth/**` — blocks destructive commands AND limits edits to `src/auth/`.
|
|
33
|
+
> Use `/careful off` and `/unfreeze` separately to disable, or pass `off` to disable both.
|
|
34
|
+
|
|
35
|
+
If argument is `off`:
|
|
36
|
+
|
|
37
|
+
1. Remove `.claude/hooks/careful-state.json` and `.claude/hooks/freeze-state.json`
|
|
38
|
+
2. Display: "Guard mode OFF. All safety restrictions lifted."
|
|
39
|
+
|
|
40
|
+
## Steps
|
|
41
|
+
|
|
42
|
+
### 1. Enable careful mode
|
|
43
|
+
|
|
44
|
+
Write to `.claude/hooks/careful-state.json` (repo-scoped — see the `/careful`
|
|
45
|
+
skill's Notes for why this is not `hooks/careful-state.json`; issue #1900):
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"active": true,
|
|
50
|
+
"enabled_at": "<ISO timestamp>"
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 2. Enable freeze mode
|
|
55
|
+
|
|
56
|
+
Write to `.claude/hooks/freeze-state.json` (repo-scoped — see the `/freeze`
|
|
57
|
+
skill's Notes for why this is not `hooks/freeze-state.json`; issue #1890):
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"active": true,
|
|
62
|
+
"allowed_patterns": ["<glob-pattern>"],
|
|
63
|
+
"frozen_at": "<ISO timestamp>"
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 3. Confirm
|
|
68
|
+
|
|
69
|
+
Display:
|
|
70
|
+
> Guard mode ON.
|
|
71
|
+
>
|
|
72
|
+
> - Destructive commands: BLOCKED
|
|
73
|
+
> - File editing: Locked to `<pattern>`
|
|
74
|
+
>
|
|
75
|
+
> Use `/guard off` to disable both, or `/careful off` / `/unfreeze` individually.
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: handoff
|
|
3
|
+
description: Compress or split off context for another session to pick up. Use to compress conversation history when context utilization approaches 40% (continue mode), or to split off a distinguishable out-of-scope side-task to an independent session (fork mode) — write a structured artifact for the other session and free the current one.
|
|
4
|
+
role: orchestrator
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Handoff
|
|
9
|
+
|
|
10
|
+
One skill, two modes, for getting structured context to another session instead of replaying history:
|
|
11
|
+
|
|
12
|
+
- **Continue mode** — compress *this* task's history so the *same* task can keep going past the context ceiling, in a fresh window.
|
|
13
|
+
- **Fork mode** — split off a distinguishable, out-of-scope side-task into an *independent* session (a parallel sibling, or a child that later hands learnings back), without diluting or compacting the current session's context.
|
|
14
|
+
|
|
15
|
+
Both modes apply the same Three Gates (below) to decide what to keep, compress, and discard — that logic is written once and shared by both modes.
|
|
16
|
+
|
|
17
|
+
## Mode Selection
|
|
18
|
+
|
|
19
|
+
Keyed off whether a **stated purpose** exists for an independent/fresh session:
|
|
20
|
+
|
|
21
|
+
| Signal | Mode |
|
|
22
|
+
| --- | --- |
|
|
23
|
+
| No stated purpose — continuing the current task past the ceiling | **Continue** (default, unchanged behavior) |
|
|
24
|
+
| A stated purpose for a distinguishable, out-of-scope side-task | **Fork** |
|
|
25
|
+
| Ambiguous — unclear whether this is the same task or a split-off | Ask: "Continue this task in a fresh window, or split off unrelated work to an independent session?" |
|
|
26
|
+
|
|
27
|
+
## Constraints
|
|
28
|
+
|
|
29
|
+
- Summaries/handoff artifacts replace conversation history; never reload prior turns
|
|
30
|
+
- Never include credentials, PII, or other sensitive data in written output — see Redaction below
|
|
31
|
+
- Output must be sufficient for the receiving session to start without replaying history
|
|
32
|
+
|
|
33
|
+
## The Three Gates
|
|
34
|
+
|
|
35
|
+
Apply in order to all context older than the last 3-5 turns, in both modes:
|
|
36
|
+
|
|
37
|
+
### 1. Forget Gate -- Discard
|
|
38
|
+
|
|
39
|
+
- Exploratory dead ends and rejected approaches
|
|
40
|
+
- Verbose tool outputs where only the conclusion matters
|
|
41
|
+
- Superseded decisions
|
|
42
|
+
- Debugging steps for resolved issues
|
|
43
|
+
|
|
44
|
+
### 2. Input Gate -- Preserve
|
|
45
|
+
|
|
46
|
+
- Current task definition and acceptance criteria
|
|
47
|
+
- Active architectural decisions and rationale
|
|
48
|
+
- Unresolved questions or blockers
|
|
49
|
+
- File paths and line numbers being worked on
|
|
50
|
+
- User preferences and feedback from this session
|
|
51
|
+
|
|
52
|
+
### 3. Output Gate -- Keep Verbatim
|
|
53
|
+
|
|
54
|
+
- Last 3-5 conversation turns
|
|
55
|
+
- Code actively being modified
|
|
56
|
+
- Error messages being debugged
|
|
57
|
+
- Current agent persona and skill guidelines (if loaded)
|
|
58
|
+
|
|
59
|
+
## Redaction
|
|
60
|
+
|
|
61
|
+
Before writing any output in either mode, redact secrets, API keys, tokens, and PII from the content. Fork-mode output leaves the repo-adjacent trust boundary (an OS temp dir another session reads), so redaction is mandatory there. Continue-mode output stays under `.claude/memory/` inside the repo, but apply the same redaction pass for consistency — a secret that shouldn't be in conversation history shouldn't be in a committed-adjacent file either.
|
|
62
|
+
|
|
63
|
+
## Continue Mode
|
|
64
|
+
|
|
65
|
+
Compress conversation history to keep context utilization below 40% while continuing the *same* task in a fresh window.
|
|
66
|
+
|
|
67
|
+
### When to Summarize
|
|
68
|
+
|
|
69
|
+
`/handoff` is manual: nothing forces or blocks on it. Reach for it when a
|
|
70
|
+
deliberate, structured summary beats the harness's generic compaction:
|
|
71
|
+
|
|
72
|
+
- before a long phase ends, so the next phase starts from a reviewable
|
|
73
|
+
`.claude/memory/` file rather than replayed history;
|
|
74
|
+
- when you notice the session is heavy (many file reads accumulated, turn
|
|
75
|
+
count above about 40, degraded output quality) and want to choose what
|
|
76
|
+
survives;
|
|
77
|
+
- before a planned break in the work.
|
|
78
|
+
|
|
79
|
+
The harness compacts on its own at the percentage `/dev-team:setup` configures
|
|
80
|
+
(default 40%); a `/handoff` summary written first is the structured
|
|
81
|
+
alternative to that generic summary.
|
|
82
|
+
|
|
83
|
+
**Measuring utilization**: `utilization = (input + cache_read + cache_creation) / model_context_window`, from the most recent assistant-message usage in the session transcript.
|
|
84
|
+
|
|
85
|
+
**Why 40%, not a higher number**: see [Context Loading Protocol → Why 40%](../context-loading-protocol/SKILL.md#why-40).
|
|
86
|
+
|
|
87
|
+
### Writing Summaries
|
|
88
|
+
|
|
89
|
+
- **Destination**: `.claude/memory/{date}-{task-slug}.md`
|
|
90
|
+
- **Scope**: full relevant history for the task
|
|
91
|
+
- **Requires**: nothing extra — the task is already known
|
|
92
|
+
|
|
93
|
+
Write the summary using the Task Summary template in `references/summary-templates.md`.
|
|
94
|
+
|
|
95
|
+
### Phase Progress Files
|
|
96
|
+
|
|
97
|
+
Each phase produces a progress file that onboards the next phase's agent without replaying history. Write the progress file using the appropriate phase template (Research, Plan, or Implementation) from `references/summary-templates.md`.
|
|
98
|
+
|
|
99
|
+
### Using Summaries in New Conversations
|
|
100
|
+
|
|
101
|
+
1. Read the most recent summary from `.claude/memory/`
|
|
102
|
+
2. Load only **Key Context for Continuation** into active context
|
|
103
|
+
3. Load referenced files on demand, not upfront
|
|
104
|
+
4. Do NOT reload full conversation history -- the summary replaces it
|
|
105
|
+
|
|
106
|
+
### Cleanup (Time-Based)
|
|
107
|
+
|
|
108
|
+
1. Archive summaries older than 30 days to `.claude/memory/archive/`
|
|
109
|
+
2. Delete archived summaries older than 90 days
|
|
110
|
+
3. Consolidate multiple summaries for the same task into one
|
|
111
|
+
|
|
112
|
+
## Fork Mode
|
|
113
|
+
|
|
114
|
+
Split off a distinguishable, out-of-scope side-task into an independent session — a sibling running in parallel, or a child (e.g. a prototype session) that later hands learnings back — without diluting or compacting the current session.
|
|
115
|
+
|
|
116
|
+
### Requires a Stated Purpose
|
|
117
|
+
|
|
118
|
+
Fork mode always needs a one-line purpose describing the side-task. If the user hasn't stated one, ask for it before writing anything — an unpurposed fork artifact can't be scoped correctly by the Forget/Input/Output gates above.
|
|
119
|
+
|
|
120
|
+
### Writing the Fork Artifact
|
|
121
|
+
|
|
122
|
+
- **Destination**: the OS temp dir (e.g. `$TMPDIR` or the platform default), never `.claude/memory/` — the artifact is disposable and not part of the repo's durable history
|
|
123
|
+
- **Scope**: just the slice of context relevant to the stated purpose, not the full session history
|
|
124
|
+
- **Naming**: `{tmpdir}/handoff-{purpose-slug}-{date}.md`
|
|
125
|
+
|
|
126
|
+
Use the **Fork Handoff** template in `references/summary-templates.md`, which adds these sections beyond the Task Summary:
|
|
127
|
+
|
|
128
|
+
- **Suggested Skills** — skills the receiving session likely needs loaded for the stated purpose, so it doesn't have to rediscover them.
|
|
129
|
+
- **Pointers, not duplication** — link to or cite content that already exists in other artifacts (files, prior summaries, design docs) instead of copying it into the fork doc. The fork doc should compose with existing artifacts, not fork a second copy of them.
|
|
130
|
+
- **Hand-back** (when the fork will report results back to this session) — what the parent session needs from the child when it's done: a short result summary and pointers to what changed, in a shape the parent can merge without replaying the child's history.
|
|
131
|
+
|
|
132
|
+
### Cleanup (Event-Based, Never Time-Based)
|
|
133
|
+
|
|
134
|
+
Fork-mode artifacts are deleted **on consumption**, not on a schedule:
|
|
135
|
+
|
|
136
|
+
- The receiving session merges its result back into the parent — delete the fork artifact once the merge is confirmed.
|
|
137
|
+
- The parent session reads a hand-back doc from a completed child — delete the hand-back doc once it has been read.
|
|
138
|
+
|
|
139
|
+
Never apply the continue-mode 30/90-day time-based cleanup to fork-mode output — an unconsumed fork artifact should persist until it's actually picked up, and a consumed one should not linger waiting for a sweep.
|