Autonomous Project Management
Coordinate multi-step projects with a STATE.yaml pattern — the agent tracks progress, spawns subtasks, and reports without nagging you.
Productivityadvanced~1h setup
- Tools
delegatewrite_fileread_filememoryexec- Channels
telegramdesktop- Uses
subagentscron
Project management apps (Linear, Asana, Jira) work for teams. Solo projects with 20 sub-steps fit none of them well — too much overhead for the writer/coder/researcher who just wants to move forward. The STATE.yaml pattern is dead simple: one file, one source of truth, the agent reads + writes it.
What it does
- Each project has a
STATE.yamlcapturing tasks, status, owners - Agent watches the file, surfaces "what's next?", spawns subagents for parallel-runnable tasks
- Daily morning summary: what moved yesterday, what's blocked, what's on deck for today
- Friday retrospective: progress trend, drift signals, scope creep warnings
What you'll need
- A simple convention for the YAML file structure
- Delegate for parallel subagents
- Cron for daily summaries
Setup
1. Define the STATE.yaml shape
yaml
# ~/projects/<slug>/STATE.yamlproject:name: Flowly Plugin System v1start: 2026-04-01goal: "Ship plugin system enabled by default to all users"tasks:- id: t1title: "Build plugin manifest schema"status: done # todo | in_progress | done | blockedowner: menotes: "Locked in flowly/plugins/manifest.py at commit 57d59ce"- id: t2title: "Wire pre_gateway_dispatch hook"status: in_progressowner: agentnotes: "Started 2026-04-29; testing PII redactor as smoke"- id: t3title: "Desktop Plugins tab UI"status: todoowner: meblocked_by: [t2]- id: t4title: "Documentation pages for use cases"status: todoowner: medecisions:- date: 2026-04-15text: "Plugins run in-process for v1; sandbox is v2"- date: 2026-04-22text: "Manifest format = YAML primary, JSON accepted"
2. Tell the agent about it
Send to Flowly
Remember:
I have a project at ~/projects/<slug>/STATE.yaml using this schema:
- project.{name, start, goal}
- tasks[]: {id, title, status, owner, notes, blocked_by[]}
- decisions[]: {date, text}
When I say "what's next on <slug>?", read the file, find todo tasks
whose blocked_by are all done, list them by priority (blocked-by-count
descending).
When I say "mark <id> done" or "<id> in progress", update STATE.yaml
and confirm.
When I say "log decision: <text>", append to decisions with today's date.
3. Daily morning summary cron
Send to Flowly
Cron "project-summary" daily at 9 AM:
For each project in ~/projects/*/STATE.yaml:
1. Read the file
2. Compute status:
- Tasks done in last 24h
- Tasks moved to in_progress in last 24h
- Currently blocked tasks (and what's blocking them)
- Top 3 todo tasks ready to start (no blockers)
3. Format as Telegram message per project
Send to me. If nothing changed in 24h, single line per project: "no movement".
4. Spawn subagents for parallel work
When you say "work in parallel on t4", the orchestrator:
- Reads STATE.yaml, identifies t4
- Spawns a subagent with the task description and any related memory/files
- Subagent works, reports back; orchestrator updates STATE.yaml
This works best for self-contained tasks (research, draft, code module). Don't spawn for tasks that need multi-step human review.
Tips
- STATE.yaml beats a kanban board for solo projects. Plain text, diffable, version-controllable, no UI to context-switch into.
- Don't list 50 tasks. A project with 50 STATE.yaml entries is miscalibrated. Break into sub-projects or compress to 10–15.
- Decisions log is gold. Future-you with no context will reach for it constantly: "wait, why did we pick YAML over JSON?" — the decision log answers.
- Retrospective every Friday. Brief: what did the agent do well, where did I have to course-correct, what's drifting? Adjust the STATE.yaml and the project trajectory accordingly.
- Don't auto-mark tasks done. Even when the agent thinks a task is complete, require human confirmation. Prevents premature declaration of victory.