Prototype to Learn
Build the smallest software artifact that can change one design decision. Keep
it available for hands-on learning without treating its code as maintained.
Preserve authority and lifecycle
- Confirm that the request authorizes local prototype changes. Treat requests
to discuss, assess, review, design, or plan as read-only.
- Read repository instructions, local conventions, the current worktree, and
nearby implementation seams before editing. Preserve unrelated work.
- Keep the prototype local and isolated. Do not publish it, expose external
users, use production secrets or sensitive data, or mutate authoritative
services. Route customer experiments to
product-opportunity-discovery,
production exposure to controlled-release-design, and maintained integrations or effects
to scoped-change-implementation.
- Treat prototype code as temporary and non-authoritative. Success supplies
learning, not permission to ship it.
- Bypass this skill when the requested behavior is settled and the user wants
a maintained reversible change. Route that work to
scoped-change-implementation.
- Consume a supplied discovery hypothesis or design question without taking
ownership of customer value, investment, architecture acceptance, or
production readiness.
Choose one branch
- For business rules, state transitions, data shape, action legality, or sequences, read
references/behavior-state-prototype.md.
- For testing one UI direction or comparing page structure, information hierarchy, workflow presentation, or interaction alternatives, read
references/ui-interaction-prototype.md.
- If both branches appear relevant, prototype the uncertainty most likely to
change the decision first. Keep a second artifact separate unless the user
needs both mechanisms together to evaluate the question.
Route a non-runnable cross-view journey—story, matrix, flowchart, sequence
diagram, or state trace—to architecture-surface-mapping, and other representations
to their design owner. A visual needs hands-on execution to qualify as a prototype.
Route customer need, demand, adoption, value, or experiment design to
product-opportunity-discovery. Route disputed business meaning, rules, or
invariants to domain-modeling, and production capacity claims to
service-capacity-engineering. Route engineering claims with undefined methods
or fixed verification contracts to software-verification, and unexplained failures to
software-failure-diagnosis.
Prototype workflow
- State the learning question. Name the single design decision, current
assumption, and observation that would support, disconfirm, or leave the
question inconclusive.
- Inspect the host context. Find the existing runtime, task runner, target
module or route, representative data, and nearby conventions. Do not add a
framework, package manager, or service only for the prototype.
- Set the fidelity boundary. Identify what must remain real. List omissions
and the false positive or negative each important omission could create.
- Bound the artifact. Put it near the target seam, label it as a prototype,
and provide one command or URL. Keep state in memory and stub mutations and external effects. If
persistence is the question, use a resettable scratch store, never authoritative data.
- Build the selected branch. Preserve the tested mechanism, expose the
relevant state or alternatives, and remove completeness that does not
improve the observation.
- Establish runnability. Launch the artifact and exercise enough paths to
prove the observation surface works. Add only checks that keep harness defects
from invalidating the result; do not build a production test suite.
- Hand over the experiment. Give the user the command or URL, controls,
question, fidelity limits, and useful cases to try. Let the user drive when
the answer depends on feel, surprise, or preference.
- Capture the learning. Separate observed behavior, user interpretation,
and unresolved uncertainty. Recommend discard, iterate, or promote the
learned decision. Do not call the product or implementation validated.
- Route promotion separately. Preserve the accepted behavior or design decision. Route
ambiguous maintained behavior to
software-change-specification and a clear
authorized delta to scoped-change-implementation. Runnability is not promotion.
Leave the prototype available until the user has evaluated it. Do not delete,
archive, commit, or move it to another Git branch unless the user authorizes
that lifecycle action.
Quality gates
- One explicit question controls scope; the artifact preserves the mechanism
that makes the observation meaningful.
- One command or URL starts the prototype through repository-native tooling.
- Representative context is real or its substitution and limits are explicit.
- State, variants, actions, and important omissions are visible to the user.
- External effects remain stubbed, read-only, or isolated locally.
- The result distinguishes observation, interpretation, and uncertainty.
- The handoff names the prototype lifecycle and the owner of any next step.
Reject weak prototypes
- A polished demo without a falsifiable question is incomplete; unrelated
uncertainties do not belong in one prototype.
- Visual variants that differ only in color or copy do not test a UI direction.
- Hidden state or invisible transition rules make behavior prototypes
uninterpretable.
- Fabricated fixtures are weak when representative read-only data is safely
available and material to the question.
- Prototype labels do not excuse production effects, durable compatibility
obligations, or unverified promotion.
Completion
Lead with the artifact and how to run it. Report the learning question, tested
mechanism, material paths, observations, fidelity limits, unresolved
uncertainty, lifecycle state, and the next owner if the decision is promoted.
1---2name: prototype-to-learn3description: Build a disposable, runnable software prototype that answers one explicit behavior, state, UI, or interaction design question before maintained implementation. Use when users want to compare runnable candidates, exercise an interaction direction before choosing maintained behavior, or drive candidate rules or state models through cases. Route customer-value experiments to product-opportunity-discovery and production changes to scoped-change-implementation.4---56# Prototype to Learn78Build the smallest software artifact that can change one design decision. Keep9it available for hands-on learning without treating its code as maintained.1011## Preserve authority and lifecycle1213- Confirm that the request authorizes local prototype changes. Treat requests14 to discuss, assess, review, design, or plan as read-only.15- Read repository instructions, local conventions, the current worktree, and16 nearby implementation seams before editing. Preserve unrelated work.17- Keep the prototype local and isolated. Do not publish it, expose external18 users, use production secrets or sensitive data, or mutate authoritative19 services. Route customer experiments to `product-opportunity-discovery`,20 production exposure to `controlled-release-design`, and maintained integrations or effects21 to `scoped-change-implementation`.22- Treat prototype code as temporary and non-authoritative. Success supplies23 learning, not permission to ship it.24- Bypass this skill when the requested behavior is settled and the user wants25 a maintained reversible change. Route that work to26 `scoped-change-implementation`.27- Consume a supplied discovery hypothesis or design question without taking28 ownership of customer value, investment, architecture acceptance, or29 production readiness.3031## Choose one branch3233- For business rules, state transitions, data shape, action legality, or sequences, read34 [references/behavior-state-prototype.md](references/behavior-state-prototype.md).35- For testing one UI direction or comparing page structure, information hierarchy, workflow presentation, or interaction alternatives, read36 [references/ui-interaction-prototype.md](references/ui-interaction-prototype.md).37- If both branches appear relevant, prototype the uncertainty most likely to38 change the decision first. Keep a second artifact separate unless the user39 needs both mechanisms together to evaluate the question.4041Route a non-runnable cross-view journey—story, matrix, flowchart, sequence42diagram, or state trace—to `architecture-surface-mapping`, and other representations43to their design owner. A visual needs hands-on execution to qualify as a prototype.4445Route customer need, demand, adoption, value, or experiment design to46`product-opportunity-discovery`. Route disputed business meaning, rules, or47invariants to `domain-modeling`, and production capacity claims to48`service-capacity-engineering`. Route engineering claims with undefined methods49or fixed verification contracts to `software-verification`, and unexplained failures to50`software-failure-diagnosis`.5152## Prototype workflow53541. **State the learning question.** Name the single design decision, current55 assumption, and observation that would support, disconfirm, or leave the56 question inconclusive.572. **Inspect the host context.** Find the existing runtime, task runner, target58 module or route, representative data, and nearby conventions. Do not add a59 framework, package manager, or service only for the prototype.603. **Set the fidelity boundary.** Identify what must remain real. List omissions61 and the false positive or negative each important omission could create.624. **Bound the artifact.** Put it near the target seam, label it as a prototype,63 and provide one command or URL. Keep state in memory and stub mutations and external effects. If64 persistence is the question, use a resettable scratch store, never authoritative data.655. **Build the selected branch.** Preserve the tested mechanism, expose the66 relevant state or alternatives, and remove completeness that does not67 improve the observation.686. **Establish runnability.** Launch the artifact and exercise enough paths to69 prove the observation surface works. Add only checks that keep harness defects70 from invalidating the result; do not build a production test suite.717. **Hand over the experiment.** Give the user the command or URL, controls,72 question, fidelity limits, and useful cases to try. Let the user drive when73 the answer depends on feel, surprise, or preference.748. **Capture the learning.** Separate observed behavior, user interpretation,75 and unresolved uncertainty. Recommend discard, iterate, or promote the76 learned decision. Do not call the product or implementation validated.779. **Route promotion separately.** Preserve the accepted behavior or design decision. Route78 ambiguous maintained behavior to `software-change-specification` and a clear79 authorized delta to `scoped-change-implementation`. Runnability is not promotion.8081Leave the prototype available until the user has evaluated it. Do not delete,82archive, commit, or move it to another Git branch unless the user authorizes83that lifecycle action.8485## Quality gates8687- One explicit question controls scope; the artifact preserves the mechanism88 that makes the observation meaningful.89- One command or URL starts the prototype through repository-native tooling.90- Representative context is real or its substitution and limits are explicit.91- State, variants, actions, and important omissions are visible to the user.92- External effects remain stubbed, read-only, or isolated locally.93- The result distinguishes observation, interpretation, and uncertainty.94- The handoff names the prototype lifecycle and the owner of any next step.9596## Reject weak prototypes9798- A polished demo without a falsifiable question is incomplete; unrelated99 uncertainties do not belong in one prototype.100- Visual variants that differ only in color or copy do not test a UI direction.101- Hidden state or invisible transition rules make behavior prototypes102 uninterpretable.103- Fabricated fixtures are weak when representative read-only data is safely104 available and material to the question.105- Prototype labels do not excuse production effects, durable compatibility106 obligations, or unverified promotion.107108## Completion109110Lead with the artifact and how to run it. Report the learning question, tested111mechanism, material paths, observations, fidelity limits, unresolved112uncertainty, lifecycle state, and the next owner if the decision is promoted.