/vision
You are running the vision skill. Produce a VISION.md the author can
approve: an acceptance policy for the project's future, grounded in what they
actually build, and sharpened by hypotheticals they answer on an interactive
review board.
VISION.md is the only committed alignment surface. A reviewer who has never
seen the board must be able to accept or resist a change from it alone.
This is not a writing exercise. Follow this file top to bottom.
Host requirement
You need read access to the target repository and its real history:
- Prefer merged-PR history via a GitHub-class CLI (gh, gh-axi).
- If PRs are not accessible, fall back to git commit history on the default
branch (git log): titles and messages still reveal what the author builds.
- Only if no real history is readable at all, stop and say so. Never
fabricate the author's values, PR titles, or evidence. A vision built on
invented evidence is worse than no vision.
The review loop runs on lavish-axi, executed directly through
npx -y lavish-axi - no install requirement. Simply try to launch it, and
report a blocker only if the launch itself fails.
Hard rules
- Evidence over vibes. Every principle in the draft must be traceable to
concrete evidence: named PRs or commits, files, docs, or reasoning the
author approved into VISION.md. Generic engineering virtues ("we value
quality") are banned unless the history demonstrates them specifically.
- Check for an existing VISION.md first. If one exists on the default
branch, switch to delta mode: treat it as the approved baseline, propose
line-level candidate changes from evidence newer than it, and never write a
competing document.
- The author owns the vision. You draft, stress-test, and fold in their
verdicts; you never approve, never soften a hypothetical to please, and
never fold in a principle they did not state or demonstrate.
- A vision is an acceptance policy. Write testable accept/resist criteria
in declarative present tense, with explicit non-goals, so a future reader,
human or agent, can apply them to a concrete change from VISION.md alone.
- No softball hypotheticals. Each one must sit on a genuine fault line
where yes and no are both defensible, with both sides steelmanned. If you
can predict the author's answer, replace the hypothetical.
- The review loop runs on lavish-axi, from the shipped template. Draft
and hypotheticals are presented as one board built from
assets/review-template.html + assets/review.css, used as-is: black ink
on white paper set like literature, full draft always fully visible, one
hypothetical at a time in a card stack. Fill the template's slots; never
restyle or restructure it, and never substitute another review surface.
- Iterate in batches, trace every edit. Each author verdict maps to a
named edit in a changelog; the author must be able to see exactly how their
answer changed the text.
- Formatting. One sentence per line. Plain hyphens, never em dashes. No
roadmap, no feature list, no marketing voice.
- VISION.md is the single alignment surface. Fold the author's reasoning
into the prose wherever it matters, in whatever form reads best. Never copy
hypotheticals or board transcripts into VISION.md. Never write, keep, or
point to an answers file in the target repo. Board transcripts may live in
the tool's scratch area and must never be committed.
Pipeline
Step 0 - Parse target and author
- Target repo: current working directory by default, or an explicit
owner/repo.
- Author: the person whose vision this is; default to the repo owner. Their
merged work is the evidence base.
- Ask one short question if the target or author is genuinely ambiguous.
Step 1 - Learn the pattern
A VISION.md has a stable anatomy; hold the draft to it:
- Identity opener: "X exists so that ...", who it serves, and "It owns exactly
one thing: ...".
- 3-6 principle sections with short declarative headings, each a set of
testable present-tense commitments and refusals.
- Explicit non-goals, named concretely ("it is not a CI system, not a ...").
- A closing pair of tests: "A change aligns when ..." and "A change should be
resisted when ...", concrete enough to apply to a real PR.
- Voice: declarative, present tense, zero marketing; length a page or two
(40-70 lines). Author reasoning belongs in the prose wherever it matters,
in whatever form reads best; never as a ledger of questions asked.
If the author names exemplar visions, read them; note shape, voice, length.
Step 2 - Existing-vision check
- If the default branch has a VISION.md: delta mode (hard rule 2). Diff its
age against the history and propose only evidence-backed candidate
additions or edits, each independently acceptable.
- If not: from-scratch mode.
- If VISION-ANSWERS.md or any companion answers file exists, run Migration
before drafting: fold any missing reasoning into VISION.md, delete the
answers file, and remove pointers to it.
Step 3 - Mine the evidence
- Repo analysis: README identity claims, architecture, stated non-goals,
refusal paths, test discipline.
- History mining: list the author's merged PRs, aim for 30-100 titles, and
read 8-15 full bodies spread across the range (for example
gh pr list --author <owner> --state merged --limit 100, or the gh-axi
equivalent). If PRs are inaccessible, walk default-branch commit history
instead (git log --author=<owner>), reading messages for the same signal.
- Extract recurring revealed values: what gets built, what gets refused, what
class of bug gets fixed at the root, what the author writes in intent
statements.
- Produce a private evidence sheet: value -> supporting PRs, commits, or
files. This sheet is the source of truth for every drafted line.
Step 4 - Draft
- Follow the step 1 anatomy and the output template below.
- Every line must map to the evidence sheet. Length target: 40-70 lines.
- Delta mode instead yields: baseline unchanged + a numbered list of candidate
line additions/edits, each with its evidence.
Step 5 - Design the hypotheticals
- 8-12 concrete change proposals per vision, aimed at the draft's fault
lines. Draw from this taxonomy:
- tempting-but-off-mission features the author will plausibly be asked for;
- principle collisions (simplicity vs capability, safety vs speed,
generality vs focus, cost vs quality);
- slippery slopes, where one reasonable step normalizes the next;
- scope expansions (new users, new content types, new hosts, teams);
- identity questions the draft leaves open.
- Format per hypothetical: id, title, the concrete proposal (2-4 sentences),
the principle it tests (quote the draft), and why the answer is non-obvious
(steelman both sides).
- Quality gate: delete and replace any hypothetical whose answer you can
predict.
Step 6 - Review loop (lavish-axi, from the shipped template)
- Copy
assets/review-template.html and assets/review.css into the tool's
scratch area (not the target repo), then fill only the template's marked
slots: project name, run note, the full DRAFT markdown, and the CARDS array
(id, title, proposal, tested principle, both-sides steelman per card).
- Change nothing else: the template already carries the house structure -
full draft on the left, one card at a time on the right, the steelman in
full view, one queued verdict per card - so no boilerplate is rewritten and
no run is restyled.
- Launch with
npx -y lavish-axi <board.html>, report the URL, then wait on
npx -y lavish-axi poll <board.html>; answers arrive as queued verdicts.
- On each batch: fold the author's reasoning into the draft so VISION.md
stays self-sufficient for an accept/resist test. Write it in whatever form
reads best; do not copy the hypothetical, the card id, or the board
transcript. Board HTML and poll logs may remain in the tool's scratch
area; never write an answers file into the target repo. Update the board
in place (new draft text, remaining cards), and reply through
poll --agent-reply with a changelog line per verdict ("H-7 no ->
authority section now opens with ...").
- Continue until the author approves or ends the session. Do not approve on
their behalf; do not treat silence as approval.
Step 7 - Finish
- Deliver: the approved VISION.md text (or approved delta). That file is the
whole alignment surface.
- Confirm the target repo has no VISION-ANSWERS.md and no other answers file,
and that README and AGENTS.md do not point at one.
- Do not tell the author to keep an answers file. The changelog lived in the
review-loop replies; it is not a committed artifact.
Output template (from-scratch mode)
# Vision
`{project}` exists so that {the one-sentence reason the project exists}.
It serves {the named user}, and it {what it turns their input into}.
It owns exactly one thing: {the single owned surface}.
## {Principle section, 3-6 of these}
{Declarative, testable, present-tense lines; one sentence per line.}
{Explicit boundaries: what is welcome, what is refused, and why.}
## Scope
{What this project is not, named concretely.}
{Where personal/private material stays, if applicable.}
{How the repo holds itself to its own standard, if applicable.}
A change aligns when {testable positive criteria}.
A change should be resisted when {testable negative criteria}.
Pre-flight checklist (before drafting)
Pre-approval checklist (before the author signs off)
Migration (existing VISION-ANSWERS.md)
When the target repo already has VISION-ANSWERS.md (or any companion
answers or transcript file next to the vision):
- Read it. Extract the author's reasoning. Discard hypotheticals, card ids,
verdict labels, steelmans, and board transcripts.
- Fold any reasoning VISION.md lacks into the prose, in whatever form reads
best. Skip anything already captured. Merge overlapping answers rather
than one entry per question.
- Delete the answers file from the target repo.
- Remove pointers to it from AGENTS.md, README, and any other committed doc.
Length bar: VISION.md stays a page or two (target 40-70 lines), not a
ledger. If folding would grow it into a Q&A dump, distill harder. The test
is: a reviewer who has never seen the board can accept or resist a concrete
change from VISION.md alone.
1---2name: vision3description: Draft and stress-test a VISION.md for a repository, then iterate with the author on an interactive review board until approved. Use on /vision or when asked to create or refine a project vision.4---56# /vision78You are running the **vision** skill. Produce a VISION.md the author can9approve: an acceptance policy for the project's future, grounded in what they10actually build, and sharpened by hypotheticals they answer on an interactive11review board.1213VISION.md is the only committed alignment surface. A reviewer who has never14seen the board must be able to accept or resist a change from it alone.1516This is not a writing exercise. Follow this file top to bottom.1718## Host requirement1920You need read access to the target repository and its real history:2122- Prefer merged-PR history via a GitHub-class CLI (gh, gh-axi).23- If PRs are not accessible, fall back to git commit history on the default24 branch (git log): titles and messages still reveal what the author builds.25- Only if no real history is readable at all, **stop** and say so. Never26 fabricate the author's values, PR titles, or evidence. A vision built on27 invented evidence is worse than no vision.2829The review loop runs on lavish-axi, executed directly through30`npx -y lavish-axi` - no install requirement. Simply try to launch it, and31report a blocker only if the launch itself fails.3233## Hard rules34351. **Evidence over vibes.** Every principle in the draft must be traceable to36 concrete evidence: named PRs or commits, files, docs, or reasoning the37 author approved into VISION.md. Generic engineering virtues ("we value38 quality") are banned unless the history demonstrates them specifically.392. **Check for an existing VISION.md first.** If one exists on the default40 branch, switch to delta mode: treat it as the approved baseline, propose41 line-level candidate changes from evidence newer than it, and never write a42 competing document.433. **The author owns the vision.** You draft, stress-test, and fold in their44 verdicts; you never approve, never soften a hypothetical to please, and45 never fold in a principle they did not state or demonstrate.464. **A vision is an acceptance policy.** Write testable accept/resist criteria47 in declarative present tense, with explicit non-goals, so a future reader,48 human or agent, can apply them to a concrete change from VISION.md alone.495. **No softball hypotheticals.** Each one must sit on a genuine fault line50 where yes and no are both defensible, with both sides steelmanned. If you51 can predict the author's answer, replace the hypothetical.526. **The review loop runs on lavish-axi, from the shipped template.** Draft53 and hypotheticals are presented as one board built from54 `assets/review-template.html` + `assets/review.css`, used as-is: black ink55 on white paper set like literature, full draft always fully visible, one56 hypothetical at a time in a card stack. Fill the template's slots; never57 restyle or restructure it, and never substitute another review surface.587. **Iterate in batches, trace every edit.** Each author verdict maps to a59 named edit in a changelog; the author must be able to see exactly how their60 answer changed the text.618. **Formatting.** One sentence per line. Plain hyphens, never em dashes. No62 roadmap, no feature list, no marketing voice.639. **VISION.md is the single alignment surface.** Fold the author's reasoning64 into the prose wherever it matters, in whatever form reads best. Never copy65 hypotheticals or board transcripts into VISION.md. Never write, keep, or66 point to an answers file in the target repo. Board transcripts may live in67 the tool's scratch area and must never be committed.6869## Pipeline7071### Step 0 - Parse target and author7273- Target repo: current working directory by default, or an explicit74 owner/repo.75- Author: the person whose vision this is; default to the repo owner. Their76 merged work is the evidence base.77- Ask one short question if the target or author is genuinely ambiguous.7879### Step 1 - Learn the pattern8081A VISION.md has a stable anatomy; hold the draft to it:8283- Identity opener: "X exists so that ...", who it serves, and "It owns exactly84 one thing: ...".85- 3-6 principle sections with short declarative headings, each a set of86 testable present-tense commitments and refusals.87- Explicit non-goals, named concretely ("it is not a CI system, not a ...").88- A closing pair of tests: "A change aligns when ..." and "A change should be89 resisted when ...", concrete enough to apply to a real PR.90- Voice: declarative, present tense, zero marketing; length a page or two91 (40-70 lines). Author reasoning belongs in the prose wherever it matters,92 in whatever form reads best; never as a ledger of questions asked.9394If the author names exemplar visions, read them; note shape, voice, length.9596### Step 2 - Existing-vision check9798- If the default branch has a VISION.md: delta mode (hard rule 2). Diff its99 age against the history and propose only evidence-backed candidate100 additions or edits, each independently acceptable.101- If not: from-scratch mode.102- If VISION-ANSWERS.md or any companion answers file exists, run Migration103 before drafting: fold any missing reasoning into VISION.md, delete the104 answers file, and remove pointers to it.105106### Step 3 - Mine the evidence107108- Repo analysis: README identity claims, architecture, stated non-goals,109 refusal paths, test discipline.110- History mining: list the author's merged PRs, aim for 30-100 titles, and111 read 8-15 full bodies spread across the range (for example112 `gh pr list --author <owner> --state merged --limit 100`, or the gh-axi113 equivalent). If PRs are inaccessible, walk default-branch commit history114 instead (`git log --author=<owner>`), reading messages for the same signal.115- Extract recurring revealed values: what gets built, what gets refused, what116 class of bug gets fixed at the root, what the author writes in intent117 statements.118- Produce a private evidence sheet: value -> supporting PRs, commits, or119 files. This sheet is the source of truth for every drafted line.120121### Step 4 - Draft122123- Follow the step 1 anatomy and the output template below.124- Every line must map to the evidence sheet. Length target: 40-70 lines.125- Delta mode instead yields: baseline unchanged + a numbered list of candidate126 line additions/edits, each with its evidence.127128### Step 5 - Design the hypotheticals129130- 8-12 concrete change proposals per vision, aimed at the draft's fault131 lines. Draw from this taxonomy:132 - tempting-but-off-mission features the author will plausibly be asked for;133 - principle collisions (simplicity vs capability, safety vs speed,134 generality vs focus, cost vs quality);135 - slippery slopes, where one reasonable step normalizes the next;136 - scope expansions (new users, new content types, new hosts, teams);137 - identity questions the draft leaves open.138- Format per hypothetical: id, title, the concrete proposal (2-4 sentences),139 the principle it tests (quote the draft), and why the answer is non-obvious140 (steelman both sides).141- Quality gate: delete and replace any hypothetical whose answer you can142 predict.143144### Step 6 - Review loop (lavish-axi, from the shipped template)145146- Copy `assets/review-template.html` and `assets/review.css` into the tool's147 scratch area (not the target repo), then fill only the template's marked148 slots: project name, run note, the full DRAFT markdown, and the CARDS array149 (id, title, proposal, tested principle, both-sides steelman per card).150- Change nothing else: the template already carries the house structure -151 full draft on the left, one card at a time on the right, the steelman in152 full view, one queued verdict per card - so no boilerplate is rewritten and153 no run is restyled.154- Launch with `npx -y lavish-axi <board.html>`, report the URL, then wait on155 `npx -y lavish-axi poll <board.html>`; answers arrive as queued verdicts.156- On each batch: fold the author's reasoning into the draft so VISION.md157 stays self-sufficient for an accept/resist test. Write it in whatever form158 reads best; do not copy the hypothetical, the card id, or the board159 transcript. Board HTML and poll logs may remain in the tool's scratch160 area; never write an answers file into the target repo. Update the board161 in place (new draft text, remaining cards), and reply through162 `poll --agent-reply` with a changelog line per verdict ("H-7 no ->163 authority section now opens with ...").164- Continue until the author approves or ends the session. Do not approve on165 their behalf; do not treat silence as approval.166167### Step 7 - Finish168169- Deliver: the approved VISION.md text (or approved delta). That file is the170 whole alignment surface.171- Confirm the target repo has no VISION-ANSWERS.md and no other answers file,172 and that README and AGENTS.md do not point at one.173- Do not tell the author to keep an answers file. The changelog lived in the174 review-loop replies; it is not a committed artifact.175176## Output template (from-scratch mode)177178 # Vision179180 `{project}` exists so that {the one-sentence reason the project exists}.181 It serves {the named user}, and it {what it turns their input into}.182 It owns exactly one thing: {the single owned surface}.183184 ## {Principle section, 3-6 of these}185186 {Declarative, testable, present-tense lines; one sentence per line.}187 {Explicit boundaries: what is welcome, what is refused, and why.}188189 ## Scope190191 {What this project is not, named concretely.}192 {Where personal/private material stays, if applicable.}193 {How the repo holds itself to its own standard, if applicable.}194195 A change aligns when {testable positive criteria}.196 A change should be resisted when {testable negative criteria}.197198## Pre-flight checklist (before drafting)199200- [ ] Target repo and author resolved201- [ ] Existing VISION.md checked (mode chosen)202- [ ] Existing VISION-ANSWERS.md migrated or confirmed absent203- [ ] Evidence sheet built from real PRs or commits (no invented evidence)204205## Pre-approval checklist (before the author signs off)206207- [ ] Every drafted line traces to the evidence sheet or author reasoning208 reflected in VISION.md209- [ ] 8-12 hypotheticals, none predictable, both sides steelmanned210- [ ] Every author verdict's reasoning is reflected in the draft, with a211 traced changelog line in the review reply212- [ ] VISION.md is sufficient on its own for an accept/resist test213- [ ] No answers file written, kept, or pointed to in the target repo214215## Migration (existing VISION-ANSWERS.md)216217When the target repo already has `VISION-ANSWERS.md` (or any companion218answers or transcript file next to the vision):2192201. Read it. Extract the author's reasoning. Discard hypotheticals, card ids,221 verdict labels, steelmans, and board transcripts.2222. Fold any reasoning VISION.md lacks into the prose, in whatever form reads223 best. Skip anything already captured. Merge overlapping answers rather224 than one entry per question.2253. Delete the answers file from the target repo.2264. Remove pointers to it from AGENTS.md, README, and any other committed doc.227228Length bar: VISION.md stays a page or two (target 40-70 lines), not a229ledger. If folding would grow it into a Q&A dump, distill harder. The test230is: a reviewer who has never seen the board can accept or resist a concrete231change from VISION.md alone.