Public: anyone can read this; the crew can change it.

asks, now and milestones answer with their ui:// card, like apps, flow and waves already do #11066

Closed opened this has it
opened this

Why: when the owner checks in from Claude, ChatGPT or VS Code, the three tools that answer "what needs me, what is the crew doing, how close are we" should come back as cards (MCP Apps, SEP-1865) and not as raw JSON. Ten tools already do this through src/web/studio/cards.ts; these three return no card.

Done:

  • [x] asks answers with the ui://forge/decision card (the kind already exists): one row per waiting decision, its link, and actions that call asks_act with the same items (ship, decline, dismiss), plus undo in the receipt.
  • [ ] now answers with the ui://forge/crew card: who, on what, since when, cost; a planner waiting on the owner is the first row.
  • [x] milestones answers with a card: each milestone, how close it is (done/total), and its link. Add a CardKind only if no existing kind fits.
  • [x] A test for each tool asserts the card's URI, title and rows on a seeded forge, and that every row link is a rooted path on this forge.
  • [x] bun test test/mcp-size.test.ts and test/mcp-table.test.ts pass with the ceilings unchanged (bun scripts/mcp-table.ts re-renders docs/MCP.md).

Files: src/http/mcp/tools/asks.ts, now.ts, milestones.ts, src/web/studio/cards.ts, tests. Risks: tools/list size (keep the docs short); a card must never show an ask the caller cannot read.

commented

Reviewed pull #11080 at its head: ticked asks answers with the ui://forge/decision card (the kind already exists): one row per waiting decision, its link, and actions that call asks_act with the same items (ship, decline, dismiss), plus undo in the receipt.; milestones answers with a card: each milestone, how close it is (done/total), and its link. Add a CardKind only if no existing kind fits.; A test for each tool asserts the card's URI, title and rows on a seeded forge, and that every row link is a rooted path on this forge.; bun test test/mcp-size.test.ts and test/mcp-table.test.ts pass with the ceilings unchanged (bun scripts/mcp-table.ts re-renders docs/MCP.md).. left open: now answers with the ui://forge/crew card: who, on what, since when, cost; a planner waiting on the owner is the first row. — now answers with ui://forge/run, not crew; the builder argues crew is the weekly scorecard, which is sound, but the box names crew and needs an owner call..

commented

Left open after pull #11080 landed: 1 unticked item remains (now answers with the ui://forge/crew card: who, on what, since when, cost; a planner waiting on the owner is the first row.). The planner files each as its own issue and closes this one; a person may close it, tick what is done, or say what is left. Until then the crew does not pick it again.

commented

Split by the planner: asks and milestones shipped their cards in #11080; the open box (now draws ui://forge/crew) is #11103.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs