OpenCut/openspec/config.yaml

59 lines
2.0 KiB
YAML

schema: spec-driven
context: |
Tech stack: Rust (core logic, WASM) + TypeScript/Next.js 16 (web UI) + GPUI (desktop UI)
Architecture: Migrating to Rust core — apps/ are UI shells only, rust/ owns all logic
Monorepo: Bun workspaces + Turborepo + Cargo workspace
Testing: bun test (web), cargo test (rust)
Style: Biome (linter+formatter), tab indent, double quotes, strict TS, no console/debugger
strict_tdd: true
rules:
proposal:
- Include rollback plan for risky changes
- Identify affected modules/packages
specs:
- Use Given/When/Then format for scenarios
- Use RFC 2119 keywords (MUST, SHALL, SHOULD, MAY)
design:
- Include sequence diagrams for complex flows
- Document architecture decisions with rationale
tasks:
- Group tasks by phase (infrastructure, implementation, testing)
- Use hierarchical numbering (1.1, 1.2, etc.)
- Keep tasks small enough to complete in one session
apply:
- Follow existing code patterns and conventions
- Load relevant coding skills for the project stack
- Logic goes in rust/, UI only in apps/
verify:
- Run tests if test infrastructure exists
- Compare implementation against every spec scenario
archive:
- Warn before merging destructive deltas (large removals)
testing:
strict_tdd: true
detected: "2026-04-22"
test_runner:
web:
command: "bun test"
framework: "bun test (built-in)"
rust:
command: "cargo test"
framework: "cargo test (built-in)"
test_layers:
unit: { available: true, tool: "bun test / cargo test" }
integration: { available: false, tool: null }
e2e: { available: false, tool: null }
coverage:
available: false
command: null
quality_tools:
linter: { available: true, command: "biome check" }
type_checker: { available: true, command: "tsc --noEmit" }
formatter: { available: true, command: "biome format" }
rust_linter: { available: false, command: null }
rust_formatter: { available: true, command: "rustfmt" }