Portfolio Project Manager

/pm — Project management across the portfolio

by coreyhaines31 · MIT license · ★ 855 on GitHub

/pm — Project management across the portfolio cover

When you want to manage projects across your businesses using a kanban + Eisenhower methodology. One kanban per business (whatever portfolio of businesses, projects, or initiatives you run).

---
name: pm
description: When you want to manage projects across your businesses using a kanban + Eisenhower methodology. One kanban per business (whatever portfolio of businesses, projects, or initiatives you run). Tool-agnostic — connects via API/MCP to whatever PM tool each business uses (Notion, GitHub Projects, Plane, Linear, Obsidian file-based, or manual mode). Async-first output. Six modes — setup (scaffold a new board for a business), triage (Eisenhower-sort the backlog), next (pick the next thing to work on, single board or across all), status (paste-ready async snapshot), unblock (diagnose Review/Blocked column), weekly (Friday pulse + week planning). Triggers on "/pm," "/pm setup," "/pm triage," "/pm next," "/pm status," "/pm unblock," "/pm weekly," "what should I work on next," "kanban status," "Eisenhower this," "triage my backlog," "what's blocked."
metadata:
  version: 0.1.1
---

# /pm — Project management across the portfolio

Methodology-first project management. Kanban + Eisenhower + async. One board per business. Tool-agnostic via adapters.

## Mental model

Each business gets its own kanban with 5 columns:

```
Backlog  →  Ready  →  In Progress  →  Review/Blocked  →  Done/Archived
```

Overview

Methodology-first project management. Kanban + Eisenhower + async. One board per business. Tool-agnostic via adapters.

Example prompts

/pm — Project management across the portfolio/pm setup [business]/pm triage [business]/pm next [business]
Manual install (npx, ZIP)
Claude Codenpx skills add coreyhaines31/makerskills --skill pm -g -a claude-code
Claude Code (degit)npx degit coreyhaines31/makerskills/skills/pm#main ~/.claude/skills/pm
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md8.8 KB
Read SKILL.md here
coreyhaines31/main1 file shown
SKILL.md
Show the full text180 lines

/pm — Project management across the portfolio

Methodology-first project management. Kanban + Eisenhower + async. One board per business. Tool-agnostic via adapters.

Mental model

Each business gets its own kanban with 5 columns:

Backlog  →  Ready  →  In Progress  →  Review/Blocked  →  Done/Archived
  • Backlog: everything that might matter — not yet committed
  • Ready: triaged, well-defined, can be picked up
  • In Progress: actively being worked
  • Review/Blocked: waiting on someone else, review, or external dependency
  • Done/Archived: shipped or killed

Eisenhower sits on top of the board — used to triage Backlog → Ready (which items make the cut) and to pick next from Ready (which Ready item to pull).

                Urgent          Not Urgent
Important       Q1: Do          Q2: Schedule    ← Q2 is the high-leverage zone
Not Important   Q3: Delegate    Q4: Delete

Async-first: every status snapshot should read like a Loom you didn't have to record. Make work visible without requiring a meeting.

Step 1 — Detect mode and target

Parse the invocation:

Invocation Mode Target
/pm setup [business] setup the named business
/pm triage [business] triage the named business (or ask)
/pm next [business] next the named business
/pm next next across all boards (cross-portfolio)
/pm status [business] status the named business (or ask)
/pm unblock [business] unblock the named business (or ask)
/pm weekly weekly all boards (Friday pulse)
/pm weekly [business] weekly the named business

Step 2 — Load board config + personal overlay

Read ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.md (personal — real business list + tool mapping per business). Falls back to references/boards.md in the repo if the local file doesn't exist yet — that's a template.

Also try to load ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/team.local.md if present — this is where the user lists partners, active clients, and typical blocker phrasings. Use it to make status output specific ("Waiting on <partner>'s review") instead of generic.

Field Example
business <slug>
tool notion / github / plane / linear / obsidian / manual
board_id or URL tool-specific
column overrides only if this board doesn't use the default 5 columns

If the business has no mapping yet, jump to setup automatically — ask which tool, save the mapping, return to the requested mode.

Step 3 — Load the adapter

Read the relevant section of references/adapters.md for the tool. Each adapter section explains how to:

  • List cards / issues / pages by column
  • Read a single card's full content
  • Create a card
  • Move a card between columns
  • Add a comment / note

Adapters use:

  • Notion → $NOTION_API_KEY (already in zshenv). Database with Status select property.
  • GitHub Projects → gh CLI (already authed). gh project item-list, gh project item-edit.
  • Plane → Plane API (needs $PLANE_API_KEY and workspace slug).
  • Linear → Linear MCP or API key.
  • Obsidian → local kanban markdown files in the vault. Read/write directly.
  • Manual → ask the user to paste the current board state; offer to write back to a local markdown file.

Step 4 — Run the mode

setup
  • Ask which tool the business uses
  • Walk through column setup (default 5 columns; offer custom)
  • Save mapping to ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.md (NOT to references/boards.md in the repo — that's a template only). Create the parent directory if it doesn't exist yet.
  • Optionally seed the board with starter cards from a conversation about what's on the user's mind for that business
triage
  • Pull the Backlog column
  • Apply Eisenhower (Q1/Q2/Q3/Q4) — show the user the matrix view
  • Recommend moves:
    • Q1 (urgent + important) → move to Ready or In Progress now
    • Q2 (important, not urgent) → move to Ready, schedule when
    • Q3 (urgent, not important) → delegate (to whom?) or move to Ready if no one
    • Q4 (neither) → archive
  • Apply moves via the adapter (or output text the user applies manually)
next
  • Single board: pull Ready, then In Progress. If WIP exceeded, surface what to finish first. If WIP available, recommend top Ready item by Eisenhower priority.
  • Cross-portfolio (/pm next with no business): pull Ready from every board, Eisenhower-rank, recommend top 1–3 across all businesses. Bias toward Q1 then Q2.
status

Generate an async-shareable snapshot:

# [Business] — Status as of YYYY-MM-DD

**Shipped this week:** N cards
- <card title>
- <card title>

**In progress:** N cards
- <card title> — <who/what>

**Review/Blocked:** N cards
- <card title> — blocked on <reason>

**Up next:** top 2–3 from Ready
- <card title>
- <card title>

**Open question:** <one thing that would unblock progress if answered>

Output is paste-ready for Slack, Notion, email, partner DM.

unblock
  • Read everything in Review/Blocked
  • For each card: surface the blocker, suggest an action (nudge X, escalate to Y, descope, kill, move back to In Progress if blocker is gone)
  • Output a short list of moves
weekly

Friday pulse + planning:

  1. For each board: shipped this week, in progress, blocked
  2. Cross-portfolio: where's momentum? where's drift?
  3. Plan next week: 3–5 Q2 items to pull from Ready into In Progress on Monday
  4. Output the combined snapshot — pasteable into Notion weekly log, partner update, or personal journal

WIP limits

Default WIP per column (override in your local boards.md per business):

Column Default WIP
In Progress 3
Review/Blocked (no limit — but flag if >5)

If WIP exceeded in next mode, don't pull more — recommend finishing or moving something to Review/Blocked first.

Async-first writing rules

When generating status / weekly outputs:

  • Lead with the headline — what shipped this week, or what's at risk
  • Be specific — "shipped X" not "made progress on Y"
  • No verbs without subjects — write so the reader can pick up cold
  • Blockers name the blocker — "waiting on designer's review" not "blocked"
  • Open questions are explicit — one bolded line per status that asks for what would unblock momentum

Composes with

  • decide — when a project hits a real decision, route to /decide
  • deep-research — when a card needs research before it's actionable
  • business-brainstorm — when an idea on the Backlog deserves pressure-testing before triage
  • jab-hook — when status / shipped items become BIP-post material
  • Memory (project_*.md) — for portfolio context per business

Notes on quality

  • Limit WIP. Multitasking is the most reliable way to ship nothing. Cap In Progress at 3 (override in your local boards.md per business if truly needed). If the cap is hit, don't pull more — recommend finishing or moving something to Review/Blocked.
  • Lead with the headline in every status output — what shipped this week, or what's at risk. Not "made progress on X" — that's noise.
  • Be specific. "Shipped the primary logo variant" beats "made progress on branding." Specificity signals real motion; vagueness signals none.
  • No verbs without subjects. Write status so the reader can pick up cold — 3 weeks later or forwarded to a partner who missed the last update.
  • Blockers name the blocker. "Waiting on designer's review of the homepage draft" — not "blocked." Blockers without names create no urgency.
  • Open questions are explicit — one bolded line per status that asks for what would unblock momentum. Async momentum lives or dies on how well open questions are surfaced.
  • Tool-agnostic by design. pm speaks Kanban + Eisenhower; the adapters (Notion / GitHub / Plane / Linear / Obsidian / manual) translate. Adding a new tool = one adapter file, not a rewrite.
1---
2name: pm
3description: When you want to manage projects across your businesses using a kanban + Eisenhower methodology. One kanban per business (whatever portfolio of businesses, projects, or initiatives you run). Tool-agnostic — connects via API/MCP to whatever PM tool each business uses (Notion, GitHub Projects, Plane, Linear, Obsidian file-based, or manual mode). Async-first output. Six modes — setup (scaffold a new board for a business), triage (Eisenhower-sort the backlog), next (pick the next thing to work on, single board or across all), status (paste-ready async snapshot), unblock (diagnose Review/Blocked column), weekly (Friday pulse + week planning). Triggers on "/pm," "/pm setup," "/pm triage," "/pm next," "/pm status," "/pm unblock," "/pm weekly," "what should I work on next," "kanban status," "Eisenhower this," "triage my backlog," "what's blocked."
4metadata:
5 version: 0.1.1
6---
7 
8# /pm — Project management across the portfolio
9 
10Methodology-first project management. Kanban + Eisenhower + async. One board per business. Tool-agnostic via adapters.
11 
12## Mental model
13 
14Each business gets its own kanban with 5 columns:
15 
16```
17Backlog → Ready → In Progress → Review/Blocked → Done/Archived
18```
19 
20- **Backlog**: everything that *might* matter — not yet committed
21- **Ready**: triaged, well-defined, can be picked up
22- **In Progress**: actively being worked
23- **Review/Blocked**: waiting on someone else, review, or external dependency
24- **Done/Archived**: shipped or killed
25 
26**Eisenhower** sits on top of the board — used to triage Backlog → Ready (which items make the cut) and to pick next from Ready (which Ready item to pull).
27 
28```
29 Urgent Not Urgent
30Important Q1: Do Q2: Schedule ← Q2 is the high-leverage zone
31Not Important Q3: Delegate Q4: Delete
32```
33 
34**Async-first**: every status snapshot should read like a Loom you didn't have to record. Make work visible without requiring a meeting.
35 
36## Step 1 — Detect mode and target
37 
38Parse the invocation:
39 
40| Invocation | Mode | Target |
41|---|---|---|
42| `/pm setup [business]` | setup | the named business |
43| `/pm triage [business]` | triage | the named business (or ask) |
44| `/pm next [business]` | next | the named business |
45| `/pm next` | next | **across all boards** (cross-portfolio) |
46| `/pm status [business]` | status | the named business (or ask) |
47| `/pm unblock [business]` | unblock | the named business (or ask) |
48| `/pm weekly` | weekly | all boards (Friday pulse) |
49| `/pm weekly [business]` | weekly | the named business |
50 
51## Step 2 — Load board config + personal overlay
52 
53Read `${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.md` (personal — real business list + tool mapping per business). Falls back to `references/boards.md` in the repo if the local file doesn't exist yet — that's a template.
54 
55Also try to load `${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/team.local.md` if present — this is where the user lists partners, active clients, and typical blocker phrasings. Use it to make status output specific ("Waiting on <partner>'s review") instead of generic.
56 
57| Field | Example |
58|---|---|
59| business | `<slug>` |
60| tool | `notion` / `github` / `plane` / `linear` / `obsidian` / `manual` |
61| board_id or URL | tool-specific |
62| column overrides | only if this board doesn't use the default 5 columns |
63 
64If the business has no mapping yet, jump to **setup** automatically — ask which tool, save the mapping, return to the requested mode.
65 
66## Step 3 — Load the adapter
67 
68Read the relevant section of `references/adapters.md` for the tool. Each adapter section explains how to:
69- List cards / issues / pages by column
70- Read a single card's full content
71- Create a card
72- Move a card between columns
73- Add a comment / note
74 
75Adapters use:
76- **Notion** → `$NOTION_API_KEY` (already in zshenv). Database with `Status` select property.
77- **GitHub Projects** → `gh` CLI (already authed). `gh project item-list`, `gh project item-edit`.
78- **Plane** → Plane API (needs `$PLANE_API_KEY` and workspace slug).
79- **Linear** → Linear MCP or API key.
80- **Obsidian** → local kanban markdown files in the vault. Read/write directly.
81- **Manual** → ask the user to paste the current board state; offer to write back to a local markdown file.
82 
83## Step 4 — Run the mode
84 
85### setup
86- Ask which tool the business uses
87- Walk through column setup (default 5 columns; offer custom)
88- Save mapping to `${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.md` (NOT to `references/boards.md` in the repo — that's a template only). Create the parent directory if it doesn't exist yet.
89- Optionally seed the board with starter cards from a conversation about what's on the user's mind for that business
90 
91### triage
92- Pull the Backlog column
93- Apply Eisenhower (Q1/Q2/Q3/Q4) — show the user the matrix view
94- Recommend moves:
95 - Q1 (urgent + important) → move to Ready or In Progress now
96 - Q2 (important, not urgent) → move to Ready, schedule when
97 - Q3 (urgent, not important) → delegate (to whom?) or move to Ready if no one
98 - Q4 (neither) → archive
99- Apply moves via the adapter (or output text the user applies manually)
100 
101### next
102- **Single board**: pull Ready, then In Progress. If WIP exceeded, surface what to finish first. If WIP available, recommend top Ready item by Eisenhower priority.
103- **Cross-portfolio** (`/pm next` with no business): pull Ready from every board, Eisenhower-rank, recommend top 1–3 across all businesses. Bias toward Q1 then Q2.
104 
105### status
106Generate an async-shareable snapshot:
107 
108```markdown
109# [Business] — Status as of YYYY-MM-DD
110 
111**Shipped this week:** N cards
112- <card title>
113- <card title>
114 
115**In progress:** N cards
116- <card title> — <who/what>
117 
118**Review/Blocked:** N cards
119- <card title> — blocked on <reason>
120 
121**Up next:** top 2–3 from Ready
122- <card title>
123- <card title>
124 
125**Open question:** <one thing that would unblock progress if answered>
126```
127 
128Output is paste-ready for Slack, Notion, email, partner DM.
129 
130### unblock
131- Read everything in Review/Blocked
132- For each card: surface the blocker, suggest an action (nudge X, escalate to Y, descope, kill, move back to In Progress if blocker is gone)
133- Output a short list of moves
134 
135### weekly
136**Friday pulse + planning**:
1371. For each board: shipped this week, in progress, blocked
1382. Cross-portfolio: where's momentum? where's drift?
1393. Plan next week: 3–5 Q2 items to pull from Ready into In Progress on Monday
1404. Output the combined snapshot — pasteable into Notion weekly log, partner update, or personal journal
141 
142## WIP limits
143 
144Default WIP per column (override in your local `boards.md` per business):
145 
146| Column | Default WIP |
147|---|---|
148| In Progress | 3 |
149| Review/Blocked | (no limit — but flag if >5) |
150 
151If WIP exceeded in `next` mode, **don't pull more** — recommend finishing or moving something to Review/Blocked first.
152 
153## Async-first writing rules
154 
155When generating status / weekly outputs:
156 
157- **Lead with the headline** — what shipped this week, or what's at risk
158- **Be specific** — "shipped X" not "made progress on Y"
159- **No verbs without subjects** — write so the reader can pick up cold
160- **Blockers name the blocker** — "waiting on designer's review" not "blocked"
161- **Open questions are explicit** — one bolded line per status that asks for what would unblock momentum
162 
163## Composes with
164 
165- `decide` — when a project hits a real decision, route to `/decide`
166- `deep-research` — when a card needs research before it's actionable
167- `business-brainstorm` — when an idea on the Backlog deserves pressure-testing before triage
168- `jab-hook` — when status / shipped items become BIP-post material
169- Memory (`project_*.md`) — for portfolio context per business
170 
171## Notes on quality
172 
173- **Limit WIP.** Multitasking is the most reliable way to ship nothing. Cap In Progress at 3 (override in your local `boards.md` per business if truly needed). If the cap is hit, don't pull more — recommend finishing or moving something to Review/Blocked.
174- **Lead with the headline** in every status output — what shipped this week, or what's at risk. Not "made progress on X" — that's noise.
175- **Be specific.** "Shipped the primary logo variant" beats "made progress on branding." Specificity signals real motion; vagueness signals none.
176- **No verbs without subjects.** Write status so the reader can pick up cold — 3 weeks later or forwarded to a partner who missed the last update.
177- **Blockers name the blocker.** "Waiting on designer's review of the homepage draft" — not "blocked." Blockers without names create no urgency.
178- **Open questions are explicit** — one bolded line per status that asks for what would unblock momentum. Async momentum lives or dies on how well open questions are surfaced.
179- **Tool-agnostic by design.** pm speaks Kanban + Eisenhower; the adapters (Notion / GitHub / Plane / Linear / Obsidian / manual) translate. Adding a new tool = one adapter file, not a rewrite.
180 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 855
Checked
Source
coreyhaines31/makerskills ↗
Creator
coreyhaines31 · 62 listings
View creator

Similar skills

See all →
AgentPhase 2: Foundation Scaffoldingmsitarzewski/agency-agents · by msitarzewski> Duration: 3-5 days | Agents: 6 | Gate Keepers: DevOps Automator + Evidence Collector★ 154k GitHub starsAgentNEXUS Network Frameworkmsitarzewski/agency-agents · by msitarzewski> NEXUS transforms The Agency's independent AI specialists into a synchronized intelligence network. This is not a prompt collection — it…★ 154k GitHub starsSkillAnsoff Matrix Generatorphuryn/pm-skills · by phurynGenerate an Ansoff Matrix analysis mapping growth strategies across market penetration, market development, product development, and diversification. Use when considering growth options, planning market expansion, or evaluating strategic growth paths.★ 26.6k GitHub starsSkillArchitecture Advisorshadcn/improve · by shadcnSurvey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute. Strictly read-only on source code — never implements, fixes, or refactors anything itself. Use when asked to audit a codebase, find improvement opportunities (bugs, security, performance, test coverage, tech debt, migrations, DX), suggest features or where to take the project next (roadmap, product direction), or generate handoff plans for another agent to implement.★ 9.2k GitHub starsSkillCareer Skills TranslatorParamchoudhary/ResumeSkills · by ParamchoudharyTranslate skills from one industry to another, identify transferable skills★ 2.4k GitHub starsSkillMarketing Skills CollectionLeoYeAI/openclaw-marketing-skills · by LeoYeAIA collection of 37 battle-tested marketing skills for OpenClaw agents. Use when you want to install or reference any marketing skill including: CRO (page-cro, signup-flow-cro, onboarding-cro, form-cro, popup-cro, paywall-upgrade-cro), copywriting, copy-editing, cold-email, email-sequence, social-content, seo-audit, ai-seo, programmatic-seo, site-architecture, schema-markup, content-strategy, paid-ads, ad-creative, ab-test-setup, analytics-tracking, referral-program, free-tool-strategy, churn-prevention, revops, sales-enablement, launch-strategy, pricing-strategy, competitor-alternatives, marketing-ideas, marketing-psychology, lead-magnets, product-marketing-context, and data connectors (google-ads-connect, search-console-connect, meta-ads-connect, x-twitter-connect). Start with product-marketing-context to set up your product context document, then use any other skill naturally. Powered by MyClaw.ai.★ 1k GitHub stars

More from coreyhaines31

SkillLead Magnet Buildercoreyhaines31/marketingskills · by coreyhaines31Tell us about your business and who you sell to, and get back a ready-to-launch free offer that turns website visitors into email signups and future customers.★ 51.1k GitHub starsSkillGrowth Experimentation Programcoreyhaines31/marketingskills · by coreyhaines31When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics. For page-level conversion optimization, see cro.★ 51.1k GitHub starsSkillAd Creative Generatorcoreyhaines31/marketingskills · by coreyhaines31When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' 'static ads,' 'ad templates,' 'iMessage ad,' 'chat reveal ad,' 'ChatGPT ad,' 'Apple Notes ad,' 'AirDrop ad,' 'creative strategy,' 'creative roadmap,' 'creative retro,' 'hook writing,' 'creative review page,' 'present ad creative for approval,' 'motion video ad,' 'faceless video ad,' 'UGC ad,' 'greenscreen ad,' 'TikTok/Reels ad format,' 'which ad format to make,' 'Meta ad format tier list,' or 'creative format taxonomy.' Use this whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see ads. For landing page copy, see copywriting.★ 51.1k GitHub starsSkillBusiness Idea Pressure Testcoreyhaines31/makerskills · by coreyhaines31When you want to pressure-test a potential new business, product, or side project against the serial-founder filter. Not "marketing ideas for a product" (that's marketing-skills:marketing-ideas) — this is "should this business exist + can you win it." Runs the idea through a structured framework (problem, audience, wedge, monetization, moat, portfolio fit, distribution, energy fit, opportunity cost), checks domain availability via /domain, optionally triggers /deep-research for market validation, and outputs a viability brief: build / sleep on it / pass. Archives every idea to ~/.config/makerskills/business-brainstorm/archive/ so past work is searchable. Triggers on "/business-brainstorm," "/brainstorm," "new business idea," "should I build X," "pressure test this idea," "validate this idea," "is X a good business," "what about a [type] for [audience]."★ 855 GitHub starsSkillTeam Knowledge Basecoreyhaines31/makerskills · by coreyhaines31Your team's shared, AI-ready knowledge base — people, companies, meetings, SOPs, and decisions structured so an agent can answer on your team's behalf. Team-scope sibling to second-brain. Modes — capture, compile (wiki pages + INDEX.md), query (trust-weighted, saved to outputs/), review (verify / deprecate / supersede stale captures), lint, connect, search. Structured raw dirs (people/, companies/, meetings/, sops/, decisions/, customer-language/, sales-objections/). Every capture stamps author, timestamp, and trust status. Optional sync from call transcripts, Slack/email exports, CRM. Vault at ${COMPANY_BRAIN_VAULT:-$HOME/Documents/CompanyBrain}/. Triggers on "/company-brain," "/cb," "capture this into the team brain," "log this meeting," "save this SOP," "compile the company wiki," "query the team brain," "what does the team know about X," "review the company brain," "lint the company brain," "who's the internal expert on X.★ 855 GitHub starsSkillMonthly Company CFOcoreyhaines31/makerskills · by coreyhaines31Monthly CFO workflow for a company or agency — pull raw data from bank + payment processor + payroll + expense management, categorize and reconcile, compute end-of-month cash via transaction-sum method, update a scenario projector for forward forecasting, write the monthly snapshot report, surface decisions to leadership. Modes — monthly (default; the standing report), weekly (thin cash pulse), scenario (ad-hoc modeling in the projector), pickup (resume where the prior run left off). Anonymized team-scope sibling to personal-cfo (which handles personal household finances). Composes with company-brain (report gets stored + wiki-indexed there), toolify (wire company-specific data sources), loopify (schedule the monthly + weekly runs). Triggers on "/company-cfo," "/cfo," "monthly cash report," "do the CFO snapshot," "CFO monthly," "let's run CFO," "cash projection," "runway forecast," "monthly financials," "cash pulse.★ 855 GitHub stars