Skip to content

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 22:15
· 11 commits to main since this release
557e1f7

Added

  • pm specs-from-prd (/pm:specs-from-prd, pm 0.3.0): turns a PRD into one local specs document. It checks the PRD's claims against the code with file:line evidence, interviews you about what it finds, and writes specs that are each one small story under INVEST, with a feature-level design and every unresolved question recorded as a gap and never guessed. It writes only after you confirm the full draft and never touches Jira. A stdlib checker (check_specs.py) enforces unique IDs, resolvable acyclic dependencies, one repository per spec, acceptance criteria, the labels story-from-document reads, a cited path:line in every Technical approach and in the Components table (looked up on disk when run with --root), six INVEST results, a status that agrees with the gaps, an Open gaps list that agrees with the specs, a complete header, and no em dashes. It prints a fingerprint so the written file can be compared with the draft you approved. The document is re-runnable: IDs are stable, specs that already have a Story are locked, and removed specs become Withdrawn.
  • pm evals: 39 cases in total. New: 11 for specs-from-prd and 8 for story-from-document (spec selection, promote-mode injection, a project you name beating the configured one, stale line citations, an unknown spec ID), a shared order-service fixture in pm/evals/_lib/, and a CI step that runs pm/tests/test_check_specs.py (a checker, template, skill-file and contract test suite).

Changed

  • pm story-from-document: accepts path#S-03, a spec from a specs-from-prd document. It reads the whole document as context, builds a Story from that spec only, refuses a Withdrawn spec, asks about the gaps of a Needs decision spec, asks before creating a second Story for a spec that already records one, and tells you which Story: line to fill in. It never edits the document.
  • pm story-from-document and specs-from-prd, safety: only tools that read are pre-approved (the grant ends at your first reply anyway), so every write asks. One Source check: step now covers every path by which someone else's text reaches the model, in create and promote mode alike, and sits at the top of the message that ends the turn. Web pages are fetched verbatim. Decisions a source claims are settled are shown as candidates and copied only when you confirm them. A declined permission prompt stops the run.
  • pm story-from-document, gates: the duplicate check runs right after the repositories and project are settled (skipped under --dry-run or without Jira). A gate you already answered in the invocation is not asked again, but the final review gate always waits. An open gap is asked about once and may stay in the Story as [GAP: ...]. An amended draft needs a fresh confirmation. A project you name beats the configured one. A short standing-rules block at the top of SKILL.md and moving the optional mockups step into references/mockups.md keep the key rules inside the part of a skill that survives a conversation summary.
  • pm story-from-document and specs-from-prd, wording: one name per concept (the promote-mode step, checker "errors", INVEST "results"), two short model examples in the Story templates, a before-and-after split in invest.md, the stale phase count and an unreachable configuration sentence removed, and the Python requirement of the checker stated.