plugins/utils/skills/scaffold-extension/SKILL.md
Create a new extension package inside an existing framework's extensions/ directory
npx skillsauth add jmagly/aiwg scaffold-extensionInstall 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.
Create a new extension package inside an existing framework's extensions/ directory.
Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):
python, scaffold in sdlc-complete| Pattern | Example | Action |
|---------|---------|--------|
| Named scaffold | "scaffold extension python --to sdlc-complete" | Scaffold directly |
| Language extension | "add Go support to sdlc-complete" | Derive name=go, confirm |
| Interactive | "scaffold extension --interactive --to sdlc-complete" | Guided design mode |
| Target omitted | "scaffold extension typescript" | Ask which framework |
Extensions are language- or ecosystem-specific capability packages nested inside a framework. They augment framework agents and rules with toolchain-specific knowledge. Examples:
| Extension | Framework | Provides |
|-----------|-----------|---------|
| python/ | sdlc-complete | Python testing patterns, type hint rules, pip/poetry guidance |
| javascript/ | sdlc-complete | npm/pnpm workflows, ESLint integration, Jest patterns |
| github/ | sdlc-complete | GitHub Actions, PR review workflows, release automation |
| terraform/ | sdlc-complete | IaC patterns, state management, plan review agents |
Extensions differ from addons:
Extensions cannot contain skills (skills require standalone functionality). They contain agents, rules, and templates scoped to their ecosystem.
Extract from $ARGUMENTS:
<name> — kebab-case extension name (required; often a language or ecosystem name)--to <framework> — parent framework directory name (required)--description "<text>" — short description (optional)--interactive — enable guided design questionsIf either <name> or --to is missing, ask before proceeding.
Confirm the parent framework exists:
ls agentic/code/frameworks/<framework>/
Check if an extensions/ directory exists; if not, it will be created.
Check for name conflicts:
ls agentic/code/frameworks/<framework>/extensions/ 2>/dev/null
Ask before generating:
python-test-engineer, go-module-auditor)aiwg scaffold-extension <name> --to <framework> [--description "..."]
manifest.json — The extension's registry entry:
{
"name": "<name>",
"version": "1.0.0",
"description": "<ecosystem-specific capabilities>",
"parentFramework": "<framework>",
"agents": [],
"rules": [],
"templates": []
}
README.md — Document the ecosystem targeted, capabilities provided, and activation conditions.
After scaffold:
# Add ecosystem-specific agent
aiwg add-agent <name>-specialist --to <framework>/extensions/<name>
# Note: --to path traversal not yet supported; create agent file directly
# Create agent file
# <framework>/extensions/<name>/agents/<role>.md
# Create rules
# <framework>/extensions/<name>/rules/<rule-id>.md
# Create templates
# <framework>/extensions/<name>/templates/<template>-template.md
Ensure the parent framework's manifest references the extension:
{
"extensions": ["existing-extension", "<name>"]
}
The CLI tool handles this automatically.
agentic/code/frameworks/<framework>/extensions/<name>/
├── README.md # Extension documentation
├── manifest.json # Extension configuration
├── agents/ # Ecosystem-specific agent definitions
├── rules/ # Ecosystem-specific rule files
└── templates/ # Ecosystem-specific document templates
Parent framework manifest updated: agentic/code/frameworks/<framework>/manifest.json
Extension Created: <name>
─────────────────────────
Location: agentic/code/frameworks/<framework>/extensions/<name>/
Parent: <framework>
Created:
✓ README.md
✓ manifest.json
✓ agents/
✓ rules/
✓ templates/
Parent manifest updated: <framework>/manifest.json
Next Steps:
1. Edit README.md with ecosystem description
2. Add ecosystem agents: create agents/<role>.md
3. Add ecosystem rules: create rules/<rule-id>.md
4. Add templates: create templates/<name>-template.md
5. Deploy parent: aiwg use <framework>
User: "scaffold extension python --to sdlc-complete"
Action:
aiwg scaffold-extension python --to sdlc-complete
Result: agentic/code/frameworks/sdlc-complete/extensions/python/ created with full structure. Parent manifest updated with "extensions": ["python"].
User: "create a GitHub Actions extension for sdlc-complete"
Extraction: name=github-actions, target=sdlc-complete
Action:
aiwg scaffold-extension github-actions --to sdlc-complete \
--description "GitHub Actions workflow generation and PR automation"
User: "scaffold extension --interactive --to sdlc-complete"
Process: Guided questions identify ecosystem (e.g., Terraform), capabilities, agents (infrastructure-reviewer, plan-analyzer), and rules (state-management, variable-validation).
data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.