A small collection of pi skills and extensions for engineering work.
Use for non-trivial work when you want a written contract before implementation. It asks only repo-unanswerable questions, writes a single spec.md (or docs/specs/<slug>.md when that directory exists), includes implementation checkboxes plus an append-only progress log, reads it back for correction, and stops. Implementation is a separate step.
Invoke with phrases such as “spec this out,” “write a spec,” “do this spec-driven,” or “SDD.”
Use to stress-test a plan or design before building. It interviews you one question at a time, explores the decision tree, resolves dependencies, and recommends an answer for each question.
Invoke by asking to grill or stress-test a plan.
Use to learn a new skill or concept over multiple sessions. The current directory becomes a teaching workspace. Learning state lives in MISSION.md, RESOURCES.md, NOTES.md, reference/, learning-records/, lessons/, and assets/ as they are created.
Lessons are short, self-contained HTML files in lessons/, numbered 0001-<dash-case-name>.html. They should be grounded in the mission, use trusted sources, include citations, provide practice and feedback, link to related lessons/reference documents, and remind you to ask follow-up questions. Raw source files are evidence and should remain unchanged.
Invoke by asking to learn or be taught something. This skill is user-invoked and does not run automatically.
Use to review changes since a fixed point such as a commit, branch, tag, or merge-base. It checks the diff along two separate axes: Standards, meaning whether the code follows this repo's documented standards plus baseline code-smell heuristics, and Spec, meaning whether the change matches the originating issue or spec.
Invoke when reviewing a branch, PR, work-in-progress changes, or by asking to “review since X.”
Use for codebase walkthroughs and architecture questions such as “how does this work?”, “where should this live?”, or “which package owns this?”. It explains runtime flow, key concepts, file ownership, and gotchas. It can also critique an architecture after explaining it.
Use for rich explanations of code changes, diffs, branches, or PRs. It produces a self-contained interactive HTML file with diagrams and a multiple-choice quiz.
Use to investigate why code or architecture works a certain way. It searches source history and any available issue trackers, docs, chat, observability, error tracking, and analytics sources, then separates direct evidence from inference and documents gaps.
Use to restate the previous response in plain, concise language without jargon. This skill runs only when explicitly invoked.
Always applies when editing prose. It removes common AI writing patterns, vague claims, puffery, filler, and unnecessary jargon while preserving meaning and adding a more natural voice.
Use when adding a clipped article, document, transcript, or source file from raw/ to the local LLM wiki.
Before changing the wiki, read AGENTS.md if one exists in the wiki workspace. Treat raw/ as immutable. Identify sources by canonical or normalized URL first, then domain/path, title, or content similarity. Create or update one summarized page in wiki/sources/, extract durable concepts and entities, add wiki links, update index.md, and append an ingest entry to log.md. Never invent missing facts; mark them TBD or uncertain.
Use when reconciling new versions, changed titles, duplicate sources, conflicting claims, or wiki health.
Keep all raw snapshots unchanged. Compare sources by canonical/normalized URL, source ID, title, and content similarity. Preserve version history and conflicting claims rather than silently replacing older claims. Update related pages, index.md, and log.md. Health checks cover broken wiki links, orphan pages, duplicate concepts, stale claims, missing source index entries, unresolved conflicts, and unsupported claims. Automatically fix only safe link and metadata issues; report substantive judgment calls first.
extensions/browser adds an opt-in Playwright browser to pi. It can navigate pages, inspect runtime state, click, fill forms, capture screenshots, and collect console and network output.
Install its dependencies and browser binary:
cd extensions/browser
npm install
npx playwright-core install chromiumThen install or link the extension into pi's global extensions directory, run /reload, and enable it with /browser on.
The extension is headless by default. Set PI_BROWSER_HEADFUL=1 before starting pi to watch its Chromium window.
- Skill instructions live at
skills/<skill-directory>/SKILL.md. - The browser extension lives at
extensions/browser/. - Keep operational metadata and usage guidance here in
README.md. - Do not add
CLAUDE.mdorAGENTS.mdfiles to this repository.