pi-heartbeat
Configure periodic health checks via HEARTBEAT.md and the /heartbeat command.
Create, review, and improve skills for Pi agents. A skill is a folder with a SKILL.md that teaches an agent specialized workflows, domain knowledge, or tool integrations. Use when asked to create a new skill, improve an existing skill, review a skill for quality, scaffold a
$ npx -y skills add espennilsen/pi --skill skill-creator --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/skill-creatorContext preview
The summary Claude sees to decide when to auto-load this skill.
Create, review, and improve skills for Pi agents. A skill is a folder with a SKILL.md that teaches an agent specialized workflows, domain knowledge, or tool integrations. Use when asked to create a new skill, improve an existing skill, review a skill for quality, scaffold a
name: skill-creator description: > Create, review, and improve skills for Pi agents. A skill is a folder with a SKILL.md that teaches an agent specialized workflows, domain knowledge, or tool integrations. Use when asked to create a new skill, improve an existing skill, review a skill for quality, scaffold a skill from a workflow, or convert documentation into a skill. Also triggers on "make a skill for", "build a skill", "skill for [topic]", "teach the agent to", or "package this workflow as a skill".
Create effective, well-structured skills for Pi agents. This skill covers the full lifecycle: planning, scaffolding, writing, validating, and iterating.
Pi implements the [Agent Skills standard](https://agentskills.io/specification). Skills work across Pi, Claude Code, and the Anthropic API.
A skill is a folder that teaches an agent how to handle specific tasks:
skill-name/ ├── SKILL.md # Required — frontmatter + instructions ├── scripts/ # Optional — executable code (deterministic operations) ├── references/ # Optional — documentation loaded on-demand └── assets/ # Optional — templates, fonts, icons used in output
**Skills are NOT code.** They are structured instructions — like an onboarding guide for a new team member who happens to be an AI.
Before writing anything, answer these questions:
1. **What does the user want to accomplish?** (concrete outcome) 2. **What would they say to trigger it?** (natural language phrases) 3. **What steps are involved?** (the workflow) 4. **What does the agent need that it doesn't already know?** (domain knowledge, scripts, reference docs) 5. **What tools does the agent need?** (bash, web_fetch, extensions, MCP)
Ask 2-3 clarifying questions if the use case isn't clear. Get concrete examples of how the skill would be used before proceeding.
For each step in the workflow, decide what belongs where:
| Content type | Where it goes | When to use | |---|---|---| | Workflow steps, decisions, guidance | SKILL.md body | Core instructions the agent follows | | Executable code that's reused | `scripts/` | Deterministic operations, data processing, validation | | Detailed docs, API refs, schemas | `references/` | Loaded only when the agent needs them | | Templates, images, boilerplate | `assets/` | Files used in output, not loaded into context |
**Key principle:** Only include what the agent doesn't already know. Claude is already smart — don't explain how to write Python or use git. Add the domain knowledge, specific workflows, and tribal knowledge that make this task unique.
Run the init script to create the directory structure:
bash scripts/init-skill.sh <skill-name> [target-directory]
Default target: current working directory. The script creates the folder with SKILL.md template and optional subdirectories.
See [references/writing-guide.md](references/writing-guide.md) for the full writing guide. Key points:
--- name: kebab-case-name description: > What it does + when to use it + specific trigger phrases. Max 1024 chars. This is the ONLY thing loaded by default. ---
The description is the most important part — it determines whether the skill activates. Include:
**Rules:**
Keep SKILL.md body **under 500 lines / ~5000 words**. This goes into the agent's context window alongside conversation history, other skills, and system prompt.
Structure options (pick the best fit):
| Pattern | Best for | Example | |---|---|---| | **Workflow** | Sequential processes | Steps 1→2→3 with validation gates | | **Task-based** | Tool collections | "Merge PDFs" / "Split PDFs" / "Extract text" | | **Reference** | Standards, guidelines | Brand guide with colors / typography / voice | | **Capabilities** | Feature sets | Numbered list of related features |
**Writing rules:**
## Advanced Configuration For database schema details, see [references/schema.md](references/schema.md). For deployment patterns by provider, see: - [references/aws.md](references/aws.md) - [references/gcp.md](references/gcp.md)
The agent reads these files only when it needs them. This is progressive disclosure — keep SKILL.md lean, push detail into reference files.
**Guidelines:**
Run the validation script:
python3 scripts/validate.py <path/to/skill-folder>
Checks: frontmatter format, naming conventions, description quality, file structure, broken references, line count.
Skills are living documents. After real usage:
1. Note where the agent struggles or goes off-track 2. Tighten instructions for problem areas 3. Add error handling for new edge cases 4. Move content between SKILL.md and references as n
This repository is my Pi coding agent home directory. I keep it under version control and symlink it to ~/.pi/agent so Pi loads configuration, extensions, skills, and runtime state from here.
Configure periodic health checks via HEARTBEAT.md and the /heartbeat command.
Manage persistent memory across sessions. Use when asked to remember, recall, forget, or review what was stored. Covers long-term…
Track and manage projects with git status via dashboard and tool.
Delegate tasks to specialized subagents for parallel or sequential execution.
Audit, generate, update, and lint AGENTS.md files across all projects. Use when asked to check project context files, scaffold…