save-artifact

Save AI-generated artifacts with standardized timestamped filenames and ticket-scoped directory paths.

1|1|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/williamthorsen/codeassembly --skill save-artifact-williamthorsen
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: save-artifact
Source: https://github.com/williamthorsen/codeassembly/tree/main/packages/agents/content/skills/save-artifact
Command: npx skills add https://github.com/williamthorsen/codeassembly --skill save-artifact-williamthorsen

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? AI-generated artifacts like reviews, plans, and devlogs end up scattered with inconsistent filenames, making them hard to locate and organize across tickets and sessions. This Skill enforces a single naming and path convention so every artifact lands in a predictable location. ## Core Features & Use Cases - Standardized filename formats: Generates ticket-level names ({timestamp}_{slug}_{artifact-type}.md) and run-artifact names for interactive ({timestamp}_{role}_{artifact}.md) and orchestrated ({NN}_{role}_{artifact}.md) review workflows. - Session-aware path resolution: Invokes the derive-session-context script to obtain artifact_base_dir, project_slug, and ticket_id, then resolves ticket-scoped or category-based (chats, devlogs, plans) directories, creating them when missing. - Slug generation: Produces filesystem-safe kebab-case slugs by reusing existing ticket slugs, deriving from explicit titles, branch names, or recent commit themes. - Use Case: After finishing a code review, save the review notes as 20240115-143022Z_reviewer_review.md under the correct ticket directory without manually deciding on a name or folder. ## Quick Start Save this review summary as an artifact for the current ticket using the standard naming conventions.

Frequently Asked Questions about save-artifact

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I name AI-generated artifact files consistently?

Use the format `{timestamp}_{slug}_{artifact-type}.md` for ticket-level artifacts, where the timestamp is UTC in `YYYYMMDD-HHMMSSZ` format and the slug is a kebab-case descriptor. Run artifacts use `{timestamp}_{role}_{artifact}.md` or a sequence-prefixed variant in orchestrated runs.

How do I generate a filesystem-safe slug for a file?

First reuse the slug of existing artifacts in the ticket directory, then fall back to an explicit title converted to kebab-case, the branch name after the ticket ID, or recent commit themes. The result must be lowercase kebab-case with no leading or trailing hyphens.

Where are artifacts saved in a ticket-based workflow?

Artifacts are saved under `{artifact_base_dir}/projects/{project_slug}/tickets/{ticket_id}/`, resolved by running the derive-session-context script. Non-ticket categories like chats, devlogs, and plans use category paths relative to the project directory.

Who manages sequence numbers in orchestrated review runs?

The orchestrate engine exclusively manages the two-digit sequence numbers (`01` through `99`) in orchestrated runs. Individual skills never manage sequence numbers or write to `run-index.json` directly.

When are devlogs saved as ticket-level artifacts instead of category paths?

Devlogs and deferred-findings artifacts use their non-ticket category paths only as a fallback. When a ticket is present in the session context, they are written as ticket-level artifacts under `tickets/{ticket_id}/` instead.