Skip to content

Traceability & compliance

Because Halyard owns the whole chain, the lineage is queryable end to end:

Goal → PRD → Requirement → Issue → Task → Session → PR → Tests

Nothing has to ship without a line back to why it exists.

The coverage matrix (/projects/:id/coverage) is the primary overview: rows are requirements grouped by PRD, columns are the coverage stages — has issue → in progress → has PR → has tests → complete. Each cell is red / yellow / green so gaps are obvious at a glance. Click a row to drill into a single requirement; click a column header to filter to “only the gaps in this column”.

From any requirement you can see everything it reaches: its linked issues and tasks (deduplicated whether reached directly or through an issue), each task’s PR URL, test paths, and latest session state — plus the requirement’s full event timeline.

The relationship runs both ways. A task or issue screen shows a “satisfies requirements” strip that deep-links back to each requirement, so from a piece of work — or a PR — you can answer “what requirement does this satisfy?”

The Today view is the who-is-working-on-what surface: active users, the issue and task each is on, and their session’s live state.

A requirement is considered tested when at least one linked task lists one or more test paths. Test paths are populated by you or the agent as tests are written; Halyard reports their presence, not pass/fail.