Skill trust-network position (2026-07-11)¶
Answer to the maintainer's question: "is there already a nascent network of
trust for skills? evaluate how to join it or leverage it; if not, it could
become abstractskill's role." Backlog: docs/backlog/planned/trust/0004.
Finding: a trust network is FORMING, but immature¶
As of July 2026 the Agent Skills ecosystem has moved from "no integrity signal at all" toward standardized verification, but nothing is settled:
- Signature RFC (agentskills.io). An open proposal adds an optional
signatureblock toSKILL.mdfrontmatter:algorithm(ed25519-sha256),signer(a domain hosting.well-known/skills-pubkey),content_hash(SHA-256 of the body),sig. Verification = recompute hash, fetch the signer's key, check the signature. Revocation via a companion.well-known/skills-revokedendpoint. Federated: thesignerfield routes trust to any registry (skills.sh, an org's private registry). Refs: agentskills/agentskills discussions/252, issues/418; vercel-labs/skills issue/617. - Trust registries + scanners (verified 2026-07-11). Snyk Labs ships "Agent Scan - Skill Inspector", a free scanner grounded in the ToxicSkills research (labs.snyk.io/resources/agent-scan-skill-inspector). GoPlusSecurity maintains AgentGuard (MIT), an open skill scanner + trust registry (attest/revoke/lookup) conforming to the SKILL.md format (agentskills/agentskills issue/418) — but it auto-converts its own scan verdict into a trust verdict, so consume its FINDINGS, never its VERDICTS. OWASP published an Agentic Skills Top 10 (April 2026) recommending Merkle-root signing + registry scanning.
- Signing tools diverge, no shared root. STSS uses Merkle trees + ed25519 + an LLM audit; Haldir uses sigstore keyless signing + a signed revocation list; skillsign does local ed25519. None cross-recognize. OpenSSF Model Signing (OMS) is the strongest candidate FORMAT (foundation-governed, sigstore bundles, in-toto multi-file manifest — directly applicable to a whole skill tree). Anthropic explicitly does not verify third-party skill content.
- A proposed trust-state vocabulary —
unverified/attested/revoked— that hosts surface or enforce. This maps almost exactly onto abstractskill'sTrustLevel(unverified) +ValidationRecord(attested) AdvisoryEntry/DO_NOT_USE (revoked).- The threat that motivates it (verified 2026-07-11). SkillScan analyzed
31,132 of 42,447 collected skills and found 26.1% carried ≥1 vulnerability
across 14 patterns; script-bundling skills are 2.12x more likely to be
vulnerable (arxiv 2602.12430). A behavioral study verified 98,380 skills and
confirmed 157 malicious (Data Thieves + Agent Hijackers), with shadow
features in 100% of advanced attacks (arxiv 2602.06547). Registries still
lack version pinning, and skills change behavior after approval via mutable
external URLs — one fake skill reached 26,000 users this way (CSO Online
article/4188840). These are the guidance-registry references
(
registry/guidance.yaml).
Position: LEVERAGE + BUILD now, JOIN (signing) when the spec stabilizes¶
Not a single choice — a sequenced one, because the network is real enough to learn from and too immature to depend on.
-
BUILD (shipped). abstractskill's registry is the framework's trust root: curated, hash-pinned, network-free, with an explainable fail-closed verdict and a do-not-use advisory registry. This is the right default — the ecosystem's own lesson is "treat unsigned/unvetted as untrusted, fail closed," which is exactly our curated-only v1.
-
LEVERAGE (next, backlog 0006). Consume external findings as ADVISORY INPUTS with provenance, never as automatic trust. AgentGuard's revoke list and the scanner outputs become candidate
AdvisoryEntryrows whosereferencefield cites the source; a human reviews before merge (auto-research, human-merge). Their scanners are a cheap first filter that feeds our advisory registry, not a replacement for our own audit (0003). -
JOIN (deferred, tracked). Adopt the
signatureblock when the agentskills.io RFC (discussion #252) merges into the spec. Ourhash_skill_treealready gives the integrity half, and it is strictly stronger than the RFC'scontent_hash, which covers only theSKILL.mdbody — helper files, references, and scripts are uncovered. Contribute the whole-tree manifest argument upstream. The delta to join is the AUTHENTICITY half: verify asigner's ed25519 signature and honor a revocation endpoint. When we join, a verified signature becomes evidence for aValidationRecord(methodexternal-audit) and a revocation becomes anAdvisoryEntry— the existing contract absorbs it with no model change. OMS/OpenSSF is the format to track for the multi-file manifest.
Why not JOIN now¶
- The signature block is an RFC, not the spec; adopting an unstable format risks churn and a false sense of safety.
- Federated signing moves trust to whoever controls a
signerdomain — a compromised or lax registry signs malware that then verifies cleanly. A signature proves authenticity and integrity, NOT safety. Our own audit (0003) and curated admission stay the real gate; signing is corroboration.
What this means for the framework¶
- Our verdict model is already spec-shaped (unverified/attested/revoked), so joining is additive, not a rewrite.
- The advisory registry is the natural home for leveraged external findings.
- abstractskill can credibly BE a trust root for framework entities/agents while consuming the wider network as one input among several.