Skip to content
Back to skills

Ln Prototype

ASecurity

Throwaway design probe for logic, state models, UI variations, and affordances before production work. Use when the user wants to prototype, sanity-check a model, make something playable, compare UI directions, or explore a design before ln-spec/ln-plan/ln-scope.

  • 8 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
toolsgoshellgitapi

Works with

  • terminal
  • cli
  • api

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add hashintel/brunch --skill ln-prototype --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ln Prototype?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ln Prototype
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hashintel-ln-prototype/badge)](https://www.skillsdirectory.com/skills/hashintel-ln-prototype)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ln-prototype
description: "Throwaway design probe for logic, state models, UI variations, and affordances before production work. Use when the user wants to prototype, sanity-check a model, make something playable, compare UI directions, or explore a design before ln-spec/ln-plan/ln-scope."
argument-hint: "[prototype question or design uncertainty]"
---

# Ln Prototype

A prototype is a disposable answer to one design question. Keep the verdict, not the artifact.

Use `ln-prototype` when the question needs feel, play, or comparison. Use `ln-spike` when the question is technical feasibility or unknown API behavior.

## Input

Prototype question or design uncertainty: $ARGUMENTS

Orient first:

1. Read `memory/SPEC.md` if present; use its lexicon and live invariants.
2. Read `memory/PLAN.md` if present; identify whether the prototype serves an existing frontier item.
3. Read `HANDOFF.md` if present.
4. Inspect nearby code only enough to place the prototype where it is understandable and runnable.

Write a 2-4 bullet orientation note: question, prototype branch, nearest seam/page/module, answer-capture path.

## Choose one branch

Ask if ambiguous and the user is present; otherwise state the assumption.

### Logic prototype

Use for state, transition, reducer, parser, planner, or workflow questions. Build a tiny interactive terminal app or CLI harness around a portable logic module.

Good shapes:

- pure reducer: `(state, action) => state`
- explicit state machine with named states and legal transitions
- small pure functions over plain data
- state-owning module/class only when internal ongoing state is the question

Keep the shell thin. The logic must not know about prompts, terminal escape codes, stdout, or UI widgets.

### UI prototype

Use for layout, interaction, navigation, approval/recovery, inspection, or comparison questions.

Generate several meaningfully different variants in one local route/page/screen, switchable by URL search param or floating switcher. Prefer adapting an existing page over inventing a playground. Variants should differ by design bet, not skin: name the bet each variant tests.

## Prototype discipline

1. **Throwaway from day one.** Name files/routes with `prototype`, `scratch`, or equivalent. Add: `PROTOTYPE — delete or absorb after verdict`.
2. **Near the real seam.** Keep context obvious; avoid public exports unless needed to run it.
3. **One command to run.** Use the repo's task runner and record the exact command.
4. **No persistence by default.** Use memory. If persistence is the question, use clearly wipeable scratch storage.
5. **No production polish.** Skip comprehensive tests, abstractions, analytics, and hardening beyond safe evaluation.
6. **Surface state.** After each logic action or UI variant switch, show relevant inputs, outputs, and state.
7. **One question only.** New questions become follow-up prototypes, spikes, or scope cards.

## Capture the verdict

```md
## Prototype Verdict: [question]

**Branch:** logic | UI
**Command:** [how to run]
**What we tried:** [variants/actions/cases]
**Verdict:** [decision or remaining uncertainty]
**Absorb:** [what production code/spec/plan should inherit]
**Delete:** [prototype files/routes/storage to remove]
```

Durability routing:

- Requirements, assumptions, invariants, or lexicon changed → `ln-spec`.
- Sequencing or frontier changed → `ln-plan`.
- One implementation slice is now obvious → `ln-scope`.
- Human judgment remains pending → record volatile state in `HANDOFF.md`.

Do not create `CONTEXT.md`, ADRs, or alternate planning docs. Canonical docs are `memory/SPEC.md` and `memory/PLAN.md`.

## Cleanup

Finish by stating one of:

- deleted prototype files
- kept prototype temporarily, with reason and deletion trigger
- absorbed prototype into production through a scoped build

If prototype files remain, they must be visibly non-production and easy to find.

## Routing

After the verdict, present these options to the user (use `tool-ask-question`):

| #   | Label          | Target       | Why |
| --- | -------------- | ------------ | --- |
| 1   | Revise spec    | `ln-spec`    | Prototype changed durable understanding |
| 2   | Revise plan    | `ln-plan`    | Prototype changed sequencing or frontier shape |
| 3   | Scope a slice  | `ln-scope`   | Prototype answered enough to build |
| 4   | Spike instead  | `ln-spike`   | The remaining question is technical feasibility |
| 5   | Back to triage | `ln-consult` | Prototype did not settle direction |

Recommended: **3** when the prototype produced a concrete build direction; **1** when it changed the model.

---
*Adapted from [mattpocock/skills/engineering/prototype](https://github.com/mattpocock/skills/tree/main/skills/engineering/prototype).*

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in tools →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.