Skip to content

ci: repin the standards reusables to metadatastician/standards - #352

Merged
hyperpolymath merged 1 commit into
mainfrom
ci/repin-standards-metadatastician
Oct 26, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
ci/repin-standards-metadatastician

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

Summary

The standards repository moved from hyperpolymath to metadatastician between 2026-10-25 and 2026-10-26. Both names now resolve to the same HEAD (ecf80c5). Since then every workflow here that calls a standards reusable has failed at startup with zero jobs:

Workflows that call nothing in standards (CodeQL, Hypatia, Agda) still run. choreographic-types failed the same way the same morning, on an unchanged commit and pin.

Two causes; this PR fixes the in-repo one

  1. The uses: path. Runs on the old hyperpolymath/standards/... path fail before GitHub even reads the workflow name. This PR repins to metadatastician/standards at the same commit (75bd5994). With the new path, the runs now resolve their names (Governance, Secret Scanner).
  2. The Actions allowlist. The runs still startup-fail after the repin. The repository runs Actions with allowed_actions=selected. The canonical allowlist (config/settings/actions-allowlist.json in standards) has hyperpolymath/* but no metadatastician/*, so the moved workflows are refused before any job starts. scripts/set-allowed-actions.sh in standards describes exactly that symptom. This is a repository setting, outside this PR. It needs metadatastician/* added to the canonical allowlist and then applied with set-allowed-actions.sh (owner, admin rights).

Changes

  • governance.yml, secret-scanner.yml, scorecard.yml, mirror.yml: uses: now points at metadatastician/standards, keeping the same commit.
  • actions.lock: the standards record moves to the new owner. That covers the dependency key, the four workflow entries, and owner_id 297579217 (was 6759885). repo_id is unchanged, since a transfer keeps the repository id. This was edited by hand because gh actions-lock is not available here; running it on this branch would confirm the record.

Testing

  • The files parse as YAML.
  • Governance and Secret Scanner on this PR still startup-fail, as expected until the allowlist change is applied. They are the test: once the setting is applied, re-run them and they should start jobs.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MF5GeeBBDF6sUzr6pZTjWV

The standards repository moved from hyperpolymath to metadatastician
between 2026-10-25 and 2026-10-26. Since then every workflow that calls a
standards reusable has failed at startup with zero jobs: the scheduled
Scorecard, and Governance and Secret Scanner on PRs. Workflows that call
nothing in standards (CodeQL, Hypatia, Agda) still run.
choreographic-types failed the same way on the same day, on an unchanged
commit and the same pin.

Fix:
- Point the four `uses:` lines at metadatastician/standards, keeping the
  same commit (75bd5994).
- Move the actions.lock record to the new owner: the key, the four
  workflow entries, and owner_id 297579217. repo_id is unchanged, since a
  transfer keeps the repository id.

gh actions-lock is not available here, so the lock record was edited by
hand. This PR's own Governance and Secret Scanner runs are the test.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MF5GeeBBDF6sUzr6pZTjWV
@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
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: 53fd9484-9154-4f81-9fbf-aeb979d5c140
Commits

Reviewing files that changed from the base of the PR and between 83bc659 and 4e97eba.

Files ignored due to path filters: 1
  • .github/workflows/actions.lock is excluded by !**/*.lock
Files selected for processing: 4
  • .github/workflows/governance.yml
  • .github/workflows/mirror.yml
  • .github/workflows/scorecard.yml
  • .github/workflows/secret-scanner.yml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Recent review details
Context from checks skipped due to timeout: 6
  • GitHub Check: Hypatia Neurosymbolic Analysis
  • GitHub Check: check
  • GitHub Check: cold-check
  • GitHub Check: analyze (actions, none)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: GitGuardian Security Checks
Additional comments: 5
.github/workflows/governance.yml: 2

6-6: LGTM!

41-41: 🩺 Stability & Availability

The reusable workflow reference is available.

The referenced path exists in metadatastician/standards at commit 75bd5994470661a099df562d6d5ad2fe744dbd66. The reported startup failure is not supported for this reference.

.github/workflows/mirror.yml: 1

18-18: LGTM!

.github/workflows/scorecard.yml: 1

30-30: LGTM!

.github/workflows/secret-scanner.yml: 1

26-26: LGTM!

📝 Summary

Summary by CodeRabbit

  • Chores
    • Updated the source of reusable governance, mirroring, security analysis and secret-scanning workflows. The workflow versions and configurations remain unchanged.

Four GitHub Actions workflows now reference reusable workflows from metadatastician/standards instead of hyperpolymath/standards. The workflow paths and pinned commit SHAs are unchanged.

Changes: Standards workflow references

Layer / File(s) Summary
Update standards workflow references
.github/workflows/governance.yml, .github/workflows/mirror.yml, .github/workflows/scorecard.yml, .github/workflows/secret-scanner.yml
The four workflows now use metadatastician/standards for their reusable workflow references. The governance comment also names this repository. Workflow paths and pinned commit SHAs remain unchanged.

Priority: Normal

Estimated code review effort: 1 (Trivial) | ~4 minutes

Change: Bug fix

Possibly related issues

  • hyperpolymath/reposystem#319 — This change updates four standards workflow references, which overlaps with the issue’s caller-reference objective. The supplied summary does not indicate changes to lock records or startup behaviour.
Merge Risk: Minimal · up to 4e97e

No actionable merge-blocking risk remains in this workflow-reference update.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly identifies the main change: updating the standards reusable-workflow references to metadatastician/standards.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed The description states the problem (the standards repository moved from hyperpolymath to metadatastician, and workflows calling its reusables fail at startup with zero jobs). It names the affected wor…
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (4 skipped: 4 unsupported.)

Full details: Description check

Explanation

The description states the problem (the standards repository moved from hyperpolymath to metadatastician, and workflows calling its reusables fail at startup with zero jobs). It names the affected workflows, the repin to metadatastician/standards at commit 75bd5994, the actions.lock edits, and the separate Actions allowlist cause. It is specific and directly related to the changeset, so it passes.

  • 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.

@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 38 issues detected

Severity Count
🔴 Critical 0
🟠 High 12
🟡 Medium 26
View findings
[
  {
    "reason": "Required file missing",
    "type": "missing",
    "file": "0-AI-MANIFEST.a2ml",
    "level": "epi",
    "action": "create",
    "rule_module": "root_hygiene",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": "0-AI-MANIFEST.a2ml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "root_hygiene/missing",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `triage` in label-triage.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "triage",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "reason": "Job `sync` in labels.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "sync",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_audit/missing_timeout_minutes",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 39,
    "reason": "job in .github/workflows/labels.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 39,
          "start_line": 39
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 53,
    "reason": "job in .github/workflows/label-triage.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 53,
          "start_line": 53
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 87,
    "reason": "job in .github/workflows/hypatia-scan.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/hypatia-scan.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/hypatia-scan.yml",
          "end_line": 87,
          "start_line": 87
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 46,
    "reason": "job in .github/workflows/push-email-notify.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/push-email-notify.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/push-email-notify.yml",
          "end_line": 46,
          "start_line": 46
        },
        "rule": "research_extensions/RE001",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 34,
    "reason": "workflow .github/workflows/labels.yml:34 job `sync` has no `timeout-minutes:` — defaults to 360 min on hang",
    "type": "WH006",
    "file": ".github/workflows/labels.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/labels.yml",
          "end_line": 34,
          "start_line": 34
        },
        "rule": "workflow_hardening/WH006",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": 48,
    "reason": "workflow .github/workflows/label-triage.yml:48 job `triage` has no `timeout-minutes:` — defaults to 360 min on hang",
    "type": "WH006",
    "file": ".github/workflows/label-triage.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "medium",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/label-triage.yml",
          "end_line": 48,
          "start_line": 48
        },
        "rule": "workflow_hardening/WH006",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  },
  {
    "line": null,
    "reason": "workflow .github/workflows/hypatia-scan.yml uploads SARIF to code scanning but masks the scanner's failure (`|| true` / `|| echo 0`) and never asserts the findings artefact is a non-empty array. When the scanner fails, this uploads a SARIF with zero results, and GitHub AUTO-CLOSES every previously-open alert for that category — silently, with the job green.",
    "type": "WH014",
    "file": ".github/workflows/hypatia-scan.yml",
    "level": "epi",
    "action": "report",
    "rule_module": "workflow_hardening",
    "severity": "high",
    "evidence": [
      {
        "span": {
          "file": ".github/workflows/hypatia-scan.yml",
          "end_line": 0,
          "start_line": 0
        },
        "rule": "workflow_hardening/WH014",
        "observations": 1,
        "rule_version": "0.1.0"
      }
    ],
    "support": {
      "kind": "pattern"
    }
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@linear-code
linear-code Bot marked this pull request as ready for review October 26, 2026 18:01

Copy link
Copy Markdown
Owner Author

Governance and Secret Scanner still fail at startup on this head (4e97eba). That is expected until a repository setting changes.

With the repin, both runs now resolve their workflow names, so the reusables are found. GitHub then refuses them before any job starts.

Cause: the repository runs Actions on the selected posture. The estate allowlist (config/settings/actions-allowlist.json in standards) permits hyperpolymath/* but not metadatastician/*. That symptom is described in standards' scripts/set-allowed-actions.sh.

The fix is outside this PR and needs admin rights:

  1. Add metadatastician/* to the canonical allowlist in standards. A two-line patch has been prepared for the owner.
  2. Apply it here with scripts/set-allowed-actions.sh hyperpolymath/echo-types.

After that, re-running these two checks should show them starting jobs. No re-run is useful before then.


Generated by Claude Code

@hyperpolymath
hyperpolymath enabled auto-merge (squash) October 26, 2026 18:20
@hyperpolymath
hyperpolymath merged commit 0205254 into main Oct 26, 2026
9 of 11 checks passed
@hyperpolymath
hyperpolymath deleted the ci/repin-standards-metadatastician branch October 26, 2026 19:37
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