3.9 KiB
3.9 KiB
artifact.scaffold
Generate new artifact templates automatically from metadata inputs.
Overview
The artifact.scaffold skill creates fully compliant artifact descriptors in one call. It generates valid .artifact.yaml files, assigns auto-incremented versions starting at 0.1.0, and registers artifacts in the artifacts registry.
Features
- Automatic Generation: Creates artifact YAML files from metadata inputs
- Schema Definition: Supports field definitions with types, descriptions, and required flags
- Inheritance: Supports extending from base artifacts
- Registry Management: Automatically registers artifacts in
registry/artifacts.json - Validation: Optional
--validateflag to validate generated artifacts - Version Management: Auto-assigns version 0.1.0 to new artifacts
Usage
Basic Example
python3 skills/artifact.scaffold/artifact_scaffold.py \
--id "new.artifact" \
--category "report"
With Field Definitions
python3 skills/artifact.scaffold/artifact_scaffold.py \
--id "new.artifact" \
--category "report" \
--fields '[{"name":"summary","type":"string","description":"Summary field","required":true}]'
With Inheritance and Validation
python3 skills/artifact.scaffold/artifact_scaffold.py \
--id "new.artifact" \
--category "report" \
--extends "base.artifact" \
--fields '[{"name":"summary","type":"string"}]' \
--validate
Custom Output Path
python3 skills/artifact.scaffold/artifact_scaffold.py \
--id "new.artifact" \
--category "report" \
--output "custom/path/artifact.yaml"
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
--id |
string | Yes | Unique identifier for the artifact (e.g., "new.artifact") |
--category |
string | Yes | Category/type of artifact (e.g., "report", "specification") |
--extends |
string | No | Base artifact to extend from |
--fields |
JSON array | No | Field definitions with name, type, description, and required properties |
--output |
string | No | Custom output path for the artifact file |
--validate |
flag | No | Validate the artifact after generation |
Field Definition Format
Fields are provided as a JSON array with the following structure:
[
{
"name": "field_name",
"type": "string|number|boolean|object|array",
"description": "Field description",
"required": true|false
}
]
Output
The skill outputs a JSON response with the following structure:
{
"ok": true,
"status": "success",
"artifact_id": "new.artifact",
"file_path": "/path/to/artifact.yaml",
"version": "0.1.0",
"category": "report",
"registry_path": "/path/to/registry/artifacts.json",
"artifacts_registered": 1,
"validation": {
"valid": true,
"errors": [],
"warnings": []
}
}
Generated Artifact Structure
The skill generates artifact YAML files with the following structure:
id: new.artifact
version: 0.1.0
category: report
created_at: '2025-10-26T00:00:00.000000Z'
metadata:
description: new.artifact artifact
tags:
- report
extends: base.artifact # Optional
schema:
type: object
properties:
summary:
type: string
description: Summary field
required:
- summary
Registry Management
Artifacts are automatically registered in registry/artifacts.json:
{
"registry_version": "1.0.0",
"generated_at": "2025-10-26T00:00:00.000000Z",
"artifacts": [
{
"id": "new.artifact",
"version": "0.1.0",
"category": "report",
"created_at": "2025-10-26T00:00:00.000000Z",
"description": "new.artifact artifact",
"tags": ["report"],
"extends": "base.artifact",
"schema": { ... }
}
]
}
Dependencies
artifact.define: For artifact type definitions and validation
Status
Active - Ready for production use
Tags
- artifacts
- scaffolding
- generation
- templates
- metadata