Verified live, 2026-09-08
The full publishing walkthrough was run against a real local stack (jaas-ui + jaas-skills + jaas-guardrails), not assumed from source reading. Result: no functional defects found. Everything that happened matched what’s documented, including the one step that didn’t succeed on the first try:
- Publishing
jaas.demo.personal-notes:1.0.0a second time correctly hitDUPLICATE_PUBLISH(409) — the exact documented corner case, not a bug. - Auto-defaulted files (
dependencies.yaml,permissions.yaml) appeared exactly as Package layout describes, with no need to author them by hand. - The projected guardrail certification shown at Validate time (Level 2 — Standard) matched the certification actually recorded after Publish.
Documentation inconsistency found
jaas-skills/SKILLS_GUIDE.md (in the backend repo) lists schema.json as REQUIRED. The actual validation and packaging code (artifact/packaging.py, api/release_routes.py) treats it as optional, defaulting to {"inputs": {"type": "object", "properties": {}}, "outputs": {...}} when absent — matching design.md §4.1, not SKILLS_GUIDE.md. These docs follow the code (and design.md), i.e. schema.json is optional. Worth a fix in SKILLS_GUIDE.md itself at some point, since it’s a maintainer-facing doc in that repo, not this one.
Product observation, not a bug
Search matches indexed tokens (id segments, name words, tags, category, description words — see the ranking model), not substrings. Searchingpersonal-notes — the id’s own hyphenated suffix — returns nothing, while searching notes (an actual tag) finds it immediately. This surprised us live during the walkthrough before we understood why. It’s consistent, documented-once-you-know-it behavior, not a defect — but it’s the kind of thing a fuzzier/substring-aware search would smooth over. Flagging it here as a possible product enhancement, not something these docs can fix.
Not yet documented here
- The four framework SDKs (
jaas-client,jaas-langgraph,jaas-crewai,jaas-autogen) — how a caller actually consumes a published skill at runtime, as opposed to publishing one. - Tenant administration beyond guardrail policy: member invites/roles, PAT (personal access token) issuance and rotation, the GitHub OAuth App connection flow tenants set up for git-native release.
- The full reference CI workflow (
examples/ci/github-actions-release.yml) walked through step by step, beyond thejaasctl releasecommand itself. - Custom guardrail rule drafts (fork-edit-republish a rule,
CustomGuardrailRuleDraftResponse) — covered today only at the “attach an ad-hoc rule to one/scancall” level in Custom rules & RE2.