@bonesofspring/ai-rules 0.2.23 → 0.2.24
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 +9 -0
- package/README.md +5 -1
- package/bin/cli.js +32 -9
- package/bin/opencode-install.js +531 -0
- package/package.json +10 -3
- package/presets/_shared/core/agent-team/agent-team-orchestrator.md +2 -2
- package/presets/_shared/core/meta/preset-layering.md +3 -3
- package/presets/_shared/core/meta/preset-no-cross-stack-leakage.md +1 -1
- package/presets/_shared/core/meta/preset-pr-checklist.md +4 -3
- package/presets/_shared/core/meta/preset-token-budget.md +3 -0
- package/presets/_shared/core/meta/preset-twin-sync.md +16 -0
- package/presets/claude/android-kotlin/rules/tooling-and-review/preset-layering.md +3 -3
- 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 +4 -3
- package/presets/claude/android-kotlin/rules/tooling-and-review/preset-token-budget.md +3 -0
- package/presets/claude/android-kotlin/rules/tooling-and-review/preset-twin-sync.md +16 -0
- package/presets/claude/go/rules/tooling-and-review/preset-layering.md +3 -3
- package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/preset-pr-checklist.md +4 -3
- package/presets/claude/go/rules/tooling-and-review/preset-token-budget.md +3 -0
- package/presets/claude/go/rules/tooling-and-review/preset-twin-sync.md +16 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-layering.md +3 -3
- 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 +4 -3
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-token-budget.md +3 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-twin-sync.md +16 -0
- package/presets/claude/java/rules/tooling-and-review/preset-layering.md +3 -3
- package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/preset-pr-checklist.md +4 -3
- package/presets/claude/java/rules/tooling-and-review/preset-token-budget.md +3 -0
- package/presets/claude/java/rules/tooling-and-review/preset-twin-sync.md +16 -0
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-layering.md +3 -3
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-pr-checklist.md +4 -3
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-token-budget.md +3 -0
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-twin-sync.md +16 -0
- package/presets/claude/next/REPO_AGENTS.md +10 -5
- package/presets/claude/next/agents/build-verifier.md +3 -1
- package/presets/claude/next/rules/tooling-and-review/ai-local-overlay.md +1 -1
- package/presets/claude/next/rules/tooling-and-review/preset-layering.md +3 -3
- 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 +4 -3
- package/presets/claude/next/rules/tooling-and-review/preset-token-budget.md +3 -0
- package/presets/claude/next/rules/tooling-and-review/preset-twin-sync.md +16 -0
- package/presets/claude/nuxt/rules/tooling-and-review/preset-layering.md +3 -3
- 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 +4 -3
- package/presets/claude/nuxt/rules/tooling-and-review/preset-token-budget.md +3 -0
- package/presets/claude/nuxt/rules/tooling-and-review/preset-twin-sync.md +16 -0
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-layering.md +3 -3
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-pr-checklist.md +4 -3
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-token-budget.md +3 -0
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-twin-sync.md +16 -0
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-layering.md +3 -3
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-pr-checklist.md +4 -3
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-token-budget.md +3 -0
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-twin-sync.md +16 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-layering.md +3 -3
- 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 +4 -3
- package/presets/claude/svelte/rules/tooling-and-review/preset-token-budget.md +3 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-twin-sync.md +16 -0
- package/presets/cursor/android-kotlin/rules/preset-layering.mdc +3 -3
- package/presets/cursor/android-kotlin/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/android-kotlin/rules/preset-pr-checklist.mdc +4 -3
- package/presets/cursor/android-kotlin/rules/preset-token-budget.mdc +3 -0
- package/presets/cursor/android-kotlin/rules/preset-twin-sync.mdc +16 -0
- package/presets/cursor/go/rules/preset-layering.mdc +3 -3
- package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/go/rules/preset-pr-checklist.mdc +4 -3
- package/presets/cursor/go/rules/preset-token-budget.mdc +3 -0
- package/presets/cursor/go/rules/preset-twin-sync.mdc +16 -0
- package/presets/cursor/ios-swift/rules/preset-layering.mdc +3 -3
- package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/ios-swift/rules/preset-pr-checklist.mdc +4 -3
- package/presets/cursor/ios-swift/rules/preset-token-budget.mdc +3 -0
- package/presets/cursor/ios-swift/rules/preset-twin-sync.mdc +16 -0
- package/presets/cursor/java/rules/preset-layering.mdc +3 -3
- package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/java/rules/preset-pr-checklist.mdc +4 -3
- package/presets/cursor/java/rules/preset-token-budget.mdc +3 -0
- package/presets/cursor/java/rules/preset-twin-sync.mdc +16 -0
- package/presets/cursor/mcp-ts/rules/preset-layering.mdc +3 -3
- package/presets/cursor/mcp-ts/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/mcp-ts/rules/preset-pr-checklist.mdc +4 -3
- package/presets/cursor/mcp-ts/rules/preset-token-budget.mdc +3 -0
- package/presets/cursor/mcp-ts/rules/preset-twin-sync.mdc +16 -0
- package/presets/cursor/next/REPO_AGENTS.md +10 -5
- package/presets/cursor/next/agents/build-verifier.md +3 -1
- package/presets/cursor/next/rules/ai-local-overlay.mdc +1 -1
- package/presets/cursor/next/rules/preset-layering.mdc +3 -3
- package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/next/rules/preset-pr-checklist.mdc +4 -3
- package/presets/cursor/next/rules/preset-token-budget.mdc +3 -0
- package/presets/cursor/next/rules/preset-twin-sync.mdc +16 -0
- package/presets/cursor/nuxt/rules/preset-layering.mdc +3 -3
- package/presets/cursor/nuxt/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/nuxt/rules/preset-pr-checklist.mdc +4 -3
- package/presets/cursor/nuxt/rules/preset-token-budget.mdc +3 -0
- package/presets/cursor/nuxt/rules/preset-twin-sync.mdc +16 -0
- package/presets/cursor/php-hexagonal/rules/preset-layering.mdc +3 -3
- package/presets/cursor/php-hexagonal/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/php-hexagonal/rules/preset-pr-checklist.mdc +4 -3
- package/presets/cursor/php-hexagonal/rules/preset-token-budget.mdc +3 -0
- package/presets/cursor/php-hexagonal/rules/preset-twin-sync.mdc +16 -0
- package/presets/cursor/php-laravel/rules/preset-layering.mdc +3 -3
- package/presets/cursor/php-laravel/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/php-laravel/rules/preset-pr-checklist.mdc +4 -3
- package/presets/cursor/php-laravel/rules/preset-token-budget.mdc +3 -0
- package/presets/cursor/php-laravel/rules/preset-twin-sync.mdc +16 -0
- package/presets/cursor/svelte/rules/preset-layering.mdc +3 -3
- package/presets/cursor/svelte/rules/preset-no-cross-stack-leakage.mdc +1 -1
- package/presets/cursor/svelte/rules/preset-pr-checklist.mdc +4 -3
- package/presets/cursor/svelte/rules/preset-token-budget.mdc +3 -0
- package/presets/cursor/svelte/rules/preset-twin-sync.mdc +16 -0
- package/presets/mavis/next/REPO_AGENTS.md +9 -7
- package/presets/mavis/next/adapter-map.json +1 -1
- package/presets/mavis/next/agents/build-verifier.md +3 -1
- package/presets/mavis/next/rules/agent-team-orchestrator.md +2 -2
- package/presets/mavis/next/rules/ai-local-overlay.md +1 -1
- package/presets/mavis/next/rules/preset-layering.md +3 -3
- package/presets/mavis/next/rules/preset-no-cross-stack-leakage.md +1 -1
- package/presets/mavis/next/rules/preset-pr-checklist.md +4 -3
- package/presets/mavis/next/rules/preset-token-budget.md +3 -0
- package/presets/mavis/next/rules/preset-twin-sync.md +16 -0
- package/presets/opencode/README.md +61 -0
- package/presets/opencode/next/MCP.md +36 -0
- package/presets/opencode/next/OPENCODE.md +65 -0
- package/presets/opencode/next/README.md +16 -0
- package/presets/opencode/next/REPO_AGENTS.md +97 -0
- package/presets/opencode/next/adapter-map.json +959 -0
- package/presets/opencode/next/agents/README.md +201 -0
- package/presets/opencode/next/agents/accessibility-reviewer.md +73 -0
- package/presets/opencode/next/agents/api-contract-reviewer.md +69 -0
- package/presets/opencode/next/agents/build-verifier.md +124 -0
- package/presets/opencode/next/agents/ci-investigator.md +71 -0
- package/presets/opencode/next/agents/code-reviewer.md +73 -0
- package/presets/opencode/next/agents/codebase-analyzer.md +33 -0
- package/presets/opencode/next/agents/debugger.md +88 -0
- package/presets/opencode/next/agents/feature-developer.md +109 -0
- package/presets/opencode/next/agents/migration-specialist.md +79 -0
- package/presets/opencode/next/agents/mockup-reviewer.md +65 -0
- package/presets/opencode/next/agents/openspec-author.md +169 -0
- package/presets/opencode/next/agents/performance-auditor.md +80 -0
- package/presets/opencode/next/agents/playwright-test-generator.md +36 -0
- package/presets/opencode/next/agents/playwright-test-healer.md +36 -0
- package/presets/opencode/next/agents/playwright-test-planner.md +33 -0
- package/presets/opencode/next/agents/qa-tester.md +60 -0
- package/presets/opencode/next/agents/security-reviewer.md +66 -0
- package/presets/opencode/next/agents/solution-architect.md +80 -0
- package/presets/opencode/next/agents/task-analyst.md +178 -0
- package/presets/opencode/next/agents/task-router.md +190 -0
- package/presets/opencode/next/agents/tech-writer.md +69 -0
- package/presets/opencode/next/agents/unit-test-generator.md +39 -0
- package/presets/opencode/next/agents/unit-test-healer.md +40 -0
- package/presets/opencode/next/agents/unit-test-planner.md +66 -0
- package/presets/opencode/next/commands/README.md +49 -0
- package/presets/opencode/next/commands/spec-start.md +32 -0
- package/presets/opencode/next/commands/task-continue.md +58 -0
- package/presets/opencode/next/commands/task.md +58 -0
- package/presets/opencode/next/commands/technical-retro.md +88 -0
- package/presets/opencode/next/hooks/README.md +22 -0
- package/presets/opencode/next/hooks/chain-team-phases.sh +845 -0
- package/presets/opencode/next/opencode.json +33 -0
- package/presets/opencode/next/rules/README.md +20 -0
- package/presets/opencode/next/rules/agent-team-intake.md +11 -0
- package/presets/opencode/next/rules/agent-team-orchestrator.md +214 -0
- package/presets/opencode/next/rules/ai-local-overlay.md +37 -0
- package/presets/opencode/next/rules/anti-sycophancy-discipline.md +23 -0
- package/presets/opencode/next/rules/api-services.md +72 -0
- package/presets/opencode/next/rules/architecture-boundaries-ui.md +9 -0
- package/presets/opencode/next/rules/architecture-boundaries.md +86 -0
- package/presets/opencode/next/rules/arrow-functions.md +25 -0
- package/presets/opencode/next/rules/code-quality-and-refactoring.md +40 -0
- package/presets/opencode/next/rules/code-review-mr.md +40 -0
- package/presets/opencode/next/rules/css-property-order-stylelint.md +5 -0
- package/presets/opencode/next/rules/design-guidance.md +99 -0
- package/presets/opencode/next/rules/feature-delivery-workflow.md +49 -0
- package/presets/opencode/next/rules/http-client.md +55 -0
- package/presets/opencode/next/rules/layer-barrel-exports.md +68 -0
- package/presets/opencode/next/rules/mcp-usage.md +86 -0
- package/presets/opencode/next/rules/mockup-review.md +107 -0
- package/presets/opencode/next/rules/navigation-router-stack.md +56 -0
- package/presets/opencode/next/rules/navigation-router-ui.md +10 -0
- package/presets/opencode/next/rules/next-app-core.md +29 -0
- package/presets/opencode/next/rules/next-app-router.md +44 -0
- package/presets/opencode/next/rules/no-props-spread.md +56 -0
- package/presets/opencode/next/rules/no-type-assertion-as-import-export.md +51 -0
- package/presets/opencode/next/rules/package-manager.md +11 -0
- package/presets/opencode/next/rules/playwright-agents.md +67 -0
- package/presets/opencode/next/rules/post-change-lint.md +35 -0
- package/presets/opencode/next/rules/preset-layering.md +27 -0
- package/presets/opencode/next/rules/preset-no-cross-stack-leakage.md +90 -0
- package/presets/opencode/next/rules/preset-pr-checklist.md +36 -0
- package/presets/opencode/next/rules/preset-token-budget.md +39 -0
- package/presets/opencode/next/rules/preset-twin-sync.md +81 -0
- package/presets/opencode/next/rules/product-specs-authoring.md +112 -0
- package/presets/opencode/next/rules/product-specs.md +56 -0
- package/presets/opencode/next/rules/public-imports.md +50 -0
- package/presets/opencode/next/rules/react-a11y-coding.md +31 -0
- package/presets/opencode/next/rules/react-next-anti-hallucination.md +60 -0
- package/presets/opencode/next/rules/react-ui.md +105 -0
- package/presets/opencode/next/rules/reference-features.md +45 -0
- package/presets/opencode/next/rules/security-next.md +45 -0
- package/presets/opencode/next/rules/store-rtk.md +78 -0
- package/presets/opencode/next/rules/technical-retro.md +11 -0
- package/presets/opencode/next/rules/tests-e2e-structure.md +72 -0
- package/presets/opencode/next/rules/tests-unit.md +72 -0
- package/presets/opencode/next/rules/types-jsdoc.md +43 -0
- package/presets/opencode/next/rules/ux-design.md +99 -0
- package/presets/opencode/next/skills/README.md +21 -0
- package/presets/opencode/next/skills/ci-investigation/SKILL.md +44 -0
- package/presets/opencode/next/skills/code-review/SKILL.md +44 -0
- package/presets/opencode/next/skills/debug-investigation/SKILL.md +59 -0
- package/presets/opencode/next/skills/feature-delivery/SKILL.md +39 -0
- package/presets/opencode/next/skills/mockup-review/SKILL.md +29 -0
- package/presets/opencode/next/skills/playwright-e2e/SKILL.md +33 -0
- package/presets/opencode/next/skills/react-performance/SKILL.md +44 -0
- package/presets/opencode/next/skills/spec-authoring/SKILL.md +26 -0
- package/presets/opencode/next/skills/spec-discovery/SKILL.md +58 -0
- package/presets/opencode/next/skills/technical-retro/SKILL.md +54 -0
- package/presets/opencode/next/skills/unit-testing/SKILL.md +34 -0
- package/presets/opencode/next/skills/ux-design/SKILL.md +36 -0
- package/presets/opencode/next/skills/write-adr/SKILL.md +41 -0
- package/presets/opencode/next/team/README.md +148 -0
- package/presets/opencode/next/team/conventions.md +21 -0
- package/presets/opencode/next/team/fixtures/artifact-manifest.example.json +79 -0
- package/presets/opencode/next/team/fixtures/bugfix-standard.json +25 -0
- package/presets/opencode/next/team/fixtures/feature-full.json +29 -0
- package/presets/opencode/next/team/fixtures/feature-light.json +27 -0
- package/presets/opencode/next/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/opencode/next/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/opencode/next/team/fixtures/memlog.example.md +9 -0
- package/presets/opencode/next/team/fixtures/metrics-scenarios/tasks/human-gate/metrics.json +69 -0
- package/presets/opencode/next/team/fixtures/metrics-scenarios/tasks/missing-ledger/status.json +5 -0
- package/presets/opencode/next/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json +79 -0
- package/presets/opencode/next/team/fixtures/metrics-scenarios/tasks/serial-retry/metrics.json +124 -0
- package/presets/opencode/next/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json +124 -0
- package/presets/opencode/next/team/fixtures/metrics.example.json +54 -0
- package/presets/opencode/next/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/opencode/next/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/opencode/next/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/opencode/next/team/tasks/.gitkeep +0 -0
- package/presets/opencode/platform-contract.json +131 -0
- package/scripts/capture-cli-golden.mjs +5 -1
- package/scripts/check-chain-hook-coverage.sh +1 -0
- package/scripts/check-opencode-adapter-map.mjs +294 -0
- package/scripts/check-opencode-local-overlay.mjs +56 -0
- package/scripts/check-opencode-platform-contract.mjs +388 -0
- package/scripts/check-opencode-token-budget.mjs +48 -0
- package/scripts/check-preset-leakage.sh +30 -1
- package/scripts/check-preset-structure.sh +45 -0
- package/scripts/check-task-router-intents.sh +4 -4
- package/scripts/fixtures/cli-golden/claude/next.json +8 -8
- package/scripts/fixtures/cli-golden/cursor/next.json +8 -8
- package/scripts/fixtures/cli-golden/mavis/next.json +9 -9
- package/scripts/fixtures/cli-golden/opencode/next.json +125 -0
- package/scripts/fixtures/opencode-adapter-map/invalid-unmapped/cursor/AGENTS.md +1 -0
- package/scripts/fixtures/opencode-adapter-map/invalid-unmapped/cursor/rules/extra.mdc +1 -0
- package/scripts/fixtures/opencode-adapter-map/invalid-unmapped/cursor/rules/sample.mdc +2 -0
- package/scripts/fixtures/opencode-adapter-map/invalid-unmapped/opencode/OPENCODE.md +1 -0
- package/scripts/fixtures/opencode-adapter-map/invalid-unmapped/opencode/adapter-map.json +26 -0
- package/scripts/fixtures/opencode-adapter-map/invalid-unmapped/opencode/rules/sample.md +2 -0
- package/scripts/fixtures/opencode-adapter-map/valid/cursor/AGENTS.md +1 -0
- package/scripts/fixtures/opencode-adapter-map/valid/cursor/rules/sample.mdc +2 -0
- package/scripts/fixtures/opencode-adapter-map/valid/opencode/OPENCODE.md +1 -0
- package/scripts/fixtures/opencode-adapter-map/valid/opencode/adapter-map.json +26 -0
- package/scripts/fixtures/opencode-adapter-map/valid/opencode/rules/sample.md +2 -0
- package/scripts/fixtures/opencode-platform-contract/invalid-home-destination.json +131 -0
- package/scripts/fixtures/opencode-platform-contract/invalid-missing-capability.json +126 -0
- package/scripts/fixtures/opencode-platform-contract/invalid-released-unknown-stack.json +133 -0
- package/scripts/fixtures/opencode-platform-contract/invalid-unknown-native-path.json +131 -0
- package/scripts/fixtures/opencode-platform-contract/invalid-version-pin.json +132 -0
- package/scripts/fixtures/opencode-platform-contract/valid.json +131 -0
- package/scripts/generate-mavis-next.mjs +9 -7
- package/scripts/generate-opencode-next.mjs +831 -0
- package/scripts/lib/discover-hooks.mjs +23 -1
- package/scripts/sync-dogfood-mavis.sh +90 -0
- package/scripts/sync-dogfood-opencode.sh +85 -0
- package/scripts/test-agent-task-metrics-hooks.mjs +4 -1
- package/scripts/test-chain-team-phases-coverage.mjs +6 -1
- package/scripts/test-cli-init-clean.mjs +111 -0
- package/scripts/test-opencode-context-budget.mjs +53 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Next.js stack — OpenCode agent team
|
|
2
|
+
|
|
3
|
+
Short OpenCode entry. Native discovery: `.opencode/agents/`,
|
|
4
|
+
`.opencode/skills/`, `.opencode/commands/`. Rule files under
|
|
5
|
+
`.opencode/rules/*.md` are **not** auto-loaded.
|
|
6
|
+
|
|
7
|
+
Root `AGENTS.md` is native always-on. Read it first, then this file.
|
|
8
|
+
|
|
9
|
+
## How to load
|
|
10
|
+
|
|
11
|
+
- Essential rules: Read immediately (paths below). Do not preload the catalog.
|
|
12
|
+
- Other rules: lazy `Read` `.opencode/rules/<stem>.md` when the task matches.
|
|
13
|
+
- Agents: native `@name` / Task from `.opencode/agents/`.
|
|
14
|
+
- Commands: native `/task` from `.opencode/commands/`.
|
|
15
|
+
- After a producer receipt, run `bash .opencode/hooks/chain-team-phases.sh`.
|
|
16
|
+
Agents must not write lifecycle fields in `status.json` / `metrics.json`.
|
|
17
|
+
|
|
18
|
+
## Essential rules (read every turn)
|
|
19
|
+
|
|
20
|
+
- `.opencode/rules/next-app-core.md`
|
|
21
|
+
- `.opencode/rules/package-manager.md`
|
|
22
|
+
- `.opencode/rules/code-quality-and-refactoring.md`
|
|
23
|
+
- `.opencode/rules/ai-local-overlay.md`
|
|
24
|
+
|
|
25
|
+
See `.opencode/rules/README.md` for the full catalog and loading strategy.
|
|
26
|
+
|
|
27
|
+
**Platform docs:** published with the `@bonesofspring/ai-rules` package
|
|
28
|
+
(`docs/OPENCODE.md`, `docs/OPENCODE-COMPATIBILITY.md`) — **not** copied into
|
|
29
|
+
the consumer repo. Source: https://github.com/bonesofspring/ai-rules
|
|
30
|
+
|
|
31
|
+
**Repo-root agents:** see [`AGENTS.md`](../../AGENTS.md) at the project root (cross-tool setup, commands, security, living conventions pointers).
|
|
32
|
+
|
|
33
|
+
## Quick start
|
|
34
|
+
|
|
35
|
+
| Task | Where to look |
|
|
36
|
+
|------|----------------|
|
|
37
|
+
| Any new work task | `/task` → `commands/task.md` + `agent-team-orchestrator.md` (+ `agent-team-intake.md` on-demand) |
|
|
38
|
+
| New end-to-end feature | skill `feature-delivery` + `feature-delivery-workflow.md` |
|
|
39
|
+
| Stack and layers | `next-app-core.md` |
|
|
40
|
+
| Reference features | `reference-features.md` (fill paths in the repo) |
|
|
41
|
+
| After code edits | `post-change-lint.md` (**requestable**, but required after edits; full gate — `build-verifier`) |
|
|
42
|
+
| Code review MR | skill `code-review` + `code-review-mr.md` |
|
|
43
|
+
| Security (auth/forms/env) | `security-next.md` + agent `security-reviewer` |
|
|
44
|
+
| Validation before review | agent `build-verifier` |
|
|
45
|
+
| Technical retro | `/technical-retro` + skill `technical-retro` |
|
|
46
|
+
|
|
47
|
+
## When to use `/task`
|
|
48
|
+
|
|
49
|
+
- Implementation, bugfix, migration, tests, MR review, CI fix — **prefer `/task`**.
|
|
50
|
+
- Simple one-liner without architectural risk — may skip the pipeline if the user explicitly asks.
|
|
51
|
+
- Questions «как работает X» (how does X work) — agent `codebase-analyzer` (explain-as-is) or answer without `/task`. <!-- i18n-keep: E4 -->
|
|
52
|
+
|
|
53
|
+
## Pipeline routing
|
|
54
|
+
|
|
55
|
+
Intent detection, profiles (`full` / `standard` / `light`), and default steps — **only** in `agents/task-router.md`. Schema and examples — `agents/README.md`.
|
|
56
|
+
|
|
57
|
+
## Install
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npx @bonesofspring/ai-rules init opencode --preset next
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Copies rules, commands, agents, hooks, skills, team, `OPENCODE.md` →
|
|
64
|
+
`.opencode/AGENTS.md`, `MCP.md`, `opencode.json` → project `opencode.json`
|
|
65
|
+
(`mcp` merge), plus `REPO_AGENTS.md` → root `AGENTS.md`.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Next.js preset (OpenCode)
|
|
2
|
+
|
|
3
|
+
Sibling adapter derived from `presets/cursor/next`. Platform id `opencode`;
|
|
4
|
+
runtime `opencode`. Consumer install root is `.opencode/` (native agents,
|
|
5
|
+
skills, commands) plus root `AGENTS.md` and `opencode.json`.
|
|
6
|
+
|
|
7
|
+
Mapping: `adapter-map.json`. Do not derive this tree from Claude.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx @bonesofspring/ai-rules init opencode --preset next
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
`releasedStacks` currently lists **`next`** only.
|
|
14
|
+
|
|
15
|
+
Omitted from this pilot: `BUGBOT.md`, `hooks.json`, hook examples, and
|
|
16
|
+
unwired `guard-shell-command.sh`.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Next.js — agent instructions
|
|
2
|
+
|
|
3
|
+
Cross-tool repo-root guide. Tool-specific maps stay under `.cursor/AGENTS.md`,
|
|
4
|
+
`.claude/CLAUDE.md`, `.mavis/AGENTS.md`, and `.opencode/AGENTS.md`.
|
|
5
|
+
|
|
6
|
+
When this OpenCode preset is installed, read `.opencode/AGENTS.md` on every
|
|
7
|
+
turn. Do not write `~/.config/opencode/**`. Do not mutate
|
|
8
|
+
`.opencode/team/tasks/<slug>/status.json` or `metrics.json` — the chain
|
|
9
|
+
runner owns those files.
|
|
10
|
+
|
|
11
|
+
## Cross-tool setup
|
|
12
|
+
|
|
13
|
+
- Treat this file as the **shared** entry for any agent (Cursor, Claude Code,
|
|
14
|
+
Mavis, OpenCode, or other).
|
|
15
|
+
- Install:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx @bonesofspring/ai-rules init cursor --preset next
|
|
19
|
+
npx @bonesofspring/ai-rules init claude --preset next
|
|
20
|
+
npx @bonesofspring/ai-rules init mavis --preset next
|
|
21
|
+
npx @bonesofspring/ai-rules init opencode --preset next
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
`init` overwrites this file from the preset (`REPO_AGENTS.md` → `AGENTS.md`).
|
|
25
|
+
Living gotchas belong in `team/conventions.md`, not here.
|
|
26
|
+
|
|
27
|
+
## OpenCode load map
|
|
28
|
+
|
|
29
|
+
After install, also read:
|
|
30
|
+
|
|
31
|
+
- `.opencode/AGENTS.md` — OpenCode load map, roles, and procedures
|
|
32
|
+
- `.opencode/rules/next-app-core.md`
|
|
33
|
+
- `.opencode/rules/package-manager.md`
|
|
34
|
+
- `.opencode/rules/code-quality-and-refactoring.md`
|
|
35
|
+
- `.opencode/rules/ai-local-overlay.md`
|
|
36
|
+
|
|
37
|
+
Do **not** preload the full `.opencode/rules/` catalog. Native agents live in
|
|
38
|
+
`.opencode/agents/`; skills in `.opencode/skills/`; slash commands in
|
|
39
|
+
`.opencode/commands/` (`/task`). After a producer receipt run
|
|
40
|
+
`bash .opencode/hooks/chain-team-phases.sh`.
|
|
41
|
+
|
|
42
|
+
## Commands (test / lint / build)
|
|
43
|
+
|
|
44
|
+
Working directory for app scripts: **`app/`**. Detect the package manager from
|
|
45
|
+
lockfile / `packageManager` (`package-manager` rule).
|
|
46
|
+
|
|
47
|
+
| Gate | Typical command |
|
|
48
|
+
|------|-----------------|
|
|
49
|
+
| Lint JS | `yarn lint:js` (or project equivalent) from `app/` |
|
|
50
|
+
| Lint CSS | `yarn lint:css` from `app/` |
|
|
51
|
+
| Unit tests | project unit script under `app/` |
|
|
52
|
+
| Build | project `build` under `app/` |
|
|
53
|
+
|
|
54
|
+
After code edits: invoke **`post-change-lint`** (requestable). Full gate: agent
|
|
55
|
+
`build-verifier`.
|
|
56
|
+
|
|
57
|
+
## Security basics
|
|
58
|
+
|
|
59
|
+
- Do not commit secrets (`.env`, tokens, credentials).
|
|
60
|
+
- Review destructive git (`reset --hard`, force-push) before running; respect
|
|
61
|
+
shell hooks.
|
|
62
|
+
- Do not weaken CI or skip hooks unless the user explicitly asks.
|
|
63
|
+
|
|
64
|
+
## Tool entry points
|
|
65
|
+
|
|
66
|
+
| Tool | Map |
|
|
67
|
+
|------|-----|
|
|
68
|
+
| Cursor | `.cursor/AGENTS.md` (optional if Cursor not installed) |
|
|
69
|
+
| Claude Code | `.claude/CLAUDE.md` (optional if Claude Code not installed) |
|
|
70
|
+
| Mavis | `.mavis/AGENTS.md` (optional if Mavis not installed) |
|
|
71
|
+
| OpenCode | `.opencode/AGENTS.md` (optional if OpenCode not installed) |
|
|
72
|
+
|
|
73
|
+
Rules: `.cursor/rules/`, `.claude/rules/`, `.mavis/rules/`, or `.opencode/rules/`.
|
|
74
|
+
Skills: `.cursor/skills/`, `.claude/skills/`, `.mavis/skills/`, or `.opencode/skills/`.
|
|
75
|
+
|
|
76
|
+
## Living conventions
|
|
77
|
+
|
|
78
|
+
Gotchas, local patterns, and team decisions:
|
|
79
|
+
**`.cursor/team/conventions.md`**, **`.claude/team/conventions.md`**,
|
|
80
|
+
**`.mavis/team/conventions.md`**, and/or **`.opencode/team/conventions.md`**
|
|
81
|
+
(fill after init; not overwritten on every dogfood sync when already present).
|
|
82
|
+
|
|
83
|
+
## Local overlay (`.ai.local/`) — MANDATORY
|
|
84
|
+
|
|
85
|
+
A `.ai.local/` directory MAY exist at the repo root or at any nesting depth in
|
|
86
|
+
monorepos. **All agents MUST read and apply it on every turn.** Rules there
|
|
87
|
+
override preset rules; in conflicts, the local rule wins.
|
|
88
|
+
`override: kill <preset-rule-name>` drops the named preset rule from the
|
|
89
|
+
agent's context entirely.
|
|
90
|
+
|
|
91
|
+
Plain markdown rules under `.ai.local/rules/*.md` are read by the agent with
|
|
92
|
+
higher priority than preset rules. Living gotchas live in
|
|
93
|
+
`.ai.local/conventions.md`.
|
|
94
|
+
|
|
95
|
+
Authoring guide: `docs/LOCAL-OVERLAY.md` in the `@bonesofspring/ai-rules`
|
|
96
|
+
package. The `ai-local-overlay` rule is the mechanism; this `MANDATORY`
|
|
97
|
+
section is the reinforcement.
|