Skip to content

ci: repin standards to metadatastician, adopt fork-governance, migrate K9 to contract v1.0.0 - #166

Merged
hyperpolymath merged 5 commits into
mainfrom
claude/bold-dijkstra-jbt52l
Oct 27, 2026
Merged

hyperpolymath merged 5 commits into
mainfrom
claude/bold-dijkstra-jbt52l

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Why

hyperpolymath/standards moved to metadatastician/standards. Every workflow that calls a standards reusable now fails at startup with "workflow was not found". Those are Governance, Hypatia, Scorecard, Secret Scanner, Mirror and Rust CI. The cause is that actions.lock still records the old owner (owner_id 6759885).

This PR also adopts standards' fork-governance bundle, so DEED, K9-DEED and Hypatia report in one PR comment. To make the K9-DEED lane pass, every K9 file is migrated to contract v1.0.0.

What

CI (cb77f07)

  • Repin:
    • governance, hypatia-scan, scorecard, secret-scanner and mirror now pin metadatastician/standards@1fdc61c (standards main).
    • rust-ci now pins metadatastician/standards@412a703: the same commit, under the new owner.
  • fork-governance.yml (new), per standards' 3-practice/fork-governance/ADOPTION.adoc:
    • Runs the deed-conformance, k9-conformance and hypatia-scan-reusable lanes, then fork-governance-reusable, which posts one comment and updates it in place.
    • Every lane and canon-ref use the same SHA.
    • DEED runs with require-files: false. PanLL has no .deed files yet; its manifests are still .a2ml until the estate-wide migration in standards #837. The lane therefore reports grey, not red.
  • hypatia-scan.yml no longer triggers on pull_request (ADOPTION §3). Fork-governance runs the Hypatia lane on PRs; push, schedule and dispatch are unchanged.
  • dogfood-gate.yml: the k9-ecosystem validate-action job is removed. It rejects the K9! envelope that contract v1.0.0 requires, so it and the K9-DEED lane could never both pass.
  • actions.lock:
    • Standards records are re-keyed to metadatastician/standards (owner_id 297579217; repo_id 1116521501 is unchanged).
    • The nested uses: list is recomputed over every called file at 1fdc61c, including the three fork-governance reusables.
    • Leaf records are taken from standards' own lock, and each tag was checked with git ls-remote.
    • Unreferenced records are pruned: k9-ecosystem@main, plus the old dtolnay/scorecard-action SHAs.

K9 contract v1.0.0 (4b1065f)

  • 98 panel-clades/clades/*/config.k9.ncl:
    • Each file now starts with a K9! line and an SPDX header, and has a pedigree envelope with these fields:
      • schema_version
      • component_type
      • security.leash = 'Kennel
      • metadata
      • side_effects
    • The old top-level name, version, magic_number, author and leash keys are folded into the envelope.
    • Budgets.idr is unchanged; gen-budgets.sh --check reports it current.
  • 4 layout presets:
    • Each has a K9! envelope and an inline 'Yard pedigree, and is checked against pedigree-layout.ncl's contracts.
    • The contract library exports each contract by explicit binding, and PaneSizesSum100 now uses std.contract.from_validator.
    • verisim_panel is renamed to the schema's verisimdb_panel.
  • Templates are renamed to .k9.ncl.in: the three in svc/k9, plus panel-clades/container/deploy. References to them are updated. The setup-repo example is replaced with standards' canonical one.
  • generated/k9iser/*.k9 are no longer tracked. .gitignore already ignored them.

Verification (local, against standards at 1fdc61c)

  • K9: k9-validate.sh --strict --layer L2 --json over every tracked *.k9.ncl / *.k9 file gives 106 pass, 1 routed (coordination.k9), 0 fail.
  • Lock:
    • check-actions-lock-gate.sh, validate-actions-lock.sh and update-actions-lock.sh --verify-local all pass.
    • I ran them with gh-actions-lock v0.2.0.
  • Workflow lint, using governance's own helpers: the duplicate-key check is clean on 18 files, and every workflow has an SPDX header and top-level permissions:.
  • gitleaks: no leaks in the two new commits.

Not in this PR

  • .a2ml → .deed manifest migration (standards #837): the DEED lane stays grey until then.
  • Mirror still needs settings work: vars.GITEA_HOST and the Disroot repo.
  • panel-clades/.github/workflows/ is a nested copy that GitHub does not run, so it is left untouched.

Generated by Claude Code

Bring every tracked `*.k9.ncl` / `*.k9` file into line with the K9
contract v1.0.0 that standards' K9-DEED conformance lane enforces:

- 98 panel-clade configs: `K9!` magic line, SPDX header, and a
  `pedigree` envelope (schema_version, component_type, security.leash
  'Kennel, metadata.name/version/author, side_effects). The old top-level
  name/version/magic_number/author/leash keys are folded into it.
  Budgets.idr is unchanged (gen-budgets --check is current).
- 4 layout presets: `K9!` envelope with an inline 'Yard pedigree; the
  preset is checked against pedigree-layout.ncl's contracts.
  pedigree-layout.ncl exports its contracts by explicit binding (a bare
  `{ Foo, }` field declares Foo without defining it) and PaneSizesSum100
  uses std.contract.from_validator. database-design's `verisim_panel`
  is renamed to the schema's `verisimdb_panel`.
- svc/k9 templates and the container deploy template are renamed to
  `.k9.ncl.in` (templates are not instances, per the contract); the
  setup-repo example is replaced by standards' canonical one, and the
  references in the READMEs, manifests and TOPOLOGY are updated.
- generated/k9iser/*.k9 are untracked: .gitignore already ignores them.

Checked with standards' k9-validate.sh --strict --layer L2 at
1fdc61c: 106 pass, 1 routed (coordination.k9), 0 fail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
hyperpolymath/standards moved to metadatastician/standards. Every caller
pinned under the old owner failed at startup with "workflow was not
found", because actions.lock recorded the old owner.

- Repin governance, hypatia-scan, scorecard, secret-scanner and mirror
  to metadatastician/standards@1fdc61c (standards main), and rust-ci to
  metadatastician/standards@412a703 (same commit, new owner).
- Add fork-governance.yml per standards' fork-governance ADOPTION.adoc:
  the DEED, K9-DEED and Hypatia lanes plus one PR comment, all at the
  same standards commit as canon-ref. DEED runs with
  require-files: false, since PanLL has no .deed files yet (standards
  #837).
- hypatia-scan.yml loses its pull_request trigger (ADOPTION §3);
  fork-governance runs the Hypatia lane on PRs.
- dogfood-gate.yml drops the k9-ecosystem validate-action job, which
  rejected the `K9!` envelope that contract v1.0.0 requires; the
  K9-DEED lane replaces it.
- actions.lock: standards records re-keyed to metadatastician
  (owner_id 297579217), nested uses recomputed over every called file at
  1fdc61c, and records nothing references any more are pruned.
  Verified with standards' check-actions-lock-gate.sh,
  validate-actions-lock.sh and update-actions-lock.sh --verify-local at
  1fdc61c.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 122 files, which is 22 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 283f53b9-e51b-4eba-8c05-b39b73a5a887
Commits

Reviewing files that changed from the base of the PR and between a67641c and 85e71b2.

Files ignored due to path filters: 7
  • .github/workflows/actions.lock is excluded by !**/*.lock
  • generated/k9iser/clade-portal-config.k9 is excluded by !**/generated/**
  • generated/k9iser/contract-security.k9 is excluded by !**/generated/**
  • generated/k9iser/contract-workspace.k9 is excluded by !**/generated/**
  • generated/k9iser/panel-harness.k9 is excluded by !**/generated/**
  • generated/k9iser/pcc-cargo.k9 is excluded by !**/generated/**
  • generated/k9iser/rescript-compiler.k9 is excluded by !**/generated/**
Files selected for processing: 122
  • .github/workflows/dogfood-gate.yml
  • .github/workflows/fork-governance.yml
  • .github/workflows/governance.yml
  • .github/workflows/hypatia-scan.yml
  • .github/workflows/mirror.yml
  • .github/workflows/rust-ci.yml
  • .github/workflows/scorecard.yml
  • .github/workflows/secret-scanner.yml
  • .machine_readable/svc/k9/README.adoc
  • .machine_readable/svc/k9/examples/setup-repo.k9.ncl
  • .machine_readable/svc/k9/template-hunt.k9.ncl.in
  • .machine_readable/svc/k9/template-kennel.k9.ncl.in
  • .machine_readable/svc/k9/template-yard.k9.ncl.in
  • layouts/database-design.k9.ncl
  • layouts/language-design.k9.ncl
  • layouts/logic-and-proofs.k9.ncl
  • layouts/pedigree-layout.ncl
  • layouts/protocol-design.k9.ncl
  • panel-clades/0-AI-MANIFEST.a2ml
  • panel-clades/README.adoc
  • panel-clades/TOPOLOGY.adoc
  • panel-clades/clades/aerie/config.k9.ncl
  • panel-clades/clades/agentic-bridge/config.k9.ncl
  • panel-clades/clades/ai/config.k9.ncl
  • panel-clades/clades/ambientops/config.k9.ncl
  • panel-clades/clades/architect-mode/config.k9.ncl
  • panel-clades/clades/asset-manager/config.k9.ncl
  • panel-clades/clades/automation-bridge/config.k9.ncl
  • panel-clades/clades/automation-router/config.k9.ncl
  • panel-clades/clades/balance-analyser/config.k9.ncl
  • panel-clades/clades/beta-feedback-hub/config.k9.ncl
  • panel-clades/clades/boj/config.k9.ncl
  • panel-clades/clades/build-dashboard/config.k9.ncl
  • panel-clades/clades/capture/config.k9.ncl
  • panel-clades/clades/clade-browser/config.k9.ncl
  • panel-clades/clades/cloudguard/config.k9.ncl
  • panel-clades/clades/code-review/config.k9.ncl
  • panel-clades/clades/compatibility-matrix/config.k9.ncl
  • panel-clades/clades/contractile-completeness/config.k9.ncl
  • panel-clades/clades/coprocessors/config.k9.ncl
  • panel-clades/clades/database-bridge/config.k9.ncl
  • panel-clades/clades/databases/config.k9.ncl
  • panel-clades/clades/debugging-workbench/config.k9.ncl
  • panel-clades/clades/device-network-designer/config.k9.ncl
  • panel-clades/clades/dlc-workshop/config.k9.ncl
  • panel-clades/clades/echidna/config.k9.ncl
  • panel-clades/clades/editor-bridge/config.k9.ncl
  • panel-clades/clades/evangeliser/config.k9.ncl
  • panel-clades/clades/exploratory-workbench/config.k9.ncl
  • panel-clades/clades/farm/config.k9.ncl
  • panel-clades/clades/feedback-routing/config.k9.ncl
  • panel-clades/clades/fleet/config.k9.ncl
  • panel-clades/clades/floor-raise/config.k9.ncl
  • panel-clades/clades/functional-tester/config.k9.ncl
  • panel-clades/clades/game-preview/config.k9.ncl
  • panel-clades/clades/generator-mode/config.k9.ncl
  • panel-clades/clades/gsa-actions/config.k9.ncl
  • panel-clades/clades/gsa-browser/config.k9.ncl
  • panel-clades/clades/gsa-config/config.k9.ncl
  • panel-clades/clades/gsa-game/config.k9.ncl
  • panel-clades/clades/gsa-health/config.k9.ncl
  • panel-clades/clades/gsa-history/config.k9.ncl
  • panel-clades/clades/gsa-logs/config.k9.ncl
  • panel-clades/clades/gsa-search/config.k9.ncl
  • panel-clades/clades/gsa/config.k9.ncl
  • panel-clades/clades/guard-ai-tuner/config.k9.ncl
  • panel-clades/clades/help/config.k9.ncl
  • panel-clades/clades/hypatia/config.k9.ncl
  • panel-clades/clades/interfaces/config.k9.ncl
  • panel-clades/clades/language-forge/config.k9.ncl
  • panel-clades/clades/level-architect/config.k9.ncl
  • panel-clades/clades/load-tester/config.k9.ncl
  • panel-clades/clades/manifest-coverage/config.k9.ncl
  • panel-clades/clades/mass-panic/config.k9.ncl
  • panel-clades/clades/merge-coordinator/config.k9.ncl
  • panel-clades/clades/migration/config.k9.ncl
  • panel-clades/clades/minter/config.k9.ncl
  • panel-clades/clades/multiplayer-monitor/config.k9.ncl
  • panel-clades/clades/my-lang/config.k9.ncl
  • panel-clades/clades/network-topology/config.k9.ncl
  • panel-clades/clades/neurosym-bridge/config.k9.ncl
  • panel-clades/clades/observatory/config.k9.ncl
  • panel-clades/clades/panic-attack/config.k9.ncl
  • panel-clades/clades/performance-profiler/config.k9.ncl
  • panel-clades/clades/playgrounds/config.k9.ncl
  • panel-clades/clades/playtest-recorder/config.k9.ncl
  • panel-clades/clades/plaza/config.k9.ncl
  • panel-clades/clades/proofs-bridge/config.k9.ncl
  • panel-clades/clades/protocol-bridge/config.k9.ncl
  • panel-clades/clades/protocol-squisher/config.k9.ncl
  • panel-clades/clades/proven-adoption/config.k9.ncl
  • panel-clades/clades/provisioner/config.k9.ncl
  • panel-clades/clades/regression-guard/config.k9.ncl
  • panel-clades/clades/release-manager/config.k9.ncl
  • panel-clades/clades/repoloader/config.k9.ncl
  • panel-clades/clades/reposystem/config.k9.ncl
  • panel-clades/clades/script-gist/config.k9.ncl
  • panel-clades/clades/scripting-bridge/config.k9.ncl
  • panel-clades/clades/security/config.k9.ncl
  • panel-clades/clades/soak-monitor/config.k9.ncl
  • panel-clades/clades/spec-browser/config.k9.ncl
  • panel-clades/clades/strategy-drift/config.k9.ncl
  • panel-clades/clades/tangle-viz/config.k9.ncl
  • panel-clades/clades/team-dashboard/config.k9.ncl
  • panel-clades/clades/tentacles/config.k9.ncl
  • panel-clades/clades/tsdm/config.k9.ncl
  • panel-clades/clades/typell/config.k9.ncl
  • panel-clades/clades/typing-bridge/config.k9.ncl
  • panel-clades/clades/ums/config.k9.ncl
  • panel-clades/clades/unit-test-runner/config.k9.ncl
  • panel-clades/clades/vab/config.k9.ncl
  • panel-clades/clades/valence-shell/config.k9.ncl
  • panel-clades/clades/verification-dashboard/config.k9.ncl
  • panel-clades/clades/verisim-feeds/config.k9.ncl
  • panel-clades/clades/vexometer-friction/config.k9.ncl
  • panel-clades/clades/vm-inspector/config.k9.ncl
  • panel-clades/clades/voicetag/config.k9.ncl
  • panel-clades/clades/wiring-inspector/config.k9.ncl
  • panel-clades/clades/workspace/config.k9.ncl
  • panel-clades/container/0-AI-MANIFEST.a2ml
  • panel-clades/container/README.adoc
  • panel-clades/container/deploy.k9.ncl.in

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

hyperpolymath commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner Author

governance / Allowlist Preflight fails. The fix belongs in standards, not in this PR.

The preflight checks every uses: against standards' canonical allowlist, rhodium-standard-repositories/actions-allowlist/allowed-actions.json. At 1fdc61c (standards main), that list has hyperpolymath/* but no metadatastician/*. It therefore reports all nine standards reusables as GAP: the eight at 1fdc61c and rust-ci-reusable at 412a703.

This PR can't avoid it:

  • The check has no repo-local override.
  • Pinning back to hyperpolymath/standards is what causes the "workflow was not found" startup failures on main.
  • The repo's real Actions policy already allows these reusables, because every one of them started on this PR. Only the canonical list that the lint mirrors is behind.

No standards PR adds the pattern yet. Proposed one-line patch to metadatastician/standards, inserted in sorted position:

--- a/rhodium-standard-repositories/actions-allowlist/allowed-actions.json
+++ b/rhodium-standard-repositories/actions-allowlist/allowed-actions.json
@@
     "lycheeverse/lychee-action@*",
+    "metadatastician/*",
     "mlugg/setup-zig@*",

Once that lands, bump the standards pins here, and their actions.lock records, to the commit that carries it. I won't re-run the job, because it is deterministic and would fail again identically.


Generated by Claude Code

These are k9iser output, already ignored by .gitignore. The previous
commit meant to untrack them but the removal was dropped while the
change was split into commits, so the K9-DEED lane still scanned them
and failed (no SPDX header, not Nickel).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
@hyperpolymath
hyperpolymath marked this pull request as ready for review October 27, 2026 01:33
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-27T01:39:15.247428Z e5b52db Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Fork governance

Lane Status Run
DEED syntax (repo deed) 🟢 conformant run 40433749958
K9-DEED conformance (L0–L2; L3 not verified) 🟢 conformant (job: success) same run
Hypatia verdict grid 🔴 failing (job: success) same run

Scope: the three lanes below are static checks at the named commit. A
green row means every applicable check in its declared scope passed;
orange means evidence is missing, not that nothing was found. The
Hypatia verdict covers GATING rows only; advisory reporters are listed
in its grid and named beside the verdict, and cannot colour it. No row
is a security certification.

K9-DEED conformance

k9-deed L0–L2 green

🟢 conformant · commit 85e71b2bf0f3 · run 40433749958 · validator hyperpolymath/standards@1fdc61c0c1c8

Category Status Pass Fail Indeterminate N/A Since previous revision
K9 contract typecheck 🟢 conformant 1 0 0 0 — no comparable baseline
K9 validator self-test 🟢 conformant 49 0 0 0 — no comparable baseline
K9 live corpus (L0–L2) 🟢 conformant 106 0 0 1 — no comparable baseline
K9 live corpus (L0–L2): 1 finding(s) / scope notes
  • coordination.k9 — not_applicable: Routed to another dialect; not validated as a K9 contract.

Scope: K9 components L0–L2 against contract v1.0.0 at the named standards commit. L3 signature verification and routed coordination-dialect files are not certified. Green is limited to this scope. Orange is missing evidence; yellow is grandfathered debt or warnings; grey is an explicit scope exclusion. report.json, badge.json and the validator logs are in the k9-grid artifact on the linked run.

Hypatia verdict grid

Hypatia grid red

🔴 high · commit 85e71b2bf0f3 · run 40433749958 · scope: this change (129 file(s)) · excludes 9-archive/

Advisory: 2 row(s), worst 🟢 clean (0 critical, 0 high) — reported, never grading the change.

Reporter Gate Status Critical High Medium Minor Since previous revision
Hypatia scan gating 🔴 high 0 8 0 0 ↔ unchanged
panic-attack assail advisory 🟢 clean 0 0 0 0 ↔ unchanged
pons asinorum advisory 🟢 clean 0 0 0 0 ↔ unchanged
Hypatia scan: 88 finding(s)
  • high code_scanning_alerts/CSA003 — .github/workflows/scorecard.yml — Code-scanning alert TokenPermissionsID (high) at .github/workflows/scorecard.yml is 39 days old (threshold: 7 days) -- overdue for remediation
  • high code_scanning_alerts/CSA003 — .github/workflows/hypatia-scan.yml — Code-scanning alert TokenPermissionsID (high) at .github/workflows/hypatia-scan.yml is 39 days old (threshold: 7 days) -- overdue for remediation
  • high code_scanning_alerts/CSA003 — .github/workflows/actions.lock — Code-scanning alert hypatia/workflow_audit/invalid_actions_lock (high) at .github/workflows/actions.lock is 12 days old (threshold: 7 days) -- overdue for remediation
  • high code_scanning_alerts/CSA003 — .github/workflows/actions.lock — Code-scanning alert hypatia/workflow_hardening/invalid_actions_lock (high) at .github/workflows/actions.lock is 12 days old (threshold: 7 days) -- overdue for remediation
  • high code_scanning_alerts/CSA001 — .github/workflows/scorecard.yml — Code scanning (Scorecard): TokenPermissionsID -- Token-Permissions -- 39 day(s) old [STALE]
  • high code_scanning_alerts/CSA001 — .github/workflows/hypatia-scan.yml — Code scanning (Scorecard): TokenPermissionsID -- Token-Permissions -- 39 day(s) old [STALE]
  • high code_scanning_alerts/CSA001 — .github/workflows/actions.lock — Code scanning (Hypatia): hypatia/workflow_audit/invalid_actions_lock -- Hypatia workflow_audit: invalid_actions_lock -- 12 day(s) old [STALE]
  • high code_scanning_alerts/CSA001 — .github/workflows/actions.lock — Code scanning (Hypatia): hypatia/workflow_hardening/invalid_actions_lock -- Hypatia workflow_hardening: invalid_actions_lock -- 12 day(s) old [STALE]
  • 80 further finding(s) in files this change does not touch: reported, not graded (7 critical, 14 high).
panic-attack assail: 62 finding(s)
  • 62 further finding(s) in files this change does not touch: reported, not graded (4 critical, 0 high).
pons asinorum: 16 finding(s)
  • 16 further finding(s) in files this change does not touch: reported, not graded (0 critical, 0 high).

Scope: static findings reported by each row's tool at the named commit. The table grades only findings in files this change touches, so the colour answers "does this change introduce anything?", not "what does the whole repository still carry?". Standing findings are counted in each accordion and in report.json; the baseline filter remains the place where acknowledged debt is recorded. The lane state is the worst GATING row; advisory rows are listed and counted but never set it. Purple, red, yellow and blue grade the worst GRADED finding present; orange is evidence missing, malformed or a scanner that did not run; grey is an explicit scope exclusion with its reason. No row is a security certification. report.json, badge.json and the raw findings are in the verdict-grid artifact on the linked run.

Top-level permissions drop to contents: read; the job gets actions: read,
contents: read and security-events: write, which is what
hypatia-scan-reusable declares. pull-requests: write goes: the workflow
no longer runs on pull_request. Addresses the Scorecard Token-Permissions
alert on this file that fork-governance's Hypatia lane grades.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
The previous commit dropped it, so the workflow did not parse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
@sonarqubecloud

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e5b52dbfcb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/fork-governance.yml
Comment thread .github/workflows/fork-governance.yml
Comment thread .machine_readable/svc/k9/template-hunt.k9.ncl.in
Comment thread panel-clades/container/deploy.k9.ncl.in
Comment thread layouts/logic-and-proofs.k9.ncl
@coderabbitai

coderabbitai Bot commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Add Carrot credits or activate Agent usage billing to use Autofix

@hyperpolymath
hyperpolymath merged commit 86ddcee into main Oct 27, 2026
39 of 41 checks passed
@hyperpolymath
hyperpolymath deleted the claude/bold-dijkstra-jbt52l branch October 27, 2026 01:41
hyperpolymath pushed a commit that referenced this pull request Oct 27, 2026
#166 was squash-merged at 85e71b2; this branch carries the two review-fix
commits that landed after it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3

# Conflicts:
#	.github/workflows/actions.lock
#	.github/workflows/dogfood-gate.yml
#	panel-clades/container/README.adoc
#	panel-clades/container/deploy.k9.ncl.in

Copy link
Copy Markdown
Owner Author

This PR was squash-merged at 85e71b2, before the review-fix commits dc04df7 and 882dd75 were pushed. The four Codex threads resolved as "fixed in" those commits are therefore not fixed on main yet. They land in #167:

  • the deploy template is rendered by container-init;
  • the Hunt template's capability grant;
  • K9 conformance on push;
  • K9-aware layout docs.

Generated by Claude Code

hyperpolymath added a commit that referenced this pull request Oct 27, 2026
… K9-aware layout docs (#167)

## Why

#166 was squash-merged at `85e71b2`. Two follow-up
commits that fix four of its Codex review findings were pushed after the
merge, so they missed it. The review threads were resolved as "fixed in
dc04df7 / 882dd75", but `main` does not have those fixes. This PR lands
them.

The branch carries a merge of the #166 squash. Its diff against `main`
is exactly those two commits: 7 files, +226/−147.

## What

**`dc04df7`: deploy template, Hunt grant, push coverage**
- **`panel-clades/container/deploy.k9.ncl.in`**
- Replaced with the K9 contract v1.0.0 template ported from
rsr-template-repo and adapted to this layout (`container/`,
`compose.toml`). It has the `K9!` envelope, a capability grant,
`side_effects`, and a signature block.
- `just container-init` now renders it to `container/deploy.k9.ncl` once
no `{{…}}` token is left. It never overwrites an existing file.
  - Before this, nothing created the `deploy.k9.ncl` that the docs use.
- **`.machine_readable/svc/k9/template-hunt.k9.ncl.in`**
- Grants `net.fetch`, `fs.write` and `process.spawn`, which its
`allow_*` flags request (K9-S007).
  - Adds the Ed25519 presence block (K9-S009).
- **`dogfood-gate.yml`**
- Runs the standards K9-DEED lane on pushes to `main`/`master`, so a
direct push is checked again.
  - Pull requests still run the lane once, in `fork-governance.yml`.
  - `actions.lock` records the call.

**`882dd75`: layout docs**
- **`layouts/README.adoc`** validates presets with `k9-validate.sh`, and
evaluates the Nickel body with `tail -n +2 <preset> | nickel export`,
run from `layouts/`.
- The `K9!` envelope is not Nickel, so the old direct `nickel typecheck
layouts/*.k9.ncl` no longer works.

## Verification (local, standards `1fdc61c`)
- **K9 corpus:** 106 pass, 1 routed (`coordination.k9`), 0 fail.
- **Templates:**
- A Hunt template copy with its TODOs filled passes `--strict --layer
L2`.
- The deploy template, rendered via `just container-init` with sample
values, passes L2.
- **Layouts:** `logic-and-proofs` exports. A preset whose pane sizes do
not sum to 100 is still rejected.
- **Workflows:**
  - Every workflow parses.
  - The duplicate-key check is clean.
- The lock gate, the lock validator and `update-actions-lock.sh
--verify-local` pass.
- **Build checks:** the panel-clades Justfile parses, and
`gen-budgets.sh --check` reports current.

## Known, not in this PR
- `governance / Allowlist Preflight` stays red until standards'
allowlist gains `"metadatastician/*"`.
- Fork-PR comment posting is being fixed upstream in standards. Once
that merges, panll adds the `fork-governance-publish.yml` caller.

---
_Generated by [Claude
Code](https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3)_

---------

Co-authored-by: Claude <noreply@anthropic.com>
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