Skip to content

Ceremony audit: remove the process apparatus that made phase-bc 5x (checks, stack layers, TTL, reviewer sets) #1605

Description

@randlee

Read-only audit of the repo's process apparatus (develop @ 139a1ed, 2026-09-26) under the just-say-no-to-process-porn-and-ceremony skill, ordered by Rand's hard line: no unnecessary checks; blocked on ceremony = remove it, never add a check. CI slimming already in #1604; ceremony-qa agent in #1603.

The 5x, measured

  • Phase bc: 31 PRs for 4 feature layers. 13 were fix/bcN-review-M layers (bc2 reached review-7; docs(bc2): correct cumulative production receipt #1565 is +3/-3 lines with its own worktree, PR, stack link and a 17-check CI run), 7 were fix/bc-phase-end-* layers, plus a triage-closure PR and an evidence PR.
  • The stack's stated reason ("CI runs once, merge once") is false: ci.yml has run on fix/, sprint/, feature/* bases since f8059e5 (2026-08-23). Every layer ran the full matrix. gh-stack-guidelines §13 ("stacked PRs receive no CI, open a CI-trigger PR") is stale.
  • TTL machinery is maintained but unused: .sprints/BC/events.ttl has 0 Completion events (AL, AM also 0). .triage/ is 2,694 files / 16 MB / 218k lines, larger than the 193k lines of Rust; 969 of those files sit in 12 phases declared unparseable. No product code reads any of it.
  • just lint pytests runs 90 files / ~20k lines of tests-of-lint-scripts on every run; release-preflight.yml:274 is literally test -f .github/scripts/release_gate.sh; fmt runs in four places.
  • QA-1 runs seven reviewers; three of them (ruthless-boundary-qa, rust-best-practices, rust-service-hardening) are by charter structure-request generators and never converge. Each non-converging finding became a stack layer.

Removal list (highest wall-clock saving first)

  1. Per-finding fix layers. Replace "new worktree + PR + gh-stack link + full CI + TTL record + closure edit per QA round" with "fix on the sprint branch until QA PASS, one PR per sprint; stack only when sprint B compiles against unmerged sprint A". Edit CLAUDE.md "Phase Integration Branch Strategy" and gh-stack-guidelines §0; delete §13 (stale), §14 (ten local gates re-run, already in pre-push + CI), §15 (trunk freeze + acks), §5/§7 ledger (no ledger file exists).
  2. Reviewer sets. QA-1 = req-qa + rust-qa-agent (+ rust-code-reviewer); ruthless/best-practices/service-hardening advisory only, never blocking; drop plan QA after plan-hardening (a review of a review); phase-end review once with the five reviewers Rand named. Merge boundary-guard into ruthless-boundary-qa.
  3. just lint process checks (11 of 38): remove pytests from the default lint order (run only when .just/, scripts/, .claude/ change, ubuntu only), ttl-triage, daemon-signing-coupling, site-generated (generate in pages.yml, stop committing output), function-length, legacy-mailbox-paths, capability-degradation, legacy-transport-removal (all freeze migrations that completed in PR Phase AM: Tokio/Axum transport-stack deletion (deletion-only) #853), merge hermes-adapter + nudge-taxonomy into one retired-identifier grep or drop; drop peer-dial-seam check 3 (verbatim design lines); strip the doc-wording assertions from arch-gates (boundary_enforcement.rs:330, 2406, 2501, 3117-3150) and the .sprints/.triage arms of the merge-marker test; remove the 6 "reserved for future phase" empty modules and their shear allowlist. modules is defined in run_lint.py but in no order list (dead entry).
  4. TTL / triage apparatus: retire graph-orchestration (29 files, 3,726 lines), triaging-findings + qa-triage agent, closing-triage, scripts/triage_carry_forward.py, .sprints/, dead .triage/ phases now and the live ones once migrated: one GitHub issue per finding labelled phase-N; sprint-report merges into triage-report and both become gh issue list --label phase-N.
  5. Dead or duplicate agents/skills: phase-orchestration + scrum-master (codex-orchestration is the live flow), the 5 sc-git-worktree-* agents + .claude/commands/sc-git-worktree.md (three copies of one capability), registry.yaml semver/depends_on (frozen at 0.1.0 since 04-22), .codex/AY5|AY6-task-list.md, .cursor/agents/publisher.md, the 976-line fuzz planner that does not execute, todo-triage (a grep elevated to a skill), 5 gemini workflows (dispatch: 30 runs, 25 skipped, 5 failed; review: 0 runs).
  6. CLAUDE.md: drop the stale "Current Status" paragraph, the per-sprint "Agent-teams review" step 6 (2 postmortems in ~30 phases), and the duplicated Send-To rule (keep agent-conventions.md R8).
  7. Kit-frozen, report only: release-preflight.yml:274 check-that-the-check-exists (sc-publish kit is frozen; file upstream if ever unfrozen).

Keep (product invariants or operator rulings): the 25 product-invariant lint checks, lines (RULE-003), site-links, adr-index, the small-fix rule, PR/QA-immediate + CI-merge-gate-only, merge-commit-only, worktree-only, codex-idle rule, task-assign-by-template, team-protocol, agent-conventions, gh-stack §18/§19/§21/§22, raw evidence under site/reports, ci-scope docs fast path, phase-aq-evidence.

Full audit tables are in the session transcript of 2026-09-26; each row names location, class, missing gate element (consumer / gate / defect / retirement), evidence and action.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions