@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
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
number: 003
|
|
3
|
-
topic: auth-middleware
|
|
4
|
-
purpose: do
|
|
5
|
-
dependencies: [002]
|
|
6
|
-
created: 2025-11-21
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Auth Middleware - Do
|
|
10
|
-
|
|
11
|
-
<objective>
|
|
12
|
-
Implement JWT authentication middleware for Express API
|
|
13
|
-
|
|
14
|
-
Purpose: Protect API routes from unauthorized access, enable user authentication
|
|
15
|
-
Output: Express middleware function with error handling
|
|
16
|
-
</objective>
|
|
17
|
-
|
|
18
|
-
<context>
|
|
19
|
-
Based on plan: @.agents/prompts/002-auth-plan/auth-plan-output.md
|
|
20
|
-
|
|
21
|
-
Current API structure:
|
|
22
|
-
- Express app in src/server.js
|
|
23
|
-
- Routes in src/routes/
|
|
24
|
-
- Using jose library for JWT (from research)
|
|
25
|
-
</context>
|
|
26
|
-
|
|
27
|
-
<requirements>
|
|
28
|
-
- Verify JWT token from Authorization header
|
|
29
|
-
- Extract user ID from token payload
|
|
30
|
-
- Attach user to request object
|
|
31
|
-
- Return 401 for missing/invalid tokens
|
|
32
|
-
- Return 403 for expired tokens
|
|
33
|
-
- Log authentication failures
|
|
34
|
-
</requirements>
|
|
35
|
-
|
|
36
|
-
<implementation>
|
|
37
|
-
Use jose library for verification (don't use jsonwebtoken)
|
|
38
|
-
Load JWT secret from environment variable
|
|
39
|
-
Handle all error cases explicitly
|
|
40
|
-
Don't catch generic errors - let Express error handler manage them
|
|
41
|
-
|
|
42
|
-
Integration: Apply to protected routes in src/routes/api.js
|
|
43
|
-
</implementation>
|
|
44
|
-
|
|
45
|
-
<output>
|
|
46
|
-
Create files:
|
|
47
|
-
- `src/middleware/auth.js` - Main middleware function
|
|
48
|
-
- `src/middleware/auth.test.js` - Unit tests
|
|
49
|
-
|
|
50
|
-
Modify:
|
|
51
|
-
- `src/routes/api.js` - Apply middleware to protected routes
|
|
52
|
-
</output>
|
|
53
|
-
|
|
54
|
-
<verification>
|
|
55
|
-
Before declaring complete:
|
|
56
|
-
- Run: `npm test src/middleware/auth.test.js` - all tests pass
|
|
57
|
-
- Test invalid token returns 401
|
|
58
|
-
- Test expired token returns 403
|
|
59
|
-
- Test valid token attaches user to req.user
|
|
60
|
-
- Start server and hit /api/protected with curl - verify 401 without token
|
|
61
|
-
</verification>
|
|
62
|
-
|
|
63
|
-
<summary_requirements>
|
|
64
|
-
Create `SUMMARY.md` in same directory with outcome, files created, any decisions needed, and next steps.
|
|
65
|
-
</summary_requirements>
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
number: 002
|
|
3
|
-
topic: auth
|
|
4
|
-
purpose: plan
|
|
5
|
-
dependencies: [001]
|
|
6
|
-
created: 2025-11-21
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Auth - Plan
|
|
10
|
-
|
|
11
|
-
<objective>
|
|
12
|
-
Create implementation plan for JWT authentication system based on research findings
|
|
13
|
-
</objective>
|
|
14
|
-
|
|
15
|
-
<context>
|
|
16
|
-
Research findings: @.agents/prompts/001-auth-research/auth-research-output.md
|
|
17
|
-
|
|
18
|
-
Recommendation: jose library with httpOnly cookies
|
|
19
|
-
Current state: No authentication, all routes publicly accessible
|
|
20
|
-
Constraints: Must work with existing Express API, minimal breaking changes
|
|
21
|
-
</context>
|
|
22
|
-
|
|
23
|
-
<requirements>
|
|
24
|
-
Plan must address:
|
|
25
|
-
- JWT generation and verification
|
|
26
|
-
- Refresh token rotation
|
|
27
|
-
- Cookie configuration (httpOnly, secure, sameSite)
|
|
28
|
-
- Error handling for expired/invalid tokens
|
|
29
|
-
- Migration path from no-auth to auth
|
|
30
|
-
- Testing strategy
|
|
31
|
-
|
|
32
|
-
Decision points to resolve:
|
|
33
|
-
- Token expiry times (access vs refresh)
|
|
34
|
-
- Where to store refresh tokens (DB vs memory)
|
|
35
|
-
</requirements>
|
|
36
|
-
|
|
37
|
-
<output_structure>
|
|
38
|
-
Create plan with:
|
|
39
|
-
|
|
40
|
-
## Phases
|
|
41
|
-
- Phase 1: Core JWT utilities (jose integration, token generation/verification)
|
|
42
|
-
- Phase 2: Authentication middleware (verify tokens, attach user to request)
|
|
43
|
-
- Phase 3: Refresh token system (rotation, secure storage)
|
|
44
|
-
- Phase 4: Route protection (apply middleware, update tests)
|
|
45
|
-
|
|
46
|
-
## Dependencies
|
|
47
|
-
- Phase 2 needs Phase 1 JWT utilities
|
|
48
|
-
- Phase 3 needs Phase 2 middleware
|
|
49
|
-
- Phase 4 needs all previous phases
|
|
50
|
-
|
|
51
|
-
## Decision Points
|
|
52
|
-
- **Token expiry**: Access 15min, Refresh 7 days (OWASP standard) vs Access 1hr, Refresh 30 days (more convenient)
|
|
53
|
-
- Recommendation: Start with OWASP standard, gather feedback
|
|
54
|
-
|
|
55
|
-
- **Refresh storage**: PostgreSQL table vs Redis
|
|
56
|
-
- Recommendation: PostgreSQL for simplicity (already in stack)
|
|
57
|
-
|
|
58
|
-
## Risk Assessment
|
|
59
|
-
- Breaking existing clients: Gradual rollout, auth optional initially
|
|
60
|
-
- Token compromise: Short expiry + rotation mitigates
|
|
61
|
-
- Performance: JWT verification is fast, minimal impact
|
|
62
|
-
|
|
63
|
-
## Success Metrics
|
|
64
|
-
- All protected routes return 401 without valid token
|
|
65
|
-
- Refresh rotation working (old tokens invalidated)
|
|
66
|
-
- Zero security warnings from npm audit
|
|
67
|
-
</output_structure>
|
|
68
|
-
|
|
69
|
-
<summary_requirements>
|
|
70
|
-
Create `SUMMARY.md` with:
|
|
71
|
-
- One-liner: 4-phase implementation plan with OWASP-compliant token expiry
|
|
72
|
-
- Key Findings: Critical insights about approach
|
|
73
|
-
- Decisions Needed: Approve token expiry times
|
|
74
|
-
- Next Step: Implement Phase 1
|
|
75
|
-
</summary_requirements>
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
number: 004
|
|
3
|
-
topic: auth-research
|
|
4
|
-
purpose: refine
|
|
5
|
-
dependencies: [001]
|
|
6
|
-
created: 2025-11-21
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Auth Research - Refine
|
|
10
|
-
|
|
11
|
-
<objective>
|
|
12
|
-
Deepen auth research to address refresh token storage question from @.agents/prompts/001-auth-research/auth-research-output.md
|
|
13
|
-
</objective>
|
|
14
|
-
|
|
15
|
-
<current_gaps>
|
|
16
|
-
Original research left open: "Where to store refresh tokens server-side?"
|
|
17
|
-
Need to compare DB vs Redis vs in-memory storage
|
|
18
|
-
Security implications unclear
|
|
19
|
-
Performance impact unknown
|
|
20
|
-
</current_gaps>
|
|
21
|
-
|
|
22
|
-
<preserve>
|
|
23
|
-
Original findings on jose library selection
|
|
24
|
-
httpOnly cookie recommendation
|
|
25
|
-
Refresh rotation requirement
|
|
26
|
-
All original key findings remain valid
|
|
27
|
-
</preserve>
|
|
28
|
-
|
|
29
|
-
<refinement_focus>
|
|
30
|
-
Research refresh token storage options:
|
|
31
|
-
- PostgreSQL table: persistence, scalability, already in stack
|
|
32
|
-
- Redis: speed, built-in expiry, requires new dependency
|
|
33
|
-
- In-memory: fast, simple, lost on restart
|
|
34
|
-
|
|
35
|
-
Compare:
|
|
36
|
-
- Security implications of each
|
|
37
|
-
- Performance characteristics
|
|
38
|
-
- Operational complexity
|
|
39
|
-
- Cost of adding Redis vs using existing DB
|
|
40
|
-
</refinement_focus>
|
|
41
|
-
|
|
42
|
-
<output>
|
|
43
|
-
Update @.agents/prompts/001-auth-research/auth-research-output.md with:
|
|
44
|
-
|
|
45
|
-
## What Changed
|
|
46
|
-
- Added: Comprehensive refresh token storage analysis
|
|
47
|
-
- Added: Performance benchmarks (DB vs Redis)
|
|
48
|
-
- Strengthened: Security section with storage implications
|
|
49
|
-
- Clarified: Recommendation includes storage strategy
|
|
50
|
-
|
|
51
|
-
## Changelog
|
|
52
|
-
- v2: 2025-11-21 - Added refresh token storage analysis, resolved open question
|
|
53
|
-
- v1: 2025-11-20 - Initial JWT library and cookie research
|
|
54
|
-
|
|
55
|
-
Archive previous version to archive/auth-research-v1.md
|
|
56
|
-
</output>
|
|
57
|
-
|
|
58
|
-
<summary_requirements>
|
|
59
|
-
Update `SUMMARY.md` with:
|
|
60
|
-
- One-liner: JWT with jose library, httpOnly cookies, PostgreSQL for refresh tokens
|
|
61
|
-
- Key Findings: Include new storage recommendation
|
|
62
|
-
- Version: v2
|
|
63
|
-
- Decisions Needed: None - storage question resolved
|
|
64
|
-
- Next Step: Proceed with planning phase
|
|
65
|
-
</summary_requirements>
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
number: 001
|
|
3
|
-
topic: auth
|
|
4
|
-
purpose: research
|
|
5
|
-
dependencies: []
|
|
6
|
-
created: 2025-11-21
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Auth - Research
|
|
10
|
-
|
|
11
|
-
<objective>
|
|
12
|
-
Research JWT authentication approaches for Node.js Express API to inform implementation decision
|
|
13
|
-
</objective>
|
|
14
|
-
|
|
15
|
-
<focus_areas>
|
|
16
|
-
- Compare JWT libraries: jsonwebtoken vs jose vs paseto
|
|
17
|
-
- httpOnly cookies vs localStorage for token storage
|
|
18
|
-
- Refresh token patterns and rotation strategies
|
|
19
|
-
- Security best practices (OWASP recommendations)
|
|
20
|
-
</focus_areas>
|
|
21
|
-
|
|
22
|
-
<sources>
|
|
23
|
-
OWASP JWT Cheat Sheet
|
|
24
|
-
NPM package comparisons (downloads, maintenance, TypeScript support)
|
|
25
|
-
Existing code: @src/server.js, @src/routes/
|
|
26
|
-
Security advisories for JWT libraries
|
|
27
|
-
</sources>
|
|
28
|
-
|
|
29
|
-
<output_requirements>
|
|
30
|
-
Provide research findings with:
|
|
31
|
-
|
|
32
|
-
## Key Findings
|
|
33
|
-
- jose library: Better TypeScript support, actively maintained, smaller bundle
|
|
34
|
-
- jsonwebtoken: More popular but older patterns, maintenance concerns
|
|
35
|
-
- httpOnly cookies required (localStorage vulnerable to XSS)
|
|
36
|
-
- Refresh rotation is OWASP standard (invalidate old tokens on refresh)
|
|
37
|
-
|
|
38
|
-
## Confidence Level
|
|
39
|
-
High - Multiple authoritative sources agree on best practices
|
|
40
|
-
Medium - jose vs jsonwebtoken (both work, jose has better DX)
|
|
41
|
-
|
|
42
|
-
## Recommendations
|
|
43
|
-
- Use jose library for JWT operations
|
|
44
|
-
- Store tokens in httpOnly cookies (never localStorage)
|
|
45
|
-
- Implement refresh token rotation
|
|
46
|
-
- Use short access token expiry (15min recommended by OWASP)
|
|
47
|
-
|
|
48
|
-
## Open Questions
|
|
49
|
-
- Where to store refresh tokens server-side? (DB vs Redis vs memory)
|
|
50
|
-
- Token expiry times: strict (15min) vs convenient (1hr)?
|
|
51
|
-
|
|
52
|
-
## Assumptions
|
|
53
|
-
- Express API will continue using cookies (not going full SPA)
|
|
54
|
-
- PostgreSQL available for refresh token storage if needed
|
|
55
|
-
</output_requirements>
|
|
56
|
-
|
|
57
|
-
<summary_requirements>
|
|
58
|
-
Create `SUMMARY.md` with:
|
|
59
|
-
- One-liner: JWT with jose library and httpOnly cookies recommended
|
|
60
|
-
- Key Findings: jose outperforms, cookies required, rotation is standard
|
|
61
|
-
- Decisions Needed: None - clear recommendation
|
|
62
|
-
- Next Step: Create implementation plan
|
|
63
|
-
</summary_requirements>
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Get the next prompt number based on existing prompts
|
|
3
|
-
|
|
4
|
-
# Get configured prompts directory
|
|
5
|
-
PROMPTS_DIR=$(.agents/superpowers-agent get-config prompts_dir 2>/dev/null || echo ".agents/prompts")
|
|
6
|
-
|
|
7
|
-
# If prompts directory doesn't exist, start at 001
|
|
8
|
-
if [ ! -d "$PROMPTS_DIR" ]; then
|
|
9
|
-
echo "001"
|
|
10
|
-
exit 0
|
|
11
|
-
fi
|
|
12
|
-
|
|
13
|
-
# Find highest number from existing prompt directories
|
|
14
|
-
HIGHEST=$(find "$PROMPTS_DIR" -maxdepth 1 -type d -name '[0-9][0-9][0-9]-*' 2>/dev/null | \
|
|
15
|
-
sed 's/.*\/\([0-9][0-9][0-9]\)-.*/\1/' | \
|
|
16
|
-
sort -n | \
|
|
17
|
-
tail -1)
|
|
18
|
-
|
|
19
|
-
# If no prompts exist yet, start at 001
|
|
20
|
-
if [ -z "$HIGHEST" ]; then
|
|
21
|
-
echo "001"
|
|
22
|
-
exit 0
|
|
23
|
-
fi
|
|
24
|
-
|
|
25
|
-
# Increment and format with leading zeros
|
|
26
|
-
NEXT=$((10#$HIGHEST + 1))
|
|
27
|
-
printf "%03d\n" $NEXT
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "5.1.0",
|
|
3
|
-
"name": "superpowers:meta/creating-prompts",
|
|
4
|
-
"title": "Creating Prompts",
|
|
5
|
-
"helpers": [
|
|
6
|
-
"scripts/get-next-number.sh",
|
|
7
|
-
"examples/do-example.md",
|
|
8
|
-
"examples/plan-example.md",
|
|
9
|
-
"examples/refine-example.md",
|
|
10
|
-
"examples/research-example.md",
|
|
11
|
-
"templates/do-template.md",
|
|
12
|
-
"templates/plan-template.md",
|
|
13
|
-
"templates/refine-template.md",
|
|
14
|
-
"templates/research-template.md"
|
|
15
|
-
],
|
|
16
|
-
"aliases": [
|
|
17
|
-
"creating-prompts",
|
|
18
|
-
"meta/creating-prompts"
|
|
19
|
-
]
|
|
20
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
number: {NUMBER}
|
|
3
|
-
topic: {TOPIC}
|
|
4
|
-
purpose: do
|
|
5
|
-
dependencies: []
|
|
6
|
-
created: {DATE}
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# {TOPIC} - Do
|
|
10
|
-
|
|
11
|
-
<objective>
|
|
12
|
-
{What to build/create/fix}
|
|
13
|
-
|
|
14
|
-
Purpose: {Why this matters, what it enables}
|
|
15
|
-
Output: {What artifact(s) will be produced}
|
|
16
|
-
</objective>
|
|
17
|
-
|
|
18
|
-
<context>
|
|
19
|
-
{Referenced files if chained}
|
|
20
|
-
@.agents/prompts/{folder}/{file}.md
|
|
21
|
-
|
|
22
|
-
{Project context}
|
|
23
|
-
@relevant-files
|
|
24
|
-
</context>
|
|
25
|
-
|
|
26
|
-
<requirements>
|
|
27
|
-
{Specific functional requirements}
|
|
28
|
-
{Quality requirements}
|
|
29
|
-
{Constraints and boundaries}
|
|
30
|
-
</requirements>
|
|
31
|
-
|
|
32
|
-
<implementation>
|
|
33
|
-
{Specific approaches or patterns to follow}
|
|
34
|
-
{What to avoid and WHY}
|
|
35
|
-
{Integration points}
|
|
36
|
-
</implementation>
|
|
37
|
-
|
|
38
|
-
<output>
|
|
39
|
-
Create/modify files:
|
|
40
|
-
- `./path/to/file.ext` - {description}
|
|
41
|
-
|
|
42
|
-
{For complex outputs, specify structure}
|
|
43
|
-
</output>
|
|
44
|
-
|
|
45
|
-
<verification>
|
|
46
|
-
Before declaring complete:
|
|
47
|
-
- {Specific test or check}
|
|
48
|
-
- {How to confirm it works}
|
|
49
|
-
- {Edge cases to verify}
|
|
50
|
-
</verification>
|
|
51
|
-
|
|
52
|
-
<summary_requirements>
|
|
53
|
-
Create `SUMMARY.md` in same directory with:
|
|
54
|
-
- One-liner: Substantive description of outcome
|
|
55
|
-
- Key Findings: Actionable takeaways
|
|
56
|
-
- Decisions Needed: What requires user input
|
|
57
|
-
- Blockers: External impediments or "None"
|
|
58
|
-
- Next Step: Concrete forward action
|
|
59
|
-
</summary_requirements>
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
number: {NUMBER}
|
|
3
|
-
topic: {TOPIC}
|
|
4
|
-
purpose: plan
|
|
5
|
-
dependencies: []
|
|
6
|
-
created: {DATE}
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# {TOPIC} - Plan
|
|
10
|
-
|
|
11
|
-
<objective>
|
|
12
|
-
{What to plan + success criteria}
|
|
13
|
-
</objective>
|
|
14
|
-
|
|
15
|
-
<context>
|
|
16
|
-
{Referenced research outputs}
|
|
17
|
-
@.agents/prompts/{folder}/{file}-output.md
|
|
18
|
-
|
|
19
|
-
{Current state}
|
|
20
|
-
{Constraints}
|
|
21
|
-
</context>
|
|
22
|
-
|
|
23
|
-
<requirements>
|
|
24
|
-
{What plan must address}
|
|
25
|
-
{Decision points to resolve}
|
|
26
|
-
{Tradeoffs to evaluate}
|
|
27
|
-
</requirements>
|
|
28
|
-
|
|
29
|
-
<output_structure>
|
|
30
|
-
Create plan with:
|
|
31
|
-
|
|
32
|
-
## Phases
|
|
33
|
-
- Phase 1: {Name} - {Clear boundary/deliverable}
|
|
34
|
-
- Phase 2: {Name} - {Clear boundary/deliverable}
|
|
35
|
-
|
|
36
|
-
## Dependencies
|
|
37
|
-
- {What Phase 2 needs from Phase 1}
|
|
38
|
-
- {External dependencies}
|
|
39
|
-
|
|
40
|
-
## Decision Points
|
|
41
|
-
- {Decision}: Options A, B, C with tradeoffs
|
|
42
|
-
- {Decision}: Recommendation with rationale
|
|
43
|
-
|
|
44
|
-
## Risk Assessment
|
|
45
|
-
- {Risk}: {Mitigation strategy}
|
|
46
|
-
|
|
47
|
-
## Success Metrics
|
|
48
|
-
- {How to measure success}
|
|
49
|
-
</output_structure>
|
|
50
|
-
|
|
51
|
-
<summary_requirements>
|
|
52
|
-
Create `SUMMARY.md` with:
|
|
53
|
-
- One-liner: Key recommendation or approach
|
|
54
|
-
- Key Findings: Critical insights from planning
|
|
55
|
-
- Decisions Needed: What requires approval/input
|
|
56
|
-
- Blockers: What's blocking progress
|
|
57
|
-
- Next Step: Concrete action to move forward
|
|
58
|
-
</summary_requirements>
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
number: {NUMBER}
|
|
3
|
-
topic: {TOPIC}
|
|
4
|
-
purpose: refine
|
|
5
|
-
dependencies: [{ORIGINAL_NUMBER}]
|
|
6
|
-
created: {DATE}
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# {TOPIC} - Refine
|
|
10
|
-
|
|
11
|
-
<objective>
|
|
12
|
-
Improve and deepen @.agents/prompts/{folder}/{file}-output.md
|
|
13
|
-
</objective>
|
|
14
|
-
|
|
15
|
-
<current_gaps>
|
|
16
|
-
{What's missing or unclear in current output}
|
|
17
|
-
{Questions left unanswered}
|
|
18
|
-
{Areas needing more depth}
|
|
19
|
-
</current_gaps>
|
|
20
|
-
|
|
21
|
-
<preserve>
|
|
22
|
-
{What to keep from original}
|
|
23
|
-
{Key insights not to lose}
|
|
24
|
-
</preserve>
|
|
25
|
-
|
|
26
|
-
<refinement_focus>
|
|
27
|
-
{Specific areas to strengthen}
|
|
28
|
-
{New angles to explore}
|
|
29
|
-
{Additional sources to consult}
|
|
30
|
-
</refinement_focus>
|
|
31
|
-
|
|
32
|
-
<output>
|
|
33
|
-
Update @.agents/prompts/{folder}/{file}-output.md with:
|
|
34
|
-
|
|
35
|
-
## What Changed
|
|
36
|
-
- {Added: new finding/insight}
|
|
37
|
-
- {Strengthened: expanded section}
|
|
38
|
-
- {Clarified: resolved ambiguity}
|
|
39
|
-
|
|
40
|
-
## Changelog
|
|
41
|
-
- v2: {Date} - {Summary of changes}
|
|
42
|
-
- v1: {Original date} - Initial version
|
|
43
|
-
|
|
44
|
-
Archive previous version to archive/{file}-v1.md
|
|
45
|
-
</output>
|
|
46
|
-
|
|
47
|
-
<summary_requirements>
|
|
48
|
-
Update `SUMMARY.md` with:
|
|
49
|
-
- One-liner: Updated with refinement focus
|
|
50
|
-
- Key Findings: Include new insights
|
|
51
|
-
- Version: v2
|
|
52
|
-
- Decisions Needed: Updated based on new information
|
|
53
|
-
- Next Step: Forward action with refined understanding
|
|
54
|
-
</summary_requirements>
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
number: {NUMBER}
|
|
3
|
-
topic: {TOPIC}
|
|
4
|
-
purpose: research
|
|
5
|
-
dependencies: []
|
|
6
|
-
created: {DATE}
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# {TOPIC} - Research
|
|
10
|
-
|
|
11
|
-
<objective>
|
|
12
|
-
{What to research + why}
|
|
13
|
-
</objective>
|
|
14
|
-
|
|
15
|
-
<focus_areas>
|
|
16
|
-
{Specific questions to answer}
|
|
17
|
-
{Comparisons to make}
|
|
18
|
-
{Unknowns to resolve}
|
|
19
|
-
</focus_areas>
|
|
20
|
-
|
|
21
|
-
<sources>
|
|
22
|
-
{Documentation to review}
|
|
23
|
-
{Code to analyze}
|
|
24
|
-
{Existing files to reference}
|
|
25
|
-
@relevant-files
|
|
26
|
-
</sources>
|
|
27
|
-
|
|
28
|
-
<output_requirements>
|
|
29
|
-
Provide research findings with:
|
|
30
|
-
|
|
31
|
-
## Key Findings
|
|
32
|
-
- {Finding with supporting evidence}
|
|
33
|
-
- {Finding with supporting evidence}
|
|
34
|
-
|
|
35
|
-
## Confidence Level
|
|
36
|
-
- High/Medium/Low with reasoning
|
|
37
|
-
|
|
38
|
-
## Recommendations
|
|
39
|
-
- {Specific recommendation based on findings}
|
|
40
|
-
|
|
41
|
-
## Open Questions
|
|
42
|
-
- {What remains uncertain}
|
|
43
|
-
- {What needs further investigation}
|
|
44
|
-
|
|
45
|
-
## Assumptions
|
|
46
|
-
- {What was assumed during research}
|
|
47
|
-
</output_requirements>
|
|
48
|
-
|
|
49
|
-
<summary_requirements>
|
|
50
|
-
Create `SUMMARY.md` with:
|
|
51
|
-
- One-liner: Main discovery or recommendation
|
|
52
|
-
- Key Findings: Top 3-5 actionable insights
|
|
53
|
-
- Decisions Needed: What needs decision based on research
|
|
54
|
-
- Blockers: What's preventing deeper research
|
|
55
|
-
- Next Step: How to act on findings
|
|
56
|
-
</summary_requirements>
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: using-superpowers
|
|
3
|
-
description: "Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions. CRITICAL: this skill is already loaded in your context — do NOT invoke it again. It defines the foundational rule: if a skill might apply, you must invoke it first."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Using Superpowers
|
|
7
|
-
|
|
8
|
-
Superpowers is a skills system that gives you access to proven workflows, encoded as SKILL.md files. Skills prevent you from reinventing solved problems and repeating known mistakes. This skill establishes the foundational rule for how to use the entire system.
|
|
9
|
-
|
|
10
|
-
## The Core Rule
|
|
11
|
-
|
|
12
|
-
**Before any response or action, check whether a skill applies — then invoke it.**
|
|
13
|
-
|
|
14
|
-
This means BEFORE writing code, BEFORE asking clarifying questions, BEFORE exploring files. Even a 1% chance a skill might apply means you invoke it to check. If the invoked skill turns out not to fit the situation, you don't need to follow it — but you must check.
|
|
15
|
-
|
|
16
|
-
Why this matters: skills encode hard-won workflows for tasks like debugging, TDD, and brainstorming. Skipping the check means you may skip a workflow that would have prevented a costly mistake.
|
|
17
|
-
|
|
18
|
-
## How to Discover and Invoke Skills
|
|
19
|
-
|
|
20
|
-
Skills appear in your context as an available-skills list — scan it at the start of every task. That list is the same workflow library no matter which agent platform you run on (Claude Code, Copilot, OpenCode, Pi, or anything else); only the tools around it differ.
|
|
21
|
-
|
|
22
|
-
To load a skill's full instructions:
|
|
23
|
-
|
|
24
|
-
- **If your platform has a native skill-loading tool**, call it with the skill's name.
|
|
25
|
-
- **If it doesn't**, load the skill the way you'd open any file: read its SKILL.md directly with your file-read tool. Find the path in the skills list, or via the CLI fallback below.
|
|
26
|
-
|
|
27
|
-
Either path has the same result — the skill's content enters your context and you follow it directly. Don't assume a native tool exists; if you can't find one, read the file. The point is to get the skill's content in front of you, not to use any particular mechanism.
|
|
28
|
-
|
|
29
|
-
**CLI fallback** (use when the skills list isn't already in your context):
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
superpowers-agent find-skills # list all skills
|
|
33
|
-
superpowers-agent find-skills | grep test # filter by topic
|
|
34
|
-
superpowers-agent execute <skill-name> # print a skill to load and follow
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**Announce when using a skill:**
|
|
38
|
-
> "Using Skill: [name] to [purpose]"
|
|
39
|
-
|
|
40
|
-
This keeps the conversation clear and lets the user know which workflow you're following.
|
|
41
|
-
|
|
42
|
-
## Skill Priority
|
|
43
|
-
|
|
44
|
-
When several skills could apply, load them in order of how much each reframes the problem — broadest understanding first, narrowest execution last. Loading a skill is cheap (you are only reading); committing to the wrong workflow is expensive.
|
|
45
|
-
|
|
46
|
-
1. **Domain / context skills first.** A skill about the specific technology or domain you are working in teaches you the territory — and often tells you which approach fits, or that a generic workflow does not. Read it before you commit to a process, and before you brainstorm or plan: knowing the territory makes the brainstorm sharper and can rule a planning skill in or out. A domain skill outranks even an intent-gathering skill like brainstorming.
|
|
47
|
-
2. **Process / approach skills next.** brainstorming, planning, systematic-debugging, test-driven-development — chosen *informed by* what the domain skill told you.
|
|
48
|
-
3. **Implementation skills last.** Step-by-step execution guides, once the approach is set.
|
|
49
|
-
|
|
50
|
-
Why this order: if you lock into a planning or process workflow before reading the domain skill, you may follow steps that do not fit the problem — and by the time you read the domain skill you are already mid-workflow and cannot switch cleanly. Read first, the domain skill can still redirect you to the right process, or tell you to skip one.
|
|
51
|
-
|
|
52
|
-
**Worked example** — "Let's build a subscription checkout on Stripe," with a Stripe domain skill, a payment-flow planning skill, and a Stripe-checkout implementation skill available:
|
|
53
|
-
|
|
54
|
-
→ `stripe-payments-domain` (learn the territory; it may change how you plan) → `planning-payment-flows` (map states and failure modes) → `implementing-stripe-checkout` (execute).
|
|
55
|
-
|
|
56
|
-
When no domain skill applies, the leading process skill comes first: "Fix this bug" → `systematic-debugging`, then any domain or implementation skill it points you to.
|
|
57
|
-
|
|
58
|
-
The first skill you load may change the rest of the plan — reassess after each one rather than committing to the whole sequence up front.
|
|
59
|
-
|
|
60
|
-
## Mapping Skill Instructions to Your Tools
|
|
61
|
-
|
|
62
|
-
A skill may name a tool using one platform's vocabulary — a todo tracker, a subagent dispatcher, a file editor, a shell, a search tool, a web fetcher. Map each to the closest equivalent your environment provides and use it. If your platform has no equivalent for something a skill calls for, perform the action inline yourself. The skill's intent is what matters, not the specific tool name it happens to use.
|
|
63
|
-
|
|
64
|
-
## Red Flags — You're Rationalizing
|
|
65
|
-
|
|
66
|
-
These thoughts mean STOP and check for a skill first:
|
|
67
|
-
|
|
68
|
-
| Thought | Reality |
|
|
69
|
-
|---------|---------|
|
|
70
|
-
| "This is just a simple question" | Questions are tasks. Check for skills. |
|
|
71
|
-
| "I need more context first" | Skill check comes BEFORE clarifying questions. |
|
|
72
|
-
| "Let me explore the codebase first" | Skills tell you HOW to explore. Check first. |
|
|
73
|
-
| "I can check git/files quickly" | Files lack conversation context. Check for skills. |
|
|
74
|
-
| "Let me gather information first" | Skills tell you HOW to gather information. |
|
|
75
|
-
| "This doesn't need a formal skill" | If a skill exists, use it. |
|
|
76
|
-
| "I remember this skill" | Skills evolve. Read current version. |
|
|
77
|
-
| "This doesn't count as a task" | Action = task. Check for skills. |
|
|
78
|
-
| "The skill is overkill" | Simple things become complex. Use it. |
|
|
79
|
-
| "I'll just do this one thing first" | Check BEFORE doing anything. |
|
|
80
|
-
| "This feels productive" | Undisciplined action wastes time. Skills prevent this. |
|
|
81
|
-
| "I know what that means" | Knowing the concept ≠ using the skill. Invoke it. |
|
|
82
|
-
|
|
83
|
-
## Skill Types
|
|
84
|
-
|
|
85
|
-
**Rigid skills** (TDD, systematic-debugging): Follow exactly. The structure is the value — adapting away the discipline defeats the purpose.
|
|
86
|
-
|
|
87
|
-
**Flexible skills** (patterns, guides): Adapt principles to context. The skill itself will indicate when flexibility is appropriate.
|
|
88
|
-
|
|
89
|
-
## Checklists
|
|
90
|
-
|
|
91
|
-
If a skill contains a checklist, create a task or todo entry for each item using your platform's task-tracking tool. Mental tracking causes steps to get skipped. Every time.
|
|
92
|
-
|
|
93
|
-
## User Instructions
|
|
94
|
-
|
|
95
|
-
Instructions say WHAT, not HOW. "Add X" or "Fix Y" doesn't mean skip workflows. A specific instruction is when skill discipline matters most.
|
|
96
|
-
|
|
97
|
-
## Version Monitoring
|
|
98
|
-
|
|
99
|
-
At conversation start (periodically thereafter, e.g. once per day), check your version:
|
|
100
|
-
1. **CURRENT_VERSION** — run a `superpowers-agent version` command and extract `X.Y.Z` from the `X.Y.Z` string in its output.
|
|
101
|
-
2. **NPM_LATEST_VERSION** — run `npm view @complexthings/superpowers-agent version`.
|
|
102
|
-
3. Compare by **semver precedence, not string comparison** (e.g. `9.2.0` > `9.0.1`). If NPM_LATEST_VERSION is newer, tell the user — do not run these yourself:
|
|
103
|
-
> Your superpowers-agent has updates (`CURRENT_VERSION` → `NPM_LATEST_VERSION`). Run:
|
|
104
|
-
> ```sh
|
|
105
|
-
> npm install -g @complexthings/superpowers-agent
|
|
106
|
-
> superpowers-agent update && superpowers-agent bootstrap && superpowers-agent setup-skills
|
|
107
|
-
> ```
|
|
108
|
-
If versions match, or either lookup fails (e.g. no network), continue silently.
|