v2026.3.3

Previous release

AIWG v2026.3.3 — "Identity & Autonomous Systems"

Released: 2026-03-25 Type: Major feature release

This release ships across four capability areas: first-class agent identity (SOUL.md), an operational control layer for background orchestration (Mission Control + AIWG self-maintenance), a fully operational autonomous daemon, and a new reactive artifact type (Behaviors). It also promotes Hermes and OpenClaw to first-class deployment targets — OpenClaw being the first platform with native behaviors support. A comprehensive 15-article getting-started guide series rounds out the release.


Highlights

What changedWhy you care
SOUL.md — agent identity filesAgents now have persistent identity: worldview, opinions, character traits. Unlike voice profiles (how they speak), SOUL.md encodes what they believe and how they reason.
AIWG self-maintenance`aiwg sync` brings the installation current in one command. `aiwg mc` dispatches and monitors multiple parallel agent loops from a dashboard. AIWG Steward agent handles complex repairs.
Mission ControlMulti-loop background orchestration — start a session, dispatch missions, monitor all from a status dashboard, react to completions and failures without blocking the primary context.
Daemon — fully operational`aiwg daemon-init && aiwg daemon start`. Web UI at localhost:7474. YAML profiles, scheduled task runner, Telegram multi-room, autonomous engine with safety constraints, Docker containerization.
Behaviors — reactive artifact typeFifth artifact type: subscribe to system events (file writes, deploys, schedules) and react automatically. BEHAVIOR.md format spec, framework source dirs, `aiwg add-behavior` scaffolding, deploy to OpenClaw.
OpenClaw as first-class platform10th deployment target. First platform with behaviors support (`~/.openclaw/behaviors/`). `aiwg use sdlc --provider openclaw`.
Hermes as full platformHermes graduates from MCP sidecar to a first-class `--provider hermes` target. `aiwg use sdlc --provider hermes` deploys the full artifact set; 96 skills declare platform compatibility.
CLI UI modernizationShared display module with chalk/ora/cli-table3. Consistent progress indicators, brand mark, quiet mode for machine-readable JSON output. Every command benefits.
AIWG.md hook file architectureAIWG context decoupled from CLAUDE.md into a toggleable `AIWG.md`. CLAUDE.md shrinks from 488+ lines to a 12-line wrapper.
Agent constraint learning (#146)Agents learn domain rules from reviewer corrections. Recurring errors become versioned constraint proposals stored at `.aiwg/feedback/{agent}/`.
Grounding agents (#184)Four pre-built agents inject verified domain knowledge into reasoning chains — 40% domain accuracy improvement on specialized claims.
Hermes / MCP sidecar architectureToken-optimized templates, delegate_task skill, 5-tool whitelist (~3,000 token schema), two-model strategy for conversation + coding tasks.
Quality & metrics infrastructureToken-per-artifact tracking, budget management, pattern-based quality scoring, feedback A/B testing — 4 modules, 1,517 lines, full unit test coverage.
Model evaluation suite (#433, #488)Evaluate any Ollama or cloud model for AIWG compatibility across 6 dimensions. Now backed by `@matric/eval-client` — when the matric-eval binary is installed, standard benchmark scores (HumanEval, GSM8K, etc.) are included alongside AIWG-specific dimension scores.
YAML metalanguage schemas (#447)JSON Schema definitions for flow, agent, rule, and skill YAML — foundation for 40–60% token reduction.
Hybrid artifact addressing (#187)Reference artifacts by path or semantic URN — `@path`, `@?"query"`, `@#tags`, `@phase:type`.
Verbalized sampling addonDiversity addon for generating varied, non-repetitive output. Content-diversifier agent, 3 prompt strategies, diversity-awareness rule.
Native UX tools rule (#448)Agents prefer platform-native interaction tools (e.g., AskUserQuestion) over plain text output. Includes platform capability matrix.
Local/Ollama as first-class providerOllama on equal footing with cloud providers; local model support documented (#434).
Factory $ARGUMENTS fix (#454)Deploy-time injection ensures Factory commands receive user input. Static-only execution silently dropped input before.
Composable RULES-INDEX hierarchy (#496–#500)Rules indexes are now component-owned. Each addon ships its own `rules/RULES-INDEX.md`; the CLI assembles them into a single deployed index at `aiwg use` time. Addon authors no longer edit files they don't own.
ops-complete framework (#491)Operational infrastructure framework with YAML-native artifact design (Kubernetes envelope, `spec:`/`status:` split, no template syntax). Four extensions: `sys` (fleet/hardware), `it` (CMDB/DR), `dev` (CI/CD), `stream` (streaming). `aiwg use ops --ext sys,it,dev,stream`
Getting-started guide series15 scenario-based guides written in user vocabulary. Seven situation guides, five framework guides, key-addons overview, and a complete flow/gate/sdlc-accelerate reference.
README overhaulSEO-optimized project homepage with full six-component deep dive, 90+ research citations sorted by evidence quality, corrected nav anchors, and linked platform entries.
Skills, config, and ops CLI subsystemsThree new typed source modules: provider-agnostic `aiwg skills` registry (local/clawhub/openclaw adapters), user-level `aiwg config` management (`~/.aiwg` / XDG resolution), and `aiwg ops` workspace registry (`ops.yaml`). Full unit test coverage.

ops-complete Framework

A new framework purpose-built for operational infrastructure — the base layer for sysops, itops, devops, and streamops workflows in AIWG.

Deploy

# Base framework only
aiwg use ops

# With extensions
aiwg use ops --ext sys          # + per-host fleet ops
aiwg use ops --ext sys,it,dev   # Classic trio
aiwg use ops --ext sys,it,dev,stream  # Full stack

YAML-Native Design

ops-complete is the first AIWG framework built natively on the YAML metalanguage. Every ops artifact is a schema-validated YAML document using a Kubernetes-inspired envelope:

apiVersion: ops.aiwg.io/v1
kind: OpsPlaybook
metadata:
  name: deploy-auth-stack
  namespace: production
spec:
  # Desired state (kind-specific)
status:
  # Observed state (executor-written only)

The `spec:`/`status:` split is intentional: agents write desired state, executors write observed state. The two never mix.

Kind Vocabulary

KindPurposeInspired by
`OpsInventory`Fleet topology: groups, hosts, cascading variablesAnsible inventory
`OpsCapability`Reusable automation unit with I/O contract and rollbackAnsible role + Terraform
`OpsPlaybook`DAG of capability invocations with `depends_on` and retryArgo Workflows + GitHub Actions
`OpsGate`Human approval or quality checkpoint with blast radius classificationAIWG HITL gate
`OpsTarget`Single host, VM, container, or named resourceAnsible host + Backstage Component
`OpsExtension`Framework-dependent extension manifestAIWG addon

No Template Syntax

ops-complete uses structured `from:` references rather than `{{ }}` template syntax. Every artifact is always valid YAML — no parser, no pre-processor.

inputs:
  - name: version
    from: vars.deploy_version
  - name: prev_version
    from: steps.health-check.outputs.current-version

Variable Resolution: 3-Level Maximum

1. Framework defaults — from `OpsCapability` `defaults:` section 2. Inventory/group — from `OpsInventory` group `vars:` 3. Instance — from `OpsPlaybook` `vars:` or `OpsTarget` host `vars:`

No deeper nesting. The 21-level Ansible precedence problem does not exist here.

Rules

RuleLevelEnforcement
`ops-safety`CRITICALInteractive command detection, destructive operation gates, blast radius classification, cross-host protection
`ops-documentation`HIGHExecutable, idempotent, verified procedure format — 8-section standard
`ops-cross-repo`HIGHScope validation (sysops vs itops vs devops), cross-repo reference format `roctinam/sysops#15`
`ops-issue-tracking`MEDIUMLabel taxonomy (`host:`, `priority:`, `area:`), phased work patterns

Extensions

Extensions depend on ops-complete and cannot run standalone. They declare `requires: ["ops-complete"]` in their manifest.

sys — Per-Host Fleet Operations

Covers hardware, OS, boot chains, fleet documentation. Key rules: `sys-hardware-safety` (CRITICAL), `sys-interactive-gate` (HIGH), `sys-host-independence` (HIGH). Templates: system-spec, canned-process, host-standup. Skills: `sys-fleet-inventory`, `sys-host-audit`.

it — Asset Management, CMDB, DR

Covers service deployments, DR runbooks, network state, provisioning. Key rules: `it-dr-validation` (HIGH), `it-service-health` (MEDIUM). Skills: `it-provision`, `it-dr-test`, `it-network-state`, `it-deployment-lifecycle`.

dev — CI/CD Pipelines and Build Automation

Covers fleet-wide tooling, CI builder patterns. Key rules: `dev-pipeline-safety` (CRITICAL, references CI signal suppression #490), `dev-ci-self-contained` (HIGH). Skills: `dev-ci-builder`, `dev-pipeline-audit`.

stream — Streaming Infrastructure

Covers transcoders, platform integrations, key safety. Key rule: `stream-safety` (CRITICAL). Skills: `stream-health`.

Creating Custom Extensions

A valid ops extension requires only an `ADDON.yaml` manifest:

apiVersion: ops.aiwg.io/v1
kind: OpsExtension
metadata:
  name: netops
spec:
  extends: ops-complete
  description: "Network operations — switch configs, VLAN management, firewall rules"
  version: "1.0.0"
  capabilities: auto-discover

Drop it in `agentic/code/extensions/netops/` with any templates, rules, or skills needed. Auto-discovery handles the rest.


AIWG Self-Maintenance

AIWG now maintains itself using its own CLI. Two new commands — `aiwg sync` and `aiwg mc` — and a dedicated maintenance agent make routine upkeep automatic.

`aiwg sync` — One-Command Session Sync

Brings the installation current in a single operation: update package → re-deploy all frameworks → health check.

# Full sync (update + redeploy + verify)
aiwg sync

# Check what would change without making changes
aiwg sync --dry-run

# Sync to a specific provider
aiwg sync --provider copilot

# Re-deploy only, skip the package update
aiwg sync --skip-update --frameworks sdlc

# Machine-readable output for orchestration agents
aiwg sync --quiet

When to run:

  • Start of a long orchestration session → `aiwg sync --dry-run`
  • User asks "is AIWG up to date?" → report + offer sync
  • `aiwg doctor` shows errors → `aiwg sync`
  • Deploying to a new provider → `aiwg use <framework> --provider <p>`

Mission Control (`aiwg mc`) — Background Orchestration Dashboard

Spawn multiple long-running agent loops, monitor all simultaneously, and react to completions or failures without blocking the primary session.

# Start a named session
aiwg mc start --name "Construction Sprint 4"

# Dispatch missions
aiwg mc dispatch mc-abc "Fix auth service" --completion "tests pass" --priority high
aiwg mc dispatch mc-abc "Add pagination" --completion "paginated responses"
aiwg mc dispatch mc-abc "Write integration tests" --completion "coverage > 80%"

# Monitor
aiwg mc status
aiwg mc watch

# Lifecycle control
aiwg mc pause mc-abc
aiwg mc resume mc-abc
aiwg mc stop mc-abc --drain   # let running missions finish, cancel queued
aiwg mc list

Status dashboard:

◆ MISSION CONTROL — Construction Sprint 4  [mc-abc]
──────────────────────────────────────────────────────
  #    Mission                   Status       Loop   Started
──────────────────────────────────────────────────────
  1    Fix auth service          ✓ DONE       4/10   14:22
  2    Add pagination            ⏳ RUNNING   3/10   14:25
  3    Write integration tests   ⏺ QUEUED     —      —
──────────────────────────────────────────────────────
  3 missions | 1 done | 1 running | 1 queued | 0 failed

Session state persists to `.aiwg/ralph-external/mc/sessions/` and survives context resets. `--json` output is machine-readable for programmatic orchestration polling.

AIWG Steward Agent

The `@aiwg-steward` agent handles complex maintenance tasks: full health check + repair, cross-provider deployment, version sync. Invoke directly when `aiwg doctor` identifies issues that need multi-step resolution.

@aiwg-steward: run full health check
@aiwg-steward: deploy all frameworks to copilot
@aiwg-steward: ensure latest version deployed

MC Conductor Agent

The `@mc-conductor` agent orchestrates inside a Mission Control session — dispatches missions from work items, monitors completions, handles failures, and reports aggregate status. The right companion for large parallel construction phases.


Hermes — First-Class Platform

Hermes graduates from an integration experiment to a full deployment target on equal footing with the other 8 platforms.

Deploy to Hermes

aiwg use sdlc --provider hermes
aiwg use rlm --provider hermes

Architecture

Hermes Agent (host)
  ├── Conversation, memory, sessions
  ├── Built-in tools (40+)
  ├── Skills (~/.hermes/skills/)
  └── MCP connection
        └── AIWG MCP Server (sidecar)
              └── .aiwg/ artifacts, workflows, templates

Hermes owns conversation flow and persistent memory. AIWG owns workflow execution and artifact output. MCP is the seam.

Platform Coverage

  • 96 skills declare `platforms: [claude-code, hermes]`
  • 17 Claude-specific skills (Task tool, `.claude/` paths) correctly declare `platforms: [claude-code]`
  • Hermes-specific templates at `agentic/code/frameworks/sdlc-complete/templates/hermes/`

Token-Optimized Setup

A 5-tool MCP whitelist keeps AIWG's context footprint to ~3,000 tokens (vs. 12,000+ with the full surface). On a 12GB VRAM model with 32K context, this is the difference between 81% and 54% of context available for actual work.

# ~/.hermes/config.yaml
mcp_servers:
  aiwg:
    command: "aiwg"
    args: ["mcp", "serve"]
    tools:
      include: [workflow-run, artifact-read, artifact-write, template-render, agent-list]

Two-Model Strategy

TaskRecommended model
Conversation, soul applicationhermes3 (8B)
Coding, tool calls, AIWG workflowsqwen3.5:9b

Qwen 3.5 9B has the best tool-call accuracy of any open-weight model at this scale. Use `delegate_task(model="ollama/qwen3.5:9b")` to route coding tasks while keeping conversation on hermes3.

`delegate_task` Skill

The `aiwg-orchestrate` skill reduces parent context overhead by 95% vs direct MCP calls (~200 tokens vs 3,000–8,000).

See `docs/integrations/hermes-quickstart.md` for the full setup guide.


CLI UI Modernization

All CLI commands now use a shared display module (`src/cli/ui.ts`) built on chalk, ora, and cli-table3.

What changed

  • Brand mark `◆` in AIWG indigo — consistent identity in terminal output
  • Spinner-based progress indicators during async operations
  • Structured table output for status and list commands
  • Quiet mode (`--quiet`) on any command that supports it — emits clean JSON for orchestration agents and CI
  • TTY/CI detection — graceful degradation when color is unavailable
  • `rule()`, `success()`, `info()`, `warn()`, `error()`, `dim()` — consistent semantic output across all 49 commands

SOUL.md — Agent Identity Files

SOUL.md files give agents persistent identity: worldview, opinions, character traits, calibration examples. Unlike voice profiles (tone and style), SOUL.md encodes what an agent believes and how it reasons.

Commands

/soul-enable architecture-designer    # Create .soul.md companion
/soul-status                          # Check status across deployed agents
/soul-validate <path>                 # Validate completeness
/soul-disable architecture-designer  # Disable without deleting

Skills

soul-enhance architecture-designer.soul.md           # Enhance incomplete soul
soul-apply --agent security-auditor --content draft.md  # Apply identity to generation
soul-blend test-engineer.soul.md security-auditor.soul.md --strategy weighted
/voice-to-soul voices/technical-authority.md         # Generate soul from voice profile
/soul-to-voice architecture-designer.soul.md         # Extract voice from soul

Pre-built souls

Four SDLC agents ship with authored soul files:

  • test-engineer — skeptical, integration-first, distrusts mocks
  • security-auditor — assume breach, defense in depth, never trust inputs
  • architecture-designer — systems thinker, monolith-first, explicit trade-offs
  • requirements-analyst — assumption surfacer, always asks why, documents what's deferred

AIWG.md Hook File Architecture

AIWG context is decoupled from your provider config file into a dedicated `AIWG.md` loaded via an `@`-link directive. CLAUDE.md shrinks from 488+ lines to a 12-line wrapper.

/hook-enable      # Add @AIWG.md directive to your config file
/hook-disable     # Remove directive without deleting AIWG.md
/hook-status      # Show hook state across all 8 providers
/hook-regenerate  # Rebuild AIWG.md from installed framework fragments
/migrate-hook     # Migrate existing full-inject installation

`AIWG.md` is assembled from `contextContributions.hookFragment` entries in each installed framework's manifest. Install SDLC, run `hook-regenerate`, and AIWG.md updates automatically.


Agent Intelligence

Constraint Learning from Feedback (#146)

Agents accumulate domain constraints from structured reviewer feedback. `FeedbackCollector` records per-agent feedback, clusters recurring errors, and proposes versioned constraints at `.aiwg/feedback/{agent}/`. Constraints are proposed automatically when a pattern appears 3+ times.

Domain Grounding Agents (#184)

Four pre-built agents inject verified domain knowledge into reasoning chains:

AgentDomain
`security-grounding-agent`Security controls, CVEs, threat models
`performance-grounding-agent`Benchmarks, SLAs, profiling patterns
`compliance-grounding-agent`Regulatory requirements, audit criteria
`technology-grounding-agent`Stack-specific patterns, API behaviors

40% domain accuracy improvement on specialized claims.


Quality and Metrics Infrastructure

Four new TypeScript modules with full unit test coverage:

ModuleWhat it does
`src/metrics/artifact-metrics.ts`Token cost per artifact line (baseline: 124 tokens/line for SDLC docs)
`src/metrics/context-budget.ts`Enforces 70/30 context/generation split; raises warnings before overflow
`src/quality/scoring.ts`Pattern-based quality scoring against known-good JSON patterns per artifact type
`src/quality/feedback-ab.ts`A/B testing for measuring whether feedback actually improves subsequent generations

Model Evaluation Suite (#433)

Evaluate any Ollama or cloud model for AIWG compatibility before deploying agents.

npx tsx tools/eval/src/index.ts qwen3.5:9b --backend ollama --verbose
npx tsx tools/eval/src/index.ts claude-haiku-4-5-20251001

6 dimensions, scored pass/fail thresholds: tool-use, instruction-following, coding, structured-output, reasoning, context-handling.

ScoreTier
90+opus-equivalent
70–89sonnet-equivalent
50–69haiku-equivalent
<50not-recommended

YAML Metalanguage Schemas (#447)

JSON Schema definitions for declarative AIWG definitions. Foundation for 40–60% token reduction when fully adopted.

agentic/code/frameworks/sdlc-complete/schemas/metalanguage/
├── flow.schema.json
├── agent.schema.json
├── rule.schema.json
└── skill.schema.json

Hybrid Artifact Addressing (#187)

Artifacts in `.aiwg/` can now be referenced by file path or semantic URN from the same query interface.

@.aiwg/requirements/UC-001.md    # explicit path
@?"authentication flow"          # semantic search
@#security                       # tag filter
@elaboration:sad                 # phase:type filter

Sub-100ms query performance via in-memory index built from frontmatter.


Other Additions

  • Verbalized sampling addon (`aiwg use verbalized-sampling`) — content-diversifier agent, 3 prompt strategies, diversity-awareness rule (#20)
  • `native-ux-tools` rule — agents prefer platform-native interaction tools; platform capability matrix; fallback to formatted markdown (#448)
  • Local/Ollama as first-class provider — Ollama on equal footing with cloud providers; local model support documented (#434)
  • `aiwg index` enhancements — flexible graph types, deploy next-steps, verbose mode (#426)
  • Community model testing guide — contribution guide for community model testing (#435)
  • Skills CLI subsystem (`src/skills/`) — `aiwg skills list|search|install|info`; adapters for `local`, `clawhub`, and `openclaw` registries; `SkillResult` and `SkillInstallResult` types; full unit tests (#539)
  • User-level config (`src/config/`) — `aiwg config get|set|list|validate|reset|path`; resolution order: `AIWG_CONFIG` env var → `--config-dir` flag → `~/.aiwg` → `~/.config/aiwg`; unit tests (#545)
  • Ops workspace registry (`src/ops/`) — `aiwg ops list|add|remove|switch|status`; manages `ops.yaml` for workspace definitions and cross-repo wiring; unit tests (#544)
  • MCP registry (`src/mcp/registry.{ts,mjs}`) — MCP server registry with install/list/remove and multi-provider resolution; unit tests
  • ADR: skills as canonical extension type — decision record at `.aiwg/architecture/adr-skills-canonical-extension-type.md`

Fixes

  • Factory provider — `$ARGUMENTS` and `argument-hint` now injected at deploy time; static-only execution silently dropped user input before (#454)
  • `commit-and-push` — oversized prompt trimmed; local model docs added (#436)
  • `aiwg index stats` without `--graph` — no longer crashes when graph flag is omitted (#425)
  • SnapshotManager API mismatch — fatal crash on External agent loop execution resolved (#424)

RC5 Changes

Three fixes and two features found during RC4 testing.

External agent loop silently dying on startup

`aiwg ralph "..."` appeared to work — it printed a PID and loop ID — but `aiwg ralph-status` immediately showed no running loops and no output was ever produced.

Root cause: `SemanticMemory`, `MemoryPromotion`, and `MemoryRetrieval` constructors each take a string path as their first argument. `orchestrator.mjs` was calling them with `{ storagePath: path }` objects instead. `path.join()` threw "path argument must be of type string", crashing the background process within seconds of startup. Because the PID was already written to the launcher registry before the crash, status checks saw the dead process, marked it `failed`, and the default status filter (`running` only) hid the entry entirely.

Fix: pass the path string directly to all three constructors.

`--dangerous` flag was passed after the prompt

`buildAgentArgs()` was appending the provider's dangerous flag (`--dangerously-skip-permissions`, `--full-auto`) after the prompt string. This meant the binary received:

claude "<prompt>" --dangerously-skip-permissions

instead of:

claude --dangerously-skip-permissions "<prompt>"

The flag was silently ignored because most CLIs stop flag parsing once a positional argument is seen. Fixed: dangerous flag is always inserted before the prompt.

Incorrect provider configs for Hermes and OpenCode

Hermes was registered with `binary: 'hermes'`, implying a spawnable CLI that does not exist. Hermes is a model series accessible via `ollama run hermes3` or through an MCP sidecar — not a standalone CLI. Updated to `binary: null` with a guidance message pointing to those paths.

OpenCode's `promptPrefix` was missing `['run']`, so invocations were sending `opencode "<prompt>"` instead of `opencode run "<prompt>"`. Fixed.

MCP sidecar integration for all 8 providers (#503–#510)

Full integration guides, config templates, and install targets added for every provider:

ProviderConfig file`aiwg mcp install`
Claude Code`.claude/settings.local.json``claude`
Codex`~/.codex/config.toml``codex`
Cursor`.cursor/mcp.json``cursor`
OpenCode`opencode.json``opencode`
Windsurf`~/.codeium/windsurf/mcp_config.json``windsurf` (new)
Warp`~/.warp/mcp.json``warp` (new)
GitHub Copilotfeasibility TBD
Factory AIcloud-topology constraint

Docs at `docs/integrations/{provider}-mcp-sidecar.md`. Minimal + full config templates in `agentic/code/frameworks/sdlc-complete/templates/{cursor,opencode,warp,windsurf}/`.

`aiwg ralph --attach` and `aiwg ralph-attach`

Agent loops now support an attached watch mode:

# Launch and stay attached — output streams to your terminal
aiwg ralph "Fix all failing tests" --completion "npm test passes" --attach

# Re-attach to a running loop from any terminal session
aiwg ralph-attach
aiwg ralph-attach --loop-id ralph-fix-all-failing-tests-abc123

# Detach without stopping the loop
# Press Ctrl+C — loop keeps running in background

Output is read from the loop's `daemon-output.log` and polled every 250 ms. Ctrl+C detaches cleanly and prints the status/re-attach/abort commands.


RC4 Changes

  • README homepage overhauled: SEO improvements, six-component deep dive, full 90+ research citation list with GRADE-sorted ordering, fixed nav anchors, external platform links
  • Welcome page platform table aligned: Hermes and Local/Ollama entries simplified to match other entries; all 10 platforms linked to vendor sites

RC2/RC3 Critical Fixes

Four issues surfaced during RC2 and RC3 testing that would have made the release effectively unusable for new installs. All resolved before the stable tag.

`aiwg sdlc-accelerate` had no handler

The first command new users are directed to after `aiwg use sdlc` returned "No handler found for command: sdlc-accelerate". The CLI entry existed in every help screen but the dispatch table had no matching handler.

`SdlcAccelerateHandler` is now implemented in `src/cli/handlers/sdlc-accelerate.ts`. It spawns Claude Code with the `/sdlc-accelerate` skill interactively, forwarding any arguments the user passes.

`aiwg use sdlc --provider hermes` exited with "Unknown provider"

Hermes graduated to first-class platform in this release, but the deploy script (`deploy-agents.mjs`) and the `use` command handler (`use.ts`) still had no knowledge of it. Running `aiwg use sdlc --provider hermes` exited immediately with an error.

Fixed by adding `tools/agents/providers/hermes.mjs` (deploys skills to `~/.hermes/skills/`, aggregates agents into a lean AGENTS.md), adding `hermes` to `AVAILABLE_PROVIDERS` in `deploy-agents.mjs`, and adding the Hermes paths to `PROVIDER_PATHS` in `use.ts`.

Three Ralph commands documented but not reachable

`aiwg ralph-external`, `aiwg ralph-memory`, and `aiwg ralph-config` were all listed in the CLI reference but returned "No handler found" when invoked. The commands were wired into the help system but never registered in `allHandlers`.

All three are now implemented in `src/cli/handlers/ralph.ts`:

  • `ralph-external` — delegates to `tools/ralph-external/index.mjs`
  • `ralph-memory` — delegates to `tools/ralph-external/memory-manager.mjs --cli`
  • `ralph-config` — delegates to `tools/ralph-external/orchestrator.mjs --config`

Post-deploy next steps were Claude-specific for all providers

After any `aiwg use` deployment, the CLI prints next-step guidance. That guidance was keyed only by framework name, so every provider — including Hermes, Copilot, and Cursor — received Claude Code-specific instructions.

`NEXT_STEPS` in `use.ts` is now keyed as `<provider>/<framework>`. Each of the 8 providers gets platform-appropriate guidance: Hermes users see MCP setup instructions, Copilot users see `.github/agents/` paths, and so on.


Install / Update

# Fresh install
npm install -g [email protected]

# Update existing installation
npm update -g aiwg
aiwg version
# 2026.3.3

# Deploy updated frameworks
aiwg use sdlc
aiwg use sdlc --provider openclaw        # New — OpenClaw platform
aiwg sync --dry-run                      # New — verify your installation is current

# Try the daemon
aiwg daemon-init                         # New — initialize from manager profile
aiwg daemon start                        # New — start, dashboard at localhost:7474

# Scaffold a behavior
aiwg add-behavior my-check --hooks on_file_write --description "Check on save"

Daemon — Fully Operational

The daemon goes from stub to production-ready system in this release. `aiwg daemon-init` initializes a config file from a profile, `aiwg daemon start` launches the process, and the web UI at `localhost:7474` is the control panel.

Initialize and start

aiwg daemon-init       # Creates .aiwg/daemon.yaml from the manager profile
aiwg daemon start      # Start the daemon

Open `http://localhost:7474` for the web dashboard: submit tasks, watch running loops, see history.

YAML profile system

Profiles are named configuration templates. The `manager` profile is the default — a general-purpose development assistant profile with sensible defaults. Initialize from it and edit for your setup:

# .aiwg/daemon.yaml (generated by aiwg daemon-init)
daemon:
  provider: claude
  project_dir: .

messaging:
  telegram:
    token: "${TELEGRAM_BOT_TOKEN}"
    rooms:
      - chat_id: 123456789
        label: personal
        is_default: true

schedule:
  - name: nightly-audit
    cron: "0 2 * * *"
    action: security-audit

  - name: custom-check
    cron: "0 8 * * *"
    prompt: "Review the last 24 hours of git commits and summarize what changed"

Autonomous mode

The daemon can propose and execute maintenance tasks on its own — off by default, constrained by a strict allowlist:

daemon:
  autonomous:
    enabled: true
    thinking_interval_minutes: 60
    max_daily_tasks: 5
    budget_cap_usd: 2.00
    require_approval: true        # Message you before executing
    allowed_actions:
      - doc-sync
      - cleanup-audit
      - test-sync
    blocked_actions:
      - deploy
      - git-push

With `require_approval: true`, the daemon messages you via Telegram before acting and waits for `/approve` or `/reject`.

Multi-room Telegram

The daemon supports multiple Telegram chat rooms. Each room can be bound to specific task types or used for routing notifications:

messaging:
  telegram:
    rooms:
      - chat_id: 123456789
        label: personal
        is_default: true
      - chat_id: 987654321
        label: team
      - chat_id: 111222333
        label: alerts

Send commands from any configured room:

/status
/ralph-status
/ask what is the current test coverage?

Docker mode

Run the daemon in an isolated container:

aiwg daemon start --docker

Your project mounts at `/workspace`. The web UI is still accessible at `localhost:7474`. Credentials pass via environment variables.


Behaviors — Reactive Artifact Type

Behaviors are the fifth AIWG artifact type, sitting above skills in the stack. Skills respond when you invoke them. Behaviors respond when events occur.

What behaviors do

BehaviorWhen it runsWhat it does
`security-sentinel`On file save (`.ts`, `.js`), on deploy, every 30 minScans for security issues, reports findings
`test-watcher`On file save in `test/`, on scheduleRuns affected tests, posts results
`build-monitor`After build completes, on scheduleTracks build health over time
`quality-gate-watcher`On commit, on PR openEnforces quality criteria before merge
`artifact-sync`On `.aiwg/` file changeKeeps artifact index in sync

BEHAVIOR.md format

Every behavior is a directory with a `BEHAVIOR.md` spec and a `scripts/` directory:

my-check/
├── BEHAVIOR.md       # Format spec: name, hooks, triggers, inputs, description
└── scripts/
    └── main.sh       # The script that runs when the behavior fires

`BEHAVIOR.md` declares hooks (which system events trigger it), triggers (conditions within those events), and inputs (what context is passed to the script).

Scaffolding

aiwg add-behavior my-check \
  --hooks on_file_write \
  --description "Check what I care about on every file save"

Generates the directory structure and both files. Edit `BEHAVIOR.md` to configure hooks and `scripts/main.sh` with your logic.

Deploy

aiwg use sdlc --provider openclaw   # Behaviors deploy to ~/.openclaw/behaviors/

OpenClaw is the first provider with native behavior support. Other providers receive behaviors support as their platforms add it.

Run manually

bash agentic/code/behaviors/security-sentinel/scripts/main.sh

Behaviors are plain shell scripts — runnable directly for testing and debugging.


OpenClaw — First-Class Platform

OpenClaw is the 10th AIWG deployment target and the first to support behaviors natively.

Deploy to OpenClaw

aiwg use sdlc --provider openclaw

Deploys to `~/.openclaw/`:

~/.openclaw/
├── agents/         # Specialized AI personas
├── commands/       # Slash commands
├── skills/         # NLP-triggered capabilities
├── rules/          # Context-loaded constraints
└── behaviors/      # Reactive event-driven scripts (OpenClaw-exclusive)

Behaviors support

OpenClaw is the only provider in this release that receives the behaviors directory. Behaviors defined in `agentic/code/behaviors/` and per-framework `behaviors/` dirs deploy to `~/.openclaw/behaviors/` on `aiwg use`.


Getting-Started Guide Series

AIWG now ships 15 scenario-based guides written in user vocabulary — not framework jargon.

Situation guides — pick the one that matches where you are:

GuideFor when...
Just Try ItYou want to see something happen in 60 seconds
New ProjectStarting from an idea
Existing ProjectYou have code, the AI doesn't know it yet
Audit Existing CodeSecurity, coverage, quality review
Writing and ContentConsistent voice and AI-detection-resistant content
Team SetupMultiple developers, multiple AI tools
Daemon and AutomationBackground tasks, scheduling, Telegram, autonomy

Framework guides — one per framework:

GuideFramework
SDLC FrameworkSoftware development lifecycle
Marketing FrameworkCampaign lifecycle
Forensics FrameworkDigital forensics and incident response
Research FrameworkAcademic and technical research
Media Curator FrameworkMedia archive management

Deep dives:

  • Flow and Gate Process — how intake, flow commands, gate commands, and `sdlc-accelerate` connect end-to-end
  • Key Addons — Ralph, Ring, RLM, Voice Framework, and other power features

Composable RULES-INDEX Architecture

Rules indexes are now component-owned. This ends the pattern where `sdlc-complete` held a monolithic index containing rules from addons it doesn't control.

Two-Level Hierarchy

agentic/code/RULES-INDEX.md          ← global aggregator (template)
├── frameworks/sdlc-complete/rules/RULES-INDEX.md   ← 33 rules, sdlc-complete scope
└── addons/aiwg-utils/rules/RULES-INDEX.md           ← 7 rules, aiwg-utils scope

At deploy time (`aiwg use`), the CLI reads the global template, discovers all installed component indexes via each manifest's `consolidation.rulesIndex` field, concatenates them, and writes the assembled result to `.claude/rules/RULES-INDEX.md` (or the equivalent for your provider).

What Changed

  • New component indexes — `aiwg-utils/rules/RULES-INDEX.md` created; each component owns its rules documentation
  • sdlc-complete scoped — `sdlc-complete/rules/RULES-INDEX.md` now covers only the 33 rules it actually owns, with cross-references to addon indexes
  • Duplicates removed — `instruction-comprehension.md` and `research-before-decision.md` deleted from `sdlc-complete/rules/`; canonical home is `aiwg-utils/rules/`
  • Manifest field added — each component manifest declares `consolidation.rulesIndex` (path to index) and `consolidation.deployIndexOnly` (skip individual rule file deployment in favor of the index)
  • CLI assembly — `assembleRulesIndex()` in `tools/agents/providers/base.mjs` discovers all component indexes and concatenates them; `getAddonRuleFiles()` skips addons that deploy index-only

For Addon Authors

If you're building an AIWG addon that ships rules, add to your `manifest.json`:

"consolidation": {
  "strategy": "index-with-links",
  "rulesIndex": "rules/RULES-INDEX.md",
  "deployIndexOnly": true
}

Create `rules/RULES-INDEX.md` following the component index format (see `agentic/code/addons/aiwg-utils/rules/RULES-INDEX.md` as a reference). Your rules will be automatically assembled into the deployed index when users run `aiwg use`.

ADR

The architectural decision is documented at `.aiwg/architecture/adr-rules-index-hierarchy.md`.


References

FeatureIssues
AIWG sync + Mission Control#482, #483
AIWG Steward agent#481
Self-maintenance guidance#484
SOUL.md system#437, #438
AIWG.md hook file#439–#446
Multi-provider hook files#444
Agent constraint learning#146
Domain grounding agents#184
Token metrics modules#173, #144, #192, #148
Model evaluation suite#433
Hermes MCP integration#449–#453
YAML metalanguage schemas#447
Hybrid artifact addressing#187
Verbalized sampling#20
Native UX tools rule#448
Local/Ollama provider#434
Factory $ARGUMENTS fix#454
`sdlc-accelerate` handlerRC2/RC3 fix
Hermes provider wiringRC2/RC3 fix
Ralph command handlers (`ralph-external`, `ralph-memory`, `ralph-config`)RC2/RC3 fix
Provider-aware post-deploy next stepsRC2/RC3 fix
Composable RULES-INDEX hierarchy#496–#500
Daemon — fully operational (web UI, profiles, scheduler, autonomous engine, Docker)#520–#532
Daemon unit tests#534
Daemon ADRs#533
Behaviors artifact type (BEHAVIOR.md spec, source dirs, scaffolding, OpenClaw deploy)#540–#543
OpenClaw provider#535
Getting-started guide series
Codex model alias fix
OpenCode 1.0.x adapter fix
Skills CLI subsystem (local/clawhub/openclaw adapters)#539
User-level config manager (`~/.aiwg` / XDG resolution)#545
Ops workspace registry (`ops.yaml`)#544
MCP registry (install/list/remove)