API design conventions, namespace coordinate system, RBAC roles, ClawHub compatibility layer, OpenAPI contract sync rules, and CSRF/session handling.
69
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use this skill when:
SkillHub uses a two-axis coordinate model:
@{namespace_slug}/{skill_slug}@global/my-skill — Global namespace skill@my-team/my-skill — Team namespace skill (namespace slug is any valid slug)@department-ops/my-skill — Department namespace skillNamespaces (domain/namespace/):
SlugValidatorACTIVE, FROZEN, ARCHIVEDOWNER, ADMIN, MEMBERNamespace-level (domain/namespace/NamespaceRole):
OWNER — Full control over namespace and all skillsADMIN — Can manage members, archive skills, publishMEMBER — Can publish skills to the namespacePlatform-level:
SUPER_ADMIN — Bypasses all permission checks, can publish directly without reviewClawHub CLI uses a single-slug model (no / allowed in slugs). Mapping:
| SkillHub Coordinate | Canonical Slug | Notes |
|---|---|---|
@global/my-skill | my-skill | Global namespace omits prefix |
@team-name/my-skill | team-name--my-skill | Double-dash separator |
Conflict resolution: -- split takes priority. @global/team-name--my-skill would conflict
with @team-name/my-skill, resolved to the team namespace skill. Global skill slugs must NOT
contain --.
skillhub-app (com.iflytek.skillhub.controller/) are transport onlyskillhub-domain) or app services@Operation, @ApiResponse) for API documentationcom.iflytek.skillhub.dto/ReviewTaskRequest / ReviewTaskResponse for review workflowDomainBadRequestException with i18n message keysXSRF-TOKEN cookie and X-XSRF-TOKEN headerX-Mock-User-Id header in local dev/.well-known/clawhub.json returns { "apiBase": "/api/v1" } for ClawHub CLI auto-discovery.
When backend API contracts change:
make generate-apiThis runs openapi-typescript http://localhost:8080/v3/api-docs -o src/api/generated/schema.d.ts.
Commit the updated web/src/api/generated/schema.d.ts with the PR.
To verify no drift:
./scripts/check-openapi-generated.shThis starts local dependencies, boots the backend, regenerates the schema, and fails if the checked-in SDK is stale.
major.minor.patch)latest tag is system-reserved, read-only, auto-follows Skill.latestVersionIdstable, beta) are manually maintainedlatest cannot be moved manuallyyyyyMMdd.HHmmss format when no version is specified in SKILL.md| Method | Path | Purpose |
|---|---|---|
GET | /api/v1/auth/me | Current user info (401 if unauthenticated) |
POST | /api/v1/auth/local/login | Local account login |
POST | /api/v1/auth/local/register | Local account registration |
POST | /api/v1/auth/logout | Logout (302/200/204) |
POST | /api/v1/auth/local/change-password | Password change |
GET | /api/v1/namespaces | List namespaces |
GET | /api/v1/labels | List visible labels (public) |
POST | /api/v1/admin/labels | Create label definition (admin) |
DELETE | /api/v1/admin/labels/{slug} | Delete label definition (admin) |
GET | /actuator/health | Health check |
GET | /actuator/prometheus | Prometheus metrics |
X-XSRF-TOKEN header)ac46ad5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.