From b8fc0311c2bc1eda73130505ed7e843ada95a62d Mon Sep 17 00:00:00 2001 From: Enrico Piovesan Date: Fri, 2 Oct 2026 15:01:14 -0600 Subject: [PATCH] =?UTF-8?q?docs(site):=20Fri=20SEO=20=E2=80=94=20capabilit?= =?UTF-8?q?y=20publish=20AI=20admission=20honesty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Q&A for Decision 109 / Spec 056 v1.1.0 (#1597): offline contract-decidable ai admission before registry Git write; wire hub, llms.txt, publish truth-pass. --- public/llms.txt | 1 + ...y-publish-validate-model-attribution.astro | 58 +++++++++++++++++++ .../how-do-hosts-trust-signed-models.astro | 1 + ...-skill-draft-to-published-capability.astro | 1 + ...publish-a-capability-to-the-registry.astro | 4 ++ ...-verify-a-signed-capability-artifact.astro | 1 + src/pages/questions/index.astro | 1 + .../is-production-model-signing-ready.astro | 1 + .../what-is-exact-ref-model-execution.astro | 1 + 9 files changed, 69 insertions(+) create mode 100644 src/pages/questions/does-capability-publish-validate-model-attribution.astro diff --git a/public/llms.txt b/public/llms.txt index 000fc96..a519d6d 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -41,6 +41,7 @@ Current packages: crates.io at 0.14.0 (pin `traverse-registry` at `=0.25.0` if y - [traverse-framework/claude-skills](https://github.com/traverse-framework/claude-skills): Claude Skills for building apps with Traverse — starting with `traverse-capability-author` (plus extractor and workflow-planner), which checks the registry before authoring, produces contract + WASM, and validates against the real traverse-cli — including this platform's current execution limitations. - [How do I author a capability in plain English?](https://traverse-framework.com/questions/how-do-i-author-a-capability-in-plain-english.html): Claude skill `traverse-capability-author` — interview → registry check → contract → WASM → human-reviewed PR; under the hood still Rust→WASM; manual Rust is secondary. - [How do I go from a skill draft to a published capability?](https://traverse-framework.com/questions/how-do-i-go-from-skill-draft-to-published-capability.html): after the skill opens the registry PR — review, CI, human merge, next catalog release; no side-door upload. +- [Does capability publish validate model attribution before the registry write?](https://traverse-framework.com/questions/does-capability-publish-validate-model-attribution.html): yes for contract-decidable rules — `traverse-cli capability publish` rejects bad `ai` objects offline before any registry Git write (Decision 109 / Spec 056 v1.1.0 / #1597); keeps `ai` verbatim; evidence digests + rights drift stay registry-CI-only (no CLI network fetch). - [What does human review mean for a capability PR?](https://traverse-framework.com/questions/what-does-human-review-mean-for-a-capability-pr.html): a person still merges; skill drafts only; check rule fit, CI, digests, catalog fit. - [How do I verify a signed capability artifact?](https://traverse-framework.com/questions/how-do-i-verify-a-signed-capability-artifact.html): SHA-256 digest = integrity; Ed25519 signature.json = registry attestation; pin by digest, never a naked URL. - [How do I review a capability PR as a maintainer?](https://traverse-framework.com/questions/how-do-i-review-a-capability-pr-as-a-maintainer.html): contract fit, green CI (digest/coverage/authoring/licensing), fork artifact mirror before merge; signing automatic after merge; no side door. diff --git a/src/pages/questions/does-capability-publish-validate-model-attribution.astro b/src/pages/questions/does-capability-publish-validate-model-attribution.astro new file mode 100644 index 0000000..dce7d79 --- /dev/null +++ b/src/pages/questions/does-capability-publish-validate-model-attribution.astro @@ -0,0 +1,58 @@ +--- +import QuestionLayout from '@layouts/QuestionLayout.astro'; + +const jsonLd = JSON.stringify({ + '@context': 'https://schema.org', + '@type': 'FAQPage', + mainEntity: [{ + '@type': 'Question', + name: 'Does capability publish validate model attribution before the registry write?', + acceptedAnswer: { + '@type': 'Answer', + text: 'Yes, for contract-decidable rules. As of traverse#1597, traverse-cli capability publish rejects offline — before any registry Git write — an ai object that registry CI would reject on rules decidable from the contract alone. It also keeps the ai object verbatim in the generated registry contract (it used to be silently dropped). Object-shaped ai.models when model_backed; immutable 40/64-hex commit pins; SPDX via the registry license-expression symbol table; Spec 026 rights-record shape. Evidence digests, model-weights.json cross-check, and rights drift stay registry-CI-only — no network fetch in the CLI path. Decision 109 / Spec 056 v1.1.0. Production model signing is separate work.', + }, + }], +}); + +const relatedLinks = [ + { href: '/questions/how-do-i-publish-a-capability-to-the-registry.html', label: 'How do I publish a capability to the registry?' }, + { href: '/questions/how-do-i-go-from-skill-draft-to-published-capability.html', label: 'Skill draft → published capability' }, + { href: '/questions/how-do-i-verify-a-signed-capability-artifact.html', label: 'How do I verify a signed capability artifact?' }, + { href: '/questions/is-production-model-signing-ready.html', label: 'Is production model signing ready?' }, + { href: '/questions/what-is-exact-ref-model-execution.html', label: 'What is exact-ref model execution?' }, + { href: '/questions/how-do-hosts-trust-signed-models.html', label: 'How do hosts trust signed models?' }, +]; +--- + +

Short answer: Yes, for contract-decidable rules. As of the traverse#1597 merge (Traverse main), traverse-cli capability publish rejects offline — before any registry Git write — an ai object that registry CI would reject on rules decidable from the contract alone. It also keeps the ai object verbatim in the generated registry contract (it used to be silently dropped).

+ +

What the CLI checks offline

+

The admission rules in ai_admission.rs are a faithful port of the contract-decidable parts of registry capability_validation.py. They cover:

+ +

Each failure carries the same registry CI error code so local publish and CI speak the same language.

+ +

What stays registry-CI-only

+

Downloading evidence files to verify digests, the model-weights.json cross-check, and rights drift (FR-015) remain registry CI jobs. The CLI path does not network-fetch. That split is intentional: publish-time admission catches every rule the contract alone decides; CI still proves bytes and drift after the Git write.

+ +

Governing decisions

+

Spec 056-capability-publish was amended to v1.1.0 (FR-014–FR-019) under Decision 109. It mirrors registry Spec 001 FR-017 and Spec 026. The work started as a first-time contributor shape check from @DevChiniwala, then expanded to full contract-decidable parity. Tracking issue: #1459. Merged PR: #1597.

+ +

Not the same as production model signing

+

Offline AI admission on publish is about the contract’s ai attribution record. It does not claim that production model-signing key custody, rotation, or revocation is ready. That remains open work — see Is production model signing ready?. Exact-ref execute and host trust roots are separate surfaces: What is exact-ref model execution? and How do hosts trust signed models?.

+ +

Related

+

Publish path: How do I publish a capability to the Traverse registry?. Skill → catalog: Skill draft → published capability. Artifact integrity vs. attestation: How do I verify a signed capability artifact?.

+
diff --git a/src/pages/questions/how-do-hosts-trust-signed-models.astro b/src/pages/questions/how-do-hosts-trust-signed-models.astro index 1a21cbd..22d782a 100644 --- a/src/pages/questions/how-do-hosts-trust-signed-models.astro +++ b/src/pages/questions/how-do-hosts-trust-signed-models.astro @@ -17,6 +17,7 @@ const jsonLd = JSON.stringify({ const relatedLinks = [ { href: '/questions/can-kotlin-or-dotnet-embedders-run-exact-ref-yet.html', label: 'Can Kotlin or .NET run exact-ref yet?' }, { href: '/questions/is-production-model-signing-ready.html', label: 'Is production model signing ready?' }, + { href: '/questions/does-capability-publish-validate-model-attribution.html', label: 'Does publish validate model attribution?' }, { href: '/questions/which-hosts-run-signed-exact-ref-models.html', label: 'Which hosts run signed exact-ref models?' }, { href: '/questions/what-is-exact-ref-model-execution.html', label: 'What is exact-ref model execution?' }, { href: '/blog/traverse-0-14-0-what-changed-for-embedders.html', label: 'v0.14.0: what changed for embedders' }, diff --git a/src/pages/questions/how-do-i-go-from-skill-draft-to-published-capability.astro b/src/pages/questions/how-do-i-go-from-skill-draft-to-published-capability.astro index 3df7291..ea2c8a0 100644 --- a/src/pages/questions/how-do-i-go-from-skill-draft-to-published-capability.astro +++ b/src/pages/questions/how-do-i-go-from-skill-draft-to-published-capability.astro @@ -18,6 +18,7 @@ const relatedLinks = [ { href: '/questions/how-do-i-author-a-capability-in-plain-english.html', label: 'How do I author in plain English?' }, { href: '/questions/what-does-human-review-mean-for-a-capability-pr.html', label: 'What does human review mean?' }, { href: '/questions/how-do-i-publish-a-capability-to-the-registry.html', label: 'How do I publish a capability?' }, + { href: '/questions/does-capability-publish-validate-model-attribution.html', label: 'Does publish validate model attribution?' }, { href: '/questions/how-do-i-write-a-capability-contract.html', label: 'How do I write a capability contract?' }, { href: '/blog/you-dont-need-rust-to-publish-a-capability.html', label: "You don't need Rust to publish a capability" }, ]; diff --git a/src/pages/questions/how-do-i-publish-a-capability-to-the-registry.astro b/src/pages/questions/how-do-i-publish-a-capability-to-the-registry.astro index 278978c..5358d7c 100644 --- a/src/pages/questions/how-do-i-publish-a-capability-to-the-registry.astro +++ b/src/pages/questions/how-do-i-publish-a-capability-to-the-registry.astro @@ -19,6 +19,7 @@ const relatedLinks = [ { href: '/questions/what-does-human-review-mean-for-a-capability-pr.html', label: 'What does human review mean?' }, { href: '/questions/how-do-i-review-a-capability-pr-as-a-maintainer.html', label: 'Review a capability PR as a maintainer' }, { href: '/questions/how-do-i-verify-a-signed-capability-artifact.html', label: 'How do I verify a signed artifact?' }, + { href: '/questions/does-capability-publish-validate-model-attribution.html', label: 'Does publish validate model attribution?' }, { href: '/questions/how-do-i-go-from-skill-draft-to-published-capability.html', label: 'Skill draft → published capability' }, { href: '/questions/do-i-need-rust.html', label: 'Do I need to know Rust?' }, { href: '/questions/what-is-the-capability-registry.html', label: 'What is the capability registry?' }, @@ -53,4 +54,7 @@ const relatedLinks = [

A good first publish

If you want a tiny first capability rather than inventing a domain model, see the labeled starter registry#485 (text.slugify). For business-shaped rules agents should not free-hand, see registry issues #493–#507 and the help-wanted write-up.

+ +

Offline AI admission before the Git write

+

When the contract carries an ai attribution object, traverse-cli capability publish now rejects — offline, before any registry Git write — every rule registry CI would reject from the contract alone (Decision 109 / Spec 056 v1.1.0). It also keeps ai verbatim in the generated registry contract. Details: Does capability publish validate model attribution before the registry write?

diff --git a/src/pages/questions/how-do-i-verify-a-signed-capability-artifact.astro b/src/pages/questions/how-do-i-verify-a-signed-capability-artifact.astro index 030ae86..d68f3e7 100644 --- a/src/pages/questions/how-do-i-verify-a-signed-capability-artifact.astro +++ b/src/pages/questions/how-do-i-verify-a-signed-capability-artifact.astro @@ -16,6 +16,7 @@ const jsonLd = JSON.stringify({ const relatedLinks = [ { href: '/questions/how-do-i-publish-a-capability-to-the-registry.html', label: 'How do I publish a capability?' }, + { href: '/questions/does-capability-publish-validate-model-attribution.html', label: 'Does publish validate model attribution?' }, { href: '/questions/what-is-the-capability-registry.html', label: 'What is the capability registry?' }, { href: '/questions/what-is-exact-ref-model-execution.html', label: 'What is exact-ref model execution?' }, { href: '/questions/what-is-traverse-security-model.html', label: "What is Traverse's security model?" }, diff --git a/src/pages/questions/index.astro b/src/pages/questions/index.astro index 4ca65ac..15630d7 100644 --- a/src/pages/questions/index.astro +++ b/src/pages/questions/index.astro @@ -32,6 +32,7 @@ const groups = [ ['what-is-contract-driven.html', 'What does "contract-driven" mean in Traverse?'], ['how-do-i-write-a-capability-contract.html', 'How do I write a capability contract?'], ['how-do-i-publish-a-capability-to-the-registry.html', 'How do I publish a capability to the Traverse registry?'], + ['does-capability-publish-validate-model-attribution.html', 'Does capability publish validate model attribution before the registry write?'], ['what-does-human-review-mean-for-a-capability-pr.html', 'What does human review mean for a capability PR?'], ['how-do-i-verify-a-signed-capability-artifact.html', 'How do I verify a signed Traverse capability artifact?'], ['how-do-i-review-a-capability-pr-as-a-maintainer.html', 'How do I review a capability PR as a maintainer?'], diff --git a/src/pages/questions/is-production-model-signing-ready.astro b/src/pages/questions/is-production-model-signing-ready.astro index 18dd6dd..9646ac8 100644 --- a/src/pages/questions/is-production-model-signing-ready.astro +++ b/src/pages/questions/is-production-model-signing-ready.astro @@ -20,6 +20,7 @@ const relatedLinks = [ { href: '/questions/what-is-exact-ref-model-execution.html', label: 'What is exact-ref model execution?' }, { href: '/questions/what-is-digits-mlp.html', label: 'What is digits-mlp?' }, { href: '/questions/how-do-i-verify-a-signed-capability-artifact.html', label: 'How do I verify a signed capability artifact?' }, + { href: '/questions/does-capability-publish-validate-model-attribution.html', label: 'Does publish validate model attribution?' }, { href: '/blog/traverse-0-14-0-what-changed-for-embedders.html', label: 'v0.14.0: what changed for embedders' }, ]; --- diff --git a/src/pages/questions/what-is-exact-ref-model-execution.astro b/src/pages/questions/what-is-exact-ref-model-execution.astro index 8b13c65..e7a734f 100644 --- a/src/pages/questions/what-is-exact-ref-model-execution.astro +++ b/src/pages/questions/what-is-exact-ref-model-execution.astro @@ -18,6 +18,7 @@ const relatedLinks = [ { href: '/questions/can-kotlin-or-dotnet-embedders-run-exact-ref-yet.html', label: 'Can Kotlin or .NET run exact-ref yet?' }, { href: '/questions/what-is-digits-mlp.html', label: 'What is digits-mlp?' }, { href: '/questions/is-production-model-signing-ready.html', label: 'Is production model signing ready?' }, + { href: '/questions/does-capability-publish-validate-model-attribution.html', label: 'Does publish validate model attribution?' }, { href: '/questions/which-hosts-run-signed-exact-ref-models.html', label: 'Which hosts run signed exact-ref models?' }, { href: '/questions/how-do-hosts-trust-signed-models.html', label: 'How do hosts trust signed models?' }, { href: '/blog/traverse-0-14-0-what-changed-for-embedders.html', label: 'v0.14.0: what changed for embedders' },