architect
cursor/plugins
Sketch architecture before coding—types, signatures, and module structure—then implement against the design.
What is architect?
Architect is a design-first workflow for non-trivial code changes. It grounds you in existing systems, generates multiple design candidates, synthesizes them, and then implements against the chosen sketch. Use it when jumping straight to code would lock in the wrong shape.
- Ground the problem by understanding all systems the new code touches
- Generate multiple structurally distinct design candidates using the arena skill
- Synthesize candidates into a single design package with rationale
- Screen designs against red flags (shallow modules, information leakage, temporal decomposition)
- Implement code against the sketch, surfacing deviations as signal
- Scrap and redesign if implementation reveals the architecture is wrong
How to install architect
npx skills add https://github.com/cursor/plugins --skill architect- The 'how' skill (for grounding existing systems)
- The 'arena' skill (for generating design candidates)
- The 'why' skill (optional, for understanding existing rationale)
- The 'interrogate' skill (optional, for adversarial pressure on designs)
- Access to pstack-models.mdc rule or default runner models
How to use architect
- 1.Open a todolist with phases: Ground, Sketch, Agree, Implement, Scrap
- 2.Run the 'how' skill on all systems the new code touches to build a mental model
- 3.Run the 'arena' skill with the design-sketch task and grounding artifacts to generate candidates
- 4.Screen each candidate against design red flags and compare on interface depth
- 5.Synthesize the best candidates into one design package with rationale
- 6.Optionally pause for human sign-off if checkpoint was requested
- 7.Replace 'not implemented' bodies and pseudocode with actual code
- 8.Surface deviations from the sketch as signal, not friction
Use cases
- Designing a new module that integrates with multiple existing subsystems
- Refactoring a complex feature where the current shape is causing friction
- Building a public API or interface where the contract must be right before implementation
- Making architectural changes that affect ownership or layering across components
- Evaluating trade-offs between competing design approaches before committing code
- Software architects planning non-trivial changes
- Teams wanting to validate design before implementation
- Developers working on systems with complex integration points
- Engineers making decisions that affect module boundaries or public interfaces
architect FAQ
Use architect for non-trivial work where the shape matters: new modules integrating with existing systems, refactoring complex features, designing public APIs, or making changes that affect ownership or layering. Skip it for genuinely greenfield work with no surrounding system to integrate.
Grounding means building a real mental model of every system the new code touches by running the 'how' skill on relevant subsystems. It's not just naming a file—it's understanding the traced model of how those systems work and what constraints they impose.
No, it's opt-in. By default, architect proceeds directly to implementation after synthesizing the design. You can request a checkpoint with '/architect with checkpoint' or 'stop and show me before implementing' to pause for review.
Deviations are signal worth surfacing. Ask whether the sketch was wrong, the requirement was missed, or the implementation is overreaching. If a pattern of friction emerges (repeated workarounds, multiple edge cases, escape hatches), scrap the sketch and redesign from first principles.
At least two structurally distinct candidates, even if the first looks sufficient. This exhausts the design space and lets you compare on interface depth, preferring designs that hide more complexity behind a smaller public surface.
Full instructions (SKILL.md)
Source of truth, from cursor/plugins.
name: architect description: "Sketch types, signatures, and module structure before code, then stay in the loop while implementation fills in. Use for /architect, 'architect this', 'design this', or non-trivial work where jumping to code would lock in the wrong shape." disable-model-invocation: true
Architect
Design before implementing. Sketch types, function signatures, class shapes, and module boundaries with not implemented bodies and pseudocode. Synthesize across multiple model perspectives, then fill in code against the chosen sketch. If implementation proves the sketch wrong, throw it out and redesign.
Start
Open a todolist with one entry per phase before starting.
- Ground
- Sketch
- Agree
- Implement
- Scrap
Phase A: Ground the problem
Build a real mental model of every system the new code touches. Run the how skill over the relevant subsystems.
Naming a file isn't grounding. Produce the traced model how prescribes. If the design redefines ownership or layering, also run the why skill on the existing shape so the rationale becomes a constraint, not a guess.
Skip Phase A only when the work is genuinely greenfield with no surrounding system to integrate.
Phase B: Sketch
Run the arena skill with the design-sketch task and the Phase A grounding artifacts. Pass references/runner-prompt.md as each runner's prompt. Each candidate produces a design package shaped per references/rationale-template.md.
Take the runners from the architect runners line in the pstack-models.mdc rule, in place of the arena runners line. If the rule or that line is missing, use claude-opus-5-5-max, gpt-5.6-sol-max, grok-4.7-xhigh-fast. Alias and rejected entries follow the runner rules in the arena skill's Phase A.
Design it twice. Require at least two structurally distinct candidates before synthesis, even when the first looks sufficient. This is the exhaust-the-design-space principle skill made concrete. Whole-shape alternatives, not point fixes inside one shape.
Screen every candidate against references/design-red-flags.md before synthesis. Reject or revise shallow modules, information leakage, temporal decomposition, and pass-through methods.
Compare viable candidates on interface depth. Prefer the design that hides more complexity behind a smaller, simpler public surface. A rich interface can keep call chains short by concentrating capability instead of scattering it across layers.
Arena returns one synthesized design package. The synthesis decision populates the rationale's "Synthesis decision" section.
Phase C: Agree (opt-in)
Default: proceed directly to implementation with the synthesized design. No human checkpoint.
Opt in to a checkpoint when the invoker explicitly asks: "/architect with checkpoint," "stop and show me before implementing," or similar. Then surface the synthesized design and pause for sign-off.
The synthesis can ship as its own commit either way, as the "scaffold first" mode of the foundational-thinking principle skill. Planned and scoped breakage during fill-in is fine, per the outcome-oriented-execution principle skill. For adversarial pressure on the design before implementing, run the interrogate skill on the synthesized sketch.
If the human pushes back on the shape (in a checkpoint or after the fact), treat that as Phase A evidence. Re-ground and re-run Phase B before writing more code.
Phase D: Implement against the sketch
Replace not implemented bodies with code, pseudocode with logic. The synthesized sketch is the contract.
Deviations from the sketch are signal worth surfacing, not friction to absorb silently. If a function needs a parameter the sketch didn't anticipate, ask whether the sketch was wrong, the requirement was missed, or the implementation is overreaching.
Phase E: Scrap when the architecture is wrong
If implementation keeps producing friction the sketch can't absorb, throw the sketch out. Don't bolt fixes onto a wrong design, per the redesign-from-first-principles and fix-root-causes principle skills.
The signal is a pattern, not single instances. Tells:
- The same shape of workaround appearing repeatedly across unrelated code.
- Multiple unrelated edge cases that all need special-case branches.
- Types that need escape hatches (
any, casts, optional fields always set in practice) to compile. - The "we need a lock" reflex when the sketch said the state wasn't shared.
- Callers having to know the abstraction's internal rules to use it.
- Two or more independent Phase D deviations of the same shape across the implementation.
Use judgment. A few edge cases don't condemn an architecture. Some problems are legitimately complex. Complexity in the data is not complexity in the design.
When you scrap:
- Re-run the how skill over what's been built.
- Redesign as if the new constraints had been day-one assumptions, per redesign-from-first-principles.
- Subtract before adding, per the subtract-before-you-add principle skill. The new sketch should be smaller than the old one before it grows.
- Return to Phase B and re-run arena.
Outputs
The caller's usage is written first and the type sketch derived from it. One file with new types and signatures for small changes. Module map plus type definitions for larger work. The rationale ships alongside, shaped per references/rationale-template.md, including the usage sketch and the synthesis decision.
Related skills
More from cursor/plugins and the wider catalog.

arena
Spawn parallel candidates, pick the strongest base, graft best ideas from losers into it.

automate-me
Turn your working style into a personal agent skill that captures your preferences and conventions.

blast-radius
Analyze what a code change could break elsewhere before shipping, then prove safety with real code.

bro
Restate technical messages in plain, jargon-free language.

check-compiler-errors
Run compile and type-check commands, summarize errors by file and type.

cli-for-agents
Design CLIs that agents can run reliably: non-interactive flags, layered help, stdin/pipelines, and predictable structure.