mirror of
https://github.com/whekin/household-bot.git
synced 2026-03-31 20:14:02 +00:00
* feat(WHE-15): bootstrap bun workspace with app and package scaffolds * chore(WHE-17): switch workspace typecheck to tsgo * chore(WHE-16): configure oxlint and oxfmt no-semicolon style * chore: address CodeRabbit review feedback * chore: apply coderabbit fixes and add review script * docs: add ADR decision metadata
93 lines
1.5 KiB
Markdown
93 lines
1.5 KiB
Markdown
# Specs Guide
|
|
|
|
Each implementation ticket should have one spec file in `docs/specs/`.
|
|
|
|
## Naming
|
|
|
|
Use `HOUSEBOT-<id>-<slug>.md`.
|
|
|
|
Example:
|
|
|
|
- `HOUSEBOT-001-monorepo-bootstrap.md`
|
|
|
|
## Spec Template
|
|
|
|
```md
|
|
# <Title>
|
|
|
|
## Summary
|
|
|
|
Short description of the feature and user value.
|
|
|
|
## Goals
|
|
|
|
- ...
|
|
|
|
## Non-goals
|
|
|
|
- ...
|
|
|
|
## Scope
|
|
|
|
- In: ...
|
|
- Out: ...
|
|
|
|
## Interfaces and Contracts
|
|
|
|
- Commands/events/APIs involved.
|
|
- Input and output schemas.
|
|
|
|
## Domain Rules
|
|
|
|
- Business constraints and invariants.
|
|
|
|
## Data Model Changes
|
|
|
|
- Tables, fields, indexes, migrations.
|
|
|
|
## Security and Privacy
|
|
|
|
- Auth, authorization, PII handling, abuse prevention.
|
|
|
|
## Observability
|
|
|
|
- Required logs, metrics, traces, and alerts.
|
|
|
|
## Edge Cases and Failure Modes
|
|
|
|
- Invalid input
|
|
- External service failures
|
|
- Duplicate/retry behavior
|
|
|
|
## Test Plan
|
|
|
|
- Unit:
|
|
- Integration:
|
|
- E2E:
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [ ] ...
|
|
- [ ] ...
|
|
|
|
## Rollout Plan
|
|
|
|
- Feature flags / staged rollout / backout plan.
|
|
```
|
|
|
|
## Definition of Done
|
|
|
|
- Spec exists and matches implementation.
|
|
- Code follows architecture boundaries.
|
|
- Tests for new behavior are included and passing.
|
|
- Lint and typecheck pass in CI.
|
|
- Docs/ADR updates included if behavior or architecture changed.
|
|
- No TODOs without linked follow-up ticket.
|
|
|
|
## Boundary Rules (Hexagonal)
|
|
|
|
- `packages/domain` must not import framework/DB/HTTP code.
|
|
- `packages/application` depends only on domain + ports/contracts.
|
|
- `packages/adapters-*` implement ports and may depend on external SDKs.
|
|
- Wiring of concrete adapters happens only in app entrypoints.
|