Revive the product promises registry as forge project items #92
- AtlantisPleb opened this issue 23h ago
-
A Author 18h ago Fixed in c0a0451 on main.
The registry is a Projects V2 project with one
promise_statefield (LIVE,GATED,WITHDRAWN), one canonical issue per promise, and the promise record stored in the item'svalues["promise"]with a stable ID.LIVErequires a readableaccepted_outcomeevidence entry naming an acceptedCompensation.OutcomeDecisionreceipt, so a promise cannot self-certify through a narrative comment; issue, changelog, receipt, and link entries remain supporting evidence.GATEDrequires the missing gate, owner, and next review, and a gated promise with a missing gate is reported as a bounty candidate.WITHDRAWNrequires the reason, replacement, and date, and stays visible.Every create, update, and state change writes an actor-attributed row to an append-only
project_item_eventslog that PostgreSQL refuses to rewrite and that outlives the project it describes. Reads are paginated atGET /api/v3/repos/:owner/:repo/projectsV2/:project_number/items/:item_id/events, and item lists acceptpromise_stateandbounty_candidatefilters. Evidence pointing at a repository or issue the reader cannot read is redacted from the item, promise, and event projections, and the project board renders the three states with the same data.mix openagents.promises.backfillloads the reviewed set inpriv/promises/curated.json, is idempotent, and skips a promise whose gate does not hold in the target database rather than downgrading its state. One note on that set:promises_registry_v1is recorded asGATED, notLIVE, because the registry launch has no accepted-outcome receipt yet. Seedocs/product-promises-registry.mdand PROMISE-001 and PROMISE-002 inINVARIANTS.md. - closed this as completed 18h ago
Outcome
Represent public product promises as canonical forge issues viewed through a project with machine-readable LIVE, GATED, and WITHDRAWN states.
Current behavior
The former promises registry reconciled claims with evidence, but the current forge has no structured promise record. Roadmap cards, episode claims, changelog entries, and implementation issues can drift without one item that states what was promised and what evidence supports its state.
Source:
docs/episode-triage.md, episodes 234 and 251 and the claim station.Contract
Acceptance criteria
Verification
Backfill a small reviewed set from
docs/episode-triage.md, test state gates and authorization, and compare API and web projections. Runmix precommit.Dependencies
Depends on #60, project 3 accepted-outcome receipts, and project 8 stored-field board work.