Long-term project memory for coding agents.
Coding agents scope to one folder and one session. The things you actually pursue — a job hunt, several side projects, pull requests across repositories — span many folders and many months. Every new session starts with amnesia, and "what should I work on next?" gets answered by whatever folder happens to be open.
This skill gives your agent a persistent, cross-project state layer: plain markdown files you own, one per project, plus a global watchlist that makes syncing cheap and follow-ups automatic.
Ask your agent:
"What's the status of my projects? What should I do next?"
and it reads the watchlist, runs each project's check recipe incrementally (only what changed since last sync), writes history back, and answers with prioritized next actions — across everything, not just the current folder.
~/project-portfolio/
├── _watchlist.md # last-sync date, date/event triggers, watched items
├── job-hunt.md # one file per project: goal, items, next steps, history
├── acme-widgets.md
└── side-projects.md
- Files are the database. Human-readable, greppable, yours. No server, no lock-in — delete the skill and your data still makes sense.
- The watchlist makes sync cheap. Incremental checks driven by a last-sync date instead of polling every item; triggers fire once and are deleted.
- Structure the agent can act on. Each item carries a goal, a next step, a follow-up window, and an impact one-liner written at creation time — so a résumé/review summary is a compile, not an archaeology dig.
This is deliberately more structured than agent "memory" features: goals, triggers, and priorities are things memory won't maintain for you.
Any agent (recommended) — auto-detects Claude Code / Codex / Cursor and installs to each:
npx skills add mc856/project-portfolioClaude Code plugin marketplace:
/plugin marketplace add mc856/project-portfolio
/plugin install project-portfolio
Codex (manual):
git clone https://github.com/mc856/project-portfolio /tmp/pp && cp -r /tmp/pp/skills/project-portfolio ~/.agents/skills/Claude Cowork: download project-portfolio.skill from Releases and drop it into a chat — it installs via the "Save skill" button.
Then just talk to your agent: "start tracking my job hunt" or "track my PRs on acme/widgets".
| Template | For |
|---|---|
project.md |
anything long-term — the generic shape |
github.md |
your pull requests and issues across GitHub repos |
job-hunt.md |
applications, interviews, follow-ups |
side-projects.md |
several personal projects competing for limited time |
Each template ships its own check recipe (how to fetch fresh state) and domain priority notes. Adding a new domain = writing one markdown file. PRs for new templates welcome.
How is this different from CLAUDE.md / agent memory? Those remember how you like to work, per repo. This tracks where your endeavors stand, across repos and outside repos entirely.
How is this different from a dashboard like gh-dash? A dashboard shows real-time state and forgets. This keeps history, goals, and triggers — and the agent acts on them.
Where does my data live? In ~/project-portfolio/ on your machine, plain markdown, outside any repo by default.
MIT
See also: ContextSpec — portable, git-versioned role-context packs for coding agents (Claude Code / Codex).