docs: add roadmap, ADRs, and initial HOUSEBOT specs

This commit is contained in:
2026-03-05 00:47:18 +04:00
commit 768400214e
10 changed files with 653 additions and 0 deletions

75
docs/specs/README.md Normal file
View File

@@ -0,0 +1,75 @@
# 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.