Perspectives
Evaluate anything through the eyes of multiple relevant personas. Dynamically casts perspectives that fit the situation. Domain-agnostic.
Announce at start: "Using perspectives to evaluate [subject] from multiple angles."
The Iron Law
PERSPECTIVES ARE GENERATED INDEPENDENTLY BEFORE SYNTHESIS.
NO COPY-PASTE OPINIONS. EACH PERSONA THINKS FOR THEMSELVES.
IF ALL PERSPECTIVES AGREE, RE-CAST WITH MORE CONTRAST.
Three Tiers
| Tier |
Name |
When |
What |
| T1 |
Quick Council |
Default |
4-6 personas give structured opinions inline |
| T2 |
Deep Analysis |
User requests OR T1 surfaces a real concern |
Frameworks + prioritized actions |
| T3 |
Execution Tier |
User requests OR T2 surfaces a real concern |
Sub-agents dispatched with tools — actually DO work |
T3 is not "deeper opinions" — it's a fundamentally different operation: real agent dispatch with file I/O, web search, and tool use. Treat it as such.
Escalation Rule
If the current tier finds nothing alarming → Done. Stop. No upsell.
Never routinely ask "want me to go deeper?"
Process
Step 1: Intake
Phase 1A: Identify the Subject
- Domain — code, game design, business, UI, product, personal decision, etc.
- Subject — what specific thing are we evaluating?
- Tier — user-requested, else default T1.
If the user says just "perspectives" with no subject, infer it from conversation context.
Phase 1B: Calibration
Match depth to subject:
- Casual subjects ("should I get a cat?", "is this color OK?") — skip Phase 1B. Trust the user. The intake gate exists to prevent shallow analysis on serious questions, not to interrogate small ones.
- Most subjects — ONE calibration question is enough:
"Quick check before I cast — are you [questioning a choice / seeking validation / blind-spot checking / just curious]? Anything I should know about constraints (budget, audience, hard requirements)?"
- Technical subjects (hardware, code, performance) — confirm hard facts before assuming defaults. If you catch yourself writing "assuming X..." — STOP. Ask.
- Personal/emotional subjects — the backstory IS the subject. Ask about intent and feelings.
Step 2: Cast
Select 4-6 perspectives. See persona-engine.md for the dimension catalog and selection rules.
For each persona present:
- Name — short, vivid label (not "User A")
- Who — 1-2 sentences: background, mindset, what they care about
- Why here — why their opinion matters for THIS subject
At least one adversarial perspective. At least one the user probably hasn't considered.
Wait for user to confirm, modify, or swap personas.
Step 3: Analyze (T1)
For each persona, independently generate:
- Who I am (1 line)
- Honest reaction — speak AS this person. Authentic > diplomatic. Don't soften.
- What I'd actually do — behavior, not just opinion. Bounce? Complain? Workaround? Love it?
- Verdict — 👍 / 👎 / 🤷 with a one-sentence reason
3-5 sentences per persona. This is a quick council, not an essay.
Step 4: Synthesize
- Consensus — what most agree on (if anything)
- Conflicts — where perspectives clash. These ARE the interesting design tensions.
- Blind spots — what the user likely didn't consider
Step 5: Recommendation
Direct stance based on the full picture. Take a position.
T2: Deep Analysis
Triggered by explicit request OR earned escalation from T1.
See frameworks.md for the framework catalog.
Additional steps:
Framework Selection — pick 1-2 that fit:
- Decisions → Six Thinking Hats / Devil's Advocate
- Plans/launches → Pre-Mortem
- UX/flows → Empathy Map + Cognitive Walkthrough
- Security/robustness → Red/Blue Team
- Multi-stakeholder → Stakeholder Analysis
- Creative features → Disney Strategy
Structured findings — typed output per the framework, not free opinions.
Action items — see action-translator.md. Every finding becomes:
FINDING → IMPACT → SEVERITY → SPECIFIC ACTION → EFFORT
Prioritized roadmap:
- 🔴 Fix now (Critical)
- 🟡 Fix next (Major, workarounds exist)
- 🟢 Schedule (Minor)
- 💡 Consider (Enhancement)
T3: Execution Tier
Triggered by explicit request OR earned escalation from T2.
See agents/ for each agent's prompt and protocol.
| Agent |
What It Does |
code-reviewer |
Reads code, greps patterns, flags issues with file:line |
security-analyst |
OWASP top 10, injection, auth issues |
ui-auditor |
Screenshots, contrast, keyboard nav, layout |
test-writer |
Edge-case tests informed by persona concerns |
researcher |
Web searches competitors, best practices |
doc-tester |
Follows docs as a new user, flags confusion |
performance-auditor |
Bundle sizes, load times, rendering cost |
T3 Cost Gate
Heads up — T3 is heavy.
About to dispatch [N] agents in parallel. Each independently explores the codebase and runs searches. This means:
- ~[N × 30-70] tool calls total
- Large context usage — each agent builds its own deep understanding
- ~2-5 minutes wall clock
- Long synthesis report
The most expensive operation in this skill. Worth it for real projects, overkill for quick questions.
Ready to dispatch?
"go", "yes", "do it" = confirmed. Anything else → stop and clarify.
Dispatch
- Select agents based on T1/T2 findings.
- Present selection for user confirmation.
- Show the cost warning above.
- On confirmation, dispatch in parallel via the Agent tool.
- Each agent gets constructed context inline — never tell them "read the conversation."
- Each agent reports back: Findings, Severity, Recommended Actions.
- Synthesize across all agents — patterns, conflicts, compound issues.
- Optionally execute fixes if user approves.
Rules
- Dynamic casting — every subject gets fresh personas. No reuse without rethinking.
- Authentic voice — frustrated people sound frustrated. A 70-year-old sounds different from a 15-year-old. Don't homogenize.
- Concise by default — T1 is 3-5 sentences per persona.
- User controls depth — they can stop, escalate, or add personas at any tier.
- No domain lock — works for code, UI, game design, business, personal choices, writing, architecture.
Anti-Patterns
Intake
| Thought |
Reality |
| "I know enough to start casting" |
Did you confirm hard facts? Did you ask why they're here? If not, you're guessing. |
| "Assuming standard/default specs..." |
STOP. Ask. Wrong assumptions invalidate the whole council. |
| "The subject is straightforward, no backstory needed" |
WHY they're asking changes WHO matters. |
| "Asking too many questions will annoy the user" |
One focused calibration question is fine. Wrong assumptions annoy more. |
| "I'll over-interrogate to be safe" |
For "should I get a cat," skip Phase 1B. Match depth to subject. |
Analysis
| Thought |
Reality |
| "All perspectives agree, we're done" |
Homogeneous agreement = bad casting. Re-cast with more contrast. |
| "Let me soften this perspective's criticism" |
Authentic > diplomatic. |
| "I'll skip the adversarial perspective" |
The adversary finds the blind spots. Never skip. |
| "Let me suggest T2 just in case" |
No upsell without articulated cause. |
| "This persona wouldn't have strong feelings" |
Then pick a better persona. Everyone on the council should care. |
| "I'll reuse the personas from last time" |
Every subject gets fresh casting. |
Integration
- Chains well with:
superpowers:brainstorming (during design phase), superpowers:writing-plans (review a plan before execution), superpowers:test-driven-development (T3 test-writer agent).
- After perspectives: user decides next step. Don't auto-chain.
1---2name: perspectives3description: Use when evaluating any design, feature, decision, code, or idea from multiple viewpoints — trigger on "perspective," "what would X think," "how would people react," "evaluate this," "look at this from different angles"4---56# Perspectives78Evaluate anything through the eyes of multiple relevant personas. Dynamically casts perspectives that fit the situation. Domain-agnostic.910**Announce at start:** "Using perspectives to evaluate [subject] from multiple angles."1112## The Iron Law1314```15PERSPECTIVES ARE GENERATED INDEPENDENTLY BEFORE SYNTHESIS.16NO COPY-PASTE OPINIONS. EACH PERSONA THINKS FOR THEMSELVES.17IF ALL PERSPECTIVES AGREE, RE-CAST WITH MORE CONTRAST.18```1920## Three Tiers2122| Tier | Name | When | What |23|------|------|------|-----|24| **T1** | Quick Council | **Default** | 4-6 personas give structured opinions inline |25| **T2** | Deep Analysis | User requests OR T1 surfaces a real concern | Frameworks + prioritized actions |26| **T3** | Execution Tier | User requests OR T2 surfaces a real concern | Sub-agents dispatched with tools — actually DO work |2728T3 is **not** "deeper opinions" — it's a fundamentally different operation: real agent dispatch with file I/O, web search, and tool use. Treat it as such.2930### Escalation Rule3132<HARD-GATE>33Escalation happens ONLY when the current tier surfaced a specific, articulable concern. State WHAT worried you and WHY going deeper would help.3435If the current tier finds nothing alarming → Done. Stop. No upsell.36Never routinely ask "want me to go deeper?"37</HARD-GATE>3839## Process4041### Step 1: Intake4243#### Phase 1A: Identify the Subject4445- **Domain** — code, game design, business, UI, product, personal decision, etc.46- **Subject** — what specific thing are we evaluating?47- **Tier** — user-requested, else default T1.4849If the user says just "perspectives" with no subject, infer it from conversation context.5051#### Phase 1B: Calibration5253<HARD-GATE>54Do NOT cast perspectives without knowing WHY the user is asking.55</HARD-GATE>5657Match depth to subject:5859- **Casual subjects** ("should I get a cat?", "is this color OK?") — skip Phase 1B. Trust the user. The intake gate exists to prevent shallow analysis on serious questions, not to interrogate small ones.60- **Most subjects** — ONE calibration question is enough:61 > "Quick check before I cast — are you [questioning a choice / seeking validation / blind-spot checking / just curious]? Anything I should know about constraints (budget, audience, hard requirements)?"62- **Technical subjects** (hardware, code, performance) — confirm hard facts before assuming defaults. If you catch yourself writing "assuming X..." — STOP. Ask.63- **Personal/emotional subjects** — the backstory IS the subject. Ask about intent and feelings.6465### Step 2: Cast6667Select 4-6 perspectives. See `persona-engine.md` for the dimension catalog and selection rules.6869For each persona present:70- **Name** — short, vivid label (not "User A")71- **Who** — 1-2 sentences: background, mindset, what they care about72- **Why here** — why their opinion matters for THIS subject7374At least one adversarial perspective. At least one the user probably hasn't considered.7576Wait for user to confirm, modify, or swap personas.7778### Step 3: Analyze (T1)7980For each persona, independently generate:81821. **Who I am** (1 line)832. **Honest reaction** — speak AS this person. Authentic > diplomatic. Don't soften.843. **What I'd actually do** — behavior, not just opinion. Bounce? Complain? Workaround? Love it?854. **Verdict** — 👍 / 👎 / 🤷 with a one-sentence reason86873-5 sentences per persona. This is a quick council, not an essay.8889### Step 4: Synthesize9091- **Consensus** — what most agree on (if anything)92- **Conflicts** — where perspectives clash. These ARE the interesting design tensions.93- **Blind spots** — what the user likely didn't consider9495### Step 5: Recommendation9697Direct stance based on the full picture. Take a position.9899---100101## T2: Deep Analysis102103Triggered by explicit request OR earned escalation from T1.104105See `frameworks.md` for the framework catalog.106107**Additional steps:**1081091. **Framework Selection** — pick 1-2 that fit:110 - Decisions → Six Thinking Hats / Devil's Advocate111 - Plans/launches → Pre-Mortem112 - UX/flows → Empathy Map + Cognitive Walkthrough113 - Security/robustness → Red/Blue Team114 - Multi-stakeholder → Stakeholder Analysis115 - Creative features → Disney Strategy1161172. **Structured findings** — typed output per the framework, not free opinions.1181193. **Action items** — see `action-translator.md`. Every finding becomes:120 `FINDING → IMPACT → SEVERITY → SPECIFIC ACTION → EFFORT`1211224. **Prioritized roadmap:**123 - 🔴 Fix now (Critical)124 - 🟡 Fix next (Major, workarounds exist)125 - 🟢 Schedule (Minor)126 - 💡 Consider (Enhancement)127128---129130## T3: Execution Tier131132Triggered by explicit request OR earned escalation from T2.133134See `agents/` for each agent's prompt and protocol.135136| Agent | What It Does |137|-------|-------------|138| `code-reviewer` | Reads code, greps patterns, flags issues with file:line |139| `security-analyst` | OWASP top 10, injection, auth issues |140| `ui-auditor` | Screenshots, contrast, keyboard nav, layout |141| `test-writer` | Edge-case tests informed by persona concerns |142| `researcher` | Web searches competitors, best practices |143| `doc-tester` | Follows docs as a new user, flags confusion |144| `performance-auditor` | Bundle sizes, load times, rendering cost |145146### T3 Cost Gate147148<HARD-GATE>149Before dispatching, the user MUST see the cost warning and explicitly confirm. Never dispatch on ambiguous responses.150151> **Heads up — T3 is heavy.**152> About to dispatch **[N] agents in parallel**. Each independently explores the codebase and runs searches. This means:153> - **~[N × 30-70] tool calls** total154> - **Large context usage** — each agent builds its own deep understanding155> - **~2-5 minutes** wall clock156> - Long synthesis report157>158> The most expensive operation in this skill. Worth it for real projects, overkill for quick questions.159>160> **Ready to dispatch?**161162"go", "yes", "do it" = confirmed. Anything else → stop and clarify.163</HARD-GATE>164165### Dispatch1661671. Select agents based on T1/T2 findings.1682. Present selection for user confirmation.1693. Show the cost warning above.1704. On confirmation, dispatch in parallel via the Agent tool.1715. Each agent gets constructed context inline — never tell them "read the conversation."1726. Each agent reports back: Findings, Severity, Recommended Actions.1737. Synthesize across all agents — patterns, conflicts, compound issues.1748. Optionally execute fixes if user approves.175176---177178## Rules179180- **Dynamic casting** — every subject gets fresh personas. No reuse without rethinking.181- **Authentic voice** — frustrated people sound frustrated. A 70-year-old sounds different from a 15-year-old. Don't homogenize.182- **Concise by default** — T1 is 3-5 sentences per persona.183- **User controls depth** — they can stop, escalate, or add personas at any tier.184- **No domain lock** — works for code, UI, game design, business, personal choices, writing, architecture.185186## Anti-Patterns187188### Intake189190| Thought | Reality |191|---------|---------|192| "I know enough to start casting" | Did you confirm hard facts? Did you ask why they're here? If not, you're guessing. |193| "Assuming standard/default specs..." | STOP. Ask. Wrong assumptions invalidate the whole council. |194| "The subject is straightforward, no backstory needed" | WHY they're asking changes WHO matters. |195| "Asking too many questions will annoy the user" | One focused calibration question is fine. Wrong assumptions annoy more. |196| "I'll over-interrogate to be safe" | For "should I get a cat," skip Phase 1B. Match depth to subject. |197198### Analysis199200| Thought | Reality |201|---------|---------|202| "All perspectives agree, we're done" | Homogeneous agreement = bad casting. Re-cast with more contrast. |203| "Let me soften this perspective's criticism" | Authentic > diplomatic. |204| "I'll skip the adversarial perspective" | The adversary finds the blind spots. Never skip. |205| "Let me suggest T2 just in case" | No upsell without articulated cause. |206| "This persona wouldn't have strong feelings" | Then pick a better persona. Everyone on the council should care. |207| "I'll reuse the personas from last time" | Every subject gets fresh casting. |208209## Integration210211- **Chains well with:** `superpowers:brainstorming` (during design phase), `superpowers:writing-plans` (review a plan before execution), `superpowers:test-driven-development` (T3 test-writer agent).212- **After perspectives:** user decides next step. Don't auto-chain.