Skip to content

Fix the init→ladder happy path found by simulation - #30

Open
somebox wants to merge 4 commits into
mainfrom
fix/happy-path-simulation
Open

somebox wants to merge 4 commits into
mainfrom
fix/happy-path-simulation

Conversation

@somebox

@somebox somebox commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • A fresh cards init workspace could create cards as me but not claim them: definition-declared users never reached the users table, and the ownership check only consulted that table. checkUserExists now accepts declared users, the workspace snapshot merges registered + declared, and the unknown_user hint names cards users register.
  • Quiet list -q on an empty collection printed {"items":[]}, which a list -q | while read id loop would feed to the next command. Quiet mode now keys on the presence of items, not its length.
  • project-practices.md now includes the five ladder JSON files (it previously told the reader to copy them but only shipped a settings snippet). Board snapshot closes the related cards; sprint note for 09-06 and a cards-8080 launch config land with it.

Test plan

  • go test ./internal/core ./internal/cli ./internal/docaudit
  • Fresh cards init workspace: create a card as the declared default user, then claim it (cards take / owner patch) without registering first
  • cards list -q on an empty board prints nothing (no {"items":[]})
  • Ladder files in internal/agentguide/skill/references/project-practices.md §2 match a working epic/story/task init

Made with Cursor

somebox and others added 4 commits September 5, 2026 15:24
Walking a stranger through `cards init` → replace the starter with the
epic/story/task ladder → create, link, claim, export surfaced three gaps:

- Definition-declared users (workspace.users, or the settings.default_user
  seed) never reach the users table, and the ownership check only consulted
  the table. A fresh `cards init` workspace's `me` could create cards but
  not claim them. checkUserExists now accepts declared users, the workspace
  snapshot merges registered + declared, and the unknown_user hint names
  `cards users register` alongside POST /v1/users.
- `list -q` on an empty collection printed `{"items":[]}`, which a
  `list -q | while read id` loop would feed straight to the next command.
  Quiet mode now keys on the presence of `items`, not its length.
- project-practices.md told the reader to "write the JSON in this document"
  but carried only a settings snippet. §2 now has the five ladder files,
  extracted and verified against a fresh init end to end.

Re-pins the two claimWithRetry doc-audit anchors the service edit moved.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Two threads. Thread 1 finishes Sprint A (069ec1d1, c0102825) plus the
TakeNext owner check (1c877e6c, promoted to todo) and one new integration
test card proving the three-call loop. Thread 2 files the README/site
refresh as a parent card with four children (visuals, home + nav, README
cut, using-cards split) in backlog, sequenced so the text lands after the
CLI flags it documents. Closes ea7ea2a3 as already shipped.

Adds a cards-8080 launch config for serving the project board by name.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant