Propose milestones and tasks for the repository's public .pm adoption board — decompose a topic through the TPM adoption lens, size and gate the work, and emit a text-only proposal for /pm to materialize. Use only when the user explicitly invokes $pm-brainstorm or asks to brainstorm, plan, or break down roadmap work for the .pm board. Do not use to write board files (that is pm) or for ordinary code edits.
Instal·la
npx skillscat add bex-co/beancount-io/pm-brainstorm Instal·la des del registre de SkillsCat.
Task: Propose milestones and tasks
Usage: /pm-brainstorm <topic or goal to break down>
/pm-brainstorm is the divergent half of the pair: it thinks a topic through with a TPM's eye for adoption, proposes work, and hands orchestration and materialization to /pm. It writes nothing — the output is a text proposal. $ARGUMENTS is the topic/goal.
The board conventions — mission and pillars, hierarchy, sizing rule, milestone quality gate, standing closing tasks, templates — live canonically in `.agents/skills/pm/SKILL.md`. Read that file and apply its rules; do not restate or diverge from them here.
Minimum proposal size: Every brainstorming turn must propose at least 5 distinct, actionable items — milestones and/or inbox notes, counted together as top-level candidates in both the detailed proposal and the closing summary. Tasks within a milestone and rejected candidates do not count toward the minimum. Keep exploring the requested topic until at least five candidates pass the existing scope, anti-goal, deduplication, sizing, and quality rules; do not pad the list with duplicates or artificially split work to reach five.
Steps
- Load the canon and the anti-goals. Read
.agents/skills/pm/SKILL.md(conventions, mission pillars A1/A2/A3) and.pm/DO_NOT_DO.md(hard constraint). If a proposed item conflicts with an anti-goal, reject it explicitly and explain why. - Sync when possible, then brainstorm. Run
git fetch origin mainthengit status. If the local branch is behind, the working tree is clean, and a fast-forward is possible, rungit pull --ff-only. If the working tree is dirty or the branch has diverged, skip pulling and brainstorm directly from the available local board and repository state without asking for confirmation. Leave existing changes and branch history untouched; a dirty or diverged checkout does not block brainstorming. - Load context. Read the relevant
.pmboard state (workstreamREADME.mds, open milestones, inbox notes —find .pm -name README.md, plus loose notes) so proposals fit the existing roadmap and reuse its numbering/naming. Workers are generalists: choose a workstream by priority, dependencies, and available capacity, never because the topic belongs to a permanent specialty; propose a new genericwNonly when another worker queue is actually needed. Also checkwN/done/and any nesteddone/folders (find .pm -type d -name done) for milestones that already shipped the same capability — read their titles/READMEs before proposing, and drop or reshape any candidate that duplicates completed work instead of proposing it fresh. For any topic touching an agent or user surface, the shipped ground truth is the repo itself: the rootREADME.mdandAGENTS.mdpackage tables, the owning package'sREADME.md/AGENTS.md, and the appropriate skill catalog (skills/AGENTS.mdfor customer workflows,.agents/AGENTS.mdfor development workflows). Read those before proposing — build on what exists rather than re-deriving or duplicating it. - Apply the TPM adoption lens. For each candidate, answer before proposing it:
- Pillar: which of A1/A2/A3 it advances (a candidate that fits none is out — or
.pm/DO_NOT_DO.mdmaterial). - Adopter: who concretely adopts the result — a human open-source user, a coding agent, or a developer building on beancount.
- Friction removed: what the adopter can do afterward that they couldn't (or wouldn't bother to) before.
- Signal: which observable signal should move — installs, stars, skill invocations, time-to-first-ledger, contributors, issue quality.
Prefer compounding assets (docs, skills, examples, install paths that every future adopter benefits from) over one-off promotion. Prefer removing an onboarding cliff over adding a power feature.
- Pillar: which of A1/A2/A3 it advances (a candidate that fits none is out — or
- Discuss & decompose. Talk the topic through with the user: pressure-test scope, surface dependencies and risks, and break it into candidate tasks, each with a rough estimate and
depends_onlinks. - Size and gate each cluster of work using
/pm's sizing rule and milestone quality gate. Undersized work → propose an inbox note instead of a milestone, and say so. Work that fails the quality gate → mark it not meaningful, do not propose it as a milestone, and suggest a better-scoped alternative. - Emit the proposal as text only. Give the full detail first: the target general-purpose worker queue and why its priority/capacity makes it the right destination, each proposed milestone (task table + definition of done + source + pillar linkage + expected outcome + why-now rationale) and/or inbox note, numbered in proposed priority order. Propose implementation tasks only:
/pmappends the standing closing tasks (Adoption surface when the milestone ships a user- or agent-facing change, then Simplify, then Test coverage, then Closeout) itself when it materializes, so do not include them — but do flag in the proposal whether you expect Adoption surface to apply, so/pmand the user aren't guessing. Do not write files. - End with the summary and handoff. The response must end with these two blocks, in this order, so the user can scan the close without rereading the detail:
- A "Summary (priority order)" section: a numbered list of every candidate (milestones and inbox notes together) using the same numbers as the detail above — one line each:
N. <title> (wN, ~size) — one-line outcome. - The exact
/pminvocation(s) to materialize the proposal, e.g.:/pm new milestone w1 <title>(then the tasks), or/pm add w1 <idea>for sub-hour work, or/pm promote w1/NNNto promote an existing inbox note.
Nothing comes after these blocks — no trailing analysis or caveats.
- A "Summary (priority order)" section: a numbered list of every candidate (milestones and inbox notes together) using the same numbers as the detail above — one line each:
Topic
$ARGUMENTS