Help us improve
Share bugs, ideas, or general feedback.
From vast-skills
Transform an abstract or prose description of a project, system, or initiative (NOT yet in VAST shape) into a VAST-shaped draft — extracting the latent Vision (or flagging its absence), mapping the rest to Architecture/Strategy/Tactics, and recommending composition depth. Generative, not analytical: it produces a proposed VAST document, it does not score one. Use this WHENEVER someone has raw prose (a pitch, a project brief, a backlog narrative, a strategy memo) and wants it reshaped, restructured, or re-expressed in VAST terms — EVEN IF they never say "VAST" by name, e.g. "put this in V/A/S/T terms", "what is the Vision/Architecture here", "structure this the way the framework would". Reshaping prose into clean layers (and honestly flagging a missing Vision instead of inventing one) is what this skill does better than freehand rewriting, so reach for it. Triggers: "transform this into VAST", "make this VAST-shaped", "extract the VAST from this", "VAST-ify this", "переведи в VAST". Not for scoring a doc already in VAST shape (use vast-validate), and not for starting from a blank page with no prose yet (use vast-draft).
npx claudepluginhub dkushnikov/vast-framework --plugin vast-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/vast-skills:vast-transformThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Invoke when you have an abstract or prose description — a pitch, a project brief, a backlog narrative, a strategy memo, a feature list — that is **not yet in VAST shape**, and you want it reshaped into a proposed Vision / Architecture / Strategy / Tactics draft. This skill is **generative**: it produces a VAST-shaped document from prose, extracting the latent Vision and sorting the rest into la...
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
Invoke when you have an abstract or prose description — a pitch, a project brief, a backlog narrative, a strategy memo, a feature list — that is not yet in VAST shape, and you want it reshaped into a proposed Vision / Architecture / Strategy / Tactics draft. This skill is generative: it produces a VAST-shaped document from prose, extracting the latent Vision and sorting the rest into layers.
Common triggers:
This skill is distinct from the analytical siblings. vast-validate checks a doc that already claims VAST shape and emits Pass/Warn/Fail. vast-okr-audit audits OKR-shaped docs for triad conflation. vast-transform takes prose that makes no VAST claim and produces the shape. If the input already has V/A/S/T headings and you want it scored, use vast-validate instead.
The output sorts prose into four layers, each owning a distinct level of commitment:
| Layer | Owns — what prose content maps here |
|---|---|
| Vision | The why / for-whom / enabled-experience. The purpose the work serves, as a falsifiable hypothesis. Look for "we believe", "so that", "for {users} who {pain}". |
| Architecture | The structural domains and the composition framework — skill library, interfaces, invariants, implementations. The durable structure work is built on. Look for "the system is structured as", "capabilities", "guarantees", "what must always hold". |
| Strategy | Investment direction and sequencing — which experiences to compose next, in what order, validated how. Look for "first we'll", "prioritize", "sequence", "invest in", "validate with". |
| Tactics | Concrete deliverables — specific compositions for specific users at specific moments. Look for named features, screens, dated artifacts, per-user delivery. |
Two cross-cutting facts the transform respects: Vision is a committed falsifiable hypothesis (it needs named revision triggers — flag their absence as a gap, don't fabricate them), and the four layers form a commitment-priority order (Vision → Architecture → Strategy → Tactics), not a temporal sequence.
For the four layers, the triad (Outcomes / Use Cases / Outputs), and the invariants/implementations split, see ../../references/vast-essentials.md. For the four-scope model (company / product / function / WoW) and per-scope identifying signals, see ../../references/layer-definitions.md. The eight common confusions — which the produced output must not exhibit — are in ../../references/anti-patterns.md. The composition-depth spectrum (deep / medium / light / vocabulary-only) is in the framework's applicability.md. Detailed transform heuristics are in references/transform-heuristics.md — read those if any extraction or mapping is ambiguous.
For the prose under transformation:
references/transform-heuristics.md#scope-identification; the full per-scope signal lists are in ../../references/layer-definitions.md.)⚠️ CANDIDATE (confirm) that the user must confirm. (See references/transform-heuristics.md#vision-extraction.)references/transform-heuristics.md#layer-mapping.)references/transform-heuristics.md#depth-recommendation.)references/transform-heuristics.md#gap-surfacing.)| # | Heuristic | One-liner | Detail reference |
|---|---|---|---|
| 1 | Scope identification | Match prose against per-scope signals; pick ONE scope (company / product / function / WoW). If the prose mixes altitudes (company ambition + product-feature detail), pick the dominant scope and record the conflict as an open question — don't silently average. | references/transform-heuristics.md#scope-identification (primary); ../../references/layer-definitions.md (per-scope signals) |
| 2 | Vision extraction | Lift why/for-whom/enabled-experience if present. If absent, mark status ABSENT and offer a ⚠️ CANDIDATE (confirm) Vision derived from the deliverables — never present an inferred Vision as settled fact. Partial why → "partially inferred". | references/transform-heuristics.md#vision-extraction (primary); ../../references/anti-patterns.md (#1 Vision-as-Use-Case, #4 missing falsification triggers) |
| 3 | Layer mapping | Sort prose: structural domains / composition framework → Architecture; investment direction / sequencing → Strategy; concrete deliverables → Tactics. Don't pad a thin layer — note what's needed. Don't promote a feature to Architecture just to fill it. | references/transform-heuristics.md#layer-mapping (primary); ../../references/vast-essentials.md (triad; invariants/implementations) |
| 4 | Depth recommendation | Pick deep / medium / light / vocabulary-only by scope × AI-substrate engagement. One-line reason citing the signal that decided it. Don't force deep on light work (#6) or claim vocabulary-only where deep is needed (#7). | references/transform-heuristics.md#depth-recommendation (primary); ../../references/anti-patterns.md (#6, #7) |
| 5 | Gap surfacing | Enumerate what's missing for a complete VAST doc: Vision falsification triggers, Architecture invariants, for-whom, named accountable owner, scope clarity. Gaps are honest absences to report, not things to invent. | references/transform-heuristics.md#gap-surfacing (primary); ../../references/anti-patterns.md (#2 Architecture-by-default, #7 vocabulary-only) |
Heuristic numbers above are stable identifiers, not an execution order. The Process runs scope → Vision → mapping → depth → gaps. Reference heuristics by name (e.g. "Vision extraction") if you annotate the output.
Produce a markdown document with this exact structure — a proposed VAST doc, not a score:
# Proposed VAST — {title} ({scope} scope)
## Vision
{extracted Vision — why / for-whom / enabled-experience. If genuinely absent,
write a single clearly-labeled candidate instead:
"⚠️ CANDIDATE (confirm): {inferred purpose} — derived from the deliverables below;
confirm or replace before use."}
## Architecture
{mapped structural content — domains, composition framework, invariants.
If thin or empty, state what the prose provides and what a complete Architecture
still needs (e.g. "no invariants stated — needs ≥1 quality + ≥1 fallback contract").}
## Strategy
{mapped investment direction / sequencing. If absent, note that no sequencing
logic was stated.}
## Tactics
{mapped concrete deliverables — features, screens, per-user delivery.}
---
## Notes
- **Vision status:** extracted | partially inferred | ABSENT (candidate offered — confirm before use)
- **Composition depth:** deep | medium | light | vocabulary-only — {one-line reason}
- **Gaps surfaced:** {bullets — what's missing for a complete VAST doc}
- **Open questions:** {bullets — what the author must decide}
- **Decisions deferred:** {bullets, if any}
Always include all five Notes fields. Where a field is empty, write (none) — keep every field present so the Notes block is identical in shape across clean and gap-heavy transforms (mirrors the exemplars' empty-state discipline).
The four layer sections always appear, even when a layer is thin or empty — an empty layer is itself a finding (state what's missing), not a section to omit.
See:
../../examples/07-transform-clean/ — prose with a clear latent Vision + identifiable A/S/T material → clean transform, Vision status "extracted".../../examples/08-transform-no-vision/ — a pure feature/deliverable list with no stated why → A/S/T mapped, Vision status "ABSENT", labeled candidate offered (not fabricated).../../examples/09-transform-mixed-altitude/ — prose mixing company-level ambition with product-feature detail → transform picks a scope, records the altitude conflict as an open question.