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
211200 skills199 agents26 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

Reusable project context and specialist workflows for the AI tools you already use. Plan software, coordinate specialist reviews, prepare campaigns, investigate incidents, organize research, curate media, and maintain operational knowledge.

Get the whole plugin

Other skills on aiwg.