Files
OmniOilPersonal/openspec/config.yaml
2026-05-07 10:15:26 -05:00

65 lines
2.4 KiB
YAML

schema: spec-driven
context: |
Tech stack: Rust workspace services + React/Vite frontends + Next.js landing + Docker infra.
Architecture: services/ microservices reuse services/shared-lib; infra under infrastructure/; E2E helpers under tests/.
Testing: cargo test; Vitest in frontend-admin and frontend-pwa; Python infra/E2E scripts are run individually.
Style: rustfmt/cargo fmt, ESLint for frontends, TypeScript configs per frontend.
strict_tdd: true
testing:
detected: "2026-05-07"
strict_tdd: true
test_runner:
framework: "Cargo test + Vitest"
command: "cargo test; pnpm --dir services/frontend-admin test; pnpm --dir services/frontend-pwa test"
layers:
unit:
available: true
tool: "cargo test, vitest"
integration:
available: true
tool: "Rust integration tests via cargo; Python infra scripts"
e2e:
available: true
tool: "Python Modbus/MQTT helpers under tests/ and infrastructure/tests/"
coverage:
available: false
command: ""
quality:
linter:
available: true
command: "pnpm --dir <frontend> lint"
type_checker:
available: true
command: "cargo check; npx tsc --noEmit -p <frontend>/tsconfig.json"
formatter:
available: true
command: "cargo fmt -- --check"
rules:
proposal:
- Include rollback plan for risky changes.
- Identify affected services, frontends, and infra modules.
specs:
- Use Given/When/Then format for scenarios.
- Use RFC 2119 keywords: MUST, SHALL, SHOULD, MAY.
design:
- Include sequence diagrams for complex service/data 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.
- Do not implement landing optimization unless an explicit SDD change asks for it.
apply:
- Follow existing Rust and TypeScript conventions from AGENTS.md.
- Reuse services/shared-lib for shared Rust domain/data contracts.
- For landing changes, read services/landing/AGENTS.md and local Next.js docs first.
verify:
- Run targeted tests when test infrastructure exists; never rely on unstated manual verification.
- Compare implementation against every spec scenario.
archive:
- Warn before merging destructive deltas or large removals.