Skip to content

PRDs & requirements

Halyard owns the full work-item chain — Goal → PRD → Requirement → Issue → Task → Session → PR — and edits it in Halyard’s own UI. External trackers are link-out targets only; there is no two-way sync. This page covers the product-context layer above issues.

Each project has a single goal document — the high-level why. It lives in the project library and is the first thing an agent reads at dispatch, before designs and guidelines.

A PRD (Product Requirements Document) is a versioned markdown body that parents a set of structured requirements. Every save creates a new version; PRDs move through draft → accepted → superseded → archived.

PRDs are not pushed into the agent’s context by default — they’re product context for the team, not something every session needs. If you do want an agent to read a specific PRD, add it as a per-session context entry at dispatch.

A requirement is a numbered child of a PRD — the unit Halyard traces all the way to a PR and its tests.

  • Numbering is hierarchical strings you author yourself (“1”, “1.2”, “1.2.a”). Halyard validates uniqueness within the PRD but does not auto-allocate, since a hierarchical scheme has no single “next” value.
  • Status moves through proposed → accepted → implemented → verified, or dropped.
  • Requirements carry a title, description, and priority.

Every requirement change — created, status changed, description edited, linked or unlinked to an issue/task — appends to a strictly append-only event log, which powers the requirement’s timeline view.

Below requirements sit the executable work items:

  • An Issue is Halyard’s equivalent of a feature — typed (feature / bug / chore), with a per-project number, status, priority, and assignee.
  • A Task is a subdivision of an issue (or a standalone “loose” task). It carries a Definition of Ready, Definition of Done, a testing plan, and a list of test paths — and it’s the unit a session attaches to.

Requirements link many-to-many to issues and tasks, which is what makes the coverage matrix and end-to-end tracing possible.