Plan directions
Generate 2-4 concrete architecture approaches for a given task, with tradeoff analysis and a recommendation. Use when user says 'directions', 'what are my options', 'compare approaches', 'how should I build this', 'architecture options', 'design options', or 'explore approaches'. Do NOT use for code review (use code-review for that). Do NOT use for investigating bugs (use postmortem for that).From its SKILL.md
npx -y skills add GRIDLOCK-NYC/claude-skills --skill plan-directionsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
8.0 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
Directions
Generate 2-4 genuinely different architecture approaches for a task. Analyze tradeoffs. Recommend one.
Important
$ARGUMENTSis the task description. If empty, ask the user what they want to build- Approaches must be GENUINELY DIFFERENT strategies, not minor variations of the same idea
- Every claim must be grounded in the actual codebase — read existing code before proposing
- Reuse existing infrastructure. If Redis is already configured, prefer Redis-based solutions. If the project uses Express middleware, propose middleware-based approaches
- Be honest about tradeoffs. Every approach has real downsides — state them clearly
- Take your time exploring the codebase before generating approaches
Instructions
Step 1: Understand the task
Read $ARGUMENTS. Identify:
- What needs to be built or changed
- What constraints exist (performance, backwards compatibility, timeline)
- What "done" looks like
Step 2: Explore the codebase
Use Explore agents or direct reads to understand:
- Current architecture (framework, patterns, conventions)
- Existing infrastructure that could be reused (caches, queues, databases, middleware)
- Related implementations already in the codebase
- Test patterns and coverage
Step 3: Generate approaches
Produce 2-4 approaches. For each:
Name — Short descriptive name (e.g., "Redis sliding window", "In-process token bucket")
Description — 2-3 sentences explaining the approach
Pros:
- Concrete benefits grounded in this codebase
Cons:
- Honest downsides and risks
Dimensions:
- Complexity: low / medium / high
- New dependencies: list them or "none"
- Files touched: estimated count and which ones
- Time to ship: rough estimate
- Distributed: yes / no (if relevant)
- Migration needed: yes / no
Step 4: Recommend
Pick one approach. State why in 1-2 sentences. Reference the specific codebase context that tips the decision (e.g., "You already have Redis configured in src/lib/redis.ts, so the Redis approach adds no new infra").
Step 5: Output
Use the card-based layout below. This is the EXACT format — follow it precisely.
Rules:
- Show the top 2 approaches as full cards (the best two)
- If 3-4 approaches exist, collapse the extras into a one-line summary after the cards
- Each approach gets ONE badge on the right: pick the most useful label (e.g.,
fast to ship,recommended,most scalable,simplest,battle-tested) - The recommended approach gets the
recommendedbadge - "for" items are pros. "against" items are cons. 3 of each, max
- The metrics row at the bottom of each card uses 4 columns:
complexity,ops burden,scale ceiling,time to ship - Use box-drawing line
───between cards
Format:
built [N] approaches for: [task summary]
explored [list of key files/areas]. pick a direction.
───────────────────────────────────────────────────────────────
A [Approach Name] [badge]
for against
[pro 1] [con 1]
[pro 2] [con 2]
[pro 3] [con 3]
complexity ops burden scale ceiling time to ship
[value] [value] [value] [value]
───────────────────────────────────────────────────────────────
B [Approach Name] [recommended]
for against
[pro 1] [con 1]
[pro 2] [con 2]
[pro 3] [con 3]
complexity ops burden scale ceiling time to ship
[value] [value] [value] [value]
───────────────────────────────────────────────────────────────
+ [N] more: C ([brief desc]), D ([brief desc])
pick direction: [A] [B] [C] [D] or describe what matters most
Formatting details:
- Approach letter and name: use bold for the letter
- Badge: use
backtickformatting - "for" column: regular text
- "against" column: regular text
- Metrics row: use a fixed-width layout with spaces to align columns
- Align the "for" and "against" columns — "against" starts at roughly column 35
- Keep each pro/con to one short line (< 30 chars ideally)
- The collapsed "+N more" line gives just the name and a parenthetical one-liner
Step 6: Wait for pick
End with exactly: pick direction: [A] [B] [C] [D] or describe what matters most
When the user picks a letter, begin implementation immediately. When the user describes what matters, re-rank or regenerate approaches optimized for their priority.
Error Handling
- No arguments provided: Ask "What do you want to build? Describe the task and I'll explore approaches."
- Task too vague: Ask for specifics — "Add rate limiting" is fine, "make it better" needs clarification.
- Only one viable approach: Report it honestly — "I explored alternatives but [approach] is the only reasonable option because [reason]. Here's why the others don't work: [list]."
- Codebase too large to fully explore: Focus on the areas most relevant to the task. State what you explored and what you didn't.
Examples
Example 1: Rate limiting
Input: /plan-directions add rate limiting to the auth endpoints
Output:
built 3 approaches for: rate limiting on auth endpoints
explored src/middleware/, src/lib/redis.ts, src/routes/auth.ts. pick a direction.
───────────────────────────────────────────────────────────────
A In-process token bucket `fast to ship`
for against
no new dependencies per-process only
works with existing Express no shared state across instances
sub-millisecond overhead resets on restart
complexity ops burden scale ceiling time to ship
low none single process 2-4 hours
───────────────────────────────────────────────────────────────
B Redis sliding window `recommended`
for against
shared across instances adds ioredis dependency
survives restarts Redis must stay up
battle-tested pattern slightly more complex
complexity ops burden scale ceiling time to ship
medium Redis managed 100k+ users 1-2 days
───────────────────────────────────────────────────────────────
+ 1 more: C (Postgres advisory locks — heavyweight but no new infra)
pick direction: [A] [B] [C] or describe what matters most
Example 2: Single viable option
Input: /plan-directions migrate from Jest to Vitest
Output: "Only one viable approach: incremental migration with dual config. Here's why big-bang and wrapper approaches don't work for this codebase: [reasons]." Then show a single card with the approach details.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most plan spec skills give in ~1.6k tokens
Counted across 1,099 of the 1,860 authors here whose files we hold, read 2026-08-07
- Ask one question at a timein 51 of 1099
- Break plans into vertical slicesin 29 of 1099, across 11 files
- Publish issues in dependency orderin 27 of 1099, across 9 files
- Iterate until user approves the breakdownin 25 of 1099, across 7 files
- Explore the repository to understand the codebase statein 24 of 1099, across 7 files
- Use domain glossary vocabularyin 23 of 1099, across 5 files
- Apply correct triage labels to published issuesin 23 of 1099, across 5 files
- Prefer AFK slices over HITLin 22 of 1099, across 7 files
- Write a specification before writing any codein 22 of 1099, across 14 files
- Write failing tests before implementation codein 22 of 1099, across 20 files
- Ask clarifying questions until requirements are concretein 21 of 1099, across 13 files
- Respect existing architecture decision recordsin 20 of 1099, across 5 files
Said here and by no other author read
- Reuse existing infrastructure
- State tradeoff downsides clearly
- Give each approach a descriptive name
- Assign a badge to each approach
- Recommend one approach with codebase context
- Use the exact card-based layout
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.