Skip to content

pm-solutions T4: /pm-solutions skill — diverge → converge → write → choose #149

Description

@guillaumesimon

Wave: 1 (parallel, after Wave 0 merges)
Depends on: #146 (contract), #147 (type registered), #148 (state-log)
Effort: L
Ties to: PRD R1, R2, R3, R4, R5; "The One UX Decision"
Files: skills/pm-solutions/SKILL.md (NEW)

Description

The core skill, invoked as /pm-solutions <opportunity-slug>. Recipe over the existing query → reasoning → ingest primitives (no bespoke read logic).

  • Resolve (R1): resolve the opportunity from .nanopm/wiki/entities/opportunities/; if the slug is missing or ambiguous, list candidates and stop. No status gate — runs on any status; advance the opportunity to ready-for-solutions once solutions are written.
  • Diverge (R2): dispatch the 3 fixed lens-subagents (Eng / Design / Business) concurrently in one turn, each fed the opportunity file (treated as untrusted — same hardening as existing retrieval subagents) + the loaded CONTEXT/objectives digest. Lens definitions per PRD §Scope.
  • Converge (R3): dedup overlapping proposals; emit ≥3 solutions each with the full field set — pitch · appetite (small/big bet) · impact (high/med/low, qualitative) · riskiest assumption · cheapest test · originating lens · KR/outcome. If <3 survive dedup, re-prompt for more divergence before writing.
  • Write (R4): one .nanopm/wiki/entities/solutions/<slug>.md per solution (frontmatter opportunity, status: proposed, provenance: assumed, lens, appetite, impact) via nanopm-ingest-agent apply; call nanopm_solutions_reindex; append a solutions pointer-summary block to the parent opportunity page (bidirectional link).
  • Choose (R5): founder marks shortlisted/chosen; the agent never auto-chooses. Status writes via nanopm-state-log --type solution.
  • UX (load-bearing): the converged table is canonical, but every row keeps its lens tag + a one-line dissent/tension note (middle path — don't collapse to a single-generator verdict).

Acceptance

/pm-solutions <existing-opp> produces ≥3 solutions/*.md with the required frontmatter, a regenerated solutions/INDEX.md, a pointer block on the opportunity page, and the opportunity advanced to ready-for-solutions; the choose step transitions a solution to chosen via state-log. A folded regression test exercises the diverge→converge→write→choose lifecycle.

Source PRD: .nanopm/wiki/docs/prds/pm-solutions.md · Created by nanopm /pm-breakdown (feature: pm-solutions, GitHub handoff).

Metadata

Metadata

Assignees

No one assigned

    Labels

    pm-solutions/pm-solutions feature breakdown

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions