Skip to content

feat(OMN-13023): UTC timestamp discipline pre-commit hook — reject Z-suffixed times adjacent to mtime citations (retro B-11) - #1746

Merged
jonahgabriel merged 1 commit into
devfrom
jonah/omn-13023-utc-timestamp-discipline-hook
Jun 12, 2026
Merged

jonahgabriel merged 1 commit into
devfrom
jonah/omn-13023-utc-timestamp-discipline-hook

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Jun 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Retro B-11 (PROCESS_FAILURE_RETRO.md §3.B / §5.1): new pre-commit hook check-utc-timestamp-discipline.sh rejecting Z-suffixed clock times cited adjacent to file-mtime markers in docs/handoffs/** and docs/evidence/** markdown.

Failure class prevented: the 2026-06-11 evening handoff transcribed local-EDT ls -l mtimes with a Z suffix, manufacturing a false "16:00Z mass worker death / 4h undetected" outage narrative that the architecture investigation initially consumed as fact (refuted-finding §5.1).

Ticket: OMN-13023 (epic OMN-13013 — process enforcement ratchets, June 12 retro).

Changes

  • .pre-commit-hooks/check-utc-timestamp-discipline.sh — same-line detection of mtime marker + HH:MM[:SS]Z time; staged-index read with working-tree fallback (mirrors check-handoff-infra-health.sh); escape hatch utc-ok: <reason>; hard fail, no warn-only (CLAUDE.md Rule Phase 3: Local Template System Implementation #5).
  • .pre-commit-config.yaml — wired in the stage-1 pre-commit block.
  • tests/hooks/test_check_utc_timestamp_discipline.py — 7 unit tests (reject in handoffs + evidence, date-u-sourced pass, escape hatch, out-of-scope doc/extension guards, executable bit) + 3 fixtures.

Verification

  • uv run pytest tests/hooks/test_check_utc_timestamp_discipline.py -v — 7/7 pass.
  • uv run pytest tests/ -q -m "not integration" — 3 failed, 11074 passed; all 3 failures verified pre-existing on clean origin/dev (22fe1d6) via stash/run/restore and ticketed as OMN-13064 (delegation test_runner x2, sweep_preflight cached_block). Full integration leg requires the local bus-local broker (OMN-3571 guard); CI runs the full matrix.
  • uv run pre-commit run --files <changed files> — clean. Two --all-files failures (hardcoded-topics in plugins/onex/skills/demo/_lib/dispatch.py, legacy-session-id in plugins/onex/hooks/lib/delegation_hook_runner.py) are pre-existing on dev tip in files untouched by this diff.
  • ruff format + check clean on changed Python.

Evidence-Source: de777bb6b3faec7de229103ee81843bed4942fbc
Evidence-Ticket: OMN-13023

…suffixed times adjacent to mtime citations (retro B-11)

Rejects Z-suffixed clock times cited on the same line as a file-mtime marker
(ls -l, mtime, Finder, last modified) in docs/handoffs/** and docs/evidence/**
markdown. Local mtimes relabeled as UTC manufactured the false '16:00Z mass
worker death / 4h undetected' outage narrative on 2026-06-11
(PROCESS_FAILURE_RETRO.md §5.1). Escape hatch: 'utc-ok: <reason>' on the line.

- .pre-commit-hooks/check-utc-timestamp-discipline.sh (language: script)
- wired in .pre-commit-config.yaml stage-1 pre-commit block
- 7 unit tests + 3 fixtures (reject, date-u pass, escape hatch, scope guards)

Epic OMN-13013 (process enforcement ratchets — June 12 retro).
@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@jonahgabriel, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 28 minutes and 1 second. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8415cfab-ec21-4a93-a7ed-019d6735bb0c

📥 Commits

Reviewing files that changed from the base of the PR and between 22fe1d6 and c537b17.

📒 Files selected for processing (6)
  • .pre-commit-config.yaml
  • .pre-commit-hooks/check-utc-timestamp-discipline.sh
  • tests/hooks/fixtures/utc_timestamp_discipline/invalid_mtime_z_suffix.md
  • tests/hooks/fixtures/utc_timestamp_discipline/valid_date_u_sourced.md
  • tests/hooks/fixtures/utc_timestamp_discipline/valid_escape_hatch.md
  • tests/hooks/test_check_utc_timestamp_discipline.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jonah/omn-13023-utc-timestamp-discipline-hook

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
github-actions Bot enabled auto-merge June 12, 2026 07:31
@github-actions

github-actions Bot commented Jun 12, 2026 •

Copy link
Copy Markdown
Contributor

⚠️ Hostile Reviewer — DEGRADED (informational)

Blocking findings (critical/error): 0
Total findings: 0
Models succeeded: none

Note: All reviewer models failed or were unavailable. Degraded results are informational during the pilot phase (OMN-8524) and do not block merge. Error: cli_review exited non-zero (all models failed or binary error)


Gate semantics (pilot phase)

Verdict Meaning Blocks merge?
passed No critical/error findings No
blocked CRITICAL or ERROR findings found Yes
degraded All models unavailable (infra) No (pilot)

Powered by omniintelligence.review_pairing.cli_review — node-based adversarial review via HandlerLlmCliSubprocess (OMN-8524)

@github-actions
github-actions Bot added this pull request to the merge queue Jun 12, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a manual request Jun 12, 2026
@jonahgabriel jonahgabriel reopened this Jun 12, 2026
@jonahgabriel
jonahgabriel enabled auto-merge June 12, 2026 08:28
@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 12, 2026
Merged via the queue into dev with commit 8da25d0 Jun 12, 2026
311 of 316 checks passed
@jonahgabriel
jonahgabriel deleted the jonah/omn-13023-utc-timestamp-discipline-hook branch June 12, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant