Files
psf-memo/specs
Chris Troutner 35cb1725a3 Update briefing and backlog for mute-user merge
Mark P4.1/P4.2 mute/unmute shipped; point next spec at P5.1 send money.

By specifier.
2026-08-28 21:46:05 -07:00
..

psf-memo Specifications

This directory holds cross-component and per-component behavior specifications.

Layout

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.