Files
Conor BronsdonandClaude Fable 5 fd3bef4ae7 docs: document skill categories and topics (#3380)
* docs: document skill categories and topics

Add a Catalog metadata section to docs/publishing.md covering --categories
and --topics, the 14 valid category slugs, the limits ClawHub enforces, the
reserved topic names, the `other` default, and how stored values change on a
later publish. Cross-reference it from the skill publish and sync entries in
docs/cli.md.

Values read from packages/schema/src/catalogMetadata.ts,
convex/lib/skillPublish.ts, and packages/clawhub/src/cli.ts.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs: cover the CI and plugin paths for catalog metadata

Three gaps in the first pass, all the same shape as the one this PR set
out to fix -- a way to publish with no way to set catalog metadata:

The reusable skill-publish.yml workflow has no categories or topics
input. It builds the command with --owner and --tags only, so a catalog
repo publishing through CI lands every skill in `other`, exactly like
sync. The new section sat directly under the workflow snippet and said
"set both when you publish," which read as though the block above it
could. Documented in both files.

`package publish` takes the same two flag names against
PLUGIN_CATEGORY_DEFINITIONS -- a different 12-slug list documented
nowhere -- so a reader who followed the new link would try
`development` and have the publish rejected. The cli.md entry now names
the plugin slugs and says the topic rules are shared, which they are:
convex/packages.ts:8585 resolves through resolvePluginCategories but
reuses normalizeCatalogTopics.

Moved the metadata section above the catalog-repo prose so the flags sit
with the command they belong to, and gave the CI content its own
heading rather than leaving it to trail the section. No wording in the
moved block changed.

Also two enforced rules the first pass omitted: repeats are dropped
rather than rejected and are matched after normalization (so `git,Git`
is one topic, and both limits count what survives), and topics cannot
contain invisible formatting characters. Qualified the 3-category limit,
which is applied after `other` is dropped, so `other,development,
operations` stores two rather than failing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs: scope plugin-category validation to code and bundle plugins

Review caught that the package-publish bullet claimed every publish
validates --categories against the 12 plugin slugs. The claw family
does not: convex/packages.ts branches on family === "claw" and stores
the declared slugs without resolvePluginCategories, while
normalizeCatalogTopics still runs for every family. The bullet now
limits the slug check to code and bundle plugins, links docs/claws.md
for the exception, and keeps the shared-topic-rules claim, which held.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 15:51:27 -07:00
..

summary, read_when
summary read_when
Public ClawHub docs index and reading order.
Looking for the right public ClawHub doc
Deciding whether content belongs in public docs or specs

Docs

docs/ is the publishable source for user-facing ClawHub pages that can be mirrored into the ClawHub tab on docs.openclaw.ai.

Keep product, CLI, publisher, API, policy, security, and troubleshooting docs here. These pages should explain how people use ClawHub: discover, install, publish, inspect, report, moderate, and integrate with the registry.

Use specs/ for repository setup, production deploy runbooks, implementation plans, design rationale, regression notes, maintainer validation records, and internal subsystem intent. If a page tells someone how to run or deploy the ClawHub project itself, it belongs in specs/, not in the public OpenClaw docs tab.

Reading order:

  1. docs/clawhub.md: public overview for discovery, install, publish, and trust.
  2. docs/quickstart.md: product quickstart for users and publishers.
  3. docs/how-it-works.md: listings, versions, installs, publishing, scans, and API access.
  4. docs/publishing.md: owner-scoped skill/plugin publishing flow.
  5. docs/cli.md: ClawHub CLI reference.
  6. docs/skill-format.md: skill bundle metadata and package shape.
  7. docs/claws.md: experimental Claw package authoring and publication.
  8. docs/auth.md: GitHub OAuth, API tokens, and CLI login.
  9. docs/telemetry.md: install telemetry and how to opt out.
  10. docs/namespace-claims.md: org, brand, owner-handle, package-scope, skill-slug, and namespace ownership disputes.
  11. docs/troubleshooting.md: user-facing CLI, install, publish, update, and API fixes.

Policy, API, and trust docs:

  • docs/acceptable-usage.md: marketplace policy and enforcement boundaries.
  • docs/api.md: public REST API overview.
  • docs/http-api.md: detailed HTTP API reference.
  • docs/security.md: reporting ClawHub security issues and vulnerability disclosure policy.
  • docs/security-audits.md: user-facing security audit status, risk levels, findings, and interpretation.
  • docs/moderation.md: reports, moderation holds, hidden listings, bans, and account standing.
  • docs/namespace-claims.md: org, brand, owner-handle, package-scope, skill-slug, and namespace ownership claims.
  • docs/content-rights.md: copyright and other content rights requests involving ClawHub listings.

Maintainer records:

  • specs/README.md: index for specs, plans, deployment runbooks, webhook notes, regression notes, and design records.

Publish flow:

  • Changes under docs/ dispatch the OpenClaw docs sync workflow, which mirrors this directory into the ClawHub tab on docs.openclaw.ai.
  • specs/ is intentionally not mirrored.