Skip to content

2026-04-24 — Review-E dispatch fix + rig lifecycle gaps + docs taxonomy cleanup

On 2026-04-24 the rig operator ran a manual orchestration session that:

  1. Diagnosed and fixed a silent Review-E dispatch bug (rc#217).
  2. Identified three rig-lifecycle gaps that leave issues stuck after edge-case events (rc#226–228).
  3. Audited docs surfaces and resolved multiple stale references (rig-docs#190+, claude-3#621).
  4. Defined and enforced an 8-type content taxonomy (rig-gitops#182).

Symptom reported: operator observed no Review-E reviews appearing on issues after Dev-E PRs were opened.

Investigation:

StepObservation
Event streampr_created → ci_passed → merge_gate_waiting fired correctly
Assignments streamassignments:review-e was empty — no review_assigned event
Root causeDispatch rule: Review-E was only eligible when Dev-E’s parent envelope had completed. Because Dev-E’s envelope was still running (waiting for its own PR to merge), the eligibility gate blocked Review-E from ever being dispatched.

Fix: rc#217 — “allow review-e dispatch when dev-e envelope is still running”.

The fix PR itself was blocked by the bug it fixed (no review = no auto-merge). It was force-merged by the operator after smoke-testing the patch locally. End-to-end verification: smoke test rc#219 → PR rig-docs#220 confirmed Review-E dispatched and reviewed successfully.


Three lifecycle gaps surfaced during monitoring

Section titled “Three lifecycle gaps surfaced during monitoring”

Monitoring the post-fix session exposed three additional dead-ends in the rig event graph:

#GapSymptomQueued fix
1merge_conflict is a terminal dead-endWhen a PR hits a merge conflict, no event re-dispatches Dev-E to rebase. Issue is stuck until operator intervenes.rc#227 — re-dispatch Dev-E symmetrically with review_disputed
2Closing a stale PR auto-cancels the parent issueClosing a PR (for any reason — superseded, stale, wrong branch) triggers pr_closed which collapses the parent issue as if the work is done. Legitimate close-to-reopen cycles kill progress.rc#228 — differentiate close-reason: superseded vs cancelled vs merged
3No main_ci_failed events emittedWhen main branch CI fails (broken by a merged PR), there is no event, no dashboard signal, and no Discord alert. Breakages are discovered only by humans noticing red CI badges.rc#226 — emit main_ci_failed event + dashboard tile + Discord alert

During the session the docs surfaces were audited end-to-end:

FindingDetailResolution
websites.md merge-conflict markersUnresolved <<<<<<< / >>>>>>> blocks left in the fileclaude-3#621 opened to fix
Dead reference: conductor-e-docs.pages.devDomain referenced in several places but site is down/deletedSwept in rig-docs#193 retype sweep
Whitepaper flattened on MkDocs→Astro copyChapter hierarchy collapsed; internal links brokenrig-docs#204 un-flatten retry
type enum declared but not enforceddocs-check.yml lacked validation of type and status fieldsrig-gitops#182 — added enforcement (merged)

DecisionDetailStatus
Canonical whitepaper homeAstro/rig-docs is the single source of truth (rig-docs#201). rig-gitops/MkDocs is secondary. See decisions/2026-04-24-whitepaper-canonical-home.md.✅ Merged
8-type content taxonomyValid type values: reference, research, user-story, proposal, decision, runbook, whitepaper, story. Defined in docs-check.yml.✅ Enforced via rig-gitops#182
type + status enforcementdocs-check.yml now rejects PRs with missing or invalid type/status frontmatter fields.✅ rig-gitops#182 merged
Self-auditing rig epicA recurring self-audit cycle tracks docs freshness, broken links, and schema violations.rc#230

ItemDescription
rc#217Review-E dispatch fix — allow dispatch while Dev-E envelope is running
rig-gitops#182type + status enforcement added to docs-check.yml
rig-docs#195Stories + user-stories sections
rig-docs#199Sidebar + redirects
rig-docs#201Whitepaper canonical-home decision doc

ItemDescription
rc#226Emit main_ci_failed event + dashboard + Discord
rc#227Re-dispatch Dev-E on merge_conflict
rc#228Differentiate close-reasons (superseded / cancelled / merged)
rc#230Self-auditing rig epic
rc#232–234Additional lifecycle gap follow-ons
rig-gitops#185CI follow-on
rig-gitops#187CI follow-on
rig-docs#190Epic: self-audit cycle
rig-docs#193Retype sweep
rig-docs#194Sidebar cleanup
rig-docs#204Un-flatten whitepaper retry
claude-3#621Fix websites.md merge-conflict markers