v2026.4.0 — Autonomous Systems
Major release: corpus architecture, daemon, Mission Control, behaviors, SOUL.md, OpenClaw, Hermes, ops-complete, and more.
AIWG v2026.4.0 — "Autonomous Systems"
Released: 2026-04-01 Type: Major release Previous stable release: v2026.3.2
This is the first major version milestone since the framework's foundations were laid. v2026.4.0 ships five capability areas simultaneously: a new corpus architecture that turns skills into thin, self-navigating context maps; a full autonomous operations layer (daemon, Mission Control, provider-watcher, behaviors); first-class agent identity (SOUL.md); a remote install system; and a complete platform overhaul covering 10 providers. More than 150 commits since v2026.3.2 went into this release.
Highlights
| What changed | Why you care |
|---|---|
| Corpus architecture & link validation | Skills are now thin context maps — they link into the corpus rather than restating it. `@$AIWG_ROOT/` token resolves correctly in dev repos, npm installs, and custom installs alike. `link-check` skill validates every ref. 1,400+ broken refs fixed. |
| Composite skills | A skill can be a collection of `@$AIWG_ROOT/` links with minimal framing — the agent decides how deep to follow each one. High reuse, no duplication, context efficiency by design. |
| aiwg-dev addon | Full developer toolkit for building AIWG extensions: `validate-component`, `dev-doctor`, `link-check`, `devkit-*` scaffolding skills. |
| Skills as canonical extension type | SKILL.md is now the source format. Commands are generated at deploy time for providers that need them. Claude Code and Cursor use skills natively. `aiwg add-command` deprecated in favour of `aiwg add-skill`. |
| Daemon — fully operational | `aiwg daemon-init && aiwg daemon start`. Web UI at localhost:7474. YAML profiles, scheduled tasks, Telegram multi-room, autonomous thinking engine with safety constraints and budget cap, Docker containerization. Cross-session memory persists across restarts. |
| Mission Control | Multi-loop background orchestration: `aiwg mc start` → `aiwg mc dispatch` → `aiwg mc watch`. Parallel agent loops run as background missions with a live status dashboard. State persists across context resets. |
| Behaviors — 5th artifact type | BEHAVIOR.md: subscribe to system events (file writes, deploys, schedules) and react automatically. Framework source dirs in all components. `aiwg add-behavior` scaffolding. Deployed to OpenClaw. |
| Provider-watcher | Daemon add-on that watches for provider updates, runs scheduled tasks, and opens PRs automatically when new versions are detected. |
| SOUL.md — agent identity | Agents now have persistent character: worldview, opinions, reasoning traits. Unlike voice profiles (how they speak), soul files encode what they believe. `soul-create`, `soul-enable`, `soul-blend`, four pre-built SDLC agent souls. |
| AIWG self-maintenance | `aiwg sync` — update + redeploy + verify in one command. AIWG Steward agent for complex installation repairs. Self-maintenance rule with CLI-first principle and pre-flight trigger table. |
| Remote install system | Install any framework, addon, or extension directly from the registry — no repo clone required. |
| Project-level `aiwg.config` | Per-project provider registry, deployment manifest, and `aiwg run` scripts. Replaces manual provider configuration. |
| VS Code extension | `vscode-extension/` — `@aiwg` Copilot chat participant, MCP auto-config, status bar, sidebar tree, JSON Schema for `aiwg.config.json`. Phase 1 + 2 complete. |
| Daemon platform tiers | Tier 1 (native headless: claude-code, opencode, warp, openclaw, codex), Tier 2 (PTY adapter), Tier 3 (unsupported). Formalized in capability matrix. |
| PTY adapter | `aiwg daemon pty start/list/stop` — bridge any Tier 1 TUI over a pseudo-terminal. Sessions persist; `node-pty` is optional. |
| Contract syntax for skills | `requires:`, `ensures:`, `errors:`, `invariants:` on SKILL.md files. `contract-manifest` + `contract-validate` skills catch dependency gaps at wiring time. |
| `issue-planner` + `induct-research` skills | Research-grounded SDLC backlog generation with human approval gate. `induct-research` routes findings to Gitea / GitHub / Jira / Codehound. |
| `human-authorization` rule | Agents must confirm before irreversible or high-stakes implied actions. Recommendation ≠ authorization. HIGH enforcement. |
| 5 OpenProse antipattern rules | `god-session`, `vague-discretion`, `context-bloat`, `parallel-then-synthesize`, `implicit-dependencies` — derived from OpenProse research. aiwg-utils now ships 13 rules. |
| `no-time-estimates` rule | Agent-oriented estimation replacing wall-clock time. aiwg-utils now ships 14 rules. |
| prose-integration addon complete | `prose-detect` + `prose-install` + `prose-resolution` rule. Step 0 detection centralized. 7-skill count. Integration guide. |
| `[all]` platforms token | `platforms: [all]` in agent files replaced at deploy time. No more hardcoded provider lists in grounding agent definitions. |
| Skill namespace strategy | Multi-layer collision prevention: slug prefix + subdir + frontmatter namespace. Per-platform adapters. Collision detection in `use`/`doctor`. |
| `aiwg serve` + Web Dashboard | Local HTTP server, WebSocket PTY bridge, React app with xterm.js terminal, Mission Control UI. |
| Artifact index: typed edges & filename-metadata | Cross-graph set queries, citation sidecar parser, filename-derived metadata without content reading. |
| agentic-installer addon | `setup.aiwg.io/v1` SetupManifest YAML language. Script-first multi-platform installation: 11 templates, 3 skills, 1 agent, 2 rules. (#663–#667) |
| `aiwg-ci-safety` rule | Agents may not touch `.gitea/workflows/` without human authorization. CI templates for users live in `agentic/code/frameworks/*/ci/`. HIGH. |
| OpenClaw as 10th platform | First platform with native behaviors support (`~/.openclaw/behaviors/`). `aiwg use sdlc --provider openclaw`. ClawHub package publication documented. |
| Hermes as first-class platform | Graduates from MCP sidecar to `--provider hermes`. Full artifact deployment, 96 skills declare Hermes compatibility, token-optimized AGENTS.md template, MCP sidecar with 5-tool whitelist. |
| Copilot & Windsurf overhauls | Copilot: agents → `.agent.md`, commands → `.prompt.md`, rules → `.instructions.md` with `applyTo` globs. Windsurf: rules migrate to `.windsurf/rules/` with `trigger: always_on`. |
| ops-complete framework | Operational infrastructure framework built on the YAML metalanguage. Kubernetes-inspired envelope. Four extensions: `sys` (fleet/hardware), `it` (CMDB/DR), `dev` (CI/CD), `stream` (streaming infra). |
| RLM enhancements | `quality_gate` per TaskNode, `preferred_model` per node, `chunking_strategy`, `batch_size` for map-reduce. Three new examples. Six AIWG-specific antipatterns documented. |
| Composable RULES-INDEX hierarchy | Each component owns its own `rules/RULES-INDEX.md`. The CLI assembles them at `aiwg use` time. Addon authors no longer edit files they don't own. |
| aiwg-guide contextual help skill | `aiwg-guide` activates automatically when users ask how to use AIWG. Covers all 50 commands, all 9 providers, and links directly into the corpus for deeper reading. |
| AIWG.md hook file architecture | AIWG context decoupled from CLAUDE.md into a toggleable `AIWG.md`. CLAUDE.md shrinks from 488+ lines to a 12-line wrapper. `hook-enable` / `hook-disable` / `hook-regenerate`. |
| 15-article getting-started series | Seven situation guides, five framework guides, key-addons overview, flow/gate/sdlc-accelerate reference — written in user vocabulary, not framework jargon. |
| Specification-complete layer (Layer 3 + 4) | Elaboration now produces behavioral specs and pseudo-code specs, making construction-phase code generation translation rather than design. 6 new templates, deepened gate criteria, `/flow-use-case-realization` orchestration, 6-layer traceability. |
| Semantic memory kernel | New `semantic-memory` addon with 5 kernel skills (`memory-ingest`, `memory-lint`, `memory-query-capture`, `memory-log-append`, `memory-log-render`) that any consumer can use by declaring a `memory.topology` contract. Four frameworks migrated; existing skill names + UX preserved via delegation pattern. Per ADR-021. |
| `llm-wiki` addon | Thin topology on top of the kernel — 5 page-template profiles (book-companion, personal, research-deep-dive, business-team, generic), Obsidian-native `crossRefStyle: wikilink`, interactive profile picker on `aiwg use llm-wiki`. |
| `MemoryTopology` contract in manifests | New schema with `namespace`, `rawSources`, `derivedPages`, `index`, `log`, `crossRefStyle`, `pageTemplate`, `ingestRequires`, `lintRules`. Four `crossRefStyle` values supported. Validated by `aiwg doctor` via `validateMemoryTopology()`. All four core frameworks declare topologies. |
| Training framework → marketplace plugin | `training-complete` extracted to standalone repo at `jmagly/aiwg-training`. Main aiwg shrinks by ~20K lines. Dual-stack: agentic SKILL.md surface + optional Python CLI with JS hooks. 144 tests pass. Install via `/plugin install training@aiwg`. Per ADR-022. |
| `aiwg session` | One command launches a fully-prepared agentic session: version check, doctor, auto-repair, deployment verification, optional MCP injection, then provider launch or IDE instructions. Self-healing by default — falls back through `aiwg sync` → full reinstall → `aiwg feedback` if repair fails. |
| `aiwg feedback` | File GitHub issues from the CLI without leaving the terminal. System context (version, OS, provider, frameworks) collected automatically. Routes through `gh` CLI → browser URL → stdout. Surfaces automatically from `aiwg doctor` on unresolvable issues. |
| `aiwg serve` WebSocket fix | Sandbox WebSocket connections were silently 404-ing (`createNodeWebSocket` missing in `@hono/node-server` v1.19.14). Replaced with native Node.js upgrade-event router + `ws` package. `ws` auto-installs on first use. |
| ADR template: 5 new sections | Source verification & claim tracking, implementation sketch, concurrency/shared state model, testing strategy, multi-level Definition of Done — the gaps that cause ADRs to be rejected or ignored. |
Specification-Complete Layer
The SDLC framework previously jumped from architecture (Layer 2) to code (Layer 5), forcing agents into design-mode during construction. This release fills the gap with two new layers:
Layer 3 — Behavioral Specifications
Six new templates bridge architecture and implementation:
| Template | ID Prefix | Purpose |
|---|---|---|
| State Machine Spec | `DES-SM-` | Stateful entity lifecycles (states, transitions, guards, entry/exit actions) |
| Decision Table | `DES-DT-` | Complex branching logic (2^N rule completeness, simplification) |
| Activity Diagram Spec | `DES-ACT-` | Business process flows (swim lanes, fork/join, exception paths) |
| Method Interface Contract | `DES-MIC-` | Design-by-contract per method (preconditions, postconditions, invariants) |
| Data Flow Spec | `DES-DFS-` | End-to-end data tracing (source → transformation → destination) |
| Pseudo-Code Spec | `DES-PSC-` | Language-neutral algorithms (Layer 4) |
Layer 4 — Pseudo-Code Specifications
Language-neutral pseudo-code using a fixed keyword set (`SET`, `FUNCTION`, `FOR EACH`, `IF`, `VALIDATE`, `ON FAILURE`) that domain experts can read and verify. One spec per method. Error handling is first-class — every `VALIDATE` block requires an `ON FAILURE` handler.
Use Case Realization Orchestration
New `/flow-use-case-realization` command orchestrates multi-agent spec generation:
Architecture Designer → Realize UC (sequence diagram + contracts)
→ Parallel reviewers (Security, Test, Domain, Requirements)
→ Synthesizer → Pseudo-code generation
→ Traceability matrix
Supports `--layer 3|4|both`, `--guidance`, `--interactive`. Natural language: "realize UC-003", "generate behavioral specs".
Deepened Gate Criteria
- Elaboration gate (ABM) gains section 3a: behavioral specs required for ≥80% of architecturally significant use cases
- Construction entry gains section 8a: pseudo-code specs required for first iteration scope
- `check-traceability` rewritten for 6-layer enforcement (UC ↔ BS ↔ IC ↔ PC ↔ code ↔ tests) with orphan detection and `--fix` auto-remediation
Why This Matters
The AIWG thesis is that the final code generation step should be primarily language extraction — translating detailed specifications into a target language — rather than creative problem-solving. Detailed specs enable cheaper execution (smaller models can translate), higher reliability (less reasoning = fewer hallucinations), and deterministic verification (each code artifact traces to a spec that serves as its acceptance criterion).
References: #740–#746
VS Code Extension
`vscode-extension/` ships the first two phases of the AIWG VS Code Extension (#623):
Phase 1 — Scaffold + Basic Activation
- Full VS Code manifest (`chatParticipants`, `commands`, `viewsContainers`, `views`, `jsonValidation`, `configuration`)
- Workspace detection and "Initialize AIWG?" prompt on first open
- CLI auto-detect from setting or PATH; `run()` (silent) and `runAsTask()` (terminal-visible) invocation modes
- Status bar: installed frameworks + active provider
- Sidebar tree views: Status, Frameworks, and Scripts
Phase 2 — MCP Auto-Config
- Idempotent `.vscode/mcp.json` writer — respects existing servers
- Wired to `aiwg.mcp.autoStart` setting and `AIWG: Configure MCP` command
Also included:
- `@aiwg` Copilot chat participant with `/deploy`, `/status`, `/skill`, `/pipeline`, `/eval`, `/productionize` routing; LM API path (no CLI required) + CLI fallback
- `schemas/aiwg.config.v1.json` — bundled JSON Schema for `aiwg.config.json` (autocomplete + inline validation in editor)
- Smoke tests for activation, commands, and MCP auto-config idempotency
- Brand assets: favicon, logo, 128×128 marketplace icon, activity bar icon
Corpus Architecture
`@$AIWG_ROOT/` token system
Every AIWG skill and agent can now reference corpus files using `@$AIWG_ROOT/<path>`. The token resolves to the repo root in development, `$(npm root -g)/aiwg` for npm installs, and `$AIWG_ROOT` for custom installs. This replaces bare `@agentic/code/`, `@src/`, `@docs/` refs that silently failed in user projects.
Token system supports any environment variable: `@$TOKEN/path`. Tokens declared in `.env` at project root.
1,099 bare refs across the entire corpus were migrated. 318 deployment-target `.claude/` refs were updated to their corpus equivalents.
Composite skills
A skill can now be a thin collection of links with minimal framing — the corpus documents contain the logic:
## References
- @$AIWG_ROOT/agentic/code/addons/ralph/skills/ralph/SKILL.md — Loop engine
- @$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/skills/issue-list/SKILL.md — Fetch issues
- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/context-budget.md — Parallel limits
The agent follows whichever refs are relevant to the current step. Rules live once, in one place, referenced by many skills. See `docs/development/corpus-navigation-guide.md`.
`.aiwg/` reference contract
Distributable skills may only reference `.aiwg/` paths declared in a framework manifest's `memory.creates` field. Repo-local paths silently fail in user projects. Tier 1 (always present) and Tier 2 (framework-specific) paths are fully documented and enforced by `validate-component` and `dev-doctor`.
No-escape rule
There is no backtick or code-block escape for `@` references. Every `@<path>` in a deployed skill is processed as a context-load directive regardless of surrounding markup.
aiwg-dev addon
Developer toolkit for building and validating AIWG extensions:
- `validate-component` — full PASS/WARN/FAIL link classification per file
- `dev-doctor` — Section 4 subchecks: `.aiwg/` refs, bare legacy refs, `.claude/` refs
- `link-check` — standalone corpus validator with `--fix`, `--report`, `--fail-on-warn` (CI mode)
- **`devkit-*`** — scaffolding skills: `create-addon`, `create-framework`, `create-skill`, `create-agent`, `create-command`, `create-extension`
Autonomous Operations
Daemon
`aiwg daemon-init` scaffolds a YAML profile. `aiwg daemon start` launches the persistent background process.
- Web UI at `localhost:7474` — single-page dashboard, no build step
- YAML profiles — `manager` default profile; composable configuration
- Scheduled task runner — cron expressions bridge to the supervisor task queue
- Multi-room messaging — Telegram multi-chat with room-scoped routing and task binding
- Autonomous engine — configurable `thinking_interval_minutes`, `max_daily_tasks`, `budget_cap_usd`, `require_approval`, `allowed_actions`, `blocked_actions`
- Cross-session memory — agent memory persists across daemon restarts; episodic + semantic + working memory tiers
- Docker — workspace-as-volume, env var pass-through, web UI from container
Mission Control
Background orchestration for parallel agent loops:
aiwg mc start --name "Sprint 4"
aiwg mc dispatch <id> "Fix auth module" --completion "tests pass"
aiwg mc watch # live status stream
aiwg mc status # JSON-ready aggregate
aiwg mc stop <id> # drain or abort
JSONL event log per session. Persistent at `.aiwg/ralph-external/mc/sessions/`.
Provider-watcher
Daemon add-on that runs on a schedule: detects provider updates, executes configured tasks, and opens PRs automatically when new versions are detected. Configurable schedules per provider.
Daemon Platform Tiers
Platforms are now classified into three daemon tiers:
| Tier | Platforms | Capability |
|---|---|---|
| Tier 1 | claude-code, opencode, warp, openclaw, codex | Native headless daemon — runs without a display server |
| Tier 2 | claude-code, codex | PTY adapter secondary mode — can also drive the TUI |
| Tier 3 | copilot, factory, cursor, windsurf | Unsupported — requires IDE or display server |
Tiers are declared in `capability-matrix.yaml` (`daemon_tier`, `daemon_pty_adapter`) and exposed via `getDaemonTier()` / `daemonCapableProviders()` TypeScript helpers.
PTY Adapter
`tools/daemon/pty-adapter.mjs` bridges any Tier 1 platform TUI over a pseudo-terminal, enabling human, script, or agent driving of interactive sessions:
aiwg daemon pty start claude-code # spawn Claude Code under PTY
aiwg daemon pty list # enumerate active sessions
aiwg daemon pty stop <session-id> # stop a session
- `node-pty` is an optional dependency — install separately if needed (`npm install node-pty`)
- Session state persisted to `.aiwg/daemon/pty/<sessionId>.json` with PID verification
- Stale sessions auto-cleaned on `list()`
- SIGWINCH forwarded to the PTY on terminal resize
Reconnect note: full session reattach after detach requires the gRPC transport path (tracked in #657, depends on `agentic-sandbox#131`). Local PTY sessions do not survive detach.
`aiwg serve` and Web Dashboard
A local HTTP server scaffold for the AIWG web dashboard:
aiwg serve # start dashboard at localhost (default port)
- WebSocket PTY stream bridge — pipes live terminal output from daemon sessions into the browser
- React app with xterm.js terminal viewer — full terminal emulation in-browser; stream any PTY session without a separate SSH connection
- Mission Control UI — telemetry dashboard with real-time mission status; fortemi-react panel for agent loop monitoring
The server is the foundation layer for browser-based orchestration. Further panels (cost telemetry, artifact explorer, health check) are tracked in follow-on issues.
Behaviors
The fifth AIWG artifact type:
# BEHAVIOR.md
hooks:
- event: file.write
pattern: "**/*.ts"
- event: schedule
cron: "0 */6 * * *"
Behaviors subscribe to system events and react without user invocation. Framework manifests include `behaviors/` source directories. OpenClaw is the first platform to deploy them (`~/.openclaw/behaviors/`). `aiwg add-behavior` scaffolds new behaviors.
Platform restriction: Behaviors deploy only to Tier 1 daemon platforms (`[claude-code, opencode, warp, openclaw, codex]`). All six built-in BEHAVIOR.md files enforce this list. `cursor` was removed from concierge behavior (Tier 3).
Agent Identity
SOUL.md
Agent soul files encode persistent character — beliefs, reasoning style, opinions — alongside the existing voice profiles (communication style).
aiwg soul-create test-engineer --template sdlc-reviewer
aiwg soul-enable test-engineer
aiwg soul-blend test-engineer security-auditor --output composite
Four pre-built souls ship with `sdlc-complete`: `test-engineer`, `security-auditor`, `architecture-designer`, `requirements-analyst`. Soul files deploy as `.soul.md` companions alongside agent definitions.
Skills as Canonical Extension Type
SKILL.md is now the source format for all AIWG extensions. Commands are generated at deploy time for providers that require them (Factory, OpenCode, Warp, Windsurf, Copilot, Codex, OpenClaw). Claude Code and Cursor receive skills directly.
- `aiwg add-command` is deprecated — use `aiwg add-skill`
- `userInvocable: false` skips command generation for internal skills
- Skills carry `triggerPhrases` for NL matching and `commandHint` for command generation
- 56 command definitions converted to skills with full metadata
Install & Configuration
Remote install
Install frameworks, addons, and extensions directly — no repo clone required:
npm install -g aiwg
aiwg use sdlc # installs from registry
aiwg use sdlc --provider copilot
Project-level `aiwg.config`
# aiwg.config
provider: claude-code
frameworks:
- sdlc
- research
run:
dev: aiwg use sdlc --dry-run
deploy: aiwg use sdlc
Provider registry, deployment manifest, and `aiwg run` scripts per project. Resolution: `AIWG_CONFIG` env var → `--config-dir` flag → `~/.aiwg` → `~/.config/aiwg`.
`aiwg sync`
One-command installation sync:
aiwg sync # detect → update → re-deploy → health check
aiwg sync --dry-run # preview changes
aiwg sync --provider warp # target a specific provider
Platform Updates
VS Code Extension (new)
AIWG's first IDE extension deploys as a VS Code marketplace package. See the VS Code Extension section above for full details.
`[all]` platforms token
Agent `.md` files can now declare `platforms: [all]` instead of listing every provider explicitly. The deployer replaces it with the target platform at deploy time:
---
platforms: [all] # → [claude-code] when deploying to Claude Code
# → [codex] when deploying to Codex, etc.
---
Five grounding and diversifier agents were converted. `injectPlatform: true` option in the base deployer handles replacement.
OpenClaw (new)
10th deployment platform. First with native behaviors support. All artifact types deploy to `~/.openclaw/`. ClawHub package publication documented.
aiwg use sdlc --provider openclaw
Hermes (first-class)
Graduates from MCP sidecar to full deployment target. `aiwg use sdlc --provider hermes` deploys 96 skills, agents, rules, and templates. Token-optimized AGENTS.md template. 5-tool MCP whitelist (~3,000 tokens vs 12,000+ full surface).
GitHub Copilot
- Agents deploy as `.agent.md` (Markdown body + YAML frontmatter) in `.github/agents/`
- Commands deploy as `.prompt.md` in `.github/prompts/`
- Rules deploy as `.instructions.md` with `applyTo` globs in `.github/instructions/`
- `aiwg mcp install copilot` generates `.vscode/mcp.json`
Windsurf
- Rules migrate from `.windsurfrules` to `.windsurf/rules/` with `trigger: always_on` frontmatter
- Skills deploy to both `.windsurf/skills/` and `.agents/skills/` for cross-agent compatibility
- `.windsurfrules` retained as deprecated stub
Skill Namespace Strategy
Skill names collide across 10 platforms with overlapping ecosystems. v2026.4.0 introduces an ADR-driven, four-layer namespace system to eliminate ambiguity without requiring per-project configuration. (#695–#704)
Four layers
| Layer | Mechanism | Coverage |
|---|---|---|
| 1 — slug prefix | `aiwg-{name}` universal slug for all deployed skill files | All 10 platforms |
| 2 — subdirectory | `aiwg/` subdirectory for platforms that support deep recursion | 9 of 10 platforms |
| 3 — frontmatter | `namespace: aiwg` in SKILL.md frontmatter for MCP SEP-986 alignment | All 10 platforms |
| 4 — short aliases | Opt-in via `--aliases` flag; suppressed by default | All 10 platforms |
Layers 1–3 are always applied. Layer 4 is off by default to avoid introducing the collision surface that layers 1–3 are designed to prevent.
Per-platform deployment adapters
Platforms are grouped by how deeply they support recursive skill directories:
| Group | Platforms | Behavior |
|---|---|---|
| A — deep recursion | claude-code, opencode, cursor, warp, openclaw, codex, copilot, factory | `aiwg/` subdirectory + `aiwg-` slug prefix |
| B — one-level | windsurf | Flat deploy with `aiwg-` slug prefix only (no subdirectory) |
| D — skip | hermes | Namespace layers skipped; Hermes uses aggregated AGENTS.md instead |
Collision detection
Collision checking is now wired into three CLI entry points:
- `aiwg use` — detects conflicts before deploying any skill
- `aiwg doctor` — reports stale or conflicting skill files in health check output
- `aiwg validate-metadata` — validates namespace fields in SKILL.md frontmatter
CLI command blocklist
A command blocklist prevents AI-generated skill names from shadowing built-in CLI commands. The canonical example: `aiwg-sync` (a hypothetical skill) vs `aiwg sync` (the CLI command). Blocked names are checked at `aiwg add-skill` time and caught by `validate-metadata`.
SDLC Enhancements
ops-complete framework
Operational infrastructure framework with YAML-native artifact design:
aiwg use ops # base framework
aiwg use ops --ext sys # fleet/hardware management
aiwg use ops --ext it # CMDB, DR, service deployments
aiwg use ops --ext dev # CI/CD pipelines
aiwg use ops --ext sys,it,dev,stream # all extensions
Kubernetes-inspired envelope (`apiVersion: ops.aiwg.io/v1`). 6 JSON Schema kind definitions. Structured `from:` references replace template syntax.
RLM enhancements
nodes:
- id: review
agent: quality-reviewer
preferred_model: opus
quality_gate:
min_score: 0.8
max_iterations: 3
chunking_strategy: semantic-boundary
batch_size: 25
New examples: `rlm-self-refine`, `rlm-divide-conquer`, `rlm-filter-recurse`. Six AIWG-specific antipatterns documented.
Composable RULES-INDEX hierarchy
Each component owns its own `rules/RULES-INDEX.md`. The CLI assembles them at `aiwg use` time. aiwg-utils ships 7 rules; sdlc-complete ships 33. Addon authors contribute rules without editing shared files.
New Skills
`issue-planner` (sdlc-complete)
Research-grounded SDLC issue planning. Given an objective, `issue-planner`:
1. Dispatches parallel research agents (best practices, current research, vendor docs) 2. Generates the full SDLC doc corpus with gate checks 3. Produces a prioritized, dependency-ordered issue backlog 4. Requires explicit human approval before filing 5. Outputs the exact `address-issues` invocation to execute the backlog
Pair with `--induct-research` to route all references discovered during research into the `induct-research` skill automatically.
`induct-research` (research-complete)
The research analogue of `address-issues`. Accepts any target — file path, directory, URI, named MCP service, or issue reference — then:
- Classifies and analyzes sources in parallel
- Routes filing to Gitea MCP, GitHub CLI, Jira REST, or Codehound based on config
- Supports `AIWG_RESEARCH_REPO` env var for target repo override
Contract syntax for skills
All SKILL.md files now support formal contract fields:
requires:
- "Issue list with reproduction steps"
- "Target codebase read access"
ensures:
- "Each issue has a committed fix or documented blocker"
errors:
- "Tests still failing after 3 attempts → escalate to human"
invariants:
- "Never delete tests to make them pass"
`contract-manifest` generates a human-readable chain manifest showing data-flow wiring (exact/semantic/unresolved) and an optional Mermaid diagram. `contract-validate` gives a pass/fail verdict on a skill chain at wiring time — catching missing dependencies before runtime.
prose-integration addon complete
The full prose-integration addon now ships with 7 skills:
| Skill | Purpose |
|---|---|
| `prose-detect` | 7-signal installation detector (env var → config → local → plugin → home → global → not found) |
| `prose-install` | Install OpenProse with confirmation; `npx` → `git clone` fallback |
| `prose-reader` | Read and parse OpenProse documents |
| `prose-run` | Execute OpenProse programs |
| `prose-validate` | Validate OpenProse output |
| `forme-manifest` | Generate forme manifests |
| `prose-bridge` | (rule) Bridge between AIWG and OpenProse runtimes |
All skills share a centralized Step 0 detection via `prose-detect`. `prose-resolution` rule enforces the canonical detection protocol. See `docs/integration-guide.md` for quick-start.
New Rules (aiwg-utils)
`human-authorization` (HIGH)
Agents must seek explicit human authorization before irreversible or high-stakes actions, especially when those actions are implied by findings rather than explicitly requested.
The five rules:
1. Recommendation ≠ authorization — identifying a problem is not permission to fix it 2. High-stakes categories require confirmation (code deletion, infra changes, public posts, permission changes, mass operations) 3. Task scope is the authorization boundary — don't expand on your own 4. Ask one specific question with concrete options 5. Agents own the gate check — don't rely on system friction to stop you
OpenProse antipatterns (5 new rules)
Derived from the OpenProse research corpus (#617, #648):
| Rule | Level | Summary |
|---|---|---|
| `god-session` | HIGH | Agent with >7 distinct responsibilities must decompose |
| `vague-discretion` | HIGH | Loop/gate conditions must be concrete and measurable |
| `context-bloat` | MEDIUM | Pass file paths not contents; trim excessive background |
| `parallel-then-synthesize` | MEDIUM | Parallelism is wrong when tasks aren't independent |
| `implicit-dependencies` | MEDIUM | Sub-agents start clean; pass all context explicitly |
aiwg-utils now ships 14 rules (was 7).
`no-time-estimates` (HIGH)
Wall-clock time estimates are unreliable in AI-assisted development contexts. Human+AI velocity is non-linear and varies with operator skill, model quality, task decomposability, and centaur configuration. The rule bans time-denominated estimates entirely and replaces them with agent-oriented units:
- Scope count — number of atomic deliverables
- Agent count and roles — who is doing what
- Parallelism map — which batches are parallel vs sequential
- Pass estimate — expected iterations to quality gate
Prohibited phrases include "N days/hours/weeks", "expected duration", and "this should be quick". Apply in planning, sprint estimation, phase planning, and in response to "how long will this take?" questions.
Agentic Installer Addon
`agentic/code/addons/agentic-installer/` ships the `setup.aiwg.io/v1` SetupManifest language — a Kubernetes-style YAML RFC for cross-platform, script-first software installation. (#663–#667) See `docs/configuration/setup-manifest.md` for the permanent field reference.
Design philosophy
Scripts are the primary artifact. The `type: agentic` step exists only for exception handling and adaptive recovery — not as a substitute for scripting known installation sequences. A well-written SetupManifest produces shell scripts that run standalone, without AI tooling.
SetupManifest schema
apiVersion: setup.aiwg.io/v1
kind: SetupManifest
metadata:
name: myapp
version: 1.0.0
platform:
os: [linux, macos]
distros: [ubuntu, debian, fedora]
arch: [x86_64, arm64]
shell: [bash, zsh]
params:
- name: INSTALL_DIR
type: path
required: true
prerequisites:
- detect: "command -v git"
version_min: "2.30"
install_hint: "Install git: https://git-scm.com"
steps:
- id: clone
type: script
script: installer/scripts/clone.sh
verify: "test -d ${INSTALL_DIR}/.git"
- id: configure
type: script
script: installer/scripts/configure.sh
depends_on: [clone]
recovery_procedures:
- id: full-reset
triggers: [clone]
script: installer/scripts/reset.sh
7 step types
| Type | When to use |
|---|---|
| `script` | Known operation — use this first |
| `detect` | Check environment state |
| `ask` | Collect user input |
| `verify` | Post-operation validation |
| `agentic` | Exception handling only |
| `platform-route` | Branch by OS/distro |
| `chain` | Invoke sub-project manifest |
What ships
- JSON Schema — full validation for all step types, platform matrix, params, prerequisites, recovery
- 11 script templates — `clone.sh/ps1`, `install-deps` for ubuntu/fedora/macos/windows, `configure.sh/ps1`, `verify.sh`, `reset.sh`, `hub-chain.sh`
- Lib helpers — `detect.sh`, `params.sh`, `verify.sh`, `detect.ps1` sourced by all templates
- `setup-generate` — discover project artifacts, assemble manifest + script stubs
- `setup-run` — 6-phase execution with platform detection, dry-run, recovery confirmation gate
- `setup-validate` — schema + reference checks + agentic-step audit + `--fix`
- `installer-agent` — specialized persona for manifest generation, validation, and execution
- `installer-safety` (HIGH) — 7 mandatory behaviors: show before run, confirm destructive ops, validate before execute, agentic-steps-as-exceptions, params-before-steps, no inline secrets, platform mismatch = skip
- `installer-authoring` (HIGH) — 5 authoring rules: script-first, always source libs, manifests describe while scripts act, one manifest per unit, every manifest needs recovery
# Generate from project
"generate a setup manifest for this project"
# Validate
aiwg setup-validate setup.manifest.yaml
# Dry run
aiwg setup-run --dry-run
# Execute
aiwg setup-run
Artifact Index Enhancements
`aiwg index` gains three capabilities that unlock richer cross-artifact analysis. (#723)
Typed edges
Edge extraction is now configurable per-pattern. Edge type metadata flows through the graph so queries can filter and traverse by relationship kind (e.g., `depends-on`, `implements`, `tests`, `cites`):
aiwg index build --verbose # shows typed edge extraction progress
aiwg index deps UC-001.md # traverses typed dependency edges
Citation sidecar parser
Nodes can now be enriched from a companion sidecar file rather than having citations embedded in the primary artifact. The parser reads frontmatter from `{filename}.citations.md` (or a configured pattern) and merges declared fields into the node:
# UC-001.citations.md
sources:
- id: NIST-800-53
url: https://csrc.nist.gov/...
- id: RFC-9110
This keeps primary artifacts clean while preserving full citation provenance in the graph.
Cross-graph set queries
The query engine now supports set operations across multiple graphs or result sets:
aiwg index query "authentication" --json | aiwg index query --union "authorization"
aiwg index query --intersection "security" "tested"
aiwg index query --difference "requirements" "implemented"
Useful for gap analysis — e.g., requirements not yet covered by tests.
`filename-metadata` node strategy
A new node ingestion strategy derives metadata from filename patterns without reading file content. Useful for large corpora where content reads are expensive:
strategy: filename-metadata
pattern: "UC-(?P<id>\\d+)-(?P<title>.+)\\.md"
fields: [id, title]
`MetadataSupplementConfig`
A new config block for merging fields from sidecar frontmatter into existing nodes without replacing them. Supports merge strategies (`merge`, `overwrite`, `skip-existing`) per field.
New Rules (aiwg-dev)
`aiwg-ci-safety` (HIGH)
New rule added to the `aiwg-dev` addon to prevent a class of misunderstanding unique to AIWG's dogfooding context: AIWG both builds the framework AND uses it, which creates confusion between AIWG's own CI and CI templates that ship to users.
The two things that look similar but are not:
| Thing | Location | Purpose |
|---|---|---|
| AIWG's own CI | `.gitea/workflows/` | Runs tests on this repo — never touch without human authorization |
| CI templates for users | `agentic/code/frameworks/*/ci/` | Inert source data deployed via `aiwg use --ci-hooks-enabled` |
The rule forbids agents from modifying `.gitea/workflows/` without explicit human authorization, and documents that CI templates for target projects live in framework `ci/` subdirectories. `skill-placement.md` and `addon-boundaries.md` in aiwg-dev were also updated with explicit CI template disambiguation sections.
Semantic Memory Kernel
A new core addon at `agentic/code/addons/semantic-memory/` factors the topology-agnostic operations (ingest, lint, cross-reference, contradiction detection, event logging) out of four domain-scoped frameworks and into a shared kernel. Any consumer that declares a `memory.topology` contract in its `manifest.json` gets durable ingest, lint, query-capture, and event logging for free.
This was the architectural refactor identified by ADR-021: five of nine semantic-memory primitives were already generic (the artifact index, `@-mentions`, W3C PROV), three were domain-tinted but liftable, and one — query-to-artifact capture — was genuinely missing. The kernel ships as `core: true, autoInstall: true`, so every project picks it up on first install.
Kernel skills (5)
- `memory-ingest` — source → summarized pages written per consumer's `pageTemplate`; contradiction detection flags inline; cross-references written per declared `crossRefStyle`
- `memory-lint` — 8 composed checks: broken mentions, orphan pages, stale claims, missing cross-references, index drift, log integrity, provenance coverage, domain-specific rules
- `memory-query-capture` — turns query synthesis (comparisons, analyses, gap-findings) into durable pages so explorations compound instead of evaporating into chat history. Three invocation modes: ambient, explicit, skill-chain.
- `memory-log-append` — writes structured JSON Lines events to `.log.jsonl`; 10 op types documented (5 kernel: ingest, lint, query-capture, log-render, index-rebuild; 5 training-specific added by aiwg-training)
- `memory-log-render` — generates a greppable Markdown view (`## [YYYY-MM-DD] <op> | <subject>` line prefix) from the JSONL stream
The `MemoryTopology` contract
Each consumer declares a `memory.topology` block in its `manifest.json`:
{
"memory": {
"topology": {
"namespace": ".aiwg/research",
"rawSources": ".aiwg/research/sources",
"derivedPages": {
"summary": ".aiwg/research/findings",
"entity": ".aiwg/research/knowledge/entities",
"concept": ".aiwg/research/knowledge/concepts",
"synthesis": ".aiwg/research/synthesis"
},
"index": ".aiwg/research/index.md",
"log": ".aiwg/research/.log.jsonl",
"crossRefStyle": "at-mention",
"pageTemplate": "templates/research-page.md",
"ingestRequires": ["provenance", "grade-quality"],
"lintRules": ["citation-guard", "link-check", "mention-lint"]
}
}
}
Four `crossRefStyle` values ship: `at-mention` (AIWG default), `wikilink` (Obsidian-native, used by llm-wiki), `markdown-link` (standard), `yaml-ref` (Dataview-friendly). All four core frameworks now declare topologies.
Backward compatibility
Five existing skills keep their public names and UX but delegate to the kernel under the hood per ADR-021 D5:
- `induct-research` → `memory-ingest --consumer research-complete` (GRADE + citation layers stay in the wrapper)
- `intake-from-codebase` → `memory-ingest --consumer sdlc-complete`
- `workspace-health` → `memory-lint` for every installed framework
- `corpus-health` → `memory-lint --consumer research-complete` + GRADE coverage
- `cleanup-audit` → `memory-lint` + existing dead-code checks
No workflows break. Existing `.aiwg/` artifacts stay valid — opt in to the kernel path per release.
Topology validation
`aiwg doctor` (and `validate-metadata`) now runs `validateMemoryTopology()` against every declared contract. Catches missing required fields, invalid `crossRefStyle` values, bad namespace (anything not starting with `.aiwg/`), empty `derivedPages`, and wrong array types for `lintRules`/`ingestRequires`. Runs as a warning pass — agents surface issues without blocking deploy.
LLM Wiki Addon
The LLM Wiki pattern — an LLM-maintained Markdown wiki that compounds as sources are ingested — ships as the first thin-topology addon on top of the semantic memory kernel. No custom mechanics; the addon's value is schema + page templates for domains that don't fit a pre-packaged framework.
Install and pick a profile
/plugin install llm-wiki@aiwg
# or
aiwg use llm-wiki
On install, an interactive prompt offers five topology profiles:
1. book-companion — characters, themes, plot threads, quotes (reading-log style) 2. personal — goals, projects, journal entries, insights 3. research-deep-dive — evolving thesis, evidence map (supporting/contradicting/ambiguous), revision history 4. business-team — meeting notes, decisions, action items, project state 5. generic — minimal default with title, summary, cross-references
Non-interactive: `aiwg use llm-wiki --profile book-companion`. The selection writes to `.aiwg/wiki/config.json` so subsequent ingests pick the right template.
Obsidian-native
`crossRefStyle: "wikilink"` means cross-references render as `[[Page Name]]` — directly consumable by Obsidian. The addon ships `docs/obsidian-integration.md` covering Web Clipper for raw source ingestion, Graph View for topology visualization, Dataview for dynamic tables from page frontmatter, and Marp for slide generation.
End-to-end flow
aiwg use llm-wiki --profile personal
# In chat:
# "ingest this article" → memory-ingest --consumer llm-wiki
# "what do I know about X?" → aiwg index query ...
# "save this as a page" → memory-query-capture
# "health check the wiki" → memory-lint --consumer llm-wiki
Training Framework → Standalone Marketplace Plugin
The `training-complete` framework — a corpus-to-dataset pipeline for AI training data curation — moved from `agentic/code/frameworks/training-complete/` into its own repository at `jmagly/aiwg-training`. Main aiwg shrinks by ~20K lines; users who don't need training-data workflows get smaller installs.
Install
/plugin install training@aiwg # Claude Code plugin install
aiwg use training # via AIWG CLI
Dual-stack architecture
aiwg-training ships as a marketplace plugin with both layers:
- Agentic surface (15 SKILL.md files, 7 agents) — works out of the box in any AIWG install. AI agents read specs and execute in-context.
- Optional Python runtime (`aiwg-training` CLI, 14K lines Python, 144 tests) — installed on demand during `aiwg use training` when the `post-install.js` hook detects Python 3.10+. The `pre-skill.js` hook exposes `AIWG_TRAINING_BIN` so skills can conditionally delegate batch work to the CLI.
Skills degrade gracefully: agent-only mode when Python isn't installed, CLI-delegated mode when it is.
What's in the training framework
15 skills covering the full pipeline: `acquire-training-source`, `example-quality-assess`, `license-check`, `example-synthesizer` (Self-Instruct, Evol-Instruct, SQuAD, STaR), `preference-generator` (DPO/KTO/ORPO/SimPO in 3 modes), `synthetic-data-generator` (Orca, Phi, PersonaHub, STaR, ReST with Model Collapse guard), 5 format adapters (Alpaca, ShareGPT, ChatML, JSONL, Parquet), `decontamination-check` (against MMLU/GSM8K/HumanEval/HELM/MT-Bench/AlpacaEval), `dataset-version`, `dataset-reproduce`, `dataset-docs` (auto-populated Datasheets/Model Cards/Data Statements), and the `flow-dataset-build` orchestrator.
Grounded in 485 research REFs; see the training repo README for the full research foundations section.
Architectural decisions
Locked in ADR-022 (10 decisions — framework name, topology, storage model, example granularity, preference pairs, dataset versioning, canonical format, decontamination gate, provenance, synthetic recursion). Published under MIT; dual-hosted privately with public mirror on GitHub.
Eval delegation
aiwg-training detects contamination; actual evaluation execution (running benchmarks against trained models) is delegated to the separate `matric-eval` project. See `docs/matric-eval-integration.md` in the training repo.
Bug Fixes
- `aiwg use all` rule count — reported 1 rule installed regardless of actual count; `countDeployedArtifacts` was counting `.md` files on disk; with `deployIndexOnly: true` only one file (`RULES-INDEX.md`) exists; fixed with `countRules()` that parses `(N rules — ...)` section headers from RULES-INDEX files
- `new-project` in skills catalog — was not registered in `skills.manifest.json`; now correctly discoverable via `aiwg skills list`
- `sdlc-accelerate` handler — "No handler found" error on `aiwg use sdlc` completion fixed
- External agent loop startup crash — SemanticMemory/MemoryPromotion constructors received objects instead of path strings; loops appeared to start but were always dead on arrival
- `--dangerous` flag position — was appended after the prompt string; moved before so it is treated as a CLI flag
- Codex model IDs — `gpt-5.3-codex` aliases now map to `gpt-5.4` canonical IDs; previously caused 404 errors
- OpenCode 1.0.x adapter — event-stream parsing updated for `opencode run` protocol change; silent output drop on all 1.0.x installs fixed
- Factory command injection — `$ARGUMENTS` now injected at deploy time; static-only execution silently dropped user input before
- `aiwg doctor` AIWG_ROOT resolution — resolved from script location instead of hardcoded legacy path; failed on non-standard installs before
- OpenCode deployment writing to non-existent directories — deployment now creates missing directories before writing; previously silently dropped artifacts (#705)
- Windsurf skill deployment — now uses native skill deployment path; experimental label removed (#703)
- Factory, Warp, Copilot recursion depth — corrected to deep-recursion (Group A) per source-confirmed platform research; were previously categorized as one-level (#702, #704)
- CI test coverage — widened to run all non-inference tests; removed redundant Full Test Visibility job that was duplicating results
- 41 skills migrated from `commands[]` to `skills[]` — manifests that incorrectly listed skills under `commands` now use the correct `skills` key; affected discoverability via `aiwg catalog` (#706, #707)
- Agent-loop addon — renamed from `ralph/` to canonical `agent-loop/` path; 5 missing skills registered; aliases added so existing `aiwg ralph-*` invocations continue to work (#705)
Migration Notes
`aiwg.config` replaces manual provider config
Previous projects using manual provider configuration should run `aiwg migrate-workspace` to generate an `aiwg.config`.
Commands deprecated
`aiwg add-command` now emits a deprecation warning. Replace with `aiwg add-skill` — skills generate commands automatically for providers that require them.
AIWG.md hook file
Projects using CLAUDE.md for AIWG context injection should run `aiwg migrate-hook` to decouple context into a toggleable `AIWG.md`. CLAUDE.md becomes a 12-line wrapper.
`@$AIWG_ROOT/` in custom skills
Any custom skills referencing AIWG corpus files via bare paths (`@agentic/code/...`, `@docs/...`, `@src/...`) should be updated to use the `@$AIWG_ROOT/` prefix. Run `/link-check` to detect all affected refs.
Install / Upgrade
npm install -g aiwg # fresh install
npm update -g aiwg # upgrade from v2026.3.x
aiwg sync # re-deploy frameworks after upgrade
aiwg doctor # verify installation health
What's Next
- PTY adapter gRPC transport (#657) — `PTYAdapter.fromSandbox()` for container/VM execution modes; depends on `agentic-sandbox#131`
- VS Code extension Phase 3+ (#623) — Marketplace publishing, inline skill runner, deeper Copilot integration
- Full corpus audit against the new reference contract and thin-skill principle (#639)
- Agentic smithing improvements — AgentSmith and SkillSmith enhancements
- Voice framework v2