Agent skill

Formax Tool UI Blocks Workflow

by yusifeng in yusifeng/formax

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…

MITAuto-check passedTesting & QA

Install Formax Tool UI Blocks Workflow

skills CLI
$ npx skills add yusifeng/formax --skill formax-tool-ui-blocks-workflow -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install yusifeng/formax formax-tool-ui-blocks-workflow --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/yusifeng/formax.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/formax-tool-ui-blocks-workflow .claude/skills/formax-tool-ui-blocks-workflow && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
formax-tool-ui-blocks-workflow
GitHub stars
195
Token cost
~1.3k tokens
SKILL.md length
538 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

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…

  • Works in 6 steps: Lock the behavior with tests first → Apply changes in the centralized layer → Migrate a tool to blocks presenter… → …
  • Adjusting ⏺/⎿ spacing
  • SKILL.md covers Goal, Scope / non-goals, Current building blocks and Workflow (repeatable loop), plus 2 more sections
  • Calls bun

What it does

Formax Tool UI Blocks Workflow is an agent skill from yusifeng/formax. 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.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Unit testing and Refactoring. It works with Vitest and React. The repository describes itself as: Terminal-first AI assistant for software engineering tasks (inspired by Claude Code v2.0.67). The licence is MIT.

When your agent uses it

  • Adjusting ⏺/⎿ spacing
  • Migrating additional tools to blocks presenters with targeted Ink/Vitest tests and Codex review before commit

Example prompts

  • “/formax-tool-ui-blocks-workflow”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Lock the behavior with tests first
  2. Apply changes in the centralized layer
  3. Migrate a tool to blocks presenter (optional, incremental)
  4. Run only the relevant tests
  5. Run Codex review before committing
  6. Commit

What it can do on your machine

Read from SKILL.md and the folder at commit 1b0c3f3. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bun

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Formax Tool UI Blocks Workflow loads about 1.3k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 538 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~92
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from yusifeng/formax at commit 1b0c3f3, republished under its MIT licence (© yusifeng). 538 words, ~1,345 tokens.

Download SKILL.mdSave it as .claude/skills/formax-tool-ui-blocks-workflow/SKILL.md (or your agent's skills folder).
name
formax-tool-ui-blocks-workflow
description
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 Tool UI Blocks (C-lite) Workflow

Goal

Stabilize and evolve the tool transcript UI with minimal churn:

  • Centralize common formatting (⏺ spacing, ⎿/indent rules) in one renderer.
  • Keep per-tool custom UI possible, but avoid “change one space → edit 20 files”.
  • Migrate tools incrementally (dual-track: legacy React presenter + blocks presenter).

Scope / non-goals

  • Do not redesign tool semantics (e.g. “Read+Edit => Update”) unless explicitly requested.
  • Do not run bun run test:coverage for this workflow; only run tests for touched files.

Current building blocks

  • Renderer: packages/core/src/components/tool/ToolUiBlocks.tsx
  • Block types: packages/core/src/components/tool/toolUiBlocksTypes.ts
  • Dispatch: packages/core/src/components/tool/ToolRouter.tsx
  • Presenter typing helpers: packages/core/src/shared/toolPresenterContracts.ts
  • Shared primitives:
    • packages/core/src/components/ui/PulsingDot.tsx
    • packages/core/src/components/tool/ToolHeaderLine.tsx
    • packages/core/src/components/tool/ToolSubline.tsx
    • packages/core/src/components/tool/toolUi.ts

Workflow (repeatable loop)

Migration prioritization template

When deciding which tools to migrate next, use this ordering to minimize risk and maximize payoff:

  1. Simple + high frequency: pure renderers with stable output and no React hooks (e.g. read, grep, glob).
  2. Simple + formatting sensitive: tools whose transcript format is often tweaked (indent/spacing), and currently cause multi-file churn.
  3. Moderate complexity: presenters that assemble multiple lines but still have no hooks (e.g. webSearch, webFetch), migrate only after 1–2 is stable.
  4. Do not migrate yet: anything that needs hooks/interaction or complex previews (e.g. approval/policy overlays, edit/write patch previews). Keep as React presenters until they’re explicitly refactored into “data shaping” + “rendering”.

Rule of thumb: migrate 2–4 tools per commit and keep each commit testable with 1–3 focused test files.

1) Lock the behavior with tests first

Add or update targeted tests before refactoring:

  • For spacing/indent rules: packages/core/src/components/tool/ToolUiBlocks.test.tsx
  • For dispatch rules (legacy vs blocks): packages/core/src/components/tool/ToolRouter.test.tsx
  • For a migrated tool: its packages/core/src/tools/modules/<name>/presenter.test.tsx

Prefer assertions on plain-text frames (via ink-testing-library) that verify:

  • ⏺ has exactly one trailing space (⏺ Read, not ⏺Read or ⏺ Read)
  • Subline uses the Claude-style prefix and indent rules (e.g. ⎿ + following content)
  • No “double indent” artifacts for sublines
2) Apply changes in the centralized layer

If the change is “global formatting”, change it in one of:

  • PulsingDot.tsx for bullet spacing
  • ToolHeaderLine.tsx for header composition (dot + label + params)
  • ToolSubline.tsx / packages/core/src/components/tool/toolUi.ts for subline prefix + indentation
  • ToolUiBlocks.tsx for block-to-UI mapping and composition

Do not change dozens of tool presenters for global spacing changes.

Show full SKILL.md (197 more words)Show less
3) Migrate a tool to blocks presenter (optional, incremental)

Only migrate tools that are “simple UI” (no hooks, no interactive UI) first.

Steps:

  1. In packages/core/src/tools/modules/<name>/presenter.tsx, switch to blocks presenter:
    • Return { blocks: ToolUiBlock[] }
    • Wrap with createToolBlocksPresenter(...)
  2. Keep legacy presenters untouched for other tools.
  3. Update that tool’s presenter.test.tsx to render the blocks output through <ToolUiBlocks />.
4) Run only the relevant tests

Run Vitest for the touched files only. Example:

bash
bun run test -- packages/core/src/components/tool/ToolUiBlocks.test.tsx
bun run test -- packages/core/src/components/tool/ToolRouter.test.tsx
bun run test -- packages/core/src/tools/modules/<name>/presenter.test.tsx
5) Run Codex review before committing

Follow AGENTS.md -> Review Profile (Single Source of Truth). Fix high/medium findings; only take low-risk low findings when low-churn.

6) Commit

Use a conventional message, e.g.:

  • refactor(tool-ui): migrate grep to blocks presenter
  • fix(tool-ui): keep single space after bullet

Gotchas / guardrails

  • Case-insensitive filesystem collisions (macOS):
    • Avoid having both ToolUiBlocks.* and toolUiBlocks.* with similar names that can be confused by tooling.
    • Prefer a distinct type filename like toolUiBlocksTypes.ts.
  • Avoid hidden whitespace from JSX formatting:
    • For spacing-sensitive UI, prefer composing the full string ({⏺ }) rather than placing newlines/indentation inside <Text>...</Text>.
  • Hooks rule:
    • Blocks presenters are plain functions; they must not call React hooks.
    • If a tool presenter needs hooks, keep it as a React presenter and consider a later refactor to split “data shaping” from “rendering”.

© yusifeng, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .codex/skills/formax-tool-ui-blocks-workflow of yusifeng/formax.

Open the folder on GitHubat commit 1b0c3f3

Compare with similar skills

Formax Tool UI Blocks Workflow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Formax Tool UI Blocks Workflow compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Formax Tool UI Blocks Workflow this skillyusifeng/formax195—~1.3kAutomated safety check: PassMIT
Effect TStellahq/opensession392—~3.7kAutomated safety check: PassMIT
Effect TSpproenca/dot-skills215—~2kAutomated safety check: PassMIT
Test Coveragescott-fryxell/brayness125—~1.6kAutomated safety check: PassMIT
Console Testingsynnaxlabs/synnax128—~5.4kAutomated safety check: PassCustom licence
React Testingaffaan-m/ECC276k1 repos~3.3kAutomated safety check: PassMIT

Similar skills

  • Effect TS

    tellahq/opensession

    Write idiomatic Effect v4 TypeScript verified against the pinned effect@4.0.0-rc.112 source.

    392 GitHub stars~3.7k tokensUpdated today
    Testing & QAAuto-check passed
  • Effect TS

    pproenca/dot-skills

    Effect-TS library usage in TypeScript — Effect.gen generators, Schema.Struct/Schema.Class definitions, Layer/Context.Tag/Service patterns, Effect.pipe pipelines, Data.TaggedError/Data.Class error…

    215 GitHub stars~2k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Test Coverage

    scott-fryxell/brayness

    Write Vitest specs for Vue 3 JavaScript (Vite Plus, happy-dom, @vue/test-utils) and analyze V8 coverage + Fallow health to prioritize test-first refactors.

    125 GitHub stars~1.6k tokensUpdated 11 days ago
    Testing & QAAuto-check passed
  • Console Testing

    synnaxlabs/synnax

    Rules for writing and editing unit tests in the Console (console/src//.spec.ts[x]).

    128 GitHub stars~5.4k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • React Testing

    affaan-m/ECC

    React component testing with React Testing Library, Vitest/Jest, MSW for network mocking, accessibility assertions with axe, and the decision boundary between component tests and Playwright/Cypress…

    276k GitHub starsUsed in 1 repo~3.3k tokens
    Testing & QAAuto-check passed
  • Test Building Blocks

    bartstc/vite-ts-react-template

    Test building block catalog — typed patterns for Storybook play-function tests, Vitest hook tests, Vitest unit tests, MSW handlers, and test data fixtures.

    122 GitHub stars~1.5k tokensUpdated yesterday
    Testing & QAAuto-check passed

More from yusifeng/formax

All 21 skills in this repo
  • A skill your agent uses when preparing a Formax code handoff: selecting files, generating repomix bundles, and writing a high-quality prompt for WebGPT or another coding agent with clear constraints…

    195 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Formax Skill Capture

    yusifeng/formax

    A skill your agent uses when we want to turn a just-finished Formax workflow (e.g.

    195 GitHub stars~530 tokensUpdated 2 mo ago
    Auto-check passed
  • Analyze Task

    yusifeng/formax

    A skill your agent uses when a Formax repository task is non-trivial and you should analyze goals, non-goals, boundaries, data/type/interface impact, contract impact, test strategy, and whether an…

    195 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed
  • A skill your agent uses 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…

    195 GitHub stars~686 tokensUpdated 2 mo ago
    Auto-check passed
  • A skill your agent uses when implementing or modifying behavior that must stay consistent across TUI and Web (mode/input/tool/replay/order).

    195 GitHub stars~1.1k tokensUpdated 2 mo ago
    Auto-check passed
  • A skill your agent uses when designing, refactoring, or debugging Formax system prompt assembly, system-reminder injection, or skills/deferred-tool prompt exposure semantics; mandatory for any…

    195 GitHub stars~1k tokensUpdated 2 mo ago
    Auto-check passed

Works with

Categories

Questions about Formax Tool UI Blocks Workflow

What does Formax Tool UI Blocks Workflow do?

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…. Formax Tool UI Blocks Workflow is an agent skill from yusifeng/formax. 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.

When should I use Formax Tool UI Blocks Workflow?

Formax Tool UI Blocks Workflow fits situations like: adjusting ⏺/⎿ spacing; migrating additional tools to blocks presenters with targeted Ink/Vitest tests and Codex review before commit.

How do I install Formax Tool UI Blocks Workflow in Claude Code?

Run `npx skills add yusifeng/formax --skill formax-tool-ui-blocks-workflow -a claude-code`. Or copy the skill folder (.codex/skills/formax-tool-ui-blocks-workflow in yusifeng/formax) into .claude/skills/formax-tool-ui-blocks-workflow in your project. Claude Code loads it when a task matches its description.

How do I install Formax Tool UI Blocks Workflow in Codex?

Run `npx skills add yusifeng/formax --skill formax-tool-ui-blocks-workflow -a codex`. Or copy the skill folder (.codex/skills/formax-tool-ui-blocks-workflow in yusifeng/formax) into .agents/skills/formax-tool-ui-blocks-workflow in your project. Codex loads it when a task matches its description.

Can I use Formax Tool UI Blocks Workflow in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yusifeng/formax --skill formax-tool-ui-blocks-workflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/formax-tool-ui-blocks-workflow, .gemini/skills/formax-tool-ui-blocks-workflow, .github/skills/formax-tool-ui-blocks-workflow and .opencode/skills/formax-tool-ui-blocks-workflow in your project.

What does Formax Tool UI Blocks Workflow need to run?

Going by SKILL.md and its folder, Formax Tool UI Blocks Workflow needs the command-line tools its instructions call (bun).

Does Formax Tool UI Blocks Workflow access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Formax Tool UI Blocks Workflow safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Formax Tool UI Blocks Workflow use?

Formax Tool UI Blocks Workflow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Formax Tool UI Blocks Workflow use?

About 1.3k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Formax Tool UI Blocks Workflow?

Skills that share tags, products or a category with Formax Tool UI Blocks Workflow: Effect TS (tellahq/opensession, 392 stars), Effect TS (pproenca/dot-skills, 215 stars), Test Coverage (scott-fryxell/brayness, 125 stars) and Console Testing (synnaxlabs/synnax, 128 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Formax Tool UI Blocks Workflow?

yusifeng (a GitHub user) maintains it in yusifeng/formax, which has 195 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on July 24, 2026.

Source: yusifeng/formax on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.