- Creator: Perfectionist → Over-Architect (Claude over-designs, doesn't endlessly revise) - Maker: Cowboy → Rogue (same behavior, better name) - Trickster: Saboteur → False Alarm (Claude floods with noise, doesn't sabotage)
174 lines
6.9 KiB
Markdown
174 lines
6.9 KiB
Markdown
---
|
||
name: shadow-detection
|
||
description: Use when monitoring agent behavior for dysfunction, when an agent seems stuck, or when orchestration quality is degrading. Detects and corrects Jungian shadow activation in archetypes.
|
||
---
|
||
|
||
# Shadow Detection
|
||
|
||
Every archetype has a **virtue** (its unique contribution) and a **shadow** (the destructive inversion of that virtue). A shadow activates when the virtue is pushed too far.
|
||
|
||
```
|
||
Virtue (healthy) → pushed too far → Shadow (dysfunction)
|
||
|
||
Contextual Clarity → can't stop → Rabbit Hole
|
||
Decisive Framing → over-builds → Over-Architect
|
||
Execution Discipline → no guardrails → Rogue
|
||
Threat Intuition → sees threats only → Paranoid
|
||
Assumption Surfacing → questions only → Paralytic
|
||
Adversarial Creativity → noise over signal → False Alarm
|
||
Maintainability Judgment → reviews only → Bureaucrat
|
||
```
|
||
|
||
---
|
||
|
||
## Explorer → Rabbit Hole
|
||
**Virtue inverted:** Contextual Clarity becomes compulsive investigation — or output that dumps without analyzing.
|
||
|
||
**Symptoms:**
|
||
- Research output keeps growing but never synthesizes
|
||
- "I found one more thing to check" repeated 3+ times
|
||
- Reading more than 15 files without producing findings
|
||
- Output is a raw inventory of files with no analysis or recommendation
|
||
|
||
**Triggers:**
|
||
- Output length > 2000 words without a recommendation section
|
||
- More than 3 "see also" or "related" tangents
|
||
- No patterns or recommendation in output
|
||
|
||
**Correction:**
|
||
"Summarize your top 3 findings and one recommendation in under 300 words. If your output has no Recommendation section, add one. A dump is not research."
|
||
|
||
---
|
||
|
||
## Creator → Over-Architect
|
||
**Virtue inverted:** Decisive Framing becomes designing at the wrong scale.
|
||
|
||
**Symptoms:**
|
||
- Abstraction layers for one-time operations
|
||
- Future-proofing for requirements that don't exist
|
||
- Configuration systems for things that could be constants
|
||
- Proposal has more infrastructure than business logic
|
||
|
||
**Triggers:**
|
||
- More than 2 new abstractions (interfaces, base classes, factories) for a single feature
|
||
- "In the future we might need..." appears in rationale
|
||
- Proposal scope exceeds original task by > 50%
|
||
|
||
**Correction:**
|
||
"Design for the current order of magnitude. If the app has 1000 users, design for 10,000 — not 10 million. Remove abstractions that serve hypothetical requirements."
|
||
|
||
---
|
||
|
||
## Maker → Rogue
|
||
**Virtue inverted:** Execution Discipline becomes reckless shipping — or expanding beyond the plan.
|
||
|
||
**Symptoms:**
|
||
- Writing code before reading the proposal fully
|
||
- No tests, or tests written after implementation
|
||
- Large uncommitted working tree
|
||
- Files changed that aren't mentioned in the proposal
|
||
|
||
**Triggers:**
|
||
- No test files in the changeset
|
||
- Single monolithic commit instead of incremental commits
|
||
- Diff contains files not listed in the Creator's proposal
|
||
|
||
**Correction:**
|
||
"Read the proposal. Write a test. Commit what you have. Revert changes to files not in the proposal. Then continue."
|
||
|
||
---
|
||
|
||
## Guardian → Paranoid
|
||
**Virtue inverted:** Threat Intuition becomes blocking everything — without offering a path forward.
|
||
|
||
**Symptoms:**
|
||
- Every finding marked CRITICAL
|
||
- Blocking on theoretical risks with < 1% probability
|
||
- Rejecting without suggesting how to fix
|
||
- Security concerns for internal-only code at external-API severity
|
||
|
||
**Triggers:**
|
||
- CRITICAL:WARNING ratio > 2:1
|
||
- Zero APPROVED verdicts in 3+ consecutive reviews
|
||
- Less than 50% of findings include a suggested fix
|
||
|
||
**Correction:**
|
||
"For each CRITICAL finding, answer: Would a senior engineer block a PR for this? If not, downgrade. Every rejection must include a specific, implementable fix."
|
||
|
||
---
|
||
|
||
## Skeptic → Paralytic
|
||
**Virtue inverted:** Assumption Surfacing becomes inability to approve anything — drowning signal in tangential concerns.
|
||
|
||
**Symptoms:**
|
||
- More than 7 challenges raised
|
||
- Challenges without suggested alternatives
|
||
- "What about X?" chains that drift from the task
|
||
- Restating the same concern in different words
|
||
|
||
**Triggers:**
|
||
- Challenge count > 7
|
||
- Less than 50% of challenges include alternatives
|
||
- Same conceptual concern raised multiple times
|
||
|
||
**Correction:**
|
||
"Rank your challenges by impact. Keep the top 3. Each must include a specific alternative. Delete the rest."
|
||
|
||
---
|
||
|
||
## Trickster → False Alarm
|
||
**Virtue inverted:** Adversarial Creativity becomes noise — too many low-signal findings drowning the real issues.
|
||
|
||
**Symptoms:**
|
||
- Testing code that wasn't changed
|
||
- Reporting non-bugs as bugs (unrealistic test scenarios)
|
||
- 20 findings when 3 good ones would cover the real risks
|
||
- Edge cases for edge cases (diminishing returns)
|
||
|
||
**Triggers:**
|
||
- Findings reference code untouched by the implementation
|
||
- More than 10 findings for a small change
|
||
- Findings describe scenarios that can't happen in the actual deployment context
|
||
|
||
**Correction:**
|
||
"Quality over quantity. Delete findings outside the Maker's diff. Rank remaining by likelihood × impact. Keep top 3-5. Three real findings beat twenty noise."
|
||
|
||
---
|
||
|
||
## Sage → Bureaucrat
|
||
**Virtue inverted:** Maintainability Judgment becomes bloat — reviews longer than the code, or insight without action.
|
||
|
||
**Symptoms:**
|
||
- Review longer than the code change itself
|
||
- Requesting documentation for self-evident code
|
||
- Suggesting refactors unrelated to the current task
|
||
- Deep-sounding analysis that doesn't end with a specific action
|
||
|
||
**Triggers:**
|
||
- Review word count > 2x the code change's word count
|
||
- Suggestions reference files not in the changeset
|
||
- Findings contain "consider" or "think about" without a specific action
|
||
|
||
**Correction:**
|
||
"Limit your review to issues that affect maintainability in the next 6 months. Every finding must end with a specific action. If you can't state the consequence of NOT fixing it, don't raise it."
|
||
|
||
---
|
||
|
||
## Shadow Escalation Protocol
|
||
|
||
1. **First detection:** Log the shadow, apply the correction prompt, let the agent continue
|
||
2. **Second detection (same agent, same shadow):** Replace the agent with a fresh one. The shadow is entrenched.
|
||
3. **Shadow detected in 3+ agents in the same cycle:** The task itself may be poorly scoped. Escalate to the user: "Multiple agents are struggling — the task may need to be broken down."
|
||
|
||
## Shadow Immunity
|
||
|
||
Some behaviors LOOK like shadows but aren't:
|
||
|
||
- Explorer reading 20 files in a monorepo with scattered dependencies → **not a rabbit hole** if each file is genuinely relevant
|
||
- Creator adding an abstraction → **not over-architect** if the abstraction is genuinely needed by the current task
|
||
- Guardian blocking with 2 CRITICAL findings → **not paranoid** if both are genuine security vulnerabilities
|
||
- Trickster finding 5 edge cases → **not false alarm** if all are in the changed code with reproduction steps
|
||
- Sage writing a long review → **not bureaucrat** if the change is large and every finding is actionable
|
||
|
||
**Rule of thumb:** Shadow = behavior disconnected from the goal. Intensity alone is not a shadow.
|