
Community Publish
Publish a public preview URL, list a project on the Starchild community dashboard, or open-source a project directory without writing custom deploy scripts.
Install
npx skills add https://github.com/starchild-ai-agent/official-skills --skill community-publishWhat is this skill?
- Three independent actions: `publish_preview`, `list_in_dashboard`, `open_source`—combinable, not a linear pipeline
- `publish_preview(preview_id)` allocates `https://community.iamstarchild.com/{user_id}-{slug}` for a running service
- `list_in_dashboard(slug)` exposes a published preview on the public Project Dashboard for browse discovery
- `open_source(project_dir)` pushes project source to the community GitHub repo
- Explicit guardrail: do not grep the repo for publish code or roll custom upload deploy scripts—use this skill entry poin
Adoption & trust: 1.1k installs on skills.sh; 13 GitHub stars; 1/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
Recommended Skills
Journey fit
Sharing and discovery are first-class Launch work once something runs or is ready to show—not filesystem archaeology during Build. Distribution is the shelf for making a built project reachable via URL, gallery listing, or community GitHub source.
Common Questions / FAQ
Is Community Publish safe to install?
skills.sh reports 1 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Community Publish
## Three independent actions This skill handles three completely different kinds of sharing. They are NOT stages of one flow and NOT mutually exclusive — a project can be in any combination. | Action | What "share" means here | Audience can | Applies to | |---|---|---|---| | `publish_preview(preview_id)` | Allocate a public URL `https://community.iamstarchild.com/{user_id}-{slug}` | Open the URL **if they know it** — point-to-point access | Any running service | | `list_in_dashboard(slug)` | Show the listing on the public Project Dashboard | **Discover and browse** to it from the gallery | A previously-published preview | | `open_source(project_dir)` | Push project source to the community GitHub repo | Fork the code and run their own copy | Any project (task, service, script) | **Critical: do NOT auto-list when publishing.** `publish_preview()` only allocates the URL. Listing is a separate, deliberate user decision. If the user just says "publish my preview" / "公开" without mentioning the dashboard, only call `publish_preview()`. After it succeeds, you may mention that `list_in_dashboard()` exists if they want others to discover it. > Service lifecycle (start / stop / health check) lives in the `preview` tool. This skill only handles the **share** side. --- ## Visibility model — read this before answering anything about who can see a project A project's "publicness" is **two orthogonal switches**, not one: | Switch | Off state | On state | Flipped by | |---|---|---|---| | **URL access** | Visiting the URL returns 404 / no service | URL works for anyone who has the link | `publish_preview` / `unpublish_preview` | | **Dashboard discoverability** | Listing row has `is_public=false` (or doesn't exist) — invisible in the public gallery | Listing row has `is_public=true` — appears in `/projects` | `list_in_dashboard` / `unlist_from_dashboard` | Public URL ≠ public discovery. A preview can be **URL-reachable but undiscoverable** (the default state right after `publish_preview`), or **listed but URL-down** (preview stopped after being listed), or any other combination. Never collapse these into "is it public yet". **Status questions are read-only operations.** Whenever the user asks anything like: - "is it visible / public / discoverable yet?" - "can other people find it?" - "上架了吗 / 在 dashboard 上吗 / 别人能看到吗" - "is the listing live?" The authoritative answer comes ONLY from a fresh `get_listing_status(slug)` call. Do NOT infer the answer from "I called publish_preview earlier so it must be visible" — that's exactly the trap (publish_preview leaves `is_public=false`). Treat your own past actions as suggestive but never authoritative for a state question. --- ## Project types — three only | type | What it is | Eligible for `publish_preview()`? | |---|---|---| | `task` | Scheduled cron/interval job | No (no HTTP port) | | `service` | Long-running HTTP service (dashboard, API, page) | **Yes** — any service can be exposed at a public URL | | `script` | One-shot script | No (no HTTP port) | Note: there is no `preview` type. If you encounter older docs mentioning it, treat as `service`. --- ## Routing — match user intent to the rig