Skip to content

feat(stewardship): editor-duplicates gate + CODEOWNERS + CONTRIBUTING + cli/README#118

Merged
luofang34 merged 4 commits intomainfrom
pr/0.1.4-beta-stewardship
May 2, 2026
Merged

feat(stewardship): editor-duplicates gate + CODEOWNERS + CONTRIBUTING + cli/README#118
luofang34 merged 4 commits intomainfrom
pr/0.1.4-beta-stewardship

Conversation

@luofang34
Copy link
Copy Markdown
Owner

Summary

PR β of the 0.1.4 stewardship track. Four small additive items
that close the most-load-bearing repo-hygiene TODOs from the
v0.1.3 review.

  • editor_duplicates_locked integration test — mechanical
    guard against N.<ext> editor-duplicate filenames. Walks the
    workspace from the repo root, fires on any basename matching
    the pinned regex
    (^.+ ([0-9]{1,2})\.(rs|toml|yml|yaml|md|json|lock)$).
    Same shape as rot_prone_markers_locked: clean-tree
    regression + positive dogfood + negative dogfood +
    RESERVED_DUPLICATE_PATHS escape hatch. Closes the recurring
    trap captured in the user's project_stray_2rs_artifacts
    memory.
  • CODEOWNERS — single-maintainer default with cert-track
    paths called out so future role splits are mechanical.
  • CONTRIBUTING.md — PR loop, trace-first convention,
    local CI gates, floors-only-up rule, style snapshots. The
    guide a new contributor needs without having to back-derive
    from CLAUDE.md.
  • crates/cargo-evidence/src/cli/README.md — lifecycle
    taxonomy of the 24 CLI files (bundle-producing /
    bundle-consuming / source-inspection / self-describing) with
    an adding-a-new-verb checklist.

Trace

  • SYS-029 / HLR-069 / LLR-076 / TEST-083 — editor-duplicate
    guard chain. New SYS because the existing rot-prone-text
    (SYS-012) and walker-ban (SYS-015) cover different categories.
  • CODEOWNERS / CONTRIBUTING / cli/README are repo governance
    docs, no trace.

Floors

Dimension Was → Now
trace_sys 28 → 29
trace_hlr 68 → 69
trace_llr 75 → 76
trace_test 80 → 81
per_crate.evidence-core.test_count 358 → 361 (+3 locked)

Test plan

  • cargo fmt --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace --all-targets
  • RUSTDOCFLAGS='-D missing_docs -D rustdoc::broken_intra_doc_links' cargo doc --workspace --no-deps
  • cargo build --release --workspace
  • cargo run -p cargo-evidence -- evidence trace --validateVERIFY_OK
  • cargo run -p cargo-evidence -- evidence floors --format=jsonlFLOORS_OK (13/13 dimensions)
  • cargo test -p evidence-core --test editor_duplicates_locked → 3/3 pass

🤖 Generated with Claude Code

Sokoly2024 and others added 3 commits May 1, 2026 19:44
…te guard

System-level claim: the tool's source tree shall be free of editor-
duplicate artifacts (` N.<ext>` filenames produced when interactive
shell ops or save-as dialogs go wrong). These artifacts compile,
hash, and inflate floor counts silently — a manual `find` sweep
catches them today, but only retroactively.

Mechanical guard lands as `editor_duplicates_locked.rs` in the
follow-up commit. Same shape as `rot_prone_markers_locked`: assert
the tree is clean, with a positive + negative dogfood pair and a
RESERVED_DUPLICATE_PATHS escape hatch (initially empty).

cert/floors.toml bumps trace_sys 28→29, trace_hlr 68→69,
trace_llr 75→76, trace_test 80→81.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… + cli/README

Repo-stewardship sweep for v0.1.4. Closes four review-flagged
TODOs at modest cost:

1. `editor_duplicates_locked.rs` — mechanical guard against
   ` N.<ext>` editor-duplicate filenames (`helpers 2.rs`,
   `tests 2.toml`, `audit 2.yml`, etc.). Walks the workspace,
   fires on any basename matching the pinned regex. Same shape
   as `rot_prone_markers_locked`. Three tests: clean tree
   regression, positive dogfood (synthetic duplicate),
   negative dogfood (legitimate digit-bearing filename).

2. `CODEOWNERS` — single-maintainer default with cert-track
   paths (`cert/`, `cert/trace/`) called out separately so a
   future split between code and certification review is
   mechanical.

3. `CONTRIBUTING.md` — PR loop, local CI gates, trace-first
   convention, floors-only-up rule, the high-impact style
   snapshots. New contributors get the rules without having
   to back-derive them from CLAUDE.md.

4. `crates/cargo-evidence/src/cli/README.md` — taxonomy of the
   24 CLI files grouped by lifecycle phase (bundle-producing
   vs bundle-consuming vs source-tree-inspection vs
   self-describing). Adding-a-new-verb checklist included.

cert/floors.toml bumps per_crate.evidence-core.test_count
358→361 (+3 from the new locked test).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…rface claim, CHANGELOG

- **Blocker 1**: CONTRIBUTING.md's UUID workflow now points at the
  established `cargo evidence trace --backfill-uuids` policy and
  cross-references `cert/trace/README.md`'s rationale. The
  python3 one-liner the prior draft suggested was the exact
  hand-crafting form the existing policy bans (collision risk,
  weakens the "UUIDs are opaque" contract, tempts reading meaning
  into digits). Two contradictory authority docs on the same
  workflow is a quality-of-process regression — fixed.

- **Blocker 2**: Sharpened the negative dogfood. The previous test
  used `mcdc_2024.rs`, which fails the duplicate regex for two
  independent reasons (no leading space + 4 digits exceeds the
  2-digit cap). A regression that drops only the leading-space
  anchor would still pass. Added `mcdc_24.rs` (2 digits, no
  leading space) so each anchor is isolated by its own fixture.

- **Minor 3**: HLR-069 now claims `surfaces = ["editor-duplicate
  gate"]`, matching the convention HLR-044 / HLR-046 / HLR-047
  established for sibling hygiene gates. New entry in
  `KNOWN_SURFACES`. `cert/floors.toml` known_surfaces 21→22.

- **Minor 5**: 0.1.4 hygiene-track entry added to CHANGELOG. Bundles
  the changes already in main from PRs #115 / #116 / #117 plus the
  changes landing in this PR. Per-PR cadence rather than batched
  release-prep PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@luofang34
Copy link
Copy Markdown
Owner Author

Addressed in 31360e2:

Blockers — fixed

  1. UUID workflow contradiction — CONTRIBUTING.md's UUID
    guidance now points at the established
    cargo evidence trace --backfill-uuids policy and cross-
    references cert/trace/README.md for the full rationale.
    The python3 one-liner the prior draft suggested was exactly
    the hand-crafting form the existing policy bans.

  2. Sharper negative dogfood — added mcdc_24.rs alongside
    mcdc_2024.rs so the leading-space anchor and digit-count
    cap each have an isolating fixture. A regression that drops
    only the leading-space anchor now fails the test.

Minor — addressed

  1. HLR-069 surface claim — now claims
    surfaces = ["editor-duplicate gate"], matching the
    convention of sibling hygiene HLRs (HLR-044 / HLR-046 /
    HLR-047). New entry in KNOWN_SURFACES. Floor:
    known_surfaces 21 → 22.

  2. CHANGELOG — added an [Unreleased] 0.1.4 hygiene-track
    section bundling PRs feat(boundary): DAL-A MC/DC fail-loud at cert/record; warn at dev #115 / refactor(trace): single discovery path; relocate self-trace to cert/trace/ #116 / feat(mcp): success bool + real --help; tighten README integrity wording #117 + this PR. Going
    with per-PR cadence rather than batched release-prep PR.

Acknowledged, no action

  1. SYS-029 process-discipline shape — same systemic issue as
    SYS-012/014/015. Tracked for the future trace-shape sweep,
    not fixed in this PR.

`rot_prone_markers_locked` walks `**/*.md` (excluding
`cert/trace/README.md`) and bans the `PR\s+#\d+` regex. The
0.1.4 changelog entries I just added carried 11 of those
breadcrumbs, firing the gate on Ubuntu Check + every dependent
job.

Trace IDs (HLR-067, LLR-074, TEST-081, etc.) are the stable
anchors and survive history rewrites; PR numbers don't (a
project transfer or squash rebase renumbers them). The
changelog now lists trace IDs only, matching the project's own
"WHY-only, no rot-prone breadcrumbs" rule.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@luofang34 luofang34 merged commit 8e30c83 into main May 2, 2026
15 checks passed
@luofang34 luofang34 deleted the pr/0.1.4-beta-stewardship branch May 2, 2026 00:22
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.

2 participants