Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not for the Rust FFI binding layer: use rust-ffi.
日本語の概要は準備中です。原文の説明を表示しています。
Use when asked to prototype one design question through a cheap logic or UI experiment, including button-driven state-model checks. Not for polished artifacts: use polished-web-prototype.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
| Field | Bound contract |
|---|---|
| Trigger | Explicit model invocation: one design question needs a cheap logic or UI experiment, including a state-model, logic, or data-shape question a human checks by pressing buttons and watching state change, even when the driver is a non-developer. |
| Authority | Reversible local: writes throwaway prototype artifacts and their verdict on a throwaway branch off main; may fold the validated decision into the named real-code target as a working-tree edit the user commits through their normal flow; rollback is abandoning the throwaway branch or restoring its commits. Never push, delete existing work, or change production rendering. No remote mutation. |
| Side effect | Write one throwaway prototype artifact and its verdict off the main branch; that branch is the evidence, not a delivery target. |
| Done | The question is answered in one line and the decision is folded into the real work. |
Route before writing because LOGIC and UI variants require different artifact structures.
When the question is about business logic, state transitions, or data shape.
<script> block as a small pure module. Pick the shape that fits the question:
(state, action) => state, for discrete events and a single state value.document, no button handlers reaching inside it; the page may call the module, but the module must not call back into the page. This module must be liftable into the real codebase after the question is answered. Done when: the logic sits in one pure module with no DOM or event-handler coupling, and the module's shape matches the question type from the list above.When the question is about what something should look like.
?variant= switcher key, and the route or page. Place it in the prototype's location or as a top-of-file comment. Done when: one line names the variant count, the switcher key, and the target route or page, and a reader knows where the variants will live without reading the component code.VariantA, VariantB, VariantC). Variants must differ structurally in layout, information hierarchy, and primary affordance. Different colours or copy alone do not count. If two drafts are too similar, redo one with explicit "do not use a card grid" guidance. Done when: each variant has a distinct structural layout, and no two variants differ only in colour, copy, or spacing.?variant=. Keep all existing data fetching, params, and auth above the switcher; only the rendered subtree changes per variant.prototype in the path), and use the same ?variant= pattern.
Done when: sub-shape A or B is chosen and justified, and the chosen shape has a concrete route path recorded.const variant = searchParams.get('variant') ?? 'A';
return (
<>
{variant === 'A' && <VariantA {...data} />}
{variant === 'B' && <VariantB {...data} />}
{variant === 'C' && <VariantC {...data} />}
<PrototypeSwitcher variants={['A','B','C']} current={variant} />
</>
);
Done when: each variant renders conditionally on the ?variant= search param, and the switcher component receives the variant list and current value.← and → also cycle; do not intercept when an <input>, <textarea>, or [contenteditable] is focused. Gate on process.env.NODE_ENV !== 'production' so the bar never ships to users. Done when: the switcher updates the URL search param on click and keyboard, the param survives reload, and the bar is gated out of production builds.?variant= keys. Done when: the URL and the list of variant keys are surfaced to the user, and each key is openable by appending it to the URL.prototype and a reader encountering it cold knows it is not production code.pnpm <name>, python <path>, bun <path>). Open a logic prototype by double-clicking its single HTML file. Done when: the prototype runs with a single command or double-click and no manual setup is required.| Failure | Response |
|---|---|
| Question is ambiguous or absent | Do not proceed. Ask the user to state the question before routing. |
| Logic model is invalid or incomplete | Make no speculative transition; report blocked with the missing rule. |
| Named write would overwrite existing work or exceed the bounded paths | Make no such write; report blocked with the conflicting path and intended change. |
| Logic prototype needs a test to run | The logic is not isolated enough; extract the pure module before continuing. |
| Demo fails to open, a button misses the module, state is not fully visible, a walkthrough is nondeterministic, or a transition is wrong | Do not claim a verdict; leave the last runnable artifact intact and report non-converged with the failed scenario and observed state. |
| Human validation unavailable or negative | Preserve the throwaway demo as the partial result, fold nothing into real code, and report blocked with the unanswered question or rejected behavior. |
| Validated logic cannot preserve the settled transitions in the real-code target | Restore the target from version control, retain the throwaway branch, and report non-converged with the failing transition. |
| Variant fails to render | Remove the broken variant; document the failure in the verdict and continue with the remaining variants. |
| User rejects all variants | Treat as unresolved; do not fold any variant into the main branch. |
| Prototype code lands in main | Revert immediately. Prototype constraints (no tests, no error handling) are not safe for production. |
validated, blocked, or non-converged, with the standalone HTML path, the state-model question, the exercised happy-path, edge-case, and illegal-action scenarios, and their observed transitions. For validated, also return the human verdict, the throwaway-branch commit, and the real-code target containing the validated module. Never report or ship the HTML shell as production code.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not for the Rust FFI binding layer: use rust-ffi.
日本語の概要は準備中です。原文の説明を表示しています。
Use when configuring ADC sampling time, DMA-driven ADC, calibration, or DAC channel setup on bare-metal MCUs. Not for the DMA stream itself: use dma-baremetal.
日本語の概要は準備中です。原文の説明を表示しています。
Use when creating AF_XDP sockets, configuring UMEM and XSK rings, writing an XDP redirect program, or choosing copy versus zero-copy mode. Not for full kernel bypass: use dpdk.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use engineering-retrospective.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a redacted, trimmed agent transcript must be appended to a GitHub PR or issue body, with human approval and preview. Not for automated or model-initiated insertion.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a repo needs agent setup, AGENTS.md added or made lean, CLAUDE.md audited, or agent instructions scored or pruned. Not for remote, credential, publish, deploy, or irreversible changes.
日本語の概要は準備中です。原文の説明を表示しています。