CCPM Project Management
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
Builds and publishes a tabbed status page for a project with several workstreams, kept current by refreshing the same private page.
$ npx skills add anthropics/claude-plugins-official --skill project-artifact -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install anthropics/claude-plugins-official project-artifact --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/anthropics/claude-plugins-official.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/project-artifact/skills/project-artifact .claude/skills/project-artifact && 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 "project-artifact" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/project-artifact/skills/project-artifact into .claude/skills/project-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-artifact", 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/anthropics/claude-plugins-official/tree/main/plugins/project-artifact/skills/project-artifactType 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 anthropics/claude-plugins-official --skill project-artifact -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install anthropics/claude-plugins-official project-artifact --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anthropics/claude-plugins-official.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/project-artifact/skills/project-artifact .agents/skills/project-artifact && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "project-artifact" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/project-artifact/skills/project-artifact into .agents/skills/project-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-artifact", 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 anthropics/claude-plugins-official --skill project-artifact -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install anthropics/claude-plugins-official project-artifact --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anthropics/claude-plugins-official.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/project-artifact/skills/project-artifact .cursor/skills/project-artifact && 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 "project-artifact" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/project-artifact/skills/project-artifact into .cursor/skills/project-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-artifact", 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/anthropics/claude-plugins-official.git --path plugins/project-artifact/skills/project-artifact--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 anthropics/claude-plugins-official --skill project-artifact -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install anthropics/claude-plugins-official project-artifact --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anthropics/claude-plugins-official.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/project-artifact/skills/project-artifact .gemini/skills/project-artifact && 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 "project-artifact" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/project-artifact/skills/project-artifact into .gemini/skills/project-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-artifact", 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 anthropics/claude-plugins-official project-artifactInstalls 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 anthropics/claude-plugins-official --skill project-artifact -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/anthropics/claude-plugins-official.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/project-artifact/skills/project-artifact .github/skills/project-artifact && 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 "project-artifact" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/project-artifact/skills/project-artifact into .github/skills/project-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-artifact", 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 anthropics/claude-plugins-official --skill project-artifact -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install anthropics/claude-plugins-official project-artifact --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anthropics/claude-plugins-official.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/project-artifact/skills/project-artifact .opencode/skills/project-artifact && 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 "project-artifact" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/project-artifact/skills/project-artifact into .opencode/skills/project-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-artifact", 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.
project-artifactBuilds and publishes a tabbed status page for a project with several workstreams, kept current by refreshing the same private page.
One self-contained HTML file is generated, with a small tab switcher as its only script, and published with the built-in Artifact tool to a private claude.ai page you can share with teammates. The tabs cover overview and success criteria, the workstream sequence and next steps, with background, plan, risks and open questions, and decisions or FAQ added when they earn a tab. It suits migrations, research efforts, launches and organization initiatives that span parallel or dependent workstreams.
Each project keeps a config and its latest render in the plugin data directory. When a config exists, a refresh re-gathers live state, republishes to the same URL and reports only what changed; if a published artifact already exists from another machine, you give the URL and it is recorded instead of creating a new page. For software projects whose workstreams are pull requests, `swe.md` adds a PR numbering convention, pulls PR state with `gh` and `git`, and adds a per-PR detail block. It needs the Artifact tool and a claude.ai login, and is not for single-PR changes or public docs.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 315c4e4. 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:
ghgitclaudeFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
claude.aiFrom 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.
Project Status Artifact loads about 5.1k tokens when it runs. Until then it costs about 231 tokens; SKILL.md has 2,896 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 no risky patterns in SKILL.md.
Automated 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 anthropics/claude-plugins-official at commit 315c4e4, republished under its Apache-2.0 licence (© anthropics). 2,896 words, ~5,061 tokens.
.claude/skills/project-artifact/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.This skill produces one specific kind of artifact: a tabbed status page that represents a
project too big for one update — a software migration, a research effort, a launch, an org
initiative; anything with a set of parallel/dependent workstreams tracked over time. It
generates the HTML (one file, self-contained — the Artifact CSP blocks all external hosts,
so everything is inlined; the only <script> is the tab switcher) and publishes it with
the built-in Artifact tool to https://claude.ai/code/artifact/<uuid>. The page is
default-private; the viewer gives the owner a version picker and lets them share it with
teammates. (The general "render any HTML/Markdown to a web page" capability is the built-in
Artifact tool; this is the project-tracker structure on top — defining what an artifact
is belongs to that tool, not here.)
The SWE specifics for PR-driven projects are in swe.md, kept out of this file so the
project-artifact structure stays domain-neutral.
Resolve the artifact config, then locate the project. Each project gets a directory
at ${CLAUDE_PLUGIN_DATA}/artifacts/<slug>/ holding config.md (see "The artifact
config" below) and page.html (the current render); listing artifacts/ is the
registry of this skill's artifacts on this machine (enumerate it with Glob or a
directory read — a shell listing of the data dir can be blocked in restricted
environments). If the user names a project,
load that slug; if exactly one config matches the session (its repo is the cwd, or its
project came up in conversation), use it; a config that exists means this is a
refresh — follow "Refreshing an artifact" below. No config means a first build:
gather from scratch and write the config after the first publish — but if the user says
the project already has a published artifact (made on another machine or in a lost
session), get that URL and record it instead of minting a new one.
Then collect the source material: the goal, the set of workstreams (PRs, milestones,
sub-projects, tasks), owners, dates, and any sibling docs (design doc, plan, spec).
Pull whatever the domain gives you cheaply — always live, never from memory or earlier
turns — for software that's gh pr list / git log / gh pr view (see swe.md); for
other domains it's the project doc, a tracker, a spreadsheet, your own notes. If the
source is itself an existing claude.ai/code/artifact/... page to reshape, fetch it —
see "Reading an existing artifact page" below. Don't ask the user to paste content or hand you a local file
as a substitute for fetching it yourself.
Pick the tabs from the catalog below — only the ones with real content.
Overview and the Workstreams sequence are the spine and are essentially always
there; Attention, Background, Plan, Risks & open questions, and
Decisions/FAQ each earn a tab only when there's something substantive to put in it
(a simple, self-explanatory project may have just Overview + Workstreams; a big one ~6–8). Never
ship an empty tab. If this is a software project, swe.md notes the extra tabs a
rigorous one tends to want — none of them mandatory.
Generate the HTML from template.html in this skill directory (same folder as this
SKILL.md): it already has the house style (light/dark via prefers-color-scheme, CSS
variables), the header, the status banner, the next-steps strip, both tab mechanisms
(JS-toggled panes as the default; pure-CSS radio tabs as a no-JS alternative), the
status-pill classes, and a stub <section> per catalog tab with fill-in comments. Fill the stubs, delete unused
tabs, keep it one file. Set a concise <title> — the Artifact tool uses it as the
page's name in the browser tab and the claude.ai gallery, and falls back to the file
basename without one; keep it stable across redeploys. Write the file to the config's
html path — default ${CLAUDE_PLUGIN_DATA}/artifacts/<slug>/page.html, next to the
config (not /tmp; not inside the user's repo unless they ask — if they do, use
<repo>/.claude/project-artifact/<slug>.html and record it as the config's html path):
a stable path means the Artifact tool redeploys to the same URL within a session, and
the previous render stays around for the next refresh's delta. Embed the state
block (see "Refreshing an artifact") so the next run can compute what changed.
Review the output for cut-off text and overflow. Before publishing, re-read the
file and check that nothing gets clipped or truncated: fixed-width table columns
squeezing their contents, long unbroken strings (URLs, PR/branch names, IDs) overflowing
their container, anything sitting behind overflow:hidden or white-space:nowrap. The
viewport is unknown (could be a phone): wide content — tables, diagrams, code blocks —
must scroll inside its own overflow-x:auto container, never the page body. After
publishing, open the page and eyeball it — if anything is clipped, wrap or shorten it
(word-break, a smaller font, a shorter label) and redeploy.
Publish with the Artifact tool. Call Artifact with file_path = the HTML,
favicon = one or two emoji that fit the project (keep the same emoji on every
redeploy — viewers find their tab by it), label = a short version tag (e.g.
"phase 1 cut" or the date — shows in the version picker), and — on a refresh — url =
the config's recorded artifact URL so the redeploy lands on the same address. The tool
returns the https://claude.ai/code/artifact/<uuid> URL; the slug is server-minted,
not chosen.
Share it. First publish is private to the user — teammates can't open it (they get a 404) until the user shares it. Tell the user to open the artifact on claude.ai and share it with their teammates from the viewer; redeploys preserve the sharing setting.
(Optional) Register on a hub. If the user keeps a project hub or index page, append the artifact URL there per that hub's instructions. The slug is opaque, so a hub or bookmark is how teammates find it. Skip if there's no hub.
Write the config and report. On a first publish, write
${CLAUDE_PLUGIN_DATA}/artifacts/<slug>/config.md now — recording the minted URL, favicon,
title, and html path is what makes every later "refresh the artifact" land on the same
address from any session. Then report the URL, the favicon you picked, and which tabs
you filled. The page is a living artifact — it drifts the moment anything changes;
updates follow "Refreshing an artifact" below. If a publish reports a conflict (another
session published a newer version), WebFetch the URL to see the current content,
reconcile, then publish again.
Headless note: the Artifact tool is not available in non-interactive (claude -p)
sessions, and writing into the plugin data dir may require a permission grant the run
cannot answer. In that case build the page, save it where the caller asked, and report
that publishing needs an interactive session — don't improvise another publishing path.
A small markdown file at ${CLAUDE_PLUGIN_DATA}/artifacts/<slug>/config.md, in the
plugin's persistent data directory (exposed as CLAUDE_PLUGIN_DATA; it survives plugin
updates and is only removed on uninstall). It is machine-local: a user who wants a config
to follow them across machines can keep it in their dotfiles and symlink or copy it in —
the format is the same. Sections, all short:
url (written after the first publish; every later publish passes it),
favicon, title, html path (default ${CLAUDE_PLUGIN_DATA}/artifacts/<slug>/page.html).gh query parameters
(author, head-branch prefix), the tracker project (Linear/Asana/issues), key docs and
channels, and how workstreams map onto those sources (for software see swe.md).
Date-tag entries that were verified by a human ("verified 2026-06-17") and re-verify
stale ones before relying on them.When no config exists, never block the first build on filling one in — gather, build, publish, then write the config in step 8.
"Refresh the artifact", "update the status page", and a repeat /project-artifact <project>
all mean: re-gather, re-render, redeploy the same URL, and tell the user only what
changed.
<script type="application/json" id="artifact-state"> carrying {"as_of": "<UTC>", "workstreams": [{"id", "status", "owner", ...}]} (software: one entry per PR, with the field list defined in swe.md —
don't improvise a different shape). It is invisible on the page and exists only so the
next run can diff against it.as_of
also anchors the gather window ("what changed since"). If the local file is missing but
the config has a url (new machine, reinstall), WebFetch the artifact URL to recover
the current page and its state block first. No previous render anywhere means first
render — say so instead of inventing a delta.url.<previous as-of>" is a fine answer. The page carries
the full detail.< → <, & → &), and never let a literal </ reach the
artifact-state JSON — write < as \u003c inside JSON strings — so a branch name or
PR title containing </script> can't terminate the block and run as script on the
published page.claude.ai/code/artifact/... — use WebFetch with the URL; it returns the page HTML.
This works for artifacts the user owns or that have been shared with them — anything else
404s (unauthorized and nonexistent are indistinguishable by design). If it 404s, ask the
owner to share it, or work from the project's underlying source (repo/PRs/design doc)
instead of the rendered page.
Use only the tabs with real content; order matters (readers go top to bottom).
| Tab | Include when | Goes in it |
|---|---|---|
| Overview | always | What this project is, why it exists, who's involved. The motivation can be light — a single line, or skipped — when the goal is self-evident; don't pad an obvious "why" into paragraphs. Success criteria — each with a check (how you'd know it's met) and a status; group them when they span distinct concerns (e.g. product vs security vs perf, or must-have vs nice-to-have — sub-tables or sub-headings), one flat table when there's only a handful. A short Out of scope list bounds the reader's worry. |
| Workstreams (a.k.a. Sequence / Milestones) | always | The headline table — one row per workstream: id · what · owner · status (+ dates), status pills — plus the current state at a glance (what's done, what's in flight, what's blocked; this is not a separate tab). If the order doesn't make dependencies obvious, add an "after <id>" note in the row — don't draw a diagram. For each workstream worth detail, a block: what's done, how it was verified/validated, links. (Software: this is the PR sequence — see swe.md for the X.Y numbering, which already encodes the dependencies, and the per-PR block. A very high-churn project can split a separate changelog tab.) |
| Attention (a.k.a. Waiting on) | the artifact is refreshed regularly and drives action, not just orientation | Three short lists, action first. Waiting on the owner: numbered, priority order, each item the exact action (a paste-ready message or a one-word decision) plus one sentence on what it unblocks. Automatic once those land: the chain that needs no action (auto-merge cascades, deploys, tracker auto-close). Waiting on others: who · what · which item (linked) · where to nudge. Skip it on a one-shot overview page. (The next-steps strip under the banner always carries the top of these — see Conventions.) |
| Background / Concepts | the project isn't self-explanatory | The context a newcomer needs before the rest makes sense — prior work, the problem, the key ideas/vocabulary. The "what a colleague would tell you over coffee" version; link forward to a deep-dive tab if there is one. Skip it when the project is simple/obvious. |
| Plan / Approach | the how is non-obvious | The strategy — the phases, the sequencing rationale, why this shape and not another. Skip it when the plan is just "do the workstreams in order". |
| Risks & open questions | there are real ones | Risk register (risk · likelihood/impact · mitigation · owner) plus the unresolved questions the project hasn't answered yet. Include the ones the team already knows about — the honest caveats build trust. A low-risk project with no open questions can drop this. |
| Decisions / FAQ | people keep asking | The questions people actually ask, and the decisions made + rationale. "Why this approach?", "Why not X?", "What does done look like?" |
.next strip), above the tabs
so it's visible whichever tab is open. 1–3 items, most important first, each
who → the exact action → what it unblocks — the concrete moves that take the project
from its current state to the next one, not a restatement of the remaining workstreams.
The strip is a collapsible <details open>: always ship it open, and keep the item
count in its <summary> so a reader who collapses it still sees how much is pending
(when the body is the one-line fallback, the summary count reads "none pending").
Nothing pending? Keep the strip and say so in one line ("No action needed — …", naming
whatever ambient work remains) rather than deleting it — "there is no next step" is
itself the answer the reader came for. The strip stands on its own: it appears whether
or not the page has an Attention tab; when that tab is present it holds the full
waiting-on lists and the strip is their top. When no human owner is recorded, name
whatever actor exists (the PR's author or reviewers, the owning team) rather than
inventing one.done / in progress / next / blocked /
⚠ caveat. Define the classes in CSS once (template has them).over, work, att,
… ids) — the next refresh edits the previous render in place and keys off them.data: URI; one small <script> for
tabs is fine. System font stacks only.<svg> in the page,
not an external image, a screenshot, or an ASCII-art block. SVG keeps the page
self-contained, scales crisply, wraps with the layout, and can use currentColor / the
CSS variables so it tracks light/dark. Keep it simple and also state the same fact in
text — a diagram supplements the prose, it isn't the only place a fact lives. This is
not a license to diagram the workstream dependencies: the ordering (and the X.Y
numbering in swe.md) already encodes those — skip the DAG.Domain-specific guidance lives in sibling files (same directory as this SKILL.md), so the core idea above stays neutral:
swe.md — software projects whose workstreams are PRs: the gh/git workflow to
pull PR state, the X.Y PR-numbering convention (the one thing genuinely different
from this base template — it encodes which PRs block which, so you don't draw a DAG), a
per-PR detail block, and a short note on the extra tabs/rigor a thorough software project
tends to want (architecture deep-dive, review findings, rollout/rollback, must-have vs
nice-to-have requirements) — all of that optional, the skill user's call.Add another sibling (research.md, launch.md, …) when a domain shows a repeated shape
worth capturing — but only once you've actually built two or three of that kind.
(All in the same directory as this SKILL.md.)
template.html — domain-neutral skeleton: CSS, header, status banner, next-steps
strip, both tab mechanisms, pill classes, one stub <section> per catalog tab with
fill-in comments.swe.md — the software-project specialization (read it when the workstreams are PRs).© anthropics, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in plugins/project-artifact/skills/project-artifact of anthropics/claude-plugins-official.
Open the folder on GitHubat commit 315c4e4
Project Status Artifact 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 |
|---|---|---|---|---|---|---|
| Project Status Artifact this skillanthropics/claude-plugins-official | 38k | — | ~5.1k | Automated safety check: Pass | Apache-2.0 | |
| CCPM Project Managementautomazeio/ccpm | 8.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Project Planneraiskillstore/marketplace | 430 | 1 repos | ~504 | Automated safety check: Pass | MIT | |
| Ijfw Milestone SummaryFerroxLabs/ijfw | 212 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Timeline Builderzebbern/claude-code-guide | 4.7k | — | ~915 | Automated safety check: Pass | MIT | |
| Project Ops SkillOpenLoaf/OpenLoaf | 108 | — | ~1.3k | Automated safety check: Pass | AGPL-3.0 |
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
aiskillstore/marketplace
Detects stale project plans and suggests session commands. An agent skill from aiskillstore/marketplace.
FerroxLabs/ijfw
A skill your agent uses when the user asks for a milestone summary, milestone recap, or to summarize a milestone -- or runs /ijfw-milestone-summary.
zebbern/claude-code-guide
Generate beautiful interactive timeline HTML pages from JSON data, with vertical, horizontal, or dual-side layouts, collapsible details, and custom colors.
OpenLoaf/OpenLoaf
Triggered when the user wants to create, open, switch, move, delete, or rename OpenLoaf's "project" entity.
OpenMinis/MinisSkills
General GitHub basic operations + automation for GitHub platform objects (Issues/Labels/Milestones/Releases/Actions) in the Minis environment.
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
anthropics/claude-plugins-official
Shows how Claude Code plugins keep per-project settings and state in .claude/plugin-name.local.md files with YAML frontmatter and a markdown body.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
anthropics/claude-plugins-official
Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts.
anthropics/claude-plugins-official
Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.
Works with
Categories
Builds and publishes a tabbed status page for a project with several workstreams, kept current by refreshing the same private page. ai page you can share with teammates. The tabs cover overview and success criteria, the workstream sequence and next steps, with background, plan, risks and open questions, and decisions or FAQ added when they earn a tab.
Project Status Artifact fits situations like: giving a multi-workstream project a shareable status page; refreshing an existing project page with the latest state; tracking a PR-driven migration with per-PR detail.
Run `npx skills add anthropics/claude-plugins-official --skill project-artifact -a claude-code`. Or copy the skill folder (plugins/project-artifact/skills/project-artifact in anthropics/claude-plugins-official) into .claude/skills/project-artifact in your project. Claude Code loads it when a task matches its description.
Run `npx skills add anthropics/claude-plugins-official --skill project-artifact -a codex`. Or copy the skill folder (plugins/project-artifact/skills/project-artifact in anthropics/claude-plugins-official) into .agents/skills/project-artifact 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 anthropics/claude-plugins-official --skill project-artifact -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/project-artifact, .gemini/skills/project-artifact, .github/skills/project-artifact and .opencode/skills/project-artifact in your project.
Going by SKILL.md and its folder, Project Status Artifact needs the command-line tools its instructions call (gh, git and claude). Our summary lists: The built-in Artifact tool with a claude.ai login; `gh` and `git` for software projects tracked by pull requests.
SKILL.md names 1 domain. In commands or code: claude.ai; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Project Status Artifact is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.1k tokens (SKILL.md is roughly 20k 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 Project Status Artifact: CCPM Project Management (automazeio/ccpm, 8.4k stars), Project Planner (aiskillstore/marketplace, 430 stars), Ijfw Milestone Summary (FerroxLabs/ijfw, 212 stars) and Timeline Builder (zebbern/claude-code-guide, 4.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
anthropics (a GitHub organization, an official publisher) maintains it in anthropics/claude-plugins-official, which has 37,566 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 8, 2026.
Source: anthropics/claude-plugins-official on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.