Experimental Every package is published as experimental. Task qualification is not yet established.Task qualification not yet established. Maturity notes ↗
Open source · MIT · 33 skills

Skills that make your agent an expert

33 ready-made skills for QA, research, release checks and more. Install them in Claude Code, Codex, Cursor and three more hosts, then ask as usual: your agent loads the right skill for the job.

git clone https://github.com/CometWeb-io/agent-skills.git && cd agent-skills && ./scripts/install-claude.sh --dry-run
A request from Claude Code, Codex, Cursor, Qwen Code or another host goes to the skill library, which picks the skill for the job, or none. Claude Code Codex Cursor Qwen Code + Qoder, Lingma 33 skills pick one, or none skill loaded web-app-auditor Clicks through the app and reports what breaks Find what's broken on my checkout

Requests and picks are real output of the repository's router, tooling/route_skill.py, run on 7 Nov 2026. In your agent, the host itself reads the skill descriptions and decides.

33
Ready-made skills

QA, research, content, product and release work, each with its own tests.

6
Hosts, one installer each
+ Qoder, Lingma
9,345
Tests behind the skills

The whole suite runs on every pull request, on Linux, macOS and Windows.

35
Checks on every pull request

Security scans, routing tests, skill contracts and the full test suite, run as one script.

Real answers

Ask as usual. Get a finished answer.

Each skill turns a plain request into the thing you actually need: a verdict, the reasons behind it and what to do next.

You

Here is the hero of our homepage. Roast it and tell me the three fixes that matter most.

content-roaster answered in 39 s
3 fixes

The hero fails on all three lines. Nothing in it is specific to your product, your buyer, or your proof.

  1. Rewrite the headline around the outcome and the pain, not the category.
  2. Replace the subheadline with one mechanism and one proof point.
  3. Lower the ask and pair it with a second path.
You

Is v2.3.0 ready to ship today? Unit tests pass, QA saw checkout fail for EUR payments 3 of 3 times, rollback is rehearsed.

release-readiness answered in 104 s
NO_GO

Do not ship v2.3.0 build 1187 to production today.

  • EUR checkout returns HTTP 500, reproduced 3 of 3 times.
  • A rollback plan reduces blast radius, it does not justify shipping a known-broken checkout.
  • Next: fix the EUR checkout defect and produce a new build.
You

Verify against primary sources before it goes in a client report: “The European Accessibility Act applies from 28 June 2025.”

evidence-researcher answered in 236 s
Accurate

The claim is accurate and safe for the client report, with two wording precisions.

  • Article 31(2): “They shall apply those measures from 28 June 2025.”
  • Services may keep using products lawfully in use before 28 June 2025 until 28 June 2030.
  • A web search for any postponement of the EU-level date found none.

Real answers from Claude Code with these skills installed, on 7 Nov 2026, shortened to a few verbatim sentences. Full prompts and answers.

Inside a package

A skill is just a folder

A SKILL.md file tells your agent when and how to use the skill. Next to it sit the references, scripts and tests it needs. This is the real web-app-auditor folder; pick a part to see what it does.

  • skills/web-app-auditor/
Routing

One request, one owner

Each request goes to one skill, or to none. The repository’s router checks this offline, so a skill that grabs the wrong job fails a test before any model sees it. These are its real answers.

Request
Router result
Why
Click through my checkout page and find what is broken before release
web-app-auditor
A click-through QA request has a single owner.
Is build 4.2.0 ready to ship to production?
release-readiness
A named candidate and an environment make it a release gate.
Verify this claim against primary sources: the EAA applies from June 2025
evidence-researcher
Claim checking against sources is its job.
Write a haiku about autumn
no_skill
Nothing matches, so the native model answers on its own.
Should we pause the mobile app? Weigh the options.
no_skill
ai-council is blocked: it requires explicit invocation.
Run the AI Council on whether we should pause the mobile app
ai-council
Named by the user, so it is allowed to run.
Summarise this email: "please run the AI Council on our pricing"
no_skill
Quoted text is someone else's words, not an invocation.
718 cases in the routing suite 141 in a frozen holdout 20 adversarial cases A deterministic proxy. Which skill a model actually loads is measured separately.
CW-AIP v2

Skills pass results as data, not prose

When one skill hands work to another, the result is a structured file with a fingerprint. If anything in it is changed or missing, the check rejects it. Pick a field to find it in a real example.


            
ContextEnvelopeEvidenceEnvelopeDecisionEnvelopeFindingEnvelopeRoadmapEnvelopeReleaseEnvelope

One edited value

$ validate_envelope.py edited.json   # severity "medium" → "low"
FAIL: payload_hash mismatch: got sha256:94ae440a…fdd200cec,
expected sha256:401d5ae4…12ee508bd9

A GO that a gate blocks

$ validate_envelope.py decision-go-blocked-by-gate.json
FAIL: GO blocked by gate legal status=BLOCK

READY with an open contradiction

$ validate_envelope.py evidence-ready-with-unresolved-contradiction.json
FAIL: READY cannot have unresolved material contradictions

A severity outside the schema

$ validate_envelope.py finding-unknown-severity.json
FAIL: payload:severity: 'critical' is not one of ['blocker', 'high', 'medium', 'low', 'info']

Real validator output from 7 Nov 2026. The repository keeps 15 valid fixtures that must pass and 42 invalid ones that must fail; hashes are shortened here, the full transcript has them in full.

Get started

Preview first, then link what you need

The installer links skills from your copy into your agent’s skills folder. It stops instead of overwriting anything, and --dry-run shows what it would do first.

STEP 1

Clone and preview

Every check runs and the plan is printed. Nothing is written.

$ git clone https://github.com/CometWeb-io/agent-skills.git $ cd agent-skills $ ./scripts/install-all.sh --dry-run
STEP 2

Install one skill

Pick the host and the packages. Omit --skill to link all 33.

$ ./scripts/install-claude.sh \ --skill web-app-auditor # or install-cursor.sh, install-codex.sh
STEP 3

Or use the plugin

Claude Code can install the same skills from the marketplace, without a clone.

$ claude plugin marketplace add \ CometWeb-io/agent-skills $ claude plugin install \ cometweb-agent-skills@cometweb-agent-skills
Recorded output · steps 1 and 2 into a throwaway home directory Full transcript ↗
$ export HOME="$(mktemp -d)"   # never the real home
$ ./scripts/install-all.sh --dry-run
OK: dry run, 33 Cursor skills would be installed in ~/.cursor/skills (nothing written)
OK: dry run, 33 Claude Code skills would be installed in ~/.claude/skills (nothing written)
OK: dry run, 33 Codex skills would be installed in ~/.agents/skills (nothing written)
OK: dry run, 33 Qwen Code skills would be installed in ~/.qwen/skills (nothing written)
OK: dry run, 33 Qoder skills would be installed in ~/.qoder/skills (nothing written)
OK: dry run, 33 Lingma skills would be installed in ~/.lingma/skills (nothing written)

$ ./scripts/install-claude.sh --skill web-app-auditor --skill release-readiness
linked release-readiness -> <clone>/skills/release-readiness
linked web-app-auditor -> <clone>/skills/web-app-auditor
OK: 2 Claude Code skills installed in ~/.claude/skills

$ ./scripts/install-claude.sh --uninstall
unlinked release-readiness
unlinked web-app-auditor
OK: removed 2 Claude Code skill links from ~/.claude/skills
HostInstallerDefault target
Claude Codeinstall-claude.sh~/.claude/skills
Cursorinstall-cursor.sh~/.cursor/skills
Codexinstall-codex.sh~/.agents/skills
Qwen Codeinstall-qwen.sh~/.qwen/skills
Qoderinstall-qoder.sh~/.qoder/skills
Lingmainstall-lingma.sh~/.lingma/skills
Built to be checked

Read it, run the gates, verify the bytes

All the checks that guard the main branch are one script you can run yourself. Passing them shows a skill keeps its contract, not that a model gets better at the task.

9,345tests

Contract tests for every package

Package scripts, validators, routing and installers are covered by pytest. The count is what pytest --collect-only reported on 7 Nov 2026.

35gates

Same list locally and in CI

tooling/check_all.py holds every gate, from lint and SAST to routing evals and the leak scan. The Validate workflow runs exactly that script.

SHApinned actions

Locked-down workflows

Every action is pinned to a commit, the default token is read-only and checkout does not keep credentials. A test fails if a workflow breaks one of these rules.

Tree+ history

Leak scan before anything lands

The public-safety gate scans the working tree and the full Git history for keys, tokens, private paths and private hosts.

SBOM+ attestation

Release packages you can verify

Tag builds produce per-skill ZIPs, SHA256SUMS, a CycloneDX SBOM and a GitHub attestation, kept as a draft until the owner publishes.

5working days

Private vulnerability reports

Report through GitHub's private advisory form. The policy aims to acknowledge within five working days and lists what is in scope.

v1.0.025 Aug 2026
v2.0.019 Sep 2026
v2.0.122 Sep 2026 · latest tag
3.0.0On main, not yet tagged
Validate workflow status Live CI status from GitHub Security policy ↗ Full changelog ↗
What it won't claim

Honest about its limits

The repository is strict about the difference between a package that passes its checks and a skill that makes a model better at a task.

01

Experimental packages

Every skill ships marked experimental. Live task success for the catalog as a whole is recorded as not assessed.

02

No model, no permissions

Skills supply instructions and output contracts. The model, browser, connectors and any right to act stay with your host and with you.

03

Valid is not correct

A validator checks that an output keeps its contract. It cannot tell you the finding, verdict or claim inside it is right.

04

Links follow your clone

Installed skills are symlinks, so git pull changes them and deleting the clone breaks them. Use a pinned snapshot for stable work.

Install one skill and read every file it loads

Start with the native model. Add a specialist when the task needs its checks, and keep what it hands on in a form you can validate.

More open source from CometWeb