{"skill":{"slug":"pagepop-skill","displayName":"PagePop","summary":"Create and continue PagePop content-generation conversations from a host app. Use when the user wants PagePop to generate, refine, or retrieve content artifa...","description":"---\nname: pagepop-skill\ndescription: Create and continue PagePop content-generation conversations from a host app. Use when the user wants PagePop to generate, refine, or retrieve content artifacts such as social posts, slides, documents, images, or design drafts.\n---\n\n# PagePop Skill\n\nThis skill connects a host application to PagePop.\n\nOn first use, the user opens a PagePop authorization page in a browser and confirms access. After authorization, the skill stores a local access key and reuses it for later requests.\n\n## Capabilities\n\n- Start a PagePop generation request.\n- Continue the current PagePop conversation by default.\n- Start a new conversation when explicitly requested.\n- List locally saved conversations for switch-chat flows.\n- Stream PagePop progress and artifact events.\n- Emit a generic artifact delivery view plus channel-aware presentation payloads for host applications.\n- Check whether the installed package should be updated.\n\n## Commands\n\n```bash\npython3 scripts/pagepop_skill.py status\npython3 scripts/pagepop_skill.py auth\npython3 scripts/pagepop_skill.py conversations\npython3 scripts/pagepop_skill.py stream --goal \"Create a product launch deck\"\npython3 scripts/pagepop_skill.py stream --new-chat --goal \"Create a rednote post about camping gear\"\npython3 scripts/pagepop_skill.py resume-stream --conversation-id conv_xxx --offset 0\n```\n\n`stream --goal` always submits a chat request before reading SSE events. Use `resume-stream` when the host only needs to replay or continue reading events for an existing conversation without creating a new task. When `--offset` is omitted, `resume-stream` uses the saved SSE cursor for that conversation.\n\n## Configuration\n\nProduction packages are built with a generated `skill-manifest.json`.\n\nCommon environment variables:\n\n- `PAGEPOP_API_BASE_URL`\n- `PAGEPOP_WEB_BASE_URL`\n- `PAGEPOP_SKILL_ID`\n- `PAGEPOP_SKILL_STATE_DIR`\n- `PAGEPOP_SKILL_REGION`\n- `PAGEPOP_SKILL_SOURCE_APP`\n- `PAGEPOP_SKILL_DISPLAY_APP_NAME`\n- `PAGEPOP_SKILL_RETURN_MODE`\n- `PAGEPOP_SKILL_RETURN_TARGET`\n- `PAGEPOP_SKILL_UPDATE_CHANNEL`\n- `PAGEPOP_SKILL_WAIT_FOR_AUTHORIZATION`\n- `PAGEPOP_SKILL_ARTIFACT_DIR`\n- `PAGEPOP_SKILL_DOWNLOAD_IMAGES`\n\nThe legacy `PAGEPOP_OPENCLAW_*` names are still accepted as compatibility aliases for existing OpenClaw installations. New integrations should use the `PAGEPOP_SKILL_*` names. Host-specific usage notes belong in `adapters/`.\n\nBefore invoking this skill, host applications should determine whether the current user is in mainland China or outside mainland China. If `PAGEPOP_API_BASE_URL` is not set, production domain selection is region-based: mainland China (`PAGEPOP_SKILL_REGION=CN` or an Asia/Shanghai-style mainland timezone) uses `https://pc-api.pagepop.cn`; non-mainland users use `https://pc-api.pagepop.ai`. Missing region data defaults to the global `.ai` domain and emits an `integration_warning`.\n\n## Host Integration\n\nWhen a host invokes this skill on behalf of another app, it should pass launch context before authorization:\n\n- `source_app`\n- `display_app_name`\n- `return_mode`\n- `return_target`\n- `region` or `PAGEPOP_SKILL_REGION`, after deciding mainland China vs non-mainland\n\nIf no launch context is provided, the authorization page falls back to the default host label.\n\nArtifact delivery events include:\n\n- `presentation`: channel-neutral content for fallback renderers.\n- `channel_presentations.slack`: Slack Block Kit blocks.\n- `channel_presentations.feishu`: Feishu interactive-card payload plus media upload hints.\n- `target.preferred_channel`: normalized from `source_app` when the host passes launch context.\n\nHosts should prefer their matching `channel_presentations` entry, then fall back to `presentation.fallback_text`.\nFeishu hosts should avoid rendering raw URLs from generic `presentation`; use the Feishu card buttons or Feishu-specific fallback text so underscores in URLs are not truncated by lark_md auto-linking.\nWhen composing a Feishu chat message manually, send `channel_presentations.feishu.media.local_image_messages` as image messages first, then send `channel_presentations.feishu.plain_text` or `artifact.display_text`; do not copy raw image URLs from `artifact.text` or `sse_event.data` into `lark_md`.\n\n## Output\n\nThe skill emits JSON Lines. Important event kinds include:\n\n- `auth_required`\n- `auth_authorized`\n- `chat_context`\n- `conversation_history`\n- `chat_submitted`\n- `stream_resumed`\n- `progress_update`\n- `artifact_update`\n- `artifact_ready`\n- `artifact_delivery`\n- `sse_event`\n- `stream_finished`\n- `skill_update_available`\n- `skill_update_required`\n- `error`\n","tags":{"latest":"0.0.4","ai-agent":"v0.0.4","content-creation":"v0.0.4","image-generation":"v0.0.4","pagepop":"v0.0.4"},"stats":{"comments":0,"downloads":344,"installsAllTime":13,"installsCurrent":0,"stars":0,"versions":3},"createdAt":1778222585882,"updatedAt":1778492876503},"latestVersion":{"version":"0.0.4","createdAt":1778222841785,"changelog":"Version 0.0.4 of pagepop-skill\n\n- No code or documentation changes detected in this release.\n- Behavior and capabilities remain the same as the previous version.","license":"MIT-0"},"metadata":null,"owner":{"handle":"jujian-pp","userId":"s17d679cwb63sh6ra4wky5r4r185p1xp","displayName":"jujian-pp","image":"https://avatars.githubusercontent.com/u/278613988?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090760235}}