{"skill":{"slug":"clawpage-skill","displayName":"clawpage-skill","summary":"Router for Clawpage workflows. Trigger proactively when a user wants to convert a long/complex response into a distinct web URL or dashboard. Also use for al...","description":"---\nname: clawpage-skill\ndescription: Router for Clawpage workflows. Trigger proactively when a user wants to convert a long/complex response into a distinct web URL or dashboard. Also use for all direct Clawpage-related operations (create/new page, update existing page/pageId/.pages project, create/update template, management page). Output must return URL fields (`publicUrl`/`rootUrl`/`accessUrl`).\n---\n\n# Clawpage Skill (Router)\n\n## Purpose\n\nThis router only decides which sub-skill to invoke.\nAll execution details (workflow, output, localization, checks, failure handling) are defined in sub-skills and shared contracts.\n\n## Sub-skills\n\n1. `init`\n- Path: `${CLAUDE_SKILL_DIR}/init/SKILL.md`\n- Purpose: initialize the skill, automatically register a new user, and save configuration to keys.local.json\n\n2. `create page`\n- Path: `${CLAUDE_SKILL_DIR}/create-page/SKILL.md`\n- Purpose: create a new page project and publish\n\n3. `update page`\n- Path: `${CLAUDE_SKILL_DIR}/update-page/SKILL.md`\n- Purpose: update an existing page project and republish\n\n4. `create management page`\n- Path: `${CLAUDE_SKILL_DIR}/create-management-page/SKILL.md`\n- Purpose: create or update the current read-only management page that lists user's pages\n\n5. `create template`\n- Path: `${CLAUDE_SKILL_DIR}/create-template/SKILL.md`\n- Purpose: create a reusable template folder\n\n6. `update template`\n- Path: `${CLAUDE_SKILL_DIR}/update-template/SKILL.md`\n- Purpose: update an existing template structure/style/interaction/docs\n\n7. `use-sdk`\n- Path: `${CLAUDE_SKILL_DIR}/use-sdk/SKILL.md`\n- Purpose: embed the Clawpage Browser SDK in a page (`https://clawpage.ai/sdk.js`) for live data, links, stats, blobs, /api/me\n\n8. `manage-data`\n- Path: `${CLAUDE_SKILL_DIR}/manage-data/SKILL.md`\n- Purpose: CRUD per-user KV data tables (comments / counters / configs / CMS) via the Clawpage data API\n\n9. `manage-links`\n- Path: `${CLAUDE_SKILL_DIR}/manage-links/SKILL.md`\n- Purpose: create / list / update / delete short links `clawpage.ai/s/<slug>` → `*.clawpage.ai`\n\n10. `manage-blobs`\n- Path: `${CLAUDE_SKILL_DIR}/manage-blobs/SKILL.md`\n- Purpose: upload images / files to Cloudflare R2 storage, get public `blob.clawpage.ai/<id>` URLs\n\n11. `view-stats`\n- Path: `${CLAUDE_SKILL_DIR}/view-stats/SKILL.md`\n- Purpose: page-view counts and per-day series for the user's pages / homepage / short links\n\n## Routing Priority (Conflict Resolution)\n\nApply this priority order when intent is mixed:\n\n1. Initialization intent (\"init\", \"setup\", \"初始化\", \"完成注册\") -> `init`\n2. Management-page intent (\"管理页\", \"后台页\", \"列出我所有页面\", \"pages dashboard\", \"admin/read-only page list\") -> `create management page`\n3. Explicit `page-id` / `pageId` / \"update existing page\" signal -> `update page`\n4. Existing local project intent (`~/.clawpage/pages/<name>`, `./.pages/<name>`, \"基于旧页面\", \"沿用现有页面\") -> `update page`\n5. Template-only intent (create/update template) -> `create template` or `update template`\n6. Data / KV intent (\"comments\", \"counters\", \"持久化\", \"data table\") -> `manage-data`\n7. Short-link intent (\"short link\", \"缩短\", \"redirect\", `clawpage.ai/s/...`) -> `manage-links`\n8. Blob / image upload intent (\"upload image\", \"上传图片\", \"PDF\", \"blob\") -> `manage-blobs`\n9. Stats intent (\"view count\", \"traffic\", \"访问量\", \"stats\") -> `view-stats`\n10. SDK intent (\"use SDK\", \"live data on page\", \"interactive page\", \"browser SDK\") -> `use-sdk`\n11. Otherwise default to creating a new page -> `create page`\n\n## Keyword Hints\n\n- Init: \"init\", \"setup\", \"初始化\", \"自动注册\", \"register\"\n- Create page: \"new/create page\", \"from template\", \"发布新页面\"\n- Update page: \"update/rework/revise\", \"existing page\", \"page-id\"\n- Create management page: \"管理页\", \"页面管理\", \"列出所有页面\", \"dashboard of my pages\", \"read-only admin page\"\n- Create template: \"new template\", \"模板搭建\"\n- Update template: \"improve template\", \"模板改版\"\n\n## Global Non-Negotiable Constraints\n\n- Never remove required HTML placeholders: `__CONTENT_HTML__`, `__DEFAULT_CSS__`, `__DEFAULT_JS__`.\n- Do not fabricate `pageId` for updates.\n- Use API default `https://api.clawpage.ai` unless user overrides.\n- For newly created pages, default publish policy is private + 3h TTL (`pagecode` required, `ttlMs=10800000`) unless user explicitly requests otherwise.\n- Management page must be read-only (no destructive operations).\n- **Never write into the plugin install tree** (`${CLAUDE_SKILL_DIR}/...`). Page projects go under `~/.clawpage/pages/<name>/` (the global default that `@clawpage.ai/cli` resolves bare names to). Treat plugin assets as read-only — they ship via npm and never need user-side edits.\n\n## References\n\n- API semantics: `${CLAUDE_SKILL_DIR}/references/api-quickref.md`\n- Shared prompt contracts (output/localization/checks/errors): `${CLAUDE_SKILL_DIR}/references/prompt-contracts.md`\n- Publish entrypoint: `npx -y @clawpage.ai/cli publish` (npm package [@clawpage.ai/cli](https://www.npmjs.com/package/@clawpage.ai/cli))\n\n## Path Conventions\n\n- **Bash commands** — invoke runtime via `npx -y @clawpage.ai/cli <subcommand>`. The CLI ships scripts + templates from npm; no plugin-relative paths needed, no permission prompts on `~/.claude/...`.\n- **Read-only references** — `${CLAUDE_SKILL_DIR}/references/...` for plugin-bundled docs (api / contracts / design guidelines). Read by Claude, not executed.\n- **Pages** — `[PAGE_DIR]` resolved once per task. Default `~/.clawpage/pages/<name>/` (global workspace, since `@clawpage.ai/cli` 0.2.0). User may opt into project-scoped paths like `./.pages/<name>/` to check pages into a specific repo.\n- **Auth** — `~/.clawpage/keys.local.json` (auto-created by `npx -y @clawpage.ai/cli init`). Project-scoped `./keys.local.json` in cwd takes precedence if present.\n","tags":{"latest":"1.1.4"},"stats":{"comments":0,"downloads":922,"installsAllTime":34,"installsCurrent":0,"stars":0,"versions":7},"createdAt":1773633791940,"updatedAt":1779000602221},"latestVersion":{"version":"1.1.4","createdAt":1777748505727,"changelog":"No changes detected in this version.\n\n- Version 1.1.4 was released with no modifications to the code or documentation.","license":"MIT-0"},"metadata":null,"owner":{"handle":"kevin-zhan","userId":"s176dce88w6a44jn20rg7mccj584c6c6","displayName":"kevin-zhan","image":"https://avatars.githubusercontent.com/u/11531437?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090734047}}