Manage artifact metadata, versioning, ownership, and history tracking.
Tracks artifact versioning, ownership, status, and history in metadata.json files. Use when updating artifact metadata, recording reviews, checking ownership, or querying artifact status and version history.
/plugin marketplace add jmagly/ai-writing-guide/plugin install utils@aiwgThis skill inherits all available tools. When active, it can use any tool Claude has access to.
scripts/artifact_metadata.pyManage artifact metadata, versioning, ownership, and history tracking.
This skill provides consistent metadata management for all SDLC and marketing artifacts. It tracks ownership, versioning, review history, and status across the artifact lifecycle.
When triggered, this skill:
Locates or creates metadata:
metadata.json alongside artifactUpdates metadata fields:
Tracks history:
Validates relationships:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": ["artifact_id", "name", "type", "version", "status", "owner"],
"properties": {
"artifact_id": {
"type": "string",
"description": "Unique identifier (e.g., SAD-001, UC-003)"
},
"name": {
"type": "string",
"description": "Human-readable artifact name"
},
"type": {
"type": "string",
"enum": ["requirements", "architecture", "test", "security", "deployment", "marketing", "report"]
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Semantic version"
},
"status": {
"type": "string",
"enum": ["draft", "review", "approved", "baselined", "deprecated"]
},
"owner": {
"type": "string",
"description": "Primary owner (agent name or user)"
},
"created": {
"type": "string",
"format": "date-time"
},
"modified": {
"type": "string",
"format": "date-time"
},
"baselined": {
"type": "string",
"format": "date-time"
},
"reviewers": {
"type": "array",
"items": {"type": "string"}
},
"history": {
"type": "array",
"items": {
"type": "object",
"properties": {
"version": {"type": "string"},
"date": {"type": "string", "format": "date-time"},
"author": {"type": "string"},
"summary": {"type": "string"}
}
}
},
"reviews": {
"type": "array",
"items": {
"type": "object",
"properties": {
"reviewer": {"type": "string"},
"date": {"type": "string", "format": "date-time"},
"outcome": {"type": "string", "enum": ["approved", "conditional", "rejected"]},
"comments": {"type": "string"}
}
}
},
"traceability": {
"type": "object",
"properties": {
"requirements": {"type": "array", "items": {"type": "string"}},
"parent": {"type": "string"},
"children": {"type": "array", "items": {"type": "string"}}
}
},
"tags": {
"type": "array",
"items": {"type": "string"}
}
}
}
User: "Create metadata for the SAD"
Skill creates:
.aiwg/architecture/sad/metadata.json
{
"artifact_id": "SAD-001",
"name": "Software Architecture Document",
"type": "architecture",
"version": "0.1.0",
"status": "draft",
"owner": "architecture-designer",
"created": "2025-12-08T14:30:00Z",
"modified": "2025-12-08T14:30:00Z",
"reviewers": [],
"history": [],
"reviews": []
}
User: "Version the SAD to 1.0.0 with summary 'Initial baseline'"
Skill updates:
- version: "1.0.0"
- status: "baselined"
- baselined: "2025-12-08T16:45:00Z"
- history: [adds entry with version, date, summary]
User: "Record security-architect review as approved"
Skill updates:
- reviews: [adds review record]
- reviewers: [adds "security-architect" if not present]
- modified: [updates timestamp]
User: "Who owns the test plan?"
Skill responds:
"Test Plan (TP-001) is owned by test-architect.
Status: review
Version: 0.3.0
Last modified: 2025-12-07
Reviewers: security-auditor, requirements-analyst"
draft → review → approved → baselined
↑ ↓
└── rejected (returns to draft)
baselined → deprecated (end of life)
| From | To | Triggered By |
|---|---|---|
| draft | review | Submit for review |
| review | approved | All reviewers approve |
| review | draft | Any reviewer rejects |
| approved | baselined | Formal baseline action |
| baselined | deprecated | Superseded or retired |
| Change Type | Version Bump |
|---|---|
| Typo fix | patch (0.0.x) |
| Section update | minor (0.x.0) |
| Structure change | major (x.0.0) |
| Initial baseline | 1.0.0 |
| Type | ID Prefix | Location |
|---|---|---|
| requirements | UC-, REQ-, NFR- | .aiwg/requirements/ |
| architecture | SAD-, ADR-, API- | .aiwg/architecture/ |
| test | TP-, TC-, TS- | .aiwg/testing/ |
| security | TM-, SEC- | .aiwg/security/ |
| deployment | DP-, RN- | .aiwg/deployment/ |
| marketing | CB-, CA- | .aiwg/marketing/ |
| report | RPT- | .aiwg/reports/ |
# Create metadata for artifact
python artifact_metadata.py --create --artifact ".aiwg/architecture/sad.md" --type architecture
# Update version
python artifact_metadata.py --version "1.0.0" --artifact ".aiwg/architecture/sad.md" --summary "Initial baseline"
# Record review
python artifact_metadata.py --review --artifact ".aiwg/architecture/sad.md" \
--reviewer "security-architect" --outcome "approved" --comments "LGTM"
# Query metadata
python artifact_metadata.py --query --artifact ".aiwg/architecture/sad.md"
# List all artifacts by status
python artifact_metadata.py --list --status "review"
# Validate all metadata
python artifact_metadata.py --validate-all
This skill integrates with:
artifact-orchestration: Sets initial metadata when creating artifactsgate-evaluation: Checks artifact status for gate criteriatraceability-check: Uses traceability links in metadatatemplate-engine: Copies metadata template on instantiation{artifact-dir}/metadata.json{artifact-dir}/{artifact-name}.metadata.json.aiwg/reports/artifact-index.jsonschemas/artifact-metadata.schema.jsonThis skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.