Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/release-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- main
paths:
- '.claude-plugin/plugin.json'
- '.hermes/plugin.json'
workflow_dispatch:

concurrency:
Expand Down
104 changes: 104 additions & 0 deletions .hermes/INSTALL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Installing Autonomous Dev Kit for Hermes Agent

Enable autodev skills in Hermes Agent via native skill discovery.

## Prerequisites

- [Hermes Agent](https://hermes-agent.nousresearch.com/docs) installed
- Git installed

## Installation

### Option 1: Clone and Symlink (Recommended)

```bash
# Clone the autodev repository
git clone https://github.com/GoCodeAlone/autonomous-dev-kit.git ~/.hermes/autodev

# Create the skills symlink so Hermes discovers autodev skills
mkdir -p ~/.hermes/skills
ln -s ~/.hermes/autodev/skills ~/.hermes/skills/autodev
```

**Windows (PowerShell):**
```powershell
git clone https://github.com/GoCodeAlone/autonomous-dev-kit.git "$env:USERPROFILE\.hermes\autodev"
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.hermes\skills"
cmd /c mklink /J "$env:USERPROFILE\.hermes\skills\autodev" "$env:USERPROFILE\.hermes\autodev\skills"
```

### Option 2: Skills CLI (if available)

```bash
npx skills add GoCodeAlone/autonomous-dev-kit -a hermes-agent --skill '*' -y
```

### Option 3: Direct SKILL.md install via Hermes CLI

```bash
# Install individual skills from the repository
hermes skills install https://raw.githubusercontent.com/GoCodeAlone/autonomous-dev-kit/main/skills/brainstorming/SKILL.md
hermes skills install https://raw.githubusercontent.com/GoCodeAlone/autonomous-dev-kit/main/skills/writing-plans/SKILL.md
# ... repeat for each skill you want
```

## Verify Installation

Start a new Hermes session and ask for something that should trigger a skill:

```
help me plan this feature
```

Hermes should automatically invoke the `autodev/brainstorming` skill.

Verify skills are discovered:

```bash
ls -la ~/.hermes/skills/autodev
```

You should see the skills directory symlinked to your autodev checkout.

## Updating

```bash
cd ~/.hermes/autodev && git pull
```

Skills update instantly through the symlink.

## Uninstalling

```bash
rm ~/.hermes/skills/autodev
```

Optionally delete the clone: `rm -rf ~/.hermes/autodev`.

## Cross-LLM Behavior

Autonomous Dev Kit skills use `<host: claude-code>` blocks to gate Claude Code-only content. Hermes Agent skips those blocks automatically; no configuration needed.

To enable host-conditional logic inside skills (so skills can adapt behavior per host), Hermes Agent auto-detects itself as the host. Skills that inspect the host context will use it to pick the right execution path.

## Tool Mapping

When skills reference Claude Code tools, Hermes Agent maps them as follows:

| Claude Code Tool | Hermes Agent Equivalent |
|---|---|
| `TodoWrite` | `todo` tool (built-in) |
| `Agent` (subagent) | `delegate_task` tool |
| `Task` with subagents | `delegate_task` with `goal` + `context` |
| `TeamCreate` / `TeamDelete` | Not applicable — Hermes uses sequential `delegate_task` |
| `SendMessage` (team DM) | Not applicable — Hermes returns subagent results directly |
| `EnterPlanMode` | Prose planning in chat |
| `Skill` tool | `skill_view` / `skills_list` |
| File operations | `read_file`, `write_file`, `patch`, `search_files` |
| `Bash` | `terminal` tool |
| `AskUserQuestion` | `clarify` tool |

## Host Declaration

Hermes Agent identifies itself automatically. No manual host declaration is needed.
18 changes: 18 additions & 0 deletions .hermes/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "autodev",
"displayName": "Autonomous Dev Kit",
"description": "Autonomous development workflow skills for coding agents",
"version": "6.5.10",
"author": {
"name": "Jon Langevin",
"email": "jon@gocodealone.com"
},
"homepage": "https://github.com/GoCodeAlone/autonomous-dev-kit",
"repository": "https://github.com/GoCodeAlone/autonomous-dev-kit",
"license": "MIT",
"keywords": ["skills", "tdd", "debugging", "collaboration", "best-practices", "workflows", "agents", "autonomous-development"],
"skills": "./skills/",
"agents": "./agents/",
"commands": "./commands/",
"hooks": "./hooks/hooks.json"
}
48 changes: 48 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Autonomous Dev Kit

This repository contains the Autonomous Dev Kit — a plugin bundling skills, hooks, agents, and commands for coding agents (Claude Code, Codex, OpenCode, Cursor, and Hermes Agent).

## Project Structure

- `skills/` — SKILL.md files (the core reusable workflows)
- `hooks/` — Shell scripts that fire at session/tool lifecycle events
- `agents/` — Agent role definitions and team conventions
- `commands/` — Slash command definitions
- `tests/` — Test scripts for skill content, hooks, and contracts
- `.claude-plugin/` — Claude Code plugin manifest
- `.cursor-plugin/` — Cursor plugin manifest
- `.codex/` — Codex installation instructions
- `.opencode/` — OpenCode installation instructions
- `.hermes/` — Hermes Agent installation instructions
- `.github/workflows/` — CI pipelines

## Building and Testing

Run the test scripts before committing:

```bash
# Skill content checks (host-neutrality, path canonicalization, cross-refs)
bash tests/skill-content-grep.sh
bash tests/adk-path-canonicalization.sh
bash tests/pipeline-evidence-doc-sync.sh
bash tests/skill-cross-refs.sh

# Hook contract tests
bash tests/hook-contracts.sh
bash tests/hook-stdout-discipline.sh
bash tests/plan-scope-check-contracts.sh

# Version consistency
bash tests/version-check.sh
```

## Adding Skills

Follow `skills/writing-skills/SKILL.md` for the complete guide. Key rules:
- Skills use `<host: ...>` blocks to gate host-specific content
- Forbidden tokens (TodoWrite, TeamCreate, Sonnet, etc.) must only appear inside `<host: claude-code>` blocks
- Recognized hosts: `claude-code`, `codex`, `opencode`, `cursor`, `hermes-agent`

## Versioning

All plugin manifests must declare the same version. Use `scripts/bump-version.sh <new-version>` to update all manifests at once.
34 changes: 33 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,38 @@ Autonomous Dev Kit originated as a fork of Jesse Vincent's [Superpowers](https:/

## Installation

**Note:** Installation differs by platform. Claude Code or Cursor have built-in plugin marketplaces. Codex can use the open `skills` CLI (`npx skills add`) or manual setup. OpenCode currently uses manual setup.
**Note:** Installation differs by platform. Claude Code or Cursor have built-in plugin marketplaces. Codex can use the open `skills` CLI (`npx skills add`) or manual setup. OpenCode and Hermes Agent currently use manual setup.

### Hermes Agent

From your project root or home directory:

```bash
# Clone the autodev repository
git clone https://github.com/GoCodeAlone/autonomous-dev-kit.git ~/.hermes/autodev

# Create the skills symlink so Hermes discovers autodev skills
mkdir -p ~/.hermes/skills
ln -s ~/.hermes/autodev/skills ~/.hermes/skills/autodev
```

**Windows (PowerShell):**
```powershell
git clone https://github.com/GoCodeAlone/autonomous-dev-kit.git "$env:USERPROFILE\.hermes\autodev"
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.hermes\skills"
cmd /c mklink /J "$env:USERPROFILE\.hermes\skills\autodev" "$env:USERPROFILE\.hermes\autodev\skills"
```

Then restart Hermes (start a new session) so it discovers the skills.

**Updating:**
```bash
cd ~/.hermes/autodev && git pull
```

Skills update instantly through the symlink.

**Detailed docs:** [`.hermes/INSTALL.md`](.hermes/INSTALL.md)

### Claude Code (via Plugin Marketplace)

Expand Down Expand Up @@ -130,6 +161,7 @@ Autonomous Dev Kit skills run on any host that supports the SKILL.md format. Hos
| Codex | `~/.agents/skills/autodev/` | yes | Sequential sub-agent dispatch; `/plan` slash; `/agent` switching |
| OpenCode | `~/.config/opencode/skills/autodev/` | yes | Tool mapping documented in `.opencode/INSTALL.md` |
| Cursor | `/plugin-add autodev` | yes (via plugin) | Plugin manifest defines skills/agents/commands/hooks |
| Hermes Agent | `~/.hermes/skills/autodev/` | yes | `delegate_task` for subagents; `todo` for task tracking; `clarify` for user questions |

Full capability matrix: [docs/cross-llm-coverage.md](docs/cross-llm-coverage.md)
Per-skill host-conditional audit: [tests/cross-llm-coverage.md](tests/cross-llm-coverage.md)
Expand Down
28 changes: 14 additions & 14 deletions docs/cross-llm-coverage.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@ Host-by-host capability matrix for the Autonomous Dev Kit skills system.

`✅` = fully supported `⚠️` = partial / workaround required `❌` = not supported

| Capability | Claude Code | Codex CLI | OpenCode | Cursor |
|---|---|---|---|---|
| SKILL.md import | ✅ native | ✅ native | ✅ native | ✅ plugin manifest defines skills/agents/commands/hooks; install via `/plugin-add autodev` |
| Sub-agent dispatch | ✅ `Agent` tool | ✅ natural language | ⚠️ `@mention` to peer sessions | ❌ not documented |
| Agent Teams (persistent multi-agent DM) | ✅ experimental flag | ❌ | ❌ | ❌ |
| Background agents | ✅ `run_in_background` | ⚠️ thread-based; no explicit background flag | ❌ not documented | ❌ not documented |
| MCP servers | ✅ | ✅ `config.toml` | ✅ | ⚠️ partial |
| Slash commands | ✅ | ✅ 30+ built-ins incl. `/plan`, `/agent`, `/review` | ✅ | ✅ |
| Plan mode | ✅ `EnterPlanMode` + Shift-Tab | ✅ `/plan` slash | ⚠️ not documented; use prose planning | ⚠️ built-in Composer; not slash-invokable |
| Task list / TodoWrite | ✅ built-in | ❌ no documented equivalent | ⚠️ `update_plan` mapping (see `.opencode/INSTALL.md`) | ⚠️ unknown |
| AGENTS.md / project context | CLAUDE.md | AGENTS.md (+ `.override.md`) | AGENTS.md | n/a |
| Host declaration for skill conditionals | `Host: claude-code` in CLAUDE.md | `Host: codex` in `~/.codex/AGENTS.md` | `Host: opencode` in `~/.config/opencode/AGENTS.md` | n/a |
| Skill discovery path (user scope) | `~/.claude/skills/` (personal skills); autodev installed to `~/.claude/plugins/marketplace/autodev/` via marketplace | `~/.agents/skills/` | `~/.config/opencode/skills/` | via plugin (no manual symlink) |
| Model tier vocabulary | role names → `haiku`/`sonnet`/`opus` (see `agents/model-tiers.md`) | role names → `gpt-5.4-mini`/`gpt-5.4`/`gpt-5.5` | role names → host-pass-through | role names → host-pass-through |
| Capability | Claude Code | Codex CLI | OpenCode | Cursor | Hermes Agent |
|---|---|---|---|---|---|
| SKILL.md import | ✅ native | ✅ native | ✅ native | ✅ plugin manifest defines skills/agents/commands/hooks; install via `/plugin-add autodev` | ✅ native via `~/.hermes/skills/` symlink or `hermes skills install` |
| Sub-agent dispatch | ✅ `Agent` tool | ✅ natural language | ⚠️ `@mention` to peer sessions | ❌ not documented | ✅ `delegate_task` tool |
| Agent Teams (persistent multi-agent DM) | ✅ experimental flag | ❌ | ❌ | ❌ | ❌ (uses sequential `delegate_task`) |
| Background agents | ✅ `run_in_background` | ⚠️ thread-based; no explicit background flag | ❌ not documented | ❌ not documented | ✅ `terminal(background=true)` |
| MCP servers | ✅ | ✅ `config.toml` | ✅ | ⚠️ partial | ✅ `hermes mcp` |
| Slash commands | ✅ | ✅ 30+ built-ins incl. `/plan`, `/agent`, `/review` | ✅ | ✅ | ✅ 40+ built-ins |
| Plan mode | ✅ `EnterPlanMode` + Shift-Tab | ✅ `/plan` slash | ⚠️ not documented; use prose planning | ⚠️ built-in Composer; not slash-invokable | ⚠️ prose planning in chat |
| Task list / TodoWrite | ✅ built-in | ❌ no documented equivalent | ⚠️ `update_plan` mapping (see `.opencode/INSTALL.md`) | ⚠️ unknown | ✅ `todo` tool (built-in) |
| AGENTS.md / project context | CLAUDE.md | AGENTS.md (+ `.override.md`) | AGENTS.md | n/a | AGENTS.md (cwd only), `.hermes.md` (parent walk) |
| Host declaration for skill conditionals | `Host: claude-code` in CLAUDE.md | `Host: codex` in `~/.codex/AGENTS.md` | `Host: opencode` in `~/.config/opencode/AGENTS.md` | n/a | Auto-detected as `hermes-agent` |
| Skill discovery path (user scope) | `~/.claude/skills/` (personal skills); autodev installed to `~/.claude/plugins/marketplace/autodev/` via marketplace | `~/.agents/skills/` | `~/.config/opencode/skills/` | via plugin (no manual symlink) | `~/.hermes/skills/` (symlink or `hermes skills install`) |
| Model tier vocabulary | role names → `haiku`/`sonnet`/`opus` (see `agents/model-tiers.md`) | role names → `gpt-5.4-mini`/`gpt-5.4`/`gpt-5.5` | role names → host-pass-through | role names → host-pass-through | role names → config model (provider-agnostic) |

## Notes

Expand Down
1 change: 1 addition & 0 deletions scripts/bump-version.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ VERSION_FILES=(
".claude-plugin/plugin.json"
".claude-plugin/marketplace.json"
".cursor-plugin/plugin.json"
".hermes/plugin.json"
)

usage() {
Expand Down
4 changes: 4 additions & 0 deletions skills/alignment-check/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@ Agent tool (general-purpose, model: balanced):
Run the alignment check inline: read both documents, perform the forward and reverse traces using the Comparison Procedure above, and produce the Alignment Report.
</host>

<host: hermes-agent>
Dispatch a subagent using `delegate_task` with a `goal` describing the alignment verification and both document paths in `context`. Use the same report format specified above.
</host>

## On FAIL

Feed drift items back to `writing-plans` for revision:
Expand Down
5 changes: 5 additions & 0 deletions skills/brainstorming/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,11 @@ digraph brainstorming {
- Group no more than 3 questions per turn to avoid overloading the chat
</host>

<host: hermes-agent>
- Use the `clarify` tool for multiple-choice questions (up to 4 options)
- Group no more than 3 questions per turn to avoid overloading the chat
</host>

- Focus on understanding: purpose, constraints, success criteria

**Exploring approaches:**
Expand Down
4 changes: 4 additions & 0 deletions skills/executing-plans/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ Use TodoWrite — one entry per plan task.
If your environment has no built-in task system, maintain a numbered checklist tracking each task as pending, in-progress, or completed.
</host>

<host: hermes-agent>
Use the `todo` tool — one entry per plan task.
</host>

### Step 2: Execute Batch
**Default: First 3 tasks**

Expand Down
4 changes: 4 additions & 0 deletions skills/post-merge-retrospective/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,10 @@ This is short, structured analysis work — one pass over the artifacts. Run inl
Run inline. The lead agent has the context already. The retro is a structured artifact, not a long-running task — produce the markdown directly.
</host>

<host: hermes-agent>
Run inline. The lead agent has the context already. The retro is a structured artifact, not a long-running task — produce the markdown directly.
</host>

## Why this skill exists

`pr-monitoring` exits when CI is green and reviews are resolved. That's the end of the in-flight pipeline, but it's not the end of the loop. Without `post-merge-retrospective`, the plugin has no organic way to know which gates are actually pulling their weight. With it, every merged PR produces a small piece of evidence that gets compared across PRs over time. That's how the gate set sharpens.
Expand Down
25 changes: 25 additions & 0 deletions skills/pr-monitoring/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,13 @@ per turn and re-check on the next turn. This loses fire-on-event but is reliable
dispatch a background Agent expecting it to block on a sleep-loop.
</host>

<host: hermes-agent>
Use `terminal(background=true, notify_on_complete=true)` with a bounded bash sleep-loop
(same pattern as the Claude Code bash poll-loop above) that polls `gh pr checks <pr>`
until settled. The Hermes `terminal` tool genuinely blocks to completion in background mode.
Use `process(action='poll')` to check status and `process(action='log')` to read results.
</host>

**Fallback (all hosts):** the background-Agent monitor in "The Process" below remains the
tool for multi-PR review-comment handling that needs active fix-and-push; note its
early-exit failure mode and prefer the poll-loop / self-poll for a pure CI-wait.
Expand Down Expand Up @@ -290,6 +297,24 @@ retro and exit cleanly.

</host>

<host: hermes-agent>

Use `terminal` to run `gh pr checks <number>` and fix failing CI checks. For
background monitoring, use `terminal(background=true, notify_on_complete=true)`
with a bounded sleep-loop (same pattern as the Claude Code bash poll-loop above).
Use `process(action='poll')` and `process(action='log')` to read results.

Follow the same poll cycle: 10-minute wait between full cycles, 60-minute total
session cap. Use a separate worktree per branch so you never switch branches
mid-session.

When a PR has merged with green base-branch CI and a design + plan exist in
`docs/plans/` for its branch, invoke `autodev:post-merge-retrospective` to
write a retro in `docs/retros/`. If the PR was closed without merge, skip the
retro and exit cleanly.

</host>


## Safety Limits

Expand Down
18 changes: 18 additions & 0 deletions skills/subagent-driven-development/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,12 @@ Use Sequential Mode — see the [Sequential Mode](#sequential-mode) section belo

</host>

<host: hermes-agent>

**Sequential Subagents** — Hermes Agent uses `delegate_task` to spawn one subagent per task. Each subagent gets its own conversation, terminal session, and toolset. Pass the full plan task text in the `goal` or `context` parameters. See [Sequential Mode](#sequential-mode).

</host>

---

## Sequential Mode
Expand Down Expand Up @@ -400,6 +406,12 @@ Hooks are not documented on this host. Apply the pattern manually: at the start

</host>

<host: hermes-agent>

Hooks are not documented on this host. Apply the pattern manually: at the start of every reply that follows a context compaction, scroll back to the first user message in your visible transcript, re-state the task to yourself, then proceed. Use `session_search` to re-orient on the current session's goal and progress.

</host>

### 2. Watchdog cadence (every 5–10 minutes)

When you have one or more subagents running in the background, check on them on a 5–10 minute cadence. Don't fire-and-forget.
Expand Down Expand Up @@ -432,6 +444,12 @@ Use `@mention` to peer sessions to ping each background subagent for a status re

</host>

<host: hermes-agent>

Use `process(action='poll')` to check background subagent status, `process(action='log')` to read recent output. To send corrective input, use `process(action='submit')` with the message. To terminate a stuck subagent, use `process(action='kill')`. When using `terminal(background=true)` to pace a self-paced run, factor watchdog checks into the cadence.

</host>

### 3. Quality-based rotation (replace consistently-failing teammates)

Subagents are teammates, not infrastructure. If one keeps producing low-quality output, replace it instead of re-prompting forever.
Expand Down
Loading
Loading