hatch3r 1.9.0 → 2.0.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/README.md +52 -143
- package/dist/cli/index.js +28453 -15831
- package/dist/content/agents/hatch3r-architect.md +39 -9
- package/dist/content/agents/hatch3r-brownfield-spec.md +254 -0
- package/dist/content/agents/hatch3r-ci-watcher.md +8 -1
- package/dist/content/agents/hatch3r-context-rules.md +19 -1
- package/dist/content/agents/hatch3r-creator.md +65 -26
- package/dist/content/agents/hatch3r-dependency-drafter.md +162 -0
- package/dist/content/agents/hatch3r-devops.md +11 -1
- package/dist/content/agents/hatch3r-docs-writer.md +11 -1
- package/dist/content/agents/hatch3r-edge-case-analyst.md +134 -0
- package/dist/content/agents/hatch3r-enhancability.md +192 -0
- package/dist/content/agents/hatch3r-fixer.md +59 -8
- package/dist/content/agents/hatch3r-greenfield-spec.md +256 -0
- package/dist/content/agents/hatch3r-handoff-loader.md +29 -3
- package/dist/content/agents/hatch3r-handoff-preparer.md +10 -1
- package/dist/content/agents/hatch3r-implementer.md +139 -8
- package/dist/content/agents/hatch3r-incident-responder.md +96 -0
- package/dist/content/agents/hatch3r-learnings-loader.md +122 -88
- package/dist/content/agents/hatch3r-lint-fixer.md +15 -3
- package/dist/content/agents/hatch3r-maintainability.md +183 -0
- package/dist/content/agents/hatch3r-pack-installer.md +113 -0
- package/dist/content/agents/hatch3r-performance.md +179 -0
- package/dist/content/agents/hatch3r-reliability.md +193 -0
- package/dist/content/agents/hatch3r-researcher.md +27 -4
- package/dist/content/agents/hatch3r-reviewer.md +153 -103
- package/dist/content/agents/hatch3r-scalability.md +162 -0
- package/dist/content/agents/hatch3r-security.md +197 -0
- package/dist/content/agents/hatch3r-testability.md +204 -0
- package/dist/content/agents/hatch3r-ui.md +175 -0
- package/dist/content/agents/hatch3r-ux.md +160 -0
- package/dist/content/agents/modes/requirements-elicitation.md +1 -1
- package/dist/content/agents/modes/user-flows.md +2 -2
- package/dist/content/agents/shared/clarification-default-block.md +44 -0
- package/dist/content/agents/shared/confidence-gate.md +42 -0
- package/dist/content/agents/shared/cq-specialist-roster.md +26 -0
- package/dist/content/agents/shared/efficiency-patterns.md +32 -1
- package/dist/content/agents/shared/injection-patterns.md +18 -7
- package/dist/content/agents/shared/principles.md +60 -0
- package/dist/content/agents/shared/prompt-structure.md +7 -1
- package/dist/content/agents/shared/quality-charter.md +48 -12
- package/dist/content/agents/shared/quality-specialist-frame.md +141 -0
- package/dist/content/agents/shared/rigor-contract.md +151 -0
- package/dist/content/agents/shared/severity-mapping.md +92 -0
- package/dist/content/agents/shared/triage-vocabulary.md +46 -0
- package/dist/content/agents/shared/user-content-templates.md +34 -8
- package/dist/content/agents/shared/user-question-protocol.md +45 -3
- package/dist/content/checks/README.md +5 -0
- package/dist/content/checks/accessibility.md +14 -7
- package/dist/content/checks/code-quality.md +1 -1
- package/dist/content/checks/performance.md +7 -4
- package/dist/content/checks/security.md +6 -6
- package/dist/content/checks/testing.md +1 -1
- package/dist/content/commands/board/pickup-delegation-multi.md +37 -10
- package/dist/content/commands/board/pickup-delegation.md +7 -5
- package/dist/content/commands/board/pickup-modes.md +1 -0
- package/dist/content/commands/board/pickup-post-impl.md +1 -1
- package/dist/content/commands/hatch3r-api-spec.md +79 -2
- package/dist/content/commands/hatch3r-auth-scaffold.md +250 -0
- package/dist/content/commands/hatch3r-benchmark.md +90 -7
- package/dist/content/commands/hatch3r-board-fill.md +97 -11
- package/dist/content/commands/hatch3r-board-pickup.md +93 -9
- package/dist/content/commands/hatch3r-bug-pipeline.md +240 -0
- package/dist/content/commands/hatch3r-bug-plan.md +79 -3
- package/dist/content/commands/hatch3r-codebase-map.md +80 -4
- package/dist/content/commands/hatch3r-create.md +105 -7
- package/dist/content/commands/hatch3r-debug.md +102 -14
- package/dist/content/commands/hatch3r-diagnose.md +238 -0
- package/dist/content/commands/hatch3r-feature-plan.md +125 -5
- package/dist/content/commands/hatch3r-handoff.md +83 -3
- package/dist/content/commands/hatch3r-healthcheck.md +105 -5
- package/dist/content/commands/hatch3r-incident-response.md +228 -0
- package/dist/content/commands/hatch3r-migration-plan.md +79 -3
- package/dist/content/commands/hatch3r-onboard.md +94 -3
- package/dist/content/commands/hatch3r-pack-install.md +243 -0
- package/dist/content/commands/hatch3r-pr-resolve.md +106 -23
- package/dist/content/commands/hatch3r-project-spec.md +82 -6
- package/dist/content/commands/hatch3r-quick-change.md +108 -13
- package/dist/content/commands/hatch3r-refactor-plan.md +78 -2
- package/dist/content/commands/hatch3r-release.md +401 -0
- package/dist/content/commands/hatch3r-revision.md +98 -12
- package/dist/content/commands/hatch3r-roadmap.md +92 -10
- package/dist/content/commands/hatch3r-security-audit.md +105 -5
- package/dist/content/commands/hatch3r-slo-scaffold.md +246 -0
- package/dist/content/commands/hatch3r-spec.md +216 -0
- package/dist/content/commands/hatch3r-test-plan.md +85 -9
- package/dist/content/commands/hatch3r-workflow.md +165 -41
- package/dist/content/commands/revision/revision-delegation.md +6 -5
- package/dist/content/commands/revision/revision-modes.md +49 -4
- package/dist/content/commands/revision/revision-quality.md +10 -7
- package/dist/content/commands/shared/orchestration-frame.md +119 -0
- package/dist/content/github-agents/hatch3r-docs-agent.md +21 -1
- package/dist/content/github-agents/hatch3r-lint-agent.md +21 -1
- package/dist/content/github-agents/hatch3r-security-agent.md +21 -1
- package/dist/content/github-agents/hatch3r-test-agent.md +21 -1
- package/dist/content/hooks/hatch3r-file-save.md +1 -1
- package/dist/content/hooks/hatch3r-pre-push.md +4 -4
- package/dist/content/hooks/hatch3r-review-loop-cap.md +52 -0
- package/dist/content/mcp/mcp.json +7 -5
- package/dist/content/rules/hatch3r-accessibility-standards.md +14 -2
- package/dist/content/rules/hatch3r-accessibility-standards.mdc +12 -1
- package/dist/content/rules/hatch3r-agent-orchestration-detail.md +58 -19
- package/dist/content/rules/hatch3r-agent-orchestration-detail.mdc +58 -19
- package/dist/content/rules/hatch3r-agent-orchestration.md +87 -213
- package/dist/content/rules/hatch3r-agent-orchestration.mdc +87 -213
- package/dist/content/rules/hatch3r-ai-evals.md +5 -4
- package/dist/content/rules/hatch3r-ai-evals.mdc +3 -3
- package/dist/content/rules/hatch3r-ai-ux-patterns.md +6 -2
- package/dist/content/rules/hatch3r-ai-ux-patterns.mdc +4 -1
- package/dist/content/rules/hatch3r-android-patterns.md +107 -0
- package/dist/content/rules/hatch3r-android-patterns.mdc +102 -0
- package/dist/content/rules/hatch3r-anti-duplication.md +115 -0
- package/dist/content/rules/hatch3r-anti-duplication.mdc +115 -0
- package/dist/content/rules/hatch3r-api-design.md +5 -1
- package/dist/content/rules/hatch3r-api-design.mdc +3 -0
- package/dist/content/rules/hatch3r-api-versioning.md +2 -1
- package/dist/content/rules/hatch3r-auth-patterns.md +3 -1
- package/dist/content/rules/hatch3r-auth-patterns.mdc +1 -0
- package/dist/content/rules/hatch3r-browser-verification.md +2 -0
- package/dist/content/rules/hatch3r-browser-verification.mdc +2 -0
- package/dist/content/rules/hatch3r-capability-matrix.md +108 -0
- package/dist/content/rules/hatch3r-capability-matrix.mdc +108 -0
- package/dist/content/rules/hatch3r-ci-cd.md +8 -1
- package/dist/content/rules/hatch3r-ci-cd.mdc +6 -0
- package/dist/content/rules/hatch3r-clarification-default.md +73 -0
- package/dist/content/rules/hatch3r-clarification-default.mdc +73 -0
- package/dist/content/rules/hatch3r-code-standards.md +23 -47
- package/dist/content/rules/hatch3r-code-standards.mdc +22 -46
- package/dist/content/rules/hatch3r-component-conventions.md +3 -0
- package/dist/content/rules/hatch3r-component-conventions.mdc +3 -0
- package/dist/content/rules/hatch3r-container-hardening.md +11 -2
- package/dist/content/rules/hatch3r-container-hardening.mdc +9 -1
- package/dist/content/rules/hatch3r-contract-testing.md +2 -1
- package/dist/content/rules/hatch3r-cost-visibility.md +135 -0
- package/dist/content/rules/hatch3r-cost-visibility.mdc +135 -0
- package/dist/content/rules/hatch3r-cq-rule-frame.md +54 -0
- package/dist/content/rules/hatch3r-cq-rule-frame.mdc +49 -0
- package/dist/content/rules/hatch3r-data-classification.md +3 -1
- package/dist/content/rules/hatch3r-data-classification.mdc +2 -1
- package/dist/content/rules/hatch3r-deep-context.md +13 -13
- package/dist/content/rules/hatch3r-deep-context.mdc +13 -13
- package/dist/content/rules/hatch3r-dependency-management.md +16 -3
- package/dist/content/rules/hatch3r-dependency-management.mdc +15 -3
- package/dist/content/rules/hatch3r-design-system-detection.md +2 -1
- package/dist/content/rules/hatch3r-dotnet-patterns.md +104 -0
- package/dist/content/rules/hatch3r-dotnet-patterns.mdc +99 -0
- package/dist/content/rules/hatch3r-edge-case-discipline.md +65 -0
- package/dist/content/rules/hatch3r-edge-case-discipline.mdc +65 -0
- package/dist/content/rules/hatch3r-enhancability.md +147 -0
- package/dist/content/rules/hatch3r-enhancability.mdc +142 -0
- package/dist/content/rules/hatch3r-event-schema-evolution.md +2 -1
- package/dist/content/rules/hatch3r-fan-out-discipline.md +91 -0
- package/dist/content/rules/hatch3r-fan-out-discipline.mdc +91 -0
- package/dist/content/rules/hatch3r-feature-flags.md +2 -0
- package/dist/content/rules/hatch3r-feature-flags.mdc +2 -0
- package/dist/content/rules/hatch3r-flutter-patterns.md +88 -0
- package/dist/content/rules/hatch3r-flutter-patterns.mdc +83 -0
- package/dist/content/rules/hatch3r-git-conventions.md +4 -1
- package/dist/content/rules/hatch3r-git-conventions.mdc +2 -0
- package/dist/content/rules/hatch3r-go-patterns.md +98 -0
- package/dist/content/rules/hatch3r-go-patterns.mdc +93 -0
- package/dist/content/rules/hatch3r-handoff-readiness.md +10 -0
- package/dist/content/rules/hatch3r-handoff-readiness.mdc +10 -0
- package/dist/content/rules/hatch3r-i18n.md +2 -0
- package/dist/content/rules/hatch3r-i18n.mdc +2 -0
- package/dist/content/rules/hatch3r-iteration-summary.md +75 -57
- package/dist/content/rules/hatch3r-iteration-summary.mdc +77 -54
- package/dist/content/rules/hatch3r-learning-system.md +202 -0
- package/dist/content/rules/hatch3r-learning-system.mdc +202 -0
- package/dist/content/rules/hatch3r-maintainability.md +157 -0
- package/dist/content/rules/hatch3r-maintainability.mdc +152 -0
- package/dist/content/rules/hatch3r-migrations.md +2 -1
- package/dist/content/rules/hatch3r-observability-logging.md +1 -1
- package/dist/content/rules/hatch3r-observability-metrics.md +1 -1
- package/dist/content/rules/hatch3r-observability-tracing.md +45 -36
- package/dist/content/rules/hatch3r-observability-tracing.mdc +44 -35
- package/dist/content/rules/hatch3r-operability.md +2 -1
- package/dist/content/rules/hatch3r-passkey-server.md +2 -1
- package/dist/content/rules/hatch3r-performance-budgets.md +2 -0
- package/dist/content/rules/hatch3r-performance-budgets.mdc +2 -0
- package/dist/content/rules/hatch3r-php-laravel-patterns.md +109 -0
- package/dist/content/rules/hatch3r-php-laravel-patterns.mdc +104 -0
- package/dist/content/rules/hatch3r-progressive-delivery.md +5 -1
- package/dist/content/rules/hatch3r-progressive-delivery.mdc +3 -0
- package/dist/content/rules/hatch3r-proof-model.md +131 -0
- package/dist/content/rules/hatch3r-proof-model.mdc +131 -0
- package/dist/content/rules/hatch3r-python-patterns.md +70 -0
- package/dist/content/rules/hatch3r-python-patterns.mdc +65 -0
- package/dist/content/rules/hatch3r-react-native-patterns.md +83 -0
- package/dist/content/rules/hatch3r-react-native-patterns.mdc +78 -0
- package/dist/content/rules/hatch3r-resilience-patterns.md +2 -1
- package/dist/content/rules/hatch3r-reviewer-calibration.md +84 -0
- package/dist/content/rules/hatch3r-reviewer-calibration.mdc +84 -0
- package/dist/content/rules/hatch3r-right-sizing.md +68 -0
- package/dist/content/rules/hatch3r-right-sizing.mdc +66 -0
- package/dist/content/rules/hatch3r-ruby-rails-patterns.md +111 -0
- package/dist/content/rules/hatch3r-ruby-rails-patterns.mdc +106 -0
- package/dist/content/rules/hatch3r-rust-patterns.md +107 -0
- package/dist/content/rules/hatch3r-rust-patterns.mdc +102 -0
- package/dist/content/rules/hatch3r-scalability.md +137 -0
- package/dist/content/rules/hatch3r-scalability.mdc +132 -0
- package/dist/content/rules/hatch3r-secrets-management.md +10 -1
- package/dist/content/rules/hatch3r-secrets-management.mdc +8 -0
- package/dist/content/rules/hatch3r-security-patterns.md +36 -34
- package/dist/content/rules/hatch3r-security-patterns.mdc +35 -34
- package/dist/content/rules/hatch3r-security.md +97 -0
- package/dist/content/rules/hatch3r-security.mdc +92 -0
- package/dist/content/rules/hatch3r-swiftui-patterns.md +98 -0
- package/dist/content/rules/hatch3r-swiftui-patterns.mdc +93 -0
- package/dist/content/rules/hatch3r-testability.md +115 -0
- package/dist/content/rules/hatch3r-testability.mdc +110 -0
- package/dist/content/rules/hatch3r-testing.md +4 -1
- package/dist/content/rules/hatch3r-testing.mdc +2 -0
- package/dist/content/rules/hatch3r-theming.md +2 -0
- package/dist/content/rules/hatch3r-theming.mdc +2 -0
- package/dist/content/rules/hatch3r-tool-currency.md +91 -0
- package/dist/content/rules/hatch3r-tool-currency.mdc +86 -0
- package/dist/content/rules/hatch3r-tooling-hierarchy.md +29 -31
- package/dist/content/rules/hatch3r-tooling-hierarchy.mdc +27 -30
- package/dist/content/rules/hatch3r-typescript-patterns.md +58 -0
- package/dist/content/rules/hatch3r-typescript-patterns.mdc +53 -0
- package/dist/content/rules/hatch3r-ux-states-and-flows.md +11 -4
- package/dist/content/rules/hatch3r-ux-states-and-flows.mdc +9 -3
- package/dist/content/skills/hatch3r-a11y-audit/SKILL.md +10 -8
- package/dist/content/skills/hatch3r-a11y-audit/references/manual-audit-checklist.md +7 -5
- package/dist/content/skills/hatch3r-adhoc-orchestrate/SKILL.md +131 -0
- package/dist/content/skills/hatch3r-ai-feature/SKILL.md +4 -6
- package/dist/content/skills/hatch3r-api-spec/SKILL.md +27 -2
- package/dist/content/skills/hatch3r-architecture-review/SKILL.md +4 -7
- package/dist/content/skills/hatch3r-board-groom/SKILL.md +11 -0
- package/dist/content/skills/hatch3r-board-init/SKILL.md +17 -1
- package/dist/content/skills/hatch3r-board-refresh/SKILL.md +12 -1
- package/dist/content/skills/hatch3r-board-shared/SKILL.md +38 -1
- package/dist/content/skills/hatch3r-browser-verify/SKILL.md +307 -0
- package/dist/content/skills/hatch3r-bug-fix/SKILL.md +15 -2
- package/dist/content/skills/hatch3r-ci-pipeline/SKILL.md +17 -7
- package/dist/content/skills/hatch3r-cli-fd/SKILL.md +33 -1
- package/dist/content/skills/hatch3r-cli-fzf/SKILL.md +33 -1
- package/dist/content/skills/hatch3r-cli-gh/SKILL.md +50 -1
- package/dist/content/skills/hatch3r-cli-jq/SKILL.md +40 -6
- package/dist/content/skills/hatch3r-cli-ripgrep/SKILL.md +33 -1
- package/dist/content/skills/hatch3r-cli-toolbox/SKILL.md +130 -23
- package/dist/content/skills/hatch3r-containerize/SKILL.md +157 -0
- package/dist/content/skills/hatch3r-context-health/SKILL.md +9 -7
- package/dist/content/skills/hatch3r-cost-tracking/SKILL.md +37 -17
- package/dist/content/skills/hatch3r-customize/SKILL.md +5 -8
- package/dist/content/skills/hatch3r-dep-audit/SKILL.md +23 -7
- package/dist/content/skills/hatch3r-design-system-detect/SKILL.md +3 -7
- package/dist/content/skills/hatch3r-docs-writing/SKILL.md +159 -0
- package/dist/content/skills/hatch3r-enhancability-verify/SKILL.md +152 -0
- package/dist/content/skills/hatch3r-feature/SKILL.md +53 -3
- package/dist/content/skills/hatch3r-feedback/SKILL.md +103 -0
- package/dist/content/skills/hatch3r-gh-agentic-workflows/SKILL.md +10 -8
- package/dist/content/skills/hatch3r-handoff-prepare/SKILL.md +4 -7
- package/dist/content/skills/hatch3r-handoff-resume/SKILL.md +4 -7
- package/dist/content/{commands/hatch3r-hooks.md → skills/hatch3r-hooks/SKILL.md} +48 -137
- package/dist/content/skills/hatch3r-incident-response/SKILL.md +66 -7
- package/dist/content/skills/hatch3r-issue-workflow/SKILL.md +11 -0
- package/dist/content/skills/hatch3r-learn/SKILL.md +317 -0
- package/dist/content/skills/hatch3r-logical-refactor/SKILL.md +6 -7
- package/dist/content/skills/hatch3r-maintainability-verify/SKILL.md +146 -0
- package/dist/content/skills/hatch3r-migration/SKILL.md +8 -7
- package/dist/content/skills/hatch3r-observability-verify/SKILL.md +17 -12
- package/dist/content/skills/hatch3r-perf-audit/SKILL.md +13 -9
- package/dist/content/skills/hatch3r-pr-creation/SKILL.md +4 -7
- package/dist/content/skills/hatch3r-qa-validation/SKILL.md +6 -5
- package/dist/content/skills/hatch3r-recipe/SKILL.md +63 -60
- package/dist/content/skills/hatch3r-refactor/SKILL.md +6 -7
- package/dist/content/skills/hatch3r-release/SKILL.md +123 -11
- package/dist/content/skills/hatch3r-reliability-verify/SKILL.md +9 -5
- package/dist/content/{commands/hatch3r-report.md → skills/hatch3r-report/SKILL.md} +20 -17
- package/dist/content/skills/hatch3r-scalability-verify/SKILL.md +145 -0
- package/dist/content/skills/hatch3r-security-verify/SKILL.md +144 -0
- package/dist/content/skills/hatch3r-team-convention-author/SKILL.md +126 -0
- package/dist/content/skills/hatch3r-testability-verify/SKILL.md +147 -0
- package/dist/content/skills/hatch3r-ui-ux-verify/SKILL.md +19 -11
- package/dist/content/skills/hatch3r-visual-refactor/SKILL.md +11 -7
- package/package.json +50 -31
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.js.map +0 -1
- package/dist/content/agents/hatch3r-a11y-auditor.md +0 -159
- package/dist/content/agents/hatch3r-dependency-auditor.md +0 -219
- package/dist/content/agents/hatch3r-perf-profiler.md +0 -166
- package/dist/content/agents/hatch3r-security-auditor.md +0 -180
- package/dist/content/agents/hatch3r-test-writer.md +0 -171
- package/dist/content/commands/hatch3r-learn.md +0 -312
- package/dist/content/rules/hatch3r-learning-consult.md +0 -42
- package/dist/content/rules/hatch3r-learning-consult.mdc +0 -38
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-testability-verify
|
|
3
|
+
name: hatch3r-testability-verify
|
|
4
|
+
type: skill
|
|
5
|
+
description: Testability verification gate before commit/release — per-feature test-class mandate map, real-deal-first ratio, coverage thresholds, AI eval coverage, mutation kill-rate, contract tests, property tests, determinism contract
|
|
6
|
+
tags: [review, testing, floor:content-quality]
|
|
7
|
+
scope: conditional
|
|
8
|
+
globs: "src/__tests__/**,tests/**,test/**,spec/**,e2e/**,evals/**,**/stryker.conf.json,**/pom.xml,**/pacts/**"
|
|
9
|
+
precedence: normal
|
|
10
|
+
quality_charter: agents/shared/quality-charter.md
|
|
11
|
+
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
12
|
+
cache_friendly: true
|
|
13
|
+
---
|
|
14
|
+
# Testability Verification Gate
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
This skill defines what "done" means for any feature shipping test code or a feature in a mandate-map class (parser, payment, RPC, state machine, UI, AI feature). Run before declaring a feature complete. The 8 gates below mix automated checks (machine-checkable on every PR) with one release-cadence gate (mutation kill rate at release-cut). Skipping any gate = the feature is not done. Passing unit tests and reviewer approval alone do not satisfy this bar — a feature in a mandate class without its mandated test shape ships untested risk.
|
|
19
|
+
|
|
20
|
+
Inputs the skill expects:
|
|
21
|
+
|
|
22
|
+
- A test directory under one of: `src/__tests__/`, `tests/`, `__tests__/`, `e2e/`, `test/`, `spec/`.
|
|
23
|
+
- A coverage configuration in `vitest.config.ts`, `jest.config.js`, `pyproject.toml`, `pom.xml`, or `.coveragerc`.
|
|
24
|
+
- A mutation-test config in `stryker.conf.json` or `pom.xml` (when payment/auth/critical paths exist).
|
|
25
|
+
- A contract-test artifact path (`pacts/`, Schemathesis report) when service boundaries exist.
|
|
26
|
+
- An AI eval harness manifest (`evals/manifest.yaml`, `prompts/manifest.yaml`) when LLM features ship.
|
|
27
|
+
|
|
28
|
+
Outputs the skill produces: an 8-line verdict block written to the PR conversation, plus a JSON artifact at `.audit-workspace/testability-verify-<sha>.json` for downstream consumption by `hatch3r-release`.
|
|
29
|
+
|
|
30
|
+
## Step 0 — Detect Ambiguity (P8 B1)
|
|
31
|
+
|
|
32
|
+
Before any work, scan the invocation for unresolved questions in scope, intent, acceptance criteria, target environment, or irreversibility. If any are found, ask the user via the platform-native question tool per `agents/shared/user-question-protocol.md`. Default path, not exception. Triggers for THIS skill: feature-surface class (parser vs payment vs RPC vs state machine vs UI vs AI), gate selection (coverage-threshold vs mandate-map vs AI-eval vs full), mock-justification budget (review all vs review new mocks only), mutation-test floor changes mid-cycle, and whether to block on Low-confidence findings.
|
|
33
|
+
|
|
34
|
+
## Fan-out Discipline (P8 B2)
|
|
35
|
+
|
|
36
|
+
Fan-out scales with task size; token cost never justifies serializing independent work (`rules/hatch3r-fan-out-discipline.md` P8 B2; `agents/shared/efficiency-patterns.md`). Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
37
|
+
|
|
38
|
+
## Invoked by
|
|
39
|
+
|
|
40
|
+
This skill is the verification HARNESS — it declares HOW each testability gate is checked. The DISPATCHER that decides WHEN to run it is the CQ specialist agent:
|
|
41
|
+
|
|
42
|
+
- `agents/hatch3r-testability.md` — invokes this skill as the closing testability gate (CQ5) on PRs modifying test code or features in a mandate-map class. The agent contributes the review trigger and Phase-4 dispatch; this skill contributes the 8-gate procedure.
|
|
43
|
+
|
|
44
|
+
No duplication: the agent decides WHEN, this skill defines HOW.
|
|
45
|
+
|
|
46
|
+
## Gate 1: Per-feature test-class mandate map compliance
|
|
47
|
+
|
|
48
|
+
- For every changed feature, the mandated test class from `rules/hatch3r-testing.md` is present:
|
|
49
|
+
- parser → fuzz harness with documented corpus under `testdata/fuzz/`;
|
|
50
|
+
- payment → mutation test with documented kill-rate floor in `stryker.conf.json` or `pom.xml`;
|
|
51
|
+
- RPC → consumer + provider contract test under `pacts/` plus broker can-i-deploy gate;
|
|
52
|
+
- state machine → property test (fast-check or Hypothesis) with the invariant stated in a one-line comment;
|
|
53
|
+
- UI → visual regression suite with baselines under `__snapshots__/`.
|
|
54
|
+
- Detection: read changed-file globs vs the mandate map; any miss → CRITICAL.
|
|
55
|
+
|
|
56
|
+
## Gate 2: Real-deal test ratio ≥80%
|
|
57
|
+
|
|
58
|
+
- Count: `(integration-tests-without-mocks) / (total-integration-tests) ≥ 0.80`.
|
|
59
|
+
- Mocks detected by `grep -rn "// MOCK:" <test-dir>` plus framework-level helpers (`vi.mock`, `jest.mock`, `unittest.mock.patch`, `mockito.when`).
|
|
60
|
+
- Every remaining mock carries `// MOCK: <reason>` comment + reviewer-acknowledged justification linked to a tracking issue.
|
|
61
|
+
- Mock without the marker → FINDINGS row per mock. Ratio <80% → FINDINGS at suite level.
|
|
62
|
+
|
|
63
|
+
## Gate 3: Coverage thresholds met per file class
|
|
64
|
+
|
|
65
|
+
- Global floor 78% statements / 65% branches / 80% functions / 80% lines from `vitest.config.ts` (or equivalent).
|
|
66
|
+
- Critical modules in this repo: `src/merge/` 90/80/90/90; `src/content/` 85/70/85/85; `src/adapters/customization.ts` 85/75/85/85.
|
|
67
|
+
- Read coverage from `coverage/coverage-summary.json` (Istanbul/v8) or `coverage.xml` (Cobertura).
|
|
68
|
+
- Below floor → FINDINGS with the specific module + metric named.
|
|
69
|
+
|
|
70
|
+
## Gate 4: AI feature eval coverage 100%
|
|
71
|
+
|
|
72
|
+
- Every AI feature ships golden examples + adversarial cases + regression suite running in CI on prompt or model changes.
|
|
73
|
+
- Hallucination rate measured per release on a labelled sample and tracked as an SLI per Anthropic engineering guidance; threshold breach blocks rollout.
|
|
74
|
+
- Detection: read the eval manifest, confirm CI workflow triggers on prompt/model file changes, read the SLI dashboard URL.
|
|
75
|
+
- Eval coverage <100% on a release-bound prompt or model change → CRITICAL.
|
|
76
|
+
|
|
77
|
+
## Gate 5: Mutation-test kill rate on critical paths
|
|
78
|
+
|
|
79
|
+
- Stryker for JS/TS (`stryker run --incremental`, read `reports/mutation/mutation.json` → `metrics.mutationScore`).
|
|
80
|
+
- Pitest for JVM (`mvn org.pitest:pitest-maven:mutationCoverage`, read `target/pit-reports/mutations.xml` → `mutationCoverage`).
|
|
81
|
+
- Common 2026 floor: mutation score ≥80% on payment + auth + `critical`-labelled paths per qaskills.sh 2026.
|
|
82
|
+
- Below floor → FINDINGS with the surviving-mutant count and file list.
|
|
83
|
+
|
|
84
|
+
## Gate 6: Property-based tests on pure functions with stated invariants
|
|
85
|
+
|
|
86
|
+
- Each pure function with a stated invariant carries a fast-check (`fc.property(fc.<arb>, fn => { /* invariant */ })`) or Hypothesis (`@given(...)`) test.
|
|
87
|
+
- The invariant is documented in a one-line `// invariant:` comment above the test.
|
|
88
|
+
- Missing invariant comment or missing test → FINDINGS row per function.
|
|
89
|
+
- Pattern reference: MarkTechPost 2026 stateful / differential / metamorphic patterns.
|
|
90
|
+
|
|
91
|
+
## Gate 7: Contract tests on every service-to-service boundary
|
|
92
|
+
|
|
93
|
+
- Consumer-driven Pact pacts published to a broker (`pact-broker can-i-deploy --pacticipant <svc> --version <sha> --to production`).
|
|
94
|
+
- Spec-driven Schemathesis (`schemathesis run --checks all <openapi.yaml>`) executed against staging.
|
|
95
|
+
- Missing or failing → CRITICAL on auth/payment paths, FINDINGS elsewhere.
|
|
96
|
+
- Cross-reference: `rules/hatch3r-contract-testing.md`.
|
|
97
|
+
|
|
98
|
+
## Gate 8: Determinism contract — 0 flaky tests over 30 days
|
|
99
|
+
|
|
100
|
+
- Read CI flake history: `gh run list --status failure --created >=$(date -d '30 days ago' +%Y-%m-%d) --json conclusion,name,startedAt | jq '[.[] | select(.conclusion=="failure")] | length'`.
|
|
101
|
+
- Quarantined tests carry a tracking issue assignee and a re-enable date, not `test.skip` / `test.todo` / `@pytest.mark.skip` in perpetuity.
|
|
102
|
+
- Flake count >0 with no owner → FINDINGS. Silenced flake without tracking issue → FINDINGS per occurrence.
|
|
103
|
+
|
|
104
|
+
## Pass criteria
|
|
105
|
+
|
|
106
|
+
All 8 gates pass = the feature is "done". Anything less = not done.
|
|
107
|
+
|
|
108
|
+
- Mandate-map class compliance: 100% on changed features.
|
|
109
|
+
- Real-deal ratio: ≥80% per cycle.
|
|
110
|
+
- Coverage floors: met per file class (global 78/65/80/80; critical modules per `.claude/rules/test-requirements.md`).
|
|
111
|
+
- AI eval coverage: 100% on release-bound prompt or model changes.
|
|
112
|
+
- Mutation kill rate: ≥80% on payment + auth + critical paths.
|
|
113
|
+
- Property-test coverage: 100% of pure functions with stated invariants.
|
|
114
|
+
- Contract-test parity: 100% of service boundaries; broker `can-i-deploy` exit 0.
|
|
115
|
+
- Flake count over 30 days: 0 (or quarantined with owner + re-enable date).
|
|
116
|
+
|
|
117
|
+
## On fail
|
|
118
|
+
|
|
119
|
+
The orchestrator running this skill emits a single-line verdict per gate (`GATE_N: PASS|FAIL <evidence-path>`) and aggregates them. One FAIL on a required gate blocks the merge regardless of reviewer approval status.
|
|
120
|
+
|
|
121
|
+
Failure escalation per `agents/hatch3r-testability.md` status mapping: Gate 1 fail (mandate-map class missing) → CRITICAL; Gate 4 fail (AI eval coverage <100%) → CRITICAL; Gate 7 fail on auth/payment → CRITICAL; Gates 2/3/5/6/8 → FINDINGS at High or Medium.
|
|
122
|
+
|
|
123
|
+
## When this skill runs
|
|
124
|
+
|
|
125
|
+
- Reviewer on any PR that modifies test code, removes tests, or introduces a feature in a mandate-map class.
|
|
126
|
+
- Implementer pre-write check when authoring new feature tests.
|
|
127
|
+
- Verifier pre-merge gate immediately before `gh pr merge` on protected branches.
|
|
128
|
+
- AI feature release gate before a prompt/model bump ships to production traffic.
|
|
129
|
+
- Quarterly audit on real-deal ratio drift.
|
|
130
|
+
|
|
131
|
+
## Cross-References
|
|
132
|
+
|
|
133
|
+
- `rules/hatch3r-testing.md` — per-feature test-class mandate map.
|
|
134
|
+
- `rules/hatch3r-ai-evals.md` — AI feature eval coverage.
|
|
135
|
+
- `rules/hatch3r-contract-testing.md` — Pact + Schemathesis boundaries.
|
|
136
|
+
- `.claude/rules/test-requirements.md` — coverage thresholds per file class.
|
|
137
|
+
- `agents/shared/quality-charter.md` §Testing depth — mock-justification budget.
|
|
138
|
+
|
|
139
|
+
## References
|
|
140
|
+
|
|
141
|
+
- Stryker Mutator — `stryker-mutator.io/docs/`
|
|
142
|
+
- Stryker 2026 floor guidance — `qaskills.sh/blog/mutation-testing-stryker-guide`
|
|
143
|
+
- Hypothesis property-based testing 2026 patterns — `marktechpost.com/2026/04/18/a-coding-guide-for-property-based-testing-using-hypothesis-with-stateful-differential-and-metamorphic-test-design/`
|
|
144
|
+
- Pact contract testing — `docs.pact.io/`
|
|
145
|
+
- Schemathesis — `schemathesis.readthedocs.io/`
|
|
146
|
+
- Anthropic engineering evals — `www.anthropic.com/engineering/demystifying-evals-for-ai-agents`
|
|
147
|
+
- AI hallucination benchmarks 2026 — `suprmind.ai/hub/ai-hallucination-rates-and-benchmarks/`
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-ui-ux-verify
|
|
3
|
+
name: hatch3r-ui-ux-verify
|
|
3
4
|
type: skill
|
|
4
5
|
description: UI/UX verification gate before declaring a feature done — axe-core, scripted keyboard trace, accessibility-tree snapshot, four-state coverage, visual-regression baseline, one human screen-reader pass per release
|
|
5
6
|
tags: [review, floor:ui-ux, ui, ux, a11y]
|
|
@@ -19,12 +20,16 @@ Before any work, scan the invocation for unresolved questions in scope, intent,
|
|
|
19
20
|
|
|
20
21
|
## Fan-out Discipline (P8 B2)
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
- Tier 1 (trivial single-file): inline execution acceptable.
|
|
24
|
-
- Tier 2 (multi-file or multi-concern): spawn parallel sub-agents per concern via the Task tool.
|
|
25
|
-
- Tier 3 (multi-module / high-risk): one fresh sub-agent per independent module or gate; orchestrator integrates only.
|
|
23
|
+
Fan-out scales with task size; token cost never justifies serializing independent work (`rules/hatch3r-fan-out-discipline.md` P8 B2; `agents/shared/efficiency-patterns.md`). Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
26
24
|
|
|
27
|
-
|
|
25
|
+
## Invoked by
|
|
26
|
+
|
|
27
|
+
This skill is the verification HARNESS — it declares HOW each UI/UX gate is checked. The DISPATCHERS that decide WHEN to run it are the CQ specialist agents:
|
|
28
|
+
|
|
29
|
+
- `agents/hatch3r-ui.md` — invokes this skill as the axe-core + keyboard-trace + four-state + visual-regression + Core Web Vitals gate (CQ1). The agent contributes trigger conditions and Phase-4 dispatch; this skill contributes the 9-gate procedure.
|
|
30
|
+
- `agents/hatch3r-ux.md` — invokes this skill when keyboard-trace, microcopy-lint, or human-screen-reader-pass gates flag a UX-pillar delta (CQ2).
|
|
31
|
+
|
|
32
|
+
No duplication: the agent decides WHEN, this skill defines HOW. The agent bodies cite this skill in their Phase-4 output contract; this subsection is the symmetric upstream citation per `rules/hatch3r-agent-orchestration.md` (Phase-4 dispatch).
|
|
28
33
|
|
|
29
34
|
## Gate 1: Automated a11y scan (axe-core via Playwright)
|
|
30
35
|
|
|
@@ -63,10 +68,10 @@ Never under-fan-out to save tokens. Token cost is dominated by quality and compl
|
|
|
63
68
|
- **loading** (skeleton)
|
|
64
69
|
- **empty** (with CTA)
|
|
65
70
|
- **error** (cause + retry)
|
|
66
|
-
- **partial** (banner + degraded data)
|
|
71
|
+
- **partial** (banner + degraded data) — the only state needing two concurrent requests at opposite outcomes; fixture it via the partial-state recipe (MSW 200+500 in one worker, or `Promise.allSettled` with a forced rejection) in `rules/hatch3r-ux-states-and-flows.md` -> Partial-state fixture recipe.
|
|
67
72
|
- Missing snapshot = blocker.
|
|
68
73
|
- Convention: `src/__tests__/states/<feature>.<state>.spec.ts`.
|
|
69
|
-
- Discovery
|
|
74
|
+
- Discovery (reviewer-driven; no shipped script): grep the project for async data hooks — `rg -l 'useQuery|useSWR|\bfetch\(|axios'` — and list the surfaces that read remote data. Each listed surface must have all four state files under the convention path above. The reviewer flags any surface missing a state file as a Gate-4 failure. Projects that want this enforced pre-test author their own discovery check wired into CI; hatch3r ships the pattern, not the script (the framework does not own the project's data-fetch taxonomy).
|
|
70
75
|
|
|
71
76
|
## Gate 5: Visual regression baseline
|
|
72
77
|
|
|
@@ -93,14 +98,17 @@ Never under-fan-out to save tokens. Token cost is dominated by quality and compl
|
|
|
93
98
|
|
|
94
99
|
## Gate 8: AI-UX checks (when applicable)
|
|
95
100
|
|
|
96
|
-
Applies only when the feature ships LLM-driven UI:
|
|
101
|
+
Applies only when the feature ships LLM-driven UI. These 7 checks mirror the Verification Gate in `rules/hatch3r-ai-ux-patterns.md` one-for-one — running Gate 8 means executing all 7, not just the streaming/tool-call subset:
|
|
97
102
|
|
|
98
103
|
- Streaming hooks in use — grep for `useChat`, `useCompletion`, `streamUI`, or the framework equivalent.
|
|
99
|
-
- Tool-call cards visible by default — assert at least one rendered card per tool invocation in fixtures.
|
|
104
|
+
- Tool-call cards visible by default — assert at least one rendered card per tool invocation in fixtures, with a snapshot per state (`pending`, `in-progress`, `complete`, `failed`).
|
|
100
105
|
- Human-approval gates present for side-effectful tools — assert an approval card before `write`, `send`, or `post` tool calls.
|
|
101
|
-
- Cancel/abort controls present and wired to an `AbortController
|
|
106
|
+
- Cancel/abort/undo controls present and wired to an `AbortController` — cancellation produces a transcript marker, not a silent terminate.
|
|
107
|
+
- Citation rendering — a grounded response renders an inline citation with source URL or anchor (snapshot test); an ungroundable claim renders the not-found flag string rather than emitting silently.
|
|
108
|
+
- Failure-mode coverage — at least one test per AI failure mode: timeout, rate limit, token budget, tool unavailability, stream interruption, content-policy refusal, stale session. Missing coverage on any mode is a blocker.
|
|
109
|
+
- Accessibility on AI states — axe-core scan against each AI surface state (idle, streaming, tool-call pending, approval-card open, error) returns 0 serious or critical violations.
|
|
102
110
|
|
|
103
|
-
Cross-reference: `rules/hatch3r-ai-ux-patterns.md`
|
|
111
|
+
Cross-reference: `rules/hatch3r-ai-ux-patterns.md` — the "Verification Gate" section is the canonical 7-item list this gate executes; the "Cancel / Abort / Undo", "Citations and Grounding", and "Failure Modes and Degradation" sections define the expected behavior each check asserts.
|
|
104
112
|
|
|
105
113
|
## Gate 9: Manual screen-reader pass (per release, not per PR)
|
|
106
114
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-visual-refactor
|
|
3
|
+
name: hatch3r-visual-refactor
|
|
4
|
+
type: skill
|
|
3
5
|
description: UI/UX change workflow matching design, accessibility, and responsiveness requirements. Use when making visual changes, updating components, working on UI issues, or implementing design mockups.
|
|
4
6
|
tags: [implementation, floor:ui-ux]
|
|
5
7
|
quality_charter: agents/shared/quality-charter.md
|
|
@@ -28,12 +30,7 @@ Before any work, scan the invocation for unresolved questions in scope, intent,
|
|
|
28
30
|
|
|
29
31
|
## Fan-out Discipline (P8 B2)
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
- Tier 1 (trivial single-file): inline execution acceptable.
|
|
33
|
-
- Tier 2 (multi-file or multi-concern): spawn parallel sub-agents per concern via the Task tool.
|
|
34
|
-
- Tier 3 (multi-module / high-risk): one fresh sub-agent per independent module or gate; orchestrator integrates only.
|
|
35
|
-
|
|
36
|
-
Never under-fan-out to save tokens. Token cost is dominated by quality and completeness gains. Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
33
|
+
Fan-out scales with task size; token cost never justifies serializing independent work (`rules/hatch3r-fan-out-discipline.md` P8 B2; `agents/shared/efficiency-patterns.md`). Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
37
34
|
|
|
38
35
|
## Step 1: Read Inputs
|
|
39
36
|
|
|
@@ -70,9 +67,11 @@ Before modifying code, output:
|
|
|
70
67
|
- Animations at 60fps (if applicable).
|
|
71
68
|
|
|
72
69
|
```bash
|
|
73
|
-
|
|
70
|
+
${HATCH3R:VERIFY_GATE_ALL}
|
|
74
71
|
```
|
|
75
72
|
|
|
73
|
+
Resolved to the project's language-aware gate at sync time (fallback when detection is unknown: `npm run lint && npm run typecheck && npm run test`).
|
|
74
|
+
|
|
76
75
|
### 4b. Browser Verification
|
|
77
76
|
|
|
78
77
|
- Confirm the dev server is running by checking the expected port. If not running, start it in the background.
|
|
@@ -111,3 +110,8 @@ Use the project's PR template. Include:
|
|
|
111
110
|
- [ ] Snapshot tests updated
|
|
112
111
|
- [ ] No visual regressions
|
|
113
112
|
- [ ] Design system tokens used (no ad-hoc styling)
|
|
113
|
+
|
|
114
|
+
## References
|
|
115
|
+
|
|
116
|
+
- [Understanding SC 1.4.3: Contrast (Minimum) — W3C WCAG 2.2](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html) — accessed 2026-05-31, official-docs (W3C). Source for the 4.5:1 AA text-contrast threshold verified in Step 1 and the Definition of Done.
|
|
117
|
+
- [Design Tokens Format Module — W3C Design Tokens Community Group](https://tr.designtokens.org/format/) — accessed 2026-05-31, official-docs (W3C DTCG). Source for the design-token-over-ad-hoc-styling discipline (color, spacing, typography) the reuse/extend/create path enforces.
|
package/package.json
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hatch3r",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Agentic coding setup framework audited each release across 24 governance domains. One command to hatch your agent stack -- agents, skills, rules, commands, and MCP for Claude Code, Cursor, and GitHub Copilot.",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"exports": {
|
|
7
|
-
".": {
|
|
8
|
-
"import": "./dist/cli/index.js",
|
|
9
|
-
"types": "./dist/cli/index.d.ts"
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
6
|
"bin": {
|
|
13
7
|
"hatch3r": "./dist/cli/index.js"
|
|
14
8
|
},
|
|
@@ -18,24 +12,46 @@
|
|
|
18
12
|
"dev": "tsup --watch",
|
|
19
13
|
"lint": "eslint src/",
|
|
20
14
|
"typecheck": "tsc --noEmit",
|
|
21
|
-
"prepublishOnly": "npm run build",
|
|
15
|
+
"prepublishOnly": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && npm run build",
|
|
22
16
|
"test": "vitest run",
|
|
17
|
+
"test:ci": "vitest run --no-update",
|
|
23
18
|
"test:watch": "vitest",
|
|
24
19
|
"inventory": "tsx scripts/inventory.ts",
|
|
25
20
|
"inventory:check-docs": "tsx scripts/inventory.ts --check-docs",
|
|
26
21
|
"validate:rule-parity": "tsx scripts/validate-rule-parity.ts && tsx scripts/validate-rule-pillar-currency.ts",
|
|
27
|
-
"validate:efficiency": "tsx scripts/validate-efficiency-invariants.ts && tsx scripts/validate-bridge-budget.ts && tsx scripts/validate-fanout-emission.ts",
|
|
22
|
+
"validate:efficiency": "tsx scripts/validate-efficiency-invariants.ts && tsx scripts/validate-bridge-budget.ts && tsx scripts/validate-fanout-emission.ts && tsx scripts/validate-tag-order.ts && tsx scripts/validate-modes-parity.ts && tsx scripts/validate-governance-currency.ts && tsx scripts/validate-traceability-matrix.ts && tsx scripts/validate-decision-id-consistency.ts && tsx scripts/validate-repo-token-adoption.ts && tsx scripts/validate-verify-gate-literals.ts && tsx scripts/validate-customize-doc-examples.ts && tsx scripts/validate-archive-path-currency.ts && tsx scripts/validate-references-currency.ts && tsx scripts/validate-pricing-currency.ts && tsx scripts/validate-subagent-casing.ts && tsx scripts/validate-governance-total.ts",
|
|
23
|
+
"validate:subagent-casing": "tsx scripts/validate-subagent-casing.ts",
|
|
24
|
+
"validate:references-currency": "tsx scripts/validate-references-currency.ts",
|
|
25
|
+
"validate:pricing-currency": "tsx scripts/validate-pricing-currency.ts",
|
|
28
26
|
"validate:cli-skills": "tsx scripts/validate-cli-skills.ts",
|
|
29
27
|
"validate:wiring": "tsx scripts/validate-wiring.ts",
|
|
28
|
+
"validate:control-reachability": "tsx scripts/validate-control-reachability.ts",
|
|
29
|
+
"validate:anti-slop": "tsx scripts/validate-anti-slop.ts",
|
|
30
|
+
"validate:specialist-roster": "tsx scripts/validate-specialist-roster.ts",
|
|
31
|
+
"validate:severity-vocabulary": "tsx scripts/validate-severity-vocabulary.ts",
|
|
32
|
+
"validate:retired-agent-refs": "tsx scripts/validate-retired-agent-refs.ts",
|
|
33
|
+
"validate:fanout-path": "tsx scripts/validate-fanout-path-currency.ts",
|
|
34
|
+
"validate:archive-path": "tsx scripts/validate-archive-path-currency.ts",
|
|
35
|
+
"validate:canonical": "tsx scripts/validate-canonical.ts",
|
|
36
|
+
"validate:adapter-parity": "tsx scripts/validate-adapter-output.ts",
|
|
37
|
+
"validate:trust-crosswalk": "tsx scripts/validate-trust-crosswalk-citations.ts",
|
|
38
|
+
"validate:id-uniqueness": "tsx scripts/validate-id-uniqueness.ts",
|
|
30
39
|
"generate:cli-skills": "tsx scripts/generate-cli-skills.ts",
|
|
31
|
-
"
|
|
40
|
+
"calibrate:tier-weights": "tsx scripts/calibrate-tier-weights.ts",
|
|
41
|
+
"validate": "npm run validate:rule-parity && npm run validate:efficiency && npm run validate:cli-skills && npm run validate:wiring && npm run validate:control-reachability && npm run validate:anti-slop && npm run validate:specialist-roster && npm run validate:severity-vocabulary && npm run validate:retired-agent-refs && npm run validate:fanout-path && npm run validate:canonical && npm run validate:adapter-parity && npm run validate:trust-crosswalk && npm run validate:id-uniqueness && npm run validate:codeowners && npm run validate:content-duplication",
|
|
32
42
|
"audit:validate-registry": "tsx scripts/validate-finding-registry.ts",
|
|
33
43
|
"audit:migrate": "tsx scripts/migrate-finding-registry.ts",
|
|
34
44
|
"audit:archive": "tsx scripts/audit-archive.ts",
|
|
35
45
|
"audit:find": "tsx scripts/audit-find.ts",
|
|
46
|
+
"audit:closed-loop": "tsx scripts/audit-closed-loop-report.ts",
|
|
47
|
+
"audit:stalled": "tsx scripts/audit-stalled-strategic.ts",
|
|
36
48
|
"audit:reset": "tsx scripts/clean-audit-workspace.ts",
|
|
37
|
-
"lockfile:check": "lockfile-lint --path package-lock.json --type npm --allowed-hosts npm --validate-https",
|
|
38
|
-
"mcp:cve-check": "tsx scripts/check-mcp-cves.ts"
|
|
49
|
+
"lockfile:check": "lockfile-lint --path package-lock.json --type npm --allowed-hosts npm --validate-https --validate-integrity --validate-package-names",
|
|
50
|
+
"mcp:cve-check": "tsx scripts/check-mcp-cves.ts",
|
|
51
|
+
"cli-tools:cve-check": "tsx scripts/check-cli-cves.ts",
|
|
52
|
+
"validate:action-pins": "tsx scripts/validate-action-pins.ts",
|
|
53
|
+
"validate:codeowners": "tsx scripts/validate-codeowners.ts",
|
|
54
|
+
"validate:content-duplication": "tsx scripts/validate-content-duplication.ts"
|
|
39
55
|
},
|
|
40
56
|
"keywords": [
|
|
41
57
|
"agents",
|
|
@@ -73,35 +89,38 @@
|
|
|
73
89
|
"LICENSE"
|
|
74
90
|
],
|
|
75
91
|
"dependencies": {
|
|
76
|
-
"@inquirer/core": "
|
|
77
|
-
"@inquirer/figures": "
|
|
78
|
-
"boxen": "
|
|
79
|
-
"chalk": "
|
|
80
|
-
"commander": "
|
|
81
|
-
"inquirer": "
|
|
82
|
-
"ora": "
|
|
83
|
-
"p-limit": "^3.
|
|
84
|
-
"proper-lockfile": "
|
|
85
|
-
"update-notifier": "
|
|
86
|
-
"yaml": "
|
|
92
|
+
"@inquirer/core": "11.2.1",
|
|
93
|
+
"@inquirer/figures": "2.0.7",
|
|
94
|
+
"boxen": "8.0.1",
|
|
95
|
+
"chalk": "5.6.2",
|
|
96
|
+
"commander": "15.0.0",
|
|
97
|
+
"inquirer": "14.0.2",
|
|
98
|
+
"ora": "9.4.0",
|
|
99
|
+
"p-limit": "^7.3.0",
|
|
100
|
+
"proper-lockfile": "4.1.2",
|
|
101
|
+
"update-notifier": "7.3.1",
|
|
102
|
+
"yaml": "2.9.0"
|
|
87
103
|
},
|
|
88
104
|
"devDependencies": {
|
|
89
|
-
"@types/node": "^
|
|
105
|
+
"@types/node": "^26.0.0",
|
|
90
106
|
"@types/proper-lockfile": "^4.1.4",
|
|
91
107
|
"@types/update-notifier": "^6.0.8",
|
|
92
|
-
"@vitest/coverage-v8": "^4.1.
|
|
93
|
-
"eslint": "^10.
|
|
108
|
+
"@vitest/coverage-v8": "^4.1.9",
|
|
109
|
+
"eslint": "^10.5.0",
|
|
94
110
|
"lockfile-lint": "^5.0.0",
|
|
95
111
|
"tsup": "^8.0.0",
|
|
96
|
-
"tsx": "^4.
|
|
112
|
+
"tsx": "^4.22.4",
|
|
97
113
|
"typescript": "^6.0.2",
|
|
98
|
-
"typescript-eslint": "^8.
|
|
114
|
+
"typescript-eslint": "^8.61.1",
|
|
99
115
|
"vitest": "^4.1.2"
|
|
100
116
|
},
|
|
101
117
|
"overrides": {
|
|
102
|
-
"flatted": "^3.4.2"
|
|
118
|
+
"flatted": "^3.4.2",
|
|
119
|
+
"brace-expansion": "^5.0.6"
|
|
103
120
|
},
|
|
104
121
|
"comments": {
|
|
105
|
-
"overrides/flatted": "Pinned to >=3.4.2 to resolve security advisory in transitive eslint > flat-cache > flatted dependency"
|
|
122
|
+
"overrides/flatted": "Pinned to >=3.4.2 to resolve security advisory in transitive eslint > flat-cache > flatted dependency",
|
|
123
|
+
"overrides/brace-expansion": "Pinned to >=5.0.6 to resolve GHSA-jxxr-4gwj-5jf2 (CWE-400, CVSS 6.5, patched 5.0.6) in transitive dev dependency minimatch@10.2.4 > brace-expansion (was 5.0.5). Surgical override preferred over `npm audit fix`, which pulls 78 new platform-binary packages.",
|
|
124
|
+
"dependencies/p-limit": "Cycle 10 L D4-SA4.2-F4.2.5 (D4): p-limit held at 3.1.0 is 4 majors behind 7.3.0 (no CVE — pure P3 currency hygiene). The bump is API-compatible: the only behavioral delta across majors 4-7 is the CommonJS drop, non-applicable here (hatch3r is pure ESM, engines node >=22), and all three call sites use the stable default-export `pLimit(concurrency)` signature — src/workspace/sync.ts, src/workspace/manifest.ts, src/pipeline/complianceVerification.ts. BLOCKED for a no-network audit SA, not deferrable by hand: bumping the spec alone desyncs package-lock.json (currently pins p-limit 3.1.0 + yocto-queue ^0.1.0 at lines ~4705-4727, AND a second transitive `p-limit ^3.0.2` requirer), and `release.yml` 'Verify lockfile sync' (git diff --exit-code package-lock.json) plus every `npm ci` integrity check fail closed on a spec-only or hand-edited lockfile. p-limit 7.x drops yocto-queue for a different internal queue, so the new resolved tree + SHA-512 integrity hashes can only come from the npm resolver. Follow-up (one commit): run `npm install` to land package.json (^7.3.0) + the regenerated lockfile together, then `npm test` to confirm the three pLimit call sites still pass."
|
|
106
125
|
}
|
|
107
126
|
}
|
package/dist/cli/index.d.ts
DELETED