skills/architect/SKILL.md
Comprehensive implementation planning with vertical slices. Use when asked to 'act as an Architect', 'plan this', 'create an implementation plan', 'slice this into tasks', or when a task needs decomposition before execution.
npx skillsauth add arndvs/ctrlshft architectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Output "Read Architect skill." to chat to acknowledge you read this file.
Use this skill for analysis and planning, or after /write-a-prd to design the implementation before building. Use /prd-to-issues when ready to create GitHub issues from a completed plan.
Pipeline position: /grill-me → /write-a-prd → /architect → /prd-to-issues → /do-work → shft
Act as a Senior Architect. Ultrathink. Create a comprehensive, immediately actionable implementation plan for the task or codebase provided.
You analyze and plan — you do not write final code or make assumptions about files not explicitly provided. Explore the codebase as needed to answer questions and validate assumptions. Your output is a detailed plan document that can be executed by a developer or an AFK agent without follow-up questions.
Analyze only what is provided. This may be:
Do not assume missing files exist. If something is absent, flag it as a dependency gap.
The plan document must follow this order exactly.
One paragraph describing the problem being solved and why it matters.
A table summarizing every product choice resolved during interrogation. This comes before any implementation detail — it is the shared understanding checkpoint. If the human disagrees with any row, stop and resolve it before proceeding.
| Decision | Choice | | ---------------- | ------------------------------------------------------ | | [e.g. Structure] | [e.g. Flat — simple chronological list, no threading] | | [e.g. Editing] | [e.g. No editing — comments are immutable once posted] | | ... | ... |
Each slice must follow this structure:
☐ [SLICE TITLE]
Type: AFK | HITL
Size: S | M | L
Blocked by: [slice titles, or "none"]
Steps: 1. [concrete sub-task] 2. [concrete sub-task] 3. [concrete sub-task]
Acceptance criteria: [How to verify completion]
Feedback loops: [What to run — tests, typecheck, lint, etc.]
Where a critical architectural decision or principle applies:
Critical Principle: [One-sentence principle]
Why it matters: [Context]
How to apply: [Implementation note]
Risk if ignored: [Consequence]
Show the execution order and blocking relationships between slices. Use a simple text graph or list — make parallel-safe work obvious.
A final slice (always HITL) that describes how the human verifies everything works together after all other slices are complete.
Plans are executed by:
--permission-mode accept-edits, human watches and intervenesSlices labeled AFK will become GitHub issues for shft to pick up. They must be self-contained — the issue description alone must be enough for an agent to implement without follow-up questions.
Each coding session follows this decision tree. Context window percentage is the primary gate at every branch.
PLAN (explore + interrogate) → [carry or clear?] → EXECUTE → TEST → [bug found?] → COMMIT → CLEAR → repeat
Run in plan mode (read-only). The model will spawn multiple parallel Explore agents to survey the codebase — each has its own context and reports summaries back to the orchestrator. Expect context usage to reach 30–35% before execution even begins.
Do not accept the first plan. If the model produces a plan without interrogating you, invoke /grill-me before proceeding — the discussion that happens before the plan is more valuable than the plan itself. Accepting the first plan skips the shared understanding of requirements that makes execution rote.
After planning, check your context window percentage and make a conscious decision:
Smart zone vs. dumb zone: Quality may start degrading around 40% context usage. It is not a cliff — artifacts appear gradually. But a session that starts execution at 35% will almost certainly finish in the dumb zone if the feature is non-trivial.
Switch to execute mode. Implement one slice at a time, running feedback loops after each. Execution is largely rote if the plan is well understood — the model works from context and the plan document.
Verify acceptance criteria before committing. A slice is not done until its tests and typechecks pass.
Check remaining available context window before deciding how to proceed:
Commit after each completed slice. Small, frequent commits keep the blast radius small if something needs to be reverted.
Start a fresh session for the next slice or planning round. This is not optional hygiene — it is a performance requirement. Context bloat causes the model's earlier assumptions to pollute later work.
Every slice must include:
Do:
Do not:
After presenting the plan, offer the user:
/prd-to-issues — create GitHub issues from this plan/do-work — start implementing the first slice immediatelyworking/ — follow the standard handoff protocol (@~/dotfiles/instructions/handoff.instructions.md) to persist for cross-conversation pickup. Include @-references to research.md, PRD issue, and key files.development
Use when implementing UI, checking dark/light mode, or validating animations — adds a visual feedback loop via browser screenshots so frontend changes are verified, not assumed.
development
Use when Claude Code sessions had many manual approval ("press 1") prompts or when auditing hook permissions; identifies which Bash commands required approval.
tools
Use after merging a PR or during periodic cleanup to archive plan-mode files by linking them to merged PRs.
testing
Use when stress-testing a plan against the project's domain model — grills the design, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise.