ethan-agent-skills 0.1.0 → 0.1.1
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/README.md +65 -5
- package/package.json +1 -1
- package/skills/fix-my-life/SKILL.md +57 -0
- package/skills/fix-my-life/phase-1-excavation.md +98 -0
- package/skills/fix-my-life/phase-2-design.md +141 -0
- package/skills/fix-my-life/phase-3-commit.md +124 -0
- package/skills/fix-my-life/skill.json +5 -0
- package/skills/skill-evolution/.env.example +11 -0
- package/skills/skill-evolution/CONTRIBUTING.md +53 -0
- package/skills/skill-evolution/LICENSE +21 -0
- package/skills/skill-evolution/README.md +254 -0
- package/skills/skill-evolution/ROADMAP.md +32 -0
- package/skills/skill-evolution/SKILL.md +66 -0
- package/skills/skill-evolution/references/eval-mode.md +73 -0
- package/skills/skill-evolution/references/maturity.md +44 -0
- package/skills/skill-evolution/references/merge.md +87 -0
- package/skills/skill-evolution/references/publish.md +78 -0
- package/skills/skill-evolution/references/reflect-mode.md +69 -0
- package/skills/skill-evolution/references/search.md +77 -0
- package/skills/skill-evolution/references/structure.md +156 -0
- package/skills/skill-evolution/scripts/audit.py +206 -0
- package/skills/skill-evolution/scripts/install.py +163 -0
- package/skills/skill-evolution/scripts/lib/__init__.py +60 -0
- package/skills/skill-evolution/scripts/lib/supabase.py +128 -0
- package/skills/skill-evolution/scripts/merge.py +269 -0
- package/skills/skill-evolution/scripts/publish.py +325 -0
- package/skills/skill-evolution/scripts/review.py +155 -0
- package/skills/skill-evolution/scripts/search.py +152 -0
- package/skills/skill-evolution/scripts/uninstall.py +73 -0
- package/skills/skill-evolution/setup.sql +357 -0
- package/skills/skill-evolution/skill.json +5 -0
package/README.md
CHANGED
|
@@ -25,6 +25,9 @@ npx -y ethan-agent-skills@latest update --target /tmp/test-skills
|
|
|
25
25
|
npx -y ethan-agent-skills@latest list
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
Current common bundled skills include `pdf-extract`, `skill-evolution`, and
|
|
29
|
+
`fix-my-life`, plus the client-specific OpenSpec OPSX skills.
|
|
30
|
+
|
|
28
31
|
The updater writes `.skills-lock.json` in each target skill root and only
|
|
29
32
|
rewrites skills managed by this package. If a destination skill directory exists
|
|
30
33
|
but is not recorded in the lock file, the updater reports a conflict and leaves
|
|
@@ -88,8 +91,14 @@ npm login
|
|
|
88
91
|
npm publish --access public
|
|
89
92
|
```
|
|
90
93
|
|
|
94
|
+
### Automated Release Workflow
|
|
95
|
+
|
|
91
96
|
This repo includes `.github/workflows/publish.yml` for automated publishing
|
|
92
|
-
with npm Trusted Publishing.
|
|
97
|
+
with npm Trusted Publishing. The package `ethan-agent-skills@0.1.0` has already
|
|
98
|
+
been published manually, so do not create or push a `v0.1.0` tag now. That tag
|
|
99
|
+
would try to publish the same version again and fail.
|
|
100
|
+
|
|
101
|
+
One-time setup:
|
|
93
102
|
|
|
94
103
|
1. Push this repository to GitHub.
|
|
95
104
|
2. On npmjs.com, open the package settings for `ethan-agent-skills`.
|
|
@@ -98,16 +107,67 @@ with npm Trusted Publishing. To enable it:
|
|
|
98
107
|
- Organization or user: `EthenZhang`
|
|
99
108
|
- Repository: `my_agent_skill`
|
|
100
109
|
- Workflow filename: `publish.yml`
|
|
101
|
-
|
|
110
|
+
Trusted Publishing uses GitHub OIDC, so no long-lived `NPM_TOKEN` secret is
|
|
111
|
+
required.
|
|
112
|
+
|
|
113
|
+
Normal release flow:
|
|
102
114
|
|
|
103
115
|
```bash
|
|
116
|
+
npm run test:local
|
|
117
|
+
npm run pack:check
|
|
104
118
|
npm version patch
|
|
105
119
|
git push --follow-tags
|
|
106
120
|
```
|
|
107
121
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
122
|
+
`npm version patch` updates `package.json` and `package-lock.json`, creates a
|
|
123
|
+
commit, and creates a tag like `v0.1.1`. Pushing the tag triggers the workflow,
|
|
124
|
+
which runs validation and publishes the tagged version to npm.
|
|
125
|
+
|
|
126
|
+
### Publishing Skill Updates
|
|
127
|
+
|
|
128
|
+
When you change a skill, a normal `git push origin main` only updates GitHub.
|
|
129
|
+
It does not publish a new npm version. To make the change available through
|
|
130
|
+
`npx -y ethan-agent-skills@latest update`, publish a new package version:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Edit skill files first, then:
|
|
134
|
+
npm run test:local
|
|
135
|
+
npm run pack:check
|
|
136
|
+
git add .
|
|
137
|
+
git commit -m "Update <skill-name> skill"
|
|
138
|
+
npm version patch
|
|
139
|
+
git push --follow-tags
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Use `patch` for routine skill edits and fixes. Use `minor` when adding a new
|
|
143
|
+
skill or a meaningful new CLI capability. Use `major` only for breaking changes.
|
|
144
|
+
|
|
145
|
+
After the GitHub Actions publish job succeeds, users can refresh local skills:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
npx -y ethan-agent-skills@latest update
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
For minor or major releases, use:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
npm version minor
|
|
155
|
+
# or
|
|
156
|
+
npm version major
|
|
157
|
+
git push --follow-tags
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
If the workflow fails:
|
|
161
|
+
|
|
162
|
+
- Check the GitHub Actions run logs first.
|
|
163
|
+
- If npm says the version already exists, bump to a new version and push a new
|
|
164
|
+
tag.
|
|
165
|
+
- If npm says trusted publishing is not configured, confirm the npm package
|
|
166
|
+
settings still point to `EthenZhang/my_agent_skill` and `publish.yml`.
|
|
167
|
+
|
|
168
|
+
The workflow can also be started manually from the GitHub Actions tab, but tag
|
|
169
|
+
pushes are the preferred release path because they tie npm versions to Git
|
|
170
|
+
history.
|
|
111
171
|
|
|
112
172
|
## OpenSpec OPSX Usage
|
|
113
173
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fix-my-life
|
|
3
|
+
description: Interactive life-fixing session. Use when user says "fix my life", "life review", "I'm stuck", "help me change", or "/fix-my-life".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Fix My Life
|
|
7
|
+
|
|
8
|
+
An interactive 3-phase session. Concise. Direct. No fluff.
|
|
9
|
+
|
|
10
|
+
**Inspired by**: Dan Koe's "How to Fix Your Entire Life in 1 Day"
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Core Insight
|
|
15
|
+
|
|
16
|
+
> You don't have bad habits. You have an identity that requires them.
|
|
17
|
+
> Change the identity → behavior follows automatically.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Flow
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Phase 1: EXCAVATE → Understand current state & hidden desires
|
|
25
|
+
Phase 2: DESIGN → Build the life game (vision + anti-vision)
|
|
26
|
+
Phase 3: COMMIT → Output the game plan
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Each phase: ask → listen → reflect → move forward.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Rules
|
|
34
|
+
|
|
35
|
+
- Ask **one question at a time**
|
|
36
|
+
- Wait for the answer before proceeding
|
|
37
|
+
- Reflect back key insights in **1-2 sentences**
|
|
38
|
+
- Use **lists** over paragraphs
|
|
39
|
+
- Be direct. Comfort is the enemy here.
|
|
40
|
+
- If answer is vague → ask one follow-up to sharpen it
|
|
41
|
+
- Better utilize the USER.md file
|
|
42
|
+
- Always use the user's language.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Entry Point
|
|
47
|
+
|
|
48
|
+
When invoked, say exactly:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
**Fix My Life** — 3-phase session.
|
|
52
|
+
|
|
53
|
+
Quick question first:
|
|
54
|
+
What made you do this today? (1-3 words)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Then load and follow `phase-1-excavation.md`.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Phase 1: Excavate
|
|
2
|
+
|
|
3
|
+
**Goal**: Surface what's actually broken and what's actually wanted.
|
|
4
|
+
|
|
5
|
+
**Time**: ~10 min of honest answers.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Opening
|
|
10
|
+
|
|
11
|
+
After getting the entry answer, say:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Good. Let's dig.
|
|
15
|
+
|
|
16
|
+
I'll ask 5 questions. Short answers are fine.
|
|
17
|
+
Honest answers are required.
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## The 5 Questions
|
|
23
|
+
|
|
24
|
+
Ask one at a time. After each answer, reflect with 1 line before asking next.
|
|
25
|
+
|
|
26
|
+
### Q1 — The Complaint Test
|
|
27
|
+
```
|
|
28
|
+
List your top 3 complaints about your life right now.
|
|
29
|
+
(These are clues, not problems.)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
*Why*: Complaints reveal what we value but aren't getting.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### Q2 — The Behavior Mirror
|
|
37
|
+
```
|
|
38
|
+
What do you spend most of your time on that you're not proud of?
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
*Why*: Behavior is honest. It shows your real identity.
|
|
42
|
+
|
|
43
|
+
*If vague*: "Give me a specific example from yesterday."
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### Q3 — The 5-Year Reel
|
|
48
|
+
```
|
|
49
|
+
If nothing changes — same habits, same identity, same choices —
|
|
50
|
+
where are you in 5 years?
|
|
51
|
+
|
|
52
|
+
Describe it in 3 bullets.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
*Why*: Future-pain is the most honest motivator.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### Q4 — The Desire Beneath the Desire
|
|
60
|
+
```
|
|
61
|
+
What do you actually want?
|
|
62
|
+
Not what you think you should want. What you actually want.
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
*If answer is surface-level* (e.g., "more money"):
|
|
66
|
+
```
|
|
67
|
+
Okay. What would "more money" give you that you don't have now?
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Keep drilling until they hit something emotional.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### Q5 — The Identity Cost
|
|
75
|
+
```
|
|
76
|
+
If you became the person who achieves that — what would you have to give up?
|
|
77
|
+
(Habits, relationships, beliefs, comfort zones)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
*Why*: This is where resistance lives. Name it.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Phase 1 Close
|
|
85
|
+
|
|
86
|
+
After all 5 answers, summarize:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
**What I'm hearing:**
|
|
90
|
+
|
|
91
|
+
- Biggest gap: [their complaint → their desire, distilled]
|
|
92
|
+
- Hidden fear: [what they'd have to give up]
|
|
93
|
+
- The real problem: identity, not circumstance
|
|
94
|
+
|
|
95
|
+
Ready for Phase 2?
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Load `phase-2-design.md`.
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Phase 2: Design the Game
|
|
2
|
+
|
|
3
|
+
**Goal**: Turn insights into a concrete game structure.
|
|
4
|
+
|
|
5
|
+
**Framework**: Life is a video game. Structure it like one.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Setup
|
|
10
|
+
|
|
11
|
+
Say:
|
|
12
|
+
```
|
|
13
|
+
Now we build the game.
|
|
14
|
+
|
|
15
|
+
Your life already has a win condition.
|
|
16
|
+
You just haven't defined it clearly enough to play.
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Step 1 — Anti-Vision (The Stakes)
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Describe the life you absolutely refuse to live.
|
|
25
|
+
3 years from now, worst case.
|
|
26
|
+
|
|
27
|
+
Use "I am..." statements.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
*Example output*:
|
|
31
|
+
- I am still in the same job I hate
|
|
32
|
+
- I am heavier, more tired, less alive
|
|
33
|
+
- I am someone my past self would be disappointed by
|
|
34
|
+
|
|
35
|
+
**After they answer**, reflect:
|
|
36
|
+
```
|
|
37
|
+
Good. That's your "Game Over" screen.
|
|
38
|
+
Keep it visible. It's fuel.
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Step 2 — Vision MVP (The Win Condition)
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Now the opposite.
|
|
47
|
+
|
|
48
|
+
3 years from now, if things go right:
|
|
49
|
+
- What does your work look like? (1 line)
|
|
50
|
+
- What does your body/health look like? (1 line)
|
|
51
|
+
- What do your relationships look like? (1 line)
|
|
52
|
+
- How do you feel when you wake up? (1 word)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
*Keep it concrete. Not "be happy." "Wake up excited about my work."*
|
|
56
|
+
|
|
57
|
+
**After they answer**, distill to:
|
|
58
|
+
```
|
|
59
|
+
**Your Win Condition**: [1-sentence synthesis]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Step 3 — Build the Quest Log
|
|
65
|
+
|
|
66
|
+
### Main Quest (1 Year)
|
|
67
|
+
```
|
|
68
|
+
To move toward that 3-year vision —
|
|
69
|
+
what's the ONE thing you could accomplish this year
|
|
70
|
+
that would make everything else easier?
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
*Must be specific and measurable.*
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### Boss Fight (This Month)
|
|
78
|
+
```
|
|
79
|
+
What project, if completed this month,
|
|
80
|
+
would be the biggest step toward that 1-year goal?
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### Daily Quests (This Week)
|
|
86
|
+
```
|
|
87
|
+
Name 3 daily actions that move the needle.
|
|
88
|
+
|
|
89
|
+
Format: [action] → [outcome it creates]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
*Example*:
|
|
93
|
+
- Write 500 words → builds the book
|
|
94
|
+
- No phone before 9am → protects deep work
|
|
95
|
+
- 30 min walk → clears head, resets energy
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### Rules (Personal Constraints)
|
|
100
|
+
```
|
|
101
|
+
What are 2-3 rules you need to protect your progress?
|
|
102
|
+
|
|
103
|
+
Format: "I don't [behavior]" or "I always [behavior]"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
*Example*:
|
|
107
|
+
- I don't check messages before 10am
|
|
108
|
+
- I always ship something before consuming content
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Phase 2 Close
|
|
113
|
+
|
|
114
|
+
Compile their full game:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
**YOUR LIFE GAME**
|
|
118
|
+
|
|
119
|
+
🏆 Win Condition: [their 3-year vision]
|
|
120
|
+
💀 Game Over: [their anti-vision]
|
|
121
|
+
|
|
122
|
+
🗺️ Main Quest (1 year): [their 1-year goal]
|
|
123
|
+
⚔️ Boss Fight (this month): [their monthly project]
|
|
124
|
+
|
|
125
|
+
📋 Daily Quests:
|
|
126
|
+
- [action 1]
|
|
127
|
+
- [action 2]
|
|
128
|
+
- [action 3]
|
|
129
|
+
|
|
130
|
+
📜 Rules:
|
|
131
|
+
- [rule 1]
|
|
132
|
+
- [rule 2]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Then say:
|
|
136
|
+
```
|
|
137
|
+
One phase left. The hardest one.
|
|
138
|
+
Ready?
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Load `phase-3-commit.md`.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Phase 3: Commit
|
|
2
|
+
|
|
3
|
+
**Goal**: Convert the game plan into a saved document + one immediate action.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## The Commitment Problem
|
|
8
|
+
|
|
9
|
+
Most people fail here. Not because of bad plans.
|
|
10
|
+
Because they never commit to the identity behind the plan.
|
|
11
|
+
|
|
12
|
+
Say:
|
|
13
|
+
```
|
|
14
|
+
The game is designed. Now the real question:
|
|
15
|
+
|
|
16
|
+
Who do you need to become to win this game?
|
|
17
|
+
|
|
18
|
+
Name that person in 3 words or less.
|
|
19
|
+
(Example: "focused creator", "disciplined builder", "present father")
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Identity Lock
|
|
25
|
+
|
|
26
|
+
After they answer, say:
|
|
27
|
+
```
|
|
28
|
+
From now on, every decision runs through one filter:
|
|
29
|
+
|
|
30
|
+
"What would [their 3 words] do here?"
|
|
31
|
+
|
|
32
|
+
That's it. That's the whole system.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## The One Action
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
What's ONE thing you can do in the next 24 hours
|
|
41
|
+
that signals — to yourself — that you're now playing this game?
|
|
42
|
+
|
|
43
|
+
Not a big thing. A real thing.
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
*Must be specific. "Start journaling" is not specific. "Write 3 sentences tonight" is.*
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Save the Game
|
|
51
|
+
|
|
52
|
+
Say:
|
|
53
|
+
```
|
|
54
|
+
I'll save this as your Game Plan.
|
|
55
|
+
Want me to save it to your workspace?
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
If yes → write to `workspace/outputs/life-game-{YYYY-MM-DD}.md` with this template:
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
# Life Game — {date}
|
|
62
|
+
|
|
63
|
+
## Identity
|
|
64
|
+
**I am**: {their 3 words}
|
|
65
|
+
|
|
66
|
+
## Stakes
|
|
67
|
+
**Win**: {3-year vision}
|
|
68
|
+
**Game Over**: {anti-vision}
|
|
69
|
+
|
|
70
|
+
## Quest Log
|
|
71
|
+
|
|
72
|
+
| Quest | Description |
|
|
73
|
+
|-------|-------------|
|
|
74
|
+
| Main Quest (1 year) | {1-year goal} |
|
|
75
|
+
| Boss Fight (this month) | {monthly project} |
|
|
76
|
+
| Daily Quest 1 | {action} → {outcome} |
|
|
77
|
+
| Daily Quest 2 | {action} → {outcome} |
|
|
78
|
+
| Daily Quest 3 | {action} → {outcome} |
|
|
79
|
+
|
|
80
|
+
## Rules
|
|
81
|
+
{rules as bullet list}
|
|
82
|
+
|
|
83
|
+
## Next Action (24h)
|
|
84
|
+
- [ ] {their one action}
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
*Generated by fix-my-life skill*
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Closing
|
|
93
|
+
|
|
94
|
+
After saving (or if they decline), say:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
**Session complete.**
|
|
98
|
+
|
|
99
|
+
What you did today:
|
|
100
|
+
- Named what's broken (most people never do this)
|
|
101
|
+
- Designed a system, not just a goal
|
|
102
|
+
- Committed to an identity
|
|
103
|
+
|
|
104
|
+
The gap between who you are and who you want to be
|
|
105
|
+
is just a series of daily quests.
|
|
106
|
+
|
|
107
|
+
Start yours today.
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Optional: Weekly Check-in
|
|
113
|
+
|
|
114
|
+
If they want accountability, say:
|
|
115
|
+
```
|
|
116
|
+
One more thing — set a reminder for 7 days from now.
|
|
117
|
+
|
|
118
|
+
Ask yourself:
|
|
119
|
+
- Did I run my daily quests?
|
|
120
|
+
- Did I make progress on the boss fight?
|
|
121
|
+
- Did I act like [their identity]?
|
|
122
|
+
|
|
123
|
+
That's the whole review. Keep it short. Keep playing.
|
|
124
|
+
```
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Skill Evolution — Optional Configuration
|
|
2
|
+
#
|
|
3
|
+
# Everything works out of the box with zero config.
|
|
4
|
+
# This file is ONLY needed if you want to use a private registry.
|
|
5
|
+
|
|
6
|
+
# --- Private registry (advanced) ---
|
|
7
|
+
# Override to use your own Supabase instance instead of the public registry.
|
|
8
|
+
#
|
|
9
|
+
# SUPABASE_URL=
|
|
10
|
+
# SUPABASE_ANON_KEY=
|
|
11
|
+
# SUPABASE_SERVICE_KEY=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Contributing to Skill Evolution
|
|
2
|
+
|
|
3
|
+
## Publishing a Skill
|
|
4
|
+
|
|
5
|
+
The easiest way to contribute is to publish a skill you've built:
|
|
6
|
+
|
|
7
|
+
1. Create a skill following the structure in `references/structure.md`
|
|
8
|
+
2. Test it in your own project
|
|
9
|
+
3. Run `publish.py --skill-name <name>` to preview (default behavior, no upload)
|
|
10
|
+
4. Fix any sanitize warnings (secrets, hardcoded paths)
|
|
11
|
+
5. Publish with `publish.py --skill-name <name> --yes`
|
|
12
|
+
|
|
13
|
+
Your skill will be immediately searchable by any agent using the registry.
|
|
14
|
+
|
|
15
|
+
## Improving an Existing Skill
|
|
16
|
+
|
|
17
|
+
When you fork and improve someone else's skill:
|
|
18
|
+
|
|
19
|
+
1. Install the skill: `install.py --name <name>`
|
|
20
|
+
2. Modify it locally for your use case
|
|
21
|
+
3. Publish as your variant: `publish.py --skill-name <name> --variant <your-name> --yes`
|
|
22
|
+
|
|
23
|
+
The system automatically tracks lineage via `parent_id`.
|
|
24
|
+
|
|
25
|
+
## Skill Quality Guidelines
|
|
26
|
+
|
|
27
|
+
Good skills share these traits:
|
|
28
|
+
|
|
29
|
+
- **SKILL.md ≤ 300 lines** — routing layer only, details in references/
|
|
30
|
+
- **Clear triggers** — description says exactly when the skill should activate
|
|
31
|
+
- **Scripts work standalone** — `--help` works, exits with proper codes
|
|
32
|
+
- **No hardcoded secrets** — use `requires_env` to declare needed variables
|
|
33
|
+
- **Tested in production** — at least one real use before publishing
|
|
34
|
+
|
|
35
|
+
## Code Contributions
|
|
36
|
+
|
|
37
|
+
For changes to the scripts themselves (publish.py, search.py, install.py, uninstall.py, merge.py, review.py, audit.py):
|
|
38
|
+
|
|
39
|
+
1. Fork this repo
|
|
40
|
+
2. Make your changes
|
|
41
|
+
3. Test: run `--help` on all modified scripts to verify they load
|
|
42
|
+
4. Submit a PR with what you changed and why
|
|
43
|
+
|
|
44
|
+
## Bug Reports
|
|
45
|
+
|
|
46
|
+
Open an issue with:
|
|
47
|
+
- What you tried to do
|
|
48
|
+
- What happened instead
|
|
49
|
+
- The error message (scripts prefix errors with `ERROR:`)
|
|
50
|
+
|
|
51
|
+
## Registry Setup
|
|
52
|
+
|
|
53
|
+
Want to run your own registry? See `setup.sql` — it's one file, takes 5 minutes on Supabase free tier.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 DutyAI
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|