Recorded by the skills lane seat (session session_01LraLgQVGq8egUwfYZpbYt1) from two flights this shift that hit it independently. Unassigned, bare, for triage.
What was measured
Why it is a finding and not a note
It is the same "exit 0 and reads correct" failure class the os-dev contract already catalogues for pipes and zero-match edits — a wrong answer with no signal. Any dispatch that asks a dev to date a line of history (when did a sentence arrive, did a rule predate a gate, which PR landed a construct) inherits it. .claude/agents/os-dev.md and .claude/skills/pm-dispatch/** carry 0 occurrences of shallow (grep at 89a156af88, 2026-09-03T01:40Z). #9878 (closed) recorded the sibling — commit COUNTS wrong by ~12× in a shallow clone — and did not cover -S / --follow dating.
Likely resolution, not a decision
One line in the os-dev contract's measurement rules: before trusting git log -S / git log --follow / git blame for a date, check git rev-parse --is-shallow-repository and deepen (git fetch --unshallow, or --deepen until the answer stops moving), and say so in the report. .claude/agents/os-dev.md is line-ratcheted at headroom 0 (469/469), so the line is paid same-file; governed .claude/** ⇒ draft PR, human merge. Alternatively the container image could clone deeper — that is the platform's call, recorded here only as the other door.
Verified
Refs: PR #14789 (the measurement) · PR #14784 (the second instance) · #9878.
Recorded by the skills lane seat (session
session_01LraLgQVGq8egUwfYZpbYt1) from two flights this shift that hit it independently. Unassigned, bare, for triage.What was measured
Check Changeset#14647 flight (PR docs(agents): a released-package bug fix takes a patch changeset, never none #14789): both history probes the dispatch prescribed —git log -S'Pure bug fixes do' -- AGENTS.mdand the changeset workflow's history — returned the shallow horizon commitfab693bee(2026-08-17) as the "introduction", with exit 0 and no warning. Aftergit fetch --unshallowthe true answers were 2026-05-30 (43625fbd6c) and 2026-07-21 (8ff9210947) — up to three months earlier. The dispatch's question ("does the sentence predate the gate?") would have been answered wrongly by a dev who trusted the first reading.git log -S'尖括号路径占位符' -- .claude/skills/pm-dispatch/SKILL.mdfirst reported the graft boundary (873ff0fd, 242-commit clone); the dev deepened twice to 2,320 commits before the true landing (de9859966, 2026-08-25, PR docs(pm-dispatch): SKILL.md discipline pack — six scoped protocol amendments in one file #12086) appeared. That date was a ruling-mandated verification fact./home/user/objectstackis no longer shallow (git rev-parse --is-shallow-repository=falseat 2026-09-03T01:39Z, after the [finding] AGENTS.md says "Pure bug fixes do not require a changeset" — a pure bug-fix PR in a released package following it literally has no green path throughCheck Changeset#14647 flight's additive--unshallow); every fresh dev container starts shallow again.Why it is a finding and not a note
It is the same "exit 0 and reads correct" failure class the os-dev contract already catalogues for pipes and zero-match edits — a wrong answer with no signal. Any dispatch that asks a dev to date a line of history (when did a sentence arrive, did a rule predate a gate, which PR landed a construct) inherits it.
.claude/agents/os-dev.mdand.claude/skills/pm-dispatch/**carry 0 occurrences ofshallow(grep at89a156af88, 2026-09-03T01:40Z). #9878 (closed) recorded the sibling — commit COUNTS wrong by ~12× in a shallow clone — and did not cover-S/--followdating.Likely resolution, not a decision
One line in the os-dev contract's measurement rules: before trusting
git log -S/git log --follow/git blamefor a date, checkgit rev-parse --is-shallow-repositoryand deepen (git fetch --unshallow, or--deepenuntil the answer stops moving), and say so in the report..claude/agents/os-dev.mdis line-ratcheted at headroom 0 (469/469), so the line is paid same-file; governed.claude/**⇒ draft PR, human merge. Alternatively the container image could clone deeper — that is the platform's call, recorded here only as the other door.Verified
search_issues, 5 results): [finding] Agent containers get a 63-commit shallow clone, so every "N commits on main in a month" measurement is wrong by ~12x unless the dev deepens first #9878 (closed, commit counts), collect-release-notes.sh's changeset-body fallback silently serves the PREV_REF copy when the deleting commit sits below a shallow floor #10509 / bump-objectui.sh's walkability guard cannot detect a shallow objectui clone — the digest silently ships a complete-looking release record derived from a truncated history #9408 / [finding] Any localpnpm run versionrehearsal hangs forever in a shallow clone —getCommitsThatAddFilesdeepens in a loop that never terminates without a reachable remote #9555 (closed, shallow-floor effects in release scripts),git-history --self-testis red on main every day after 12:00 UTC — a bare--sincedate is approxidated to the CURRENT time of day, and it fails Lint & Repo Gates for every PR #10807 (closed,--sinceapproxidate). None covers-Sdating or the os-dev contract's silence on it.Refs: PR #14789 (the measurement) · PR #14784 (the second instance) · #9878.