Skip to content

feat(validation): implement decision 0025 ownership registry - #14

Merged
undergroundrap merged 2 commits into
mainfrom
fix/0025-ownership-registry
Sep 23, 2026
Merged

undergroundrap merged 2 commits into
mainfrom
fix/0025-ownership-registry

Conversation

@undergroundrap

Copy link
Copy Markdown
Owner

What this does

Implements decision 0025 (CI routing ownership registry), accepted 2026-09-23:

  • Ordinary 100644 additions/deletions under owned prefixes classify by path. docs/, tools/, and workorders/ gain language-rank prefix ownership.
  • Renames take the maximum rank of both sides (deletion/addition sides combine through max rank; Read-HumCiChanges uses --no-renames).
  • Executable-bit, symlink, gitlink, and other mode/type changes remain Full. Unknown prefixes remain Full.
  • Exact exceptions precede prefix ownership: docs/DIAGNOSTICS.md keeps compiler rank; tools/check_ci_policy.ps1 keeps language rank with its real policy gates in hygiene.
  • test_workorder_status_boundary.ps1 moves into the hygiene group, so language rank covers its consumer (BDFL ruling on 0025's open choice).
  • Decision 0025 status flips to accepted (BDFL ruling on the review at 06a4f85); repository AGENTS.md routing text synchronized. (Batched here for the same reason 0023's flip was: docs/decisions/ edits are unregistered paths = Full, so a standalone docs PR would burn a ~40-minute cycle on one line.)

Fixture honesty

The child-scope and stale-event-base fixtures previously forced Full through an unknown notes/scope_probe.txt, hiding the integration-health gates they were supposed to exercise. They now modify owned tools/run_fast_evidence.ps1 and honestly select Language, exercising the real workflow-health gates through a shared isolated gh mock with full lifecycle assertions (mock resolves inside each fixture, no longer resolves afterward, $global:LASTEXITCODE reset, pre-existing gh function/alias preserved and restored).

Also records a PowerShell discovery in AGENTS.md: Remove-Item Function:global:gh silently removes nothing; the correct removal is Remove-Item -Path 'Function:\gh'.

Evidence

All run locally on the final state (commit 4fce1ec, on top of 373aa47), unmasked exits:

  • tools/test_ci_policy.ps1 — 374 assertions, exit 0
  • tools/test_workorder_status_boundary.ps1 — 153 cases × 2 deterministically, exit 0
  • tools/check_text_hygiene.ps1 — 604 files, exit 0
  • tools/check_public_readiness.ps1 — 604 files, exit 0
  • git diff --check — exit 0
  • cargo fmt --check — exit 0
  • cargo clippy --workspace --all-targets — clean
  • tools/check_all.ps1 -EvidenceTier Fast — exit 0 on final committed state (~23 min local)

Routing note

This PR itself routes Full under the current rules (tools/ change) — it pays Full one last time. Once merged, tools-only changes route Language. Next in queue per the sequencing: Part 1b (decision 0022 escapes), then the PID-reuse flake fix (fix/capture-pid-identity), which will then route cheap.

One task per branch; branch fix/0025-ownership-registry carries only this work.

Add/delete under owned prefixes now classify by path; renames take the
maximum rank of both sides; executable-bit, symlink, gitlink, and other
mode/type changes remain Full; unknown prefixes remain Full.

docs/, tools/, and workorders/ gain language-rank prefix ownership with
exact exceptions first: docs/DIAGNOSTICS.md stays compiler rank and
tools/check_ci_policy.ps1 keeps language rank with its real policy gates
in hygiene. test_workorder_status_boundary.ps1 moves into the hygiene
group so language rank covers its consumer.

Decision 0025 status flips to accepted 2026-09-23 (BDFL ruling on the
review at 06a4f85); repository AGENTS.md routing text synchronized.

Child-scope and stale-event-base fixtures now modify owned
tools/run_fast_evidence.ps1 and honestly select Language, exercising the
real workflow-health gates through an isolated gh mock with full
mock-lifecycle assertions (resolve inside, unresolve after, LASTEXITCODE
reset). Records the Function: drive removal discovery in AGENTS.md.

Evidence: test_ci_policy.ps1 374 assertions exit 0;
test_workorder_status_boundary.ps1 153 cases x2 exit 0; text hygiene 604
files exit 0; public readiness 604 files exit 0; cargo fmt --check and
clippy clean.
- Pin all eight compiled-in docs at compiler rank (DIAGNOSTICS.md plus
  the seven schema/governance docs include_str!'d in diagnostic_catalog.rs)
- Remove tools/ from the language-rank prefix table; unlisted tools
  default to Full. Pin only the hygiene-group scripts as language-rank
  literals.
- tools/check_all.ps1 (the Full preflight, compiled into parser.rs)
  now selects Full, as do the other Full-tier consumers
  (run_fast_evidence, capture tests, exact-selector tests, editor fixtures)
- Add compiled-target pin test: scans src/ for include_str!/include_bytes!
  targets under docs/ and fails if any lacks a code-level pin, so newly
  compiled-in docs can't silently route cheap
- Fix two fixture tests to use the hygiene-script pin
  (check_text_hygiene.ps1) instead of the removed tools/ prefix
- Update AGENTS.md routing text: no broad tools/ language ownership,
  literal hygiene-script allowlist, default-Full behavior
@undergroundrap
undergroundrap marked this pull request as ready for review September 23, 2026 07:00
@undergroundrap
undergroundrap merged commit 1817299 into main Sep 23, 2026
4 checks passed
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