Files
oh-my-claudecode/docs/shared
Bellman 677f018533 fix(workflows): remove remaining UltraQA lifecycle dependencies (#3830)
* fix(workflows): remove remaining UltraQA lifecycle dependencies (#3826)

Independent fix-forward owner for promotion #3749; does not batch with
PR #3827 (Ultrawork/CCG retirement). Rebased onto dev@7704866f.

Live lifecycle removal:
- Ralph startup: drop the UltraQA mutual-exclusion blocker and
  isUltraQAActive (src/hooks/ralph/loop.ts, ralph/index.ts, hooks barrel).
- Delete src/hooks/ultraqa/ and scripts/test-mutual-exclusion.ts.
- Workflow lifecycle: remove ultraqa from mode-registry ExecutionMode and
  MODE_CONFIGS, mode-names maps/lists, skill-state canonical workflows and
  protection map, keyword-detector CANONICAL_WORKFLOW_SLASH_SKILLS,
  pre-compact checkpoint reading/display, merge-readiness evidence set,
  constants/names MODES.
- Stop hook (scripts/persistent-mode.{mjs,cjs} + template): remove the
  Priority 7 UltraQA reinforcement block; retired state no longer blocks
  Stop. SessionStart/SessionEnd still clear retired ultraqa-state.json
  (bounded pre-existing-state cleanup only).
- autopilot: stop seeding ultraqa_cycles (bridge, state, AutopilotQA
  type); transitions no longer start/clear UltraQA state; QA and
  transition prompts drop the UltraQA wording (stage prompts rebuilt).
- state-tools: ultraqa no longer state_write-eligible; stays
  read/clear-eligible via RETIRED_READ_CLEAR_MODES for /cancel cleanup.
- autopilot cancel: ultraqa cleanup routes through mode-state-io as
  bounded cleanup of pre-existing retired state.
- Docs/skills: drop live ultraqa guidance; historical 5.0.0 removal notes
  retained; reserved-name guards intentionally keep ultraqa.

Generated artifacts: dist/ and bridge/ rebuilt from the patched sources so
the committed runtime closure matches what prepack ships (removes
dist/hooks/ultraqa/*, adds the tracked entitlement fixtures #3822
introduced in src). No __pycache__ or other cache artifacts.

Tests: hooks.test.ts UltraQA/mutual-exclusion suites removed;
cancel.test.ts uses real retired-state files; Stop-hook contract test
asserts retired ultraqa state does NOT block.

Verification at this head: tsc --noEmit clean; eslint 0 errors (22
warnings = exact dev base level); vitest full suite green except known
pre-existing load flakes (session-end detached-worker,
skill-entitlements-cross-surface timeout, python-sandbox timing, smoke
cancel race) which reproduce identically on clean dev base and pass in
isolation; inventory regenerated: 0 ultraqa occurrences, drift suite
green; npm pack closure subset test green; prompt projections in sync.

Closes #3826

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

* chore(inventory): bind post-rebase UltraQA closure provenance

Inventory-only commit anchoring provenance.head to the UltraQA lifecycle
removal source commit (issue #3826 / PR #3830) on dev@5e168123.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: gaebal-gajae <clawdbot@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 01:51:05 +09:00
..