diff --git a/docs/rfc/implemented/simplification/2026-07-04-prune-producerless-vocabulary-variants.md b/docs/rfc/implemented/simplification/2026-07-04-prune-producerless-vocabulary-variants.md index b0fedc990e..d938f3eafb 100644 --- a/docs/rfc/implemented/simplification/2026-07-04-prune-producerless-vocabulary-variants.md +++ b/docs/rfc/implemented/simplification/2026-07-04-prune-producerless-vocabulary-variants.md @@ -12,7 +12,7 @@ The merge-extensible vocabulary maps are designed to grow by declaration merging ## Decision -`CacheHint` with both `cache?` fields, the `agent` message-source variant, and the `continuation` turn-trigger variant are deleted. The llm-replay fixture uses an `injection` trigger (any non-`message` trigger serves its purpose). Updated in the same change: the type-equiv pastes in [core.md](../../../core-data-structures/core.md) and [session.md](../../../core-data-structures/session.md) (`scripts/type-equiv.manifest.json` is untouched — both pasted symbols survive, each minus a member), and the [content-block vocabulary RFC](../architecture/2026-06-11-content-block-vocabulary.md)'s consequence line that had named cache hints as having a home, per [implemented/AGENTS.md](../AGENTS.md). +`CacheHint`, its `cache?` block fields, the `agent` message-source variant, and the `continuation` turn-trigger variant are deleted: the shipped vocabulary carries none of them. The llm-replay fixture uses an `injection` trigger (any non-`message` trigger serves its purpose). The type-equiv pastes in [core.md](../../../core-data-structures/core.md) and [session.md](../../../core-data-structures/session.md) match the pruned maps — both symbols keep their rows in `scripts/type-equiv.manifest.json`, since each map survives minus a member — and the [content-block vocabulary RFC](../architecture/2026-06-11-content-block-vocabulary.md)'s consequences record cache hints as producer-gated rather than as having a home, per [implemented/AGENTS.md](../AGENTS.md). Each variant returns the day it gains a real producer, exactly as the maps are designed to grow: a caching feature re-adds `cache` together with the adapter that transmits it; subagent attribution re-adds `agent` together with the backend that stamps it and a consumer that routes on it; an auto-continue feature that genuinely starts new turns re-adds `continuation` with the plugin that emits it. @@ -28,4 +28,4 @@ The [content-block vocabulary RFC](../architecture/2026-06-11-content-block-voca ## Risks -None operational — nothing could construct these values. The mirror-event removals (recorded in [the boundary-mirror RFC](2026-06-20-remove-agent-boundary-mirror-events.md) and [the stream-chunk RFC](2026-07-02-remove-stream-chunk-mirror.md)) touch only transient `agent/*` events, never the durable vocabulary, so there is no collision. Elsewhere in the vocabulary the admission policy already holds: `rejected`, `prompt/blocked`, and `hook/invoked`/`hook/result` each have live producers — this RFC extends the same bar to the three variants that lacked one. [The image-block removal](2026-07-04-drop-image-content-block.md) shipped first, taking the image block's `cache?` field with it; this change removed the two that remained. +None operational — nothing could construct these values. The mirror-event removals (recorded in [the boundary-mirror RFC](2026-06-20-remove-agent-boundary-mirror-events.md) and [the stream-chunk RFC](2026-07-02-remove-stream-chunk-mirror.md)) touch only transient `agent/*` events, never the durable vocabulary, so there is no collision. Elsewhere in the vocabulary the admission policy already holds: `rejected`, `prompt/blocked`, and `hook/invoked`/`hook/result` each have live producers — this RFC extends the same bar to the three variants that lacked one. The image block's own `cache?` field belongs to [the drop-image RFC](2026-07-04-drop-image-content-block.md), which removed it together with the block; this RFC covers the two fields on the block types that remain. diff --git a/verdict b/verdict new file mode 100644 index 0000000000..d43803f7a9 --- /dev/null +++ b/verdict @@ -0,0 +1,18 @@ +(A) merge-blocker +- `docs/rfc/implemented/simplification/2026-07-04-prune-producerless-vocabulary-variants.md:15` and `docs/rfc/implemented/simplification/2026-07-04-prune-producerless-vocabulary-variants.md:31` still narrate this PR/change history instead of just the shipped/current state: "Updated in the same change", "`scripts/type-equiv.manifest.json` is untouched", "shipped first", and "this change removed". The review spec asks for current-state prose only, and the house rules prohibit process narration in docs/comments. Reword these as present facts about the live vocabulary/catalogs rather than mechanics of this patch. + +(B) non-blocking +- None. + +(C) nitpick +- None. + +Evidence checked +- Producer-less claims are accurate: exact `cache:` block constructors are gone except this RFC record (`rg "\bcache\s*:"`), exact `{ kind: 'agent' }` constructors are gone (`rg "\{\s*kind:\s*['\"]agent['\"]\s*[,}]"`), and exact `{ kind: 'continuation' }` constructors are gone (`rg "\{\s*kind:\s*['\"]continuation['\"]\s*[,}]"`). +- The loop constructs `message` at `packages/core/agent-loop/src/loop.ts:284` and `injection` at `packages/core/agent-loop/src/agent.ts:145`; production `trigger.kind` readers are the ACP message filters at `packages/ui/acp/src/index.ts:352` and `packages/ui/acp/src/index.ts:385`. +- The subagent prompt path sends without a source at `packages/subagent/subagent-inprocess/src/index.ts:155`, and missing sources default to `{ kind: 'user' }` at `packages/core/agent-loop/src/agent.ts:103`. +- The core-data-structures pastes no longer include the removed variants: `docs/core-data-structures/core.md:107` and `docs/core-data-structures/session.md:165`. +- The llm-replay fixture still proves `deriveReplayScript` ignores non-`assistant/chunk` events: the test includes `turn/start`/`turn/end` around chunks at `packages/support/llm-replay/tests/llm-replay.spec.ts:118`, while the implementation skips all non-chunk events at `packages/support/llm-replay/src/index.ts:195`. +- Checks run: `pnpm exec vitest run packages/support/llm-replay/tests/llm-replay.spec.ts` (51 passed), `pnpm run doc-sync` (passed), `git diff --check origin/simpl-a1-drop-image...HEAD` (passed), precise EOF check on touched files (passed), and `pnpm run typecheck` (passed). + +Verdict: NO-SHIP as it stands, due to the implemented RFC process-narration blocker above.