BafGo Port
app preview
This is the local BafGo Port app. It renders from your repo's .bafgo/ folder via bafgo serve, not from a hosted service. The rules below are sample data.
bafgo serve · three views
Overview

Rules, traced end to end.

The layer between what was decided and what actually shipped: every rule, why it exists, and its live link to code, tests, and the demo.

12rules
2in review
7verified
94%coverage
1stale link
#R-123 Timer keeps running while the screen sleeps 3 files 7 unit demo 2 e2e verified ▾
The rule
when: a timer is active and the display sleeps
then: the countdown continues
     the chime still fires at zero
Why it exists
Product decision: timers must stay trustworthy while cooking away from the device. src: product/2026-10-02
State
draftspecifiedimplementedreviewapprovedverified
Traceability
ruleR-123 · keeps running while asleep
codetimer.js · tick() · index.htmlsatisfied
unittimer-core.test.js · 7 passinggreen
demopreview.bafgo.com/r-123approved
e2etimer-sleep.spec.js · 2 greengreen
#R-124 Shopping list persists across sessions 2 files 5 unit demo e2e in review ▾
The rule
when: items are checked off and the app reloads
then: the list restores with the same items
Why it exists
Existing behavior: the list is already stored in localStorage; the rule formalizes the contract. src: repo/list-core.js
State
draftspecifiedimplementedreviewapprovedverified
Traceability
ruleR-124 · persists across sessions
codelist-core.js · list.htmlsatisfied
unitlist-core.test.js · 5 passinggreen
demopreview.bafgo.com/r-124awaiting review
#R-125 Converter rounds to sensible precision 1 file 9 unit demo e2e implemented ▾
The rule
when: a conversion yields a repeating decimal
then: the result rounds to two decimals
Why it exists
Product decision: kitchen measurements shouldn't show 3.333333 cups. src: product/2026-09-18
State
draftspecifiedimplementedreviewapprovedverified
Traceability
ruleR-125 · rounds to two decimals
codeconvert.html · round()satisfied
unitconverter tests · 9 passinggreen
demopreview.bafgo.com/r-125stale · test no longer covers the then clause
#R-126 Recipe sharing link expires after 24 hours code unit demo e2e specified ▾
The rule
when: a share code is older than 24 hours
then: the relay rejects it with 410
Why it exists
Existing behavior: the share relay already has a TTL; the rule pins the exact boundary. src: api/share.js
State
draftspecifiedimplementedreviewapprovedverified
#R-128 Dark mode feels right at night · exploratory human review draft ▾
Exploratory rule
Not expressible as when → then: it's design taste. Routes to the exploratory track, where a human reviews a demo rather than a generated test. No automated tests are produced.
State
draftspecifiedimplementedreviewapprovedverified
Gate

Review queue

You gate the demo. Approve and the tests get written; reject and the work goes back.

#CH-42 · R-124 Shopping list persists across sessions in review
preview.bafgo.com/r-124
Shopping list
3 items
restores after reload ✓
Change
+ list-core.js (persistence) · + list-core.test.js (5 tests) · 1 file changed, 42 insertions
#CH-47 · R-128 Dark mode feels right at night exploratory
preview.bafgo.com/r-128
Kitchen timer
9:41 PM
dark mode preview
Exploratory review
Not a testable rule. It's human judgment on feel, so no automated tests are generated from this track.
Editor

Write the rule.

Start in plain language, shape it into a when → then, and add a note on why it exists, so reviewers can see the reasoning.

src: product/2026-10-02
your key · your provider · never stored or billed by the port
whena timer is active
whenthe display sleeps
thenthe countdown continues
thenthe chime still fires at zero
all conditions must hold · alternatives become separate rules
Exploratory rules skip generated tests. A human reviews a demo instead, and no when → then is required.