feat: add virtues and second shadows to all archetypes
Each archetype now has the full Jungian triad: - Virtue: the unique contribution (what makes it worth including) - Shadow 1: primary dysfunction (strength pushed too far) - Shadow 2: complementary dysfunction (different failure mode) Virtues: Contextual Clarity, Decisive Framing, Execution Discipline, Threat Intuition, Assumption Surfacing, Adversarial Creativity, Maintainability Judgment. New shadows: Catalog Fetish, Over-Architect, Scope Creep, Gatekeeper, Whataboutist, Scope Escape, Philosopher.
This commit is contained in:
@@ -3,156 +3,280 @@ 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 — The Dark Side of Strength
|
||||
# Shadow Detection — Virtue and Shadow
|
||||
|
||||
Every archetype has a **shadow**: the destructive inversion of its core strength. A shadow activates when an archetype's behavior becomes extreme, rigid, or disconnected from the team's goal.
|
||||
Every archetype has a **virtue** (its unique contribution) and **shadows** (destructive inversions of that virtue). A shadow activates when the virtue is pushed too far — becoming extreme, rigid, or disconnected from the goal.
|
||||
|
||||
Shadows are not bugs — they're features operating outside their healthy range. Detection and correction are part of the orchestration, not a failure.
|
||||
Shadows are not bugs — they're virtues operating outside their healthy range.
|
||||
|
||||
## The Seven Shadows
|
||||
```
|
||||
Virtue (healthy) → pushed too far → Shadow (dysfunction)
|
||||
|
||||
### Explorer → The Rabbit Hole
|
||||
**Strength inverted:** Curiosity becomes compulsive investigation.
|
||||
Contextual Clarity → can't stop → Rabbit Hole / Catalog Fetish
|
||||
Decisive Framing → never done → Perfectionist / Over-Architect
|
||||
Execution Discipline → no guardrails → Cowboy / Scope Creep
|
||||
Threat Intuition → sees threats only → Paranoid / Gatekeeper
|
||||
Assumption Surfacing → questions only → Paralytic / Whataboutist
|
||||
Adversarial Creativity → destruction only → Saboteur / Scope Escape
|
||||
Maintainability Judgment → reviews only → Bureaucrat / Philosopher
|
||||
```
|
||||
|
||||
## Explorer
|
||||
|
||||
**Virtue: Contextual Clarity** — Sees the landscape before anyone acts. Maps dependencies, spots patterns, surfaces constraints.
|
||||
|
||||
### Shadow 1: Rabbit Hole
|
||||
Curiosity becomes compulsive investigation.
|
||||
|
||||
**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 list of files/functions with no analysis or recommendation
|
||||
- Research time exceeds implementation estimate
|
||||
|
||||
**Triggers:**
|
||||
- Output length > 2000 words without a recommendation section
|
||||
- More than 3 "see also" or "related" tangents
|
||||
- No confidence score or decisive recommendation
|
||||
|
||||
**Correction:**
|
||||
Stop the Explorer. Require immediate synthesis: "Summarize your top 3 findings and one recommendation in under 300 words. Everything else is noise."
|
||||
"Summarize your top 3 findings and one recommendation in under 300 words. Everything else is noise."
|
||||
|
||||
### Shadow 2: Catalog Fetish
|
||||
Research becomes inventory. Output is a dump of files and functions with no analysis.
|
||||
|
||||
**Symptoms:**
|
||||
- Output is structured as a list, not an argument
|
||||
- No "Patterns" or "Recommendation" section
|
||||
- Every file gets equal weight — no prioritization
|
||||
|
||||
**Triggers:**
|
||||
- No recommendation section in output
|
||||
- More than 10 bullet points without a synthesis paragraph
|
||||
|
||||
**Correction:**
|
||||
"Your output is an inventory, not research. Add: What patterns did you find? What do you recommend? Why?"
|
||||
|
||||
---
|
||||
|
||||
### Creator → The Perfectionist
|
||||
**Strength inverted:** Design excellence becomes endless refinement.
|
||||
## Creator
|
||||
|
||||
**Virtue: Decisive Framing** — Turns ambiguity into one clear plan. Scopes ruthlessly.
|
||||
|
||||
### Shadow 1: Perfectionist
|
||||
Design quality becomes endless revision.
|
||||
|
||||
**Symptoms:**
|
||||
- Proposal revised 3+ times without new information driving the revision
|
||||
- Adding "nice to have" features not in the original task
|
||||
- Confidence score keeps dropping instead of stabilizing
|
||||
- Proposal revised 3+ times without new information
|
||||
- Confidence score keeps dropping
|
||||
- Scope expanding with each revision
|
||||
- "What about..." additions that weren't in Explorer's findings
|
||||
|
||||
**Triggers:**
|
||||
- Revision count > 2 without external feedback
|
||||
- Proposal scope exceeds original task by > 50%
|
||||
- Confidence drops below 0.5
|
||||
|
||||
**Correction:**
|
||||
Freeze the proposal. "Ship at current state. Imperfect plans that ship beat perfect plans that don't. Note remaining concerns under 'Risks' and let the Check phase catch them."
|
||||
"Ship at current state. Note remaining concerns under 'Risks' and let the Check phase catch them."
|
||||
|
||||
### Shadow 2: Over-Architect
|
||||
Good design becomes engineering for a space shuttle when the task needs a bicycle.
|
||||
|
||||
**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 feature
|
||||
- "In the future we might need..." appears in rationale
|
||||
|
||||
**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 → The Cowboy
|
||||
**Strength inverted:** Bias for action becomes reckless shipping.
|
||||
## Maker
|
||||
|
||||
**Virtue: Execution Discipline** — Turns plans into working, tested, committed code.
|
||||
|
||||
### Shadow 1: Cowboy
|
||||
Bias for action becomes reckless shipping.
|
||||
|
||||
**Symptoms:**
|
||||
- Writing code before reading the proposal fully
|
||||
- No tests, or tests written after implementation (not TDD)
|
||||
- Large uncommitted working tree ("I'll commit when it's done")
|
||||
- "Improving" code outside the proposal's scope
|
||||
- Ignoring existing patterns in favor of "better" approaches
|
||||
- No tests, or tests written after implementation
|
||||
- Large uncommitted working tree
|
||||
|
||||
**Triggers:**
|
||||
- No test files in the changeset
|
||||
- Single monolithic commit instead of incremental commits
|
||||
- Files changed that aren't mentioned in the proposal
|
||||
- No commit for > 50% of the implementation work
|
||||
|
||||
**Correction:**
|
||||
Halt implementation. "Read the proposal. Write a test. Commit what you have. Then continue."
|
||||
"Read the proposal. Write a test. Commit what you have. Then continue."
|
||||
|
||||
### Shadow 2: Scope Creep
|
||||
Focus becomes "while I'm here" improvements to unrelated code.
|
||||
|
||||
**Symptoms:**
|
||||
- Files changed that aren't mentioned in the proposal
|
||||
- Refactoring unrelated functions
|
||||
- "I noticed this could be improved" additions
|
||||
|
||||
**Triggers:**
|
||||
- Diff contains files not listed in the Creator's proposal
|
||||
- Commit messages reference work outside the task
|
||||
|
||||
**Correction:**
|
||||
"Revert changes to files not in the proposal. You implement the plan, nothing more. Note improvements for a separate task."
|
||||
|
||||
---
|
||||
|
||||
### Guardian → The Paranoid
|
||||
**Strength inverted:** Risk awareness becomes blocking everything.
|
||||
## Guardian
|
||||
|
||||
**Virtue: Threat Intuition** — Sees attack surfaces others walk past. Calibrates to actual risk.
|
||||
|
||||
### Shadow 1: Paranoid
|
||||
Risk awareness becomes blocking everything.
|
||||
|
||||
**Symptoms:**
|
||||
- Every finding marked CRITICAL
|
||||
- Blocking on theoretical risks with < 1% probability
|
||||
- Rejected 3+ proposals without offering a viable path forward
|
||||
- Security concerns for internal-only code at external-API severity
|
||||
- Requiring mitigations that cost more than the risk they address
|
||||
|
||||
**Triggers:**
|
||||
- CRITICAL:WARNING ratio > 2:1
|
||||
- Zero APPROVED verdicts in 3+ consecutive reviews
|
||||
- Findings reference threat models inappropriate to the context
|
||||
- No suggested fixes, only rejections
|
||||
|
||||
**Correction:**
|
||||
Recalibrate. "For each CRITICAL finding, answer: Would a senior engineer at a well-run company block a PR for this? If not, downgrade to WARNING. Provide a fix suggestion for every finding you keep as CRITICAL."
|
||||
"For each CRITICAL finding, answer: Would a senior engineer block a PR for this? If not, downgrade to WARNING."
|
||||
|
||||
### Shadow 2: Gatekeeper
|
||||
Protection becomes obstruction. Rejects without suggesting how to fix.
|
||||
|
||||
**Symptoms:**
|
||||
- "REJECTED" with no fix suggestions
|
||||
- Findings describe problems but not solutions
|
||||
- Rejection rationale is vague ("security concerns")
|
||||
|
||||
**Triggers:**
|
||||
- Less than 50% of findings include a suggested fix
|
||||
- Rejection without specific, implementable remediation
|
||||
|
||||
**Correction:**
|
||||
"Every rejection MUST include a specific fix. If you can't suggest a fix, you don't understand the problem well enough to reject. Downgrade or research further."
|
||||
|
||||
---
|
||||
|
||||
### Skeptic → The Paralytic
|
||||
**Strength inverted:** Critical thinking becomes inability to approve anything.
|
||||
## Skeptic
|
||||
|
||||
**Virtue: Assumption Surfacing** — Makes the implicit explicit. Every challenge includes an alternative.
|
||||
|
||||
### Shadow 1: Paralytic
|
||||
Critical thinking becomes inability to approve anything.
|
||||
|
||||
**Symptoms:**
|
||||
- More than 7 challenges raised
|
||||
- Challenges without suggested alternatives
|
||||
- Questioning requirements that are outside the task scope
|
||||
- "What if" chains more than 2 levels deep
|
||||
- Restating the same concern in different words
|
||||
- Questioning requirements outside the task scope
|
||||
|
||||
**Triggers:**
|
||||
- Challenge count > 7
|
||||
- Less than 50% of challenges include alternatives
|
||||
- Challenges reference concerns outside the task scope
|
||||
- Same conceptual concern raised multiple times
|
||||
|
||||
**Correction:**
|
||||
Force-rank. "Rank your challenges by impact. Keep the top 3. Each must include a specific alternative. Delete the rest."
|
||||
"Rank your challenges by impact. Keep the top 3. Each must include a specific alternative. Delete the rest."
|
||||
|
||||
### Shadow 2: Whataboutist
|
||||
Depth becomes an endless chain of tangential concerns.
|
||||
|
||||
**Symptoms:**
|
||||
- "But what about X?" → "And what about Y?" chains
|
||||
- Challenges are plausible individually but not actionable together
|
||||
- Concerns drift further from the original task with each one
|
||||
|
||||
**Triggers:**
|
||||
- More than 2 "what if" chains without circling back to the task
|
||||
- Challenges reference systems or scenarios outside the task scope
|
||||
|
||||
**Correction:**
|
||||
"Keep challenges that change the design. Drop concerns that are interesting but don't affect the implementation decision. Signal, not noise."
|
||||
|
||||
---
|
||||
|
||||
### Trickster → The Saboteur
|
||||
**Strength inverted:** Adversarial testing becomes destructive chaos.
|
||||
## Trickster
|
||||
|
||||
**Virtue: Adversarial Creativity** — Thinks like an attacker. Finds edges where code breaks before users do.
|
||||
|
||||
### Shadow 1: Saboteur
|
||||
Adversarial testing becomes destructive chaos.
|
||||
|
||||
**Symptoms:**
|
||||
- Modifying code instead of testing it
|
||||
- "Testing" by breaking things outside the scope of changes
|
||||
- Finding bugs in unrelated subsystems and claiming the change caused them
|
||||
- Attacks with no constructive reporting (just "it's broken")
|
||||
- Attacks with no constructive reporting
|
||||
- Enjoying destruction more than improving quality
|
||||
|
||||
**Triggers:**
|
||||
- Agent modifies files that aren't in the Maker's changeset
|
||||
- Findings reference code untouched by the implementation
|
||||
- No reproduction steps in findings
|
||||
- Tone shifts from analytical to gleeful
|
||||
|
||||
**Correction:**
|
||||
Scope enforcement. "You test the CHANGES, not the entire system. Limit attacks to files in the Maker's diff. Every finding must include exact reproduction steps."
|
||||
"You test, you don't modify. Every finding needs exact reproduction steps. If you can't reproduce it, it's not a finding."
|
||||
|
||||
### Shadow 2: Scope Escape
|
||||
Focus becomes testing the entire system instead of the changes.
|
||||
|
||||
**Symptoms:**
|
||||
- Finding "bugs" in code that wasn't changed
|
||||
- Testing unrelated subsystems
|
||||
- Reporting issues that predate the current implementation
|
||||
|
||||
**Triggers:**
|
||||
- Findings reference files not in the Maker's diff
|
||||
- Issues exist on the main branch (preexisting, not caused by changes)
|
||||
|
||||
**Correction:**
|
||||
"Limit attacks to files in the Maker's diff. If a bug exists on main, it's not the Maker's problem. Test the CHANGES."
|
||||
|
||||
---
|
||||
|
||||
### Sage → The Bureaucrat
|
||||
**Strength inverted:** Holistic judgment becomes documentation bloat.
|
||||
## Sage
|
||||
|
||||
**Virtue: Maintainability Judgment** — Sees the forest, not just the trees. Ensures code is maintainable.
|
||||
|
||||
### Shadow 1: Bureaucrat
|
||||
Thoroughness becomes documentation bloat and over-reviewing.
|
||||
|
||||
**Symptoms:**
|
||||
- Review longer than the code change itself
|
||||
- Review longer than the code change
|
||||
- Requesting documentation for self-evident code
|
||||
- Suggesting refactors unrelated to the current task
|
||||
- Adding "while we're here" improvement suggestions
|
||||
- Philosophical commentary that doesn't lead to actionable findings
|
||||
|
||||
**Triggers:**
|
||||
- Review word count > 2x the code change's word count
|
||||
- More than 30% of findings are INFO severity
|
||||
- Suggestions reference files not in the changeset
|
||||
- "Consider" or "think about" without specific recommendation
|
||||
- More than 30% of findings are INFO severity
|
||||
|
||||
**Correction:**
|
||||
Focus. "Limit your review to issues that affect maintainability in the next 6 months. For each finding, state the specific consequence of NOT fixing it. If you can't, it's not worth raising."
|
||||
"Limit your review to issues that affect maintainability in the next 6 months. For each finding, state the consequence of NOT fixing it. If you can't, it's not worth raising."
|
||||
|
||||
### Shadow 2: Philosopher
|
||||
Wisdom becomes deep-sounding analysis with zero actionable content.
|
||||
|
||||
**Symptoms:**
|
||||
- "This raises interesting questions about..." without naming the question
|
||||
- Observations about patterns that don't lead to findings
|
||||
- Paragraph-length commentary that ends without a recommendation
|
||||
|
||||
**Triggers:**
|
||||
- Findings contain "consider" or "think about" without a specific action
|
||||
- More than 2 paragraphs without a concrete finding or verdict
|
||||
- Commentary on architecture philosophy unrelated to the changes
|
||||
|
||||
**Correction:**
|
||||
"Every finding must end with a specific action: change X in file Y. If a finding doesn't prescribe an action, delete it. Insight without action is noise."
|
||||
|
||||
---
|
||||
|
||||
@@ -170,5 +294,6 @@ Some behaviors LOOK like shadows but aren't:
|
||||
- Creator at confidence 0.4 → **not perfectionism** if the task is genuinely ambiguous (flag to user instead)
|
||||
- Guardian blocking with 2 CRITICAL findings → **not paranoia** if both are genuine security vulnerabilities
|
||||
- Trickster finding 5 edge cases → **not sabotage** 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.
|
||||
|
||||
Reference in New Issue
Block a user