docs(plan): reconcile Gateway v1 plan with shipped reality#733
Conversation
fro-bot
left a comment
There was a problem hiding this comment.
Verdict: CONDITIONAL
CONDITIONAL = can merge after addressing the listed blocking issue.
This is a docs-only reconciliation of the Gateway v1 plan. I spot-checked the factual claims against the codebase and they hold up:
validateProviderSemanticsexists inpackages/runtime/src/coordination/self-test.ts, is tested (self-test.test.ts), and is not referenced inpackages/gateway/src/program.ts— matching the "exists + tested but not called in boot" claim.- Only
pingandadd-projectsubcommands are registered (packages/gateway/src/discord/commands/fro-bot.ts:32,35), matching the deferred-commands list. - The new "Remaining open work" callout correctly cross-references the Unit 6 deferral block, so the Unit 6
[x]checkbox is not misread as full completion.
The reconciliation content is accurate and internally consistent. One mechanical defect blocks merge.
Blocking issues
- Duplicate
revisedkey in YAML frontmatter. The PR addsrevised: 2026-06-01(line 8) while the existingrevised: 2026-05-20 (...)(line 10) remains. YAML mapping keys must be unique; duplicate keys are invalid per the YAML spec. Strict parsers error, and lenient ones (the common case) silently keep only the last occurrence — which here would discard the new 2026-06-01 date this PR intends to record, defeating the change. No runtime parser consumes these plan docs today (I found none), so this is documentation hygiene rather than a runtime break, but it should still be fixed. Recommend consolidating into a single key, e.g.revised: 2026-06-01 (Units 5-6 reconciled; remote-attach MVP) / 2026-05-20 (Units 1-4 shipped), or appending the new note to the existing line.
Non-blocking concerns
- The Unit 6 heading was renamed from the original scope ("Local execution path + Discord UX (reactions, working message, queue, approval buttons)") to "Mention execution loop MVP", yet the immediately following Goal paragraph (line ~748) still describes the full original scope ("full Discord UX: reactions, working-message heartbeat, tool-approval embeds, per-thread queue, within-surface session resume"). The reconciliation block resolves the ambiguity, but a reader hitting the unchanged Goal text first may be briefly misled. Consider a one-line "(see reconciliation below for shipped vs. deferred)" pointer on the Goal.
Missing tests
None. Documentation-only change with no executable behavior; no test coverage applicable.
Risk assessment (LOW)
Single markdown plan document, +14/-4. No code, public API, schema, or build surface touched. Blast radius is limited to plan-doc readers. The only regression vector is the duplicate frontmatter key potentially dropping the new revision date in YAML-aware tooling — low likelihood of operational impact, zero security exposure.
Run Summary
| Field | Value |
|---|---|
| Event | pull_request |
| Repository | fro-bot/agent |
| Run ID | 26799464308 |
| Cache | hit |
| Session | ses_17949fc55ffelmaqFGXIX1bz43 |
70158dc to
258110c
Compare
fro-bot
left a comment
There was a problem hiding this comment.
Verdict: PASS
Both items from my prior review (run 26799464308) are resolved in 258110c:
- Blocking — duplicate
revisedfrontmatter key: Fixed. Consolidated into a single valid key:revised: 2026-06-01 (Units 5-6 reconciled; remote-attach MVP) / 2026-05-20 (...). No duplicate mapping key remains. - Non-blocking — stale Unit 6 Goal text: Addressed. The Goal is now prefixed
**Goal** (original full scope — see the Unit 6 reconciliation block below for shipped vs. deferred):, so a reader is pointed to the reconciliation before reading the full-scope description.
The reconciliation claims remain accurate against the codebase (verified previously): validateProviderSemantics is tested but not wired into program.ts; only ping + add-project subcommands are registered; the "Remaining open work" callout correctly prevents the Unit 6 [x] from being read as full completion.
Blocking issues
None.
Non-blocking concerns
None.
Missing tests
None. Documentation-only change with no executable behavior.
Risk assessment (LOW)
Single markdown plan document (+15/-6). No code, public API, schema, or build surface touched. Blast radius limited to plan-doc readers; zero security exposure. The prior frontmatter regression vector is eliminated.
Run Summary
| Field | Value |
|---|---|
| Event | pull_request |
| Repository | fro-bot/agent |
| Run ID | 26799648445 |
| Cache | hit |
| Session | ses_17949fc55ffelmaqFGXIX1bz43 |
Reconciles the Gateway v1 plan with what actually shipped, so the unit checkboxes don't overstate completion.
POST /v1/announce) as adjacent gateway functionality, not part of Unit 7 cloud-dispatch scope.Units 7 (cloud dispatch + summaries bridge) and 8 (documentation) remain the genuine outstanding work.