When you want to manage projects across your businesses using a kanban + Eisenhower methodology. One kanban per business (whatever portfolio of businesses, projects, or initiatives you run). Tool-agnostic — connects via API/MCP to whatever PM tool each business uses (Notion, GitHub Projects, Plane, Linear, Obsidian file-based, or manual mode). Async-first output. Six modes — setup (scaffold a new board for a business), triage (Eisenhower-sort the backlog), next (pick the next thing to work on, single board or across all), status (paste-ready async snapshot), unblock (diagnose Review/Blocked column), weekly (Friday pulse + week planning). Triggers on "/pm," "/pm setup," "/pm triage," "/pm next," "/pm status," "/pm unblock," "/pm weekly," "what should I work on next," "kanban status," "Eisenhower this," "triage my backlog," "what's blocked.
npx skills add https://github.com/coreyhaines31/makerskills --skill pm
Methodology-first project management. Kanban + Eisenhower + async. One board per business. Tool-agnostic via adapters.
Each business gets its own kanban with 5 columns:
Backlog → Ready → In Progress → Review/Blocked → Done/Archived
Eisenhower sits on top of the board — used to triage Backlog → Ready (which items make the cut) and to pick next from Ready (which Ready item to pull).
Urgent Not Urgent
Important Q1: Do Q2: Schedule ← Q2 is the high-leverage zone
Not Important Q3: Delegate Q4: Delete
Async-first: every status snapshot should read like a Loom you didn't have to record. Make work visible without requiring a meeting.
Parse the invocation:
| Invocation | Mode | Target |
|---|---|---|
| /pm setup [business] | setup | the named business |
| /pm triage [business] | triage | the named business (or ask) |
| /pm next [business] | next | the named business |
| /pm next | next | across all boards (cross-portfolio) |
| /pm status [business] | status | the named business (or ask) |
| /pm unblock [business] | unblock | the named business (or ask) |
| /pm weekly | weekly | all boards (Friday pulse) |
| /pm weekly [business] | weekly | the named business |
Read ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.md (personal — real business list + tool mapping per business). Falls back to references/boards.md in the repo if the local file doesn't exist yet — that's a template.
Also try to load ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/team.local.md if present — this is where the user lists partners, active clients, and typical blocker phrasings. Use it to make status output specific ("Waiting on <partner>'s review") instead of generic.
| Field | Example |
|---|---|
| business | <slug> |
| tool | notion / github / plane / linear / obsidian / manual |
| board_id or URL | tool-specific |
| column overrides | only if this board doesn't use the default 5 columns |
If the business has no mapping yet, jump to setup automatically — ask which tool, save the mapping, return to the requested mode.
Read the relevant section of references/adapters.md for the tool. Each adapter section explains how to:
Adapters use:
$NOTION_API_KEY (already in zshenv). Database with Status select property.gh CLI (already authed). gh project item-list, gh project item-edit.$PLANE_API_KEY and workspace slug).${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.md (NOT to references/boards.md in the repo — that's a template only). Create the parent directory if it doesn't exist yet./pm next with no business): pull Ready from every board, Eisenhower-rank, recommend top 1–3 across all businesses. Bias toward Q1 then Q2.Generate an async-shareable snapshot:
# [Business] — Status as of YYYY-MM-DD
**Shipped this week:** N cards
- <card title>
- <card title>
**In progress:** N cards
- <card title> — <who/what>
**Review/Blocked:** N cards
- <card title> — blocked on <reason>
**Up next:** top 2–3 from Ready
- <card title>
- <card title>
**Open question:** <one thing that would unblock progress if answered>
Output is paste-ready for Slack, Notion, email, partner DM.
Friday pulse + planning:
Default WIP per column (override in your local boards.md per business):
| Column | Default WIP |
|---|---|
| In Progress | 3 |
| Review/Blocked | (no limit — but flag if >5) |
If WIP exceeded in next mode, don't pull more — recommend finishing or moving something to Review/Blocked first.
When generating status / weekly outputs:
decide — when a project hits a real decision, route to /decidedeep-research — when a card needs research before it's actionablebusiness-brainstorm — when an idea on the Backlog deserves pressure-testing before triagejab-hook — when status / shipped items become BIP-post materialproject_*.md) — for portfolio context per businessboards.md per business if truly needed). If the cap is hit, don't pull more — recommend finishing or moving something to Review/Blocked.Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, search vault content, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.
Comprehensive project architecture blueprint generator that analyzes codebases to create detailed architectural documentation. Automatically detects technology stacks and architectural patterns, generates visual diagrams, documents implementation patterns, and provides extensible blueprints for maintaining architectural consistency and guiding new development.
Securely inspect and automate microscopy data workflows against OMERO.server with omero-py, BlitzGateway, OMERO CLI, tables, annotations, ROIs, rendering, and documented OMERO.web APIs. Use for scoped OMERO inventory, metadata export, import/export planning, or reviewed write workflows.
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".
Master API documentation with OpenAPI 3.1, AI-powered tools, and modern developer experience practices. Create interactive docs, generate SDKs, and build comprehensive developer portals.
Creates comprehensive API changelogs documenting breaking changes, deprecations, and migration strategies for API consumers. Use when managing API versions, communicating breaking changes, or creating upgrade guides.
Master API documentation with OpenAPI 3.1, AI-powered tools, and modern developer experience practices. Create interactive docs, generate SDKs, and build comprehensive developer portals. Use PROACTIVELY for API documentation or developer portal creation.
Analyze fundamental data primitives, type systems, and state management patterns in a codebase. Use when (1) evaluating typing strategies (Pydantic vs TypedDict vs loose dicts), (2) assessing immutability and mutation patterns, (3) understanding serialization approaches, (4) documenting state shape and lifecycle, or (5) comparing data modeling approaches across frameworks.
Take coreyhaines31/pm from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.