v2.0

Routine reporting as a byproduct of normal work

project-state is an operational substrate for multi-stakeholder projects. 19 skills and 5 compliance packs turn any project — grant-funded, client-facing, board-reported, or open-source — into a system where status reports, meeting packs, and funder claims write themselves from the state you already maintain.

Download v2.0 (160KB)Read the docsBlog

The problem

Every multi-stakeholder project has the same reporting overhead: weekly status emails, quarterly claims, steering committee packs, board updates, funder reports. The Project Lead writes them by hand, pulling from scattered spreadsheets, email threads, and half-remembered conversations. It takes hours per week and the reports are always slightly stale.

project-state eliminates this by making the state the source of truth. Update a milestone, log a decision, flag a risk — the reports generate themselves from what you already captured.

How it works

Substrate

A typed filesystem (.project-state/) on any shared drive. Plain YAML, JSON, NDJSON, and markdown. No database, no API, no vendor lock-in. File-per-entity with append-only activity logs.

Skills

19 project-* skills that read and write the substrate. Each skill is one coherent job — milestones, reports, meetings, notifications. You talk to Claude; the skills do the work.

Reporting Matrix

A single YAML that encodes "for each stakeholder, what report at what cadence in what format on which surface." The orchestrator reads it and dispatches generators automatically.

Compliance Packs

Pack-specific behavior lives in YAML profiles, not code. The pic-pcais pack knows PIC rules; the board-investor pack knows board cadence. Load one or many.

Surfaces

Reports land where your stakeholders live: Slack (auto-post), Gmail (always draft — never auto-send), Google Calendar, scsiwyg blog, or a static project website.

Phase Presets

Five lifecycle models out of the box: grant, agile, waterfall, client-engagement, open-source. Define your own with custom gates and transitions.

Architecture

SURFACES ──── Slack · Gmail (drafts) · Calendar · Blog · Website
    ▲
SKILLS ────── 19 project-* skills (12 unchanged + 6 profile-driven)
    │              │
    │         reads profiles from
    │              ▼
PACKS ─────── pic-pcais · client-services · board-investor
               agile-default · open-source-community
    │              │
    │         seeds entries into
    │              ▼
MATRIX ────── reporting-matrix.yaml
               "who needs what, when, where"
    │
SUBSTRATE ─── .project-state/ on shared drive
               YAML · JSON · NDJSON · Markdown

19 skills

Each skill is a markdown-defined agent behavior. Install once, use across all your projects.

project-stateMemory layer — read/write/validate every entity
project-scaffolderOne-shot init + reporting matrix seeding
project-phase-gateUser-defined lifecycle phases via presets
project-document-curatorClassify, index, and promote documents
project-milestone-managerCRUD milestones, % complete, progress narrative
project-status-reporterWeekly, SC pack, claim draft, ad-hoc reports
project-orchestratorCalendar-aware conductor — reads matrix, dispatches
project-notifierRoute artifacts to Slack, Gmail (drafts), Calendar
project-review-meetingGeneric meeting lifecycle (SC, board, QBR, retro)
project-funder-reportingStakeholder-bound recurring reports from profiles
project-change-registerMaterial vs. non-material change classification
project-blog-publisherBridge to scsiwyg blog with publication review
project-website-publisherStatic project website with stable URLs
project-onboarderPersonalized onboarding briefs for new teammates
project-ip-trackerIP disclosures with configurable recipient
project-external-commsExternal communication review pipeline
project-lessonsContinuous lessons learned + closeout summary
project-archiveProject closeout and archival
project-doc-suite-generatorStyled .docx + .xlsx baseline report bundles

5 compliance packs

Packs configure skill behavior for specific project types. Multiple packs can coexist on one project.

pic-pcaisproductionPIC-funded PCAIS consortium projects
client-servicesstarterConsulting/client engagements
board-investorstarterPE/VC-backed startups with board cadence
agile-defaultstarterEngineering teams running Scrum/Kanban
open-source-communitystarterCommunity-governed OSS projects

Quick start

1

Download and unzip

cd /path/to/your-project
unzip project-state.zip
2

Symlink the 19 skills

cd ~/.claude/skills
for s in /path/to/project-state/skills/project-*; do
  ln -s "$s" .
done
3

Bootstrap your project

ask claude: "scaffold a new v2 project"
4

Verify

ask claude: "what phase are we in?"
ask claude: "show the reporting matrix"
Full install guide with Cowork setup and verification checklists →

What you can ask

Once installed, these natural-language requests trigger the right skill automatically.

"What should I do this week?"
project-orchestrator
"Draft the quarterly claim"
project-funder-reporting
"Update M03 to 40% — pilot batches 5-10 complete"
project-milestone-manager
"Schedule the next SC meeting"
project-review-meeting
"Log a change — we're swapping vendor"
project-change-register
"Onboard Jane from CDI"
project-onboarder
"Capture a lesson learned"
project-lessons
"Publish to the project website"
project-website-publisher

This project runs on itself

project-state uses its own substrate to track its roadmap, risks, and reports.

1/10
Milestones
11
Risks
10%
Progress
Roadmap →·Risk register →·Baseline reports →·Blog →

Get started

Download the zip, symlink the skills, scaffold your project. The substrate is plain files — if you stop using the skills, your data stays readable forever.

Download v2.0 (160KB)Install guideAuthor a pack