Agent skill

Project Manager

by espennilsen in espennilsen/pi

Manage Espen's projects across the Dev folder and Obsidian vault.

MITAuto-check passedProduct & Project Management

Install Project Manager

skills CLI
$ npx skills add espennilsen/pi --skill project-manager -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install espennilsen/pi project-manager --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/espennilsen/pi.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/project-manager .claude/skills/project-manager && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
project-manager
GitHub stars
122
Token cost
~2.1k tokens
SKILL.md length
450 words
Files
1
Skills in repo
36
Repo updated
First seen
Licence
MIT

At a glance

Manage Espen's projects across the Dev folder and Obsidian vault.

  • Works in 8 steps: Project Status Overview → Single Project Deep Dive → Create New Project → …
  • Project status checks
  • SKILL.md covers ⚠️ Safety, Paths, Known Projects and Operations, plus 2 more sections
  • Calls git and sqlite3

What it does

Project Manager is an agent skill from espennilsen/pi. Manage Espen's projects across the Dev folder and Obsidian vault. Use for project status checks, creating new projects, syncing between code repos and vault notes, archiving, and cross-project search.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Product & Project Management, covering Project management. It works with Obsidian and Model Context Protocol. The licence is MIT.

When your agent uses it

  • Project status checks
  • Creating new projects
  • Syncing between code repos and vault notes
  • Cross-project search

Example prompts

  • “/project-manager”

Requirements

  • Docker

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Project Status Overview
  2. Single Project Deep Dive
  3. Create New Project
  4. Archive a Project
  5. Cross-Project Search
  6. Sync Check
  7. Task Management
  8. Hannah Job Stats by Project

What it can do on your machine

Read from SKILL.md and the folder at commit 79d019b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • sqlite3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Project Manager loads about 2.1k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 450 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~54
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from espennilsen/pi at commit 79d019b, republished under its MIT licence (© espennilsen). 450 words, ~2,088 tokens.

Download SKILL.mdSave it as .claude/skills/project-manager/SKILL.md (or your agent's skills folder).
name
project-manager
description
Manage Espen's projects across the Dev folder and Obsidian vault. Use for project status checks, creating new projects, syncing between code repos and vault notes, archiving, and cross-project search.

Project Manager

Manage projects spanning two systems:

  • Code — /Users/espen/Dev/ (git repos, code, configs)
  • Knowledge — Obsidian vault at /Users/espen/Library/CloudStorage/OneDrive-Espennilsen.net/2-Areas/Digital_Life/Obsidian/e9n (notes, tasks, dashboards)

⚠️ Safety

  • Always confirm before modifying Obsidian vault files. The vault has Dataview queries, templates, and dashboards that depend on consistent structure.
  • Read the vault's AGENTS.md and relevant _Index.md files before creating or editing vault notes.
  • Never force-push, delete branches, or reset git history without explicit confirmation.

Paths

bash
DEV="/Users/espen/Dev"
VAULT="/Users/espen/Library/CloudStorage/OneDrive-Espennilsen.net/2-Areas/Digital_Life/Obsidian/e9n"

Known Projects

Active projects and their locations. Resolve project references against this list first.

ProjectDev PathVault PathStack
pi (Hannah)$DEV/pi1. Projects/AI Projects/Pi (Hannah)Node/TypeScript, Pi agent
e9n.dev$DEV/e9n.dev1. Projects/e9n AgencyEleventy + Tailwind + Pagefind
Starheim$DEV/Starheim1. Projects/StarheimTanStack Start + React + Clerk + oRPC
x10s$DEV/x10s—Node/TypeScript
x10s-pi$DEV/x10s-pi—Monorepo, Docker + K8s
Hovdan Seil AS$DEV/Hovdan Seil AS—Eleventy + Tailwind
hjernedal.no$DEV/hjernedal.no—Next.js + Prisma + AI chatbot
SalesGPT$DEV/SalesGPT—Autonomous sales agent
obsidian-agent$DEV/obsidian-agent—Claude SDK + Obsidian
MCP-Bridge$DEV/MCP-Bridge—OpenAI API → MCP bridge
stoic-tracker$DEV/stoic-tracker—Monorepo, Docker
Sail La Vie$DEV/Sail La Vie—TanStack React + Firebase
LocalBooks$DEV/LocalBooks—React Native
comfyui-cheatsheet$DEV/comfyui-cheatsheet—Vue.js
ClaudeCode$DEV/ClaudeCode—Developer toolkit
CrewMap—1. Projects/CrewMap—
VibeBox—1. Projects/VibeBox—
Languages—1. Projects/LanguagesThai + Spanish
Health—1. Projects/HealthBodybuilding, C25K, Weight Loss
Sales Coaching—1. Projects/Sales CoachingMEDDPICC
University Courses—1. Projects/University CoursesAcademic

Operations

1. Project Status Overview

Get a quick status across all active projects:

bash
# All git repos sorted by last commit (most recent first)
# Shows: project name, last commit timestamp, dirty file count
(for d in $DEV/*/; do
  [ -d "$d/.git" ] || continue
  name=$(basename "$d")
  ts=$(git -C "$d" log -1 --format='%ct' 2>/dev/null)
  date=$(git -C "$d" log -1 --format='%ai' 2>/dev/null | cut -d' ' -f1)
  ago=$(git -C "$d" log -1 --format='%ar' 2>/dev/null)
  dirty=$(git -C "$d" status --porcelain 2>/dev/null | wc -l | tr -d ' ')
  week=$(git -C "$d" log --oneline --since="7 days ago" --no-merges 2>/dev/null | wc -l | tr -d ' ')
  flag=""
  [ "$dirty" -gt 0 ] && flag=" ⚠️ ${dirty} dirty"
  [ "$week" -gt 0 ] && flag="${flag} 📝 ${week} this week"
  echo "${ts:-0}|${name}|${date:-never}|${ago:-never}${flag}"
done) | sort -t'|' -k1 -rn | cut -d'|' -f2-
bash
# Obsidian project status
cat "$VAULT/1. Projects/_Index.md"
2. Single Project Deep Dive

For a specific project, gather comprehensive status:

bash
PROJECT="project-name"

# Git status
git -C "$DEV/$PROJECT" status
git -C "$DEV/$PROJECT" log --oneline -10

# Recent changes
git -C "$DEV/$PROJECT" diff --stat HEAD~5 2>/dev/null

# Tech stack detection
ls "$DEV/$PROJECT/package.json" "$DEV/$PROJECT/Cargo.toml" "$DEV/$PROJECT/pyproject.toml" "$DEV/$PROJECT/go.mod" 2>/dev/null
cat "$DEV/$PROJECT/package.json" 2>/dev/null | head -20

# README / docs
cat "$DEV/$PROJECT/README.md" 2>/dev/null | head -50

# Open issues (if using GitHub)
# Check for TODO/FIXME/HACK
grep -rn "TODO\|FIXME\|HACK\|XXX" "$DEV/$PROJECT/src/" --include="*.ts" --include="*.tsx" --include="*.js" 2>/dev/null | head -20

For the vault side:

bash
# Find related vault notes
find "$VAULT" -name "*.md" -path "*/Projects/*" | xargs grep -l "$PROJECT" 2>/dev/null
3. Create New Project

When starting a new project, set up both systems:

Dev side:

bash
mkdir -p "$DEV/new-project"
cd "$DEV/new-project"
git init
# ... scaffold based on stack

Vault side (confirm with Espen first):

  1. Read the Project Template: cat "$VAULT/Templates/Project Template.md"
  2. Create the project note in 1. Projects/ following the template
  3. Add correct frontmatter and tags per 🏷️ Tag Taxonomy.md
  4. Update 1. Projects/_Index.md if it's not auto-generated by Dataview
Show full SKILL.md (155 more words)Show less
4. Archive a Project

Move a project to archived/inactive state:

Dev side:

bash
# Ensure clean state
git -C "$DEV/$PROJECT" status
# Confirm no uncommitted work, then optionally:
mv "$DEV/$PROJECT" "$DEV/! Archive/"

Vault side (confirm first):

  1. Move the project folder from 1. Projects/ to 4. Archive/
  2. Update tags: change #project/active to #project/completed or #project/archived
  3. Add completion date to frontmatter

Search across all code repos and vault notes:

bash
# Search code
grep -rl "search term" $DEV/*/src/ --include="*.ts" --include="*.tsx" --include="*.py" 2>/dev/null | head -20

# Search vault
grep -rl "search term" "$VAULT" --include="*.md" 2>/dev/null | head -20

# Search git history across projects
for d in $DEV/*/; do
  [ -d "$d/.git" ] || continue
  result=$(git -C "$d" log --all --oneline --grep="search term" 2>/dev/null | head -3)
  [ -n "$result" ] && echo "=== $(basename "$d") ===" && echo "$result"
done
6. Sync Check

Verify Dev projects and Obsidian are in sync:

bash
# Projects in Dev that might need vault notes
for d in $DEV/*/; do
  [ -d "$d/.git" ] || continue
  name=$(basename "$d")
  recent=$(git -C "$d" log -1 --format='%ar' 2>/dev/null)
  vault_match=$(find "$VAULT/1. Projects" "$VAULT/2. Areas" -name "*.md" 2>/dev/null | xargs grep -l "$name" 2>/dev/null | head -1)
  if [ -z "$vault_match" ]; then
    echo "⚠️  $name (last: $recent) — no vault note found"
  fi
done
bash
# Vault projects that might not have Dev repos
for d in "$VAULT/1. Projects/"*/; do
  name=$(basename "$d")
  dev_match=$(ls -d "$DEV/$name" 2>/dev/null || ls -d "$DEV/"*"$name"* 2>/dev/null | head -1)
  if [ -z "$dev_match" ]; then
    echo "📝 $name — vault-only (no Dev repo)"
  fi
done
7. Task Management

Work with the Obsidian TaskNotes system:

bash
# Open tasks across all projects
find "$VAULT/Tasks/" -name "*.md" -exec grep -l "#status/active\|#status/in-progress" {} \; 2>/dev/null

# Tasks for a specific project
grep -rl "$PROJECT" "$VAULT/Tasks/" --include="*.md" 2>/dev/null
8. Hannah Job Stats by Project

Query Hannah's DB for per-channel/project usage:

bash
sqlite3 /Users/espen/Dev/pi/hannah.db "
  SELECT channel, COUNT(*) as jobs,
    printf('\$%.4f', SUM(cost_total)) as cost,
    SUM(total_tokens) as tokens,
    printf('%.1fs', AVG(duration_ms)/1000.0) as avg_dur
  FROM jobs
  WHERE created_at >= datetime('now', '-7 days')
  GROUP BY channel
  ORDER BY jobs DESC;
"

Output Format

When reporting project status, use this structure:

markdown
## Project Status: [name]

**Code:** [Dev path] | **Vault:** [vault path or "—"]
**Stack:** [tech stack]
**Last commit:** [relative time] | **Dirty:** [yes/no]

### Recent Activity
- [commit summaries or "No recent commits"]

### Open Items
- [TODOs, tasks, blockers]

### Vault Notes
- [Related notes or "No vault notes found"]

Conventions

  • When Espen says a project name, resolve it against the Known Projects table first
  • For ambiguous names, ask which project is meant
  • Default time window for "recent" is 7 days
  • Always show both Dev and Vault status when both exist
  • Use relative paths in output (~/Dev/project not full paths) for readability
  • When creating vault notes, always use existing Templater templates

© espennilsen, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/project-manager of espennilsen/pi.

Open the folder on GitHubat commit 79d019b

Compare with similar skills

Project Manager next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Project Manager compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Project Manager this skillespennilsen/pi122—~2.1kAutomated safety check: PassMIT
Jira Natural Language Interfacejjmartres/opencode1333 repos~1.7kAutomated safety check: PassMIT
Fireauto Project Guideimgompanda/fireauto140—~674Automated safety check: PassMIT
Roam Milestone PlanningCranot/roam-code517—~1.2kAutomated safety check: PassApache-2.0
Project ManagerTh0rgal/sandboxed.sh515—~1.8kAutomated safety check: PassMIT
Pm Skillsalirezarezvani/claude-skills28k—~2.6kAutomated safety check: PassMIT

Similar skills

  • Lets an agent view, create, update and transition Jira issues in natural language, automatically choosing between the jira CLI and Atlassian MCP tools.

    133 GitHub starsUsed in 3 repos~1.7k tokens
    Product & Project ManagementAuto-check passed
  • Fireauto Project Guide

    imgompanda/fireauto

    프로젝트 생성, 마일스톤 관리, 태스크 추적이 필요할 때 사용하세요. An agent skill from imgompanda/fireauto.

    140 GitHub stars~674 tokensUpdated 6 mo ago
    Product & Project ManagementAuto-check passed
  • Roam Milestone Planning

    Cranot/roam-code

    Define or revise a Roam product milestone and its engineering, adoption and offer-readiness sequence.

    517 GitHub stars~1.2k tokensUpdated 5 days ago
    Product & Project ManagementAuto-check passed
  • Project Manager

    Th0rgal/sandboxed.sh

    Steer sandboxed.sh projects, roadmaps, decisions from chat. An agent skill from Th0rgal/sandboxed.sh.

    515 GitHub stars~1.8k tokensUpdated today
    Product & Project ManagementAuto-check passed
  • Pm Skills

    alirezarezvani/claude-skills

    A skill your agent uses when coordinating project-delivery work across the 8 project-management sub-skills — sprint/velocity analytics, portfolio health, Jira/JQL, Confluence, Atlassian admin…

    28k GitHub stars~2.6k tokensUpdated 1 mo ago
    Product & Project ManagementAuto-check passed
  • Linear

    asgeirtj/system_prompts_leaks

    Read and manage software issues, tickets, projects, and planning data in Linear.

    69k GitHub stars~653 tokensUpdated today
    Product & Project ManagementAuto-check passed

More from espennilsen/pi

All 36 skills in this repo
  • GitHub

    espennilsen/pi

    Interact with GitHub repos, PRs, issues, CI, and notifications via the pi-github extension commands and gh CLI.

    122 GitHub stars~1k tokensUpdated 17 days ago
    Auto-check passed
  • Skill Creator

    espennilsen/pi

    Create, review, and improve skills for Pi agents. An agent skill from espennilsen/pi.

    122 GitHub stars~2.1k tokensUpdated 17 days ago
    Auto-check passed
  • Dry Code Review

    espennilsen/pi

    Perform a comprehensive DRY (Don't Repeat Yourself) code review on a codebase.

    122 GitHub stars~1.7k tokensUpdated 17 days ago
    Auto-check passed
  • Extract Design System

    espennilsen/pi

    Reverse-engineer a design system from a live website (public URL or localhost).

    122 GitHub stars~2k tokensUpdated 17 days ago
    Auto-check passed
  • Herdr Operations

    espennilsen/pi

    A skill your agent uses when inspecting or operating Herdr sessions, workspaces, tabs, panes, agents, terminal output, agent messaging, or waits.

    122 GitHub starsUsed in 1 repo~525 tokens
    Auto-check passed
  • PDF Reader

    espennilsen/pi

    Read and extract content from PDF files — text, tables, metadata, and images.

    122 GitHub stars~1.6k tokensUpdated 17 days ago
    Auto-check passed

Questions about Project Manager

What does Project Manager do?

Manage Espen's projects across the Dev folder and Obsidian vault. Project Manager is an agent skill from espennilsen/pi. Manage Espen's projects across the Dev folder and Obsidian vault.

When should I use Project Manager?

Project Manager fits situations like: project status checks; creating new projects; syncing between code repos and vault notes; cross-project search.

How do I install Project Manager in Claude Code?

Run `npx skills add espennilsen/pi --skill project-manager -a claude-code`. Or copy the skill folder (skills/project-manager in espennilsen/pi) into .claude/skills/project-manager in your project. Claude Code loads it when a task matches its description.

How do I install Project Manager in Codex?

Run `npx skills add espennilsen/pi --skill project-manager -a codex`. Or copy the skill folder (skills/project-manager in espennilsen/pi) into .agents/skills/project-manager in your project. Codex loads it when a task matches its description.

Can I use Project Manager in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add espennilsen/pi --skill project-manager -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/project-manager, .gemini/skills/project-manager, .github/skills/project-manager and .opencode/skills/project-manager in your project.

What does Project Manager need to run?

Going by SKILL.md and its folder, Project Manager needs the command-line tools its instructions call (git and sqlite3). Our summary lists: Docker.

Does Project Manager access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Project Manager safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Project Manager use?

Project Manager is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Project Manager use?

About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Project Manager?

Skills that share tags, products or a category with Project Manager: Jira Natural Language Interface (jjmartres/opencode, 133 stars), Fireauto Project Guide (imgompanda/fireauto, 140 stars), Roam Milestone Planning (Cranot/roam-code, 517 stars) and Project Manager (Th0rgal/sandboxed.sh, 515 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Project Manager?

espennilsen (a GitHub user) maintains it in espennilsen/pi, which has 122 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on September 21, 2026.

Source: espennilsen/pi on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.