project-stateby Atomic47 Labs
How it works

Four moves from signal to sign-off.

Own the intelligence layer

Every signal — Slack, email, docs, repos, calendars — flows into one substrate that’s yours. Stop reconstructing the story for each audience.

Tap the streams you already run on

Connect the channels where work actually happens. Decisions, risks and commitments are captured as they’re made, not weeks later.

Close the gaps before someone asks

Un-owed decisions, drifting milestones, missing evidence — the silent killers — surfaced the moment they appear. Oversight without overhead.

Reporting becomes a side-effect

Quarterly claims, board packs, weekly status, audit responses — drafted from the same intelligence, on the cadence each audience expects. You review, you don’t author.

The one idea

Record once. Report forever.

STATESKILLSSURFACES
project-state/
The substrate. The single place facts live.
all arrows originate here ↗
skills render facts
status
funder
blog
review
surfaces
Email draft
Slack post
.docx pack
Website post

Reports don't hold facts — they render them. Fix the state, and every report regenerates correct.

The substrate

The memory is a folder you can read.

project-state/
manifest.yaml  ← who, what, which pack
reporting-matrix.yaml  ← who needs what, when
milestones/  M01…M13
risks/  R-01…R-11
decisions/  5 recorded
changes/  change-log + orders
documents/  inbox/ + curated
logs/activity.ndjson  427, append-only
No database. No SaaS lock-in.

Plain YAML / JSON / NDJSON on a shared drive. Anyone with drive access and Claude has the full picture.

file-per-entityappend-only logsadvisory locks · 300sfrontmatter timestamps
Configure

Four settings. Five minutes.

One-time setup. Secrets live in 0600 files on your machine — not a keychain, not a cloud.

1
Anthropic API key

Stored in a local 0600 file. Powers the skills and the apps agentic jobs.

2
GitHub token (sync)

A token with contents read/write so project-git can sync your substrate to a private GitHub hub. Teams can share one token; commits author with each persons git identity.

3
Workspace

Point the desktop app at a folder (local or shared drive). It manages one or many projects from there, reading each substrate live.

4
Connectors (optional, read-only)

Authorize via OAuth in Claude Desktop \u2192 Integrations. The harvester reads; nothing is ever written back to your tools.

SlackGmailGoogle DocsGoogle CalendarJiraConfluenceLinearscsiwyg
Three ways in

Start however you like.

Fresh, from something that already exists, or just to try it on a real thing.

New project

A guided setup picks your compliance pack, captures identity, stakeholders, and milestones, and seeds the reporting matrix.

/project-scaffolder
/project-intake

Guided wizard (~10 min) or doc-driven fast path

Existing project

Already have a substrate in a repo or on a shared drive? Point at it — no re-scaffolding. Immediately queryable.

/project-admin pull <url>

Or open the folder in keep-state-app

Adhoc

Just want to see it work? Drop a few documents into the inbox and let intake extract structure. Real value in ten minutes.

/project-inbox

Drop files into documents/inbox/, then triage

Operate it day to day

Same substrate, two surfaces. Talk to it in Claude Cowork, or drive it in the desktop app.

In Claude Cowork

Say what you want in plain English; the orchestrator routes it to the right skill.

“What should I do today?”
project-orchestrator — calendar-aware brief of what’s due, overdue, and on deck
“Harvest signals”
project-harvester — pulls Slack/Gmail/GDocs/Jira/Confluence/Linear into the inbox
“Triage the inbox”
project-inbox — classifies and routes each dropped/harvested item
“Update M03 to 60%”
project-milestone-manager — sets progress, logs the activity
“Record this decision”
project-state — writes the decision, appends the activity log
“Flag a risk: vendor timeline slipping”
project-state — opens a tracked risk
“Draft the weekly status”
project-status-reporter — generates the report from current state
“Draft the quarterly claim”
project-funder-reporting — assembles the claim, drafts the email (never sends)

In keep-state-app

The desktop UI reads your substrate live on every load. No sync step, no stale view.

Today

The orchestrator brief — urgent, this-week, on-deck. Click an item to run the skill.

Dashboard

Milestone burndown, Gantt, top risks, recent decisions, budget at a glance.

Kanban

Milestone board; drag to update progress.

Milestones

Full details with substrate-grounded chat-to-edit.

Documents

Chain of custody — inbox → working → published; chat-to-edit inline.

Processing

The agentic job queue — harvest, triage, report generation, live.

Reporting Matrix

Who gets what, at what cadence, in what format, on which surface.

System Config

API key, GitHub token, workspace — secrets in 0600 files, not the keychain.