Repository navigation
Add scheduled authority-source drift checking - #47
Merged
Merged
Conversation
Skills pin tool releases and cite primary sources that go stale silently. Register those sources in .github/authority-sources.json, starting with the security-scan skill and the Google-sourced security references, and check them weekly: - check_sources.py compares pins with the latest GitHub, PyPI, npm, and RubyGems releases, probes cited pages for removal or relocation, and marks claims due for review after their interval. Stdlib only, no model. - tests/test_authority_sources.py fails a pull request that adds an unregistered URL or pinned version to a tracked file, or leaves an entry whose marker or URL the file no longer contains. - The source-drift workflow keeps one tracking issue current. The job that fetches third-party content cannot write; the issue-writing job fetches nothing. Actions are pinned to commit SHAs. ADR 0003 records the design and the proposed agent-review stage, which would use Google's Developer Knowledge MCP for Google-published sources. verified_on dates are seeded from the dates the skills already record. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BCqiHZzRJbY1VLSgkm14k
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Skills pin tool releases and cite primary sources that go stale without any signal. This adds the first two stages of a source-verification pipeline, as maintainer-side CI rather than a client hook.
.github/authority-sources.jsonregisters 23 sources with the canonical file that depends on each, its publisher, and averified_ondate. Coverage starts with the wholesecurity-scanskill (17 pinned releases, 3 URLs) and the Google-sourced security references (Chrome Security blog, Chromium AI-bugs FAQ, GTIG supply-chain guidance).tests/test_authority_sources.pyfails a PR that adds an unregistered URL or# vX.Y.Zpin to a tracked file, cites a generated mirror instead of the canonical file, or leaves an entry whose marker/URL the file no longer contains. Runs offline under the existingunittestjob..github/scripts/check_sources.py(stdlib only, no model) compares pins with the latest GitHub/PyPI/npm/RubyGems release, flags a pin ahead of any release (catches fabricated versions), probes cited pages for 404s and redirects, and marks URL claims due for review afterreview_after_days(default 90). Exits 0 clean / 1 attention / 2 invalid manifest;--jsonoutput is the input contract for a future agent stage.source-driftruns weekly (Mon 06:17 UTC) and onworkflow_dispatch, and keeps one Authority source drift report issue current (create, update with a comment when findings change, close when clean). It never edits a skill.docs/contributing.md; ADR 0003 records the design and the proposed stages 3 (agent review of flagged entries, using Google's Developer Knowledge MCP forpublisher: googlesources) and 4 (monthly discovery notes).Security notes
contents: readonly; theissues: writejob fetches nothing and receives the report through an env var, never script interpolation.api.github.com.actions/checkoutis pinned to a commit SHA withpersist-credentials: false; a test enforces SHA pinning for this workflow.Expected first report
verified_ondates are seeded from dates the skills already record (2026-07-29 toolchain, 2026-08-03 Google research), not re-verified. A local run confirmed checkov 3.3.8→3.3.30, schemathesis 4.24.3→4.32.2, eslint-plugin-security 4.0.1→4.2.0, and brakeman 8.0.5→8.1.0. GitHub API lookups were blocked in the authoring sandbox; git tags suggest trivy, osv-scanner, syft, grype, trufflehog, gosec, nuclei, and AFL++ are also behind. Fixing that drift is left for a follow-up, since each bump needs flag re-verification and a package version bump.Test plan
python -m unittest discover -s tests— 110 tests passsync_skills.py --checkandsync_plugin_adapters.py --checkcleancheck_sources.py --validate-onlypasses; live run produces the report abovesource-driftviaworkflow_dispatchand confirm the tracking issue opensGenerated by Claude Code