@complexthings/superpowers-agent 8.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/docs/SUPERPOWERS.md +108 -0
- package/.agents/prompts/001-copilot-tool-mapping-do/001-copilot-tool-mapping-do.md +116 -0
- package/.agents/prompts/001-copilot-tool-mapping-do/SUMMARY.md +72 -0
- package/.agents/prompts/001-copilot-tool-mapping-do/copilot-tool-mapping-do-output.md +83 -0
- package/.agents/prompts/001-release-management-do/001-release-management-do.md +161 -0
- package/.agents/prompts/001-release-management-do/SUMMARY.md +19 -0
- package/.agents/prompts/001-release-management-do/completed/001-release-management-do.md +161 -0
- package/.agents/prompts/002-pull-command-do/SUMMARY.md +28 -0
- package/.agents/prompts/002-pull-command-do/completed/002-pull-command-do.md +122 -0
- package/.agents/prompts/002-pull-command-do/pull-command-do-output.md +174 -0
- package/.agents/prompts/command_updates_prompt.md +69 -0
- package/.agents/prompts/current_prompt.md +8 -0
- package/.agents/prompts/refactor.prompt.md +57 -0
- package/.agents/skills/.gitkeep +0 -0
- package/.agents/superpowers-agent +355 -0
- package/.agents/superpowers-bootstrap.md +42 -0
- package/.agents/templates/AGENTS.md.template +40 -0
- package/.agents/templates/SUPERPOWERS.md.template +108 -0
- package/.agents/templates/TOOLS.md.template +15 -0
- package/.github/workflows/main.yaml +32 -0
- package/AGENTS.md +60 -0
- package/LICENSE +21 -0
- package/README.md +724 -0
- package/hooks/hooks.json +15 -0
- package/hooks/session-start.sh +27 -0
- package/package.json +51 -0
- package/skills/architecture/ABOUT.md +20 -0
- package/skills/architecture/preserving-productive-tensions/SKILL.md +146 -0
- package/skills/architecture/preserving-productive-tensions/skill.json +9 -0
- package/skills/collaboration/brainstorming/SKILL.md +166 -0
- package/skills/collaboration/brainstorming/skill.json +9 -0
- package/skills/collaboration/brainstorming/spec-document-reviewer-prompt.md +50 -0
- package/skills/collaboration/brainstorming/visual-companion.md +277 -0
- package/skills/collaboration/dispatching-parallel-agents/SKILL.md +174 -0
- package/skills/collaboration/dispatching-parallel-agents/skill.json +9 -0
- package/skills/collaboration/executing-plans/SKILL.md +130 -0
- package/skills/collaboration/executing-plans/skill.json +9 -0
- package/skills/collaboration/finishing-a-development-branch/SKILL.md +261 -0
- package/skills/collaboration/finishing-a-development-branch/skill.json +9 -0
- package/skills/collaboration/leveraging-cli-tools/SKILL.md +132 -0
- package/skills/collaboration/leveraging-cli-tools/skill.json +9 -0
- package/skills/collaboration/receiving-code-review/SKILL.md +233 -0
- package/skills/collaboration/receiving-code-review/skill.json +9 -0
- package/skills/collaboration/requesting-code-review/SKILL.md +110 -0
- package/skills/collaboration/requesting-code-review/code-reviewer.md +146 -0
- package/skills/collaboration/requesting-code-review/skill.json +12 -0
- package/skills/collaboration/subagent-driven-development/SKILL.md +255 -0
- package/skills/collaboration/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
- package/skills/collaboration/subagent-driven-development/implementer-prompt.md +113 -0
- package/skills/collaboration/subagent-driven-development/skill.json +15 -0
- package/skills/collaboration/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/collaboration/using-git-worktrees/SKILL.md +366 -0
- package/skills/collaboration/using-git-worktrees/skill.json +9 -0
- package/skills/collaboration/writing-plans/SKILL.md +121 -0
- package/skills/collaboration/writing-plans/plan-document-reviewer-prompt.md +52 -0
- package/skills/collaboration/writing-plans/skill.json +9 -0
- package/skills/debugging/defense-in-depth/SKILL.md +380 -0
- package/skills/debugging/defense-in-depth/skill.json +9 -0
- package/skills/debugging/root-cause-tracing/SKILL.md +361 -0
- package/skills/debugging/root-cause-tracing/find-polluter.sh +63 -0
- package/skills/debugging/root-cause-tracing/skill.json +12 -0
- package/skills/debugging/systematic-debugging/SKILL.md +299 -0
- package/skills/debugging/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/debugging/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/debugging/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/debugging/systematic-debugging/find-polluter.sh +63 -0
- package/skills/debugging/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/debugging/systematic-debugging/skill.json +9 -0
- package/skills/debugging/systematic-debugging/test-academic.md +14 -0
- package/skills/debugging/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/debugging/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/debugging/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/debugging/verification-before-completion/SKILL.md +143 -0
- package/skills/debugging/verification-before-completion/skill.json +9 -0
- package/skills/finding-skills/SKILL.md +101 -0
- package/skills/finding-skills/skill.json +8 -0
- package/skills/meta/create-skill-json/SKILL.md +370 -0
- package/skills/meta/create-skill-json/skill.json +9 -0
- package/skills/meta/create-skill-json/test-scenarios.md +29 -0
- package/skills/meta/creating-prompts/SKILL.md +349 -0
- package/skills/meta/creating-prompts/examples/do-example.md +65 -0
- package/skills/meta/creating-prompts/examples/plan-example.md +75 -0
- package/skills/meta/creating-prompts/examples/refine-example.md +65 -0
- package/skills/meta/creating-prompts/examples/research-example.md +63 -0
- package/skills/meta/creating-prompts/scripts/get-next-number.sh +27 -0
- package/skills/meta/creating-prompts/skill.json +20 -0
- package/skills/meta/creating-prompts/templates/do-template.md +59 -0
- package/skills/meta/creating-prompts/templates/plan-template.md +58 -0
- package/skills/meta/creating-prompts/templates/refine-template.md +54 -0
- package/skills/meta/creating-prompts/templates/research-template.md +56 -0
- package/skills/meta/using-superpowers/SKILL.md +122 -0
- package/skills/meta/using-superpowers/skill.json +5 -0
- package/skills/meta/writing-prompts/SKILL.md +345 -0
- package/skills/meta/writing-prompts/skill.json +9 -0
- package/skills/problem-solving/ABOUT.md +40 -0
- package/skills/problem-solving/collision-zone-thinking/SKILL.md +188 -0
- package/skills/problem-solving/collision-zone-thinking/references/historical-examples.md +393 -0
- package/skills/problem-solving/collision-zone-thinking/skill.json +9 -0
- package/skills/problem-solving/inversion-exercise/SKILL.md +174 -0
- package/skills/problem-solving/inversion-exercise/skill.json +9 -0
- package/skills/problem-solving/meta-pattern-recognition/SKILL.md +116 -0
- package/skills/problem-solving/meta-pattern-recognition/skill.json +9 -0
- package/skills/problem-solving/scale-game/SKILL.md +222 -0
- package/skills/problem-solving/scale-game/skill.json +9 -0
- package/skills/problem-solving/simplification-cascades/SKILL.md +113 -0
- package/skills/problem-solving/simplification-cascades/skill.json +9 -0
- package/skills/problem-solving/when-stuck/SKILL.md +69 -0
- package/skills/problem-solving/when-stuck/skill.json +9 -0
- package/skills/research/ABOUT.md +20 -0
- package/skills/research/tracing-knowledge-lineages/SKILL.md +241 -0
- package/skills/research/tracing-knowledge-lineages/skill.json +9 -0
- package/skills/setup-skills/SKILL.md +47 -0
- package/skills/testing/condition-based-waiting/SKILL.md +359 -0
- package/skills/testing/condition-based-waiting/example.ts +158 -0
- package/skills/testing/condition-based-waiting/skill.json +12 -0
- package/skills/testing/test-driven-development/SKILL.md +434 -0
- package/skills/testing/test-driven-development/skill.json +9 -0
- package/skills/testing/testing-anti-patterns/SKILL.md +298 -0
- package/skills/testing/testing-anti-patterns/skill.json +9 -0
- package/skills/testing/verification-before-completion/SKILL.md +246 -0
- package/skills/testing/verification-before-completion/skill.json +10 -0
- package/skills/using-a-skill/SKILL.md +101 -0
- package/skills/using-a-skill/skill.json +8 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: when-stuck
|
|
3
|
+
description: Dispatch to the right problem-solving technique based on how you're stuck. Use this skill whenever you hit a wall — code behaving wrong, complexity spiraling, can't find a good approach, assumptions feel forced, unclear how it will scale, or you need to pick the right debugging technique before diving in. Use it proactively before major architecture decisions or when a solution feels like it's fighting you.
|
|
4
|
+
metadata:
|
|
5
|
+
version: "2.0.0"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# When Stuck — Problem-Solving Dispatch
|
|
9
|
+
|
|
10
|
+
## Core Principle
|
|
11
|
+
|
|
12
|
+
Different stuck-types need different techniques. Picking the wrong technique wastes time. This skill helps you identify the right one in under a minute.
|
|
13
|
+
|
|
14
|
+
**Match symptom → technique, then load and follow that skill.**
|
|
15
|
+
|
|
16
|
+
## Stuck-Type → Technique
|
|
17
|
+
|
|
18
|
+
| How You're Stuck | Technique to Use |
|
|
19
|
+
|------------------|-----------------|
|
|
20
|
+
| **Complexity spiraling** — Same thing implemented 5+ ways, growing special cases, each fix reveals a new problem | `simplification-cascades` |
|
|
21
|
+
| **Need innovation** — Conventional solutions feel inadequate, stuck inside one way of thinking, need breakthrough | `collision-zone-thinking` |
|
|
22
|
+
| **Recurring patterns** — Same issue across different domains, reinventing wheels, déjà vu in problem-solving | `meta-pattern-recognition` |
|
|
23
|
+
| **Forced by assumptions** — "Must be done this way," solution fights the system, can't question the premise | `inversion-exercise` |
|
|
24
|
+
| **Scale uncertainty** — Unsure it'll hold at production, edge cases unclear, architecture decisions without load data | `scale-game` |
|
|
25
|
+
| **Code broken** — Wrong behavior, test failing, unexpected output, bug with unknown root cause | `systematic-debugging` |
|
|
26
|
+
| **Symptom clear, cause hidden** — Error is deep in the call chain, fix locations but not the origin | `root-cause-tracing` |
|
|
27
|
+
| **Multiple independent problems** — Separate failing tests, parallel research questions, independent subsystems | `dispatching-parallel-agents` |
|
|
28
|
+
| **Starting fresh, scope unclear** — New feature, unclear requirements, don't know what to build | `brainstorming` |
|
|
29
|
+
| **Have a plan, need execution** — Know what to build, complex multi-step implementation ahead | `writing-plans` |
|
|
30
|
+
|
|
31
|
+
## How to Identify Your Stuck-Type
|
|
32
|
+
|
|
33
|
+
If the symptom isn't obvious, ask these questions:
|
|
34
|
+
|
|
35
|
+
1. **Is something broken?** → `systematic-debugging` (always start here for bugs)
|
|
36
|
+
2. **Is there too much code doing similar things?** → `simplification-cascades`
|
|
37
|
+
3. **Does the solution feel forced or fight the codebase?** → `inversion-exercise`
|
|
38
|
+
4. **Does nothing in this domain work?** → `collision-zone-thinking` (leave the domain)
|
|
39
|
+
5. **Have I seen this shape before in other contexts?** → `meta-pattern-recognition`
|
|
40
|
+
6. **Do I not know if it'll hold under load?** → `scale-game`
|
|
41
|
+
7. **Is the problem actually several independent things?** → `dispatching-parallel-agents`
|
|
42
|
+
|
|
43
|
+
## Proactive Use (Not Just When Stuck)
|
|
44
|
+
|
|
45
|
+
Some techniques should be used *before* you're stuck:
|
|
46
|
+
|
|
47
|
+
- **Before major architecture decisions** → `inversion-exercise` (pre-mortem: "how would this fail?")
|
|
48
|
+
- **Before implementing a complex feature** → `brainstorming` then `writing-plans`
|
|
49
|
+
- **Before committing to a design at scale** → `scale-game`
|
|
50
|
+
- **When a config file or handler list keeps growing** → `simplification-cascades`
|
|
51
|
+
|
|
52
|
+
## Combining Techniques
|
|
53
|
+
|
|
54
|
+
Some problems need more than one:
|
|
55
|
+
|
|
56
|
+
| Combination | When to Use |
|
|
57
|
+
|-------------|-------------|
|
|
58
|
+
| `systematic-debugging` → `root-cause-tracing` | Bug found, but fix location is far from origin |
|
|
59
|
+
| `simplification-cascades` + `meta-pattern-recognition` | Find the recurring pattern, then collapse all instances |
|
|
60
|
+
| `collision-zone-thinking` + `inversion-exercise` | Force a new metaphor, then stress-test its assumptions |
|
|
61
|
+
| `scale-game` + `simplification-cascades` | Extremes reveal what to eliminate |
|
|
62
|
+
| `inversion-exercise` + `scale-game` | "How does this fail?" × "At what scale?" |
|
|
63
|
+
|
|
64
|
+
## If Still Stuck After First Technique
|
|
65
|
+
|
|
66
|
+
1. Try a different technique from the table — wrong diagnosis is common
|
|
67
|
+
2. Combine two techniques (see above)
|
|
68
|
+
3. If 3+ fixes have failed for a bug → this is an architectural problem, not a debugging problem. Use `inversion-exercise` to question the design.
|
|
69
|
+
4. Step back: is the problem statement itself wrong? → `brainstorming`
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Research Skills - Attribution
|
|
2
|
+
|
|
3
|
+
This skill was derived from agent patterns in the [Amplifier](https://github.com/microsoft/amplifier) project.
|
|
4
|
+
|
|
5
|
+
**Source Repository:**
|
|
6
|
+
- Name: Amplifier
|
|
7
|
+
- URL: https://github.com/microsoft/amplifier
|
|
8
|
+
- Commit: 2adb63f858e7d760e188197c8e8d4c1ef721e2a6
|
|
9
|
+
- Date: 2025-10-10
|
|
10
|
+
|
|
11
|
+
## Skills Derived from Amplifier Agents
|
|
12
|
+
|
|
13
|
+
**From knowledge-archaeologist agent:**
|
|
14
|
+
- tracing-knowledge-lineages - Understanding how ideas evolved over time to find old solutions for new problems and avoid repeating past failures
|
|
15
|
+
|
|
16
|
+
## What Was Adapted
|
|
17
|
+
|
|
18
|
+
The knowledge-archaeologist agent excels at temporal analysis of knowledge evolution, paradigm shift documentation, and preserving the "fossil record" of ideas. This skill extracts the core research techniques for understanding why current approaches exist before proposing changes.
|
|
19
|
+
|
|
20
|
+
Adapted with practical search strategies (decision records, git archaeology, conversation history) and scoped for mature codebases (explicitly notes to skip for greenfield projects).
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tracing-knowledge-lineages
|
|
3
|
+
description: "Trace the historical lineage of technical ideas, patterns, and architectures to rediscover proven solutions, understand WHY current approaches exist, and avoid repeating failures. Use when you encounter 'why do we do it this way?', 'is this a new problem?', 'what has been tried before?', 'has this pattern emerged before?', or when designing systems that resemble something from the past."
|
|
4
|
+
metadata:
|
|
5
|
+
category: research
|
|
6
|
+
version: 1.2.0
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Tracing Knowledge Lineages
|
|
10
|
+
|
|
11
|
+
## Why This Matters
|
|
12
|
+
|
|
13
|
+
Every technical decision carries invisible weight from the past. When you skip lineage tracing:
|
|
14
|
+
|
|
15
|
+
- You reinvent failed approaches because you don't know they failed
|
|
16
|
+
- You miss proven patterns that already solved your exact problem
|
|
17
|
+
- You don't understand WHY the current approach exists, so you can't safely deviate from it
|
|
18
|
+
- You create architecture that repeats historical mistakes your predecessors already paid for
|
|
19
|
+
|
|
20
|
+
The goal isn't to be constrained by history — it's to be *informed* by it. Knowing the lineage lets you deviate deliberately rather than ignorantly.
|
|
21
|
+
|
|
22
|
+
## When to Trace Lineages
|
|
23
|
+
|
|
24
|
+
**Always trace when:**
|
|
25
|
+
- You're designing something and someone says "isn't this like X?"
|
|
26
|
+
- You're questioning why something is done a certain way
|
|
27
|
+
- You're proposing to remove or replace an established pattern
|
|
28
|
+
- You're encountering a problem that "feels old"
|
|
29
|
+
- You're evaluating a technology that claims to be new
|
|
30
|
+
|
|
31
|
+
**Quick trace (5 minutes):** Is this pattern familiar? → Search for historical names → Find 2–3 examples → Note outcomes
|
|
32
|
+
|
|
33
|
+
**Deep trace (30+ minutes):** Before architectural decisions, major refactors, or when the quick trace surfaces surprising history
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## The Four Core Techniques
|
|
38
|
+
|
|
39
|
+
### 1. Decision Archaeology
|
|
40
|
+
|
|
41
|
+
Excavate the reasoning behind existing choices — not just what was decided, but why, and what alternatives were rejected.
|
|
42
|
+
|
|
43
|
+
**Sources to mine:**
|
|
44
|
+
- `git log --all --grep="why\|decision\|chose\|considered\|rejected"` — look for commit messages explaining reasoning
|
|
45
|
+
- Architecture Decision Records (ADRs), RFCs, and design docs in `/docs`, `/adr`, `/rfcs`
|
|
46
|
+
- Ticket trackers (JIRA, Linear, GitHub Issues) — search for the feature name + "alternative" or "rejected"
|
|
47
|
+
- Team Slack/Discord history — search around the dates of significant commits
|
|
48
|
+
- PR descriptions and review comments: `git log --merges --format="%H %s" | head -50`, then check PRs
|
|
49
|
+
|
|
50
|
+
**What to capture:**
|
|
51
|
+
- The alternatives that were *considered but rejected* — these are as valuable as what was chosen
|
|
52
|
+
- The constraints that shaped the decision (team size, deadline, scale, tooling available then)
|
|
53
|
+
- Whether those constraints still apply today
|
|
54
|
+
|
|
55
|
+
**Probe questions:**
|
|
56
|
+
> "What problem was this solving when it was introduced?"
|
|
57
|
+
> "What was the runner-up solution, and why was it rejected?"
|
|
58
|
+
> "What has changed since this decision was made?"
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### 2. Failed Attempt Analysis
|
|
63
|
+
|
|
64
|
+
Failures are the most valuable and most hidden part of technical history. They rarely get documented, but they repeat.
|
|
65
|
+
|
|
66
|
+
**Finding hidden failures:**
|
|
67
|
+
- Reverted commits: `git log --all --diff-filter=R` or search for "revert" in commit history
|
|
68
|
+
- Short-lived branches: `git branch -r | xargs -I{} git log --oneline -1 {}` — branches that were created and abandoned
|
|
69
|
+
- Half-migrated code: look for dual implementations (old + new living side by side)
|
|
70
|
+
- "TODO: remove this once X" comments that were never removed
|
|
71
|
+
- Changelog entries that disappeared in later versions
|
|
72
|
+
|
|
73
|
+
**The failure taxonomy:**
|
|
74
|
+
| Type | Signal | What to learn |
|
|
75
|
+
|------|--------|---------------|
|
|
76
|
+
| Performance failure | Reverted optimization, "too slow" in commits | What the scale thresholds were |
|
|
77
|
+
| Complexity failure | "Simplified", "removed abstraction" | Where the abstraction broke down |
|
|
78
|
+
| Adoption failure | Feature removed, flag disabled | What made it hard to use |
|
|
79
|
+
| Timing failure | "Premature", "not ready" | What prerequisites were missing |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### 3. Revival Detection
|
|
84
|
+
|
|
85
|
+
Old patterns resurface under new names. Recognizing revivals lets you access 30+ years of operational experience immediately.
|
|
86
|
+
|
|
87
|
+
**Technically accurate revival lineages:**
|
|
88
|
+
|
|
89
|
+
| Modern Pattern | Historical Ancestor | What the revival added |
|
|
90
|
+
|---------------|--------------------|-----------------------|
|
|
91
|
+
| Serverless Functions | Time-sharing systems (1960s) + Unix daemons | Elastic billing, managed infra |
|
|
92
|
+
| GraphQL | SGML/XQL query languages + SOAP/WSDL | Typed schema, client-driven queries |
|
|
93
|
+
| NoSQL Document Stores | IMS hierarchical DB + CODASYL network DBs (1970s) | Horizontal scale, flexible schema |
|
|
94
|
+
| Microservices | CORBA/SOA (1990s–2000s) | Lightweight protocols, containers |
|
|
95
|
+
| Edge Computing | CDN + Akamai ESI (early 2000s) | Full compute, not just caching |
|
|
96
|
+
| Server Components (React) | Server-side rendering + JSP/PHP | Component model + streaming |
|
|
97
|
+
| Event Sourcing | Append-only ledgers + audit logs | Projections, temporal queries |
|
|
98
|
+
| Infrastructure as Code | LISP machine system images + Puppet/Chef | Declarative, version-controlled |
|
|
99
|
+
|
|
100
|
+
**Revival research steps:**
|
|
101
|
+
1. Name the modern pattern precisely
|
|
102
|
+
2. Ask: "what did this replace, and what did the replacement itself replace?"
|
|
103
|
+
3. Search: `[pattern name] history site:lobste.rs OR site:news.ycombinator.com`
|
|
104
|
+
4. Look for talks titled "X considered harmful" or "the return of Y"
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### 4. Paradigm Shift Mapping
|
|
109
|
+
|
|
110
|
+
Understand what changed — constraints, tooling, scale, understanding — that made old approaches viable again or newly obsolete.
|
|
111
|
+
|
|
112
|
+
**The shift template:**
|
|
113
|
+
```
|
|
114
|
+
Old constraint: [what made X unworkable before]
|
|
115
|
+
New condition: [what changed]
|
|
116
|
+
Therefore: [why X is viable/necessary now]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Example:**
|
|
120
|
+
```
|
|
121
|
+
Old constraint: RAM was expensive; storing state in memory meant high cost
|
|
122
|
+
New condition: RAM is effectively free at the scale most apps run
|
|
123
|
+
Therefore: In-memory state machines (XState, Zustand) beat complex DB state management
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Constraint categories to check:**
|
|
127
|
+
- **Cost**: storage, compute, bandwidth costs have changed dramatically
|
|
128
|
+
- **Speed**: network latency, CPU speed, disk I/O profiles
|
|
129
|
+
- **Scale**: how many users, requests, data volume
|
|
130
|
+
- **Tooling**: what primitives are now available (containers, managed databases, type systems)
|
|
131
|
+
- **Team**: what skills are now common vs. rare
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Search Strategy
|
|
136
|
+
|
|
137
|
+
### Code & Version Control
|
|
138
|
+
```bash
|
|
139
|
+
# Commits explaining reasoning
|
|
140
|
+
git log --all --grep="because\|reason\|trade-off\|instead of\|considered"
|
|
141
|
+
|
|
142
|
+
# Reverted changes (hidden failures)
|
|
143
|
+
git log --all --grep="[Rr]evert" --oneline
|
|
144
|
+
|
|
145
|
+
# Find old implementations
|
|
146
|
+
git log --all --full-history -- "**/old-*" "**/deprecated-*" "**/legacy-*"
|
|
147
|
+
|
|
148
|
+
# When was this pattern introduced?
|
|
149
|
+
git log -S "pattern_name" --oneline
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Documentation & Issues
|
|
153
|
+
- GitHub/GitLab: search `repo:org/name "why" OR "reason" OR "considered"`
|
|
154
|
+
- JIRA/Linear: filter by date range around when the pattern was introduced
|
|
155
|
+
- Confluence/Notion: search for the component name + "decision" or "RFC"
|
|
156
|
+
|
|
157
|
+
### Web Archaeology
|
|
158
|
+
- `site:news.ycombinator.com "[technology name]"` — HN discussions often contain expert history
|
|
159
|
+
- `site:lobste.rs "[technology name]"` — deeper technical discussions
|
|
160
|
+
- ACM Digital Library / IEEE Xplore for academic lineage
|
|
161
|
+
- The Wayback Machine for documentation of dead projects
|
|
162
|
+
- Wikipedia revision history for contested technical decisions
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Recognizing Lineage Signals
|
|
167
|
+
|
|
168
|
+
**In code:**
|
|
169
|
+
- Comments starting with "NB:", "NOTE:", "FIXME:", "HACK:", "WARNING:" — often explain constraints
|
|
170
|
+
- Unusually defensive code in an otherwise simple module
|
|
171
|
+
- Abstraction layers that wrap a single thing
|
|
172
|
+
- Feature flags that have been "temporary" for years
|
|
173
|
+
|
|
174
|
+
**In conversations:**
|
|
175
|
+
- "We tried that before" — ALWAYS follow up: "What happened?"
|
|
176
|
+
- "That won't work here" — ask for the specific failure scenario
|
|
177
|
+
- "We have reasons" — that phrase usually means there's archaeology to do
|
|
178
|
+
|
|
179
|
+
**In architecture:**
|
|
180
|
+
- Two implementations of the same thing existing simultaneously
|
|
181
|
+
- Naming like `*_v2`, `*_new`, `*_refactored`
|
|
182
|
+
- Explicit "Do Not Use" warnings pointing to another implementation
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Synthesizing Your Findings
|
|
187
|
+
|
|
188
|
+
A lineage trace is only valuable if it produces actionable insight. Structure your output:
|
|
189
|
+
|
|
190
|
+
```markdown
|
|
191
|
+
## Lineage: [Pattern/Decision Name]
|
|
192
|
+
|
|
193
|
+
**What it is now:** [one sentence]
|
|
194
|
+
|
|
195
|
+
**Historical origin:** [oldest known ancestor + approximate era]
|
|
196
|
+
|
|
197
|
+
**Key evolution steps:**
|
|
198
|
+
1. [era] — [what existed and what problem it solved]
|
|
199
|
+
2. [era] — [what changed and why]
|
|
200
|
+
3. [current] — [how we got here]
|
|
201
|
+
|
|
202
|
+
**Failed attempts along the way:**
|
|
203
|
+
- [attempt] failed because [reason] — still relevant because [implication]
|
|
204
|
+
|
|
205
|
+
**What the history tells us:**
|
|
206
|
+
- The core problem being solved is [X], not [Y]
|
|
207
|
+
- This approach works when [conditions]; breaks when [other conditions]
|
|
208
|
+
- The constraint that shaped this was [Z] — that constraint [still applies / no longer applies]
|
|
209
|
+
|
|
210
|
+
**Implication for current work:**
|
|
211
|
+
[One concrete decision or caution derived from the lineage]
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Informed Deviation: Using History to Break from It
|
|
217
|
+
|
|
218
|
+
Knowing the lineage doesn't mean being constrained by it — it means you can break from it *deliberately*. Before deviating from an established pattern:
|
|
219
|
+
|
|
220
|
+
1. **Name the constraint that shaped the original decision**
|
|
221
|
+
- "This was built when we had X constraint"
|
|
222
|
+
2. **Verify whether that constraint still applies**
|
|
223
|
+
- "That constraint no longer applies because Y"
|
|
224
|
+
3. **Check if the deviation was tried before**
|
|
225
|
+
- "This exact deviation was tried in [branch/ticket/year] and failed because Z"
|
|
226
|
+
4. **State your deviation explicitly**
|
|
227
|
+
- "We are intentionally deviating from the historical pattern because [conditions changed]"
|
|
228
|
+
|
|
229
|
+
The trap to avoid: "We don't need to do it that way anymore" without knowing *why* it was done that way in the first place.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Anti-Patterns
|
|
234
|
+
|
|
235
|
+
| Anti-pattern | What it looks like | The fix |
|
|
236
|
+
|---|---|---|
|
|
237
|
+
| **Present bias** | "That's old, we don't need to learn from it" | Old failures are especially relevant — same problems, different names |
|
|
238
|
+
| **Success bias** | Only tracing the winning path | Failed attempts teach more than successes |
|
|
239
|
+
| **Shallow attribution** | "This is like X" without understanding WHY | Trace through to first principles |
|
|
240
|
+
| **Archive paralysis** | Spending days on lineage for a one-day task | Time-box: quick trace = 5 min, deep trace = 30 min |
|
|
241
|
+
| **Context stripping** | "They tried X and it failed" without the why | Always capture the conditions under which it failed |
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: setup-skills
|
|
3
|
+
description: Run superpowers-agent setup-skills to initialize the skills infrastructure for a project. Use whenever starting a new project with AI agents, when skills symlinks are missing, when AGENTS.md lacks skills configuration, when a user asks to "set up skills", "install skills", "bootstrap skills", or "initialize superpowers". Also use when skills aren't being discovered or when you're about to create project-specific skills and the infrastructure doesn't exist yet. If there's any chance the project hasn't been set up for skills yet, run this skill.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Setup Skills
|
|
7
|
+
|
|
8
|
+
This skill does one thing: run `superpowers-agent setup-skills` and follow the output it gives you exactly.
|
|
9
|
+
|
|
10
|
+
The command sets up the full skills infrastructure for a project — creating `.agents/`, symlinks for each AI platform, and updating `AGENTS.md` — and its output tells you everything that happened and what to do next.
|
|
11
|
+
|
|
12
|
+
## Run the Command
|
|
13
|
+
|
|
14
|
+
From the project root:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
superpowers-agent setup-skills
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Follow the Output Exactly
|
|
21
|
+
|
|
22
|
+
The command output is authoritative. Read it, act on it, and do not skip any steps it prescribes. It adapts to the platforms detected in your project and tells you precisely what was created, updated, or skipped.
|
|
23
|
+
|
|
24
|
+
If the command prints follow-up instructions, complete them before continuing with your task.
|
|
25
|
+
|
|
26
|
+
## If superpowers-agent Is Not Found
|
|
27
|
+
|
|
28
|
+
Install it first, then rerun:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
@npm install -g @complexthings/superpowers-agent
|
|
32
|
+
superpowers-agent setup-skills
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## After Setup
|
|
36
|
+
|
|
37
|
+
Project-specific skills belong in `.agents/skills/`. All AI agents working in the project discover them automatically via the symlinks the command created.
|
|
38
|
+
|
|
39
|
+
To verify:
|
|
40
|
+
```bash
|
|
41
|
+
superpowers-agent find-skills
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Related Skills
|
|
45
|
+
|
|
46
|
+
- **finding-skills** — Discover available skills after setup
|
|
47
|
+
- **using-superpowers** — How the full skills system works
|