plugins/development-harness/skills/create-artifact/SKILL.md
Register a plan artifact via the MCP backlog server. Use when you produce a document or report that downstream agents or worktree-isolated environments need to retrieve — feature-context, codebase-analysis, architect, task-plan, T0-baseline, TN-verification, or research artifacts. Triggers include "store an artifact", "register a plan artifact", "write a report to the backlog", "upload artifact content".
npx skillsauth add jamie-bitflight/claude_skills create-artifactInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Register your deliverable using mcp__plugin_dh_backlog__artifact_register. This is the ONLY
correct storage path for plan artifacts. Do NOT use Write to disk and do NOT return content
inline.
~/.dh/... paths via filesystem — they must use
artifact_read(issue_number, artifact_type) over MCP.MCP-native storage uploads content to a GitHub issue comment where any agent — regardless of
worktree or environment — can retrieve it via artifact_read.
backlog_core/server.py:2385)mcp__plugin_dh_backlog__artifact_register(
issue_number=<int>, # GitHub issue number — REQUIRED
artifact_type=<str>, # Artifact type string — REQUIRED (see table below)
artifact_id=<str>, # Logical identifier — REQUIRED (see path format below)
status="current", # Lifecycle status: draft | current | superseded | archived
agent=<str>, # Name of the producing agent (default: "")
content=<str | None>, # Full artifact content — include this to store in GitHub
)
Return value: dict with keys registered (bool), artifact_count (int), action
("added" or "updated"), content_stored (bool), messages, warnings. Check action
in your STATUS: DONE report — do NOT paste the full content.
artifact_typeOne of the recognized type strings:
| artifact_type | Producing agent | When to use |
|---|---|---|
| feature-context | feature-researcher | Discovery document: WHO/WHAT/WHEN/WHY analysis |
| codebase-analysis | codebase-analyzer | Codebase pattern/architecture/testing documents |
| architect | python-cli-design-spec | Architecture spec with interfaces and contracts |
| task-plan | swarm-task-planner | SAM task plan — auto-registered by sam_plan(action='create', issue=N), do NOT register manually |
| T0-baseline | t0-baseline-capture | Pre-implementation baseline of acceptance criteria |
| TN-verification | tn-verification-gate | Post-implementation verification results |
| research | any research agent | Investigation findings, coverage analysis, rationale |
artifact_idLogical identifier for the artifact. Two valid formats:
plan/feature-context-{slug}.md, plan/architect-{slug}.mdcodebase-patterns-{slug},
codebase-architecture-{slug}, T0-baseline-{slug}, TN-verification-{slug}Use a logical id (not a path) when the agent stores content via content= without writing
a file to disk. Using a path that doesn't exist on disk causes a warning when content=None
and is misleading to artifact consumers.
Do NOT use ~/.dh/... paths — these are MCP-server internals, not stable agent interfaces.
contentPass the full markdown string. When content is provided, it is stored as a structured GitHub
issue comment retrievable via artifact_read(issue_number, artifact_type) from any environment.
When content is None: the server attempts to read a local file at artifact_id (resolved
against the root worktree). If no file exists, a manifest-only entry is registered and a warning
is emitted. For background-dispatched agents, always pass content= explicitly.
mcp__plugin_dh_backlog__artifact_register(
issue_number=1770,
artifact_type="feature-context",
artifact_id="plan/feature-context-my-feature.md",
content=feature_context_markdown,
agent="feature-researcher",
)
mcp__plugin_dh_backlog__artifact_register(
issue_number=1770,
artifact_type="codebase-analysis",
artifact_id="codebase-patterns-my-feature", # logical id: codebase-{focus}-{slug}
content=patterns_markdown,
agent="codebase-analyzer",
)
mcp__plugin_dh_backlog__artifact_register(
issue_number=1770,
artifact_type="codebase-analysis",
artifact_id="codebase-architecture-my-feature", # logical id: codebase-{focus}-{slug}
content=architecture_markdown,
agent="codebase-analyzer",
)
mcp__plugin_dh_backlog__artifact_register(
issue_number=1770,
artifact_type="architect",
artifact_id="plan/architect-my-feature.md",
content=architect_markdown,
agent="python-cli-design-spec",
)
sam_plan(action='create', issue=N) auto-registers this artifact. Do NOT call
artifact_register for task-plan — it creates a duplicate entry.
mcp__plugin_dh_backlog__artifact_register(
issue_number=1770,
artifact_type="research",
artifact_id="plan/swarm-rationale-my-feature.md",
content=rationale_markdown,
agent="swarm-task-planner",
)
Do NOT paste the full document content. Report only:
STATUS: DONE
ARTIFACT: type={artifact_type}, action={action}, content_stored={content_stored}, chars={len(content)}
Include a <concerns> block if quality issues were found during the work.
development
When an application needs to store config, data, cache, or state files. When designing where user-specific files should live. When code writes to ~/.appname or hardcoded home paths. When implementing cross-platform file storage with platformdirs.
testing
Enforce mandatory pre-action verification checkpoints to prevent pattern-matching from overriding explicit reasoning. Use this skill when about to execute implementation actions (Bash, Write, Edit) to verify hypothesis-action alignment. Blocks execution when hypothesis unverified or action targets different system than hypothesis identified. Critical for preventing cognitive dissonance where correct diagnosis leads to wrong implementation.
tools
Reference guide for the Twelve-Factor App methodology — 15 principles (12 original + 3 modern extensions) for building portable, resilient, cloud-native applications. Use when evaluating application architecture, designing cloud-native services, reviewing codebases for methodology compliance, advising on configuration, scaling, observability, security, and deployment patterns. Incorporates the 2025 open-source community evolution and cloud-native reinterpretations of each factor.
tools
Converts user-facing documentation (how-to guides, tutorials, API references, examples) in any format — Markdown, PDF, DOCX, PPTX, XLSX, AsciiDoc, RST, HTML, Jupyter notebooks, man pages, TOML/YAML/JSON configs, and plain text — into Claude Code skill directories with SKILL.md plus thematically grouped references/*.md files. Use when given a docs directory or mixed-format documentation to transform into an AI skill. Uses MCP file-reader server for binary formats.