Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions skills/automate-me/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: automate-me
description: "Use for \"automate me\", \"create/update/refresh my -mode skill\", \"turn/capture my preferences or working style into a skill\", or wanting agents to follow how the user works. Drafts or revises a personal -mode skill via create-skill + unslop, optionally pulling fresh evidence from recent transcripts."
description: "Use for \"automate me\", \"create/update/refresh my -mode skill\", \"turn/capture my preferences or working style into a skill\", or wanting agents to follow how the user works. Drafts or revises a personal -mode skill via the host's skill-authoring workflow and unslop, optionally pulling fresh evidence from recent transcripts."
disable-model-invocation: true
---

Expand Down Expand Up @@ -69,12 +69,12 @@ Use the host's skill-authoring workflow to author the skill. Placement:
- Path: preserve an existing mode skill's category. For a new mode, use `.pi/skills/<handle>/<handle>-mode/SKILL.md` when the repo has an established personal category for that handle; otherwise default to `.pi/skills/<handle>-mode/SKILL.md` in the project (or `~/.pi/agent/skills/<handle>-mode/` if the user prefers a personal skill).
- Handle: the user's first name or chosen identifier.
- Frontmatter `description`: trigger on their name + `/<handle>-mode` + "work in their style", not on generic keywords like "write code" or "review PR".
- Frontmatter formatting: follow `create-skill`'s YAML rules. Keep `description` as one YAML scalar; quote it or use `description: >-` with indented continuation lines when punctuation or wrapping requires it.
- Frontmatter formatting follows the Pi Agent Skills contract and `playbooks/authoring-a-skill.md`. Keep `description` as one YAML scalar. Quote it or use `description: >-` with indented continuation lines when punctuation or wrapping requires it.
- Frontmatter `disable-model-invocation: true` by default. Mode skills are heavy and opinionated; they should only apply when the user explicitly invokes them (by name or slash command), not auto-trigger on description matching. Opt out only if the user explicitly wants their mode to apply on every turn.

### 5. Iterate on prose

Apply the **unslop** skill and `create-skill`'s writing guidelines to every line. Both apply to any agent-read prose, not just skills.
Apply the **unslop** skill and the host's skill-authoring workflow to every line. Agent-read prose follows both.

Show the draft to the user and take feedback. Expect multiple iterations. Cut ruthlessly; a mode skill is not a manual.

Expand All @@ -93,13 +93,13 @@ Work in a worktree off main. Commit and open a PR so the user can review it. Don

## Evaluation

A `-mode` skill is subjective output. A `create-skill`-style test/iterate benchmark loop isn't useful here. Vibe-check with the user: does it read like them? Did it miss anything? Then ship.
A `-mode` skill is subjective output. A test/iterate benchmark loop isn't useful here. Vibe-check with the user. Does it read like them? Did it miss anything? Then ship.

Run a description-optimization loop only if the skill's trigger accuracy turns out to be a problem in practice.

## When not to use

- User wants a task-specific skill (not working conventions): `create-skill` alone, no mining required.
- User wants a task-specific skill (not working conventions). Follow `playbooks/authoring-a-skill.md`. No mining required.
- User wants to capture one narrow workflow (e.g. "how I write commit messages"): that's a regular skill, not a mode skill.

## Reference files
Expand Down
4 changes: 2 additions & 2 deletions skills/pstack-reflect/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ For each approved Accepted item, follow the Routing field exactly:

- Trivial existing-skill edit (a one-line bullet, a tightened sentence, a stale fact corrected): parent does directly.
- Substantive existing-skill edit (a new section, a new pattern table, more than ~10 lines): hand to the host's skill-authoring workflow and run its draft / test / iterate loop.
- `tune description: <skill path>` (the skill exists but didn't trigger when it should have): hand to `create-skill` and run its description-optimization loop.
- `new skill via create-skill: <kebab-name>`: hand creation to `create-skill`. Do not invent the shape ad hoc.
- `tune description: <skill path>` (the skill exists but didn't trigger when it should have). Hand to `playbooks/authoring-a-skill.md` and run that playbook's description-optimization loop.
- `new skill via playbooks/authoring-a-skill.md: <kebab-name>`. Hand creation to `playbooks/authoring-a-skill.md`. Do not invent the shape ad hoc.

If your environment ships a SKILL.md validator, run it on every touched skill before declaring done. Skip this step if it doesn't.

Expand Down
4 changes: 2 additions & 2 deletions skills/pstack-reflect/references/synthesizer.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Apply each criterion to every finding:

- Durability: still true in 6 months once paths, SHAs, tool versions, and code shapes have changed.
- Specificity: broad enough to apply across tasks, precise enough that a future agent recognizes when to use it. Reject vague platitudes ("write good code") and hyper-specific facts ("`<specific-skill-name>` has 175 tokens at limit 80").
- Existing-skill-first: propose `new skill via create-skill:` only when no existing skill is a real home, the pattern recurs, and the topic deserves its own skill.
- Existing-skill-first: propose `new skill via playbooks/authoring-a-skill.md:` only when no existing skill is a real home, the pattern recurs, and the topic deserves its own skill.
- Convergence: findings echoed by 2+ reviewers carry higher confidence. Singletons must clear a higher bar on the other criteria.
- Decision-changing: a future agent does something different because of the edit, not just reads more text.
- Structural-mechanism check: route to Backlog when a lint rule, script, metadata flag, or runtime check already enforces the rule or could enforce it cheaply. Skill prose is for things mechanisms cannot enforce.
Expand All @@ -41,7 +41,7 @@ Output exactly the format below. No preamble, no narration. One sentence per cel
|---|---|---|
| <failure mode in a skill the parent used> | <change to that skill's body> | <skill path + section> |
| <skill existed but didn't trigger> | <tune the skill's description so it fires next time> | <tune description: <skill path>> |
| <new pattern, no existing skill is a real home> | <draft a new skill via create-skill> | <new skill via create-skill: <kebab-name>> |
| <new pattern, no existing skill is a real home> | <draft a new skill via playbooks/authoring-a-skill.md> | <new skill via playbooks/authoring-a-skill.md: <kebab-name>> |

One row per finding. The user approves row by row.

Expand Down
1 change: 1 addition & 0 deletions test/resources/resources.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ test("active resources use Pi runtime contracts", async () => {
["unsupported read-write acceptance role", /acceptanceRole:\s*read-write/],
["Comment Sicko spawn", /agent: "Comment Sicko"/],
["doubled subagent", /subagent subagent/],
["create-skill", /create-skill/],
]) {
assert.doesNotMatch(corpus, pattern, `${token} remains in active resources`);
}
Expand Down