Agent skill
formax-expanded-transcript-workflow
Use when implementing/debugging Ctrl+O Expanded Transcript (second view) and thinking persistence in the REPL.
Install this agent skill to your Project
npx add-skill https://github.com/yusifeng/formax/tree/main/.codex/skills/formax-expanded-transcript-workflow
SKILL.md
formax-expanded-transcript-workflow
Goal
Use this skill when changing Ctrl+O expanded transcript behavior, thinking persistence, or compact / expanded projection boundaries in the REPL.
Read First
docs/contracts/transcript-surface-contract.mddocs/contracts/semantics-contract.mddocs/runbooks/repl-surface-debugging.mdwhen the change can affect clear / remount behavior
These docs are canonical. If stable expanded-transcript behavior changes, update them before or with code.
If the change touches clear / remount ownership directly, also use formax-surface-reset-workflow.
Code Map
- Key handling:
packages/core/src/screens/repl/hotkeys.ts - View wiring + footer:
packages/core/src/screens/REPL.tsx - Compact projection:
packages/core/src/screens/repl/compactProjection.ts - Transcript rendering:
packages/core/src/screens/repl/transcript.tsx - Thinking persistence:
packages/core/src/features/repl/controller/streaming/streaming.ts - Expanded Transcript panels:
packages/core/src/screens/repl/panels.tsx - Compact command lifecycle:
packages/core/src/features/repl/controller/send/send.ts - Surface reset owner:
packages/core/src/screens/repl/useSurfaceTransitionManager.ts
High-Signal Patterns
- No fake thinking:
thinking_deltais the only source of truth- never synthesize thinking rows from timers or summaries
- Avoid
Statichacks for toggles:Staticis append-only; if content must disappear, use reset / remount ownership instead of trying to "unrender" it
- One footer:
- prefer a single global footer; avoid per-panel footer duplication
- Compact ordering contract:
- keep
banner -> summary (expanded only) -> > /compact ... -> compact subline
- keep
- UI vs LLM orthogonality:
- transcript slicing and
ui.kindremain independent from prompt-history packing and reminder injection
- transcript slicing and
Minimal Workflow
- Lock the semantic source first:
thinking_deltapersistence and transcript projection rules before renderer polish. - Keep default transcript low-noise and Expanded Transcript read-only.
- Preserve compact / expanded ordering before adjusting footer or panel layout.
- If clear / remount logic changes, route through the shared surface reset path instead of local
Staticworkarounds. - Run the regression set below before review.
Minimum Regression
bun run test -- packages/core/src/screens/repl/compactProjection.test.ts packages/core/src/screens/repl/expandedTranscript.test.tsx packages/core/src/screens/repl/hotkeys.test.tsxbun run test -- packages/core/src/screens/repl/surfaceSmoke.test.tsxbun run test:surface-screen-modelbun run type-check
Guardrails
- Do not introduce synthetic thinking or show thinking when the model did not emit
thinking_delta. - Do not let
Ctrl+Osteal input while prompt mode or overlays are active. - Do not move header / messages outside
Staticto “fix” duplication; solve ownership and remount boundaries instead. - Expanded Transcript stays read-only; do not quietly turn it into an interactive input surface.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
formax-dev-loop-workflow
Use when working on Formax code changes and you need a disciplined dev loop: keep a single mainline task, avoid scope drift, run only targeted tests (no coverage), avoid partial staging (MM), run mandatory review before commit, include an incremental optimization check, and keep commits small and reviewable.
formax-rework-convergence-workflow
Use when code has gone through repeated rework and may contain redundant logic, style drift, or tangled structure. Trigger when user asks for "返工收敛", "cleanup-pass", or requests a focused cleanup pass that reduces churn without changing behavior.
formax-tool-ui-blocks-workflow
Implement or refactor Formax tool transcript UI using the Tool UI Blocks (C-lite) pattern (ToolUiBlocks renderer + blocks presenters) to avoid touching many tool presenter files; use when adjusting ⏺/⎿ spacing, indent rules, or migrating additional tools to blocks presenters with targeted Ink/Vitest tests and Codex review before commit.
formax-web-css-convergence-workflow
Use when changing web CSS/UI styling so requirements, state ownership, and acceptance checks are locked before edits to prevent rework churn.
formax-config-settings-workflow
Use when implementing or extending /config (storage, prompt injection, request params, UI-only toggles) with tests and strict UI parity.
formax-semantics-parity-workflow
Use when implementing or modifying behavior that must stay consistent across TUI and Web (mode/input/tool/replay/order). Require canonical semantics first, then TUI/Web adapters, then renderer-specific UI.
Didn't find tool you were looking for?