‹ 首页

formax-surface-reset-workflow

@yusifeng · 收录于 5 天前 · 上游提交 3 周前

Use when changing REPL clear/reset/resume/surface behavior (onClearTerminal, transcriptSeq remount, Ink Static paths, Ctrl+O/Ctrl+E transitions). Enforces single-owner reset transaction and prevents black-screen/flicker/duplicate-row regressions.

适合你,如果需要在REPL中管理终端重置和恢复流程

/ 通过 npx 安装 校验哈希
npx oh-my-skill add yusifeng/formax/formax-surface-reset-workflow
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- yusifeng/formax/formax-surface-reset-workflow
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify yusifeng/formax/formax-surface-reset-workflow
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
192GitHub stars
~670上下文体积 · 单文件
索引托管

怎么用

商店整理自技能原文 · 版本 5a48573 · 表述以原文为准
它做什么

装上后,Claude在处理终端清除、重置、恢复或界面切换时,会强制使用单一所有者的重置流程,避免出现黑屏、闪烁或重复行等显示问题。

什么时候触发

当你修改终端的清除、重置、恢复或界面切换相关代码时触发,例如涉及/resume、/clear命令或Ctrl+O/Ctrl+E切换等。

装好后可以这样说
技能会统一重置流程。
技能处理界面切换稳定性。
技能强制单一所有者。
技能原文 SKILL.md作者撰写 · MIT · 5a48573

Formax Surface Reset Workflow

Goal

Use this skill when changing REPL clear/reset/resume behavior or any transcript surface transition that can remount Static.

Read First
  • docs/contracts/transcript-surface-contract.md
  • docs/runbooks/repl-surface-debugging.md
  • docs/contracts/invariants.md when ownership or sequencing is unclear

These docs are canonical. If stable surface behavior changes, update them before or with code.

Code Map
  • Reset helpers / queue owner:
  • replaceTranscript
  • queueTranscriptSurfaceReplace
  • resetTranscriptSurface
  • queueTranscriptSurfaceReset
  • surfaceOpQueueRef
  • High-risk flows:
  • packages/core/src/features/repl/controller/ui/
  • packages/core/src/features/repl/controller/session/
  • packages/core/src/features/repl/useReplController.ts
  • packages/core/src/screens/repl/
  • packages/core/src/runtime/bootstrap/runLegacyCli.tsx
  • Call sites to watch:
  • onClearTerminal
  • clearTerminal
  • resetInkStaticOutputForStdout
  • transcriptSeq remount behavior in ReplTranscript / ExpandedReplTranscript
Trigger Conditions

Use this skill whenever the change touches any of:

  • /resume, /clear, compact boundary transitions
  • Ctrl+O / Ctrl+E transcript view switches
  • onClearTerminal, clearTerminal, or resetInkStaticOutputForStdout
  • replaceTranscript, queueTranscriptSurfaceReplace, resetTranscriptSurface, queueTranscriptSurfaceReset, or surfaceOpQueueRef
  • files under packages/core/src/features/repl/controller/ui/, packages/core/src/features/repl/controller/session/, packages/core/src/features/repl/useReplController.ts, packages/core/src/screens/repl/, or packages/core/src/runtime/bootstrap/runLegacyCli.tsx
Minimal Workflow
  1. Identify the exact path (/resume, /clear, Ctrl+O / Ctrl+E, compact boundary, etc.).
  2. Route it through replaceTranscript / resetTranscriptSurface instead of local clear / remount sequencing.
  3. Treat reset as one transaction, not scattered side effects.
  4. Add or extend regression tests for ordering and surface reset ownership.
  5. Run the minimum regression set below and at least one real surface smoke path.
Minimum Regression
  • bun run test -- packages/core/src/features/repl/controller/ui/surfaceReset.test.ts
  • bun run test -- packages/core/src/features/repl/useReplController.test.tsx -t "resume|clear|compact"
  • bun run test -- packages/core/src/screens/repl/surfaceSmoke.test.tsx
  • bun run type-check
  • If change touches compact / expanded toggles broadly: bun run test:surface-screen-model
Guardrails
  • Keep one surface owner; do not add a second independent clear / remount path.
  • Do not stack replInstance.clear() and ANSI clear in legacy paths unless ownership is explicit and serialized.
  • Do not accept a Vitest-only fix without running a real surface smoke path.
References
  • docs/pitfalls/summary.md sections covering /clear, compact + Ctrl+O, and resume black-screen regressions
  • docs/pitfalls/repl-transcript-surface-handoff-pitfall.md
  • docs/pitfalls/repl-transcript-static-rootcause.md
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。