fix(validate-action): exclude non-pedigree files from K9 checks - #21
Conversation
coordination.k9 and session/custom-checks.k9 are the estate-standard session-management coordination bindings (plain YAML, ~40 repos) — an unrelated file family that happens to share the .k9 extension. self-validating/methodology-guard.k9.ncl is a K9 *validator definition* (rules about agent methodology constraints), not a pedigree target. None of the three were ever meant to satisfy the K9!/pedigree schema this action checks for, so every one of them fails the K9!/pedigree checks by design, not by defect. That was producing 6 of the 8 "Validate K9 contracts" errors currently blocking PRs in bitfuckit, contractiles, recon-silly-ation and stateful-artefacts (and latently affecting every other repo carrying the same estate-standard files). Add the three path fragments to the action's default paths-ignore so this is fixed once, here, instead of via a local override repeated in every wrapper repo. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
CI failed: CI failures occurred due to an unresolved external action repository and a git submodule authentication failure when cloning a dependent repository.OverviewTwo distinct dependency-related failures occurred in the CI run: an inability to resolve and download a custom GitHub Action ( FailuresMissing or Inaccessible GitHub Action (confidence: high)
Git Submodule Authentication Failure (confidence: high)
Summary
Code Review ✅ Approved 1 resolved / 1 findingsExcludes non-pedigree session and validator files from validate-action checks to prevent false schema validation errors. Consider anchoring the coordination.k9 paths-ignore fragment to avoid unintended over-matching.
✅ 1 resolved✅ Edge Case: Unanchored 'coordination.k9' fragment can over-match real contracts
Tip Comment OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
…shed instantiation (#21) ## Summary Fixes the three CI blockers keeping the estate's PR queue stuck, as diagnosed for this repo (full per-blocker root-cause detail is in the commit message): - **lint-workflows** (unpinned action, `rsr-antipattern.yml:15`): the referenced reusable (`rsr-antipattern-reusable.yml`) has never existed on `hyperpolymath/standards`. It's dead, retired estate-wide per `docs/audits/audit-reusables-convergence-2026-05-26.adoc`, and superseded by `governance.yml` (already present here). Deleted rather than pinned to an unresolvable reference. - **Validate K9 contracts** (8 errors / 10 files): 6 were a shared `k9-ecosystem/validate-action` scope bug, fixed at the source in hyperpolymath/k9-ecosystem#21 (with a local stopgap override here). The remaining 2 were a genuine `container/deploy.k9.ncl` defect (missing `K9!` line, pedigree hidden behind a let-binding) — fixed directly. - **openssf-compliance**: failed on TWO files. `ECOSYSTEM.a2ml`'s `notes` field documented the `{{PLACEHOLDER}}` mechanism using the literal token shape (reworded). `STATE.a2ml` was still, despite PR #19's title, substantively the raw template — `project = "rsr-template-repo"`, a "STATE file for rsr-template-repo itself" preamble, and template-authoring milestones/notes. Properly instantiated for recon-silly-ation from its own README/manifest. ## Test plan - [x] `bash validate-action/validate-k9.sh` (k9-ecosystem, with the new paths-ignore) → `Errors: 0` (was 8) - [x] `grep -rnE '^[[:space:]]+uses:' .github/workflows/ | grep -v '@[a-f0-9]{40}'` → empty (was 1 match) - [x] Reproduced the openssf-compliance placeholder-check step locally → 0 files flagged (was 2) - [x] `python3 -c "import tomllib; tomllib.load(...)"` on the edited `.a2ml` files → parses clean - [x] All touched/remaining workflow YAML parses via `yaml.safe_load` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
…24) ## Summary Propagates the same two fixes landed in bitfuckit/contractiles/ recon-silly-ation to this repo, whose `main` branch shows the identical two failing checks: - **rsr-antipattern.yml**: called `hyperpolymath/standards/.github/workflows/rsr-antipattern-reusable.yml`, which has never existed on that repo (retired estate-wide per `docs/audits/audit-reusables-convergence-2026-05-26.adoc`; superseded by `governance.yml`, already present here). Deleted rather than pinned to an unresolvable reference. - **Validate K9 contracts**: 2 errors from the same `container/deploy.k9.ncl` defect (missing `K9!` line, pedigree hidden behind a let-binding). Fixed the same way, plus the same local `paths-ignore` stopgap pending hyperpolymath/k9-ecosystem#21. `openssf-compliance` was already green here; no third fix needed. ## Test plan - [x] `bash validate-action/validate-k9.sh` (k9-ecosystem, with the new paths-ignore) → `Errors: 0` (was 2) - [x] `grep -rnE '^[[:space:]]+uses:' .github/workflows/ | grep -v '@[a-f0-9]{40}'` → empty - [x] All touched/remaining workflow YAML parses via `yaml.safe_load` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
…older FP (#23) ## Summary Fixes the three CI blockers keeping the estate's PR queue stuck, as diagnosed for this repo (full per-blocker root-cause detail is in the commit message): - **lint-workflows** (unpinned action, `rsr-antipattern.yml:15`): the referenced reusable (`rsr-antipattern-reusable.yml`) has never existed on `hyperpolymath/standards`. It's dead, retired estate-wide per `docs/audits/audit-reusables-convergence-2026-05-26.adoc`, and superseded by `governance.yml` (already present here). Deleted rather than pinned to an unresolvable reference. - **Validate K9 contracts** (8 errors / 10 files): 6 were a shared `k9-ecosystem/validate-action` scope bug, fixed at the source in hyperpolymath/k9-ecosystem#21 (with a local stopgap override here). The remaining 2 were a genuine `container/deploy.k9.ncl` defect (missing `K9!` line, pedigree hidden behind a let-binding, PLUS leftover un-instantiated `{{SERVICE_NAME}}`/`{{REGISTRY}}`/`{{PORT}}` tokens) — fixed directly. - **openssf-compliance**: false-positived on `ECOSYSTEM.a2ml`'s `notes` field, which documented the `{{PLACEHOLDER}}` mechanism using the literal token shape. Reworded (same false-positive class as hypatia#243). ## Test plan - [x] `bash validate-action/validate-k9.sh` (k9-ecosystem, with the new paths-ignore) → `Errors: 0` (was 8) - [x] `grep -rnE '^[[:space:]]+uses:' .github/workflows/ | grep -v '@[a-f0-9]{40}'` → empty (was 1 match) - [x] Reproduced the openssf-compliance placeholder-check step locally → 0 files flagged (was 1) - [x] `python3 -c "import tomllib; tomllib.load(...)"` on the edited `.a2ml` files → parses clean - [x] All touched/remaining workflow YAML parses via `yaml.safe_load` (pre-existing, unrelated `e2e.yml` parse error noted separately, not touched by this PR) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
#24) ## Summary Fixes the three CI blockers keeping the estate's PR queue stuck, as diagnosed for this repo (full per-blocker root-cause detail is in the commit message): - **lint-workflows** (unpinned action, `rsr-antipattern.yml:15`): the referenced reusable (`rsr-antipattern-reusable.yml`) has never existed on `hyperpolymath/standards` — verified via `gh api repos/hyperpolymath/standards/commits?path=...` (empty) and absence from the current `rsr-template-repo`. It's dead, retired estate-wide per `docs/audits/audit-reusables-convergence-2026-05-26.adoc`, and superseded by `governance.yml` (already present here). No SHA exists to pin, so the file is deleted rather than pinned to an unresolvable reference. - **Validate K9 contracts** (8 errors / 10 files): 6 were a shared `k9-ecosystem/validate-action` scope bug, fixed at the source in hyperpolymath/k9-ecosystem#21 (with a local stopgap override here). The remaining 2 were a genuine `container/deploy.k9.ncl` defect (missing `K9!` line, pedigree hidden behind a let-binding) — fixed directly. - **openssf-compliance**: already passing on this repo; no change. ## Test plan - [x] `bash validate-action/validate-k9.sh` (k9-ecosystem, with the new paths-ignore) → `Errors: 0` (was 8) - [x] `grep -rnE '^[[:space:]]+uses:' .github/workflows/ | grep -v '@[a-f0-9]{40}'` → empty (was 1 match: `rsr-antipattern.yml:15`) - [x] `nickel typecheck container/deploy.k9.ncl` — confirmed the K9! line breaks this (a latent, non-blocking, estate-wide property shared by the existing canonical templates too — see commit message); nothing in this repo's CI invokes it today. - [x] All touched/remaining workflow YAML parses via `yaml.safe_load`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>



Summary
validate-actioncurrently treats every*.k9/*.k9.nclfile as a K9pedigree contract and demands the
K9!magic line +pedigree = {...}block. Two file families that share the extension by estate convention
are not pedigree contracts and were never meant to satisfy that schema:
coordination.k9/session/custom-checks.k9— the estate-standardsession-management coordination bindings (plain YAML, ~40 repos, see
session/README.mdin any repo that has them).self-validating/methodology-guard.k9.ncl— a K9 validatordefinition (methodology-constraint rules), not a target pedigree
file — see its own header comment.
This is currently producing 6 of the 8 "Validate K9 contracts" errors
blocking open PRs in
bitfuckit,contractiles,recon-silly-ation,and (on
main)stateful-artefacts.Change
Adds the three path fragments to
validate-action's defaultpaths-ignore, matching the existing pattern fromhyperpolymath/hypatia#243 (a validator must distinguish its target from
a file that legitimately contains the pattern being checked, just for a
different flavour of false positive: wrong schema entirely rather than
a fixture/vendored copy).
Test plan
bash validate-action/validate-k9.shagainst bitfuckit,contractiles, recon-silly-ation, stateful-artefacts locally with
the new default: errors 8→2, 8→2, 8→2, 2→0 respectively (the
remaining 2 in the first three are a separate, genuine
container/deploy.k9.nclcontent defect fixed directly in eachof those repos' own PRs).
coordination.k9/session/custom-checks.k9areconsistently named/pathed across ~40 estate repos via
grep -rl '^session_management:' --include='*.k9'.Wrapper repos pin this action to a commit SHA, so this alone doesn't
unblock anyone — those repos also carry a local
paths-ignoreoverride as a stopgap; the SHA pin can be refreshed to point past this
commit once merged, at which point the local overrides become
redundant (harmless either way).
🤖 Generated with Claude Code