Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/proguha-skill-development
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/skill-development
What's inside
- Skill name
skill-development- Description
- Create, edit, or tune a Pi skill (a SKILL.md directory). Covers where skills live, frontmatter rules, bundled scripts and references, and the draft, test, and iterate loop, including the description-optimization loop for a skill that did not trigger when it should have.
- License
- MIT
- Instructions
- 34 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- files: referenced but missing: scripts/sync-pstack.mjs
Files (3)
- SKILL.md
- check-skill.mjs · scripts/
- trigger-test.mjs · scripts/
SKILL.md (first lines)
# Skill development A skill is a directory holding `SKILL.md` plus optional `scripts/`, `references/`, and `assets/`. Pi lists each skill's name, description, and path in the system prompt, and the model reads `SKILL.md` when a task matches the description. The description is the only part always in context; everything else loads on demand. For the writing itself (pointers, information hierarchy, completion criteria, leading words, pruning), read the **writing-for-agents** skill when it is installed, and write every line through **unslop**. This skill covers Pi's mechanics and the loops. ## Pi mechanics - **Where it goes.** Project: `.agents/skills/<name>/` (Pi searches from the working directory up to the repository root) or `.pi/skills/<name>/`. Personal: `~/.agents/skills/<name>/` or `~/.pi/agent/skills/<name>/`. Shared: a Pi package's `skills` directory, such as pstack-pi's `skills/`. Keep a pstack skill edit in pstack-pi's `port.json` or `overlay/`, since `scripts/sync-pstack.mjs` regenerates the skills tree. - **Name collisions.** Pi keeps the first skill it finds under a name and warns about the rest. `~/.agents/skills/` is read before package skills, so a copy there shadows a package's skill of the same name. - **Frontmatter.** `name` is lowercase letters, digits, and single hyphens, at most 64 characters, and should equal the directory name. `description` is required, at most 1024 characters, one YAML scalar; quote it or use `description: >-` when it holds a colon or wraps. `disable-model-invocation: true` hides the skill from the model so only `/skill:<name>` runs it. Pi ignores other runtimes' keys, such as Claude Code's `user-invocable`. - **Paths.** Write links and script paths relative to the skill directory; Pi tells the model where the skill lives. Put deterministic work in `scripts/` rather than prose the model reinterprets each run. - **Reload.** After an edit, run `/reload` or start a new session. Startup diagnostics report malformed skills and collisions. ## Draft, test, iterate 1. **Collect concrete cases.** Write three to five real requests the skill must handle and two or three near misses it must leave alone. Each case names what a correct run produces. 2. **Plan the contents.** For each case, decide what the model needs every run (steps in `SKILL.md`), what only some runs need (a `references/` file behind a pointer), and what should be a script. 3. **Draft.** Write the description first: what the skill does and the distinct situations that should trigger it, front-loaded with the words users actually say. Then write the body as steps with completion criteria, plus the reference each step consults. 4. **Check.** Run `node scripts/check-skill.mjs <skill-dir>` from this skill's directory. It checks the frontmatter rules above, relative links, and length. Fix every FAIL. 5. **Test triggering.** Put the cases in a file, one per line, `+ <prompt>` for must-load and `- <prompt>` for must-skip, and run `node scripts/trigger-test.mjs <skill-dir> <cases-file>`. Each case is one real model request with only this skill, only the `read` tool, and no extensions, so pass `--model` to test the model the skill will run under. Tell the user before running it, since it spends tokens. 6. **Test behavior.** Run each must-load case in a fresh session (`pi -p "<prompt>"` or a scratch interactive session) and compare the result against the case's expected output. Watch where the model skipped a step, reached for the wrong reference, or ended early. 7. **Iterate.** Fix the cause each failure shows: sharpen a vague completion criterion, move a buried step up, disclose reference that crowds the steps, or add a script for work the model keeps doing by hand. Rerun steps 4 to 6 until every case passes. ## Description optimization Use this when a skill exists but did not trigger when it should have (`tune description: <skill path>`), or triggered when it should not have. 1. Add the missed or wrong request to the cases file as `+` or `-`, plus one or two paraphrases of it. 2. Run `trigger-test.mjs` and confirm the new cases fail. A case that already passes is not the bug. 3. Edit only the description. Add the missing trigger situation in the user's words, merge synonyms that name one situation, and cut identity the body already carries. Keep it short, since it costs context in every session. 4. Rerun the full cases file. Every earlier case must still pass. Repeat from step 3 until all pass.
From proguha/pstack-pi, MIT.
More from proguha/pstack-pi
- 0.570score
run
proguha
Drive the real program to see a change work and capture evidence, for CLIs, TUIs, servers, and browser or Electron apps.
SkillAFreshness: AClaude Code +9 - 0.565score
babysit
proguha
Watch an open PR — fix failing CI, handle the straightforward review comments, and drive it to a mergeable state.
SkillAFreshness: AClaude Code +9 - 0.557score
setup-pstack
proguha
Configure which models pstack uses per role.
SkillAFreshness: AClaude Code +9 - 0.544score
create-verification-skill
proguha
Generate a project-local verification skill that drives your app the way a user does — any language, framework, or platform.
SkillAFreshness: AClaude Code +9 - 0.541score
interrogate
proguha
Use for "interrogate", "adversarial review", "multi-model review", "challenge this", "stress test this code", "find blind spots", or "tear this apart".
SkillAFreshness: AClaude Code +9 - 0.539score
automate-me
proguha
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…
SkillAFreshness: AClaude Code +9 - 0.537score
how
proguha
Use for "how does X work", code walkthroughs before changing something, and placement / ownership / layering questions ("where should this live", "which…
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 30, 2026 (29 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/proguha/pstack-pi
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from proguha
- 0.570score
run
proguha
Drive the real program to see a change work and capture evidence, for CLIs, TUIs, servers, and browser or Electron apps.
SkillAFreshness: AClaude Code +9 - 0.565score
babysit
proguha
Watch an open PR — fix failing CI, handle the straightforward review comments, and drive it to a mergeable state.
SkillAFreshness: AClaude Code +9 - 0.557score
setup-pstack
proguha
Configure which models pstack uses per role.
SkillAFreshness: AClaude Code +9 - 0.544score
create-verification-skill
proguha
Generate a project-local verification skill that drives your app the way a user does — any language, framework, or platform.
SkillAFreshness: AClaude Code +9 - 0.541score
interrogate
proguha
Use for "interrogate", "adversarial review", "multi-model review", "challenge this", "stress test this code", "find blind spots", or "tear this apart".
SkillAFreshness: AClaude Code +9 - 0.539score
automate-me
proguha
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…
SkillAFreshness: AClaude Code +9
Cite this page
skill-development. Agent Mart. https://agentmart.dev/skills/proguha-skill-development (last updated 2026-10-24)