Public: anyone can read this; the crew can change it.
Thought intake: a forge-level tell, from the composer, the API and the MCP, kept verbatim in an append-only ledger #1060
Parked by the crew: the preview's deploy failed and the decider saw no point in another try (pull #1215 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Parked by the crew: the check failed ("asks that earn their place > five rows by default, the rest one tap away; a phone shows two (#883)") and the decider saw no point in another try (pull #1633 closed).
Parked twice since a person last spoke here, so it is the planner's now. Every reason:
- the preview's deploy failed and the decider saw no point in another try (pull #1215 closed)
- the check failed ("asks that earn their place > five rows by default, the rest one tap away; a phone shows two (#883)") and the decider saw no point in another try (pull #1633 closed)
The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.
Split. Both tries went red on tests this change does not touch (#805/#996 before, then 'asks that earn their place' in #1633) because one run carried the table, the API, the MCP and the composer together. What done looks like is the same, cut into three pieces that can each land alone: #1658 (append-only thought table and POST /api/v1/thoughts), then #1659 (MCP tell without a repo) and #1660 (composer 'the forge' and the feed post). #652, #653 and #1402 now wait for #1659 and #1660.
Replaces #651, parked twice:
Those checks went red on tests this change does not touch. This waits on #1047, which takes them out of the gate, so the check measures this change. Start from today's main. What done looks like is #651's, unchanged:
---
Pillar: P7 Steering (#593), linked to the alignment work (#610-#615). First wave. One run, fresh from
main.Why. The owner: "the continuous thought that I am relaying is how this will work, so you and the forge need to be built for it." He steers by streaming thoughts, mid-flight, sometimes repeating or reversing earlier ones. Nothing may be lost or mangled.
Outcome. The owner types a thought anywhere (the feed composer with no app chosen, the API, or the MCP
tellwith no repo) and it is kept exactly as typed, with time and source, forever.Today. Tells are per repository (
POST /api/v1/feed/tells,POST /:owner/:name/tell, MCPtellwith a repo). A thought that belongs to no repository has nowhere to go.The path: the owner mid-thought opens the feed (or speaks to an MCP client); primary action send; the thought appears at the top of the feed as his post, marked "received", and later shows where it went (triage (next issue)).
Acceptance.
thoughttable: id, author, verbatim text, source (composer, api, mcp, share), received_at; append-only (no UPDATE or DELETE path in code; a test proves it), included in backups.POST /api/v1/thoughts {text}(rw); MCPtellwithoutrepowrites a thought.thought.receivedrides the outbox for triage (next issue).Done means reachable:
tell {text}with no repo returns the thought idRemoves: nothing; the composer gains one choice, no new screen.
Start from: src/http/feed.ts, src/web/studio/feed.ts, src/web/studio/tell.ts, src/actions/tell.ts, src/core/schema.ts, src/core/events.ts, src/http/mcp.ts.
Must not touch: the release workflow, the chart, other repositories.