Propose
Skill honerlaw/agent-marketplace/plugins/minerva/skills/propose
Starts a new minerva work unit — brainstorm-style intake with one-question-at-a-time clarification, 2-3 candidate approaches, a `minerva:grill-plan` stress-test before approval, then creates the unit's branch + worktree and writes the approved design to `.minerva/work/NNN-<slug>/proposal.md`, with a self-review and a post-write user gate. Use when the user wants to plan or design a new feature, refactor, or investigation in a minerva-tracked project, says things like "let's build X", "let's plan Y", or "start a new unit of work", when `minerva:explore` hands off a converged direction, or when the user invokes `minerva:propose`.From its SKILL.md
npx -y skills add honerlaw/agent-marketplace --skill proposeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.0 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Start a new work unit by brainstorming, creating its branch + worktree, and writing its proposal inside the worktree.
Usage
minerva:propose— brainstorms a new work unit; infers intent from current-session context, or asks if context is blankminerva:propose "add rate limiting"— inline description used as the starting point for Q&A
Pre-flight check
If .minerva/ doesn't exist yet at the project root, suggest the user run minerva:init first so the directory layout and agent-file Routing section are in place. You can still write the proposal without it, but minerva:init is the cleaner entry point.
Protocol
This skill mirrors the superpowers:brainstorming flow but writes to .minerva/work/NNN-<slug>/proposal.md instead of a generic spec path.
Convergent step — relationship to minerva:explore. minerva:propose is the convergent step of the lifecycle: its job is to produce the proposal.md artifact (plus the branch and worktree). Its optional upstream counterpart is minerva:explore — the divergent, commitment-free phase for exploring a fuzzy idea before any work unit exists. The two diverge on different axes and compose: minerva:explore diverges on the problem / direction axis (what or whether to build), while propose diverges on the implementation-approach axis (how to build the chosen direction). When you arrive here from a minerva:explore handoff, the converged direction is passed as the inline description (see step 1) — the problem-space exploration is already done, so do not re-litigate whether or what to build; confirm the chosen direction and proceed to designing how (the approach work in steps 5–6). This boundary rides propose's existing inline-argument intake; there is no separate "did exploration happen?" detection to perform.
-
Context-sensitive intake. Determine what the user wants to build before asking clarifying questions:
- If a description was passed inline → treat it as the draft goal; skip the "what do you want to build?" question and confirm/refine it. (A handoff from
minerva:explorearrives exactly this way — the converged direction is the inline description.) - If no description but current-session chat history is present → read the history and repo structure, state the inferred intent ("Based on our conversation, it sounds like you want to X — is that right?"), and let the user confirm or redirect.
- If no description and no relevant current-session history → ask "What would you like to build?"
- If a description was passed inline → treat it as the draft goal; skip the "what do you want to build?" question and confirm/refine it. (A handoff from
-
Scope check. Before asking clarifying questions, decide whether the request fits a single work unit. If it spans multiple independent subsystems ("build a platform with chat, billing, analytics", "rewrite the entire data layer"), surface this immediately and help the user decompose into smaller work units. Each sub-unit gets its own
minerva:proposerun. Do not produce a 500-line proposal for work that should be three separate units. -
Explore project context. Read
CLAUDE.md/AGENTS.mdif present, skim.minerva/knowledge/(and.minerva/decisions/if it still exists — legacy directory), glance at recent.minerva/work/NNN-*/proposal.mdfiles for tone and conventions. This informs the questions you'll ask. -
Ask clarifying questions one at a time. Cover purpose, constraints, and success criteria. Prefer multiple-choice. Don't batch.
-
Propose 2–3 approaches with tradeoffs and a recommendation. Lead with the recommendation. Iterate based on user feedback.
-
Draft the design internally, then stress-test it before showing it for approval. Pull the chosen approach plus everything gathered so far into a complete first-pass draft of Goal / Why / Approach / Success criteria / Open Questions — keep it in conversation, do not write any file yet. Then invoke the
minerva:grill-planskill via theSkilltool against that draft (it takes no argument — it reads the drafted design from conversation); do not paraphrase its protocol inline. Let grill-plan walk the decision tree, edit affected sections of the draft in place as answers surface, and return only once shared understanding is reached. The draft that exits grilling is what step 7 presents. -
Present the design in sections (Goal, Why, Approach, Success criteria, Open Questions). Get approval per section before moving on.
-
Pre-write hard gate: do not write any file until the user has explicitly approved every section.
On approval — worktree setup + file writes
The full on-approval sequence — slug derivation, duplicate check, NNN computation across all three sources, default-branch resolution, gitignore pre-flight, git worktree add, worktree-prefixed addressing (no EnterWorktree), the proposal.md + scratchpad.md templates, self-review, initial commit, and the post-write user gate — lives verbatim in references/on-approval.md. Read it in full the moment every section is approved, before writing anything.
Out of scope
- Implementation. This skill stops at writing and confirming the files.
minerva:workis the next phase. - Worktree abandonment. If the user rejects at the post-write gate and wants to abandon the work unit, they run
git worktree remove .minerva/worktrees/<NNN-slug>plusgit branch -D <NNN-slug>manually. Propose does not offer an--abandonflow; cleanup is reserved for shipped work.
What ships with it: 1 file
7.1 KB alongside SKILL.md
references/
- on-approval.md7.1 KB
Gives 1 of the 12 instructions most plan spec skills give in ~1.2k tokens
Counted across 1,099 of the 1,860 authors here whose files we hold, read 2026-08-07
- Ask one question at a timehere, and in 51 of 1099
- Break plans into vertical slicesin 29 of 1099, across 11 files
- Publish issues in dependency orderin 27 of 1099, across 9 files
- Iterate until user approves the breakdownin 25 of 1099, across 7 files
- Explore the repository to understand the codebase statein 24 of 1099, across 7 files
- Use domain glossary vocabularyin 23 of 1099, across 5 files
- Apply correct triage labels to published issuesin 23 of 1099, across 5 files
- Prefer AFK slices over HITLin 22 of 1099, across 7 files
- Write a specification before writing any codein 22 of 1099, across 14 files
- Write failing tests before implementation codein 22 of 1099, across 20 files
- Ask clarifying questions until requirements are concretein 21 of 1099, across 13 files
- Respect existing architecture decision recordsin 20 of 1099, across 5 files
Said here and by no other author read
- draft the design internally before showing it
- stress-test the drafted design before approval
- read the on-approval reference in full before writing files
- derive a slug and compute the work unit number across three sources
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.