@bonesofspring/ai-rules 0.2.26 → 0.2.27
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/CHANGELOG.md +7 -0
- package/LICENSE +21 -0
- package/README.md +1 -1
- package/bin/cli.js +262 -44
- package/bin/lib/safe-path.js +93 -0
- package/bin/lib/seed-ai-local-team.js +5 -0
- package/bin/mavis-install.js +35 -8
- package/bin/opencode-install.js +34 -11
- package/docs/LOCAL-OVERLAY.md +186 -0
- package/docs/MAVIS-COMPATIBILITY.md +174 -0
- package/docs/MAVIS.md +120 -0
- package/docs/OPENCODE-COMPATIBILITY.md +54 -0
- package/docs/OPENCODE.md +123 -0
- package/docs/PRESET-CONTRIBUTION.md +431 -0
- package/docs/PRESET-ENGLISH-STYLE.md +91 -0
- package/docs/specs/INDEX.md +9 -0
- package/docs/specs/_templates/feature.md +32 -0
- package/docs/specs/_templates/page.md +47 -0
- package/package.json +6 -1
- package/presets/_shared/core/meta/preset-layering.md +1 -1
- package/presets/_shared/core/meta/preset-pr-checklist.md +1 -1
- package/presets/_shared/core/meta/preset-token-budget.md +10 -10
- package/presets/_shared/core/quality/code-quality-and-refactoring.md +6 -0
- package/presets/claude/android-kotlin/agents/build-verifier.md +2 -2
- package/presets/claude/android-kotlin/commands/task.md +1 -1
- package/presets/claude/android-kotlin/hooks/chain-team-phases.sh +32 -3
- package/presets/claude/android-kotlin/hooks/examples/README.md +5 -3
- package/presets/claude/android-kotlin/hooks/examples/test-on-save.example.sh +6 -4
- package/presets/claude/android-kotlin/rules/README.md +1 -1
- package/presets/claude/android-kotlin/rules/tooling-and-review/code-quality.md +6 -0
- package/presets/claude/android-kotlin/rules/tooling-and-review/mcp-usage.md +1 -1
- package/presets/claude/android-kotlin/rules/tooling-and-review/preset-layering.md +2 -2
- package/presets/claude/android-kotlin/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
- package/presets/claude/android-kotlin/rules/tooling-and-review/preset-pr-checklist.md +2 -2
- package/presets/claude/android-kotlin/rules/tooling-and-review/preset-token-budget.md +11 -11
- package/presets/claude/android-kotlin/rules/tooling-and-review/preset-twin-sync.md +1 -1
- package/presets/claude/android-kotlin/rules/ui-and-accessibility/compose.md +2 -0
- package/presets/claude/go/CLAUDE.md +1 -1
- package/presets/claude/go/agents/build-verifier.md +1 -1
- package/presets/claude/go/commands/task.md +1 -1
- package/presets/claude/go/hooks/chain-team-phases.sh +32 -3
- package/presets/claude/go/hooks/examples/README.md +5 -3
- package/presets/claude/go/rules/README.md +1 -1
- package/presets/claude/go/rules/api-and-data/adapters-driven.md +3 -3
- package/presets/claude/go/rules/api-and-data/adapters-driving.md +2 -2
- package/presets/claude/go/rules/api-and-data/api-grpc.md +2 -2
- package/presets/claude/go/rules/api-and-data/api-http.md +3 -3
- package/presets/claude/go/rules/api-and-data/messaging-adapters.md +1 -1
- package/presets/claude/go/rules/api-and-data/persistence-adapters.md +2 -2
- package/presets/claude/go/rules/architecture/application-usecases.md +1 -1
- package/presets/claude/go/rules/architecture/domain-layer.md +1 -1
- package/presets/claude/go/rules/architecture/feature-delivery.md +1 -1
- package/presets/claude/go/rules/architecture/ports-interfaces.md +2 -2
- package/presets/claude/go/rules/stack/go-conventions.md +1 -1
- package/presets/claude/go/rules/testing/e2e.md +2 -2
- package/presets/claude/go/rules/testing/integration.md +2 -2
- package/presets/claude/go/rules/testing/unit.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/agent-team-intake.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/agent-team-orchestrator.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/code-quality.md +6 -0
- package/presets/claude/go/rules/tooling-and-review/code-review.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/go-tooling.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/mcp-usage.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/post-change-test.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/preset-layering.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/preset-pr-checklist.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/preset-token-budget.md +10 -10
- package/presets/claude/go/rules/tooling-and-review/security-go.md +3 -3
- package/presets/claude/go/rules/tooling-and-review/technical-retro.md +1 -1
- package/presets/claude/ios-swift/agents/build-verifier.md +3 -3
- package/presets/claude/ios-swift/commands/task.md +1 -1
- package/presets/claude/ios-swift/hooks/chain-team-phases.sh +32 -3
- package/presets/claude/ios-swift/hooks/examples/README.md +5 -3
- package/presets/claude/ios-swift/rules/README.md +1 -1
- package/presets/claude/ios-swift/rules/architecture/feature-delivery.md +3 -3
- package/presets/claude/ios-swift/rules/architecture/reference-features.md +1 -1
- package/presets/claude/ios-swift/rules/tooling-and-review/code-quality.md +6 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/mcp-usage.md +1 -1
- package/presets/claude/ios-swift/rules/tooling-and-review/post-change-build.md +2 -2
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-layering.md +2 -2
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-pr-checklist.md +2 -2
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-token-budget.md +11 -11
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-twin-sync.md +1 -1
- package/presets/claude/ios-swift/rules/ui-and-accessibility/swiftui.md +7 -0
- package/presets/claude/java/CLAUDE.md +2 -2
- package/presets/claude/java/agents/build-verifier.md +1 -1
- package/presets/claude/java/commands/task.md +1 -1
- package/presets/claude/java/hooks/chain-team-phases.sh +32 -3
- package/presets/claude/java/hooks/examples/README.md +5 -3
- package/presets/claude/java/rules/README.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/agent-team-orchestrator.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/code-quality.md +6 -0
- package/presets/claude/java/rules/tooling-and-review/mcp-usage.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/preset-layering.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/preset-pr-checklist.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/preset-token-budget.md +10 -10
- package/presets/claude/mcp-ts/CLAUDE.md +1 -1
- package/presets/claude/mcp-ts/agents/build-verifier.md +1 -1
- package/presets/claude/mcp-ts/commands/task.md +1 -1
- package/presets/claude/mcp-ts/hooks/chain-team-phases.sh +32 -3
- package/presets/claude/mcp-ts/rules/README.md +1 -1
- package/presets/claude/mcp-ts/rules/api-and-data/mcp-auth-secrets.md +4 -4
- package/presets/claude/mcp-ts/rules/api-and-data/mcp-contract-testing.md +2 -2
- package/presets/claude/mcp-ts/rules/api-and-data/mcp-tool-design.md +1 -1
- package/presets/claude/mcp-ts/rules/api-and-data/mcp-transport-packaging.md +2 -2
- package/presets/claude/mcp-ts/rules/architecture/mcp-server-boundaries.md +1 -1
- package/presets/claude/mcp-ts/rules/testing/unit.md +2 -2
- package/presets/claude/mcp-ts/rules/tooling-and-review/anti-sycophancy-discipline.md +2 -2
- package/presets/claude/mcp-ts/rules/tooling-and-review/code-quality.md +6 -0
- package/presets/claude/mcp-ts/rules/tooling-and-review/mcp-ts-tooling.md +3 -3
- package/presets/claude/mcp-ts/rules/tooling-and-review/post-change-test.md +1 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-layering.md +1 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-pr-checklist.md +1 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-token-budget.md +10 -10
- package/presets/claude/mcp-ts/rules/tooling-and-review/security-mcp.md +1 -1
- package/presets/claude/next/README.md +1 -1
- package/presets/claude/next/agents/build-verifier.md +2 -2
- package/presets/claude/next/commands/task.md +1 -1
- package/presets/claude/next/hooks/chain-team-phases.sh +32 -3
- package/presets/claude/next/hooks/examples/README.md +5 -3
- package/presets/claude/next/rules/README.md +1 -1
- package/presets/claude/next/rules/api-and-data/api-services.md +6 -4
- package/presets/claude/next/rules/api-and-data/store-rtk.md +6 -5
- package/presets/claude/next/rules/architecture/feature-delivery-workflow.md +4 -0
- package/presets/claude/next/rules/architecture/reference-features.md +1 -1
- package/presets/claude/next/rules/stack/next-app-core.md +2 -1
- package/presets/claude/next/rules/testing/tests-unit.md +1 -0
- package/presets/claude/next/rules/tooling-and-review/code-quality.md +6 -0
- package/presets/claude/next/rules/tooling-and-review/preset-layering.md +2 -2
- package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
- package/presets/claude/next/rules/tooling-and-review/preset-pr-checklist.md +2 -2
- package/presets/claude/next/rules/tooling-and-review/preset-token-budget.md +11 -11
- package/presets/claude/next/rules/tooling-and-review/preset-twin-sync.md +1 -1
- package/presets/claude/next/rules/ui-and-accessibility/react-ui.md +37 -1
- package/presets/claude/next/team/fixtures/metrics-scenarios/tasks/human-gate/metrics.json +69 -0
- package/presets/claude/next/team/fixtures/metrics-scenarios/tasks/missing-ledger/status.json +5 -0
- package/presets/claude/next/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json +79 -0
- package/presets/claude/next/team/fixtures/metrics-scenarios/tasks/serial-retry/metrics.json +124 -0
- package/presets/claude/next/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json +124 -0
- package/presets/claude/next/team/fixtures/metrics.example.json +54 -0
- package/presets/claude/nuxt/agents/build-verifier.md +2 -2
- package/presets/claude/nuxt/commands/task.md +1 -1
- package/presets/claude/nuxt/hooks/chain-team-phases.sh +32 -3
- package/presets/claude/nuxt/hooks/examples/README.md +5 -3
- package/presets/claude/nuxt/hooks/examples/format-edited.example.sh +8 -7
- package/presets/claude/nuxt/hooks/examples/test-on-save.example.sh +8 -3
- package/presets/claude/nuxt/rules/README.md +1 -1
- package/presets/claude/nuxt/rules/architecture/layer-barrel-exports.md +1 -1
- package/presets/claude/nuxt/rules/architecture/reference-features.md +1 -1
- package/presets/claude/nuxt/rules/tooling-and-review/code-quality.md +6 -0
- package/presets/claude/nuxt/rules/tooling-and-review/preset-layering.md +2 -2
- package/presets/claude/nuxt/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
- package/presets/claude/nuxt/rules/tooling-and-review/preset-pr-checklist.md +2 -2
- package/presets/claude/nuxt/rules/tooling-and-review/preset-token-budget.md +11 -11
- package/presets/claude/nuxt/rules/tooling-and-review/preset-twin-sync.md +1 -1
- package/presets/claude/nuxt/rules/ui-and-accessibility/vue-ui.md +7 -0
- package/presets/claude/nuxt/team/fixtures/metrics-scenarios/tasks/human-gate/metrics.json +69 -0
- package/presets/claude/nuxt/team/fixtures/metrics-scenarios/tasks/missing-ledger/status.json +5 -0
- package/presets/claude/nuxt/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json +79 -0
- package/presets/claude/nuxt/team/fixtures/metrics-scenarios/tasks/serial-retry/metrics.json +124 -0
- package/presets/claude/nuxt/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json +124 -0
- package/presets/claude/nuxt/team/fixtures/metrics.example.json +54 -0
- package/presets/claude/php-hexagonal/CLAUDE.md +2 -2
- package/presets/claude/php-hexagonal/agents/build-verifier.md +1 -1
- package/presets/claude/php-hexagonal/commands/task.md +1 -1
- package/presets/claude/php-hexagonal/hooks/chain-team-phases.sh +32 -3
- package/presets/claude/php-hexagonal/hooks/examples/README.md +5 -3
- package/presets/claude/php-hexagonal/rules/README.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/agent-team-orchestrator.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/code-quality.md +6 -0
- package/presets/claude/php-hexagonal/rules/tooling-and-review/mcp-usage.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-layering.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-pr-checklist.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-token-budget.md +10 -10
- package/presets/claude/php-laravel/agents/build-verifier.md +1 -1
- package/presets/claude/php-laravel/commands/task.md +1 -1
- package/presets/claude/php-laravel/hooks/chain-team-phases.sh +32 -3
- package/presets/claude/php-laravel/hooks/examples/README.md +5 -3
- package/presets/claude/php-laravel/rules/README.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/agent-team-orchestrator.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/code-quality.md +6 -0
- package/presets/claude/php-laravel/rules/tooling-and-review/mcp-usage.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-layering.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-pr-checklist.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-token-budget.md +10 -10
- package/presets/claude/svelte/agents/build-verifier.md +2 -2
- package/presets/claude/svelte/commands/task.md +1 -1
- package/presets/claude/svelte/hooks/chain-team-phases.sh +32 -3
- package/presets/claude/svelte/hooks/examples/README.md +5 -3
- package/presets/claude/svelte/rules/README.md +1 -1
- package/presets/claude/svelte/rules/api-and-data/store-svelte.md +1 -1
- package/presets/claude/svelte/rules/architecture/layer-barrel-exports.md +1 -1
- package/presets/claude/svelte/rules/architecture/reference-features.md +1 -1
- package/presets/claude/svelte/rules/tooling-and-review/code-quality.md +6 -0
- package/presets/claude/svelte/rules/tooling-and-review/mcp-usage.md +1 -1
- package/presets/claude/svelte/rules/tooling-and-review/preset-layering.md +2 -2
- package/presets/claude/svelte/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
- package/presets/claude/svelte/rules/tooling-and-review/preset-pr-checklist.md +2 -2
- package/presets/claude/svelte/rules/tooling-and-review/preset-token-budget.md +11 -11
- package/presets/claude/svelte/rules/tooling-and-review/preset-twin-sync.md +1 -1
- package/presets/claude/svelte/rules/ui-and-accessibility/no-rest-props-spread.md +1 -1
- package/presets/claude/svelte/rules/ui-and-accessibility/svelte-ui.md +7 -0
- package/presets/claude/svelte/team/fixtures/metrics-scenarios/tasks/human-gate/metrics.json +69 -0
- package/presets/claude/svelte/team/fixtures/metrics-scenarios/tasks/missing-ledger/status.json +5 -0
- package/presets/claude/svelte/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json +79 -0
- package/presets/claude/svelte/team/fixtures/metrics-scenarios/tasks/serial-retry/metrics.json +124 -0
- package/presets/claude/svelte/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json +124 -0
- package/presets/claude/svelte/team/fixtures/metrics.example.json +54 -0
- package/presets/cursor/android-kotlin/agents/build-verifier.md +2 -2
- package/presets/cursor/android-kotlin/commands/task.md +1 -1
- package/presets/cursor/android-kotlin/hooks/chain-team-phases.sh +32 -3
- package/presets/cursor/android-kotlin/hooks/examples/test-on-save.example.sh +6 -4
- package/presets/cursor/android-kotlin/rules/README.md +1 -1
- package/presets/cursor/android-kotlin/rules/code-quality-and-refactoring.mdc +6 -0
- package/presets/cursor/android-kotlin/rules/compose-ui.mdc +2 -0
- package/presets/cursor/android-kotlin/rules/preset-layering.mdc +2 -2
- package/presets/cursor/android-kotlin/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/android-kotlin/rules/preset-pr-checklist.mdc +2 -2
- package/presets/cursor/android-kotlin/rules/preset-token-budget.mdc +11 -11
- package/presets/cursor/android-kotlin/rules/preset-twin-sync.mdc +1 -1
- package/presets/cursor/go/README.md +1 -1
- package/presets/cursor/go/agents/build-verifier.md +1 -1
- package/presets/cursor/go/commands/task.md +1 -1
- package/presets/cursor/go/hooks/chain-team-phases.sh +32 -3
- package/presets/cursor/go/rules/README.md +2 -2
- package/presets/cursor/go/rules/code-quality-and-refactoring.mdc +6 -0
- package/presets/cursor/go/rules/preset-layering.mdc +1 -1
- package/presets/cursor/go/rules/preset-pr-checklist.mdc +1 -1
- package/presets/cursor/go/rules/preset-token-budget.mdc +10 -10
- package/presets/cursor/ios-swift/README.md +1 -1
- package/presets/cursor/ios-swift/agents/build-verifier.md +3 -3
- package/presets/cursor/ios-swift/commands/task.md +1 -1
- package/presets/cursor/ios-swift/hooks/chain-team-phases.sh +32 -3
- package/presets/cursor/ios-swift/rules/README.md +2 -2
- package/presets/cursor/ios-swift/rules/code-quality-and-refactoring.mdc +6 -0
- package/presets/cursor/ios-swift/rules/preset-layering.mdc +2 -2
- package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/ios-swift/rules/preset-pr-checklist.mdc +2 -2
- package/presets/cursor/ios-swift/rules/preset-token-budget.mdc +11 -11
- package/presets/cursor/ios-swift/rules/preset-twin-sync.mdc +1 -1
- package/presets/cursor/ios-swift/rules/reference-features.mdc +1 -1
- package/presets/cursor/ios-swift/rules/swiftui-ui.mdc +7 -0
- package/presets/cursor/java/AGENTS.md +1 -1
- package/presets/cursor/java/agents/build-verifier.md +1 -1
- package/presets/cursor/java/commands/task.md +1 -1
- package/presets/cursor/java/hooks/chain-team-phases.sh +32 -3
- package/presets/cursor/java/rules/README.md +2 -2
- package/presets/cursor/java/rules/agent-team-orchestrator.mdc +1 -1
- package/presets/cursor/java/rules/code-quality-and-refactoring.mdc +6 -0
- package/presets/cursor/java/rules/preset-layering.mdc +1 -1
- package/presets/cursor/java/rules/preset-pr-checklist.mdc +1 -1
- package/presets/cursor/java/rules/preset-token-budget.mdc +10 -10
- package/presets/cursor/mcp-ts/agents/build-verifier.md +1 -1
- package/presets/cursor/mcp-ts/commands/task.md +1 -1
- package/presets/cursor/mcp-ts/hooks/chain-team-phases.sh +32 -3
- package/presets/cursor/mcp-ts/rules/README.md +2 -2
- package/presets/cursor/mcp-ts/rules/anti-sycophancy-discipline.mdc +2 -2
- package/presets/cursor/mcp-ts/rules/code-quality-and-refactoring.mdc +6 -0
- package/presets/cursor/mcp-ts/rules/mcp-auth-secrets.mdc +4 -4
- package/presets/cursor/mcp-ts/rules/mcp-contract-testing.mdc +2 -2
- package/presets/cursor/mcp-ts/rules/mcp-server-boundaries.mdc +1 -1
- package/presets/cursor/mcp-ts/rules/mcp-tool-design.mdc +1 -1
- package/presets/cursor/mcp-ts/rules/mcp-transport-packaging.mdc +2 -2
- package/presets/cursor/mcp-ts/rules/mcp-ts-tooling.mdc +3 -3
- package/presets/cursor/mcp-ts/rules/preset-layering.mdc +1 -1
- package/presets/cursor/mcp-ts/rules/preset-pr-checklist.mdc +1 -1
- package/presets/cursor/mcp-ts/rules/preset-token-budget.mdc +10 -10
- package/presets/cursor/mcp-ts/rules/security-mcp.mdc +1 -1
- package/presets/cursor/mcp-ts/rules/tests-unit.mdc +2 -2
- package/presets/cursor/next/README.md +2 -2
- package/presets/cursor/next/agents/build-verifier.md +2 -2
- package/presets/cursor/next/commands/task.md +1 -1
- package/presets/cursor/next/hooks/chain-team-phases.sh +32 -3
- package/presets/cursor/next/rules/README.md +1 -1
- package/presets/cursor/next/rules/api-services.mdc +6 -4
- package/presets/cursor/next/rules/code-quality-and-refactoring.mdc +6 -0
- package/presets/cursor/next/rules/feature-delivery-workflow.mdc +4 -0
- package/presets/cursor/next/rules/next-app-core.mdc +2 -1
- package/presets/cursor/next/rules/preset-layering.mdc +2 -2
- package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/next/rules/preset-pr-checklist.mdc +2 -2
- package/presets/cursor/next/rules/preset-token-budget.mdc +11 -11
- package/presets/cursor/next/rules/preset-twin-sync.mdc +1 -1
- package/presets/cursor/next/rules/react-ui.mdc +37 -1
- package/presets/cursor/next/rules/reference-features.mdc +1 -1
- package/presets/cursor/next/rules/store-rtk.mdc +6 -5
- package/presets/cursor/next/rules/tests-unit.mdc +1 -0
- package/presets/cursor/nuxt/README.md +1 -1
- package/presets/cursor/nuxt/agents/build-verifier.md +2 -2
- package/presets/cursor/nuxt/commands/task.md +1 -1
- package/presets/cursor/nuxt/hooks/chain-team-phases.sh +32 -3
- package/presets/cursor/nuxt/hooks/examples/format-edited.example.sh +8 -7
- package/presets/cursor/nuxt/hooks/examples/test-on-save.example.sh +8 -3
- package/presets/cursor/nuxt/rules/anti-sycophancy-discipline.mdc +1 -1
- package/presets/cursor/nuxt/rules/code-quality-and-refactoring.mdc +6 -0
- package/presets/cursor/nuxt/rules/design-guidance.mdc +1 -1
- package/presets/cursor/nuxt/rules/layer-barrel-exports.mdc +1 -1
- package/presets/cursor/nuxt/rules/preset-layering.mdc +2 -2
- package/presets/cursor/nuxt/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/nuxt/rules/preset-pr-checklist.mdc +2 -2
- package/presets/cursor/nuxt/rules/preset-token-budget.mdc +11 -11
- package/presets/cursor/nuxt/rules/preset-twin-sync.mdc +1 -1
- package/presets/cursor/nuxt/rules/reference-features.mdc +1 -1
- package/presets/cursor/nuxt/rules/vue-ui.mdc +7 -0
- package/presets/cursor/php-hexagonal/AGENTS.md +1 -1
- package/presets/cursor/php-hexagonal/agents/build-verifier.md +1 -1
- package/presets/cursor/php-hexagonal/commands/task.md +1 -1
- package/presets/cursor/php-hexagonal/hooks/chain-team-phases.sh +32 -3
- package/presets/cursor/php-hexagonal/rules/README.md +2 -2
- package/presets/cursor/php-hexagonal/rules/agent-team-orchestrator.mdc +1 -1
- package/presets/cursor/php-hexagonal/rules/code-quality-and-refactoring.mdc +6 -0
- package/presets/cursor/php-hexagonal/rules/preset-layering.mdc +1 -1
- package/presets/cursor/php-hexagonal/rules/preset-pr-checklist.mdc +1 -1
- package/presets/cursor/php-hexagonal/rules/preset-token-budget.mdc +10 -10
- package/presets/cursor/php-laravel/AGENTS.md +1 -1
- package/presets/cursor/php-laravel/agents/build-verifier.md +1 -1
- package/presets/cursor/php-laravel/commands/task.md +1 -1
- package/presets/cursor/php-laravel/hooks/chain-team-phases.sh +32 -3
- package/presets/cursor/php-laravel/rules/README.md +2 -2
- package/presets/cursor/php-laravel/rules/agent-team-orchestrator.mdc +1 -1
- package/presets/cursor/php-laravel/rules/code-quality-and-refactoring.mdc +6 -0
- package/presets/cursor/php-laravel/rules/preset-layering.mdc +1 -1
- package/presets/cursor/php-laravel/rules/preset-pr-checklist.mdc +1 -1
- package/presets/cursor/php-laravel/rules/preset-token-budget.mdc +10 -10
- package/presets/cursor/svelte/README.md +1 -1
- package/presets/cursor/svelte/agents/build-verifier.md +2 -2
- package/presets/cursor/svelte/commands/task.md +1 -1
- package/presets/cursor/svelte/hooks/chain-team-phases.sh +32 -3
- package/presets/cursor/svelte/rules/code-quality-and-refactoring.mdc +6 -0
- package/presets/cursor/svelte/rules/layer-barrel-exports.mdc +1 -1
- package/presets/cursor/svelte/rules/preset-layering.mdc +2 -2
- package/presets/cursor/svelte/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/svelte/rules/preset-pr-checklist.mdc +2 -2
- package/presets/cursor/svelte/rules/preset-token-budget.mdc +11 -11
- package/presets/cursor/svelte/rules/preset-twin-sync.mdc +1 -1
- package/presets/cursor/svelte/rules/reference-features.mdc +1 -1
- package/presets/cursor/svelte/rules/svelte-ui.mdc +7 -0
- package/presets/mavis/android-kotlin/adapter-map.json +1 -1
- package/presets/mavis/android-kotlin/agents/build-verifier.md +2 -2
- package/presets/mavis/android-kotlin/commands/spec-start.md +2 -2
- package/presets/mavis/android-kotlin/commands/task.md +6 -6
- package/presets/mavis/android-kotlin/hooks/chain-team-phases.sh +32 -3
- package/presets/mavis/android-kotlin/rules/code-quality-and-refactoring.md +14 -0
- package/presets/mavis/android-kotlin/rules/code-review-mr.md +39 -0
- package/presets/mavis/android-kotlin/rules/compose-ui.md +2 -0
- package/presets/mavis/android-kotlin/rules/design-guidance.md +5 -0
- package/presets/mavis/android-kotlin/rules/mcp-usage.md +8 -0
- package/presets/mavis/android-kotlin/rules/mockup-review.md +4 -0
- package/presets/mavis/android-kotlin/rules/preset-layering.md +1 -1
- package/presets/mavis/android-kotlin/rules/preset-no-cross-stack-leakage.md +4 -0
- package/presets/mavis/android-kotlin/rules/preset-pr-checklist.md +1 -1
- package/presets/mavis/android-kotlin/rules/preset-token-budget.md +10 -10
- package/presets/mavis/android-kotlin/rules/product-specs-authoring.md +6 -0
- package/presets/mavis/android-kotlin/rules/product-specs.md +5 -0
- package/presets/mavis/android-kotlin/rules/ux-design.md +4 -0
- package/presets/mavis/android-kotlin/skills/debug-investigation/SKILL.md +39 -0
- package/presets/mavis/go/adapter-map.json +1 -1
- package/presets/mavis/go/agents/build-verifier.md +1 -1
- package/presets/mavis/go/commands/spec-start.md +2 -2
- package/presets/mavis/go/commands/task.md +6 -6
- package/presets/mavis/go/hooks/chain-team-phases.sh +32 -3
- package/presets/mavis/go/rules/agent-team-intake.md +4 -0
- package/presets/mavis/go/rules/code-quality-and-refactoring.md +15 -0
- package/presets/mavis/go/rules/code-review-mr.md +7 -0
- package/presets/mavis/go/rules/design-guidance.md +5 -0
- package/presets/mavis/go/rules/mcp-usage.md +7 -0
- package/presets/mavis/go/rules/preset-layering.md +1 -1
- package/presets/mavis/go/rules/preset-pr-checklist.md +1 -1
- package/presets/mavis/go/rules/preset-token-budget.md +10 -10
- package/presets/mavis/go/rules/product-specs-authoring.md +6 -0
- package/presets/mavis/go/rules/product-specs.md +6 -0
- package/presets/mavis/go/skills/debug-investigation/SKILL.md +20 -0
- package/presets/mavis/ios-swift/adapter-map.json +1 -1
- package/presets/mavis/ios-swift/agents/build-verifier.md +3 -3
- package/presets/mavis/ios-swift/commands/spec-start.md +2 -2
- package/presets/mavis/ios-swift/commands/task.md +6 -6
- package/presets/mavis/ios-swift/hooks/chain-team-phases.sh +32 -3
- package/presets/mavis/ios-swift/rules/code-quality-and-refactoring.md +14 -0
- package/presets/mavis/ios-swift/rules/code-review-mr.md +39 -0
- package/presets/mavis/ios-swift/rules/design-guidance.md +5 -0
- package/presets/mavis/ios-swift/rules/feature-delivery-workflow.md +66 -0
- package/presets/mavis/ios-swift/rules/mcp-usage.md +8 -0
- package/presets/mavis/ios-swift/rules/mockup-review.md +4 -0
- package/presets/mavis/ios-swift/rules/preset-layering.md +1 -1
- package/presets/mavis/ios-swift/rules/preset-pr-checklist.md +1 -1
- package/presets/mavis/ios-swift/rules/preset-token-budget.md +10 -10
- package/presets/mavis/ios-swift/rules/product-specs-authoring.md +6 -0
- package/presets/mavis/ios-swift/rules/product-specs.md +5 -0
- package/presets/mavis/ios-swift/rules/reference-features.md +49 -0
- package/presets/mavis/ios-swift/rules/swiftui-ui.md +7 -0
- package/presets/mavis/ios-swift/rules/ux-design.md +4 -0
- package/presets/mavis/ios-swift/skills/debug-investigation/SKILL.md +39 -0
- package/presets/mavis/java/adapter-map.json +1 -1
- package/presets/mavis/java/agents/build-verifier.md +1 -1
- package/presets/mavis/java/commands/spec-start.md +2 -2
- package/presets/mavis/java/commands/task.md +6 -6
- package/presets/mavis/java/hooks/chain-team-phases.sh +32 -3
- package/presets/mavis/java/rules/agent-team-intake.md +4 -0
- package/presets/mavis/java/rules/code-quality-and-refactoring.md +15 -0
- package/presets/mavis/java/rules/code-review-mr.md +9 -0
- package/presets/mavis/java/rules/design-guidance.md +6 -0
- package/presets/mavis/java/rules/mcp-usage.md +6 -0
- package/presets/mavis/java/rules/preset-layering.md +1 -1
- package/presets/mavis/java/rules/preset-pr-checklist.md +1 -1
- package/presets/mavis/java/rules/preset-token-budget.md +10 -10
- package/presets/mavis/java/rules/product-specs-authoring.md +6 -0
- package/presets/mavis/java/rules/product-specs.md +6 -0
- package/presets/mavis/java/skills/debug-investigation/SKILL.md +20 -0
- package/presets/mavis/mcp-ts/adapter-map.json +1 -1
- package/presets/mavis/mcp-ts/agents/build-verifier.md +1 -1
- package/presets/mavis/mcp-ts/commands/spec-start.md +2 -2
- package/presets/mavis/mcp-ts/commands/task.md +6 -6
- package/presets/mavis/mcp-ts/hooks/chain-team-phases.sh +32 -3
- package/presets/mavis/mcp-ts/rules/agent-team-intake.md +5 -0
- package/presets/mavis/mcp-ts/rules/anti-sycophancy-discipline.md +4 -0
- package/presets/mavis/mcp-ts/rules/code-quality-and-refactoring.md +15 -0
- package/presets/mavis/mcp-ts/rules/code-review-mr.md +6 -0
- package/presets/mavis/mcp-ts/rules/design-guidance.md +5 -0
- package/presets/mavis/mcp-ts/rules/mcp-usage.md +7 -0
- package/presets/mavis/mcp-ts/rules/preset-layering.md +1 -1
- package/presets/mavis/mcp-ts/rules/preset-pr-checklist.md +1 -1
- package/presets/mavis/mcp-ts/rules/preset-token-budget.md +10 -10
- package/presets/mavis/mcp-ts/rules/product-specs-authoring.md +6 -0
- package/presets/mavis/mcp-ts/rules/product-specs.md +6 -0
- package/presets/mavis/mcp-ts/skills/debug-investigation/SKILL.md +15 -0
- package/presets/mavis/next/adapter-map.json +1 -1
- package/presets/mavis/next/agents/build-verifier.md +2 -2
- package/presets/mavis/next/commands/spec-start.md +2 -2
- package/presets/mavis/next/commands/task.md +6 -6
- package/presets/mavis/next/hooks/chain-team-phases.sh +32 -3
- package/presets/mavis/next/rules/api-services.md +6 -4
- package/presets/mavis/next/rules/code-quality-and-refactoring.md +13 -0
- package/presets/mavis/next/rules/code-review-mr.md +13 -0
- package/presets/mavis/next/rules/design-guidance.md +5 -0
- package/presets/mavis/next/rules/feature-delivery-workflow.md +85 -0
- package/presets/mavis/next/rules/mcp-usage.md +9 -0
- package/presets/mavis/next/rules/mockup-review.md +4 -0
- package/presets/mavis/next/rules/next-app-core.md +2 -1
- package/presets/mavis/next/rules/preset-layering.md +1 -1
- package/presets/mavis/next/rules/preset-pr-checklist.md +1 -1
- package/presets/mavis/next/rules/preset-token-budget.md +10 -10
- package/presets/mavis/next/rules/product-specs-authoring.md +6 -0
- package/presets/mavis/next/rules/product-specs.md +6 -0
- package/presets/mavis/next/rules/react-ui.md +37 -1
- package/presets/mavis/next/rules/reference-features.md +36 -0
- package/presets/mavis/next/rules/store-rtk.md +6 -5
- package/presets/mavis/next/rules/tests-e2e-structure.md +15 -0
- package/presets/mavis/next/rules/tests-unit.md +33 -0
- package/presets/mavis/next/rules/ux-design.md +4 -0
- package/presets/mavis/next/skills/debug-investigation/SKILL.md +28 -0
- package/presets/mavis/nuxt/adapter-map.json +1 -1
- package/presets/mavis/nuxt/agents/build-verifier.md +2 -2
- package/presets/mavis/nuxt/commands/spec-start.md +2 -2
- package/presets/mavis/nuxt/commands/task.md +6 -6
- package/presets/mavis/nuxt/hooks/chain-team-phases.sh +32 -3
- package/presets/mavis/nuxt/rules/code-quality-and-refactoring.md +13 -0
- package/presets/mavis/nuxt/rules/code-review-mr.md +13 -0
- package/presets/mavis/nuxt/rules/design-guidance.md +5 -0
- package/presets/mavis/nuxt/rules/feature-delivery-workflow.md +82 -0
- package/presets/mavis/nuxt/rules/mcp-usage.md +9 -0
- package/presets/mavis/nuxt/rules/mockup-review.md +4 -0
- package/presets/mavis/nuxt/rules/preset-layering.md +1 -1
- package/presets/mavis/nuxt/rules/preset-pr-checklist.md +1 -1
- package/presets/mavis/nuxt/rules/preset-token-budget.md +10 -10
- package/presets/mavis/nuxt/rules/product-specs-authoring.md +6 -0
- package/presets/mavis/nuxt/rules/product-specs.md +5 -0
- package/presets/mavis/nuxt/rules/reference-features.md +36 -0
- package/presets/mavis/nuxt/rules/tests-e2e-structure.md +16 -0
- package/presets/mavis/nuxt/rules/tests-unit.md +11 -0
- package/presets/mavis/nuxt/rules/ux-design.md +4 -0
- package/presets/mavis/nuxt/rules/vue-ui.md +7 -0
- package/presets/mavis/nuxt/skills/debug-investigation/SKILL.md +30 -0
- package/presets/mavis/php-hexagonal/adapter-map.json +1 -1
- package/presets/mavis/php-hexagonal/agents/build-verifier.md +1 -1
- package/presets/mavis/php-hexagonal/commands/spec-start.md +2 -2
- package/presets/mavis/php-hexagonal/commands/task.md +6 -6
- package/presets/mavis/php-hexagonal/hooks/chain-team-phases.sh +32 -3
- package/presets/mavis/php-hexagonal/rules/agent-team-intake.md +4 -0
- package/presets/mavis/php-hexagonal/rules/code-quality-and-refactoring.md +15 -0
- package/presets/mavis/php-hexagonal/rules/code-review-mr.md +9 -0
- package/presets/mavis/php-hexagonal/rules/design-guidance.md +6 -0
- package/presets/mavis/php-hexagonal/rules/mcp-usage.md +6 -0
- package/presets/mavis/php-hexagonal/rules/preset-layering.md +1 -1
- package/presets/mavis/php-hexagonal/rules/preset-pr-checklist.md +1 -1
- package/presets/mavis/php-hexagonal/rules/preset-token-budget.md +10 -10
- package/presets/mavis/php-hexagonal/rules/product-specs-authoring.md +6 -0
- package/presets/mavis/php-hexagonal/rules/product-specs.md +6 -0
- package/presets/mavis/php-hexagonal/skills/debug-investigation/SKILL.md +20 -0
- package/presets/mavis/php-laravel/adapter-map.json +1 -1
- package/presets/mavis/php-laravel/agents/build-verifier.md +1 -1
- package/presets/mavis/php-laravel/commands/spec-start.md +2 -2
- package/presets/mavis/php-laravel/commands/task.md +6 -6
- package/presets/mavis/php-laravel/hooks/chain-team-phases.sh +32 -3
- package/presets/mavis/php-laravel/rules/agent-team-intake.md +4 -0
- package/presets/mavis/php-laravel/rules/code-quality-and-refactoring.md +15 -0
- package/presets/mavis/php-laravel/rules/code-review-mr.md +10 -0
- package/presets/mavis/php-laravel/rules/design-guidance.md +6 -0
- package/presets/mavis/php-laravel/rules/mcp-usage.md +6 -0
- package/presets/mavis/php-laravel/rules/preset-layering.md +1 -1
- package/presets/mavis/php-laravel/rules/preset-pr-checklist.md +1 -1
- package/presets/mavis/php-laravel/rules/preset-token-budget.md +10 -10
- package/presets/mavis/php-laravel/rules/product-specs-authoring.md +6 -0
- package/presets/mavis/php-laravel/rules/product-specs.md +6 -0
- package/presets/mavis/php-laravel/skills/debug-investigation/SKILL.md +20 -0
- package/presets/mavis/svelte/adapter-map.json +1 -1
- package/presets/mavis/svelte/agents/build-verifier.md +2 -2
- package/presets/mavis/svelte/commands/spec-start.md +2 -2
- package/presets/mavis/svelte/commands/task.md +6 -6
- package/presets/mavis/svelte/hooks/chain-team-phases.sh +32 -3
- package/presets/mavis/svelte/rules/code-quality-and-refactoring.md +13 -0
- package/presets/mavis/svelte/rules/code-review-mr.md +13 -0
- package/presets/mavis/svelte/rules/design-guidance.md +5 -0
- package/presets/mavis/svelte/rules/feature-delivery-workflow.md +54 -0
- package/presets/mavis/svelte/rules/mcp-usage.md +9 -0
- package/presets/mavis/svelte/rules/mockup-review.md +4 -0
- package/presets/mavis/svelte/rules/preset-layering.md +1 -1
- package/presets/mavis/svelte/rules/preset-pr-checklist.md +1 -1
- package/presets/mavis/svelte/rules/preset-token-budget.md +10 -10
- package/presets/mavis/svelte/rules/product-specs-authoring.md +6 -0
- package/presets/mavis/svelte/rules/product-specs.md +5 -0
- package/presets/mavis/svelte/rules/reference-features.md +37 -0
- package/presets/mavis/svelte/rules/svelte-ui.md +7 -0
- package/presets/mavis/svelte/rules/tests-e2e-structure.md +16 -0
- package/presets/mavis/svelte/rules/tests-unit.md +11 -0
- package/presets/mavis/svelte/rules/ux-design.md +4 -0
- package/presets/mavis/svelte/skills/debug-investigation/SKILL.md +30 -0
- package/presets/opencode/android-kotlin/adapter-map.json +1 -1
- package/presets/opencode/android-kotlin/agents/build-verifier.md +2 -2
- package/presets/opencode/android-kotlin/commands/spec-start.md +1 -1
- package/presets/opencode/android-kotlin/commands/task-continue.md +1 -1
- package/presets/opencode/android-kotlin/commands/task.md +1 -1
- package/presets/opencode/android-kotlin/commands/technical-retro.md +1 -1
- package/presets/opencode/android-kotlin/hooks/chain-team-phases.sh +32 -3
- package/presets/opencode/android-kotlin/rules/code-quality-and-refactoring.md +14 -0
- package/presets/opencode/android-kotlin/rules/code-review-mr.md +39 -0
- package/presets/opencode/android-kotlin/rules/compose-ui.md +2 -0
- package/presets/opencode/android-kotlin/rules/design-guidance.md +5 -0
- package/presets/opencode/android-kotlin/rules/mcp-usage.md +8 -0
- package/presets/opencode/android-kotlin/rules/mockup-review.md +4 -0
- package/presets/opencode/android-kotlin/rules/preset-layering.md +1 -1
- package/presets/opencode/android-kotlin/rules/preset-no-cross-stack-leakage.md +4 -0
- package/presets/opencode/android-kotlin/rules/preset-pr-checklist.md +1 -1
- package/presets/opencode/android-kotlin/rules/preset-token-budget.md +10 -10
- package/presets/opencode/android-kotlin/rules/product-specs-authoring.md +6 -0
- package/presets/opencode/android-kotlin/rules/product-specs.md +5 -0
- package/presets/opencode/android-kotlin/rules/ux-design.md +4 -0
- package/presets/opencode/android-kotlin/skills/ci-investigation/SKILL.md +1 -1
- package/presets/opencode/android-kotlin/skills/code-review/SKILL.md +1 -1
- package/presets/opencode/android-kotlin/skills/debug-investigation/SKILL.md +1 -1
- package/presets/opencode/android-kotlin/skills/feature-delivery/SKILL.md +1 -1
- package/presets/opencode/android-kotlin/skills/instrumentation-ui-e2e/SKILL.md +1 -1
- package/presets/opencode/android-kotlin/skills/mockup-review/SKILL.md +1 -1
- package/presets/opencode/android-kotlin/skills/spec-authoring/SKILL.md +1 -1
- package/presets/opencode/android-kotlin/skills/spec-discovery/SKILL.md +1 -1
- package/presets/opencode/android-kotlin/skills/technical-retro/SKILL.md +1 -1
- package/presets/opencode/android-kotlin/skills/unit-testing/SKILL.md +1 -1
- package/presets/opencode/android-kotlin/skills/ux-design/SKILL.md +1 -1
- package/presets/opencode/android-kotlin/skills/write-adr/SKILL.md +1 -1
- package/presets/opencode/go/adapter-map.json +1 -1
- package/presets/opencode/go/agents/build-verifier.md +1 -1
- package/presets/opencode/go/commands/spec-start.md +1 -1
- package/presets/opencode/go/commands/task-continue.md +1 -1
- package/presets/opencode/go/commands/task.md +1 -1
- package/presets/opencode/go/commands/technical-retro.md +1 -1
- package/presets/opencode/go/hooks/chain-team-phases.sh +32 -3
- package/presets/opencode/go/rules/agent-team-intake.md +4 -0
- package/presets/opencode/go/rules/code-quality-and-refactoring.md +15 -0
- package/presets/opencode/go/rules/code-review-mr.md +7 -0
- package/presets/opencode/go/rules/design-guidance.md +5 -0
- package/presets/opencode/go/rules/mcp-usage.md +7 -0
- package/presets/opencode/go/rules/preset-layering.md +1 -1
- package/presets/opencode/go/rules/preset-pr-checklist.md +1 -1
- package/presets/opencode/go/rules/preset-token-budget.md +10 -10
- package/presets/opencode/go/rules/product-specs-authoring.md +6 -0
- package/presets/opencode/go/rules/product-specs.md +6 -0
- package/presets/opencode/go/skills/ci-investigation/SKILL.md +1 -1
- package/presets/opencode/go/skills/code-review/SKILL.md +1 -1
- package/presets/opencode/go/skills/debug-investigation/SKILL.md +1 -1
- package/presets/opencode/go/skills/feature-delivery/SKILL.md +1 -1
- package/presets/opencode/go/skills/integration-testing/SKILL.md +1 -1
- package/presets/opencode/go/skills/spec-authoring/SKILL.md +1 -1
- package/presets/opencode/go/skills/spec-discovery/SKILL.md +1 -1
- package/presets/opencode/go/skills/technical-retro/SKILL.md +1 -1
- package/presets/opencode/go/skills/unit-testing/SKILL.md +1 -1
- package/presets/opencode/go/skills/write-adr/SKILL.md +1 -1
- package/presets/opencode/ios-swift/adapter-map.json +1 -1
- package/presets/opencode/ios-swift/agents/build-verifier.md +3 -3
- package/presets/opencode/ios-swift/commands/spec-start.md +1 -1
- package/presets/opencode/ios-swift/commands/task-continue.md +1 -1
- package/presets/opencode/ios-swift/commands/task.md +1 -1
- package/presets/opencode/ios-swift/commands/technical-retro.md +1 -1
- package/presets/opencode/ios-swift/hooks/chain-team-phases.sh +32 -3
- package/presets/opencode/ios-swift/rules/code-quality-and-refactoring.md +14 -0
- package/presets/opencode/ios-swift/rules/code-review-mr.md +39 -0
- package/presets/opencode/ios-swift/rules/design-guidance.md +5 -0
- package/presets/opencode/ios-swift/rules/feature-delivery-workflow.md +66 -0
- package/presets/opencode/ios-swift/rules/mcp-usage.md +8 -0
- package/presets/opencode/ios-swift/rules/mockup-review.md +4 -0
- package/presets/opencode/ios-swift/rules/preset-layering.md +1 -1
- package/presets/opencode/ios-swift/rules/preset-pr-checklist.md +1 -1
- package/presets/opencode/ios-swift/rules/preset-token-budget.md +10 -10
- package/presets/opencode/ios-swift/rules/product-specs-authoring.md +6 -0
- package/presets/opencode/ios-swift/rules/product-specs.md +5 -0
- package/presets/opencode/ios-swift/rules/reference-features.md +49 -0
- package/presets/opencode/ios-swift/rules/swiftui-ui.md +7 -0
- package/presets/opencode/ios-swift/rules/ux-design.md +4 -0
- package/presets/opencode/ios-swift/skills/ci-investigation/SKILL.md +1 -1
- package/presets/opencode/ios-swift/skills/code-review/SKILL.md +1 -1
- package/presets/opencode/ios-swift/skills/debug-investigation/SKILL.md +1 -1
- package/presets/opencode/ios-swift/skills/feature-delivery/SKILL.md +1 -1
- package/presets/opencode/ios-swift/skills/mockup-review/SKILL.md +1 -1
- package/presets/opencode/ios-swift/skills/spec-authoring/SKILL.md +1 -1
- package/presets/opencode/ios-swift/skills/spec-discovery/SKILL.md +1 -1
- package/presets/opencode/ios-swift/skills/technical-retro/SKILL.md +1 -1
- package/presets/opencode/ios-swift/skills/unit-testing/SKILL.md +1 -1
- package/presets/opencode/ios-swift/skills/ux-design/SKILL.md +1 -1
- package/presets/opencode/ios-swift/skills/write-adr/SKILL.md +1 -1
- package/presets/opencode/ios-swift/skills/xcuitest-e2e/SKILL.md +1 -1
- package/presets/opencode/java/adapter-map.json +1 -1
- package/presets/opencode/java/agents/build-verifier.md +1 -1
- package/presets/opencode/java/commands/spec-start.md +1 -1
- package/presets/opencode/java/commands/task-continue.md +1 -1
- package/presets/opencode/java/commands/task.md +1 -1
- package/presets/opencode/java/commands/technical-retro.md +1 -1
- package/presets/opencode/java/hooks/chain-team-phases.sh +32 -3
- package/presets/opencode/java/rules/agent-team-intake.md +4 -0
- package/presets/opencode/java/rules/code-quality-and-refactoring.md +15 -0
- package/presets/opencode/java/rules/code-review-mr.md +9 -0
- package/presets/opencode/java/rules/design-guidance.md +6 -0
- package/presets/opencode/java/rules/mcp-usage.md +6 -0
- package/presets/opencode/java/rules/preset-layering.md +1 -1
- package/presets/opencode/java/rules/preset-pr-checklist.md +1 -1
- package/presets/opencode/java/rules/preset-token-budget.md +10 -10
- package/presets/opencode/java/rules/product-specs-authoring.md +6 -0
- package/presets/opencode/java/rules/product-specs.md +6 -0
- package/presets/opencode/java/skills/ci-investigation/SKILL.md +1 -1
- package/presets/opencode/java/skills/code-review/SKILL.md +1 -1
- package/presets/opencode/java/skills/debug-investigation/SKILL.md +1 -1
- package/presets/opencode/java/skills/feature-delivery/SKILL.md +1 -1
- package/presets/opencode/java/skills/integration-testing/SKILL.md +1 -1
- package/presets/opencode/java/skills/spec-authoring/SKILL.md +1 -1
- package/presets/opencode/java/skills/spec-discovery/SKILL.md +1 -1
- package/presets/opencode/java/skills/technical-retro/SKILL.md +1 -1
- package/presets/opencode/java/skills/unit-testing/SKILL.md +1 -1
- package/presets/opencode/java/skills/write-adr/SKILL.md +1 -1
- package/presets/opencode/mcp-ts/adapter-map.json +1 -1
- package/presets/opencode/mcp-ts/agents/build-verifier.md +1 -1
- package/presets/opencode/mcp-ts/commands/spec-start.md +1 -1
- package/presets/opencode/mcp-ts/commands/task-continue.md +1 -1
- package/presets/opencode/mcp-ts/commands/task.md +1 -1
- package/presets/opencode/mcp-ts/commands/technical-retro.md +1 -1
- package/presets/opencode/mcp-ts/hooks/chain-team-phases.sh +32 -3
- package/presets/opencode/mcp-ts/rules/agent-team-intake.md +5 -0
- package/presets/opencode/mcp-ts/rules/anti-sycophancy-discipline.md +4 -0
- package/presets/opencode/mcp-ts/rules/code-quality-and-refactoring.md +15 -0
- package/presets/opencode/mcp-ts/rules/code-review-mr.md +6 -0
- package/presets/opencode/mcp-ts/rules/design-guidance.md +5 -0
- package/presets/opencode/mcp-ts/rules/mcp-usage.md +7 -0
- package/presets/opencode/mcp-ts/rules/preset-layering.md +1 -1
- package/presets/opencode/mcp-ts/rules/preset-pr-checklist.md +1 -1
- package/presets/opencode/mcp-ts/rules/preset-token-budget.md +10 -10
- package/presets/opencode/mcp-ts/rules/product-specs-authoring.md +6 -0
- package/presets/opencode/mcp-ts/rules/product-specs.md +6 -0
- package/presets/opencode/mcp-ts/skills/code-review/SKILL.md +1 -1
- package/presets/opencode/mcp-ts/skills/debug-investigation/SKILL.md +1 -1
- package/presets/opencode/mcp-ts/skills/feature-delivery/SKILL.md +1 -1
- package/presets/opencode/mcp-ts/skills/spec-authoring/SKILL.md +1 -1
- package/presets/opencode/mcp-ts/skills/spec-discovery/SKILL.md +1 -1
- package/presets/opencode/mcp-ts/skills/unit-testing/SKILL.md +1 -1
- package/presets/opencode/next/adapter-map.json +1 -1
- package/presets/opencode/next/agents/build-verifier.md +2 -2
- package/presets/opencode/next/commands/spec-start.md +1 -1
- package/presets/opencode/next/commands/task-continue.md +1 -1
- package/presets/opencode/next/commands/task.md +1 -1
- package/presets/opencode/next/commands/technical-retro.md +1 -1
- package/presets/opencode/next/hooks/chain-team-phases.sh +32 -3
- package/presets/opencode/next/rules/api-services.md +6 -4
- package/presets/opencode/next/rules/code-quality-and-refactoring.md +13 -0
- package/presets/opencode/next/rules/code-review-mr.md +13 -0
- package/presets/opencode/next/rules/design-guidance.md +5 -0
- package/presets/opencode/next/rules/feature-delivery-workflow.md +85 -0
- package/presets/opencode/next/rules/mcp-usage.md +9 -0
- package/presets/opencode/next/rules/mockup-review.md +4 -0
- package/presets/opencode/next/rules/next-app-core.md +2 -1
- package/presets/opencode/next/rules/preset-layering.md +1 -1
- package/presets/opencode/next/rules/preset-pr-checklist.md +1 -1
- package/presets/opencode/next/rules/preset-token-budget.md +10 -10
- package/presets/opencode/next/rules/product-specs-authoring.md +6 -0
- package/presets/opencode/next/rules/product-specs.md +6 -0
- package/presets/opencode/next/rules/react-ui.md +37 -1
- package/presets/opencode/next/rules/reference-features.md +36 -0
- package/presets/opencode/next/rules/store-rtk.md +6 -5
- package/presets/opencode/next/rules/tests-e2e-structure.md +15 -0
- package/presets/opencode/next/rules/tests-unit.md +33 -0
- package/presets/opencode/next/rules/ux-design.md +4 -0
- package/presets/opencode/next/skills/ci-investigation/SKILL.md +1 -1
- package/presets/opencode/next/skills/code-review/SKILL.md +1 -1
- package/presets/opencode/next/skills/debug-investigation/SKILL.md +1 -1
- package/presets/opencode/next/skills/feature-delivery/SKILL.md +1 -1
- package/presets/opencode/next/skills/mockup-review/SKILL.md +1 -1
- package/presets/opencode/next/skills/playwright-e2e/SKILL.md +1 -1
- package/presets/opencode/next/skills/react-performance/SKILL.md +1 -1
- package/presets/opencode/next/skills/spec-authoring/SKILL.md +1 -1
- package/presets/opencode/next/skills/spec-discovery/SKILL.md +1 -1
- package/presets/opencode/next/skills/technical-retro/SKILL.md +1 -1
- package/presets/opencode/next/skills/unit-testing/SKILL.md +1 -1
- package/presets/opencode/next/skills/ux-design/SKILL.md +1 -1
- package/presets/opencode/next/skills/write-adr/SKILL.md +1 -1
- package/presets/opencode/nuxt/adapter-map.json +1 -1
- package/presets/opencode/nuxt/agents/build-verifier.md +2 -2
- package/presets/opencode/nuxt/commands/spec-start.md +1 -1
- package/presets/opencode/nuxt/commands/task-continue.md +1 -1
- package/presets/opencode/nuxt/commands/task.md +1 -1
- package/presets/opencode/nuxt/commands/technical-retro.md +1 -1
- package/presets/opencode/nuxt/hooks/chain-team-phases.sh +32 -3
- package/presets/opencode/nuxt/rules/code-quality-and-refactoring.md +13 -0
- package/presets/opencode/nuxt/rules/code-review-mr.md +13 -0
- package/presets/opencode/nuxt/rules/design-guidance.md +5 -0
- package/presets/opencode/nuxt/rules/feature-delivery-workflow.md +82 -0
- package/presets/opencode/nuxt/rules/mcp-usage.md +9 -0
- package/presets/opencode/nuxt/rules/mockup-review.md +4 -0
- package/presets/opencode/nuxt/rules/preset-layering.md +1 -1
- package/presets/opencode/nuxt/rules/preset-pr-checklist.md +1 -1
- package/presets/opencode/nuxt/rules/preset-token-budget.md +10 -10
- package/presets/opencode/nuxt/rules/product-specs-authoring.md +6 -0
- package/presets/opencode/nuxt/rules/product-specs.md +5 -0
- package/presets/opencode/nuxt/rules/reference-features.md +36 -0
- package/presets/opencode/nuxt/rules/tests-e2e-structure.md +16 -0
- package/presets/opencode/nuxt/rules/tests-unit.md +11 -0
- package/presets/opencode/nuxt/rules/ux-design.md +4 -0
- package/presets/opencode/nuxt/rules/vue-ui.md +7 -0
- package/presets/opencode/nuxt/skills/ci-investigation/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/code-review/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/debug-investigation/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/feature-delivery/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/mockup-review/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/playwright-e2e/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/spec-authoring/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/spec-discovery/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/technical-retro/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/unit-testing/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/ux-design/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/vue-performance/SKILL.md +1 -1
- package/presets/opencode/nuxt/skills/write-adr/SKILL.md +1 -1
- package/presets/opencode/php-hexagonal/adapter-map.json +1 -1
- package/presets/opencode/php-hexagonal/agents/build-verifier.md +1 -1
- package/presets/opencode/php-hexagonal/commands/spec-start.md +1 -1
- package/presets/opencode/php-hexagonal/commands/task-continue.md +1 -1
- package/presets/opencode/php-hexagonal/commands/task.md +1 -1
- package/presets/opencode/php-hexagonal/commands/technical-retro.md +1 -1
- package/presets/opencode/php-hexagonal/hooks/chain-team-phases.sh +32 -3
- package/presets/opencode/php-hexagonal/rules/agent-team-intake.md +4 -0
- package/presets/opencode/php-hexagonal/rules/code-quality-and-refactoring.md +15 -0
- package/presets/opencode/php-hexagonal/rules/code-review-mr.md +9 -0
- package/presets/opencode/php-hexagonal/rules/design-guidance.md +6 -0
- package/presets/opencode/php-hexagonal/rules/mcp-usage.md +6 -0
- package/presets/opencode/php-hexagonal/rules/preset-layering.md +1 -1
- package/presets/opencode/php-hexagonal/rules/preset-pr-checklist.md +1 -1
- package/presets/opencode/php-hexagonal/rules/preset-token-budget.md +10 -10
- package/presets/opencode/php-hexagonal/rules/product-specs-authoring.md +6 -0
- package/presets/opencode/php-hexagonal/rules/product-specs.md +6 -0
- package/presets/opencode/php-hexagonal/skills/ci-investigation/SKILL.md +1 -1
- package/presets/opencode/php-hexagonal/skills/code-review/SKILL.md +1 -1
- package/presets/opencode/php-hexagonal/skills/debug-investigation/SKILL.md +1 -1
- package/presets/opencode/php-hexagonal/skills/feature-delivery/SKILL.md +1 -1
- package/presets/opencode/php-hexagonal/skills/integration-testing/SKILL.md +1 -1
- package/presets/opencode/php-hexagonal/skills/spec-authoring/SKILL.md +1 -1
- package/presets/opencode/php-hexagonal/skills/spec-discovery/SKILL.md +1 -1
- package/presets/opencode/php-hexagonal/skills/technical-retro/SKILL.md +1 -1
- package/presets/opencode/php-hexagonal/skills/unit-testing/SKILL.md +1 -1
- package/presets/opencode/php-hexagonal/skills/write-adr/SKILL.md +1 -1
- package/presets/opencode/php-laravel/adapter-map.json +1 -1
- package/presets/opencode/php-laravel/agents/build-verifier.md +1 -1
- package/presets/opencode/php-laravel/commands/spec-start.md +1 -1
- package/presets/opencode/php-laravel/commands/task-continue.md +1 -1
- package/presets/opencode/php-laravel/commands/task.md +1 -1
- package/presets/opencode/php-laravel/commands/technical-retro.md +1 -1
- package/presets/opencode/php-laravel/hooks/chain-team-phases.sh +32 -3
- package/presets/opencode/php-laravel/rules/agent-team-intake.md +4 -0
- package/presets/opencode/php-laravel/rules/code-quality-and-refactoring.md +15 -0
- package/presets/opencode/php-laravel/rules/code-review-mr.md +10 -0
- package/presets/opencode/php-laravel/rules/design-guidance.md +6 -0
- package/presets/opencode/php-laravel/rules/mcp-usage.md +6 -0
- package/presets/opencode/php-laravel/rules/preset-layering.md +1 -1
- package/presets/opencode/php-laravel/rules/preset-pr-checklist.md +1 -1
- package/presets/opencode/php-laravel/rules/preset-token-budget.md +10 -10
- package/presets/opencode/php-laravel/rules/product-specs-authoring.md +6 -0
- package/presets/opencode/php-laravel/rules/product-specs.md +6 -0
- package/presets/opencode/php-laravel/skills/ci-investigation/SKILL.md +1 -1
- package/presets/opencode/php-laravel/skills/code-review/SKILL.md +1 -1
- package/presets/opencode/php-laravel/skills/debug-investigation/SKILL.md +1 -1
- package/presets/opencode/php-laravel/skills/feature-delivery/SKILL.md +1 -1
- package/presets/opencode/php-laravel/skills/integration-testing/SKILL.md +1 -1
- package/presets/opencode/php-laravel/skills/spec-authoring/SKILL.md +1 -1
- package/presets/opencode/php-laravel/skills/spec-discovery/SKILL.md +1 -1
- package/presets/opencode/php-laravel/skills/technical-retro/SKILL.md +1 -1
- package/presets/opencode/php-laravel/skills/unit-testing/SKILL.md +1 -1
- package/presets/opencode/php-laravel/skills/write-adr/SKILL.md +1 -1
- package/presets/opencode/svelte/adapter-map.json +1 -1
- package/presets/opencode/svelte/agents/build-verifier.md +2 -2
- package/presets/opencode/svelte/commands/spec-start.md +1 -1
- package/presets/opencode/svelte/commands/task-continue.md +1 -1
- package/presets/opencode/svelte/commands/task.md +1 -1
- package/presets/opencode/svelte/commands/technical-retro.md +1 -1
- package/presets/opencode/svelte/hooks/chain-team-phases.sh +32 -3
- package/presets/opencode/svelte/rules/code-quality-and-refactoring.md +13 -0
- package/presets/opencode/svelte/rules/code-review-mr.md +13 -0
- package/presets/opencode/svelte/rules/design-guidance.md +5 -0
- package/presets/opencode/svelte/rules/feature-delivery-workflow.md +54 -0
- package/presets/opencode/svelte/rules/mcp-usage.md +9 -0
- package/presets/opencode/svelte/rules/mockup-review.md +4 -0
- package/presets/opencode/svelte/rules/preset-layering.md +1 -1
- package/presets/opencode/svelte/rules/preset-pr-checklist.md +1 -1
- package/presets/opencode/svelte/rules/preset-token-budget.md +10 -10
- package/presets/opencode/svelte/rules/product-specs-authoring.md +6 -0
- package/presets/opencode/svelte/rules/product-specs.md +5 -0
- package/presets/opencode/svelte/rules/reference-features.md +37 -0
- package/presets/opencode/svelte/rules/svelte-ui.md +7 -0
- package/presets/opencode/svelte/rules/tests-e2e-structure.md +16 -0
- package/presets/opencode/svelte/rules/tests-unit.md +11 -0
- package/presets/opencode/svelte/rules/ux-design.md +4 -0
- package/presets/opencode/svelte/skills/ci-investigation/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/code-review/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/debug-investigation/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/feature-delivery/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/mockup-review/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/playwright-e2e/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/spec-authoring/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/spec-discovery/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/svelte-performance/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/technical-retro/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/unit-testing/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/ux-design/SKILL.md +1 -1
- package/presets/opencode/svelte/skills/write-adr/SKILL.md +1 -1
- package/scripts/capture-cli-golden.mjs +8 -5
- package/scripts/check-frontmatter.mjs +83 -0
- package/scripts/check-generated-drift.mjs +106 -0
- package/scripts/check-mavis-token-budget.mjs +1 -1
- package/scripts/check-opencode-token-budget.mjs +1 -1
- package/scripts/check-preset-structure.sh +27 -0
- package/scripts/check-preset-token-budget.sh +16 -17
- package/scripts/check-shared-core-drift.sh +10 -5
- package/scripts/close-agent-task-human-gate.mjs +6 -4
- package/scripts/fixtures/cli-golden/claude/next.json +24 -18
- package/scripts/fixtures/cli-golden/cursor/next.json +17 -17
- package/scripts/fixtures/cli-golden/mavis/android-kotlin.json +18 -18
- package/scripts/fixtures/cli-golden/mavis/go.json +15 -15
- package/scripts/fixtures/cli-golden/mavis/ios-swift.json +19 -19
- package/scripts/fixtures/cli-golden/mavis/java.json +15 -15
- package/scripts/fixtures/cli-golden/mavis/mcp-ts.json +16 -16
- package/scripts/fixtures/cli-golden/mavis/next.json +24 -24
- package/scripts/fixtures/cli-golden/mavis/nuxt.json +21 -21
- package/scripts/fixtures/cli-golden/mavis/php-hexagonal.json +15 -15
- package/scripts/fixtures/cli-golden/mavis/php-laravel.json +15 -15
- package/scripts/fixtures/cli-golden/mavis/svelte.json +21 -21
- package/scripts/fixtures/cli-golden/opencode/android-kotlin.json +31 -31
- package/scripts/fixtures/cli-golden/opencode/go.json +26 -26
- package/scripts/fixtures/cli-golden/opencode/ios-swift.json +32 -32
- package/scripts/fixtures/cli-golden/opencode/java.json +26 -26
- package/scripts/fixtures/cli-golden/opencode/mcp-ts.json +23 -23
- package/scripts/fixtures/cli-golden/opencode/next.json +38 -38
- package/scripts/fixtures/cli-golden/opencode/nuxt.json +35 -35
- package/scripts/fixtures/cli-golden/opencode/php-hexagonal.json +26 -26
- package/scripts/fixtures/cli-golden/opencode/php-laravel.json +26 -26
- package/scripts/fixtures/cli-golden/opencode/svelte.json +35 -35
- package/scripts/lib/generate-adapter-common.mjs +11 -0
- package/scripts/lib/generate-mavis-adapter.mjs +20 -10
- package/scripts/lib/generate-opencode-adapter.mjs +19 -4
- package/scripts/test-agent-task-metrics-hooks.mjs +5 -5
- package/scripts/test-chain-team-phases-coverage.mjs +176 -1
- package/scripts/test-cli-init-clean.mjs +165 -34
- package/scripts/test-mavis-context-budget.mjs +1 -1
- package/scripts/test-opencode-context-budget.mjs +1 -1
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
".opencode/MCP.md": "f3fbf0631ca5cb25bbd8bc6a98ac31ff1d49f23f23c09aa29ef8ccefb69b1159",
|
|
14
14
|
".opencode/agents/README.md": "515e1d6731eb792b1ff88703bf0b34a0e651416f32ec8ee7c5ccd2f4e3cd7905",
|
|
15
15
|
".opencode/agents/api-contract-reviewer.md": "9f5b49107d40d7f886bdfa20f31d8732dda21605fb4e007364722943bbeb8883",
|
|
16
|
-
".opencode/agents/build-verifier.md": "
|
|
16
|
+
".opencode/agents/build-verifier.md": "c1c81a50c9d8fb3b1be0fc0074a4c4acc0cbfc8fda3cdafa0179b164c8e39dfd",
|
|
17
17
|
".opencode/agents/ci-investigator.md": "5f8242be6b0cfb7a4be2e030f3a04cd2877686e0479891482f15909a2f3e957b",
|
|
18
18
|
".opencode/agents/code-reviewer.md": "a103783c4c06c272a676828cbda6c7bff40a8e6cc2fb974f5bcd0727ad7a190e",
|
|
19
19
|
".opencode/agents/codebase-analyzer.md": "c07a6ab250b11e0814055673402240e6b14576809f74f8db49dfde5335fc32ca",
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
".opencode/agents/unit-test-healer.md": "3f85a3efa08f36ffb0267970761e2b1bb74f7466bbaba056b7fcc0ad0d0e7bd7",
|
|
36
36
|
".opencode/agents/unit-test-planner.md": "c1ea42fe9b48b5ddd5d9733947bd747df71a5e67aa9b4ec82bee2777190ac7d2",
|
|
37
37
|
".opencode/commands/README.md": "4808ae81073033610f243e9c641a489acd0b5b3c260b7a386a7e95d403fdd98c",
|
|
38
|
-
".opencode/commands/spec-start.md": "
|
|
39
|
-
".opencode/commands/task-continue.md": "
|
|
40
|
-
".opencode/commands/task.md": "
|
|
41
|
-
".opencode/commands/technical-retro.md": "
|
|
38
|
+
".opencode/commands/spec-start.md": "0e7f610784a24c9feca8ecce14934d85233821265258fe09abab2892b9f81e0b",
|
|
39
|
+
".opencode/commands/task-continue.md": "59e00f4b39adcd20a5dfe95c40df3d35f96923290918ae6eca25b17083ce1f3b",
|
|
40
|
+
".opencode/commands/task.md": "816d47ffd1fd073c1397c5d48f025229814a5dedaff92d079fdc6d1d5294dd9b",
|
|
41
|
+
".opencode/commands/technical-retro.md": "519f2d5333e035234e7d09e4060a65ef50c4b5953c784766b8d9c7737e17be38",
|
|
42
42
|
".opencode/hooks/README.md": "535fc0c1f2400822f10adc0dca6a75f0860098c12868576397b0c7c0db4a471b",
|
|
43
|
-
".opencode/hooks/chain-team-phases.sh": "
|
|
43
|
+
".opencode/hooks/chain-team-phases.sh": "e33a1100db57882a8257eb129a2c37021a54437f774e4fd63bb4d6d26f372b6f",
|
|
44
44
|
".opencode/rules/README.md": "ac09f4d1c43f70aead4d6f37b37d575aff05f6f8476f56f84551805d62fe50e2",
|
|
45
45
|
".opencode/rules/adapters-driven.md": "0e1665f87b27406bced1045d66ae617143d7dbea125dfdd421657b77386b890e",
|
|
46
46
|
".opencode/rules/adapters-driving.md": "7f7965704b72ede90b7a83b45751f698796724a68d1bbf0fb1ed3f4f9c6ff61a",
|
|
47
|
-
".opencode/rules/agent-team-intake.md": "
|
|
47
|
+
".opencode/rules/agent-team-intake.md": "47c85423f7a556c964b7cd895bdf01ca277474716adc7610a492c05bdbc7c2f0",
|
|
48
48
|
".opencode/rules/agent-team-orchestrator.md": "c4d84f79b02422d25e94005cc79d25926f918c0500701def393293690c927a97",
|
|
49
49
|
".opencode/rules/ai-local-overlay.md": "5a5f8d29d15bfb76a8e6cc631abb729599cea347f6ebb8221195758a5eab87a1",
|
|
50
50
|
".opencode/rules/anti-sycophancy-discipline.md": "653231c835a98f944e2c125fe5f8cf818b56c0f3602e469488dac1b2267da023",
|
|
@@ -52,13 +52,13 @@
|
|
|
52
52
|
".opencode/rules/api-http.md": "d05ccec89434551fb8e4fea5505869a4278d28da4b8225d41d3f21d4bc003446",
|
|
53
53
|
".opencode/rules/application-usecases.md": "11069b22eef297553d7591dab15468d59659507b78bd62b73121336e3ffd175d",
|
|
54
54
|
".opencode/rules/architecture-boundaries.md": "c06686f8ff1ed82e3d00ce02b84b55c6d406f9d7eca570a53dff2315dae74f07",
|
|
55
|
-
".opencode/rules/code-quality-and-refactoring.md": "
|
|
56
|
-
".opencode/rules/code-review-mr.md": "
|
|
55
|
+
".opencode/rules/code-quality-and-refactoring.md": "17890ba0938ae2b1aff2b3111acd3a273942c804ac689c3537eab2d35a319558",
|
|
56
|
+
".opencode/rules/code-review-mr.md": "ca56abdb4e31b65b6c1a29faef4fdb22be3a4876acf722c0aafef0265a22da0a",
|
|
57
57
|
".opencode/rules/composition-root.md": "6276d52734470483f2c05b39393a7eb33bebb0655283c57bc64024aad28bf16e",
|
|
58
|
-
".opencode/rules/design-guidance.md": "
|
|
58
|
+
".opencode/rules/design-guidance.md": "74b3daadd1b37b4732dbf43797b0a5dc247990c35b134ffdfd06e82debaa1a80",
|
|
59
59
|
".opencode/rules/domain-layer.md": "bede7ac25c4bbc5bf3dac661ac89ac055aee5b975a5fa368a5db82d44949220c",
|
|
60
60
|
".opencode/rules/feature-delivery-workflow.md": "62418cc3ead5e132a6b2a7986e83149d3bfc7947df3973750f925733b8ed20f3",
|
|
61
|
-
".opencode/rules/mcp-usage.md": "
|
|
61
|
+
".opencode/rules/mcp-usage.md": "796092d4eb373c1622a16d5d20ab9af276352ca6f7a5ef00892d883436e77af1",
|
|
62
62
|
".opencode/rules/messaging-adapters.md": "04ab9eeae298c0a5757c88fac1aa1a25d9429a07c471c4528d80ed51aa08a551",
|
|
63
63
|
".opencode/rules/module-public-api.md": "24f8434707f75ecdf63940aaae4d55ed090b12628d8a78d1acdc534be708dab9",
|
|
64
64
|
".opencode/rules/persistence-adapters.md": "25c6fad4e1297d5db8a95db9a701a1e71cdefa128cdfacf6f01fa47f8e72004d",
|
|
@@ -67,13 +67,13 @@
|
|
|
67
67
|
".opencode/rules/php-tooling.md": "fed714666951243d1e2ae244b47a15e0a6e7731a8e7776c268ef7243b33fb89e",
|
|
68
68
|
".opencode/rules/ports-interfaces.md": "fdc49ca7e8e4a760b9a41b81878a740bc021f350edd414a00781c14a7a26264b",
|
|
69
69
|
".opencode/rules/post-change-test.md": "f327605a74be5218fdb46f0075182bcd45e6ed25f2287981c4d4c2c76d600018",
|
|
70
|
-
".opencode/rules/preset-layering.md": "
|
|
70
|
+
".opencode/rules/preset-layering.md": "c63d6b6aa921b70c6c9b531e9d9bcb8b3d81b6a6354da9e4109b5149f5cb8a73",
|
|
71
71
|
".opencode/rules/preset-no-cross-stack-leakage.md": "8933a929a78af3585c7b546736dc8d068bf9ff2f925c9fccbbdcf82d624d20a0",
|
|
72
|
-
".opencode/rules/preset-pr-checklist.md": "
|
|
73
|
-
".opencode/rules/preset-token-budget.md": "
|
|
72
|
+
".opencode/rules/preset-pr-checklist.md": "6dcfb78d2cf68c11944243e3e4e10f6be210a4dad1497986f4aa439d1c04543f",
|
|
73
|
+
".opencode/rules/preset-token-budget.md": "d539545f8ab0dc6117f87c76c044fce9a01256d8cdea8a63b69ff48ccb8b7ac0",
|
|
74
74
|
".opencode/rules/preset-twin-sync.md": "b3061cbb09ff75ecb47e98b7f7fa351240866ee8962a1d128b7c15206ef89dee",
|
|
75
|
-
".opencode/rules/product-specs-authoring.md": "
|
|
76
|
-
".opencode/rules/product-specs.md": "
|
|
75
|
+
".opencode/rules/product-specs-authoring.md": "6b7b7bb5b04ba12d93c63908304dc5342803728eb79e386ea018a7d51e501079",
|
|
76
|
+
".opencode/rules/product-specs.md": "b694ec5b7622c2dfa1239cb80ceac87019959dc7f23778e96d06af7b1a233ddc",
|
|
77
77
|
".opencode/rules/reference-features.md": "693cf6f08dd69cd358ba4c47cccc1231868c9db32f28c9a7e3ad8c85ffa9984a",
|
|
78
78
|
".opencode/rules/security-php.md": "9b61ed76f0cb0948b52550de8ed7301bd0b172f2fc2521985781e020e6cfc3b8",
|
|
79
79
|
".opencode/rules/technical-retro.md": "5f9ed6b3b86035866e26d153a60805da08c4670f3d46581bde1839469861b179",
|
|
@@ -81,16 +81,16 @@
|
|
|
81
81
|
".opencode/rules/tests-integration.md": "1c12ad81f574c826c00b29a1d88a3f2d09ca52515d3fc4f4d26627c193895828",
|
|
82
82
|
".opencode/rules/tests-unit.md": "10ca2c55cfeec77753173b249ae09064007998c5dd9bed44497aa227fc63fed0",
|
|
83
83
|
".opencode/skills/README.md": "a865635b916dd5e26284f0bc54e405a5d2edccf51f0f711a1b54fa3ba694b578",
|
|
84
|
-
".opencode/skills/ci-investigation/SKILL.md": "
|
|
85
|
-
".opencode/skills/code-review/SKILL.md": "
|
|
86
|
-
".opencode/skills/debug-investigation/SKILL.md": "
|
|
87
|
-
".opencode/skills/feature-delivery/SKILL.md": "
|
|
88
|
-
".opencode/skills/integration-testing/SKILL.md": "
|
|
89
|
-
".opencode/skills/spec-authoring/SKILL.md": "
|
|
90
|
-
".opencode/skills/spec-discovery/SKILL.md": "
|
|
91
|
-
".opencode/skills/technical-retro/SKILL.md": "
|
|
92
|
-
".opencode/skills/unit-testing/SKILL.md": "
|
|
93
|
-
".opencode/skills/write-adr/SKILL.md": "
|
|
84
|
+
".opencode/skills/ci-investigation/SKILL.md": "7dd0ab37db805a431745f7d6efedd3d1e5ae2d1040c855e674f3e1d99583931e",
|
|
85
|
+
".opencode/skills/code-review/SKILL.md": "547dfc7a5282b0a888ef4e3e0f46e0ff788618e404e1667533088ecfb35ef15f",
|
|
86
|
+
".opencode/skills/debug-investigation/SKILL.md": "57e38e4ec614b8c39d8f23591394e91cb8ba2a6ce0034a178a80bf8a1cfdc6bd",
|
|
87
|
+
".opencode/skills/feature-delivery/SKILL.md": "5504bf391ccf2bc0b3e18a487c76ebb943fb2df1cead4e82225e7981a40ccb2d",
|
|
88
|
+
".opencode/skills/integration-testing/SKILL.md": "99127ba8f89f3c1047df3f0f32a7081f5bf38abd8222b7c1a1d9ef0da5a1626a",
|
|
89
|
+
".opencode/skills/spec-authoring/SKILL.md": "2a5515d07ea57f34da982d5ebd5ed5814f0bcb5e919f87da9937fc81127fa908",
|
|
90
|
+
".opencode/skills/spec-discovery/SKILL.md": "997886528456bfdfa29c492a5c578b8c2a085742b700047171ce0c876879e2cf",
|
|
91
|
+
".opencode/skills/technical-retro/SKILL.md": "562fd8e92da2b00b42f6ed64210c973e8bea9f41cd30a29b3b36df50fe4f26e1",
|
|
92
|
+
".opencode/skills/unit-testing/SKILL.md": "72b023f8126cc488e473eea296b41124336a3adf5816ba0b5aca5af404bce529",
|
|
93
|
+
".opencode/skills/write-adr/SKILL.md": "3daf61c8d97a7e868e5fe5323f1cfa76dd5b298ea5cb110a9da83884d8d602da",
|
|
94
94
|
"AGENTS.md": "d2256a4628b983c5419111dd338c02bcbb1520eae77fb2ef1b1a9d1a02bb47e8",
|
|
95
95
|
"docs/specs/INDEX.md": "cab59f2093e6aaa376246a56d53e4268cb59070a6b10e87a94895192c35f422d",
|
|
96
96
|
"docs/specs/_templates/feature.md": "83c47b90334c555fb5144749837e2ddfe1cae5bb89031f885ba98671075d59e7",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
".opencode/MCP.md": "82420d33d4b50e9f082b2a65c62657592f6eb541034771811c13015f9bd36660",
|
|
14
14
|
".opencode/agents/README.md": "b49bff590381deb0841766c785c4124a590315080b363f373416f445a630153c",
|
|
15
15
|
".opencode/agents/api-contract-reviewer.md": "42c131441739ae28b303ba660c67d495ab1e352c24a752cf234f56dc66eb3a14",
|
|
16
|
-
".opencode/agents/build-verifier.md": "
|
|
16
|
+
".opencode/agents/build-verifier.md": "57789ac7b34478380c23e6a238fd770d756cdd2ba0eded27dc09761962e2d423",
|
|
17
17
|
".opencode/agents/ci-investigator.md": "5f8242be6b0cfb7a4be2e030f3a04cd2877686e0479891482f15909a2f3e957b",
|
|
18
18
|
".opencode/agents/code-reviewer.md": "ab3c98bda198e9888edd1f0b1ebeff55076be2629b50653745825b93284e5390",
|
|
19
19
|
".opencode/agents/codebase-analyzer.md": "31f3c56b32d714c8e0606b21def235ecb8b27204a340cf57e75af2b97412ff25",
|
|
@@ -35,22 +35,22 @@
|
|
|
35
35
|
".opencode/agents/unit-test-healer.md": "3f85a3efa08f36ffb0267970761e2b1bb74f7466bbaba056b7fcc0ad0d0e7bd7",
|
|
36
36
|
".opencode/agents/unit-test-planner.md": "6cd58e5d36556b0ca3ff749aafb4f04500ac4c8b7db991db1d69cf9c8cfd291e",
|
|
37
37
|
".opencode/commands/README.md": "e180dd39014986042e77b0f385fd03175019329ef3dda4a8bc4e227d190b2d58",
|
|
38
|
-
".opencode/commands/spec-start.md": "
|
|
39
|
-
".opencode/commands/task-continue.md": "
|
|
40
|
-
".opencode/commands/task.md": "
|
|
41
|
-
".opencode/commands/technical-retro.md": "
|
|
38
|
+
".opencode/commands/spec-start.md": "0e7f610784a24c9feca8ecce14934d85233821265258fe09abab2892b9f81e0b",
|
|
39
|
+
".opencode/commands/task-continue.md": "074f7a4ac31b360ea5b3346d52346738a7e27e2f4b45bea56544370c4a3e007d",
|
|
40
|
+
".opencode/commands/task.md": "0d9ff91a124eb09fdf6efeee9d03144af93b26d5cfb9f74180312b7d9f3d7e29",
|
|
41
|
+
".opencode/commands/technical-retro.md": "fd6e514dfe935f590d8f546f0cb55a12da543b84c606bda321eacf73099e7d72",
|
|
42
42
|
".opencode/hooks/README.md": "535fc0c1f2400822f10adc0dca6a75f0860098c12868576397b0c7c0db4a471b",
|
|
43
|
-
".opencode/hooks/chain-team-phases.sh": "
|
|
43
|
+
".opencode/hooks/chain-team-phases.sh": "379c52ca5e4cc785081585696a16efd63e882b18ad49b7bf7fbe5125a6bdae23",
|
|
44
44
|
".opencode/rules/README.md": "41440f0aef4da07400be7f014b52e63f248e74b97e993ec88cbaf134c1384388",
|
|
45
45
|
".opencode/rules/actions-services.md": "173a4aab9256ac8f3526a395d00cd62ef22acadd76c67f9ab176fd6058b6f9db",
|
|
46
|
-
".opencode/rules/agent-team-intake.md": "
|
|
46
|
+
".opencode/rules/agent-team-intake.md": "12a7d81ccb2b6f504b92cd08a4f8da52d65595750a8ad457649fe44f135adf01",
|
|
47
47
|
".opencode/rules/agent-team-orchestrator.md": "c4d84f79b02422d25e94005cc79d25926f918c0500701def393293690c927a97",
|
|
48
48
|
".opencode/rules/ai-local-overlay.md": "5a5f8d29d15bfb76a8e6cc631abb729599cea347f6ebb8221195758a5eab87a1",
|
|
49
49
|
".opencode/rules/anti-sycophancy-discipline.md": "653231c835a98f944e2c125fe5f8cf818b56c0f3602e469488dac1b2267da023",
|
|
50
50
|
".opencode/rules/architecture-boundaries.md": "1b8d164445df36bbe2dd4db46ec2cfa187774e745112216661281e728b39ac0e",
|
|
51
|
-
".opencode/rules/code-quality-and-refactoring.md": "
|
|
52
|
-
".opencode/rules/code-review-mr.md": "
|
|
53
|
-
".opencode/rules/design-guidance.md": "
|
|
51
|
+
".opencode/rules/code-quality-and-refactoring.md": "cd884355b50b6bc5a769c235ca1178c22e850721257f3d6923a847c2ada1ab1e",
|
|
52
|
+
".opencode/rules/code-review-mr.md": "4a7ed7c34301b231e1c04e1c83afb00e3735b475f2261fe80d0126a843896f74",
|
|
53
|
+
".opencode/rules/design-guidance.md": "320aa9db3c014e5189130f24e81bfde59d065ac670d1361b1f3c4d3bbd9a35ee",
|
|
54
54
|
".opencode/rules/domain-layer.md": "41d8cdcdf2f7abd7035bec4bf498f1f945e2bc3041bbb1be8dffd466e5afba68",
|
|
55
55
|
".opencode/rules/eloquent-persistence.md": "1231d0c8b02c5e7011a037cbf5046505587ed15b23e2c3f921e9811376ef11cd",
|
|
56
56
|
".opencode/rules/events-listeners.md": "a5d4a2a3b5cff7367f48c908d8540dd711d52c1e0be9a2bda6f1012ff75b7be7",
|
|
@@ -60,18 +60,18 @@
|
|
|
60
60
|
".opencode/rules/jobs-queues.md": "4ecd3708440706d2abc0e88345e54b337aab38dd1457a40fd6593915205a5306",
|
|
61
61
|
".opencode/rules/laravel-app-core.md": "f87bcbef5f45cd3abf7ebee77f7c84cc4f17f038d6b831d244ad5f31ca9b6a10",
|
|
62
62
|
".opencode/rules/laravel-conventions.md": "47dbee005a10c6f289ff72c14d301af41ead886b4e4b18b990e5daf9ae837375",
|
|
63
|
-
".opencode/rules/mcp-usage.md": "
|
|
63
|
+
".opencode/rules/mcp-usage.md": "796092d4eb373c1622a16d5d20ab9af276352ca6f7a5ef00892d883436e77af1",
|
|
64
64
|
".opencode/rules/module-public-api.md": "83be094e688be4daf7e1462302d6fee23a53c367b4cc2b72155eb51b8e8e448e",
|
|
65
65
|
".opencode/rules/php-tooling.md": "3afc1d389f0cfaa05f71e9837b84814193d5f0e67d779784f9b943f67917ccfd",
|
|
66
66
|
".opencode/rules/policies-authorization.md": "e2b751858093a26573acd9c23a5f67a68edb0dfa445f50a800c8620318134421",
|
|
67
67
|
".opencode/rules/post-change-test.md": "8a64e8949ac6982f928e021df593c5e9f2cbb726686f2fb9c3030ea4a321caab",
|
|
68
|
-
".opencode/rules/preset-layering.md": "
|
|
68
|
+
".opencode/rules/preset-layering.md": "c63d6b6aa921b70c6c9b531e9d9bcb8b3d81b6a6354da9e4109b5149f5cb8a73",
|
|
69
69
|
".opencode/rules/preset-no-cross-stack-leakage.md": "8933a929a78af3585c7b546736dc8d068bf9ff2f925c9fccbbdcf82d624d20a0",
|
|
70
|
-
".opencode/rules/preset-pr-checklist.md": "
|
|
71
|
-
".opencode/rules/preset-token-budget.md": "
|
|
70
|
+
".opencode/rules/preset-pr-checklist.md": "6dcfb78d2cf68c11944243e3e4e10f6be210a4dad1497986f4aa439d1c04543f",
|
|
71
|
+
".opencode/rules/preset-token-budget.md": "d539545f8ab0dc6117f87c76c044fce9a01256d8cdea8a63b69ff48ccb8b7ac0",
|
|
72
72
|
".opencode/rules/preset-twin-sync.md": "b3061cbb09ff75ecb47e98b7f7fa351240866ee8962a1d128b7c15206ef89dee",
|
|
73
|
-
".opencode/rules/product-specs-authoring.md": "
|
|
74
|
-
".opencode/rules/product-specs.md": "
|
|
73
|
+
".opencode/rules/product-specs-authoring.md": "4bb81868e2619b8d562237cf8aa59c0e87c04e8302094dd1e0b3e1e36064808c",
|
|
74
|
+
".opencode/rules/product-specs.md": "e6e3e9c69d34cbe08bc61b78163ef83be64dab7f0258bec2c6fc810d1b2eb04c",
|
|
75
75
|
".opencode/rules/reference-features.md": "693cf6f08dd69cd358ba4c47cccc1231868c9db32f28c9a7e3ad8c85ffa9984a",
|
|
76
76
|
".opencode/rules/routes-api.md": "fa2c697644294bdbe7ea8124b4bf2d4b93826e55e80b7e55da866b07b20fae62",
|
|
77
77
|
".opencode/rules/security-php.md": "64227580db97941cc512be9e67c1ec0ff31be668057427472ba934189107fd49",
|
|
@@ -81,16 +81,16 @@
|
|
|
81
81
|
".opencode/rules/tests-integration.md": "eb05756f6320942f10f0a250a82602c61e329ebc11c97b998e50210a53920ef1",
|
|
82
82
|
".opencode/rules/tests-unit.md": "254e0b9dc129149cc6b2288cdc3ebf52c9b9b17c01af9f2fa20325016ed4b879",
|
|
83
83
|
".opencode/skills/README.md": "2aed6080f909ddc89370ff8e176cfe84c15158712ad412eee0ecd7d0af9eaeb6",
|
|
84
|
-
".opencode/skills/ci-investigation/SKILL.md": "
|
|
85
|
-
".opencode/skills/code-review/SKILL.md": "
|
|
86
|
-
".opencode/skills/debug-investigation/SKILL.md": "
|
|
87
|
-
".opencode/skills/feature-delivery/SKILL.md": "
|
|
88
|
-
".opencode/skills/integration-testing/SKILL.md": "
|
|
89
|
-
".opencode/skills/spec-authoring/SKILL.md": "
|
|
90
|
-
".opencode/skills/spec-discovery/SKILL.md": "
|
|
91
|
-
".opencode/skills/technical-retro/SKILL.md": "
|
|
92
|
-
".opencode/skills/unit-testing/SKILL.md": "
|
|
93
|
-
".opencode/skills/write-adr/SKILL.md": "
|
|
84
|
+
".opencode/skills/ci-investigation/SKILL.md": "7dd0ab37db805a431745f7d6efedd3d1e5ae2d1040c855e674f3e1d99583931e",
|
|
85
|
+
".opencode/skills/code-review/SKILL.md": "4da9459c1a42bd04532df5106f231315d785609d12a2dd2e3b7572621de7ee4c",
|
|
86
|
+
".opencode/skills/debug-investigation/SKILL.md": "57e38e4ec614b8c39d8f23591394e91cb8ba2a6ce0034a178a80bf8a1cfdc6bd",
|
|
87
|
+
".opencode/skills/feature-delivery/SKILL.md": "e0139a36a96c18373efb42b9e884905d85ac95551dfe28f2c311f602bb7db5aa",
|
|
88
|
+
".opencode/skills/integration-testing/SKILL.md": "9c26e6cb7c5d1579bd7dea68e938f062fb882c39a6a0a7ef7f1d489dc611009c",
|
|
89
|
+
".opencode/skills/spec-authoring/SKILL.md": "2a5515d07ea57f34da982d5ebd5ed5814f0bcb5e919f87da9937fc81127fa908",
|
|
90
|
+
".opencode/skills/spec-discovery/SKILL.md": "997886528456bfdfa29c492a5c578b8c2a085742b700047171ce0c876879e2cf",
|
|
91
|
+
".opencode/skills/technical-retro/SKILL.md": "562fd8e92da2b00b42f6ed64210c973e8bea9f41cd30a29b3b36df50fe4f26e1",
|
|
92
|
+
".opencode/skills/unit-testing/SKILL.md": "340ea9325aa9a4bf3de6f5d12ae5a398bd322a7966dd1dcf9ef9fb067aa30131",
|
|
93
|
+
".opencode/skills/write-adr/SKILL.md": "3daf61c8d97a7e868e5fe5323f1cfa76dd5b298ea5cb110a9da83884d8d602da",
|
|
94
94
|
"AGENTS.md": "c30b6d08e70957b1c465f503171d4228a1b08214c993e32ed8943ac0351c3b8e",
|
|
95
95
|
"docs/specs/INDEX.md": "cab59f2093e6aaa376246a56d53e4268cb59070a6b10e87a94895192c35f422d",
|
|
96
96
|
"docs/specs/_templates/feature.md": "83c47b90334c555fb5144749837e2ddfe1cae5bb89031f885ba98671075d59e7",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
".opencode/agents/README.md": "8a9a4307b5326db65490cd73ff1e309d9bc8a678477d51b358b86dbc388d9b61",
|
|
28
28
|
".opencode/agents/accessibility-reviewer.md": "ffa3a5a5846ce336567c746c818dfcf0c9ba7e9f31779ce9d2357a7a5556b5f3",
|
|
29
29
|
".opencode/agents/api-contract-reviewer.md": "8b46924e253e9ef499b32a3f4339e7b2ed6e39fd822d70f7bc8f9981a184a069",
|
|
30
|
-
".opencode/agents/build-verifier.md": "
|
|
30
|
+
".opencode/agents/build-verifier.md": "c20de51817d1771a521bcbaa8d20d8e9c609f34af9c6f8200a9f2bf0499b7cf7",
|
|
31
31
|
".opencode/agents/ci-investigator.md": "97cff7985f946e99f0ad18cfc21019672327b5d2c1485605a506af8a6bdccc82",
|
|
32
32
|
".opencode/agents/code-reviewer.md": "91e74ec3851d4cb5dca663734784463b0915d96c909e033c545b1c08c4f56f6c",
|
|
33
33
|
".opencode/agents/codebase-analyzer.md": "1d12d4af8ac0919e5241bb56aad2664cee35549a8143f4fbaa384ddfe9b9f1b4",
|
|
@@ -50,12 +50,12 @@
|
|
|
50
50
|
".opencode/agents/unit-test-healer.md": "ec2fc4858fcc61fe488c8b2f2fb25be72b942999b43eb32a98759ddc591d26c7",
|
|
51
51
|
".opencode/agents/unit-test-planner.md": "cb1ecb79a7a050525c40e666b5d933966a68c6b2fb6a442343d61f09c7cf5687",
|
|
52
52
|
".opencode/commands/README.md": "ea7561075abfa64140ecd467ed0107f0d9242b8194035f108826361157ab04c8",
|
|
53
|
-
".opencode/commands/spec-start.md": "
|
|
54
|
-
".opencode/commands/task-continue.md": "
|
|
55
|
-
".opencode/commands/task.md": "
|
|
56
|
-
".opencode/commands/technical-retro.md": "
|
|
53
|
+
".opencode/commands/spec-start.md": "0e7f610784a24c9feca8ecce14934d85233821265258fe09abab2892b9f81e0b",
|
|
54
|
+
".opencode/commands/task-continue.md": "f73926dd94b27dd34cbb99646bedb45fe8ad7f42623591e0760d4074941ecb4d",
|
|
55
|
+
".opencode/commands/task.md": "50af26f008107d98b387c86511ffbb0e4d321d795ca5797b261910fe224a75df",
|
|
56
|
+
".opencode/commands/technical-retro.md": "6a5771b459714bd8e52bd84aca94d5bb8261d6121d909b411ea6909c344cb285",
|
|
57
57
|
".opencode/hooks/README.md": "535fc0c1f2400822f10adc0dca6a75f0860098c12868576397b0c7c0db4a471b",
|
|
58
|
-
".opencode/hooks/chain-team-phases.sh": "
|
|
58
|
+
".opencode/hooks/chain-team-phases.sh": "f4d2b6ba2765065d8cde93d6f9d8eb3f7866509cf5c473b76c12117aa6114448",
|
|
59
59
|
".opencode/rules/README.md": "19817eb632391073e074b532ee93351f45436a4d6b34cf334cdb64df020bef13",
|
|
60
60
|
".opencode/rules/agent-team-intake.md": "6804fda59160de1f3720d7832c7227a8e5c9b8e4c2b9e60fd9a648edd59c2414",
|
|
61
61
|
".opencode/rules/agent-team-orchestrator.md": "c4d84f79b02422d25e94005cc79d25926f918c0500701def393293690c927a97",
|
|
@@ -64,15 +64,15 @@
|
|
|
64
64
|
".opencode/rules/api-services.md": "f9fb6e35114a54d3c41a2ae7098c5d2b3e548a64da28891a8596077860809365",
|
|
65
65
|
".opencode/rules/architecture-boundaries-ui.md": "42f07eb22802fd92204f2a3b155316a167a7382b6d818c961ae4656e47c9c790",
|
|
66
66
|
".opencode/rules/architecture-boundaries.md": "c35db8b3ad042d8569f6b99850e8bc3049856a0e66377d8be4b5657495b5e763",
|
|
67
|
-
".opencode/rules/code-quality-and-refactoring.md": "
|
|
68
|
-
".opencode/rules/code-review-mr.md": "
|
|
67
|
+
".opencode/rules/code-quality-and-refactoring.md": "221426208f3bd19b3f97ed9e764e682f6ad56029daba0694a34b2c3bdf9ffd2f",
|
|
68
|
+
".opencode/rules/code-review-mr.md": "81667a8477e49d9d3d307306821241048d04ae6c24b5a9e447961fa2c86453d6",
|
|
69
69
|
".opencode/rules/css-property-order-stylelint.md": "d1de016aad731818bf3cf4705d42ca4a60d44663ada0cdf3c8f911dd76e500d3",
|
|
70
|
-
".opencode/rules/design-guidance.md": "
|
|
71
|
-
".opencode/rules/feature-delivery-workflow.md": "
|
|
70
|
+
".opencode/rules/design-guidance.md": "0a5eaa999f5d5e930e0a54859c7f634968d8b3c7379b60a7cb7968c438d5e59e",
|
|
71
|
+
".opencode/rules/feature-delivery-workflow.md": "520b09613dd36b82a9ffc90fec661cfcc9e8d53aa99830e7a27e54722899b0d1",
|
|
72
72
|
".opencode/rules/http-client.md": "19bc5fbb0070d000e3b0c6ffb1c4d818c8d7fc8e614595b1038433ae11760b0b",
|
|
73
73
|
".opencode/rules/layer-barrel-exports.md": "e0f6d1e6e10f84867660bdeb88799d9ffd4bfd778029fafde86a349d912573ec",
|
|
74
|
-
".opencode/rules/mcp-usage.md": "
|
|
75
|
-
".opencode/rules/mockup-review.md": "
|
|
74
|
+
".opencode/rules/mcp-usage.md": "0726fa82721b16e0eeca6f32493f0e4411cf8e9ddc60f687c5d4a0357d8660eb",
|
|
75
|
+
".opencode/rules/mockup-review.md": "0910adcd6e93efe06d8a668a05df2448202747d790fc99e6ee9194ec56696a1d",
|
|
76
76
|
".opencode/rules/navigation-router-stack.md": "7b33606bfb15d47ddbd56b67dd0628825e13318dba57aa4d0d6897dd606d2b18",
|
|
77
77
|
".opencode/rules/navigation-router-ui.md": "2ad0b6f067cd9524b0f0ce62322e169afc2908b33beab15a3929ebd28eea86b4",
|
|
78
78
|
".opencode/rules/no-rest-props-spread.md": "f89ad709c93de1e5e1306adcbcac23a73667f1ddb43514ff550743413bbc64ce",
|
|
@@ -80,42 +80,42 @@
|
|
|
80
80
|
".opencode/rules/package-manager.md": "5ce0bcfafaeb368538d504a26146809e52c2f0340ac2807ea2453c1dadc41d3d",
|
|
81
81
|
".opencode/rules/playwright-agents.md": "6d165030dd1f8f98d9db307d6dfc83c6ad8506d6cc674362f345ce2d50b2bef1",
|
|
82
82
|
".opencode/rules/post-change-lint.md": "3781dff4d33b8e9d6c34e0f027450c3d5f8c25a69a67a2e002552ab452bdbd69",
|
|
83
|
-
".opencode/rules/preset-layering.md": "
|
|
83
|
+
".opencode/rules/preset-layering.md": "c63d6b6aa921b70c6c9b531e9d9bcb8b3d81b6a6354da9e4109b5149f5cb8a73",
|
|
84
84
|
".opencode/rules/preset-no-cross-stack-leakage.md": "8933a929a78af3585c7b546736dc8d068bf9ff2f925c9fccbbdcf82d624d20a0",
|
|
85
|
-
".opencode/rules/preset-pr-checklist.md": "
|
|
86
|
-
".opencode/rules/preset-token-budget.md": "
|
|
85
|
+
".opencode/rules/preset-pr-checklist.md": "6dcfb78d2cf68c11944243e3e4e10f6be210a4dad1497986f4aa439d1c04543f",
|
|
86
|
+
".opencode/rules/preset-token-budget.md": "d539545f8ab0dc6117f87c76c044fce9a01256d8cdea8a63b69ff48ccb8b7ac0",
|
|
87
87
|
".opencode/rules/preset-twin-sync.md": "b3061cbb09ff75ecb47e98b7f7fa351240866ee8962a1d128b7c15206ef89dee",
|
|
88
|
-
".opencode/rules/product-specs-authoring.md": "
|
|
89
|
-
".opencode/rules/product-specs.md": "
|
|
88
|
+
".opencode/rules/product-specs-authoring.md": "e355387117e689cd957ec02a0c7c306014f7a21cdcaf0e85f57858c12ad0911e",
|
|
89
|
+
".opencode/rules/product-specs.md": "e1210aa455b65adcedef6c9d79b55273de989c459fc9a3564bfc167b61e481d8",
|
|
90
90
|
".opencode/rules/public-imports.md": "c6ec89498e372307f59472d640512f7ab7c7ad73a32b430fafe1eb7fcf1b3fec",
|
|
91
|
-
".opencode/rules/reference-features.md": "
|
|
91
|
+
".opencode/rules/reference-features.md": "6520de27ceb87b03088d2557ee7bdf18c47ee71a5e63632f3c80c2593ae89785",
|
|
92
92
|
".opencode/rules/security-sveltekit.md": "d22fa9ad9ff3199b9932dab782ba0619d3827aabbfa0149537754f525c9e218d",
|
|
93
93
|
".opencode/rules/store-svelte.md": "e677453db5afb848775062061aeaaffe75b4c55ed162254da9e0f269c26ddd7b",
|
|
94
94
|
".opencode/rules/svelte-a11y-coding.md": "f27bb73f047f5ace9ec28e37bd94c42bc436bdfc5f62d5c0e4b84996ef5c53bb",
|
|
95
95
|
".opencode/rules/svelte-app-core.md": "5cb14698c4add8b3490ef28c37f98e2804e27652c81e445042a824b745acf6d2",
|
|
96
96
|
".opencode/rules/svelte-script-conventions.md": "7ed6c8ab4d7b2fdf3f7c03b5331b4062cc306aa5f3dfd216098968d2a0dc34e8",
|
|
97
97
|
".opencode/rules/svelte-sveltekit-anti-hallucination.md": "abb04e4608ff85d3341e392e670c2f59ef0185ed361c57e14f8315d459f1a9ef",
|
|
98
|
-
".opencode/rules/svelte-ui.md": "
|
|
98
|
+
".opencode/rules/svelte-ui.md": "806656b8a77a17523808608a1cb2e463ad0fc56a95b7bc877ec9ec0e94cb8805",
|
|
99
99
|
".opencode/rules/sveltekit-routing.md": "376e1b079e27abc9cbdcb4cc7038185db54a86e018653a07d055cd8ff23decc8",
|
|
100
100
|
".opencode/rules/technical-retro.md": "5f9ed6b3b86035866e26d153a60805da08c4670f3d46581bde1839469861b179",
|
|
101
|
-
".opencode/rules/tests-e2e-structure.md": "
|
|
102
|
-
".opencode/rules/tests-unit.md": "
|
|
101
|
+
".opencode/rules/tests-e2e-structure.md": "0a97610749432e1866bc81ab49bb8d6da22b944dd1b44bb52e84e42745fe5251",
|
|
102
|
+
".opencode/rules/tests-unit.md": "508506fd752f1641537b71361c34ffee2577b67888dccae5e16242e0a1a310ab",
|
|
103
103
|
".opencode/rules/types-jsdoc.md": "5827aeb0fba00ab115d37607b621eb8d562d12b8d404c9994ee17a5f4445ea5f",
|
|
104
|
-
".opencode/rules/ux-design.md": "
|
|
104
|
+
".opencode/rules/ux-design.md": "a62ef0c176f0615c4a27ff3c5859eb858be5a8e28de430a41be4504f5f2fd960",
|
|
105
105
|
".opencode/skills/README.md": "445c3dd9fcee3a800eb17cfb046779296ec8352bd9c61ec5031419051c970604",
|
|
106
|
-
".opencode/skills/ci-investigation/SKILL.md": "
|
|
107
|
-
".opencode/skills/code-review/SKILL.md": "
|
|
108
|
-
".opencode/skills/debug-investigation/SKILL.md": "
|
|
109
|
-
".opencode/skills/feature-delivery/SKILL.md": "
|
|
110
|
-
".opencode/skills/mockup-review/SKILL.md": "
|
|
111
|
-
".opencode/skills/playwright-e2e/SKILL.md": "
|
|
112
|
-
".opencode/skills/spec-authoring/SKILL.md": "
|
|
113
|
-
".opencode/skills/spec-discovery/SKILL.md": "
|
|
114
|
-
".opencode/skills/svelte-performance/SKILL.md": "
|
|
115
|
-
".opencode/skills/technical-retro/SKILL.md": "
|
|
116
|
-
".opencode/skills/unit-testing/SKILL.md": "
|
|
117
|
-
".opencode/skills/ux-design/SKILL.md": "
|
|
118
|
-
".opencode/skills/write-adr/SKILL.md": "
|
|
106
|
+
".opencode/skills/ci-investigation/SKILL.md": "084635771a35c11babc602657642a52074619dcdbbd6213924bb7f286cca6619",
|
|
107
|
+
".opencode/skills/code-review/SKILL.md": "d49162d8f05d8749f0fa3e055695d33c953a1aa276b04560ae47e58ec00d5968",
|
|
108
|
+
".opencode/skills/debug-investigation/SKILL.md": "b071049a6e9cd910f363a122f710546c196cb6dca0e4c8861943496090928258",
|
|
109
|
+
".opencode/skills/feature-delivery/SKILL.md": "8feb39f3c92da493cbc755f5476062bc5fed2db020651a8207463c3b98c53ba3",
|
|
110
|
+
".opencode/skills/mockup-review/SKILL.md": "e00b45d5e7118e52b1c884b317f55f02215a4da72783c3755e28a2200c49dbb2",
|
|
111
|
+
".opencode/skills/playwright-e2e/SKILL.md": "df49047f3a47f3e02c0ebe7d3d3a80eb859aa21d7312e6cb23098d7cf30d73a8",
|
|
112
|
+
".opencode/skills/spec-authoring/SKILL.md": "2a5515d07ea57f34da982d5ebd5ed5814f0bcb5e919f87da9937fc81127fa908",
|
|
113
|
+
".opencode/skills/spec-discovery/SKILL.md": "997886528456bfdfa29c492a5c578b8c2a085742b700047171ce0c876879e2cf",
|
|
114
|
+
".opencode/skills/svelte-performance/SKILL.md": "4d9d8c87db0274f1a7031c5f51201960c8f76ad0951e6fbf667272c559b2e2ef",
|
|
115
|
+
".opencode/skills/technical-retro/SKILL.md": "2867ce26e96717ab61b5035545c374629783295eb022914f342ed384b6a6caba",
|
|
116
|
+
".opencode/skills/unit-testing/SKILL.md": "c70f54921d0d90bd4d0f5305317e80dd3517a60b05f3fbc31dc8527eaf75d19d",
|
|
117
|
+
".opencode/skills/ux-design/SKILL.md": "dcfd7714f6e203eba18b14b334baa872696141ca257c87a72e8a7a45c4f4c91a",
|
|
118
|
+
".opencode/skills/write-adr/SKILL.md": "3daf61c8d97a7e868e5fe5323f1cfa76dd5b298ea5cb110a9da83884d8d602da",
|
|
119
119
|
"AGENTS.md": "16e16975c1054cd20df6aae7780d879f7477c6dc4144ed8f12dab9249ee3f580",
|
|
120
120
|
"docs/specs/INDEX.md": "cab59f2093e6aaa376246a56d53e4268cb59070a6b10e87a94895192c35f422d",
|
|
121
121
|
"docs/specs/_templates/feature.md": "83c47b90334c555fb5144749837e2ddfe1cae5bb89031f885ba98671075d59e7",
|
|
@@ -54,6 +54,17 @@ export function sharedCoreStem(text) {
|
|
|
54
54
|
return match ? match[1] : undefined;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Adapter-local prose after the shared-core body: everything from the first
|
|
59
|
+
* `## Stack notes` heading to the end. Mirrors `sync-shared-core-embeds.sh`, which
|
|
60
|
+
* preserves this section when propagating core bodies into Cursor/Claude.
|
|
61
|
+
* Returns `''` when the body has no `## Stack notes` section.
|
|
62
|
+
*/
|
|
63
|
+
export function extractStackNotesSection(body) {
|
|
64
|
+
const match = body.match(/(^|\n)(## Stack notes[^\n]*\n[\s\S]*)$/);
|
|
65
|
+
return match ? match[2].trimEnd() : '';
|
|
66
|
+
}
|
|
67
|
+
|
|
57
68
|
export function isEmbedEntryBody(body) {
|
|
58
69
|
const first = body
|
|
59
70
|
.split('\n')
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
deriveAdapterStack,
|
|
10
10
|
dropLeadingHeading,
|
|
11
11
|
extractSkillsFragment,
|
|
12
|
+
extractStackNotesSection,
|
|
12
13
|
isEmbedEntryBody,
|
|
13
14
|
readSiblingReadme,
|
|
14
15
|
replaceCursorFrontmatterReadonlyBlock,
|
|
@@ -89,7 +90,11 @@ function stripEmbeddedCatalogLine(body) {
|
|
|
89
90
|
);
|
|
90
91
|
}
|
|
91
92
|
|
|
92
|
-
function transformMarkdown(
|
|
93
|
+
function transformMarkdown(
|
|
94
|
+
sourceText,
|
|
95
|
+
stack,
|
|
96
|
+
{ command = false, allowEmbedEntry = true, preserveStackNotes = true } = {},
|
|
97
|
+
) {
|
|
93
98
|
const rewriteProse = (text) => finalizeMavisProse(text, stack);
|
|
94
99
|
const { body } = stripFrontmatter(sourceText);
|
|
95
100
|
const stem =
|
|
@@ -103,19 +108,20 @@ function transformMarkdown(sourceText, stack, { command = false, allowEmbedEntry
|
|
|
103
108
|
}
|
|
104
109
|
const coreBody = fs.readFileSync(corePath, 'utf8').trimEnd();
|
|
105
110
|
const marker = `<!-- shared-core: ${stem} -->`;
|
|
111
|
+
// Preserve the Cursor adapter's `## Stack notes` (stack-specific paths, runners,
|
|
112
|
+
// selectors) instead of replacing the whole body with the generic core.
|
|
113
|
+
const stackNotes = preserveStackNotes ? extractStackNotesSection(body) : '';
|
|
106
114
|
next = `${marker}\n\n${coreBody}\n`;
|
|
115
|
+
if (stackNotes) {
|
|
116
|
+
next += `\n${stackNotes}\n`;
|
|
117
|
+
}
|
|
107
118
|
next = rewriteConsumerPaths(next);
|
|
108
119
|
} else {
|
|
109
120
|
next = rewriteProse(body);
|
|
110
121
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
.replaceAll('`/task-continue`', 'the task-continue procedure in `.mavis/commands/task-continue.md`')
|
|
115
|
-
.replaceAll('`/technical-retro`', 'the technical-retro procedure in `.mavis/commands/technical-retro.md`')
|
|
116
|
-
.replaceAll('`/spec-start`', 'the spec-start procedure in `.mavis/commands/spec-start.md`')
|
|
117
|
-
.replaceAll('`/task`', 'the task procedure in `.mavis/commands/task.md`');
|
|
118
|
-
}
|
|
122
|
+
// Slash-command references (`/task`, `/task-continue`, …) are kept verbatim, matching
|
|
123
|
+
// the OpenCode adapter. Rewriting them into prose mangled the generated docs.
|
|
124
|
+
void command;
|
|
119
125
|
return next.endsWith('\n') ? next : `${next}\n`;
|
|
120
126
|
}
|
|
121
127
|
|
|
@@ -372,7 +378,11 @@ export function generateMavisStack(stack, { root = packageRoot } = {}) {
|
|
|
372
378
|
match: (source) => source.startsWith('rules/') && source.endsWith('.mdc'),
|
|
373
379
|
map: ({ source, sourceText }) => {
|
|
374
380
|
const stem = path.basename(source, '.mdc');
|
|
375
|
-
|
|
381
|
+
// The orchestrator Stack notes carry Cursor-only model pins / packaging;
|
|
382
|
+
// transformOrchestrator injects a platform-neutral note instead.
|
|
383
|
+
let markdown = transformMarkdown(sourceText, stack, {
|
|
384
|
+
preserveStackNotes: stem !== 'agent-team-orchestrator',
|
|
385
|
+
});
|
|
376
386
|
if (stem === 'agent-team-orchestrator') {
|
|
377
387
|
markdown = transformOrchestrator(markdown);
|
|
378
388
|
}
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
countAgentRoleFiles,
|
|
9
9
|
deriveAdapterStack,
|
|
10
10
|
dropLeadingHeading,
|
|
11
|
+
extractStackNotesSection,
|
|
11
12
|
isEmbedEntryBody,
|
|
12
13
|
parseFrontmatterFields,
|
|
13
14
|
readSiblingReadme,
|
|
@@ -85,7 +86,11 @@ function stripEmbeddedCatalogLine(body) {
|
|
|
85
86
|
);
|
|
86
87
|
}
|
|
87
88
|
|
|
88
|
-
function transformMarkdown(
|
|
89
|
+
function transformMarkdown(
|
|
90
|
+
sourceText,
|
|
91
|
+
stack,
|
|
92
|
+
{ allowEmbedEntry = true, preserveStackNotes = true } = {},
|
|
93
|
+
) {
|
|
89
94
|
const rewriteProse = (text) => finalizeOpencodeProse(text, stack);
|
|
90
95
|
const { body } = stripFrontmatter(sourceText);
|
|
91
96
|
const stem =
|
|
@@ -99,7 +104,13 @@ function transformMarkdown(sourceText, stack, { allowEmbedEntry = true } = {}) {
|
|
|
99
104
|
}
|
|
100
105
|
const coreBody = fs.readFileSync(corePath, 'utf8').trimEnd();
|
|
101
106
|
const marker = `<!-- shared-core: ${stem} -->`;
|
|
107
|
+
// Preserve the Cursor adapter's `## Stack notes` (stack-specific paths, runners,
|
|
108
|
+
// selectors) instead of replacing the whole body with the generic core.
|
|
109
|
+
const stackNotes = preserveStackNotes ? extractStackNotesSection(body) : '';
|
|
102
110
|
next = `${marker}\n\n${coreBody}\n`;
|
|
111
|
+
if (stackNotes) {
|
|
112
|
+
next += `\n${stackNotes}\n`;
|
|
113
|
+
}
|
|
103
114
|
next = rewriteConsumerPaths(next);
|
|
104
115
|
} else {
|
|
105
116
|
next = rewriteProse(body);
|
|
@@ -160,7 +171,7 @@ function transformSkill(sourceText, stack) {
|
|
|
160
171
|
const fields = parseFrontmatterFields(frontmatter);
|
|
161
172
|
const name = fields.name || '';
|
|
162
173
|
const description = fields.description || '';
|
|
163
|
-
const header = `---\nname: ${name}\ndescription: ${description}\n---\n\n`;
|
|
174
|
+
const header = `---\nname: ${name}\ndescription: ${yamlString(description)}\n---\n\n`;
|
|
164
175
|
const transformed = finalizeOpencodeProse(body, stack);
|
|
165
176
|
return `${header}${transformed.endsWith('\n') ? transformed : `${transformed}\n`}`;
|
|
166
177
|
}
|
|
@@ -173,7 +184,7 @@ function transformCommand(sourceText, stack) {
|
|
|
173
184
|
if (!next.includes('$ARGUMENTS')) {
|
|
174
185
|
next = `## Invocation arguments\n\n$ARGUMENTS\n\n${next}`;
|
|
175
186
|
}
|
|
176
|
-
const header = `---\ndescription: ${description}\n---\n\n`;
|
|
187
|
+
const header = `---\ndescription: ${yamlString(description)}\n---\n\n`;
|
|
177
188
|
return `${header}${next.endsWith('\n') ? next : `${next}\n`}`;
|
|
178
189
|
}
|
|
179
190
|
|
|
@@ -449,7 +460,11 @@ export function generateOpencodeStack(stack, { root = packageRoot } = {}) {
|
|
|
449
460
|
match: (source) => source.startsWith('rules/') && source.endsWith('.mdc'),
|
|
450
461
|
map: ({ source, sourceText }) => {
|
|
451
462
|
const stem = path.basename(source, '.mdc');
|
|
452
|
-
|
|
463
|
+
// The orchestrator Stack notes carry Cursor-only model pins / packaging;
|
|
464
|
+
// transformOrchestrator injects a platform-neutral note instead.
|
|
465
|
+
let markdown = transformMarkdown(sourceText, stack, {
|
|
466
|
+
preserveStackNotes: stem !== 'agent-team-orchestrator',
|
|
467
|
+
});
|
|
453
468
|
if (stem === 'agent-team-orchestrator') {
|
|
454
469
|
markdown = transformOrchestrator(markdown);
|
|
455
470
|
}
|
|
@@ -994,12 +994,12 @@ for (const hook of hooks) {
|
|
|
994
994
|
const elapsed = Date.now() - releaseAt;
|
|
995
995
|
assert.equal(exitCode, 0, `${hook}: hook did not exit 0 after lock release (stderr=${stderr.slice(0, 400)})`);
|
|
996
996
|
|
|
997
|
-
// The hook's waitForMetricsLock busy-waits on EEXIST in 10 ms slices
|
|
998
|
-
//
|
|
999
|
-
//
|
|
1000
|
-
//
|
|
997
|
+
// The hook's waitForMetricsLock busy-waits on EEXIST in 10 ms slices. The
|
|
998
|
+
// "still alive while held" assertion above proves the lock actually blocked;
|
|
999
|
+
// this bound only catches a permanently stuck implementation. It is generous
|
|
1000
|
+
// on purpose: bash + node startup under loaded CI regularly exceeds 1.5 s.
|
|
1001
1001
|
assert.ok(elapsed >= 1, `${hook}: hook finished suspiciously fast after lock release (${elapsed} ms)`);
|
|
1002
|
-
assert.ok(elapsed <
|
|
1002
|
+
assert.ok(elapsed < 10000, `${hook}: hook took ${elapsed} ms after lock release — lock impl may be stuck`);
|
|
1003
1003
|
const ledger = readJson(metricsPath);
|
|
1004
1004
|
const finished = ledger.events.find(
|
|
1005
1005
|
(event) => event.type === 'attempt_finished' && event.attemptId === attemptId,
|