Skip to main content

artifact-lifecycle

Report on skill and agent usage data from ~/.claude/metrics/artifact-usage.json, classifying each artifact as active, stale (>= 30 days unused), or an archive candidate (>= 90 days unused). Proposes CLAUDE.md overrides for stale artifacts and exclusions for archive candidates. Pinned skills are always exempt. Use when the user asks to "review artifact lifecycle", "find stale skills", or "/artifact-lifecycle".

Source facts

Repository
bdfinst/agentic-dev-team
Last source activity
July 25, 2026 at 19:15
Detected SKILL.md language
English
Stars
299
Forks
36

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
artifact-lifecycle
description
Report on skill and agent usage data from ~/.claude/metrics/artifact-usage.json, classifying each artifact as active, stale (>= 30 days unused), or an archive candidate (>= 90 days unused). Proposes CLAUDE.md overrides for stale artifacts and exclusions for archive candidates. Pinned skills are always exempt. Use when the user asks to "review artifact lifecycle", "find stale skills", or "/artifact-lifecycle".
user-invocable
true
allowed-tools
Read, Glob, Bash(date *), Write
# Artifact Lifecycle Management Role: worker. Reads `~/.claude/metrics/artifact-usage.json`, classifies each tracked artifact by recency, and proposes lifecycle transitions. **Never modifies files under `plugins/dev-team/`** — changes land exclusively in the project `CLAUDE.md`. You have been invoked with the `/artifact-lifecycle` command. ## Steps ### 1. Check for usage data Read `~/.claude/metrics/artifact-usage.json` (home-scoped — never a project-scoped path). If the file does not exist, output: > No usage data available — enable telemetry to begin tracking (see /telemetry) Then stop. Do not produce a report. ### 2. Load pinned skills Read the project `CLAUDE.md` (or `.claude/CLAUDE.md`). Extract the list of skill names under the `## Pinned Skills` section (if present). These names are exempt from all lifecycle transitions regardless of `last_used_at`. ### 3. Classify artifacts Get the current date: ```bash date -u +%Y-%m-%d ``` For each entry in `~/.claude/metrics/artifact-usage.json`, compute `days_since_used` as the number of calendar days between `last_used_at` and today: ```bash today=$(date -u +%s) last=$(date -u -d "<last_used_at>" +%s 2>/dev/null \ || python3 -c "import datetime; print(int(datetime.datetime.fromisoformat('<last_used_at>'.replace('Z','+00:00')).timestamp()))") days_since_used=$(( (today - last) / 86400 )) ``` Apply thresholds (both are inclusive): | Threshold | Classification | |-----------|----------------| | `days_since_used < 30` | **active** | | `days_since_used >= 30` and `< 90` | **stale** | | `days_since_used >= 90` | **archive candidate** | Skip any artifact whose name appears in the Pinned Skills list. ### 4. Produce report #### All active If every artifact has `days_since_used < 30` (and none are stale or archived): > All tracked artifacts are active — no lifecycle changes needed. Stop. #### Stale and archive sections Otherwise, produce a report with the following sections (only include sections that have entries): ```markdown ## Stale Skills (>= 30 days unused) These skills have not been observed in telemetry for 30 or more days. Proposal: add each to `## Disabled Skills` in CLAUDE.md to stop loading them until re-enabled. | Skill | Last used | Days since used | |-------|-----------|----------------| | <name> | <last_used_at> | <n> | ## Archive Candidates (>= 90 days unused) These skills have not been observed for 90 or more days and are candidates for permanent removal from the active set. | Skill | Last used | Days since used | |-------|-----------|----------------| | <name> | <last_used_at> | <n> | ``` ### 5. Propose CLAUDE.md changes (interactive) For each Stale Skill, offer to add it to the `## Disabled Skills` section in the project `CLAUDE.md`. Show the proposed edit as a diff before applying. Do **not** remove or modify any files under `plugins/dev-team/` (the plugin cache). All writes go exclusively to the project `CLAUDE.md`. For Archive Candidates, present the list for human decision — do not auto-apply. ### Pinned skills note If any artifacts were skipped because they appear in `## Pinned Skills`, note them separately: > Pinned (excluded from all lifecycle transitions): <names> ## Constraints - **Never delete or modify** files under `plugins/dev-team/` during or after execution. All lifecycle changes land exclusively in the project `CLAUDE.md`. - Report is advisory; no configuration change is applied without user approval. - If `~/.claude/metrics/artifact-usage.json` contains entries with missing or unparseable `last_used_at`, log a warning and skip those entries.
View on GitHub