Skip to main content
Every screenshot on this page is from an actual local run of the stack (jaas-ui + jaas-skills + jaas-guardrails, 2026-09-08) publishing the Personal Notes skill end to end — nothing staged or mocked, including the one step that didn’t go as planned.

1. Sign in

/login offers Google sign-in, or the local dev-login path (email + password, gated entirely behind JAAS_DEV_LOGIN_PASSWORD — see Authentication).
JaaS Skills sign-in page with Google and dev-login email/password fields

2. Drafts

The Drafts tab lists in-progress, unpublished skill packages. Create Skill starts a new one.
Drafts list page with a Create Skill button
Choosing Local only (work in the browser editor, publish when ready) over GitHub repo (commit to a connected repo branch — see Git-native release) opens an editor seeded with a manifest.yaml scaffold and nothing else yet.
Empty new draft with only manifest.yaml in the file list

3. Fill in the files

Editing manifest.yaml to the real content from Writing a skill:
Monaco editor showing the completed personal-notes manifest.yaml
Adding SKILL.md as a second file via the file panel’s add-file control:
SKILL.md added as a second file, with the front-matter and instructions
schema.json goes in the same way (a third file, same add-file control) — not shown separately here since it’s the identical JSON from the previous page.

4. Validate

Validate runs structural validation plus a live guardrails scan, with no publish yet.
Validate result: Valid — ready to publish, projected certification Level 2 — Standard
Result: Valid — ready to publish, with a projected certification of Level 2 — Standard shown before anything is committed — exactly the “certification this draft would receive right now” projection described in the guardrails level model.

5. Publish — the corner case, live

Clicking Publish Skill the first time hit this, unedited:
Publish dialog showing an error: manifest.json has already been published
This is the documented duplicate-publish corner case firing for real — jaas.demo.personal-notes:1.0.0 had already been published to this local registry from an earlier run, and the registry correctly refused to overwrite it. The fix is exactly what the docs say: bump the version and re-publish. Retrying at 1.0.1 succeeded:
Published skill detail page for Personal Notes v1.0.1, private, Level 2 guardrail certification, auto-defaulted files listed
A few things worth noticing on this page, all documented behavior confirmed live:
  • “This version is published and immutable — it can never be edited or deleted.” Changing it means New Version, which forks it into a new editable draft.
  • Files: SKILL.md, dependencies.yaml, manifest.yaml, permissions.yaml, schema.json. Only manifest.yaml and SKILL.md were ever written by hand — dependencies.yaml and permissions.yaml were auto-defaulted to empty, exactly as Package layout describes.
  • Guardrail Certification: Level 2 — Standard, with L1 Baseline and L2 Standard both shown Certified.
Search results showing Personal Notes, private, productivity, version 1.0.1
One thing that isn’t a bug, but is worth knowing: search matches indexed tokens (id segments, name words, tags, category, description words — see the ranking model), not arbitrary substrings. Searching the hyphenated personal-notes (the id’s own suffix) returned nothing; searching notes (an actual tag) found it immediately. If a search comes up empty, try a real word from the name/tags/category rather than an id fragment.