> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jaasskills.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Roadmap & known issues

> What's been verified live, what's inconsistent, and what isn't documented yet

This page is kept honest on purpose — it's the place anything found while writing or verifying these docs goes, bugs included, rather than being quietly smoothed over.

## Verified live, 2026-09-08

The full [publishing walkthrough](/guide/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.0` a second time correctly hit `DUPLICATE_PUBLISH` (409) — the exact documented [corner case](/reference/corner-cases), not a bug.
* Auto-defaulted files (`dependencies.yaml`, `permissions.yaml`) appeared exactly as [Package layout](/packages/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](/reference/api#ranking-model)), not substrings. Searching `personal-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 the `jaasctl release` command itself.
* Custom guardrail rule *drafts* (fork-edit-republish a rule, `CustomGuardrailRuleDraftResponse`) — covered today only at the "attach an ad-hoc rule to one `/scan` call" level in [Custom rules & RE2](/guardrails/custom-rules).

Contributions/requests against any of the above are the natural next additions to this site.
