65 lines
2.4 KiB
YAML
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.
|