Repository source: docs/specs/feedback_item_record_v1.md
Feedback Item Record V1
One file per requested outcome from site feedback: a feature, a bug, or other actionable work. Items are the current authority for feedback status; dated summaries and the production feedback register are history.
Location and identity
Files live in
docs/feedback/items/<ID>.txt; the filename stem must equalID.IDisPF-YYYYMMDD-<letter><number>: intake date,Ffor feature,Bfor bug,Ofor other, and a number of two or more digits. The letter must matchKind. IDs are permanent: never renumbered or reused, including after closure.
Format
Key: value headers, one blank line, then a plain-text body. UTF-8, LF line
endings, trailing newline, no control characters except tab (the canonical text
rules in GenericTextRecordParser). Each header appears once.
Headers:
ID(required)Title(required): a few words naming the outcome.Kind(required):feature,bugorother.Workflow(required):untriaged,ready,planned,in-progress,blocked,done,declined,supersededorduplicate. Meanings follow production feedback management.Created(required): intake date,YYYY-MM-DD.Evidence(optional):unknown(default),locally-verified,deployedorproduction-accepted.Estimate(optional): a nonnegative decimal on the Railspike cycle scale, ornone. Clear it when scope changes.Aliases(optional): comma-separated earlier labels, such as2026-10-21/F01.Duplicate-Of,Superseded-By(required with those workflow values, otherwise absent): the ID of the item that replaces this one.
Body sections, each introduced by its label alone on a line and separated by a blank line, in this order:
Request:(required): what was asked, in plain words, preserving qualifiers such as "maybe" or "explore".Sources:(required): one- <url>line per supporting post, using the site's/posts/<post-id>or/threads/<thread-id>URL. Several sources live here because headers cannot repeat.Done when:(optional): observable completion checks.Notes:(optional): current evidence, next action and links to history. Write file references as repository-relative paths (docs/plans/...#anchor), so they read the same from any folder.
Checks
./v3 feedback check reports, per file: unreadable or malformed text, unknown or
missing headers, invalid values, an ID that does not match its filename or
kind, a missing Request: or Sources: section, and a source line that is not a
post or thread URL. Across files it reports duplicate IDs and Duplicate-Of or
Superseded-By targets that do not exist. Any of these fails the check.
It also lists, without failing, a post or thread ID shared by two items. That is
expected when one post asked for two independent outcomes and they were split;
otherwise it points at a missed duplicate. Items with Workflow: duplicate or
superseded keep their sources and are left out of this listing.
Example (illustrative ID)
ID: PF-20260101-F01
Title: Summary field on threads
Kind: feature
Workflow: untriaged
Created: 2026-11-03
Request:
In addition to the title, threads should have a summary field. Brainstorm.
Sources:
- https://zenmemes.com/threads/thread-20261103051750-7f138dfb
- https://zenmemes.com/threads/thread-20261103051823-6a0ec599