Files
psf-memo/specs/README.md
T
Chris Troutner 7134979eb8 Reconfigure monorepo for SwarmForge development
- Move specifier-prompt.md to repo root and rewrite it for the monorepo.
- Move specs/feature-backlog.md to root specs/ and update with component scope.
- Add specs/README.md, psf-memo-indexer/specs/README.md, psf-memo-db/specs/README.md.
- Add swarmforge/constitution/articles/monorepo.prompt for shared monorepo rules.
- Update root README.md with repository layout, local dev commands, and SwarmForge info.

By specifier.
2026-08-26 10:23:53 -07:00

45 lines
1.6 KiB
Markdown

# psf-memo Specifications
This directory holds cross-component and per-component behavior specifications.
## Layout
```text
specs/
├── README.md # this file
├── feature-backlog.md # monorepo-wide prioritized backlog
└── (per-component specs live next to their component)
```
Per-component feature files:
- `psf-memo-client/specs/*.feature` — React SPA behavior (write + read paths)
- `psf-memo-indexer/specs/*.feature` — indexer behavior (future)
- `psf-memo-db/specs/*.feature` — DB REST API behavior (future)
## Why split specs by component?
A single user-facing feature (e.g. "Like a Memo") usually needs coordinated
changes in all three layers:
1. **psf-memo-db** exposes a new route or store for like counts / liked state.
2. **psf-memo-indexer** parses and stores `0x6d04` like transactions.
3. **psf-memo-client** renders the heart icon, modal, and broadcast.
Keeping feature files next to the component they exercise lets that component's
acceptance pipeline own the spec. The monorepo backlog (`feature-backlog.md`)
tracks which components are touched by each user-facing feature.
## Gherkin conventions
- Each feature file uses `Feature:`, one optional `Background:`, and `Scenario`
or `Scenario Outline:` with `Examples:`.
- Name each scenario `Feature Name - N`.
- Put a `#` comment listing all scenario names immediately before the
`Feature:` line.
- Use `<parameter>` placeholders for values that vary and improve mutation.
- Prune identical example-table columns that do not improve Gherkin acceptance
mutation.
- Run `bb gherkin-ir-dry-checker` on each IR to normalize and prune before
handing off.