Reference intake
Skill Bandersnatch0x/design-playbook/packages/design-playbook/skills/reference-intake
Reference intake contract from screenshot, URL, design file, or product analogy. Use when the user supplies visual/product reference before build, or when Keep/Change/Do not copy boundaries are missing for a design ask.From its SKILL.md
npx -y skills add Bandersnatch0x/design-playbook --skill reference-intakeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 25 days oldThe repository was created 25 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.8 KB, 853 tokens by cl100k_base, as published. Nobody here has run it
reference-intake
Turn raw reference material into a run-local declaration input the pipeline can consume without re-deriving from chat.
Not a style library. Not a code export. Not a Pass/Fail gate.
Authority boundary (ADR-0011):
| This skill owns | Does not own |
|---|---|
| Observed vs inferred evidence about the reference | spec.md L1→L6 |
| Keep / Change / Do not copy | decision report / Fill source |
| License and brand risk notes | evaluator verdict |
When to apply / skip
Apply when the ask includes at least one of:
- local screenshot / mock / design export path
- URL of a live product or design
- existing in-repo design artifact the user points at
- explicit product or brand analogy ("like Linear", "参考飞书设置页")
Skip when the ask is text-only product requirements with no reference material. Narrate once: -> reference-intake?: no reference materials, skipped.
Steps
1. Inventory sources
List every reference source. For each source record:
kind:screenshot|url|design_file|product_analogy|other- locator (path or URL or product name)
- for files: SHA-256 when the file is readable; for URLs: the exact URL string
captured_at(ISO-8601) andtool(how it was collected)
Write manifest.json under .scratch/<run>/reference/ using the shape in references/contract-template.md. Copy durable local media into reference/assets/ only when needed for later human review; never into the host Fill tree.
Done when: every cited source appears in manifest.json with kind + locator; file sources that exist on disk carry sha256.
2. Separate observed from inferred
Read the sources. Fill every required heading from references/contract-template.md (SSOT for section names and bullet prompts). Do not invent alternate headings.
Mark every claim as observed or inferred. Unlabeled claims are invalid; rewrite them before emit.
Done when:
contract.mdhas every template heading (including always/ask/never hints and Unresolved questions)- Keep / Change / Do not copy are each non-empty whenever any source is a product analogy, third-party URL, or third-party screenshot/design (first-party user-owned assets may put
none — first-party ownedunder Do not copy only, with an ownership note) - at least one license/brand risk line exists (
none identifiedonly for pure first-party assets the user owns)
3. Emit and stop
Write:
.scratch/<run>/reference/contract.md
.scratch/<run>/reference/manifest.json
.scratch/<run>/reference/assets/ # optional
Optional disposable example.html may be generated under reference/ only as a later preview input. It is not a Fill source (same hard boundary as preview/round-*.html).
Stop. Do not write spec.md, do not pick components, do not implement UI.
Done when: both contract.md and manifest.json exist; steps 1→2 Done-when criteria still hold in the files.
Scope fence
| In | Out → |
|---|---|
| Source inventory + hashes | L6 acceptance → ux-spec |
| Keep / Change / Do not copy | template/component identity → ui-picker |
| Functional constraints derived from reference | coding / Fill |
| License and brand risk notes | visual similarity score as gate |
| third-party skill or brand-kit port into the plugin |
Handoff
After emit, the orchestrator continues to ux-spec? (or plan? when spec already exists). Consumers must cite reference/contract.md rather than re-describing the screenshot from memory.
What ships with it: 1 file
1.5 KB alongside SKILL.md
references/
- contract-template.md1.5 KB