Wave: 0 (foundation — build + merge before Wave 1)
Depends on: none
Effort: S
Ties to: PRD R5
Files: bin/nanopm-state-log
Description
Extend bin/nanopm-state-log with a solution schema in its SCHEMAS dict (the --type choices derive from SCHEMAS.keys()). Required fields: slug, opportunity; a status field constrained to proposed|shortlisted|chosen|speccing. Lets the shortlisted/chosen/speccing transitions log through the same typed-decision layer used by bet/prd.
Acceptance
nanopm-state-log --type solution '{"slug":"x","opportunity":"y","status":"chosen"}' validates and appends; an invalid status is rejected with a clear error; --type solution appears in --help choices.
Source PRD: .nanopm/wiki/docs/prds/pm-solutions.md · Created by nanopm /pm-breakdown (feature: pm-solutions, GitHub handoff).
Wave: 0 (foundation — build + merge before Wave 1)
Depends on: none
Effort: S
Ties to: PRD R5
Files:
bin/nanopm-state-logDescription
Extend
bin/nanopm-state-logwith asolutionschema in itsSCHEMASdict (the--typechoices derive fromSCHEMAS.keys()). Required fields:slug,opportunity; astatusfield constrained toproposed|shortlisted|chosen|speccing. Lets the shortlisted/chosen/speccing transitions log through the same typed-decision layer used bybet/prd.Acceptance
nanopm-state-log --type solution '{"slug":"x","opportunity":"y","status":"chosen"}'validates and appends; an invalid status is rejected with a clear error;--type solutionappears in--helpchoices.Source PRD:
.nanopm/wiki/docs/prds/pm-solutions.md· Created by nanopm /pm-breakdown (feature: pm-solutions, GitHub handoff).