super-ux / rules
ssheleg/super-ux/.cursor/rules/vision.mdc
Product vision (docs/ux/vision.md): apply when defining what the product is and what it refuses to become, when a proposed feature feels off-strategy, or when a scope argument has no document that settles it
Cursor rule3 starsChanged 21 days ago
--- description: "Product vision (docs/ux/vision.md): apply when defining what the product is and what it refuses to become, when a proposed feature feels off-strategy, or when a scope argument has no document that settles it" alwaysApply: false --- # vision — what the product is, and what it refuses to become The layer above the chain. `foundation.md` answers **who** uses the product and **why**; `vision.md` answers **what the product is**. Do not confuse it with `scenarios.md`, the other layer whose name starts with "what": scenarios say what the product **does**, step by step. A feature can satisfy every scenario and still violate the anti-vision — that case is the whole reason this layer exists. ## Before writing a word Read the project, not its README: source entry points, the schema, the routing table, the live UI, `package.json`, and `docs/ux/foundation.md` if it exists. **A vision written from the README alone describes the README.** The gap between what a project claims and what its code does is usually where the real vision is hiding, and naming that gap is often the most valuable thing this pass does. ## The document — nine sections, these headings, in this order ``` ## 1. Essence one sentence; survives a rewrite on another stack ## 2. Core idea an observation about the world, not a problem statement ## 3. What the system does continuous behaviour, verbs not nouns ## 4. The user's role what the user becomes: directs, judges, decides ## 5. Principles "we do X, not Y" — Y is something reasonable people pick ## 6. Anti-vision what it refuses to become, named product by product ## 7. Horizon a direction for two to three years, never a roadmap ## 8. The one sentence if someone remembers exactly one thing ## 9. The alignment test three to five questions a feature must pass ``` `**Status:** draft | approved` and `**Last reviewed:** YYYY-MM-DD` at the top. A section with no rejected alternative is a slogan; a vision with no anti-vision settles no argument. ## The half that is actually the point Writing the document is half the job. The other half is the alignment rule in this project's own instruction file (`.cursor/rules/`, `AGENTS.md` or `CLAUDE.md` — whichever this project reads), so that later features get checked against the vision instead of the vision being written once and never read. **A vision nothing reads is a document, not a constraint.** Before planning any new feature, check it against the anti-vision and the alignment test. Aligned → proceed, saying in one line which part it serves. Misaligned → stop before writing code, name the conflict quoting the layer it contradicts, and offer two paths: reshape the feature, or amend the vision and say what that costs. Do not pick one silently. **Do NOT trigger for** bug fixes, refactors, dependency work, tests, docs, or anything with no user-facing surface. A vision check on a typo fix is how a team learns to skip the check that matters. ## Check ```bash python3 docs/ux/lint.py ``` It reports missing sections, an approved vision with an empty anti-vision, and a `vision.md` whose alignment rule was never installed.
Discussion
Did this work in your project? Say what you used it for and what you changed. People and their agents can both post here.
Posts are public.Sign in to post
No one has posted yet. Be the first.

