Observed since 20 Oct, 20:07 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
AI Developer Workflow System - Agentic Engineering Framework CLI
Version: v2.2 (framework standard) — distributed as the
adwspackage, versioned 2.2.x on PyPI Date: 2026-07-10The framework standard (these docs, templates, and banners) is versioned v2.x, and the
adwspackage that ships it tracks the same major.minor (2.2.x). Generatedmanifest.ymlfiles are stamped with the package version, which is whatadws statusandadws upgradecompare.
A modular, vendor-neutral standard for how autonomous coding agents should operate within software engineering teams. Drop the parts you need into any project, with any capable agent, in any language.
Adding ADW to a repository? Start with Consuming the Framework — the four-step contract: install the package,
adws init, pin the version, add the drift gate. Your repo gets three files, not three hundred.Already onboarded and learning the workflow? See the day-to-day guide.
ADW_ prefix and validationadw_modules/ for agent execution, git ops, worktree management| Principle | What It Means |
|---|---|
| Vendor-neutral | Core docs never reference a specific agent tool. Vendor specifics live in adapters/. |
| Modular | Every document is independent. Adopt one file or all of them. |
| Incremental adoption | Start with a 30-second setup (Tier 1) and grow into advanced orchestration (Tier 3). |
| Any language, any agent | The lifecycle and risk model work whether you ship Solidity, Python, Rust, TypeScript, or COBOL. |
| Actionable over aspirational | Every section tells you what to do, not what to think about. |
| Templates are real files | Copy-paste ready, with <!-- CUSTOMIZE: --> markers where you fill in your specifics. |
uv run; pip cannot substitute because it has no script runner. Install with curl -LsSf https://astral.sh/uv/install.sh | shRun adws health at any time to verify all of the above.
| Change | What it gives you |
|---|---|
adws doctor [--strict] | The portable drift gate — one CI line keeps framework content from creeping back into a consumer repo |
adws standards list|show|path | Read the framework's standards docs straight from the installed package; they are no longer copied into your repo |
| Consume, don't copy | adws init/upgrade write only your own files — see docs/consuming-the-framework.md |
| Core install + extras | pip install adws is the core loop; adws[webhook], [cron], [orchestrator], [full] add the heavier subsystems with install hints instead of import errors |
| Pinned publish gates | The exact file list of the wheel and sdist is committed and CI-enforced, so what ships is reviewable as a diff |
The adws CLI is published on PyPI. With uv there is nothing to set up — no virtual environment needed:
# 1. Initialize ADW in your project (one-off, nothing installed)
cd your-repo/
uvx adws init
# Or install the CLI permanently:
uv tool install adws # or: pipx install adws, or: pip install adws
adws init
# 2. Fill in your environment variables
$EDITOR .env
# Done. Your agent now has project context and a work standard.
adws init auto-detects your project (language, framework, paths) and writes only your project's own files (AGENTS.md, manifest.yml, .env, .mcp.json) plus machine-local .claude/ projections. The framework content itself (docs, skills, adapters) stays inside the installed package and is resolved from there — read it with adws standards list.
Adding this to a real repository? Read docs/consuming-the-framework.md — why the framework is consumed as a pinned package rather than copied in, what lands in your repo (three files) versus what stays in the package, and the four onboarding steps:
init, pin, drift gate, gitignore.
git clone https://github.com/Superlogic/AgenticEngineeringFramework.git
cd AgenticEngineeringFramework && uv venv && uv pip install -e . && pytest adws/tests/
An editable install of this checkout, for changing the framework. It is not an installation
method for a project: the pre-2.1.0 source installer (install.sh, which cloned this repo into a
project's .adws/) was removed in 3.0.0 — projects consume the pinned package (Option A).
# `adws init` writes both files for you — this is the manual equivalent.
# No CLI exposes templates/, and this repository is private, so fetch them with
# an authenticated client (`gh auth login` first):
gh api repos/Superlogic/AgenticEngineeringFramework/contents/templates/AGENTS.md \
--jq '.content' | base64 -d > AGENTS.md
gh api repos/Superlogic/AgenticEngineeringFramework/contents/templates/manifest.yml \
--jq '.content' | base64 -d > manifest.yml
# Then fill in the CUSTOMIZE sections
$EDITOR AGENTS.md
That's minimum viable adoption: your agent reads AGENTS.md for project context and follows the
lifecycle described in adws standards show workflow. You will not get slash commands, hooks or
the drift gate this way — for those, use Option A.
Using Claude Code? After installation, use slash commands like
/prime,/feature, and/implementfor guided workflows.
The adws CLI ships with the complete framework bundled inside the package. Running adws init in your project:
pyproject.toml, package.json, Cargo.toml, …)manifest.yml and AGENTS.md with the detected values.claude/ projections for detected agent tools — machine-managed copies of the packaged workflow commands (adapters/claude-code/projected-skills.txt — the procedure skills such as /prime and /pr-review come from the aef-engineering marketplace plugin since 3.0.0) and hooks, refreshed on every adws init/adws upgrade (and, in Claude Code, at session start whenever the version stamped in the manifest no longer matches the repo's pin — see docs/hooks.md), pruned when a skill disappears upstream, and gitignored via a generated .gitignore manifest inside each directory. They are copies rather than symlinks on purpose: a symlink into uv's ephemeral cache dangles after uv cache clean, and a dangling hook fails open — silently disabling the pre_tool_use guard. Skills you write in your own skills/ get relative, committable symlinks and take precedence over the packaged ones| Method | Command | Best For |
|---|---|---|
| PyPI via uv (Recommended) | uv tool install adws or one-off uvx adws init | All users — no virtual environment, isolated install |
| PyPI via pipx / pip | pipx install adws or pip install adws | Users without uv |
| Non-interactive | adws init --non-interactive | CI/CD pipelines — no prompts |
| Manual | Copy templates individually | Understanding each component |
pip install adws installs a core package: the plan → build → test → review loop against Claude Code, GitHub, Linear, and Playwright E2E. Heavier subsystems are opt-in:
| Install | Adds |
|---|---|
pip install adws | Core — init, health, plan, build, worktree, GitHub + Linear, Playwright E2E |
pip install 'adws[orchestrator]' | adws dashboard * — multi-agent engine and web dashboard |
pip install 'adws[webhook]' | adws triggers start --webhook — FastAPI webhook server |
pip install 'adws[cron]' | adws sync *, adws triggers start — polling triggers |
pip install 'adws[full]' | Everything |
A command needing a missing extra prints the exact install line rather than failing inside a subprocess. adws health lists which extras are present. See docs/packaging.md.
Every integration accepts either OAuth or an API key, resolved in one place with consistent precedence — an explicit credential always beats an ambient CLI session:
| Service | OAuth | API key |
|---|---|---|
| Anthropic | CLAUDE_CODE_OAUTH_TOKEN, or an interactive claude login | ANTHROPIC_API_KEY |
| Linear | LINEAR_OAUTH_TOKEN (sent as Bearer) | LINEAR_API_KEY (sent raw) |
| GitHub | gh auth login session | GITHUB_PAT |
Setting none of them and relying on an interactive claude login is fully supported. Run adws health to see which method resolved. See docs/auth.md.
adws health fails without it. The workflow scripts (adw_plan_build.py, adw_*_iso.py), the orchestrator engine, the pollers, and the agent hooks in .claude/hooks/ all declare their dependencies as PEP 723 inline metadata and launch via uv run. pip installs the adws CLI package but cannot run those scriptsgh) — optional, for PR/issue operationsnpx @playwright/mcp)pip methodWritten into your repo — yours to edit and commit:
| File | Purpose | Commit it? |
|---|---|---|
AGENTS.md | Human-readable project configuration (auto-populated with detected values) | ✅ yes |
manifest.yml | Machine-readable project entry point; carries the framework_version stamp | ✅ yes |
.env | Environment variables, copied from the template only when absent | ❌ never |
.mcp.json | Playwright MCP registration — merged; your existing servers are preserved | ✅ yes |
playwright-mcp-config.json | Playwright MCP settings, written only when absent | ✅ yes |
.gitignore | A logs/ rule is appended when absent; the file is never rewritten | ✅ yes |
.adws/ | Runtime state only (trigger and dashboard pid files). A framework checkout here is the removed pre-2.1.0 source install — adws doctor reports it | ❌ never |
Generated by the adapters (run when agent tools are detected) — machine-local, regenerated on
every adws init/adws upgrade, and gitignored via a .gitignore manifest the adapter writes
inside each directory:
| Directory | Purpose | Commit it? |
|---|---|---|
.claude/commands/, .claude/hooks/ | Claude Code slash commands and hooks | ❌ never |
.claude/settings.json | Seeded once when absent, then yours | your call |
What is not written into your repo. docs/, skills/, adapters/, scripts/ and
ai_docs/ stay inside the installed adws package — read the docs with adws standards list /
adws standards show <doc>, and the skills reach your tools as the projections above. If those
directories exist at your repo root they are pre-2.1 vendored leftovers and adws doctor will
flag them. (specs/ is different again: it is yours, created by /feature, /bug and
/chore — the framework never writes or removes it.)
Note on slash commands:
.claude/commands/is generated artifacts — never edit them. Framework skills come from the installed package; your own live in your repo'sskills/*/SKILL.mdand win on name collisions. To regenerate after adding a skill:adws upgrade # re-runs the adapters for every detected tool(Working inside the framework repo itself, you can still call
bash adapters/<tool>/generate.shdirectly.)
Upgrading is always two steps: update the CLI, then refresh the framework files in your repo. Updating the CLI alone does not change any file in your project. See docs/upgrading.md for the full guide.
PyPI installs:
uv tool upgrade adws # or: pipx upgrade adws, or: pip install -U adws
adws upgrade # restamp + regenerate the projections in your repo
adws doctorThe drift gate ships inside the package, so it upgrades with your pin. One line in consumer CI:
uvx --from adws==<pin> adws doctor --strict # non-zero exit on any drift
It flags vendored framework trees (adws/, adapters/, skills/, …), local copies shadowing shipped standards docs, legacy or out-of-sync command projections, committed machine-managed files, and a missing/stale framework_version stamp. Without --strict it reports the same findings as warnings (exit 0) plus environment checks.
adws upgrade updates the framework_version stamp and regenerates the machine-managed .claude/ projections — framework content itself lives in the installed package (AITOK-766), so upgrading the package upgrades every doc, skill, and hook at once. It never touches user-owned files: your AGENTS.md, manifest.yml (except its framework_version stamp), .env, and specs/ content stay exactly as you left them. Run adws status to see whether your project's stamp is older than the installed CLI.
Re-running adws init on an initialized project is a reset, not an upgrade: it replaces AGENTS.md/manifest.yml with fresh templates (after writing timestamped .backup copies) but always preserves an existing .env.
No local Python, Node.js, git, gh, uv, or Claude Code CLI needed — just Docker:
cp .env.example .env # fill in GITHUB_PAT, ANTHROPIC_API_KEY (or CLAUDE_CODE_OAUTH_TOKEN), ...
docker compose up -d # orchestrator dashboard + issue-sync + GitHub cron poller
docker compose run --rm cli init # ad-hoc CLI usage against the repo mounted at /workspace
See docs/docker.md for the full guide, including OAuth-based Anthropic auth and Linear polling.
Remove only what the framework wrote — see What Gets Installed.
⚠️ Do not delete
docs/,scripts/,skills/orspecs/. In a real project those are yours, andspecs/holds every plan/feature,/bugand/chorehas ever written. The framework does not create them (a pre-2.1 install may have left framework copies there — review before removing anything).
# 1. Files `adws init` created
rm -f AGENTS.md manifest.yml .mcp.json playwright-mcp-config.json
# 2. Machine-local projections (each dir's generated .gitignore lists what adws manages)
rm -rf .claude/commands .claude/hooks
# 3. Source installs only: the framework checkout
rm -rf .adws/
# 4. The CLI itself
uv tool uninstall adws
.env holds your secrets and is left alone — remove it deliberately, not as part of an
uninstall. Finally, drop the logs/ rule adws init appended to your .gitignore.
For automated installations without prompts (agents, CI/CD pipelines):
# One-off run from PyPI, no setup
uvx adws init --non-interactive
Available flags:
--non-interactive — Run without user prompts--force — Overwrite existing files without confirmation--skip-detection — Use template files only, skip auto-detectionWhat happens in agent mode:
.adws/AGENTS.md, manifest.yml, .env).claude/ generatedadws package installed (editable mode)adws init --non-interactive runs automaticallymanifest.yml and AGENTS.md populated with detected valuesNote: Framework files (docs/, scripts/, skills/, adapters/) live inside .adws/ and are not copied to the project root. Access them via .adws/docs/, .adws/scripts/, etc.
The adws CLI provides unified commands for the framework:
# Service management
adws start # Start project services (auto-discovers backend/frontend)
adws stop # Stop all running services
# Workflow
adws plan <issue> # Generate implementation plan for GitHub issue #<issue>
adws build <issue> # Build/Implement solution for issue #<issue>
# Diagnostics
adws health # Run system health check
adws status # Show ADW status for current project
adws doctor # Report agent-stack drift (warnings)
adws doctor --strict # Same checks, non-zero exit — the consumer CI gate
# Framework standards docs (they are not copied into your repo)
adws standards list # List the shipped standards docs
adws standards show workflow # Print one
adws standards path risk-model # Its on-disk path, for an editor or pager
# Issue management
adws create-issue "Title" --body "Description" --labels "bug"
# Create new GitHub issue
# Worktree management (parallel development)
adws worktree create feature/branch-name [--init]
# Create new worktree for parallel development
adws worktree list # List all worktrees
adws worktree remove <path> [--force]
# Remove a worktree
# Multi-agent orchestrator dashboard
adws dashboard start # Start the orchestrator dashboard (background process)
adws dashboard stop # Stop the orchestrator dashboard
adws dashboard status # Show whether the orchestrator dashboard is running
# Issue-sync poller (posts run status back to GitHub/Linear/Jira)
adws sync start # Start the issue-sync poller
adws sync stop # Stop the issue-sync poller
adws sync status # Show issue-sync poller status
# Triggers — start everything needed to pick up new issues in one command
adws triggers start # dashboard + sync + GitHub/Linear/Jira cron pollers
adws triggers start --webhook # ...cron pollers replaced by the webhook server
adws triggers stop # Stop trigger(s) only (dashboard/sync keep running)
adws triggers status # Show dashboard/sync/trigger status, all at once
# Maintenance
adws init # Initialize ADW in current directory (auto-detects project type)
adws init --force # Reinitialize (backs up AGENTS.md/manifest.yml, preserves .env)
adws init --non-interactive # Skip prompts (for CI/CD)
adws upgrade # Restamp + regenerate projections (preserves user-owned files)
By default, ADW reads the repository from git remote get-url origin. To operate on a different repository:
# Via environment variable
export ADW_REPO="owner/repo"
adws plan 123
# Via CLI flag
adws plan 123 --repo owner/repo
adws dashboard start launches a long-lived orchestration engine (SQLite-backed, supports N concurrent runs) with a lightweight built-in web dashboard — no Node/npm required, the UI is plain HTML/CSS/JS served directly by the engine's own FastAPI process.
ANTHROPIC_API_KEY — the orchestrator talks to the Anthropic API directly via the Claude Agent SDK, which is a separate mechanism from CLAUDE_CODE_PATH (used by the single-agent claude_cli provider, which shells out to the Claude Code CLI binary instead).ADW_AGENT_PROVIDER=venice_api users, and users of the deprecated opencode provider, keep the existing single-agent flow.adws dashboard start # Start the orchestrator dashboard (background process)
# Prints the dashboard URL, e.g. http://localhost:9403
adws dashboard status # Show whether the dashboard is running (and its PID)
adws dashboard stop # Stop the dashboard
Starting a job doesn't require an issue tracker — click + New Run in the dashboard's run list to start one directly (repo/issue fields optional, prompt required). For issue-tracker-driven runs, adws triggers start is the single command that gets everything going: it starts the dashboard and adws sync (the poller that posts progress comments back to GitHub/Linear/Jira) if they aren't already running, then starts the GitHub + Linear + Jira cron pollers (or the webhook server with --webhook). adws triggers stop only stops the trigger(s) — the dashboard and sync poller keep running so in-flight runs aren't interrupted; use adws dashboard stop/adws sync stop for a full teardown.
adws/trigger_webhook.py (/gh-webhook, /linear-webhook, /jira-webhook) and the polling scripts adws/trigger_cron.py / adws/trigger_linear_cron.py / adws/trigger_jira_cron.py all route through one shared gate, adws/orchestration_router.py:
ADW_ORCHESTRATOR_MODE=label): only issues labeled orchestrate go to the orchestrator; everything else keeps using the existing single-agent adw_plan_build.py flow, unchanged. This is deliberate — upgrading never silently changes existing behavior.ADW_ORCHESTRATOR_MODE=always routes every triggering issue to the orchestrator; off disables orchestrator routing entirely (single-agent only, an emergency kill-switch).adws/adw_issue_sync.py polls active runs and posts a 🤖 ADW: "started" comment, then a "complete"/"blocked" comment (with the run's latest_summary/error) back to the originating GitHub, Linear, or Jira issue once it finishes.adw_plan_build.py (the single-agent path used when use_orchestrator is false) is GitHub-only, so Jira/Linear issues need ADW_ORCHESTRATOR_MODE=always or the orchestrate label to actually run.Every orchestrator run gets its own real, isolated working directory — adws/adw_orchestrator/repo_isolation.py clones the triggering issue's actual repo (via gh repo clone, so it works for public and private repos alike) into trees/<adw_id>/ and checks out a fresh branch adw-<adw_id>, instead of operating wherever the server process happens to be running. This matters even for interactive dashboard use: without it, an orchestrator run for some-org/other-repo would silently read/edit files in this repo. Cleanup is currently manual (rm -rf trees/<adw_id>) — there's no automated GC yet.
Open the printed URL in a browser for a run list (status, cost, token usage, updated-at) — click into a run for its detail view: the agents the orchestrator spawned, a live activity/chat log (streamed over the engine's /ws WebSocket), and a message box to send it new instructions interactively.
For programmatic/CI use, the engine also exposes a small HTTP contract independent of the dashboard UI: POST /orchestrator/runs (start or idempotently reuse a run by adw_id), GET /orchestrator/runs/{run_id} (poll status/cost/latest_summary), and GET /orchestrator/runs (list, used by the dashboard's run list). See adws/orchestrator_client.py for the Python wrapper used by the trigger/routing layer.
See .env.example for orchestrator-related environment variables (ORCHESTRATOR_PORT, ADW_ORCHESTRATOR_MODE, LINEAR_WEBHOOK_SECRET, GITHUB_WEBHOOK_SECRET, JIRA_WEBHOOK_SECRET) and docs/upgrading.md for how the orchestration engine (.adws/adw_orchestrator/) is refreshed.
manifest.yml is the machine-readable project entry point. Every tool (Claude Code, the ADW pipelines) reads it from the repo root. It eliminates discovery overhead and provides canonical paths.
framework_version: "2.2.2" # written by `adws init`, refreshed by `adws upgrade` # stamped with the adws package version that initialized the project
project:
name: "my-project"
language: "Python 3.12"
framework: "FastAPI"
entry_points:
readme: "README.md"
agents: "AGENTS.md"
env: ".env"
paths:
source: "src/"
tests: "tests/"
docs: "docs/"
scripts: "scripts/"
The full schema — which blocks are required, and which names the shipped skills read — is templates/manifest.yml, explained in docs/bootstrap-protocol.md.
When you run adws init, the framework automatically detects your project type by parsing existing configuration files:
| Detected File | Language | Frameworks Recognized |
|---|---|---|
pyproject.toml | Python | FastAPI, Flask, Django, Streamlit, and 20+ more |
package.json | JavaScript/TypeScript | Next.js, React, Vue, Express, NestJS, and 20+ more |
Cargo.toml | Rust | Actix Web, Axum, Rocket, Tauri, and 10+ more |
go.mod | Go | Gin, Echo, Fiber, Beego, and 10+ more |
Gemfile | Ruby | Rails, Sinatra, Hanami, and 8+ more |
pom.xml / build.gradle | Java | Spring Boot, Quarkus, Micronaut, and 15+ more |
foundry.toml / hardhat.config.js | Solidity | Foundry, Hardhat, Truffle, Brownie, Ape |
Detection populates manifest.yml with:
requires-python, go 1.21, etc.When manifest.yml exists and is valid, the prime skill skips discovery and uses it directly (Step 0).
AgenticEngineeringFramework/
├── README.md ← You are here
├── pyproject.toml ← Python package configuration for editable installs
├── .env.example ← Environment variable template
├── .gitignore ← Git ignore rules
├── docs/
│ ├── workflow.md ← Core 7-stage lifecycle standard
│ ├── risk-model.md ← Risk classification & controls
│ ├── bootstrap-protocol.md ← Repository bootstrap guide
│ ├── cross-tool-standard.md ← Cross-tool skill sharing
│ ├── repository-structure.md ← Standard repo structure
│ └── tutorial.md ← End-to-end lifecycle tutorial
├── templates/
│ ├── AGENTS.md ← Project config for agents
│ ├── manifest.yml ← Universal machine-readable entry point
│ ├── SKILL.md ← Canonical skill template
│ ├── plan-template.md ← Task plan template
│ ├── review-template.md ← Review checklist template
│ ├── validation-readme.md ← Validation entrypoints
│ ├── bootstrap-prompt.md ← Universal bootstrap prompt
│ ├── prime.md ← Repository auto-bootstrap prompt
│ ├── validate-manifest.yml ← CI workflow for manifest validation
│ └── Justfile ← Lifecycle entry points
├── adapters/
│ ├── README.md ← How to create tool adapters
│ ├── agent-zero/ ← Agent-Zero adapter
│ ├── claude-code/ ← Claude Code adapter
│ └── pi-mono/ ← Pi Mono adapter
├── adws/ ← AI Developer Workflow system (Python)
│ ├── __init__.py ← Package metadata
│ ├── cli.py ← CLI entry point (adws command)
│ ├── README.md ← ADW setup and usage guide
│ ├── adw_plan_build.py ← Main workflow orchestration
│ ├── agent.py ← Agent provider interface (backward-compatible)
│ ├── providers.py ← Agent provider implementations (Claude CLI, Venice; OpenCode deprecated)
│ ├── data_types.py ← Pydantic models for type safety
│ ├── github.py ← GitHub API operations (repo-agnostic via ADW_REPO)
│ ├── health_check.py ← Health check endpoint
│ ├── trigger_cron.py ← Polling-based GitHub issue monitor
│ ├── trigger_linear_cron.py ← Polling-based Linear issue monitor
│ ├── trigger_jira_cron.py ← Polling-based Jira issue monitor
│ ├── trigger_webhook.py ← Webhook processor (/gh-webhook, /linear-webhook, /jira-webhook)
│ ├── webhook_security.py ← GitHub/Linear/Jira webhook signature verification
│ ├── orchestration_router.py ← Shared single-agent-vs-orchestrator routing gate
│ ├── orchestrator_client.py ← HTTP client for the orchestrator engine's REST API
│ ├── adw_issue_sync.py ← Syncs orchestrator run progress back to issue comments
│ ├── linear.py ← Linear GraphQL API operations
│ ├── jira.py ← Jira Cloud REST API operations
│ ├── utils.py ← Shared utilities
│ ├── py.typed ← Type hint marker
│ ├── adw_orchestrator/ ← Multi-agent orchestration engine (`adws dashboard start`)
│ │ ├── main.py ← FastAPI app: REST + WebSocket + static dashboard UI
│ │ ├── service.py ← Orchestrator agent execution (Claude Agent SDK)
│ │ ├── agent_manager.py ← Sub-agent lifecycle + the 8 management tools
│ │ ├── repo_isolation.py ← Per-run repo clone/branch isolation (trees/<adw_id>/)
│ │ ├── database.py ← SQLite persistence (N concurrent runs)
│ │ └── static/ ← Lightweight dashboard UI (plain HTML/CSS/JS, no build step)
│ └── tests/ ← Test suite (310+ tests)
│ ├── conftest.py ← Shared test fixtures
│ ├── test_data_types.py
│ ├── test_utils.py
│ ├── test_health_check.py
│ ├── test_github.py
│ ├── test_providers.py
│ ├── test_trigger_webhook.py
│ ├── test_orchestration_router.py
│ ├── test_orchestrator_database.py
│ ├── test_repo_isolation.py
│ ├── test_webhook_security.py
│ ├── test_adw_issue_sync.py
│ ├── test_linear.py
│ ├── test_jira.py
│ └── test_cli.py ← CLI and repo-agnostic tests
├── .claude/
│ ├── CLAUDE.md ← Claude Code project context (generated from AGENTS.md)
│ └── commands/ ← Claude Code slash commands (generated from skills/)
│ ├── prime.md
│ └── setup-linting.md
│ ├── prime.md ← Prime / bootstrap command
│ ├── feature.md ← Feature planning command
│ ├── bug.md ← Bug planning command
│ ├── chore.md ← Chore planning command
│ ├── implement.md ← Implementation command
│ ├── commit.md ← Git commit command
│ ├── pull_request.md ← PR creation command
│ ├── install.md ← Install & prime command
│ ├── start.md ← Start services command
│ └── tools.md ← List tools command
├── skills/ ← Executable skill implementations
│ ├── prime/ ← Auto-bootstrap a repo for agents
│ │ └── SKILL.md
│ └── setup-linting/ ← Configure and enable a code linter
│ └── SKILL.md
├── scripts/ ← Development and operational scripts
│ ├── start.sh ← Start backend and frontend servers
│ ├── stop_apps.sh ← Stop all running services
│ ├── expose_webhook.sh ← Expose webhook via Cloudflare tunnel
│ ├── clear_issue_comments.sh ← Clear all comments from a GitHub issue
│ ├── delete_pr.sh ← Delete a PR and optionally its branch
│ └── copy_dot_env.sh ← Copy .env from sibling project
├── .env.example ← Environment variable template
├── ai_docs/ ← AI-generated documentation
│ └── README.md
└── specs/ ← Specification files
└── README.md
The standards docs referenced below are not files in your repo — read them from the
installed package with adws standards show <name>.
| What | Why |
|---|---|
uvx adws init | Writes AGENTS.md, manifest.yml, .env, .mcp.json and the tool projections |
adws standards show workflow | Understand the 7-stage lifecycle your agent should follow |
Result: Agent has project awareness, machine-readable entry point, and a structured work process.
| What | Why |
|---|---|
| Everything in Tier 1 | Foundation |
| Pin the version + add the drift gate — docs/consuming-the-framework.md | Reproducible adoption; framework content cannot creep back in |
Fill in manifest.yml's validation: block | /test and the workflow stages read your real commands from it |
adws standards show risk-model | Calibrate controls to change risk |
adws doctor | See drift before it reaches CI |
Result: Full lifecycle with validation, planning, and risk-appropriate controls.
| What | Why |
|---|---|
| Everything in Tier 2 | Foundation |
adws standards show bootstrap-protocol | Full repo audit and setup |
adws standards show cross-tool-standard | Reusable, portable agent skills |
adws standards show repository-structure | Canonical file organization |
adws dashboard start / adws triggers start | Multi-agent orchestration and issue-tracker triggers |
Write your own skills in skills/<name>/SKILL.md | They project alongside the packaged ones and win on name collisions |
Result: Production-grade agentic engineering with cross-tool portability.
The
templates/files (plan-template.md,review-template.md,Justfile,validate-manifest.yml) are not exposed by the CLI —adws initwrites the ones a project needs. To get the others, browse the repo'stemplates/directory (this repository is private, so you need access) or fetch them withgh apias shown under Option C above.
| Document | Purpose | Adoption Tier |
|---|---|---|
| docs/consuming-the-framework.md | Start here to adopt it in a repo — why it is a pinned dependency, what lands in your repo, the four onboarding steps | Tier 1 |
| docs/ONBOARDING.md | Working with ADW day to day, once a repo is onboarded (learning the workflow) | Tier 1 |
| docs/auth.md | OAuth and API-key authentication for Anthropic, Linear, and GitHub | Tier 1 |
| docs/packaging.md | Core package vs optional extras, and what each unlocks | Tier 1 |
| docs/e2e-testing.md | Playwright MCP end-to-end testing — setup, writing tests, the result contract | Tier 2 |
| docs/SLASH_COMMANDS.md | Quick reference for the Claude Code slash commands | Tier 1 |
| docs/upgrading.md | Upgrade guide — file ownership, per-method procedures, backups | Tier 1 |
| docs/workflow.md | Core 7-stage lifecycle and agent execution rules | Tier 1 |
| docs/hooks.md | Agent hooks — the .env/rm -rf guard, the exit-code contract, safe customization | Tier 1 |
| docs/code-quality.md | Local lint/coverage loop, what each tool catches, and the SonarCloud cognitive-complexity gap | Tier 2 |
| docs/risk-model.md | Risk classification, controls matrix, escalation policy | Tier 2 |
| docs/bootstrap-protocol.md | Repository audit and bootstrap procedure | Tier 3 |
| docs/cross-tool-standard.md | Cross-tool skill sharing standard | Tier 3 |
| docs/repository-structure.md | Canonical repository structure | Tier 3 |
| docs/tutorial.md | End-to-end lifecycle tutorial (Medium risk example) | Tier 2 |
| docs/docker.md | Running adws and its services in Docker (no local Python/Node/git/gh/uv needed) | Tier 2 |
| templates/AGENTS.md | Project configuration for agents | Tier 1 |
| templates/manifest.yml | Universal machine-readable entry point | Tier 1 |
| templates/SKILL.md | Skill definition template | Tier 3 |
| templates/plan-template.md | Task planning template | Tier 2 |
| templates/review-template.md | Review checklist template | Tier 2 |
| templates/validation-readme.md | Validation command reference | Tier 2 |
| templates/bootstrap-prompt.md | Universal bootstrap prompt | Tier 3 |
| templates/prime.md | Repository auto-bootstrap prompt | Tier 3 |
| templates/validate-manifest.yml | CI workflow for manifest validation | Tier 3 |
| templates/Justfile | Lifecycle automation commands | Tier 2 |
| adapters/README.md | Tool adapter creation guide | Tier 3 |
| adapters/agent-zero/ | Agent-Zero adapter (mapping + generator) | Tier 3 |
| adapters/claude-code/ | Claude Code adapter (mapping + generator) | Tier 3 |
| adapters/pi-mono/ | Pi Mono adapter (mapping + generator) | Tier 3 |
| adws/README.md | AI Developer Workflow — setup, usage, and configuration | Tier 3 |
| adws/cli.py | CLI entry point (adws command) | Tier 3 |
| adws/agent.py | Agent provider interface (backward-compatible) | Tier 3 |
| adws/providers.py | Agent provider implementations (Claude CLI, Venice API; OpenCode deprecated) | Tier 3 |
| adws/auth.py | Credential resolution — OAuth or API key for Anthropic, Linear, GitHub | Tier 3 |
| adws/capabilities.py | Optional-extra gating for CLI commands | Tier 3 |
| adws/data_types.py | Pydantic models for type safety | Tier 3 |
| adws/github.py | GitHub API operations (repo-agnostic via ADW_REPO) | Tier 3 |
| adws/tests/ | Smoke tests for ADW modules (pytest adws/tests/ from root) | Tier 3 |
| skills/agent-experts/SKILL.md | Deploy self-improving domain experts (act → learn → reuse) for High-risk codebase areas | Tier 3 |
| skills/prime/SKILL.md | Auto-bootstrap skill implementation | Tier 3 |
| skills/rust-skills/SKILL.md | Rust best practices — 265 rules across 26 categories (adopted from leonardomso/rust-skills, MIT) | Tier 3 |
| skills/setup-linting/SKILL.md | Linter configuration skill implementation | Tier 3 |
| scripts/ | Development and operational shell scripts | Tier 2 |
| .env.example | Environment variable template (copy to .env and fill in) | Tier 1 |
| .gitignore | Git ignore rules (env, pycache, agents, IDE) | Tier 1 |
This framework is designed to evolve. To propose changes:
This framework is released for use by any engineering team. Adapt freely.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 3.3.0 | 19 Oct 2026 | 19 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 20:07 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:6cda9d4fbd4667a372d102287e5714ff9ff90993feb6fe9c1fdcdb994aba56f1