papa-hq reads 01 research -> 03 decision -> 02 design. The order is a scar, not a choice: 02-DESIGN existed from its initial commit, and when adr/ was finally promoted on 2026-07-13 it took the next free number rather than its place in the sequence. By then design was too settled to renumber. hal-hq was three commits old, so it is not. adr/ becomes 02-DECISIONS and 02-DESIGN becomes 03-DESIGN, and following the folder numbers now walks the process in the order it happens: research produces a decision, the decision authorises a design. 00-GENESIS becomes 00-META, matching papa's rename from the same restructure. Every path reference rewritten across documents, frontmatter, playbooks and skills. All links resolve; all 58 frontmatter blocks parse and their path fields still point at files that exist.
2.0 KiB
name, description
| name | description |
|---|---|
| hal-diagnose | Use when investigating an open hal-hq issue — finding which component owns a symptom, and why. Triggers on "diagnose issue N", "where does this live", "who owns this bug", "why does this happen". |
hal-diagnose
Investigates an open issue to the point where its owner is known. Authoritative playbook:
00-META/process/03-issues.md.
Before forming a hypothesis
Search the operational memory for the literal symptom text. Not after a hypothesis fails — before forming one. The knowledge base is indexed on symptoms, and the entry needed is usually titled after the error being stared at.
This fires hardest on familiar ground, where a confident trail feels like progress. Two entries have been rediscovered from scratch over several hours in one session because the search was skipped. Both were already written down.
If the search returns nothing and the problem is then solved, write the finding back. An empty result is not "nothing to learn" — it is the reason the next person repeats the work.
Steps
- Read
00-report.md. Movestatus:todiagnosing. - Investigate. Write
01-diagnosis.mdin the same folder: the trail, dated, including what was ruled out and how. Archaeology — which commit, which pull request, which date a behaviour changed — is the most valuable content here. - When the owner is known, set
status: locatedand filllocated-in:with repositories or modules from00-META/repos.md. - On resolution:
status: resolved, fillfixed-by:. If the root cause was a design gap, runhal-graduatefor the amendment and fillamended-design:.
Rules
- State evidence, not assertion. A date and a reference outrank a conclusion.
- Record what was ruled out. The next person needs to know where not to look.
- Closed issues are never deleted.
wontfixis legitimate and requires a sentence saying why.