@complexthings/superpowers-agent 9.2.0 → 10.0.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/skills/claude-handoff/SKILL.md +18 -0
- package/.agents/skills/code-review/SKILL.md +89 -0
- package/.agents/skills/{improve-codebase-architecture → codebase-design}/DEEPENING.md +1 -1
- package/.agents/skills/{improve-codebase-architecture/INTERFACE-DESIGN.md → codebase-design/DESIGN-IT-TWICE.md} +3 -3
- package/.agents/skills/codebase-design/SKILL.md +114 -0
- package/.agents/skills/design-an-interface/SKILL.md +94 -0
- package/.agents/skills/{diagnose → diagnosing-bugs}/SKILL.md +29 -12
- package/.agents/skills/{grill-with-docs → domain-modeling}/CONTEXT-FORMAT.md +1 -4
- package/.agents/skills/domain-modeling/SKILL.md +74 -0
- package/.agents/skills/fable-mode/SKILL.md +95 -0
- package/.agents/skills/git-guardrails-claude-code/SKILL.md +95 -0
- package/.agents/skills/git-guardrails-claude-code/scripts/block-dangerous-git.sh +25 -0
- package/.agents/skills/grill-me/SKILL.md +7 -0
- package/.agents/skills/grill-with-docs/SKILL.md +3 -86
- package/.agents/skills/grilling/SKILL.md +14 -0
- package/.agents/skills/handoff/SKILL.md +2 -1
- package/.agents/skills/i-have-adhd/SKILL.md +120 -0
- package/.agents/skills/implement/SKILL.md +11 -0
- package/.agents/skills/improve-codebase-architecture/HTML-REPORT.md +3 -3
- package/.agents/skills/improve-codebase-architecture/SKILL.md +13 -28
- package/.agents/skills/loop-me/SKILL.md +32 -0
- package/.agents/skills/prototype/SKILL.md +1 -1
- package/.agents/skills/qa/SKILL.md +130 -0
- package/.agents/skills/request-refactor-plan/SKILL.md +68 -0
- package/.agents/skills/research/SKILL.md +12 -0
- package/.agents/skills/resolving-merge-conflicts/SKILL.md +14 -0
- package/.agents/skills/scaffold-exercises/SKILL.md +106 -0
- package/.agents/skills/setup-matt-pocock-skills/SKILL.md +11 -9
- package/.agents/skills/setup-matt-pocock-skills/domain.md +2 -2
- package/.agents/skills/setup-matt-pocock-skills/issue-tracker-github.md +23 -0
- package/.agents/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +23 -0
- package/.agents/skills/setup-matt-pocock-skills/issue-tracker-local.md +11 -0
- package/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/.agents/skills/skill-creator/SKILL.md +485 -0
- package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.agents/skills/skill-creator/references/schemas.md +430 -0
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/.agents/skills/skill-creator/scripts/__pycache__/run_eval.cpython-314.pyc +0 -0
- package/.agents/skills/skill-creator/scripts/__pycache__/utils.cpython-314.pyc +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/.agents/skills/tdd/SKILL.md +17 -90
- package/.agents/skills/tdd/tests.md +16 -0
- package/.agents/skills/teach/GLOSSARY-FORMAT.md +35 -0
- package/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/.agents/skills/teach/MISSION-FORMAT.md +31 -0
- package/.agents/skills/teach/RESOURCES-FORMAT.md +32 -0
- package/.agents/skills/teach/SKILL.md +140 -0
- package/.agents/skills/{to-prd → to-spec}/SKILL.md +11 -12
- package/.agents/skills/to-tickets/SKILL.md +114 -0
- package/.agents/skills/triage/AGENT-BRIEF.md +40 -1
- package/.agents/skills/triage/OUT-OF-SCOPE.md +5 -1
- package/.agents/skills/triage/SKILL.md +20 -11
- package/.agents/skills/wayfinder/SKILL.md +127 -0
- package/.agents/skills/writing-great-skills/GLOSSARY.md +201 -0
- package/.agents/skills/writing-great-skills/SKILL.md +83 -0
- package/.agents/superpowers-agent +99 -218
- package/.agents/superpowers-bootstrap.md +3 -3
- package/.agents/templates/AGENTS.md.template +11 -34
- package/.agents/templates/SUPERPOWERS.md.template +4 -4
- package/.github/copilot-instructions.md +33 -1
- package/.github/hooks/rtk-rewrite.json +22 -0
- package/AGENTS.md +32 -36
- package/README.md +63 -198
- package/package.json +1 -1
- package/skills/collaboration/brainstorming/SKILL.md +39 -139
- package/skills/collaboration/brainstorming/skill.json +2 -2
- package/skills/collaboration/leveraging-cli-tools/SKILL.md +70 -71
- package/skills/collaboration/leveraging-cli-tools/references/copilot-instructions.md +30 -0
- package/skills/collaboration/leveraging-cli-tools/scripts/setup-ponytail.sh +185 -0
- package/skills/collaboration/leveraging-cli-tools/scripts/setup-rtk.sh +217 -0
- package/skills/collaboration/leveraging-cli-tools/skill.json +1 -1
- package/skills/meta/create-skill-json/SKILL.md +4 -4
- package/skills/meta/create-skill-json/skill.json +1 -1
- package/skills/meta/create-skill-json/test-scenarios.md +1 -1
- package/skills/setup-skills/SKILL.md +18 -11
- package/skills/setup-skills/skill.json +8 -0
- package/.agents/skills/caveman/SKILL.md +0 -49
- package/.agents/skills/improve-codebase-architecture/LANGUAGE.md +0 -53
- package/.agents/skills/karpathy-guidelines/SKILL.md +0 -75
- package/.agents/skills/review/SKILL.md +0 -78
- package/.agents/skills/tdd/deep-modules.md +0 -33
- package/.agents/skills/tdd/interface-design.md +0 -31
- package/.agents/skills/tdd/refactoring.md +0 -10
- package/.agents/skills/to-issues/SKILL.md +0 -83
- package/.agents/skills/zoom-out/SKILL.md +0 -7
- package/skills/architecture/ABOUT.md +0 -20
- package/skills/architecture/preserving-productive-tensions/SKILL.md +0 -146
- package/skills/architecture/preserving-productive-tensions/skill.json +0 -9
- package/skills/collaboration/brainstorming/spec-document-reviewer-prompt.md +0 -50
- package/skills/collaboration/brainstorming/visual-companion.md +0 -277
- package/skills/collaboration/dispatching-parallel-agents/SKILL.md +0 -174
- package/skills/collaboration/dispatching-parallel-agents/skill.json +0 -9
- package/skills/collaboration/executing-plans/SKILL.md +0 -130
- package/skills/collaboration/executing-plans/skill.json +0 -9
- package/skills/collaboration/finishing-a-development-branch/SKILL.md +0 -261
- package/skills/collaboration/finishing-a-development-branch/skill.json +0 -9
- package/skills/collaboration/leveraging-cli-tools/scripts/slim.py +0 -167
- package/skills/collaboration/receiving-code-review/SKILL.md +0 -233
- package/skills/collaboration/receiving-code-review/skill.json +0 -9
- package/skills/collaboration/requesting-code-review/SKILL.md +0 -110
- package/skills/collaboration/requesting-code-review/code-reviewer.md +0 -146
- package/skills/collaboration/requesting-code-review/skill.json +0 -12
- package/skills/collaboration/subagent-driven-development/SKILL.md +0 -255
- package/skills/collaboration/subagent-driven-development/code-quality-reviewer-prompt.md +0 -26
- package/skills/collaboration/subagent-driven-development/implementer-prompt.md +0 -113
- package/skills/collaboration/subagent-driven-development/skill.json +0 -15
- package/skills/collaboration/subagent-driven-development/spec-reviewer-prompt.md +0 -61
- package/skills/collaboration/using-git-worktrees/SKILL.md +0 -366
- package/skills/collaboration/using-git-worktrees/skill.json +0 -9
- package/skills/collaboration/writing-plans/SKILL.md +0 -121
- package/skills/collaboration/writing-plans/plan-document-reviewer-prompt.md +0 -52
- package/skills/collaboration/writing-plans/skill.json +0 -9
- package/skills/debugging/defense-in-depth/SKILL.md +0 -380
- package/skills/debugging/defense-in-depth/skill.json +0 -9
- package/skills/debugging/root-cause-tracing/SKILL.md +0 -361
- package/skills/debugging/root-cause-tracing/find-polluter.sh +0 -63
- package/skills/debugging/root-cause-tracing/skill.json +0 -12
- package/skills/debugging/systematic-debugging/SKILL.md +0 -299
- package/skills/debugging/systematic-debugging/condition-based-waiting-example.ts +0 -158
- package/skills/debugging/systematic-debugging/condition-based-waiting.md +0 -115
- package/skills/debugging/systematic-debugging/defense-in-depth.md +0 -122
- package/skills/debugging/systematic-debugging/find-polluter.sh +0 -63
- package/skills/debugging/systematic-debugging/root-cause-tracing.md +0 -169
- package/skills/debugging/systematic-debugging/skill.json +0 -9
- package/skills/debugging/systematic-debugging/test-academic.md +0 -14
- package/skills/debugging/systematic-debugging/test-pressure-1.md +0 -58
- package/skills/debugging/systematic-debugging/test-pressure-2.md +0 -68
- package/skills/debugging/systematic-debugging/test-pressure-3.md +0 -69
- package/skills/debugging/verification-before-completion/SKILL.md +0 -143
- package/skills/debugging/verification-before-completion/skill.json +0 -9
- package/skills/finding-skills/SKILL.md +0 -101
- package/skills/finding-skills/skill.json +0 -8
- package/skills/meta/create-agents-md/SKILL.md +0 -182
- package/skills/meta/create-agents-md/skill.json +0 -9
- package/skills/meta/creating-prompts/SKILL.md +0 -349
- package/skills/meta/creating-prompts/examples/do-example.md +0 -65
- package/skills/meta/creating-prompts/examples/plan-example.md +0 -75
- package/skills/meta/creating-prompts/examples/refine-example.md +0 -65
- package/skills/meta/creating-prompts/examples/research-example.md +0 -63
- package/skills/meta/creating-prompts/scripts/get-next-number.sh +0 -27
- package/skills/meta/creating-prompts/skill.json +0 -20
- package/skills/meta/creating-prompts/templates/do-template.md +0 -59
- package/skills/meta/creating-prompts/templates/plan-template.md +0 -58
- package/skills/meta/creating-prompts/templates/refine-template.md +0 -54
- package/skills/meta/creating-prompts/templates/research-template.md +0 -56
- package/skills/meta/using-superpowers/SKILL.md +0 -108
- package/skills/meta/using-superpowers/skill.json +0 -5
- package/skills/meta/writing-prompts/SKILL.md +0 -122
- package/skills/meta/writing-prompts/references/platforms.md +0 -114
- package/skills/meta/writing-prompts/skill.json +0 -9
- package/skills/problem-solving/ABOUT.md +0 -40
- package/skills/problem-solving/collision-zone-thinking/SKILL.md +0 -188
- package/skills/problem-solving/collision-zone-thinking/references/historical-examples.md +0 -393
- package/skills/problem-solving/collision-zone-thinking/skill.json +0 -9
- package/skills/problem-solving/inversion-exercise/SKILL.md +0 -174
- package/skills/problem-solving/inversion-exercise/skill.json +0 -9
- package/skills/problem-solving/meta-pattern-recognition/SKILL.md +0 -116
- package/skills/problem-solving/meta-pattern-recognition/skill.json +0 -9
- package/skills/problem-solving/scale-game/SKILL.md +0 -222
- package/skills/problem-solving/scale-game/skill.json +0 -9
- package/skills/problem-solving/simplification-cascades/SKILL.md +0 -113
- package/skills/problem-solving/simplification-cascades/skill.json +0 -9
- package/skills/problem-solving/when-stuck/SKILL.md +0 -69
- package/skills/problem-solving/when-stuck/skill.json +0 -9
- package/skills/research/ABOUT.md +0 -20
- package/skills/research/tracing-knowledge-lineages/SKILL.md +0 -241
- package/skills/research/tracing-knowledge-lineages/skill.json +0 -9
- package/skills/testing/condition-based-waiting/SKILL.md +0 -359
- package/skills/testing/condition-based-waiting/example.ts +0 -158
- package/skills/testing/condition-based-waiting/skill.json +0 -12
- package/skills/testing/test-driven-development/SKILL.md +0 -434
- package/skills/testing/test-driven-development/skill.json +0 -9
- package/skills/testing/testing-anti-patterns/SKILL.md +0 -298
- package/skills/testing/testing-anti-patterns/skill.json +0 -9
- package/skills/testing/verification-before-completion/SKILL.md +0 -246
- package/skills/testing/verification-before-completion/skill.json +0 -10
- package/skills/using-a-skill/SKILL.md +0 -101
- package/skills/using-a-skill/skill.json +0 -8
- /package/.agents/skills/{diagnose → diagnosing-bugs}/scripts/hitl-loop.template.sh +0 -0
- /package/.agents/skills/{grill-with-docs → domain-modeling}/ADR-FORMAT.md +0 -0
|
@@ -127,7 +127,7 @@ Aliases allow users to reference the skill with shorter names.
|
|
|
127
127
|
]
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
-
**Optional:** Add a well-known abbreviation as a third alias
|
|
130
|
+
**Optional:** Add a well-known abbreviation as a third alias only when it is clearly recognized — don't invent aliases.
|
|
131
131
|
|
|
132
132
|
**Do NOT add random synonyms** — stick to the standard two aliases unless an obvious abbreviation exists.
|
|
133
133
|
|
|
@@ -244,7 +244,7 @@ metadata:
|
|
|
244
244
|
- ❌ `keyConcepts` - Document in SKILL.md content
|
|
245
245
|
- ❌ `overview` - Document in SKILL.md content
|
|
246
246
|
|
|
247
|
-
### Discovery Fields (handled by
|
|
247
|
+
### Discovery Fields (handled by native skill discovery)
|
|
248
248
|
- ❌ `tags` - Use SKILL.md frontmatter fields for search
|
|
249
249
|
- ❌ `keywords` - Use SKILL.md content for search
|
|
250
250
|
- ❌ `triggers` - Use SKILL.md `description` field
|
|
@@ -276,8 +276,8 @@ metadata:
|
|
|
276
276
|
|
|
277
277
|
| Rationalization | Counter |
|
|
278
278
|
|-----------------|---------|
|
|
279
|
-
| "Adding `description` helps with discoverability" | NO. Description is in SKILL.md frontmatter.
|
|
280
|
-
| "`tags` make it easier to categorize and search" | NO.
|
|
279
|
+
| "Adding `description` helps with discoverability" | NO. Description is in SKILL.md frontmatter. Native skill discovery reads it. |
|
|
280
|
+
| "`tags` make it easier to categorize and search" | NO. Native skill discovery uses SKILL.md content and frontmatter. Path already indicates category. |
|
|
281
281
|
| "`capabilities` document what the skill does" | NO. That's what SKILL.md content is for. skill.json is for tooling, not documentation. |
|
|
282
282
|
| "`triggers` help agents know when to use this" | NO. SKILL.md `description` field serves this purpose. Don't duplicate. |
|
|
283
283
|
| "These fields might be useful for future features" | YAGNI violation. No imaginary consumers. Only add fields when tooling actually needs them. |
|
|
@@ -23,7 +23,7 @@ Agent adds fields like: `description`, `tags`, `capabilities`, `triggers`, `keyC
|
|
|
23
23
|
|
|
24
24
|
## Common Rationalizations to Block
|
|
25
25
|
- "Adding description helps with discoverability" → NO, description is in SKILL.md
|
|
26
|
-
- "Tags make it easier to find" → NO,
|
|
26
|
+
- "Tags make it easier to find" → NO, native skill discovery uses SKILL.md frontmatter
|
|
27
27
|
- "Capabilities document what it does" → NO, that's in SKILL.md content
|
|
28
28
|
- "These fields might be useful later" → YAGNI violation
|
|
29
29
|
- "Other tools might use them" → No other tools exist, don't design for imaginary consumers
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: setup-skills
|
|
3
|
-
description: Run superpowers-agent setup-skills to
|
|
3
|
+
description: Run superpowers-agent setup-skills to detect which AI harnesses (Claude Code, GitHub Copilot, OpenCode, Pi, Codex) are present in a project and wire up its skills infrastructure — .agents/skills/, per-harness symlinks, and each harness's instruction file. Use whenever starting a new project with AI agents, when skills symlinks are missing, when AGENTS.md or CLAUDE.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 before creating project-specific skills if the infrastructure doesn't exist yet.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Setup Skills
|
|
7
7
|
|
|
8
8
|
This skill does one thing: run `superpowers-agent setup-skills` and follow the output it gives you exactly.
|
|
9
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
10
|
## Run the Command
|
|
13
11
|
|
|
14
12
|
From the project root:
|
|
@@ -17,18 +15,30 @@ From the project root:
|
|
|
17
15
|
superpowers-agent setup-skills
|
|
18
16
|
```
|
|
19
17
|
|
|
18
|
+
## What the Command Does
|
|
19
|
+
|
|
20
|
+
- Creates `.agents/`, `.agents/skills/`, and `.agents/docs/SUPERPOWERS.md` (the reference doc every generated instruction file links to).
|
|
21
|
+
- Detects harnesses by dot-folder existence or CLI binary on PATH: Claude Code (`.claude`/`claude`), GitHub Copilot (`.github`/`copilot`), OpenCode (`.opencode`/`opencode`), Pi (`.pi`/`pi`), Codex (`.codex`/`codex`).
|
|
22
|
+
- Writes/updates `AGENTS.md` unconditionally (creating it if missing) with tool mappings for Copilot, OpenCode, Pi, and Codex.
|
|
23
|
+
- Updates `CLAUDE.md` in place only if one already exists at the project root or in `.agents/` — it never creates a fresh `CLAUDE.md`.
|
|
24
|
+
- Creates or updates `.github/copilot-instructions.md` only when GitHub Copilot is detected.
|
|
25
|
+
- Keeps exactly one backup per instruction file it touches (dedupes old `*.backup*` files).
|
|
26
|
+
- Symlinks each detected harness's skills dir back to `.agents/skills/`: `.claude/skills`, `.github/skills`, `.opencode/skill` (singular). Pi and Codex read `.agents/skills/` directly — no symlink.
|
|
27
|
+
|
|
20
28
|
## Follow the Output Exactly
|
|
21
29
|
|
|
22
|
-
The command output is authoritative. Read it, act on it, and do not skip any steps it prescribes. It adapts to the
|
|
30
|
+
The command output is authoritative. Read it, act on it, and do not skip any steps it prescribes. It adapts to the harnesses detected in your project and tells you precisely what was created, updated, or skipped.
|
|
23
31
|
|
|
24
32
|
If the command prints follow-up instructions, complete them before continuing with your task.
|
|
25
33
|
|
|
34
|
+
If it fails for any reason other than not-found (e.g. permission denied, partial failure), surface the exact error and stop — do not continue or leave the project half-configured.
|
|
35
|
+
|
|
26
36
|
## If superpowers-agent Is Not Found
|
|
27
37
|
|
|
28
38
|
Install it first, then rerun:
|
|
29
39
|
|
|
30
40
|
```bash
|
|
31
|
-
|
|
41
|
+
npm install -g @complexthings/superpowers-agent
|
|
32
42
|
superpowers-agent setup-skills
|
|
33
43
|
```
|
|
34
44
|
|
|
@@ -36,12 +46,9 @@ superpowers-agent setup-skills
|
|
|
36
46
|
|
|
37
47
|
Project-specific skills belong in `.agents/skills/`. All AI agents working in the project discover them automatically via the symlinks the command created.
|
|
38
48
|
|
|
39
|
-
To verify
|
|
40
|
-
```bash
|
|
41
|
-
superpowers-agent find-skills
|
|
42
|
-
```
|
|
49
|
+
To verify, use your platform's native skill tool and confirm the project skills are available.
|
|
43
50
|
|
|
44
51
|
## Related Skills
|
|
45
52
|
|
|
46
|
-
-
|
|
47
|
-
-
|
|
53
|
+
- Use your platform's native skill tool to discover available skills after setup.
|
|
54
|
+
- Follow your platform's skill guidance for loading and applying them.
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: caveman
|
|
3
|
-
description: >
|
|
4
|
-
Ultra-compressed communication mode. Cuts token usage ~75% by dropping
|
|
5
|
-
filler, articles, and pleasantries while keeping full technical accuracy.
|
|
6
|
-
Use when user says "caveman mode", "talk like caveman", "use caveman",
|
|
7
|
-
"less tokens", "be brief", or invokes /caveman.
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
Respond terse like smart caveman. All technical substance stay. Only fluff die.
|
|
11
|
-
|
|
12
|
-
## Persistence
|
|
13
|
-
|
|
14
|
-
ACTIVE EVERY RESPONSE once triggered. No revert after many turns. No filler drift. Still active if unsure. Off only when user says "stop caveman" or "normal mode".
|
|
15
|
-
|
|
16
|
-
## Rules
|
|
17
|
-
|
|
18
|
-
Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). Abbreviate common terms (DB/auth/config/req/res/fn/impl). Strip conjunctions. Use arrows for causality (X -> Y). One word when one word enough.
|
|
19
|
-
|
|
20
|
-
Technical terms stay exact. Code blocks unchanged. Errors quoted exact.
|
|
21
|
-
|
|
22
|
-
Pattern: `[thing] [action] [reason]. [next step].`
|
|
23
|
-
|
|
24
|
-
Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
|
|
25
|
-
Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
|
|
26
|
-
|
|
27
|
-
### Examples
|
|
28
|
-
|
|
29
|
-
**"Why React component re-render?"**
|
|
30
|
-
|
|
31
|
-
> Inline obj prop -> new ref -> re-render. `useMemo`.
|
|
32
|
-
|
|
33
|
-
**"Explain database connection pooling."**
|
|
34
|
-
|
|
35
|
-
> Pool = reuse DB conn. Skip handshake -> fast under load.
|
|
36
|
-
|
|
37
|
-
## Auto-Clarity Exception
|
|
38
|
-
|
|
39
|
-
Drop caveman temporarily for: security warnings, irreversible action confirmations, multi-step sequences where fragment order risks misread, user asks to clarify or repeats question. Resume caveman after clear part done.
|
|
40
|
-
|
|
41
|
-
Example -- destructive op:
|
|
42
|
-
|
|
43
|
-
> **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.
|
|
44
|
-
>
|
|
45
|
-
> ```sql
|
|
46
|
-
> DROP TABLE users;
|
|
47
|
-
> ```
|
|
48
|
-
>
|
|
49
|
-
> Caveman resume. Verify backup exist first.
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# Language
|
|
2
|
-
|
|
3
|
-
Shared vocabulary for every suggestion this skill makes. Use these terms exactly — don't substitute "component," "service," "API," or "boundary." Consistent language is the whole point.
|
|
4
|
-
|
|
5
|
-
## Terms
|
|
6
|
-
|
|
7
|
-
**Module**
|
|
8
|
-
Anything with an interface and an implementation. Deliberately scale-agnostic — applies equally to a function, class, package, or tier-spanning slice.
|
|
9
|
-
_Avoid_: unit, component, service.
|
|
10
|
-
|
|
11
|
-
**Interface**
|
|
12
|
-
Everything a caller must know to use the module correctly. Includes the type signature, but also invariants, ordering constraints, error modes, required configuration, and performance characteristics.
|
|
13
|
-
_Avoid_: API, signature (too narrow — those refer only to the type-level surface).
|
|
14
|
-
|
|
15
|
-
**Implementation**
|
|
16
|
-
What's inside a module — its body of code. Distinct from **Adapter**: a thing can be a small adapter with a large implementation (a Postgres repo) or a large adapter with a small implementation (an in-memory fake). Reach for "adapter" when the seam is the topic; "implementation" otherwise.
|
|
17
|
-
|
|
18
|
-
**Depth**
|
|
19
|
-
Leverage at the interface — the amount of behaviour a caller (or test) can exercise per unit of interface they have to learn. A module is **deep** when a large amount of behaviour sits behind a small interface. A module is **shallow** when the interface is nearly as complex as the implementation.
|
|
20
|
-
|
|
21
|
-
**Seam** _(from Michael Feathers)_
|
|
22
|
-
A place where you can alter behaviour without editing in that place. The *location* at which a module's interface lives. Choosing where to put the seam is its own design decision, distinct from what goes behind it.
|
|
23
|
-
_Avoid_: boundary (overloaded with DDD's bounded context).
|
|
24
|
-
|
|
25
|
-
**Adapter**
|
|
26
|
-
A concrete thing that satisfies an interface at a seam. Describes *role* (what slot it fills), not substance (what's inside).
|
|
27
|
-
|
|
28
|
-
**Leverage**
|
|
29
|
-
What callers get from depth. More capability per unit of interface they have to learn. One implementation pays back across N call sites and M tests.
|
|
30
|
-
|
|
31
|
-
**Locality**
|
|
32
|
-
What maintainers get from depth. Change, bugs, knowledge, and verification concentrate at one place rather than spreading across callers. Fix once, fixed everywhere.
|
|
33
|
-
|
|
34
|
-
## Principles
|
|
35
|
-
|
|
36
|
-
- **Depth is a property of the interface, not the implementation.** A deep module can be internally composed of small, mockable, swappable parts — they just aren't part of the interface. A module can have **internal seams** (private to its implementation, used by its own tests) as well as the **external seam** at its interface.
|
|
37
|
-
- **The deletion test.** Imagine deleting the module. If complexity vanishes, the module wasn't hiding anything (it was a pass-through). If complexity reappears across N callers, the module was earning its keep.
|
|
38
|
-
- **The interface is the test surface.** Callers and tests cross the same seam. If you want to test *past* the interface, the module is probably the wrong shape.
|
|
39
|
-
- **One adapter means a hypothetical seam. Two adapters means a real one.** Don't introduce a seam unless something actually varies across it.
|
|
40
|
-
|
|
41
|
-
## Relationships
|
|
42
|
-
|
|
43
|
-
- A **Module** has exactly one **Interface** (the surface it presents to callers and tests).
|
|
44
|
-
- **Depth** is a property of a **Module**, measured against its **Interface**.
|
|
45
|
-
- A **Seam** is where a **Module**'s **Interface** lives.
|
|
46
|
-
- An **Adapter** sits at a **Seam** and satisfies the **Interface**.
|
|
47
|
-
- **Depth** produces **Leverage** for callers and **Locality** for maintainers.
|
|
48
|
-
|
|
49
|
-
## Rejected framings
|
|
50
|
-
|
|
51
|
-
- **Depth as ratio of implementation-lines to interface-lines** (Ousterhout): rewards padding the implementation. We use depth-as-leverage instead.
|
|
52
|
-
- **"Interface" as the TypeScript `interface` keyword or a class's public methods**: too narrow — interface here includes every fact a caller must know.
|
|
53
|
-
- **"Boundary"**: overloaded with DDD's bounded context. Say **seam** or **interface**.
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: karpathy-guidelines
|
|
3
|
-
description: Behavioral guardrails against common LLM coding mistakes — overcomplication, sprawling diffs, hidden assumptions, fuzzy success. Use whenever adding a feature, fixing a bug, refactoring, handling an ambiguous request, or planning a multi-step change. Apply even when the path feels obvious, and before writing code for any underspecified ask.
|
|
4
|
-
license: MIT
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Karpathy Guidelines
|
|
8
|
-
|
|
9
|
-
Behavioral guidelines to reduce common LLM coding mistakes, derived from [Andrej Karpathy's observations](https://x.com/karpathy/status/2015883857489522876) on LLM coding pitfalls.
|
|
10
|
-
|
|
11
|
-
**Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment.
|
|
12
|
-
|
|
13
|
-
## 1. Think Before Coding
|
|
14
|
-
|
|
15
|
-
**Don't assume. Don't hide confusion. Surface tradeoffs.**
|
|
16
|
-
|
|
17
|
-
LLMs tend to resolve ambiguity by silently picking the most statistically likely interpretation and proceeding as if it were stated, which buries decisions the user never got to make.
|
|
18
|
-
|
|
19
|
-
Before implementing:
|
|
20
|
-
- State your assumptions explicitly. If uncertain, ask.
|
|
21
|
-
- If multiple interpretations exist, present them - don't pick silently.
|
|
22
|
-
- If a simpler approach exists, say so. Push back when warranted.
|
|
23
|
-
- If something is unclear, stop. Name what's confusing. Ask.
|
|
24
|
-
|
|
25
|
-
## 2. Simplicity First
|
|
26
|
-
|
|
27
|
-
**Minimum code that solves the problem. Nothing speculative.**
|
|
28
|
-
|
|
29
|
-
Models pattern-match toward "complete-looking" solutions seen in training — adding config flags, error branches, and abstractions that match the shape of production code rather than the actual ask.
|
|
30
|
-
|
|
31
|
-
- No features beyond what was asked.
|
|
32
|
-
- No abstractions for single-use code.
|
|
33
|
-
- No "flexibility" or "configurability" that wasn't requested.
|
|
34
|
-
- No error handling for impossible scenarios.
|
|
35
|
-
- If you write 200 lines and it could be 50, rewrite it.
|
|
36
|
-
|
|
37
|
-
Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.
|
|
38
|
-
|
|
39
|
-
## 3. Surgical Changes
|
|
40
|
-
|
|
41
|
-
**Touch only what you must. Clean up only your own mess.**
|
|
42
|
-
|
|
43
|
-
A common failure mode is opportunistic refactoring: while in a file, the model "tidies" adjacent code it judges suboptimal, producing diffs the user can't review against their original intent.
|
|
44
|
-
|
|
45
|
-
When editing existing code:
|
|
46
|
-
- Don't "improve" adjacent code, comments, or formatting.
|
|
47
|
-
- Don't refactor things that aren't broken.
|
|
48
|
-
- Match existing style, even if you'd do it differently.
|
|
49
|
-
- If you notice unrelated dead code, mention it - don't delete it.
|
|
50
|
-
|
|
51
|
-
When your changes create orphans:
|
|
52
|
-
- Remove imports/variables/functions that YOUR changes made unused.
|
|
53
|
-
- Don't remove pre-existing dead code unless asked.
|
|
54
|
-
|
|
55
|
-
The test: Every changed line should trace directly to the user's request.
|
|
56
|
-
|
|
57
|
-
## 4. Goal-Driven Execution
|
|
58
|
-
|
|
59
|
-
**Define success criteria. Loop until verified.**
|
|
60
|
-
|
|
61
|
-
Without an external check, LLMs tend to declare success based on whether the output looks right rather than whether it behaves right, since the training signal rewards plausible-looking completions over verified ones.
|
|
62
|
-
|
|
63
|
-
Transform tasks into verifiable goals:
|
|
64
|
-
- "Add validation" → "Write tests for invalid inputs, then make them pass"
|
|
65
|
-
- "Fix the bug" → "Write a test that reproduces it, then make it pass"
|
|
66
|
-
- "Refactor X" → "Ensure tests pass before and after"
|
|
67
|
-
|
|
68
|
-
For multi-step tasks, state a brief plan:
|
|
69
|
-
```
|
|
70
|
-
1. [Step] → verify: [check]
|
|
71
|
-
2. [Step] → verify: [check]
|
|
72
|
-
3. [Step] → verify: [check]
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: review
|
|
3
|
-
description: Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Review
|
|
7
|
-
|
|
8
|
-
Two-axis review of the diff between `HEAD` and a fixed point the user supplies:
|
|
9
|
-
|
|
10
|
-
- **Standards** — does the code conform to this repo's documented coding standards?
|
|
11
|
-
- **Spec** — does the code faithfully implement the originating issue / PRD / spec?
|
|
12
|
-
|
|
13
|
-
Both axes run as **parallel sub-agents** so they don't pollute each other's context, then this skill aggregates their findings.
|
|
14
|
-
|
|
15
|
-
The issue tracker should have been provided to you — run `/setup-matt-pocock-skills` if `docs/agents/issue-tracker.md` is missing.
|
|
16
|
-
|
|
17
|
-
## Process
|
|
18
|
-
|
|
19
|
-
### 1. Pin the fixed point
|
|
20
|
-
|
|
21
|
-
Whatever the user said is the fixed point — a commit SHA, branch name, tag, `main`, `HEAD~5`, etc. Don't be opinionated; pass it through. If they didn't specify one, ask: "Review against what — a branch, a commit, or `main`?" Don't proceed until you have it.
|
|
22
|
-
|
|
23
|
-
Capture the diff command once: `git diff <fixed-point>...HEAD` (three-dot, so the comparison is against the merge-base). Also note the list of commits via `git log <fixed-point>..HEAD --oneline`.
|
|
24
|
-
|
|
25
|
-
### 2. Identify the spec source
|
|
26
|
-
|
|
27
|
-
Look for the originating spec, in this order:
|
|
28
|
-
|
|
29
|
-
1. Issue references in the commit messages (`#123`, `Closes #45`, GitLab `!67`, etc.) — fetch via the workflow in `docs/agents/issue-tracker.md`.
|
|
30
|
-
2. A path the user passed as an argument.
|
|
31
|
-
3. A PRD/spec file under `docs/`, `specs/`, or `.scratch/` matching the branch name or feature.
|
|
32
|
-
4. If nothing is found, ask the user where the spec is. If they say there isn't one, the **Spec** sub-agent will skip and report "no spec available".
|
|
33
|
-
|
|
34
|
-
### 3. Identify the standards sources
|
|
35
|
-
|
|
36
|
-
Anything in the repo that documents how code should be written. Common locations:
|
|
37
|
-
|
|
38
|
-
- `CLAUDE.md`, `AGENTS.md`
|
|
39
|
-
- `CONTRIBUTING.md`
|
|
40
|
-
- `CONTEXT.md`, `CONTEXT-MAP.md`, per-context `CONTEXT.md` files
|
|
41
|
-
- `docs/adr/` (architectural decisions are standards)
|
|
42
|
-
- `.editorconfig`, `eslint.config.*`, `biome.json`, `prettier.config.*`, `tsconfig.json` (machine-enforced standards — note them but don't re-check what tooling already checks)
|
|
43
|
-
- Any `STYLE.md`, `STANDARDS.md`, `STYLEGUIDE.md`, or similar at the repo root or under `docs/`
|
|
44
|
-
|
|
45
|
-
Collect the list of files. The **Standards** sub-agent will read them.
|
|
46
|
-
|
|
47
|
-
### 4. Spawn both sub-agents in parallel
|
|
48
|
-
|
|
49
|
-
Send a single message with two `Agent` tool calls. Use the `general-purpose` subagent for both.
|
|
50
|
-
|
|
51
|
-
**Standards sub-agent prompt** — include:
|
|
52
|
-
|
|
53
|
-
- The full diff command and commit list.
|
|
54
|
-
- The list of standards-source files you found in step 3.
|
|
55
|
-
- The brief: "Read the standards docs. Then read the diff. Report — per file/hunk where relevant — every place the diff violates a documented standard. Cite the standard (file + the rule). Distinguish hard violations from judgement calls. Skip anything tooling enforces. Under 400 words."
|
|
56
|
-
|
|
57
|
-
**Spec sub-agent prompt** — include:
|
|
58
|
-
|
|
59
|
-
- The diff command and commit list.
|
|
60
|
-
- The path or fetched contents of the spec.
|
|
61
|
-
- The brief: "Read the spec. Then read the diff. Report: (a) requirements the spec asked for that are missing or partial; (b) behaviour in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but where the implementation looks wrong. Quote the spec line for each finding. Under 400 words."
|
|
62
|
-
|
|
63
|
-
If the spec is missing, skip the Spec sub-agent and note this in the final report.
|
|
64
|
-
|
|
65
|
-
### 5. Aggregate
|
|
66
|
-
|
|
67
|
-
Present the two reports under `## Standards` and `## Spec` headings, verbatim or lightly cleaned. Do **not** merge or rerank findings — the two axes are deliberately separate so the user can see them independently.
|
|
68
|
-
|
|
69
|
-
End with a one-line summary: total findings per axis, and the worst single issue (if any) flagged.
|
|
70
|
-
|
|
71
|
-
## Why two axes
|
|
72
|
-
|
|
73
|
-
A change can pass one axis and fail the other:
|
|
74
|
-
|
|
75
|
-
- Code that follows every standard but implements the wrong thing → **Standards pass, Spec fail.**
|
|
76
|
-
- Code that does exactly what the issue asked but breaks the project's conventions → **Spec pass, Standards fail.**
|
|
77
|
-
|
|
78
|
-
Reporting them separately stops one axis from masking the other.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Deep Modules
|
|
2
|
-
|
|
3
|
-
From "A Philosophy of Software Design":
|
|
4
|
-
|
|
5
|
-
**Deep module** = small interface + lots of implementation
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
┌─────────────────────┐
|
|
9
|
-
│ Small Interface │ ← Few methods, simple params
|
|
10
|
-
├─────────────────────┤
|
|
11
|
-
│ │
|
|
12
|
-
│ │
|
|
13
|
-
│ Deep Implementation│ ← Complex logic hidden
|
|
14
|
-
│ │
|
|
15
|
-
│ │
|
|
16
|
-
└─────────────────────┘
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
**Shallow module** = large interface + little implementation (avoid)
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
┌─────────────────────────────────┐
|
|
23
|
-
│ Large Interface │ ← Many methods, complex params
|
|
24
|
-
├─────────────────────────────────┤
|
|
25
|
-
│ Thin Implementation │ ← Just passes through
|
|
26
|
-
└─────────────────────────────────┘
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
When designing interfaces, ask:
|
|
30
|
-
|
|
31
|
-
- Can I reduce the number of methods?
|
|
32
|
-
- Can I simplify the parameters?
|
|
33
|
-
- Can I hide more complexity inside?
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# Interface Design for Testability
|
|
2
|
-
|
|
3
|
-
Good interfaces make testing natural:
|
|
4
|
-
|
|
5
|
-
1. **Accept dependencies, don't create them**
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
// Testable
|
|
9
|
-
function processOrder(order, paymentGateway) {}
|
|
10
|
-
|
|
11
|
-
// Hard to test
|
|
12
|
-
function processOrder(order) {
|
|
13
|
-
const gateway = new StripeGateway();
|
|
14
|
-
}
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
2. **Return results, don't produce side effects**
|
|
18
|
-
|
|
19
|
-
```typescript
|
|
20
|
-
// Testable
|
|
21
|
-
function calculateDiscount(cart): Discount {}
|
|
22
|
-
|
|
23
|
-
// Hard to test
|
|
24
|
-
function applyDiscount(cart): void {
|
|
25
|
-
cart.total -= discount;
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
3. **Small surface area**
|
|
30
|
-
- Fewer methods = fewer tests needed
|
|
31
|
-
- Fewer params = simpler test setup
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Refactor Candidates
|
|
2
|
-
|
|
3
|
-
After TDD cycle, look for:
|
|
4
|
-
|
|
5
|
-
- **Duplication** → Extract function/class
|
|
6
|
-
- **Long methods** → Break into private helpers (keep tests on public interface)
|
|
7
|
-
- **Shallow modules** → Combine or deepen
|
|
8
|
-
- **Feature envy** → Move logic to where data lives
|
|
9
|
-
- **Primitive obsession** → Introduce value objects
|
|
10
|
-
- **Existing code** the new code reveals as problematic
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: to-issues
|
|
3
|
-
description: Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices. Use when user wants to convert a plan into issues, create implementation tickets, or break down work into issues.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# To Issues
|
|
7
|
-
|
|
8
|
-
Break a plan into independently-grabbable issues using vertical slices (tracer bullets).
|
|
9
|
-
|
|
10
|
-
The issue tracker and triage label vocabulary should have been provided to you — run `/setup-matt-pocock-skills` if not.
|
|
11
|
-
|
|
12
|
-
## Process
|
|
13
|
-
|
|
14
|
-
### 1. Gather context
|
|
15
|
-
|
|
16
|
-
Work from whatever is already in the conversation context. If the user passes an issue reference (issue number, URL, or path) as an argument, fetch it from the issue tracker and read its full body and comments.
|
|
17
|
-
|
|
18
|
-
### 2. Explore the codebase (optional)
|
|
19
|
-
|
|
20
|
-
If you have not already explored the codebase, do so to understand the current state of the code. Issue titles and descriptions should use the project's domain glossary vocabulary, and respect ADRs in the area you're touching.
|
|
21
|
-
|
|
22
|
-
### 3. Draft vertical slices
|
|
23
|
-
|
|
24
|
-
Break the plan into **tracer bullet** issues. Each issue is a thin vertical slice that cuts through ALL integration layers end-to-end, NOT a horizontal slice of one layer.
|
|
25
|
-
|
|
26
|
-
Slices may be 'HITL' or 'AFK'. HITL slices require human interaction, such as an architectural decision or a design review. AFK slices can be implemented and merged without human interaction. Prefer AFK over HITL where possible.
|
|
27
|
-
|
|
28
|
-
<vertical-slice-rules>
|
|
29
|
-
- Each slice delivers a narrow but COMPLETE path through every layer (schema, API, UI, tests)
|
|
30
|
-
- A completed slice is demoable or verifiable on its own
|
|
31
|
-
- Prefer many thin slices over few thick ones
|
|
32
|
-
</vertical-slice-rules>
|
|
33
|
-
|
|
34
|
-
### 4. Quiz the user
|
|
35
|
-
|
|
36
|
-
Present the proposed breakdown as a numbered list. For each slice, show:
|
|
37
|
-
|
|
38
|
-
- **Title**: short descriptive name
|
|
39
|
-
- **Type**: HITL / AFK
|
|
40
|
-
- **Blocked by**: which other slices (if any) must complete first
|
|
41
|
-
- **User stories covered**: which user stories this addresses (if the source material has them)
|
|
42
|
-
|
|
43
|
-
Ask the user:
|
|
44
|
-
|
|
45
|
-
- Does the granularity feel right? (too coarse / too fine)
|
|
46
|
-
- Are the dependency relationships correct?
|
|
47
|
-
- Should any slices be merged or split further?
|
|
48
|
-
- Are the correct slices marked as HITL and AFK?
|
|
49
|
-
|
|
50
|
-
Iterate until the user approves the breakdown.
|
|
51
|
-
|
|
52
|
-
### 5. Publish the issues to the issue tracker
|
|
53
|
-
|
|
54
|
-
For each approved slice, publish a new issue to the issue tracker. Use the issue body template below. These issues are considered ready for AFK agents, so publish them with the correct triage label unless instructed otherwise.
|
|
55
|
-
|
|
56
|
-
Publish issues in dependency order (blockers first) so you can reference real issue identifiers in the "Blocked by" field.
|
|
57
|
-
|
|
58
|
-
<issue-template>
|
|
59
|
-
## Parent
|
|
60
|
-
|
|
61
|
-
A reference to the parent issue on the issue tracker (if the source was an existing issue, otherwise omit this section).
|
|
62
|
-
|
|
63
|
-
## What to build
|
|
64
|
-
|
|
65
|
-
A concise description of this vertical slice. Describe the end-to-end behavior, not layer-by-layer implementation.
|
|
66
|
-
|
|
67
|
-
Avoid specific file paths or code snippets — they go stale fast. Exception: if a prototype produced a snippet that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape), inline it here and note briefly that it came from a prototype. Trim to the decision-rich parts — not a working demo, just the important bits.
|
|
68
|
-
|
|
69
|
-
## Acceptance criteria
|
|
70
|
-
|
|
71
|
-
- [ ] Criterion 1
|
|
72
|
-
- [ ] Criterion 2
|
|
73
|
-
- [ ] Criterion 3
|
|
74
|
-
|
|
75
|
-
## Blocked by
|
|
76
|
-
|
|
77
|
-
- A reference to the blocking ticket (if any)
|
|
78
|
-
|
|
79
|
-
Or "None - can start immediately" if no blockers.
|
|
80
|
-
|
|
81
|
-
</issue-template>
|
|
82
|
-
|
|
83
|
-
Do NOT close or modify any parent issue.
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: zoom-out
|
|
3
|
-
description: Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture.
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
I don't know this area of code well. Go up a layer of abstraction. Give me a map of all the relevant modules and callers, using the project's domain glossary vocabulary.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Architecture 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 ambiguity-guardian agent:**
|
|
14
|
-
- preserving-productive-tensions - Recognizing when disagreements reveal valuable context, preserving multiple valid approaches instead of forcing premature resolution
|
|
15
|
-
|
|
16
|
-
## What Was Adapted
|
|
17
|
-
|
|
18
|
-
The ambiguity-guardian agent preserves productive contradictions and navigates uncertainty as valuable features of knowledge. This skill extracts the core pattern-recognition capability: distinguishing when tensions should be preserved (context-dependent trade-offs) vs resolved (clear technical superiority).
|
|
19
|
-
|
|
20
|
-
Adapted as scannable guide with symptom-based triggers ("going back and forth", "keep changing mind") and practical preservation patterns (configuration, parallel implementations, documented trade-offs).
|