scaffold-addon
Create a complete addon package structure inside agentic/code/addons/
What this skill does
# Scaffold Addon
Create a complete addon package structure inside `agentic/code/addons/`.
## Triggers
Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):
- "I need a new addon" → scaffold addon with given name
- "create an addon package" → prompt for name, scaffold
- "build a new AIWG addon" → prompt for name and description
- "new feature bundle" → clarify as addon, prompt for name
## Trigger Patterns Reference
| Pattern | Example | Action |
|---------|---------|--------|
| Named scaffold | "scaffold addon security-scanner" | Scaffold directly |
| Interactive | "scaffold addon --interactive" | Guided design mode |
| Description-driven | "create an addon for Python linting" | Derive name=`python-lint`, confirm |
| With description | "scaffold addon metrics --description 'Cost and token tracking'" | Scaffold with description pre-set |
## Understanding Addons
Addons are self-contained feature bundles that extend AIWG without belonging to a specific lifecycle framework. Examples:
| Addon | Purpose |
|-------|---------|
| `aiwg-utils` | Core meta-utilities (this addon) |
| `voice-framework` | Voice profiles and writing style enforcement |
| `testing-quality` | Test quality validation agents |
| `rlm` | Reflection-learning memory patterns |
| `ring-methodology` | Ring-based development methodology |
Addons differ from frameworks:
- **Addons**: Cross-cutting feature bundles, installed alongside frameworks
- **Frameworks**: Complete lifecycle management systems (sdlc-complete, media-marketing-kit)
## Process
### 1. Parse Arguments
Extract from `$ARGUMENTS`:
- `<name>` — kebab-case addon name (required)
- `--description "<text>"` — short description (optional; prompted if absent)
- `--author "<name>"` — author name (optional)
- `--interactive` — enable guided design questions
- `--core` — mark as core addon (auto-installed with every AIWG install)
If `<name>` is missing, ask before proceeding.
### 2. Validate Name
- Must be kebab-case (lowercase letters and hyphens only)
- Must not conflict with existing addons:
```bash
ls agentic/code/addons/
```
If conflict found, report existing addons and stop.
### 3. Interactive Design (if --interactive)
Ask before generating:
1. **Purpose**: What is the primary purpose of this addon? (1-2 sentences)
2. **Capabilities**: What specific capabilities will it provide? (list)
3. **Target users**: Who benefits from this addon? (developers, architects, writers)
4. **Core status**: Should this auto-install with every AIWG installation?
5. **Initial agents**: Should starter agent files be scaffolded?
6. **Initial skills**: Should starter skill directories be scaffolded?
7. **Initial rules**: Should starter rule files be scaffolded?
### 4. Run Scaffolding
```bash
aiwg scaffold-addon <name> [--description "..."] [--author "..."]
```
### 5. Customize Generated Files
**manifest.json** — The addon's registry entry:
```json
{
"name": "<name>",
"version": "1.0.0",
"description": "<description>",
"author": "<author>",
"core": false,
"autoInstall": false,
"agents": [],
"commands": [],
"skills": [],
"rules": [],
"templates": [],
"behaviors": []
}
```
**README.md** — Document the addon's purpose, capabilities, and usage.
### 6. Add Initial Components (if interactive)
After scaffold, offer to create starter components:
```bash
# Add a starter agent
aiwg add-agent <role> --to <name>
# Add a starter skill
aiwg add-skill <capability> --to <name>
# Add a starter rule
# (create manually: <name>/rules/<rule-id>.md)
```
### 7. Verify Structure
```bash
ls agentic/code/addons/<name>/
```
All required files must be present before deploying.
## Generated Structure
```
agentic/code/addons/<name>/
├── README.md # Addon documentation
├── manifest.json # Addon configuration and component registry
├── agents/ # Agent definitions (.md files)
├── skills/ # Skill definitions (<skill>/SKILL.md)
├── rules/ # Rule files (.md files)
└── templates/ # Document templates
```
## Output Format
```
Addon Created: <name>
─────────────────────
Location: agentic/code/addons/<name>/
Created:
✓ README.md
✓ manifest.json
✓ agents/
✓ skills/
✓ rules/
✓ templates/
Next Steps:
1. Edit README.md with addon purpose and usage
2. Update manifest.json (description, author, core flag)
3. Add agents: aiwg add-agent <name> --to <addon>
4. Add skills: aiwg add-skill <name> --to <addon>
5. Add rules: create <addon>/rules/<rule-id>.md
6. Deploy: aiwg use <addon>
7. Validate: aiwg validate-metadata
```
## Examples
### Example 1: Simple addon
**User**: "scaffold addon security-scanner"
**Action**:
```bash
aiwg scaffold-addon security-scanner
```
**Result**: `agentic/code/addons/security-scanner/` created with full directory structure and empty manifests.
### Example 2: Addon with description
**User**: "create a new addon package called cost-tracking with description 'Token usage and cost monitoring'"
**Action**:
```bash
aiwg scaffold-addon cost-tracking --description "Token usage and cost monitoring"
```
### Example 3: Interactive guided creation
**User**: "scaffold addon --interactive"
**Process**: Guided questions establish purpose, capabilities, target users, core status, and initial components. Starter agents and skills scaffolded automatically based on answers.
## References
- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/skills/devkit-create-addon/SKILL.md — Devkit equivalent (interactive design)
- @$AIWG_ROOT/src/cli/handlers/scaffolding.ts — CLI handler implementation
- @$AIWG_ROOT/docs/cli-reference.md — Full CLI reference
- @$AIWG_ROOT/agentic/code/addons/ — Existing addon examples
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.