Per-tool YAML licenses (#4) + review-grounded meta-skills (#7)#20
Merged
Conversation
Propagate license_tier/license/license_detection from tools_index.json into
the 909 tools/<slug>.yaml LinkML records, schema-correctly.
- scripts/enrich_tool_yaml.py: tier_map(tools_index) -> per-slug license rows;
enrich(collection_dir) joins by slug and writes the three fields right after
schema_version (idempotent, _yaml_dump style-preserving, no git/network).
- asb_skill_bundle.yaml: vendor the LinkML schema at repo root (where
validate.yml gate 1 expects it) and add optional license_tier/license/
license_detection slots to the ASBTool class + a LicenseTierEnum
{open,noncommercial,restricted}. Verified: ASBTool instances with the new
fields validate clean and an invalid tier is rejected; the gate's result on
collection.yaml is unchanged.
- check_tools_index.check_collection: cross-check each tools/<slug>.yaml
license_tier == its tools_index license_tier (tools without a yaml skipped).
- Ran on collections/metabolomics/v2: 909 enriched, 0 mismatches
(511 open / 389 restricted / 9 noncommercial); re-run is a byte-stable no-op.
Tests: 19 new (enrich + cross-check), full suite 397 passed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
A super-skill can now be grounded in a review article instead of being
purely composed from the skills it orchestrates.
- synthesize_meta_skill.meta_frontmatter: optional review_doi=None. When
given -> provenance_tier="literature", metadata.dois=[review_doi],
derived_from=[{doi:review_doi}], keeping skill_kind="super"+orchestrates.
Default path stays synthetic (no dois/derived_from).
- check_proposals.check_collection: accept staged literature super-skills,
reusing scripts.provenance_tier.validate_entry semantics
(literature => >=1 doi; synthetic => synthesized_from; community =>
related_skills key). Super/skill_kind/orchestrates checks intact.
- governance/META_SKILLS.md: document the three meta-skill origins
(synthetic / community / literature = review-grounded) + review-DOI flow.
- commands/synthesize-meta-skill.md: document the --review-doi option.
- Tests: literature super-skill with a review DOI passes; without a doi
fails; synthetic path unchanged. Full suite 404 passed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…asb-schema package The LinkML Tool-class slots (license_tier/license/license_detection) should be added in the unpublished asb-schema sibling package, not vendored as a 639-line copy here (divergence risk; the gate is warn-only + asb-schema not on PyPI, so this preserves dev's behavior). The real deliverable — 909 enriched tools/*.yaml + the check_tools_index cross-check + enrich_tool_yaml — is retained. FOLLOW-UP (asb-schema repo): add the 3 license slots to the Tool class so the enriched tools/*.yaml validate once asb-schema is published. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…iew-meta # Conflicts: # scripts/check_proposals.py
lfnothias
commented
Jun 26, 2026
lfnothias
left a comment
Contributor
Author
There was a problem hiding this comment.
Auto-review — VERDICT: MERGEABLE ✅
Workflow final review returned MERGEABLE; its one Important finding (a vendored 639-line asb_skill_bundle.yaml that won't load under local linkml) is resolved by removing that file — the schema is owned by the unpublished asb-schema package, the gate is warn-only, and the data deliverable is independent of it. Independently verified in the worktree:
pytest→ 434 passed (includes #19's tests after mergingdevin).check_proposals/check_tools_index/check_provenance_tiers/check_license_tiers→ exit 0.- #4: all 909
tools/*.yamlcarrylicense_tier/license/license_detectionmatchingtools_index(0 mismatch);enrich_tool_yamlidempotent. - #7: a review-grounded super-skill validates as
literature(≥1 doi); the synthetic path is unchanged. - Merge with #19: clean — no conflict markers;
validate_provenance(provenance) +contributor_violations(contributors) both wired incheck_proposals. - No git/gh/network in new scripts.
Follow-up flagged (separate asb-schema repo): add the 3 license slots to the Tool class so enriched YAMLs validate once asb-schema is published.
Gate 15: Paper Access Tier Validation FAILEDOne or more papers in this PR have missing or non-open-access tiers. Please:
See OPEN_ACCESS_POLICY.md for the full policy and allowed access tiers. |
lfnothias
added a commit
that referenced
this pull request
Jun 26, 2026
Propagates two post-#19 merges into the 8 packs (which weren't rebuilt after): - synthesize-meta-skill.md: the #7 --review-doi addition (PR #20) - kb_bundle.json: related_skills from the #1 embedding precompute (PR #21) claim-skill.md was already shipped to all packs in 2be335f (PR #19) and is unchanged here. Idempotent: re-running build_all_grounding.sh now yields no diff. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Two features (#4 per-tool YAML licenses, #7 review-grounded meta-skills). Merged
devin to resolve thecheck_proposals.pyoverlap with #19. 434 tests; all gates green.#4 — per-tool YAML license enrichment
scripts/enrich_tool_yaml.pywriteslicense_tier/license/license_detectioninto all 909tools/<slug>.yaml(joined by slug fromtools_index.json), idempotent + byte-identical torender_tool_yamlstyle.check_tools_indexextended to cross-check eachtools/<slug>.yamllicense_tier== itstools_indextier (0 mismatch on real data).asb_skill_bundle.yamlthe workflow had added: that schema is owned by the unpublishedasb-schemasibling package (the LinkML gate is warn-only +asb-schemanot on PyPI). Vendoring a 639-line copy here = divergence risk with no CI benefit. Follow-up (asb-schema repo): add the 3 license slots to the Tool class so the enriched YAMLs validate once published.#7 — review-grounded (literature-tier) meta-skills
synthesize_meta_skill.meta_frontmattergainsreview_doi=→ a super-skill grounded in a review article becomesprovenance_tier: literature(dois/derived_fromset), vs the defaultsyntheticpath.check_proposalsnow delegates the provenance invariant toprovenance_tier.validate_entry(community/synthetic/literature ⇒ ≥1 doi), a DRY refactor;META_SKILLS.md+synthesize-meta-skill.mddocument--review-doi.Verification
pytest→ 434 passed;check_proposals/check_tools_index/check_provenance_tiers/check_license_tiersexit 0.validate_provenance+contributor_violationscoexist incheck_proposals.