From 87cd17d27043c9083ea948b98d65158ec12985a0 Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Mon, 14 Sep 2026 13:57:40 -0400 Subject: [PATCH 1/2] ci: remove the scheduled link-check issue caller Owner decision 2026-09-14: no automated process should open GitHub issues on its own. link-check.yml only ever produced a rolling tracking issue from the ci-workflows reusable link-check workflow, so delete the caller and its stale references. Refs: melodic-software/claude-code-plugins Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_019mo9xaZ53JHHy4aBjgd8wK --- .github/workflows/ci.yml | 1 - .github/workflows/link-check.yml | 32 ------------------- .github/workflows/silent-revert-canary.yml | 2 +- .../video-digest-source-liveness.yml | 5 ++- docs/architecture/landscape.json | 2 +- 5 files changed, 4 insertions(+), 38 deletions(-) delete mode 100644 .github/workflows/link-check.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65d44ec2ab..8f621a26d3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -472,7 +472,6 @@ jobs: .github/workflows/claude-security-review.yml .github/workflows/dependabot-miro-bundle.yml .github/workflows/hook-utils-timing.yml - .github/workflows/link-check.yml .github/workflows/silent-revert-canary.yml - name: Verify shebang files are executable diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml deleted file mode 100644 index 84f872a7b4..0000000000 --- a/.github/workflows/link-check.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: link-check - -# Advisory online external-link check (not part of ci-status). Runs weekly and -# on demand; files a rolling tracking issue on failure rather than gating merges. -# Deterministic on-disk link integrity is covered separately by the offline -# lychee check; this lane catches dead external URLs in the docs. Public repo: -# runs on the reusable's hosted default runner. -on: - schedule: - - cron: '23 6 * * 1' - workflow_dispatch: - -permissions: - contents: read - -jobs: - link-check: - # issues: write is scoped to this job (least privilege) — only the called - # workflow files the rolling tracking issue. - permissions: - contents: read - issues: write - uses: melodic-software/ci-workflows/.github/workflows/link-check.yml@5776760254f8b63cba44e896f51604cb755350d9 # v0.22.2 - with: - runner: ubuntu-24.04 - args: >- - --cache - --max-cache-age 7d - --no-progress - --accept-timeouts - --config lychee.toml - './**/*.md' diff --git a/.github/workflows/silent-revert-canary.yml b/.github/workflows/silent-revert-canary.yml index ad7665b3c1..23dcc2bafa 100644 --- a/.github/workflows/silent-revert-canary.yml +++ b/.github/workflows/silent-revert-canary.yml @@ -23,7 +23,7 @@ name: silent-revert-canary # aggregate, which is the single required check the org ci-gate ruleset # keys on. Adding it there would make a detection heuristic able to block # merges, which is how canaries acquire a constituency for switching them -# off. Same posture as link-check.yml: advisory lane, outside ci-status. +# off. Advisory lane, outside ci-status. # * Nothing here changes any ruleset. The global # `strict_required_status_checks_policy` stays off under the accepted ADR # in melodic-software/github-iac diff --git a/.github/workflows/video-digest-source-liveness.yml b/.github/workflows/video-digest-source-liveness.yml index 3aebe87da0..4794719791 100644 --- a/.github/workflows/video-digest-source-liveness.yml +++ b/.github/workflows/video-digest-source-liveness.yml @@ -5,15 +5,14 @@ name: video-digest-source-liveness # upstream drift (yt-dlp / YouTube / X). It is deliberately NOT in ci.yml and # NOT in the ci-status aggregate — a red run annotates the job, writes a step # summary, and uploads the probe report as an artifact. It never opens or -# updates GitHub issues (drain forbids filing). Same non-blocking posture as -# link-check.yml, without the tracker-item side effect. +# updates GitHub issues (drain forbids filing). # # pull_request: hermetic --offline self-test only (no network). # schedule / workflow_dispatch: live yt-dlp probes + annotate/upload on failure. on: schedule: - # Weekly Monday 07:17 UTC — staggered off the link-check Monday 06:23 slot. + # Weekly Monday 07:17 UTC. - cron: '17 7 * * 1' workflow_dispatch: pull_request: diff --git a/docs/architecture/landscape.json b/docs/architecture/landscape.json index a44eeb7c6c..2f3a9bae5a 100644 --- a/docs/architecture/landscape.json +++ b/docs/architecture/landscape.json @@ -88,6 +88,6 @@ {"from":"claude-code-plugins","to":"actions/setup-node","type":"uses-workflow","relation":"external","count":5,"files":[".github/workflows/ci.yml",".github/workflows/dependabot-miro-bundle.yml",".github/workflows/video-digest-source-liveness.yml"]}, {"from":"claude-code-plugins","to":"actions/setup-python","type":"uses-workflow","relation":"external","count":3,"files":[".github/workflows/ci.yml"]}, {"from":"claude-code-plugins","to":"actions/upload-artifact","type":"uses-workflow","relation":"external","count":1,"files":[".github/workflows/video-digest-source-liveness.yml"]}, - {"from":"claude-code-plugins","to":"melodic-software/ci-workflows","type":"uses-workflow","relation":"internal","count":24,"files":[".github/workflows/ci.yml",".github/workflows/claude-review.yml",".github/workflows/claude-security-review.yml",".github/workflows/issue-triage-label.yml",".github/workflows/link-check.yml"]} + {"from":"claude-code-plugins","to":"melodic-software/ci-workflows","type":"uses-workflow","relation":"internal","count":23,"files":[".github/workflows/ci.yml",".github/workflows/claude-review.yml",".github/workflows/claude-security-review.yml",".github/workflows/issue-triage-label.yml"]} ] } From f9c38245301143141255aafa40871d5f77993b1b Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Mon, 14 Sep 2026 14:24:11 -0400 Subject: [PATCH 2/2] ci: fix landscape drift and record link-check removal in provenance docs Follow-up to the link-check.yml deletion: regenerate the ci-workflows uses-workflow edge to match reference-edges.sh (managed-files-guard.yml had fallen out of the FILE_CAP window behind link-check.yml, count 23 across 5 files, not 4) and record the dead-pointer wiring's removal in provenance-convention-engagement.md. Refs: melodic-software/claude-code-plugins Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_019mo9xaZ53JHHy4aBjgd8wK --- docs/architecture/landscape.json | 2 +- docs/architecture/landscape.md | 2 +- docs/specs/provenance-convention-engagement.md | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/architecture/landscape.json b/docs/architecture/landscape.json index 2f3a9bae5a..2fdebc9f95 100644 --- a/docs/architecture/landscape.json +++ b/docs/architecture/landscape.json @@ -88,6 +88,6 @@ {"from":"claude-code-plugins","to":"actions/setup-node","type":"uses-workflow","relation":"external","count":5,"files":[".github/workflows/ci.yml",".github/workflows/dependabot-miro-bundle.yml",".github/workflows/video-digest-source-liveness.yml"]}, {"from":"claude-code-plugins","to":"actions/setup-python","type":"uses-workflow","relation":"external","count":3,"files":[".github/workflows/ci.yml"]}, {"from":"claude-code-plugins","to":"actions/upload-artifact","type":"uses-workflow","relation":"external","count":1,"files":[".github/workflows/video-digest-source-liveness.yml"]}, - {"from":"claude-code-plugins","to":"melodic-software/ci-workflows","type":"uses-workflow","relation":"internal","count":23,"files":[".github/workflows/ci.yml",".github/workflows/claude-review.yml",".github/workflows/claude-security-review.yml",".github/workflows/issue-triage-label.yml"]} + {"from":"claude-code-plugins","to":"melodic-software/ci-workflows","type":"uses-workflow","relation":"internal","count":23,"files":[".github/workflows/ci.yml",".github/workflows/claude-review.yml",".github/workflows/claude-security-review.yml",".github/workflows/issue-triage-label.yml",".github/workflows/managed-files-guard.yml"]} ] } diff --git a/docs/architecture/landscape.md b/docs/architecture/landscape.md index 35c0d8d417..b00a3e1ee2 100644 --- a/docs/architecture/landscape.md +++ b/docs/architecture/landscape.md @@ -44,7 +44,7 @@ C4Context Rel(melodic_software_claude_code_plugins, melodic_software_runner_policy_runtime, "cites (1)") Rel(melodic_software_claude_code_plugins, melodic_software_standards, "cites (53)") Rel(melodic_software_claude_code_plugins, actions_checkout, "uses-workflow (15)") - Rel(melodic_software_claude_code_plugins, melodic_software_ci_workflows, "uses-workflow (24)") + Rel(melodic_software_claude_code_plugins, melodic_software_ci_workflows, "uses-workflow (23)") ``` 64 external repositories are referenced but not drawn; the record carries diff --git a/docs/specs/provenance-convention-engagement.md b/docs/specs/provenance-convention-engagement.md index fc8a63320f..f8956c1932 100644 --- a/docs/specs/provenance-convention-engagement.md +++ b/docs/specs/provenance-convention-engagement.md @@ -65,6 +65,12 @@ is recorded in the build plan's Phase 7 as scheduled, not drifted. findings over pointers this plugin wrote route to the demotion path (`reference/dispositions.md`: pointer demotes to stamped record or archived-snapshot citation). Recorded here because it is consuming-repo wiring, not plugin machinery. + Dated note, 2026-09-14: this repository's own weekly online link-check lane + (`.github/workflows/link-check.yml`) was removed in #4166 under the + no-auto-issue-filing owner decision, since its only output was a tracking + issue. The dead-pointer trigger this wiring fed is dormant here until a + non-issue-filing replacement lane is wired; other consuming repos are + unaffected. - **Adopters table.** If the sweep leaves this repository conforming (no unstamped carriers in scope), the fleet's open-carriers issue (#2297) gets its closure evidence; rows are added only for surfaces that actually conform, per the table's own admission rule.