Skip to content
Development
Skill

/scaffold-extension

Create a new extension package inside an existing framework's extensions/ directory. Use when authoring an expansion (extension) for AIWG.

From plugin
aiwg
176200 skills199 agents23 commands
Install
$ npx -y skills add jmagly/aiwg --skill scaffold-extension --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/scaffold-extension

Context preview

The summary Claude sees to decide when to auto-load this skill.

Create a new extension package inside an existing framework's extensions/ directory. Use when authoring an expansion (extension) for AIWG.

SKILL.md

scaffold-extension.SKILL.md
namespace: aiwg
name: scaffold-extension
platforms: [all]
description: Create a new extension package inside an existing framework's extensions/ directory. Use when authoring an expansion (extension) for AIWG.
triggers:
  - author an expansion
  - build an extension
  - create an extension package
  - expansion authoring
  - scaffold extension
  - new expansion

Scaffold Extension

Create a new extension package inside an existing framework's `extensions/` directory.

Triggers

Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):

  • "I need a new extension" → scaffold extension in specified framework
  • "create an extension package" → prompt for name and parent framework
  • "add Python support to sdlc-complete" → derive name=`python`, scaffold in sdlc-complete
  • "new language extension" → clarify name and framework, scaffold

Trigger Patterns Reference

| 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 |

Understanding Extensions

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**: Nested within a specific framework, language/ecosystem-scoped
  • **Addons**: Standalone, cross-cutting, installed alongside any framework

Extensions cannot contain skills (skills require standalone functionality). They contain agents, rules, and templates scoped to their ecosystem.

Process

1. Parse Arguments

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 questions

If either `<name>` or `--to` is missing, ask before proceeding.

2. Validate Parent Framework

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

3. Interactive Design (if --interactive)

Ask before generating:

1. **Ecosystem**: What language, platform, or ecosystem does this extension target? 2. **Capabilities**: What ecosystem-specific capabilities does it add? (linting rules, test patterns, deployment agents) 3. **Agents**: What specialist agents should be scaffolded? (e.g., `python-test-engineer`, `go-module-auditor`) 4. **Rules**: What ecosystem-specific rules should be defined? (e.g., type safety, package management) 5. **Templates**: What ecosystem-specific document templates are needed?

4. Run Scaffolding

aiwg scaffold-extension <name> --to <framework> [--description "..."]

5. Customize Generated Files

**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.

6. Add Ecosystem-Specific Components

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

7. Register with Parent Framework

Ensure the parent framework's manifest references the extension:

{
  "extensions": ["existing-extension", "<name>"]
}

The CLI tool handles this automatically.

Generated Structure

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`

Output Format

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>

Examples

Example 1: Language extension

**User**: "scaffold extension python --to sdlc-complete"

**Action**:

aiwg scaffold-extension python --to sdlc-complete

**Result**: `agentic/code/f

Read more
Ships withaiwg

Multi-agent AI framework for Claude Code, Copilot, Cursor, Warp, and 6 more platforms 200+ agents, 109+ CLI commands, 400+ deployable agent/skill/command/rule artifacts, 8 core frameworks, 32 addons, and a 40-plugin Claude Code marketplace.

Get the whole plugin