Skip to content

scripts/pm/git-history.mjs is the prescribed shallow-history remedy and is named in no instruction file, so a seat asking a churn question has no way to find it #10508

Description

@claude

Found while implementing #9902 (PR #10506). Filing rather than widening that PR: the remedy is a governed edit, and governed surfaces are human-merge-only and never a rider on a code PR.

The gap

scripts/pm/git-history.mjs shipped for #9878 as the answer to "how many commits landed in this window" — it proves the window is covered, deepens only when the shallow floor intrudes, and otherwise refuses with an empty stdout so a captured number is empty rather than plausible.

Before PR #10506, grep -rn git-history across the whole repo returned only the file itself: no package.json script, no workflow step, no skill, no AGENTS.md entry. Two consequences, one of which is now closed:

The remedy, which needs a human merge

The two natural homes are both governed surfaces (docs/adr/** + .claude/** + skills/** + AGENTS.md + CLAUDE.md, maintainer 2026-08-18):

  • AGENTS.md guard index — one line, in the same shape as the other entries.
  • .claude/skills/pm-dispatch/SKILL.md tool table — it already lists scripts/pm/check-governed-merges.mjs, and the PM seat is the heaviest asker of windowed history questions (round reports quote churn counts).

Per check-governed-merges.mjs's own register this is domain:skills territory (SKILL.md: 「skills 相关的应该都归你管」, maintainer 2026-08-18), not domain:devx.

Suggested wording, so the routing seat has something to accept or reject rather than compose:

scripts/pm/git-history.mjs — answer a "how many commits on <ref> in <window>" question, or REFUSE. A shallow clone answers windowed git log/rev-list questions from truncated history at exit 0 with no warning; this proves the window is covered first. historyHorizon() is the read-only predicate for tools that answer their own question.

Related

#9878 (the helper) · #9902 (the three call sites) · PR #10506


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions