Agent blueprint
Paste this URL to an agent with “Ejecuta” — audit and install MCP, rules, skills, DESIGN.md, lint, gdp-ts proofs, and optional pstack / poteto-mode on an existing Aura project.
Human usage: copy this page URL and tell the agent:
Ejecuta https://auradesignsystem.com/docs/mcp-agent-blueprint(Local docs: http://localhost:4000/docs/mcp-agent-blueprint.)
This page is an agent runbook, not the CLI command aura blueprint. The runbook may invoke that command when the project is missing its feature map, image-generation command, preflight, Sonar scaffolding, or gdp-ts proofs.
Agent: follow this runbook
If the user pasted this URL with Ejecuta, Run, Execute, or Aplica, you are the agent. Do not only explain. Audit the workspace, install what is missing, and report.
Default target: consumer project (an app using Aura). Only use the Aura monorepo registry path if the repo clearly is aura-design-system (has packages/registry/registry/default/components/).
Update an existing project
An existing project has any of these: .agents/, .cursor/rules, .cursor/skills, wiki/obsidian-*, components.json with @aura, DESIGN.md, or sonar-project.properties. For an existing project:
-
MUST NOT run
aura initoraura setup. They rewritecomponents.jsonandglobals.cssand would replace a customized theme. -
Run the latest blueprint from the project root:
npx @aura-design/cli@latest blueprint .It keeps team-owned files (
package.jsonentries,scripts/preflight.ts,sonar-project.properties,scripts/sonar.sh,bruno/, gdp-ts proofs,Image-Identity.md), writes rules and skills that are missing, keeps the ones that exist (the forms skill files are updated when they are an unmodified older Aura copy), moves.cursor/rulesinto.agents/rules, and deletes retired files: Project Brain and older Emil and Vercel skill copies. -
Pass
--forceonly when the user wants the latest Aura rules and skills over the existing copies. It overwrites Aura-owned rules, skills, and vault config, including customized ones. It never touches the team-owned files above. -
Continue with the audit below and install only the rows still missing. Report the
stack:andmodules:lines blueprint printed.
0. Preconditions
- Work in the project root: the folder with
package.json,pyproject.toml,go.mod,pom.xml,*.csproj,composer.json,Gemfile, orCargo.toml. - Prefer non-interactive installs:
pnpm dlx …. - Do not invent secrets. Do not force-push.
- If the project is not a JavaScript frontend (Python, Go, Java/Kotlin, .NET, PHP, Ruby, Rust, or anything else), skip the Aura UI rows (
components.json,DESIGN.md, shadcn MCP,@shadcn/lint, forms) and gdp-ts. Audit and install only what applies to that stack, then runnpx @aura-design/cli@latest blueprint .. It detects the stack and adds the agent rules and the feature map everywhere, Sonar where SonarQube can scan the language, a Bruno collection for backends, and image generation for frontends. Report the stack and the modules it printed.
1. Audit (read before write)
Check and record present / missing for each:
| Item | How to detect |
|---|---|
Aura components.json | File exists; registries["@aura"] points at Aura registry JSON |
DESIGN.md (root) | File at project root (or install via @aura/rule-design-md / @aura/design-md) |
| Agent rules | Always-on process rules in .agents/rules/*.mdc. Every agent finds it through the root AGENTS.md. Design guardrails in .agents/skills/aura/ |
| Cursor skills | .agents/skills/port-component-to-aura/SKILL.md and .agents/skills/generate-brand-images/SKILL.md |
| Third-party audits | Not installed by Aura. Older Emil and Vercel copies under .cursor/skills/ and .agents/skills/ are gone after blueprint. See Audits |
| Image identity | wiki/obsidian-*/01-Identidad/Image-Identity.md; status: ready only when style, palette, composition/motifs, and exclusions are concrete |
| Gemini image env | .env.example names GOOGLE_API_KEY; only check whether .env has GOOGLE_API_KEY or GEMINI_API_KEY, never print its value |
AGENTS.md entry | Root AGENTS.md has the block between <!-- aura:agents:start --> and <!-- aura:agents:end -->; CLAUDE.md has @AGENTS.md |
Leftover .cursor agent files | .cursor/rules/ and .cursor/skills/ are absent, or each leftover is a differing duplicate to merge |
| shadcn MCP | The MCP config of the agent in use has shadcn → npx shadcn@latest mcp. See C |
@shadcn/lint | Dep @shadcn/lint present; eslint.config.* registers shadcn/* rules; optional eslint.aura-shadcn.mjs. Policy text is .agents/skills/aura/rules/lint.md |
pstack / /poteto-mode | Marketplace plugin pstack enabled for this Cursor workspace or project has a usable poteto-mode entry (e.g. .agents/skills/poteto-mode/SKILL.md or AGENTS.md explicitly requiring /poteto-mode). Record: plugin / repo-skill / missing |
| pstack model setup (optional) | User-level ~/.cursor/rules/pstack-models.mdc exists after /setup-pstack — note present/missing; do not fail the Aura blueprint if missing |
@gdp-ts/core | dependencies or devDependencies in package.json |
| gdp-ts ESLint preset | An eslint.config.* file references @gdp-ts/core/lint/eslint, or eslint.gdp-ts.mjs exists and the flat config spreads it |
| gdp-ts skill | .agents/skills/gdp-ts/SKILL.md |
| gdp-ts proofs | proofs/session-is-valid.ts, proofs/user-has-project-role.ts, proofs/plan-includes-entitlement.ts, and data/delete-project.ts (project root or src/, wherever @/ points) |
| Package manager | Prefer pnpm; fall back to npm/yarn if that is what the repo uses |
| Stack | aura blueprint prints stack: and modules:. Manifest files decide it: go.mod, pyproject.toml, pom.xml, *.csproj, composer.json, Gemfile, Cargo.toml, package.json |
| Sonar | sonar-project.properties, plus sonar:* scripts on Node or scripts/sonar.sh on other stacks. Not expected on Rust or unknown stacks |
| Bruno (backends) | bruno/bruno.json, bruno/environments/local.bru, and .agents/rules/bruno.mdc |
Also note: Tailwind/Aura CSS already applied? (globals.css with accent/gray scales, or prior aura setup / init).
Cloud agents: marketplace plugins may not load reliably on cloud VMs. Prefer detecting repo-local skill / AGENTS.md, and report plugin unknown on cloud VM honestly — never claim pstack is installed if /poteto-mode does not resolve.
2. Install / fix gaps
Apply only what is missing. Prefer the smallest fix.
A. Full Aura apply (no Aura yet, or heavily incomplete)
pnpm dlx @aura-design/cli@latest setup(setup updates components.json, globals.css, adds registry packages, rules, skills, and runs CLI blueprint scaffolding. Use from the app root.)
If the user only wants AI context (not full theme rewrite), skip setup and use the targeted adds below.
B. Targeted AI context (typical “old project already on Aura”)
pnpm dlx shadcn@latest add \
@aura/skill-aura \
@aura/rules \
@aura/skills \
@aura/rule-design-md \
@aura/eslint-shadcn-lintOr install the design skill with the skills CLI:
pnpm dlx skills add somosgented/aura-design-system --skill aura@aura/skill-aura→.agents/skills/aura/(design guardrails)@aura/rules→.agents/rules/(feature map, no comments, DESIGN.md pointer)@aura/skills→.agents/skills/(includesport-component-to-auraandgenerate-brand-images)@aura/rule-design-md→ rule + rootDESIGN.md@aura/eslint-shadcn-lint→eslint.aura-shadcn.mjs(see D below). Lint policy text is in the Aura skill
.agents/ is the one home for agent files. aura blueprint writes rules to .agents/rules/, skills to .agents/skills/, and a managed block in the root AGENTS.md that points every agent there, plus CLAUDE.md with @AGENTS.md. It moves .cursor/rules/* and .cursor/skills/* into .agents/. A differing duplicate stays in .cursor/skills/ with a warning: merge it into .agents/skills/ by hand, then delete it. Never write a new rule or skill under .cursor/.
.agents/skills/aura/SKILL.md is the Aura design skill. Its rules/*.md files are references that skill links to, same as .agents/skills/shadcn/. No agent applies those markdown files every turn. Always-on process rules stay in .agents/rules/*.mdc. @aura/skills installs procedure skills (port-component-to-aura, verify-aura-ui, aura-forms) to .agents/skills/.
If the feature map, Image-Identity.md, or pnpm ai:image is missing, scaffold those project capabilities without rewriting the Aura theme:
pnpm dlx @aura-design/cli@latest blueprint .Ensure components.json has:
"registries": {
"@aura": "https://auradesignsystem.com/r/{name}.json"
}(Optional local registry while developing Aura itself: "@aura-dev": "http://localhost:4000/r/{name}.json".)
C. MCP config (create if missing)
MCP config is the one agent file that stays in the tool's folder, because each client reads its own path. Write the project config for the agent in use, if absent:
| Agent | Project config |
|---|---|
| Cursor | .cursor/mcp.json |
| Claude Code | .mcp.json |
| VS Code / Copilot | .vscode/mcp.json (servers instead of mcpServers) |
| Codex | ~/.codex/config.toml (user level) |
{
"mcpServers": {
"shadcn": {
"command": "npx",
"args": ["shadcn@latest", "mcp"]
}
}
}Then tell the user (you cannot finish this in the terminal):
- Restart the agent or reload MCP.
- Enable shadcn in the client's MCP settings.
D. @shadcn/lint (Aura Tailwind policy for agents)
Machine-checks design-system usage so agents get fixable errors (not only prose rules). Requires ESLint ≥ 9.30 and Node ≥ 20.19.
If missing:
pnpm add -D @shadcn/lint
pnpm dlx shadcn@latest add @aura/eslint-shadcn-lintThat installs eslint.aura-shadcn.mjs. The matching agent text is .agents/skills/aura/rules/lint.md (@aura/skill-aura).
Merge into the app’s eslint.config.mjs (do not replace an existing Next/ESLint setup):
import { plugin as shadcn } from "@shadcn/lint"
import {
createAuraShadcnLintConfig,
} from "./eslint.aura-shadcn.mjs"
export default [
...existingConfig,
...createAuraShadcnLintConfig(shadcn),
]Policy shipped at warn:
| Rule | Aura intent |
|---|---|
shadcn/no-arbitrary-values | 13px spacing scale — no p-[16px] |
shadcn/no-raw-colors | accent/gray / semantic tokens only |
shadcn/no-restyle | layout only; form controls own padding (add a size/variant if needed) |
Keep no-restyle / no-arbitrary-values off under components/ui/**. Ensure package.json has a lint script; after UI work, run it and fix findings. Promote rules to error once the warning baseline is under control.
Upstream: shadcn-ui/lint. Docs: Lint.
E. pstack (agent rigor / poteto-mode)
Additive agent-rigor layer (verification + playbooks). It does not replace @aura/rules, Aura skills, DESIGN.md, shadcn MCP, or @shadcn/lint.
When to install: Always offer when missing on an Aura consumer or aura-monorepo workspace where the user is using Cursor agents. Skip only if the user said “Aura UI context only, no pstack.”
Easy path (preferred) — Cursor marketplace plugin pstack (id 9717366). Prefer this over vendoring backnotprop/pstack into apps:
1. In Cursor chat on this project: /add-plugin pstack
2. Pick pstack in the plugin picker
3. /setup-pstack
4. Start a new chat
5. Smoke: /poteto-mode <small read-only task>. Done means <checkable>. Do not edit unless asked.Aura monorepo: if scenario is aura-monorepo, link root AGENTS.md (and .agents/skills/aura-constraints/, .agents/skills/aura-verification/) — do not duplicate a full pstack vendor into the registry.
Cloud agent note: If /poteto-mode is not found on a cloud agent, say so in the result table. Workarounds: (1) open cursor.com/agents and prompt “use /poteto-mode (pstack) …”; (2) optional thin .agents/skills/poteto-mode/SKILL.md committed only when the team opts in — do not auto-vendor the full plugin.
Grok Bot note: Account install of marketplace plugin 9717366 enables pstack skills for Grok Bots; still run /setup-pstack in Cursor IDE for local model roles.
Do not: git clone pstack into node_modules or app src/; do not replace Aura lint/rules with pstack principles.
F. Audits
Do not install audits during setup. Record what exists, and install a third-party audit only when the user asks for that review.
- Built in: confirm the gates for the stack.
pnpm lintwith@shadcn/linton JavaScript frontends.sonar-project.propertieswithsonar:*scripts on Node, orscripts/sonar.shon Python, Go, Java/Kotlin, .NET, PHP, and Ruby.bruno/on backends. gdp-ts on Node and TypeScript. - Third-party: Emil Kowalski's skills,
vercel-react-best-practices, andworkosare not part of Aura. Blueprint deletes the Emil and Vercel folders an older CLI copied into.cursor/skills/and.agents/skills/. Do not commit or vendor them.
Which audit fits which change, the procedure, the findings format, and the commands are on Audits.
G. gdp-ts (proof-carrying authz)
Every sensitive function takes a typed proof that the check already ran for those ids. Proofs are never cast. CI is pnpm typecheck and pnpm lint. This does not replace a policy engine, Aura rules, @shadcn/lint, or pstack. See gdp-ts.
When to install: Whenever @gdp-ts/core, the ESLint preset, the skill, or the starter proofs are missing. Skip only if the user said “no gdp-ts”.
aura init and aura setup already run this. On an existing app, re-run blueprint (it skips feature-map, identity, and proof files that exist, and removes the retired Project Brain rule, skill, and script):
pnpm dlx @aura-design/cli@latest blueprint .That installs @gdp-ts/core, spreads @gdp-ts/core/lint/eslint into the flat ESLint config, runs:
pnpm dlx skills add shadcn/ui -a cursor -y --copy
npx skills add rauchg/gdp-ts --skill gdp-ts -a cursor -y --copyand writes lib/ids.ts, lib/authz-store.ts, proofs/*, and data/delete-project.ts (plus the handler and data/mistakes.ts) under the @/ root. Aura Keep invariants in .agents/skills/aura/ win when the upstream shadcn skill conflicts (icons, forms, 13px spacing, typography).
Do not: vendor the skill into the Aura registry, cast as Proof, export a prover, or call defineProof outside proofs/. The default preset is not strict mode; do not turn on strict: true in an app that still uses as for unrelated code. Replace lib/authz-store.ts with the real database before shipping. The in-memory maps are a stand-in, and handlers must not write roles into them.
3. Verify
Confirm after installs:
.agents/skills/aura/SKILL.mdexists when@aura/skill-auraorskills addwas used.agents/rules/has the always-on process rules (feature-map,no-comments,design-md) when@aura/ruleswas installed.cursor/rulesand.cursor/skillsare absent, or the only leftovers are differing duplicates named in the report- Root
AGENTS.mdhas theaura:agentsblock andCLAUDE.mdhas@AGENTS.md .agents/rules/feature-map.mdc,.agents/rules/no-comments.mdc,.agents/skills/update-feature-map/SKILL.md, andwiki/obsidian-*/02-Documentación/Feature-Map/Feature-Map.baseexist on every stack- Sonar:
sonar-project.propertiesplussonar:*scripts on Node, orscripts/sonar.shon Python, Go, Java/Kotlin, PHP, and Ruby;scripts/sonar.shwithout properties on .NET; nothing on Rust or unknown stacks - Backends:
bruno/bruno.json,bruno/environments/local.bru, and.agents/rules/bruno.mdcexist, and.gitignorehasbruno/.env - The checks below about components, forms, images, lint, MCP, and gdp-ts apply to JavaScript projects only
.agents/skills/port-component-to-aura/SKILL.mdexists.agents/skills/generate-brand-images/SKILL.mdand its generator script exist on frontends.agents/skills/verify-aura-ui/SKILL.mdand.agents/skills/update-feature-map/SKILL.mdexist when@aura/skillswas added.cursor/skills/and.agents/skills/do not containemil-design-eng,react-best-practices, orvercel-react-best-practicesunless someone installed that audit for this task and has not committed it.agents/skills/aura/rules/forms.md,.agents/skills/aura-forms/SKILL.md, and theform,field,use-dynamic-form, andweb-validationregistry items exist.agents/skills/shadcn/SKILL.mdexists (or document the gap)wiki/obsidian-*/has00-General/,01-Identidad/,02-Documentación/Feature-Map/Feature-Map.base, and03-Configuración/; frontends also have01-Identidad/Image-Identity.md.gitignorehaswiki/**/.obsidian/andgit ls-files wikilists no.obsidian/file (otherwise rungit rm -r --cached wiki/*/.obsidian)package.jsonhasai:imageand nobrain:progress;.env.examplenamesGOOGLE_API_KEY- Root
DESIGN.mdexists (or user declined design-md) components.jsonincludes@aura- The agent's MCP config has the shadcn server (user must enable it in the client)
@shadcn/lintinstalled;eslint.config.*spreadscreateAuraShadcnLintConfig(or equivalent);eslint.aura-shadcn.mjspresent when using the registry item- pstack available:
/poteto-moderesolves in this environment or documented missing with reason (local plugin / cloud gap / user skipped) - If installed (or install was offered): agent can state that
/setup-pstackwas offered or completed @gdp-ts/coreis installed; the ESLint preset is spread into the flat config (oreslint.gdp-ts.mjsexists and the gap is named);.agents/skills/gdp-ts/SKILL.mdexists;data/delete-project.tsdemands session, project-role, and plan proofs
Optional smoke: pnpm dlx shadcn@latest add @aura/button only if the user asked to install a component; do not add random UI.
4. How to work after setup
- Consumer app: follow the skill
port-component-to-aurain project mode — write into@/componentsaliases; do not create Ladle/registry metadata. - Aura monorepo: skill registry mode — component + Ladle
Defaultstory +metadata/{kebab}.yml+registry:generate/registry:build. - Landing with images: follow
generate-brand-images. Read the blueprint01-Identidadnotes first. If image identity is undefined, ask focused identity questions and updateImage-Identity.mdbefore generating. - Gemini access: the bundled command reads
GOOGLE_API_KEYorGEMINI_API_KEYdirectly from root.env. If absent, ask whether the user wants to add a key, use agent-native image generation when available, or continue with placeholders; never fabricate a key. - Batch landing flow: inspect the landing, create one manifest for the necessary image set, run
pnpm ai:image -- --manifest <path>, integrate accepted local assets, then record their paths in the wiki. - Mobile form UX (critical):
input/textarea/selectfont-size MUST be ≥ 17px. Never puttext-smortext-xson editable fields—iOS Safari zooms on focus below that size. Keephtml { font-size: 17px; }and the global floor instyles/main.css(font-size: max(1rem, 17px)). See the Aura skill andDESIGN.md. - Design lint: after UI edits, run
pnpm lint(or the app’s lint script) and clear@shadcn/lintwarnings. Form controls own padding — add a size/variant on the component if spacing must change. - Hard engineering / multi-step changes: prefer
/poteto-mode(pstack) with an explicit Done means check. Keep Aura skills for porting components (port-component-to-aura), brand images, andDESIGN.md. Use@shadcn/lint+ Aura rules as the Gardener gates; use pstack for playbooks + verification. After UI edits still runpnpm lint. - Sensitive APIs: follow the gdp-ts skill. A function that reads or changes something only some callers may touch takes a proof about its named arguments. Never cast a proof. After authz edits, run
pnpm typecheckandpnpm lint. - Verification skill (optional):
/create-verification-skillis project-local. Inside the Aura monorepo it should target Aura surfaces (Ladle stories, token docs, package exports) — not product-app flows unless the consumer asks. - Concepts: MCP overview · Rules · Installation
5. Final reply to the user (required format)
## Agent blueprint — result
**Project:** <path or package name>
**Scenario:** consumer | aura-monorepo
**Stack:** <stack and modules printed by aura blueprint>
| Check | Before | Action | After |
| --- | --- | --- | --- |
| components.json @aura | … | … | … |
| DESIGN.md | … | … | … |
| .agents/skills/aura | … | … | … |
| .agents/rules | … | … | … |
| .agents/skills | … | … | … |
| Feature map + agent rules + vault sections | … | … | … |
| Sonar (when the stack is scannable) | … | … | … |
| Bruno (backends) | … | … | … |
| Third-party audits | … | … | … |
| Forms stack (forms.md, aura-forms, components) | … | … | … |
| Blueprint image identity | … | … | … |
| Gemini image command | … | … | … |
| AGENTS.md entry + .cursor migration | … | … | … |
| MCP config | … | … | … |
| @shadcn/lint + Aura eslint fragment | … | … | … |
| pstack / poteto-mode | … | … | … |
| pstack-models setup (optional) | … | … | … |
| @gdp-ts/core | … | … | … |
| gdp-ts ESLint preset | … | … | … |
| gdp-ts skill | … | … | … |
| gdp-ts proofs (`deleteProject`) | … | … | … |
**Manual step for you:** enable shadcn MCP in Cursor
Settings (if not already green). If pstack was offered,
finish `/add-plugin pstack` → `/setup-pstack` in Cursor desktop
when you are not already set up.
**Next:** paste a component URL to port it, or
describe a landing page; the agent can plan and
generate its identity-aligned image set. For rigorous /
multi-step changes, paste a `/poteto-mode … Done means …`
task after the blueprint finishes.Stop when the table is accurate. Do not claim MCP is connected if the user still needs to flip the Settings toggle. Do not claim pstack//poteto-mode is available if the plugin did not resolve (especially on cloud agents).
Related
- pstack — what
/poteto-modeis, why Aura uses it, easy install - gdp-ts — proof-carrying authz, starter proofs, CI typecheck + lint
- Audits — third-party Emil, Vercel, and WorkOS skills, installed from upstream when someone asks
- Lint —
@shadcn/lintsetup and Aura policy - MCP — what MCP/skills/rules are
- Rules — install
@aura/rules - Installation —
auraCLI init - CLI
aura blueprint— feature map, preflight, Sonar, and gdp-ts scaffolding (not this runbook)