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.
Goal documents
Section titled “Goal documents”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.
Requirements
Section titled “Requirements”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, ordropped. - 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.
Issues and tasks
Section titled “Issues and tasks”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.