A founder's week
The saved transcript of one scripted week, 14 cards and 75 assertions, read day by day.
This page follows docs/artifacts/demo-founder-week.txt in the codeloop repo. It is the output of scripts/demo-founder-week.sh, which runs a whole week against the built CLI with a stand-in agent and a clock the script controls, and asserts every step. The script passed 75 checks and failed none. Every quoted line below is from that file.
The product is a made-up invoicing app. The competitor is a made-up Rivalsoft. The agent is a fake that writes the minimum each check wants, so the week shows what the engine does, not what a model writes.
Sunday evening: setup
codeloop init installs the eight lanes. The agent command is set in local.yaml, which is read over config.yaml and never leaves the machine. cloud connect uploads the board, config and lanes to a Protobox workspace.
ok codeloop init installs the 8 shipped lanes; none is edited for this demo
ok cloud status: 10 documents, all in sync, and local.yaml is not one of them
ok the competitor gets a wiki page with its docs and changelog links
ok the first scan only stores what the changelog says todaySunday night: nobody at the keyboard
codeloop run --agent runs from cron every 30 minutes. The triage lane is due at 20:00.
20:05 created c-001 in triage (trigger: cron 0 20 * * *)
20:05 c-001: agent fake ran capture
20:05 c-001: moved
20:35 c-001: agent fake ran classify
20:35 c-001: moved
21:05 c-001: agent fake ran dedupe
21:05 c-001: moved
21:35 c-001: agent fake ran file
21:35 c-001: waiting for you
ok triage proposed one card per distinct issue: two cards from three issues, each naming its issue
ok the duplicate issue was named, not proposed twiceMonday 07:00 the scan lane runs. Its one stage is a command, not a skill, so no agent is involved.
07:05 created c-004 in scan (trigger: cron 0 7 * * MON)
07:05 c-004: done
ok the scan proposed one card: what shipped, the new lines and the source
ok scanning again proposes nothing new
ok nothing started any proposal overnight: three proposals, none of them movedMonday morning: ten minutes
The inbox has four things. The founder passes the triage batch, promotes the competitor card and drops the dark theme.
$ codeloop approve c-001
c-001 gate proposals approved
c-001 done
$ codeloop approve c-005
c-005 promoted to plan/gather
Next: run the /reflect skill to write plan/c-005/signals.md, then `codeloop next c-005`.
$ codeloop reject c-002 "not this quarter"
c-002 dropped; note recordedThe plan lane takes the promoted card through gather, research, rank and story on four runs and stops at the backlog gate. The lane has wip: 1, so the weekly plan card due at 09:00 waits its turn.
09:05 skipped plan: lane plan already has 1 active cards (wip 1)
ok plan's research stage put its Rivalsoft finding on the competitor page
ok the weekly plan card (Monday 09:00) was held back: the lane works on one card at a timeMonday: one feature to the spec gate
$ codeloop start "Bulk CSV export" --as owner
created c-006 in build at stage research (specs/006-bulk-csv-export/)
ok the research check refuses the empty template
10:35 c-006: agent fake ran research
11:05 c-006: agent fake ran mock
11:35 c-006: agent fake ran spec
11:35 c-006: waiting for you
ok research cites three sources and a verdict
ok the mock is built from the shared template and draws both screens the spec names
ok an agent cannot approve the gateThe inbox shows the spec to read and the mock path beside it. The founder approves, and the card moves to build.
Monday afternoon: build, verify, review
ok before the agent builds, the product's test fails
13:05 c-006: agent fake ran build
13:35 c-006: agent fake ran verify
13:35 c-006: waiting for you
$ sed -n 1,12p evidence/006/verify.md
# Verify c-006
result: pass
sha: e4fcafedc23dc67e42694af96e22a76248582eb8
env: local
| Use case | Accepts | Layers |
|---|---|---|
| uc-1 | US1 | cli pass |codeloop verify ran the card's use case and wrote evidence with the commit SHA. The owner approves the local gate, the agent writes the review, and the card waits for a reviewer.
ok the review is written and the card waits for a reviewer, not the owner
ok the owner cannot pass the reviewer's gate
$ codeloop approve c-006 --as reviewer
ok the reviewer approves and the card moves to stagingMonday, later: public steps wait before they act
The merge is tagged v0.1.0. The deploy lane triggers on a tag.
15:35 created c-008 in deploy (trigger: git.tag v0.1.0)
15:35 c-008: agent fake ran staging
16:05 c-008: agent fake ran verify
16:05 c-008: waiting for you
ok deploy did staging and verify, then stopped on entering prod
ok nothing was released: the prod step has not run and no agent was started for it
ok the build card's own live stage waits the same wayThe founder approves both prod gates. The deploy card releases and smoke-tests. The build card goes live, and because the build lane has on_done: { start: market }, a market card starts on its own.
18:35 c-006: done
19:05 c-009: agent fake ran brief
19:35 c-009: agent fake ran draft
19:35 c-009: waiting for you
ok a market card started by itself when it finished; nobody typed a command
ok the agent wrote the brief and the launch post; the post waits at the copy gateTuesday: a post rejected once
$ cat marketing/c-009/blog.md
Export is here.
claim: any list, exported in one click
$ codeloop reject c-009 "No number behind the claim: cite the measured export time."
c-009 rejected at draft; note recorded
08:00 c-009: agent fake ran draft
08:00 c-009: waiting for you
$ cat marketing/c-009/blog.md
Export is here.
claim: any list, exported in one click
proof: 214 rows exported in 0.4 seconds in our test runThe redo got the note in its brief. The founder approves the copy gate, the card enters publish and stops again, because publish is a public step. A second approval lets it post.
ok publishing is a public step: the card entered it and waits before anything is posted
ok nothing is published yet
ok published, measured, done
ok the published URL is recordedFriday: the growth review
The analyze lane runs at 09:00. It pulls the numbers, compares them, and waits for the founder's verdicts. After approval it writes findings, and the findings open exactly one plan card.
ok analyze pulled the numbers and compared them, and waits for the founder's verdicts
ok the findings opened exactly one plan card, linked to the analyze card that produced them
ok the plan lane has already taken it to the backlog gateFriday afternoon: the lane changes
A second launch post has the same fault as Tuesday's. Two more rejections make three at the market lane's draft gate on version 1.
$ codeloop reject c-014 "Lead with the customer, not the feature."
ok one more rejection is not enough for a proposal
$ codeloop reject c-014 "No number behind the claim, again."
Three rejections at market/draft on lane version 1. codeloop proposes a change to the lane.
$ codeloop lane propose
proposed .codeloop/proposals/market-draft-1
ok the proposal cites both cards and all three notes, and carries them into the stage as notesThe founder tightens the check in the proposal and adds a fixture that must fail. promote is refused until the eval is green.
$ codeloop lane eval market-draft-1
ok draft / claim-without-proof: expected fail, got fail
ok draft / claim-with-proof: expected pass, got pass
ok replay c-009 / draft
eval green for market-draft-1
ok an agent cannot promote a lane change
$ codeloop lane promote market-draft-1
ok the market lane is at version 2 and version 1 is kept
17:05 c-014: agent fake ran draft
ok the agent's next brief carried the lane's notes, and the post now passes the stricter checkFriday, end of the week
$ codeloop inbox
9 shipped this week, 4 waiting on you, oldest 4 days
$ codeloop stats
all cards
cards 14, done 9
human turns per card 1.5
unattended span 13.42h
cycle time 6.48h
rework (rejects/approvals) 0.23
stuck rate 0%
first pass at market/copy 0%
$ codeloop stats --lane market --compare v1 v2
market v1
cards 2, done 1
human turns per card 3.5
rework (rejects/approvals) 1
first pass at market/copy 0%SUMMARY
cards: 14 (9 done)
human approvals: 15 (13 gates, 1 proposal promoted, 1 lane change)
human rejections: 4
agent runs: 49
lane versions: analyze v1, build v1, deploy v1, learn v1, market v2, plan v1, scan v1, triage v1
ok the approvals and rejections on the cards are exactly the ones the founder typed
DEMO PASS: 75 checks passed, 0 failedFifteen approvals and four rejections were the founder's whole week. Forty-nine agent runs did the rest.
Run it yourself
git clone https://github.com/sixfactors/codeloop
cd codeloop && npm install && npm run build
bash scripts/demo-founder-week.shThe cloud steps need a local Protobox and are skipped when none is running.