Skip to content

planning/prd: add a quality-requirements (NFR) section #8322

Description

@kyle-sexton

Context

/planning:prd has no slot for quality requirements (often called non-functional requirements, NFRs): no file under plugins/planning/skills/prd/ mentions them. A PRD can lock problem, users and success metrics while leaving performance, reliability, security and similar targets unstated, so they surface late, at interview or design time.

The malleable-design-defaults effort adds a quality-requirement prompt to /planning:interview (a new interview/context/nfr-prompts.md) and left /planning:prd out of scope on purpose.

Proposed work

  • Add a quality-requirements section to the PRD templates, prompted from the same list the interview uses (interview/context/nfr-prompts.md, once it lands) so the list keeps one home.
  • Ask for a measurable target only where one matters, and scale the prompt with the PRD tier.
  • Use the term "quality requirement (non-functional requirement, NFR)": ISO/IEC 25010:2023 says "quality requirements", and Bass, Clements and Kazman (Software Architecture in Practice) keep quality-attribute requirements separate from constraints.

Acceptance criteria

  • Each PRD tier template carries a quality-requirements section.
  • The PRD skill reads the interview's prompt list rather than copying it.
  • One eval case shows a PRD run capturing a quality requirement with a measurable target.

References

  • plugins/planning/skills/prd/SKILL.md
  • ISO/IEC 25010:2023 (product quality model)
  • Follows the malleable-design-defaults plan (interview NFR prompt phase)

Metadata

Field Value
Category unspecified
Area planning
Ecosystem unspecified

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 18, 2026
  2. github-actions commented on Oct 18, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: scoped
    Basis: automated intake triage; the lanes App applied this class.

    Size: Medium
    Complexity: Medium
    Uncertainty: Known
    Flags: none
    Blocked by: none

    Decision comment (#8322 (comment)):

    Decision recorded. The stop was a run defect ("reported done but committed nothing"), and interview/context/nfr-prompts.md, the list the body points at, is on main. The body's acceptance criteria stand:

    • Each PRD tier template carries a quality-requirements section.
    • The PRD skill reads the interview's prompt list rather than copying it.
    • One eval case shows a PRD run capturing a quality requirement with a measurable target.

    That decision settles the open questions.

    What I understood: add a quality-requirements (NFR) section to each /planning:prd tier template. The PRD skill should read the interview's prompt list instead of copying it. One eval case should show a measurable target being captured. No duplicates found.

    Automated triage, applied by the lanes App.

  3. added
    priority: lowNice-to-have, cosmetic, or speculative; opportunistic.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 18, 2026
  4. github-actions commented on Oct 26, 2026

    @github-actions
    Contributor

    The triage sweep dispatched intake triage for this issue (attempt 1 of 2).

  5. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed on Oct 26, 2026
  6. removed
    priority: lowNice-to-have, cosmetic, or speculative; opportunistic.
    on Oct 26, 2026
  7. melodic-automation-lanes commented on Oct 26, 2026

    @melodic-automation-lanes
    Contributor

    The token broker refused the work-resolve-issue run that agent-ready started because the lanes kill switch was on, so it did no work. work-unblock removed and added agent-ready back to start a fresh run. A kill-switch refusal is no fault in this issue or the lanes, so it never counts against later re-fires; after limits.limit-stops-per-issue of them since a person last added agent-ready or a run last reported, work-unblock waits longer before each one, up to 24 hours.

  8. added
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    and removed
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Oct 26, 2026
  9. melodic-automation-lanes commented on Oct 26, 2026

    @melodic-automation-lanes
    Contributor

    The work-resolve-issue lane stopped partway through this issue and needs a person.

    Why, in the run's own words:

    The run reported done but committed nothing.

    Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/40355135920

    To retry, remove needs-human and add agent-ready again.

  10. removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 27, 2026
  11. kyle-sexton commented on Oct 27, 2026

    @kyle-sexton
    MemberAuthor

    Released for re-triage under the owner's 2026-10-26 rule: a person is involved only for "1. A change in original intent/vision 2. Something comes up during implementation ... that alters intent/vision or the primary design 3. If there is a HIGH/CRITICAL security issue". None applies here, so the hold label came off and intake triage runs again now.

    To hold this issue again, add needs-human (or status: needs-decision) and name which of the three applies.

  12. kyle-sexton commented on Oct 30, 2026

    @kyle-sexton
    MemberAuthor

    Decision recorded. The stop was a run defect ("reported done but committed nothing"), and interview/context/nfr-prompts.md, the list the body points at, is on main. The body's acceptance criteria stand:

    • Each PRD tier template carries a quality-requirements section.
    • The PRD skill reads the interview's prompt list rather than copying it.
    • One eval case shows a PRD run capturing a quality requirement with a measurable target.
  13. removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Oct 30, 2026
  14. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    on Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Fields

    No fields configured for Feature.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions