Skip to content

docs(rendering): add evidence-first renderer plans to #555 - #554

Merged
Juliusolsson05 merged 4 commits into
feat/render-shapes-phase1-fingerprint-catalogfrom
plan/evidence-first-feed-rendering
Jul 16, 2026
Merged

Juliusolsson05 merged 4 commits into
feat/render-shapes-phase1-fingerprint-catalogfrom
plan/evidence-first-feed-rendering

Conversation

@Juliusolsson05

@Juliusolsson05 Juliusolsson05 commented Jul 16, 2026 •

Copy link
Copy Markdown
Owner

Summary

Documentation-only stacked PR that adds the evidence-first rendering plan of record to implementation PR #555. It does not target main directly and makes no runtime changes.

The PR contains two complementary documents:

  1. A 735-line lean implementation plan for day-to-day execution.
  2. A 2,333-line exhaustive reference covering contracts, provider ownership, visual families, repository structure, file ledgers, fixtures, and deletion gates.

Product contract

  • Observe and fingerprint every distinctive renderer-facing provider shape without retaining payload content.
  • Keep Claude, Codex, and OpenCode raw interpretation provider-owned.
  • Share narrow visual protocols only after provider semantics genuinely converge.
  • Give every distinctive raw shape a catalog entry and fixture; give every meaningful visual grammar a component.
  • Record explicit specialized, generic, absorbed, condition, and unknown outcomes—never silent disappearance.
  • Keep conditions as a parallel provider-owned system.
  • Truncate by default and reveal bounded detail on demand.
  • Require evidence, fixtures, replay coverage, and proof gates before deleting legacy paths.
  • Use a directory per distinguished provider component and per shared formatter family.

Stack and merge order

This PR targets feat/render-shapes-phase1-fingerprint-catalog, the head branch of #555.

Merge this PR first. Its two planning documents then become part of #555, and #555 remains the single PR that merges the complete evidence-first renderer work into main.

PR #524 remains an evidence and salvage source only; it is not an implementation base.

Validation

  • Only the two planning documents change.
  • Prettier passes for both documents.
  • git diff --check passes.
  • Runtime tests and production builds are intentionally unnecessary for this documentation-only stack.

Juliusolsson05 added a commit that referenced this pull request Jul 16, 2026
## Command protocol (Phase 6)

- protocols/command/: CommandRenderModel + CommandView (hljs-bash headline,
  workspace-relative cwd, OutputWell body, conclusion line, streaming state).
- Formatter REGISTRY, dir-per-family: formatters/{tests,json,file-mutation}/
  + index.ts priority registration. Contract: conclude() is pure,
  conservative-decline, terminal-output-only, ENRICH-never-replace.
- file-mutation uses a real quote/escape-aware shell tokenizer with a
  parse-fully-or-decline contract (product-owner rule: no weak regex
  matching) — $(…), backticks, fd redirects, subshells, unterminated
  quotes abort the whole conclusion. Families captured live from our own
  dev session: heredoc writes/appends, inline python3 writers, sed -i.
- Claude: adapters/command.ts (fromClaudeBashBlock streaming-first,
  fromClaudePartialBashJson paints the moment `command` closes,
  claudeBashResultText/Conclusion); dispatch routes Bash use+result;
  silent success renders an explicit empty OutputWell (#524 lesson).
- Codex: adapters/command.ts (exec_command mapping with yield/max meta,
  fromCodexExecScript extracts EVERY embedded tools.exec_command incl.
  Promise.all fan-outs, stripCodexTransportEnvelope); exec plain-command
  case renders a real command card; results upgrade to OutputWell.
- Ported AND OWNED (tests are this branch's contract, #524 is reference
  only): shared/parsers/ansi.ts (+stripAnsi), AnsiText, OutputWell
  (head+tail preview so final error/summary lines always survive).
- Catalog: graduated codex exec-command + write-stdin to specialized.

## Dir-per-component restructure (product-owner rule, 2026-07-16)

Every distinguished provider component owns a directory, even single-file:
- claude/renderer/components/{edit,multi-edit,write,bash}/
- codex/renderer/components/{apply-patch,exec-command,write-stdin,tool,
  tool-result}/
- opencode/renderer/components/read-result/, shared components/todo/
- rows/ClaudeRows.tsx + rows/CodexRows.tsx are now ZERO-LOGIC barrels kept
  solely for BlockRow's grandfathered import edges (exact-specifier match
  in importBoundaries.test.ts) — deleted with the renderOperation
  migration. Provider-internal code imports component dirs directly.
- Live Bash moved out of BlockRow into components/bash/ (the boundary test
  correctly rejected feed->adapter imports; zero new grandfather entries).
- Dead code dropped in the split: ClaudeRows.editInput, CodexRows
  PatchFileHeader (both orphaned by the Phase 5 CodeEditView cutovers).

Docs: plan .md amendment (dir-per-component) pushed to PR #554 branch.

Verification: tsc -b node+web 0 errors; vitest 877 passed / 1 failed —
packages/claude-code-headless JsonlTailer fs.watch flake, fails ~2/3 in
isolation on untouched pinned submodule code, unrelated to this branch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Juliusolsson05 Juliusolsson05 changed the title docs(rendering): plan evidence-first provider-owned feed UI docs(rendering): add evidence-first renderer plans to #555 Jul 16, 2026
@Juliusolsson05
Juliusolsson05 changed the base branch from main to feat/render-shapes-phase1-fingerprint-catalog July 16, 2026 22:23
Juliusolsson05 and others added 4 commits July 17, 2026 00:24
Product-owner rule from Phase 6 implementation: every distinguished
provider component owns a directory (components/<component>/index.tsx),
even single-file ones — the directory is the unit of ownership and
'ls components/' doubles as the specialized-rendering coverage list.
Same rule inside shared protocol families (command formatters as
formatters/<family>/). Records why rows/ClaudeRows.tsx and
rows/CodexRows.tsx survive only as zero-logic barrels for the
grandfathered BlockRow import edges.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Juliusolsson05
Juliusolsson05 force-pushed the plan/evidence-first-feed-rendering branch from cfc00e3 to d7ef3c5 Compare July 16, 2026 22:24
@Juliusolsson05
Juliusolsson05 marked this pull request as ready for review July 16, 2026 22:25
@Juliusolsson05
Juliusolsson05 merged commit 0e0e365 into feat/render-shapes-phase1-fingerprint-catalog Jul 16, 2026
@Juliusolsson05
Juliusolsson05 deleted the plan/evidence-first-feed-rendering branch July 16, 2026 22:25
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