Monitor CI
nrwl/nx
Monitor Nx Cloud CI pipeline and handle self-healing fixes. An agent skill from nrwl/nx.
Publish a long-lived internal web app, site, or dashboard from the agent computer.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add yc-software/qm --skill publish -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yc-software/qm publish --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/yc-software/qm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills-seed/publish .claude/skills/publish && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "publish" agent skill from https://github.com/yc-software/qm/tree/main/skills-seed/publish into .claude/skills/publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/yc-software/qm/tree/main/skills-seed/publishType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add yc-software/qm --skill publish -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yc-software/qm publish --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yc-software/qm.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills-seed/publish .agents/skills/publish && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "publish" agent skill from https://github.com/yc-software/qm/tree/main/skills-seed/publish into .agents/skills/publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yc-software/qm --skill publish -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yc-software/qm publish --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yc-software/qm.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills-seed/publish .cursor/skills/publish && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "publish" agent skill from https://github.com/yc-software/qm/tree/main/skills-seed/publish into .cursor/skills/publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/yc-software/qm.git --path skills-seed/publish--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add yc-software/qm --skill publish -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yc-software/qm publish --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yc-software/qm.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills-seed/publish .gemini/skills/publish && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "publish" agent skill from https://github.com/yc-software/qm/tree/main/skills-seed/publish into .gemini/skills/publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install yc-software/qm publishInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add yc-software/qm --skill publish -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yc-software/qm.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills-seed/publish .github/skills/publish && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "publish" agent skill from https://github.com/yc-software/qm/tree/main/skills-seed/publish into .github/skills/publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yc-software/qm --skill publish -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yc-software/qm publish --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yc-software/qm.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills-seed/publish .opencode/skills/publish && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "publish" agent skill from https://github.com/yc-software/qm/tree/main/skills-seed/publish into .opencode/skills/publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
publishPublish a long-lived internal web app, site, or dashboard from the agent computer.
Publish is an agent skill from yc-software/qm. Publish a long-lived internal web app, site, or dashboard from the agent computer. Scope-bound (only the owner's scope, plus whoever you share it with, can reach it), immutable versions with rollback, a stable friendly link. No public URL.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud. The repository describes itself as: Multiplayer agent harness for work. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0492745. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlnodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Publish loads about 2.2k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 1,221 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
f it's broken, fix it and check again — don't tell the user a site is ready before you'veAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from yc-software/qm at commit 0492745, republished under its MIT licence (© yc-software). 1,221 words, ~2,162 tokens.
.claude/skills/publish/SKILL.md (or your agent's skills folder).Use this skill when the user wants something that outlives the turn and is reachable in a browser — a small web app, an internal API, a status page, a dashboard you generated from a query. A turn's sandbox is torn down when the turn ends; publishing ships your files to a separate, long-lived runtime that keeps running and gets a stable link.
Publish with the apps tool, action publish. Build the app in the workspace with
files actions write / read; install dependencies and test with sandbox action
exec (execute before sandbox-resource activation). Then publish the directory.
The app must listen on the PORT env var (the runtime sets it).
Anything browsable you publish should look designed, not defaulted. Before you build the UI, load the design skills and apply your organization's house style unless the user asked for a different look:
*-design skill,
it carries the org's look as ready-to-paste CSS and design tokens. Start
there for the look.taste-skill — the design process: reading the brief, layout,
hierarchy, verifying the result, avoiding generic AI-design slop.popular-web-designs — when the user wants a specific visual
reference (Stripe, Linear, Vercel…).This is about the page a person sees — skip it for an internal-only API or a script with no UI.
First publish, and every later update — same call, same name, a new immutable version:
apps({ action: "publish", dir: "dist", entrypoint: "node server.js", name: "status-board" })Roll back to an earlier version (an instant pointer flip):
apps({ action: "publish", name: "status-board", rollbackTo: 3 })Give an auto-named deployment a friendly link:
apps({ action: "publish", renameFrom: "s-1176-p-5050", name: "status-board" })apps action publish returns { id, name, version, url, dataDir? } — give the user the full absolute url, whose path is /d/<name>/.
On a configured app subdomain, signed-in people who can manage the app automatically see a slim top bar. Chat opens a resizable editing conversation beside the app. Normal app links and refreshes keep editing available for the signed-in session; viewers with read-only access see the app alone.
The bar uses a consistent neutral appearance, independent of the app's theme. Its name follows the app document title. The drawer opens directly into an empty composer; the app identity is supplied as conversation context, not pasted into the draft. The conversation survives app reloads after a publish.
The app's disk is reset from source on every relaunch, with one exception: when the
runtime supports durable app data it sets $DATA_DIR (and the publish result reports
dataDir). Everything the app writes under $DATA_DIR survives restarts, redeploys, and
platform recycles.
$DATA_DIR. Never beside the code, never
in /tmp, never in a JSON file in the app dir: all of that silently vanishes on the
next relaunch.$DATA_DIR/app.db. That specific path gets the
strongest durability the runtime offers (continuous replication where enabled —
~seconds of loss window — periodic snapshots otherwise). Other files under $DATA_DIR
are snapshotted periodically.$DATA_DIR is unset, the runtime has no durable
app storage — don't build an app that quietly accumulates state on disk; say so and
bake data in or fetch it live instead.$DATA_DIR as part of the update — do
this on your own initiative; the user should never have to ask. Data deliberately baked
into the repo (seed/reference files) stays where it is.A published app is a new immutable version the moment the runtime accepts it — that is not the same as the app working. So for anything browsable, sanity-check it locally before you publish:
Run it locally. Start the server in the background on a port — e.g.
PORT=8080 node server.js via sandbox action start_process with purpose: "App preview server" (background action start
before sandbox-resource activation), so it keeps serving while you check.
Probe it with curl — confirm it answers, returns the status you expect, and the main
page/endpoint is actually there (real content, not a stack trace or a blank 500):
curl -sS -i http://localhost:8080/If it's broken, fix it and check again — don't tell the user a site is ready before you've
confirmed it serves. Only once it checks out do you call apps action publish and hand over the
/d/<name>/ link.
Publishing is always private to you: a new app is reachable only by its owner, and republishing never changes who can reach it. Grant access as a separate step with the app ID or handle:
apps({ action: "share", id: "status-board", toScope: "org", permission: "read" })personal:<id> (one teammate), or org:<id> (the whole org). Team/channel
scopes can be granted, but team-membership reach at the link is not enforced yet — for
now use org: or personal: grants for reach./d/<name>/ doesn't change when you ship a new version, and
renameFrom lets you change it on request without losing history or shares.rollbackTo
is an instant pointer flip. Safe to ship often.env is baked into each version; a republish that omits env keeps
the most recent version's (including a failed attempt), and passing env replaces it
({} clears).Publishing needs the deployment runtime to be available on this computer. If apps action publish
errors (e.g. the runtime/Docker isn't present, the command is missing), do not silently
fall back to sending the files and tell the user they can "view the site" there. Sending
a file delivers it as a downloadable attachment, not a hosted, browsable site — a
multi-file app (HTML + CSS + JS + assets) will NOT render from an attachment, and even a
single index.html arrives as a file to download, not a live URL.
So when publishing is unavailable:
.html (inline
CSS/JS, no external assets) the user can open locally — describe it that way, not as a
live site.© yc-software, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills-seed/publish of yc-software/qm.
Open the folder on GitHubat commit 0492745
Publish next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Publish this skillyc-software/qm | 15k | — | ~2.2k | Automated safety check: Warn | MIT | |
| Monitor CInrwl/nx | 29k | 6 repos | ~4.7k | Automated safety check: Pass | MIT | |
| Terraform and OpenTofu Guideagentscope-ai/QwenPaw | 35k | 6 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Vercel Optimize Auditvercel-labs/agent-skills | 32k | 9 repos | ~4.3k | Automated safety check: Pass | None | |
| Openclaw Live Updateropenclaw/openclaw | 392k | — | ~3.7k | Automated safety check: Pass | MIT | |
| Analyze GitHub Action Logswithastro/astro | 63k | 1 repos | ~1.3k | Automated safety check: Pass | Custom licence |
nrwl/nx
Monitor Nx Cloud CI pipeline and handle self-healing fixes. An agent skill from nrwl/nx.
agentscope-ai/QwenPaw
Guidance for writing and testing Terraform and OpenTofu code: module structure, naming, test approaches, CI/CD workflows, state handling and security scanning.
vercel-labs/agent-skills
Runs a metrics-first audit of a deployed Vercel project, gating investigations on real signals to produce ranked, citation-backed cost and performance recommendations.
openclaw/openclaw
Maintain the canonical live OpenClaw main checkout, macOS LaunchAgent-managed Gateway, local macOS app, exact-head main CI, and recurring full release validation.
withastro/astro
Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.
kubesphere/kubesphere
Creates and queries KubeSphere users, workspaces and projects and assigns built-in roles, defaulting to least privilege and never deleting anything.
yc-software/qm
Act for an org admin — the admin API (scope directory, per-scope config & SOUL, any scope's memory, transcripts & captured prompts, files, user roster & external users, audit/errors/metrics/egress)…
yc-software/qm
Drive a real stealth browser from your shell — act on websites (order food, file an expense, pull data behind a login), with per-person persistent sign-ins via the provider's managed auth (Kernel…
yc-software/qm
Show the app connection picker or setup widget when users ask to connect apps, reopen setup, or need an app that isn't connected yet.
yc-software/qm
Run the current worktree as a production-shaped local dev instance with web, Slack, or both, on a real LLM + Postgres.
yc-software/qm
Work with GitHub and GitLab repositories through resident gh/glab/git auth on the agent computer.
yc-software/qm
Read and act on the user's Gmail, Google Calendar, and Google Tasks through per-user OAuth.
Categories
Publish a long-lived internal web app, site, or dashboard from the agent computer. Publish is an agent skill from yc-software/qm. Publish a long-lived internal web app, site, or dashboard from the agent computer.
Publish fits situations like: devOps & Cloud work in your project.
Run `npx skills add yc-software/qm --skill publish -a claude-code`. Or copy the skill folder (skills-seed/publish in yc-software/qm) into .claude/skills/publish in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yc-software/qm --skill publish -a codex`. Or copy the skill folder (skills-seed/publish in yc-software/qm) into .agents/skills/publish in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yc-software/qm --skill publish -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/publish, .gemini/skills/publish, .github/skills/publish and .opencode/skills/publish in your project.
Going by SKILL.md and its folder, Publish needs the command-line tools its instructions call (curl and node). Our summary lists: Docker.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): contains instruction-override wording (e.g. “without asking the user”). Read the flagged lines before installing; the check is not a guarantee either way.
Publish is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Publish: Monitor CI (nrwl/nx, 29k stars), Terraform and OpenTofu Guide (agentscope-ai/QwenPaw, 35k stars), Vercel Optimize Audit (vercel-labs/agent-skills, 32k stars) and Openclaw Live Updater (openclaw/openclaw, 392k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yc-software (a GitHub organization) maintains it in yc-software/qm, which has 15,362 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 8, 2026.
Source: yc-software/qm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.