Skip to content

feat: supply-chain source freshness + license check stage#118

Merged
1 commit merged into
mainfrom
feat/supply-chain-source-license-check
Jun 2, 2026
Merged

feat: supply-chain source freshness + license check stage#118
1 commit merged into
mainfrom
feat/supply-chain-source-license-check

Conversation

@Davincc77
Copy link
Copy Markdown
Owner

@Davincc77 Davincc77 commented Jun 2, 2026

Summary

Implements a real source freshness + license compatibility check for skill/candidate input manifests — pipeline steps 11 (license check) and 12 (source freshness) of the documented supply chain. Independent PR on main; does not depend on or merge #115/#116/#117.

  • scripts/check_supply_chain_sources.py — stdlib-only, offline CLI. Parses a source manifest, classifies each source's license (allowed/review/blocked/unknown) and freshness (fresh/review/stale/missing_date), flags missing/non-https URLs, verifies local-file sha256 when referenced, emits a deterministic JSON report. Exit 0/1 (blocking)/2 (usage).
  • .internal-skills/supply-chain/source-check/ — operator README + example manifest.
  • tests/test_supply_chain_sources.py — 22 tests with fixtures.

Claim boundaries (preserved)

Internal triage only. No legal advice, no compliance claim, no network I/O, no candidate generation, no codename leak, no banned public claims. Sources without clear origin are flagged/blocked, never silently accepted (anti-mirage).

Determinism

deterministic_report_id = sha256 over manifest hash + sorted normalized findings. Same --manifest + --eval-date -> identical id, clock-independent; evaluated_at/age_days live in non_deterministic_zone, excluded from the id.

Testing

  • pytest tests/test_supply_chain_sources.py — 22 passed
  • verify_xklickd_skill_packs.py verify — 42 verified, exit 0
  • validate_v4_1_candidate_mapping.py — 49 rows / 42 artefacts, exit 0
  • existing supply-chain tests — 70 passed, 1 skipped
  • full suite — zero regressions; pre-existing klickd/jcs ModuleNotFound (6 failed / 36 errors on clean main too)
  • determinism verified; codename/claim greps clean

No merge / release / publish / deploy / tag / DOI / communication. klickd-ai untouched. Agent does not approve PRs.

Implements pipeline steps 11 (license check) and 12 (source freshness)
as a real, stdlib-only, offline CLI that triages skill/candidate source
manifests. Classifies licenses (allowed/review/blocked/unknown) and
freshness (fresh/review/stale/missing_date) for internal review, verifies
local-file hashes, flags missing/non-https URLs, and emits a deterministic
JSON report. Exits non-zero on blocking findings.

Internal triage only: no legal advice, no compliance claim, no network I/O,
no candidate generation. Independent of PRs #115/#116/#117.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@Davincc77 Davincc77 closed this pull request by merging all changes into main in 47d244c Jun 2, 2026
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.

1 participant