K-Dense's Scientific Agent Skills Repo Is MIT. Two of the Skills Inside It Say All Rights Reserved.
The largest science skill library on GitHub declares a license per skill rather than per repo. One install command pulls 163 of them, and nothing in that command reads the field.
Open K-Dense-AI/scientific-agent-skills and GitHub shows you a single license badge: MIT. Open skills/docx/LICENSE.txt inside that same repository and the first line reads "© 2025 Anthropic, PBC. All rights reserved," followed by a section of additional restrictions barring redistribution, derivative works, and retention of copies outside Anthropic's own services.
Both files are correct. The repository is MIT. The skill is not.
That is not a scandal, and K-Dense is not hiding it. Their own README answers the question directly in the FAQ: "Do all skills have the same license? No. Each skill has its own license specified in the license metadata field within its SKILL.md file. These licenses may differ from the repository's MIT License."
What makes it worth an article is where that field sits. The license moved down a level, from the repository root into 163 individual markdown files, and none of the four documented ways to install this library reads it, reports it, or asks you about it. npx skills add K-Dense-AI/scientific-agent-skills copies the whole set into ~/.agents/skills/ in one command. The badge you checked was on the wrong object.
What is actually in there
Some numbers first, all pulled from the GitHub API with a cache-buster, because this repo's rendered HTML pages are stale enough to be useless. The org page was serving 30.6k stars against a live count of 40,638 when I checked. Do not trust the rendered page on anything moving this fast.
Created October 19, 2025. Latest tag v2.65.0, published August 29, 2026, though main has commits from today, so the tag and the tree are already two days apart. 3,763 forks. Primary language Python. Topics run from bioinformatics through proteomics, materials science, and clinical research.
The skill count is where the repo starts disagreeing with itself. The README says 163, three separate times, and the badge says Skills-163. The GitHub repo description says "165 ready-to-use validated skills." The actual directory count is 163, which I got from the git trees API rather than the contents endpoint, and that method detail matters more than it should: /contents/skills silently caps at 100 entries and ignores the page parameter. Three different page requests returned byte-identical hundred-entry payloads. Anyone auditing a large skill library through that endpoint gets a confidently wrong answer.
Two of 163 is a rounding error. The word "validated" appearing only in the description, and nowhere in the README, is the more interesting drift.
Four licenses in a ten-skill sample
I pulled ten SKILL.md files at random across domains. All ten carried a license: field in the frontmatter. Four distinct values showed up:
rdkit declares BSD-3-Clause license. scanpy declares BSD-3-Clause. Same license, two spellings, which tells you this is a hand-maintained free-text field rather than a validated SPDX identifier.
database-lookup, pathml, matlab, pymatgen, and paperclip all declare MIT.
deepspot-m declares PolyForm-Noncommercial-1.0.0, and its own compatibility note adds that the model weights on Hugging Face are gated and licensed CC-BY-NC-SA-4.0. Noncommercial terms, twice, inside an MIT repository, on a skill any agent will happily load and run against your company's histology data.
docx and pptx both declare Proprietary. LICENSE.txt has complete terms, with skill-author: Anthropic, PBC and a source pointing at anthropics/skills. The README credits this openly, saying they are vendored and used under Anthropic's terms.
There is a second layer under that one. The pathml skill is MIT, and the skill body notes that PathML itself is GPL-2.0 with commercial licensing options upstream. So the file you install is permissive, and the thing it drives is not. A license field on a skill describes the instructions, not the tool the instructions call.
I want to be fair about the sample. Ten out of 163 is not a census, and I did not verify that every skill carries the field. What ten out of ten does establish is that the practice is real and the variance is wide.
Why this is a category problem, not a K-Dense problem
Skills won the distribution fight this year. They install across Claude Code, Codex, Cursor, Gemini CLI, and Antigravity through one shared format, and the install command is three words long. That is the whole appeal.
The format inherited a license field. It did not inherit any of the machinery that makes license fields useful. There is no SPDX validation, so BSD-3-Clause and BSD-3-Clause license are different strings to any tool that tries to aggregate them. There is no install-time report of what terms you just accepted. There is no host UI surfacing the field. And the packaging systems people actually trust for this, npm and PyPI and Cargo, all made the license a first-class, machine-checkable property of the package, precisely because humans do not read hundreds of files.
K-Dense is on the right side of this. They disclose per-skill licensing in the FAQ, they vendor Anthropic's proprietary skills with attribution rather than relabeling them, and their own security disclaimer contains a warning most vendors would never write: "Do not install everything at once. While installing the full collection was reasonable when K-Dense created and maintained every skill, the repository now includes many community contributions that we may not have reviewed as thoroughly."
That is the maintainer telling you the default install path is no longer the recommended one. Take them at their word.
Put this into practice in ten minutes
Audit before you install, not after. Clone without installing, then run one command:
git clone --depth 1 https://github.com/K-Dense-AI/scientific-agent-skills
cd scientific-agent-skills
grep -h '^license:' skills/*/SKILL.md | sort | uniq -c | sort -rn
That prints the license distribution of the entire library in one screen. Run the same grep against any skill library before it goes anywhere near a work machine. If a library returns nothing, that is its own answer.
Find the ones that will bite. Anything matching noncommercial, proprietary, GPL, or AGPL deserves a human decision:
grep -il 'noncommercial\|proprietary\|GPL' skills/*/SKILL.md
Install a subset. Both the GitHub CLI and npx skills add accept a single skill name. If you run single-cell work, take scanpy and database-lookup and leave the other 161 out of your context window. The README makes the performance case for this independently: 163 skills is a lot of standing context.
Pin the version. gh skill install K-Dense-AI/scientific-agent-skills --pin v2.65.0 freezes what you audited. Without it you are tracking a branch that moved today, on a repo that shipped five releases in the last five weeks. The thing you reviewed and the thing you are running are not the same thing by default.
Log the sweep somewhere. Save the grep output next to your dependency manifest with a date on it. When someone asks in six months what terms your research pipeline is operating under, that file is the answer, and reconstructing it later is much harder than capturing it now.
What I could not verify, and what the marketing is doing
The repo description claims "190,000+ scientists worldwide." That number appears in the description string and nowhere in the README, with no methodology and no independent corroboration. It has also ratcheted: K-Dense's own January 2026 post said 100k+ users against 5,700+ stars, the stale org page says 160,000+, the description now says 190,000+. Users-per-star went from roughly 17 to 1 down to roughly 5 to 1 over that span, so at least one of those figures is not measuring a stable thing. Read it as self-reported.
"#1 Agent Skills library for science" has no source either. It is a claim, not a finding.
The word "validated" is doing real work in that description, and the repository does not back it in the way most readers will assume. There is genuine CI here, and it is better than most: every skill shipping scripts/ must have a test suite under tests/, enforced by a meta-test that fails the pull request, plus structural checks on frontmatter and link resolution, plus weekly LLM-based security scans through Cisco AI Defense with results published to docs/security-report.md. That is structural validation. It confirms the skill is well-formed and its scripts run. There is no scientific evaluation suite in the repository. Every benchmark number lives on K-Dense's blog, was run by K-Dense on K-Dense's platform, and is not peer reviewed. To their credit, their benchmarks page says exactly that: "Most of these benchmarks were run by us, on our own platform. That is a real conflict of interest and we do not pretend otherwise."
And the library is a funnel, which they also state in writing. Their post comparing the two products says "Scientific Agent Skills is the free sample. K-Dense Web is the full product," with the paid tier gating exclusive skills, cloud GPU, and lab integrations. That post is linked from the README. Stating it plainly costs them nothing and earns more trust than hiding it would, so I will say the same: this is a good library and it is also customer acquisition, and both facts fit in one head.
The thing to take with you
The interesting shift here is not that one repo has mixed licenses. It is that the smallest installable unit of AI capability is now a markdown file, and we handed it a license field without handing it any of the plumbing that makes licenses enforceable, auditable, or even countable.
Every skill library you install is a package manager with no package manifest. Until a host surfaces that field at install time, the grep is your manifest.
Run it before your legal team has to.
Sources: K-Dense-AI/scientific-agent-skills; GitHub REST API for repository metadata, releases, and git trees; raw SKILL.md and LICENSE.md files fetched cache-busted from raw.githubusercontent.com; k-dense.ai.