agentleFS
tsukumogamitsukumogami/shirabe/skills/vision/SKILL.md

vision

Skill0 starsChanged 29 days agoApache-2.0View on GitHub

Work out why a project should exist at all and write the case down: who it is for, what it is for, what it displaces, and whether it belongs in this org. Use it when the thing in front of you is not yet a project — "should this be its own project?", "who is this even for?", "convince me this is worth doing", "what's the north star here?", "write the pitch", "we're starting something new" — including when someone asks for a README intro or the elevator version and the justification underneath has never been argued anywhere. Write it and the reasoning survives; answer in chat and the next person relitigates it. Do NOT use it when the thesis is settled and what is missing is the medium-term bet under it (`/strategy`) or the order things get built (`/roadmap`). A vision with nothing under it is rarely what someone wants: if the conversation is going to run down into the bet and the sequence anyway, `/charter` walks all three in one sitting.

24 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. 0 are common, 7 are distinctive, and 8 are very specific to this project.

  • 0

    Common

    Most of the 17 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Writing style: Read skills/writing-style/SKILL.md for guidance.

    line 40
  2. Very specific:

    Before writing content, detect visibility from CLAUDE.md (## Repo Visibility: Public|Private).

    line 63
  3. Very specific:

    Private repos: Read skills/private-content/SKILL.md

    line 68
  4. Very specific:

    Public repos: Read skills/public-content/SKILL.md

    line 69
  5. Very specific:

    When invoked as /vision, this skill drives a structured creation workflow that scopes the thesis conversationally, fans out research …

    line 78
  6. Distinctive:

    If it does not exist, start from Phase 1.

    line 112
  7. Very specific:

    Execution mode: check $ARGUMENTS for --auto or --interactive flags, then CLAUDE.md ## Execution Mode: header (default: interactive).

    line 161
  8. Distinctive:

    Research Before Drafting: Don't draft a thesis you haven't investigated

    line 237
  9. Distinctive:

    User Review: Never finalize a VISION the user hasn't reviewed and given feedback on

    line 238
  10. Distinctive:

    Setup: Ensure work happens on a feature branch

    line 247
  11. Distinctive:

    If already on a branch that matches the topic, skip branch creation

    line 248
  12. Very specific:

    If on main or an unrelated branch, create docs/<topic> (kebab-case)

    line 249
  13. Distinctive:

    If unsure whether the current branch is related, ask the user

    line 250
  14. Very specific:

    After user approval, transition to Accepted via shirabe transition <vision-path> Accepted.

    line 269
  15. Distinctive:

    After acceptance, suggest next steps:

    line 272

“Common” is measured: kept by at least 6 in 10 of the 17 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

!${CLAUDE_PLUGIN_ROOT}/scripts/skill-preflight.sh vision 2>&1 || true

@.claude/shirabe-extensions/vision.md @.claude/shirabe-extensions/vision.local.md

Vision Documents

Vision documents capture WHY a project or organization should exist -- the core thesis, audience, value proposition, org fit, and success criteria. They sit at the head of the strategic chain -- VISION -> STRATEGY -> ROADMAP -- and are the strategic foundation that justifies writing requirements in the first place.

A VISION's immediate downstream neighbour is a STRATEGY, and that is the only artifact type its Downstream Artifacts section lists. The chain links one level at a time so a reader walking it hits every altitude in order; the PRDs and designs under a VISION are reached through its STRATEGY and that STRATEGY's ROADMAP, not linked directly. See references/vision-format.md for the full rule.

Writing style: Read skills/writing-style/SKILL.md for guidance.

Artifact Lifecycle

Lifecycle: Durable. Stays in docs/visions/ after completion.

VISION is durable because the long-term thesis a project commits to stays in the audit trail. Future readers asking why a project exists at all need the VISION to remain in place even as the project evolves.

Vision Format

See references/vision-format.md for the full format specification: frontmatter schema, required and optional sections, visibility-gated sections, section matrix, content boundaries, lifecycle states, validation rules, and quality guidance. Load it during Phases 3 and 4.

File Location

Vision documents live at docs/visions/VISION-<topic>.md (kebab-case). No directory movement until Sunset, which moves files to docs/visions/sunset/. Stable paths keep cross-references durable and git blame readable.

Repo Visibility

Before writing content, detect visibility from CLAUDE.md (## Repo Visibility: Public|Private). If not found, infer from repo path (private/ -> Private, public/ -> Public; default to Private). Load the appropriate content governance skill:

  • Private repos: Read skills/private-content/SKILL.md
  • Public repos: Read skills/public-content/SKILL.md

Public VISIONs must not include Competitive Positioning or Resource Implications sections, and must not reference private artifacts.


Creating a Vision Document

When invoked as /vision, this skill drives a structured creation workflow that scopes the thesis conversationally, fans out research agents, drafts the VISION with section-level review, and validates through jury review.

Unlike an explore workflow (which is open-ended and can produce any artifact type), /vision always produces a VISION document. Use /vision when you know you need strategic justification. Use an explore workflow when you don't know what artifact type you need yet.

Input Modes

From $ARGUMENTS:

  1. Empty -- ask the user what project or org they want to define a vision for
  2. Path to existing VISION with lifecycle verb (accept, activate, sunset) -- execute the lifecycle transition via shirabe transition <vision-path> <status> (Sunset optionally takes --superseded-by <path>)
  3. Anything else -- use as the starting topic for Phase 1 scoping

Standalone Entry

/vision works standalone and as a chain child of /charter. No skill hands /vision a pre-populated scope file: /charter invokes /vision directly and lets this skill's own Phase 1 do the scoping, and the router routes to /charter rather than here. There is no handoff to detect.

On startup, check for key work/scope.md in vision-<topic> anyway. It is what this skill's own Phase 1 writes, so finding one means an earlier run got through scoping and stopped before Phase 2 finished. Skip Phase 1 and resume at Phase 2 against it -- the scope key already holds the problem statement and research leads. /charter's resume ladder routes a partial run back into /vision the same way, through skill-session.sh has-work vision <topic> — a live session holding any work/ key.

If it does not exist, start from Phase 1.

Session and Keys

/vision keeps its working state as keys in its own koto session, vision-<topic>, following ${CLAUDE_PLUGIN_ROOT}/references/skill-session-convention.md. It writes no file to the staging folder, chained or direct. Its first act, once the topic is known (from the argument, or the <topic> in a path argument's file name) and before Context Resolution or the resume rows below, opens the session and records whether it runs under a parent:

"${CLAUDE_PLUGIN_ROOT}/scripts/skill-session.sh" open vision <topic>
"${CLAUDE_PLUGIN_ROOT}/scripts/skill-session.sh" adopt vision <topic>

open attaches to a live vision-<topic> (an interrupted run, whose keys the resume rows read), replaces a finished one (a fresh run), or creates it. Any non-zero exit from either command stops the run with the script's message: 127 or 69 means koto is missing or too old, and the skill never falls back to files. adopt exiting 3 is the two-parents case below.

KeyWritten atHolds
work/decisions.mdContext Resolution, under --autothe autonomous-decision ledger
work/scope.mdPhase 1the scoping output
research/phase2_<role>.mdPhase 2the discovery agents' findings, ingested from a scratch directory
research/phase4_<role>.mdPhase 4the jury's verdicts, ingested from a scratch directory

Keys are read and written with koto against vision-<topic>: koto context exists vision-<topic> <key> tests one (exit 0 present, 1 absent), koto context get vision-<topic> <key> prints it, koto context add vision-<topic> <key> stores the content given on stdin (the whole content: to change part of it, get the key, edit it, and add it back), koto context list vision-<topic> --prefix <prefix> lists keys, and koto context remove vision-<topic> <key> removes one. Research and reviewer agents never write keys: each phase that spawns them pins every output to a file in a skill-session.sh scratch directory and ingests it.

Closing. A direct run closes its session when it finishes: "${CLAUDE_PLUGIN_ROOT}/scripts/skill-session.sh" close vision-<topic> done at the end of Phase 4, or close vision-<topic> abandoned after a discard. Under a parent /vision never closes its own session: the parent closes it at its own exit (skill-session.sh close-children), and the keys stay readable until then.

Context Resolution

Execution mode: check $ARGUMENTS for --auto or --interactive flags, then CLAUDE.md ## Execution Mode: header (default: interactive). Also parse --max-rounds=N (default: 2 for vision's discover loop). In --auto mode, follow decision-protocol conventions -- make decisions based on evidence rather than blocking on user input. Track decisions in key work/decisions.md in vision-<topic>.

Detect visibility (Private/Public) from CLAUDE.md or repo path. Infer from private/ or public/ in path if not explicit. Default to Private if unknown -- restricting is easier to undo than oversharing.

Log: Drafting vision with [Private|Public] visibility...

Workflow Phases

Phase 0: SETUP --> Phase 1: SCOPE --> Phase 2: DISCOVER --> Phase 3: DRAFT --> Phase 4: VALIDATE
(branch)          (conversational)   (agents fan out)     (iterative)        (jury review)
                       |                                       ^
                       |                                       |
                       +--- may loop back to DISCOVER or DRAFT-+
PhasePurposeArtifact
0. SetupCreate feature branch, detect visibilityOn topic branch
1. ScopeConversational scoping (or skip if an earlier run's scope key exists)Problem statement + research leads
2. DiscoverParallel research agents investigate leadsResearch findings as research/ keys
3. DraftProduce VISION draftComplete VISION draft
4. ValidateJury review (thesis quality, boundaries)Validated VISION

Phase 2 agents investigate: audience validation, value proposition clarity, org fit evidence, competitive landscape (private only), and success criteria measurability.

Phase 4 jury focuses on VISION-specific quality: Is the thesis a hypothesis (not a problem statement)? Do success criteria avoid feature-level metrics? Does org fit explain why HERE and not elsewhere? Are non-goals about identity (not scope)?

Resume Logic

dispatch read vision <topic> prints parent=<session>
                                                        -> run under that parent; see ${CLAUDE_PLUGIN_ROOT}/references/fixes/sub-agent-dispatch.md
VISION exists with status "Accepted" or "Active"        -> Offer to revise or start fresh
VISION exists with status "Draft"                       -> Offer to continue from Phase 3
research/phase2_* keys exist in vision-<topic>          -> Resume at Phase 3
work/scope.md key exists in vision-<topic>              -> Resume at Phase 2
On a branch related to the topic                        -> Resume at Phase 1
On main or unrelated branch                             -> Start at Phase 0

The work/scope.md row is a partial-run row, not a handoff row. Its only producer is this skill's own Phase 1, and /charter's ladder relies on that: its row 8 hands a topic back to /vision precisely so this row fires.

Running under a parent. The first row runs "${CLAUDE_PLUGIN_ROOT}/scripts/skill-session.sh" dispatch read vision <topic> with the topic this run works on. A printed parent=<session> line means /vision runs under that parent (scope-<topic> or charter-<topic>), with the parent's upfront decision in the rationale= and suppress_status_aware_prompt= lines; what changes under a parent is in ${CLAUDE_PLUGIN_ROOT}/references/fixes/sub-agent-dispatch.md. Four cases are no match. Three print nothing and exit 0, and the run is a direct one with the rows below unchanged: no parent session, a finished parent session, and a parent whose chain/dispatch key names another child. The fourth, two parent sessions that both name /vision, exits 3: don't pick one and don't run directly; stop and report both sessions, which the script names on stderr, so the author can clear the stale key. Any non-zero exit stops the run with the script's message; open has already stopped a run without koto.

Critical Requirements

  • Conversational First: Phase 1 is a dialogue, not a form to fill out
  • Research Before Drafting: Don't draft a thesis you haven't investigated
  • User Review: Never finalize a VISION the user hasn't reviewed and given feedback on
  • Jury Validation: Phase 4 is not optional -- thesis quality, content boundaries, and section guidance compliance all get checked

Execution

Execute phases sequentially by reading the corresponding phase file:

  1. Setup: Ensure work happens on a feature branch
    • If already on a branch that matches the topic, skip branch creation
    • If on main or an unrelated branch, create docs/<topic> (kebab-case)
    • If unsure whether the current branch is related, ask the user
  2. Scope: Conversational scoping
    • Instructions: references/phases/phase-1-scope.md
    • Skipped when an earlier run's scope key (work/scope.md in vision-<topic>) exists
  3. Discover: Parallel research agents investigate leads
    • Instructions: references/phases/phase-2-discover.md
  4. Draft: Produce VISION draft and walk through with user
    • Instructions: references/phases/phase-3-draft.md
  5. Validate: Jury review and finalization
    • Instructions: references/phases/phase-4-validate.md

Output

Final artifact: docs/visions/VISION-<topic>.md, created in Draft status. After user approval, transition to Accepted via shirabe transition <vision-path> Accepted.

After acceptance, suggest next steps:

SituationSuggestion
Clear feature scope already/prd to write requirements
Multiple directions possible/explore to investigate further
Needs organizational alignmentShare VISION for stakeholder review

Team Shape

/vision's team shape is declared in team.yaml as the machine-readable contract surface. The child layer spawns three reviewer peers at Phase 4 (thesis-quality-reviewer, content-boundary-reviewer, section-guidance-reviewer) to validate the drafted VISION.

See Dispatch Contract for v1 parent-side consumption rules.

Reference Files

FileWhen to load
references/vision-format.mdPhase 3 (drafting) and Phase 4 (validation)
references/phases/phase-1-scope.mdPhase 1
references/phases/phase-2-discover.mdPhase 2
references/phases/phase-3-draft.mdPhase 3
references/phases/phase-4-validate.mdPhase 4

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.