Discover
anombyte93/prd-taskmaster
Phase 1 of the prd-taskmaster pipeline: brainstorm-driven discovery.
Upload a file as a ClosedLoop document (PRD, implementation plan, feature, or template).
$ npx skills add closedloop-ai/claude-plugins --skill upload-artifact -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install closedloop-ai/claude-plugins upload-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/closedloop-ai/claude-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/platform/skills/upload-artifact .claude/skills/upload-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 "upload-artifact" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/platform/skills/upload-artifact into .claude/skills/upload-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upload-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/closedloop-ai/claude-plugins/tree/main/plugins/platform/skills/upload-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 closedloop-ai/claude-plugins --skill upload-artifact -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install closedloop-ai/claude-plugins upload-artifact --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/platform/skills/upload-artifact .agents/skills/upload-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 "upload-artifact" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/platform/skills/upload-artifact into .agents/skills/upload-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upload-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 closedloop-ai/claude-plugins --skill upload-artifact -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install closedloop-ai/claude-plugins upload-artifact --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/platform/skills/upload-artifact .cursor/skills/upload-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 "upload-artifact" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/platform/skills/upload-artifact into .cursor/skills/upload-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upload-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/closedloop-ai/claude-plugins.git --path plugins/platform/skills/upload-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 closedloop-ai/claude-plugins --skill upload-artifact -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install closedloop-ai/claude-plugins upload-artifact --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/platform/skills/upload-artifact .gemini/skills/upload-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 "upload-artifact" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/platform/skills/upload-artifact into .gemini/skills/upload-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upload-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 closedloop-ai/claude-plugins upload-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 closedloop-ai/claude-plugins --skill upload-artifact -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/platform/skills/upload-artifact .github/skills/upload-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 "upload-artifact" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/platform/skills/upload-artifact into .github/skills/upload-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upload-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 closedloop-ai/claude-plugins --skill upload-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 closedloop-ai/claude-plugins upload-artifact --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/platform/skills/upload-artifact .opencode/skills/upload-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 "upload-artifact" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/platform/skills/upload-artifact into .opencode/skills/upload-artifact/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upload-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.
upload-artifactUpload a file as a ClosedLoop document (PRD, implementation plan, feature, or template).
Upload Artifact is an agent skill from closedloop-ai/claude-plugins. Upload a file as a ClosedLoop document (PRD, implementation plan, feature, or template). Reads file content and uploads via MCP without consuming conversation context. Also supports creating new versions of existing documents. Triggers on: "upload artifact", "upload PRD", "upload implementation plan", "upload feature", "create artifact from file", "save as artifact", "push to closedloop", "new artifact version", "test artifact upload", "verify artifact content", "upload to project".
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/upload_artifact.py`).
It sits in Agent Workflows, covering PRD writing, Planning and MCP servers. It works with Model Context Protocol. The repository describes itself as: Open-source Claude Code plugins for multi-agent software delivery. Plan-first SDLC workflow, code review, LLM quality judges, and self-learning — grounded in your codebase… The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 476b54c. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadAskUserQuestionmcp__closedloop__create-documentmcp__closedloop__create-document-versionmcp__closedloop__list-projectsFrom allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
uvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
CLOSEDLOOP_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Upload Artifact loads about 1.4k tokens when it runs. Until then it costs about 126 tokens; SKILL.md has 571 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 noted patterns worth knowing about, such as sudo or a known installer.
otherwise rely on a `.env.local` file in the current working directory:allowed-tools: Bash, Read, AskUserQuestion, mcp__closedloop__create-document, mcp__closedloop__create-document-versAutomated 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); the scripts in this folder are not scanned.
The full file from closedloop-ai/claude-plugins at commit 476b54c, republished under its Apache-2.0 licence (© closedloop-ai). 571 words, ~1,375 tokens.
.claude/skills/upload-artifact/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Upload file content as a ClosedLoop MCP artifact. Two modes:
Script mode (preferred) — uses a standalone Python script that reads the
file and calls MCP directly over Streamable HTTP. No conversation context
consumed for file content. Requires CLOSEDLOOP_API_KEY and
NEXT_PUBLIC_MCP_SERVER_URL to already be present in the current shell
environment.
MCP fallback — reads the file into context and calls mcp__closedloop__create-document
directly. Uses Claude Code's existing MCP auth. Used when the required
script-mode environment variables are not available.
Follow these steps in order:
Read these values from the current shell environment. Do not read, source, or
otherwise rely on a .env.local file in the current working directory:
CLOSEDLOOP_API_KEY — the API key (starts with sk_live_)NEXT_PUBLIC_MCP_SERVER_URL — the MCP server URLIf both exist → use script mode (Steps 2a–5a). If either variable is missing → use MCP fallback (Steps 2b–5b).
Run the script with --list-projects:
uv run --with 'mcp[cli]>=2,<3' ${CLAUDE_SKILL_DIR}/scripts/upload_artifact.py \
--url "$NEXT_PUBLIC_MCP_SERVER_URL" \
--api-key "$CLOSEDLOOP_API_KEY" \
--list-projectsParse the JSON output. Extract the items array. Each item has id and name.
Use AskUserQuestion to present the projects to the user:
If only one project exists, skip the question and use it automatically.
Use AskUserQuestion to collect any parameters the user hasn't already specified:
Only ask for parameters the user hasn't already specified. For example, if they said "upload /tmp/my-prd.txt as a PRD", you already have the file path and type — only ask for the title.
uv run --with 'mcp[cli]>=2,<3' ${CLAUDE_SKILL_DIR}/scripts/upload_artifact.py \
--url "$NEXT_PUBLIC_MCP_SERVER_URL" \
--api-key "$CLOSEDLOOP_API_KEY" \
--file <FILE_PATH> \
--title "<TITLE>" \
--type <TYPE> \
--project-id <PROJECT_ID>Add --verify if the user requested verification or if testing limits.
Add --artifact-id <ID_OR_SLUG> instead of --title/--type/--project-id
when creating a new version of an existing document. The flag accepts a UUID
or a user-facing slug (PRD-*, PLN-*, FEA-*); the server resolves it.
Parse the JSON output and report to the user:
PLN-376) and ID--verify was used)Call mcp__closedloop__list-projects to get available projects.
Use AskUserQuestion to let the user pick a project (skip if only one).
Same as Step 3a — use AskUserQuestion for any missing file_path, title, or type.
Read the file content with the Read tool, then call:
mcp__closedloop__create-document for new documents (pass title, type,
content, and projectId). type is one of PRD, IMPLEMENTATION_PLAN,
FEATURE, or TEMPLATE.mcp__closedloop__create-document-version for new versions (pass
documentId and content). documentId accepts a UUID or a user-facing
slug (PRD-*, PLN-*, FEA-*).Note: the file content will be loaded into conversation context in this mode.
Report the document slug (PRD-*, PLN-*, FEA-*) and ID from the MCP tool response.
| Flag | Required | Description |
|---|---|---|
--url | No | MCP server URL (default: http://localhost:3010/mcp) |
--api-key | Yes | ClosedLoop API key (sk_live_...) |
--list-projects | No | List projects and exit |
--file | Upload | Path to content file |
--title | Create | Document title |
--type | Create | PRD, IMPLEMENTATION_PLAN, FEATURE, or TEMPLATE |
--project-id | No | Project ID or slug (PRO-*) |
--workstream-id | No | Workstream ID or slug (WRK-*) |
--artifact-id | Version | Existing document ID or slug (PRD-*/PLN-*/FEA-*) for new version |
--verify | No | Fetch back after upload and compare lengths |
© closedloop-ai, 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 1 other file (scripts) in plugins/platform/skills/upload-artifact of closedloop-ai/claude-plugins.
Open the folder on GitHubat commit 476b54c
Upload 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 |
|---|---|---|---|---|---|---|
| Upload Artifact this skillclosedloop-ai/claude-plugins | 122 | — | ~1.4k | Automated safety check: Notes | Apache-2.0 | |
| Discoveranombyte93/prd-taskmaster | 604 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Handoffanombyte93/prd-taskmaster | 604 | — | ~5k | Automated safety check: Pass | MIT | |
| Notion Spec To ImplementationJetBrains/skills | 364 | 5 repos | ~904 | Automated safety check: Pass | MIT | |
| Codex with ChatGPT Planning LoopXiaoDuoYa/codex-with-chatgpt | 7.1k | — | ~11k | Automated safety check: Notes | MIT | |
| Agentic Tool Integrationsamugit83/redamon | 3k | — | ~1.3k | Automated safety check: Pass | MIT |
anombyte93/prd-taskmaster
Phase 1 of the prd-taskmaster pipeline: brainstorm-driven discovery.
anombyte93/prd-taskmaster
Phase 3 of the prd-taskmaster pipeline: smart mode selection and user handoff.
JetBrains/skills
Turn Notion specs into implementation plans, tasks, and progress tracking; use when implementing PRDs/feature specs and creating Notion plans + tasks from them.
XiaoDuoYa/codex-with-chatgpt
Uses ChatGPT in the browser as the planning and review brain for a Codex session, with Codex keeping all execution and ChatGPT reading the workspace through a bridge.
samugit83/redamon
Wiring a new tool the AI agent can call (not the recon pipeline): the tool registry, the phase map, the hardcoded dispatch chokepoint, and the duplicated execution paths that make a tool work in…
jpicklyk/task-orchestrator
Interactive onboarding for the MCP Task Orchestrator. An agent skill from jpicklyk/task-orchestrator.
closedloop-ai/claude-plugins
Run Codex to review a plan file and return structured feedback with a verdict.
closedloop-ai/claude-plugins
Check if critic reviews are still valid before re-running Phase 2.5 critics.
closedloop-ai/claude-plugins
Check if cross-repo coordinator results can be reused, avoiding redundant Sonnet agent launches.
closedloop-ai/claude-plugins
Check for a cached plan-evaluation.json result before launching the plan-evaluator agent.
closedloop-ai/claude-plugins
This skill should be used when needing to locate files within the Claude Code plugins cache directory (~/.claude/plugins/cache).
closedloop-ai/claude-plugins
Start a detached GitHub pull-request monitor that wakes the exact launching Codex Desktop or CLI root through the managed Codex App Server when review, CI, conflict, merge-queue, closure, readiness…
Works with
Upload a file as a ClosedLoop document (PRD, implementation plan, feature, or template). Upload Artifact is an agent skill from closedloop-ai/claude-plugins. Upload a file as a ClosedLoop document (PRD, implementation plan, feature, or template).
Upload Artifact fits situations like: : upload artifact; upload implementation plan; create artifact from file; save as artifact.
Run `npx skills add closedloop-ai/claude-plugins --skill upload-artifact -a claude-code`. Or copy the skill folder (plugins/platform/skills/upload-artifact in closedloop-ai/claude-plugins) into .claude/skills/upload-artifact in your project. Claude Code loads it when a task matches its description.
Run `npx skills add closedloop-ai/claude-plugins --skill upload-artifact -a codex`. Or copy the skill folder (plugins/platform/skills/upload-artifact in closedloop-ai/claude-plugins) into .agents/skills/upload-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 closedloop-ai/claude-plugins --skill upload-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/upload-artifact, .gemini/skills/upload-artifact, .github/skills/upload-artifact and .opencode/skills/upload-artifact in your project.
Going by SKILL.md and its folder, Upload Artifact needs Python for the scripts in its folder, the command-line tools its instructions call (uv) and credentials named CLOSEDLOOP_API_KEY. Our summary lists: Python 3; A credential in CLOSEDLOOP_API_KEY. Its frontmatter pre-approves these tools: Bash, Read, AskUserQuestion, mcp__closedloop__create-document, mcp__closedloop__create-document-version, mcp__closedloop__list-projects.
SKILL.md contains no URLs. Its commands use uv, 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 found notes only (mentions a .env file; pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Upload 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 1.4k tokens (SKILL.md is roughly 5.5k 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 Upload Artifact: Discover (anombyte93/prd-taskmaster, 604 stars), Handoff (anombyte93/prd-taskmaster, 604 stars), Notion Spec To Implementation (JetBrains/skills, 364 stars) and Codex with ChatGPT Planning Loop (XiaoDuoYa/codex-with-chatgpt, 7.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
closedloop-ai (a GitHub organization) maintains it in closedloop-ai/claude-plugins, which has 122 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on October 7, 2026.
Source: closedloop-ai/claude-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.