NEW Browse AI tools across categories — updated daily. See what's new →

ARCHITECTURE

ARCHITECTURE skill from wshobson/agents.

Authorwshobson
Version1.0.0
LicenseMIT
Token count~1,825
UpdatedMay 27, 2026

Install

Quick install

via npx skills · works with 57+ agents
npx skills add https://github.com/wshobson/agents/tree/main/ARCHITECTURE.md
Or pick agent:
npx skills add wshobson/agents --skill ARCHITECTURE --agent claude-code
npx skills add wshobson/agents --skill ARCHITECTURE --agent cursor
npx skills add wshobson/agents --skill ARCHITECTURE --agent codex
npx skills add wshobson/agents --skill ARCHITECTURE --agent opencode
npx skills add wshobson/agents --skill ARCHITECTURE --agent github-copilot
npx skills add wshobson/agents --skill ARCHITECTURE --agent windsurf
More install options

Shorthand — useful for multi-skill repos:

npx skills add wshobson/agents --skill ARCHITECTURE

Manual — clone the repo and drop the folder into your agent's skills directory:

git clone https://github.com/wshobson/agents.git
cp -r agents/ARCHITECTURE.md ~/.claude/skills/
How to use: Once installed, ask your agent to "use the ARCHITECTURE skill" or describe what you want (e.g. "ARCHITECTURE skill from wshobson/agents"). Requires Node.js 18+.

Architecture

Top-level architectural map for the claude-agents marketplace. Detail lives in [docs/architecture.md](docs/architecture.md); this file is the index per the OpenAI harness-engineering pattern.

Invariants

  1. Single source of truth. All agent / skill / command authoring happens under plugins/<name>/. Generated harness-specific artifacts (.codex/, .cursor-plugin/, .opencode/, .copilot/, commands/, agents/, skills/ at extension root for Gemini) are produced by adapters and gitignored. Never hand-edit generated files.
  1. One canonical context file. AGENTS.md at repo root is the only context file authored directly. CLAUDE.md imports it via @AGENTS.md. Gemini CLI reads it via .gemini/settings.json context.fileName. Codex / Cursor / OpenCode read AGENTS.md natively.
  1. Adapters own per-harness mechanics; source content stays portable. Authors write Claude-Code-quality markdown. Adapters under tools/adapters/ handle every harness-specific transform (frontmatter rewriting, model-alias mapping, body-size caps, tool-name remapping). Source files never carry harness conditional logic.
  1. Mechanical enforcement with remediation hints. Every lint / validator finding ships with a concrete fix string. make validate, make garden, and the plugin-eval harness_portability dimension all follow this convention.
  1. Progressive disclosure all the way down. Context files (AGENTS.md, CLAUDE.md, etc.) cap at ~150 lines. Skill bodies cap at ~8 KB (Codex's hard limit). Detail offloads to docs/ and references/details.md. Detail is loaded on demand, not pre-injected.

Component overview

claude-agents/
├── AGENTS.md                       # Canonical context file (committed)
├── CLAUDE.md                       # @AGENTS.md + Claude-specific addenda
├── ARCHITECTURE.md                 # This file
├── README.md                       # User-facing GitHub landing page
├── GEMINI.md                       # Gemini-specific setup (auto-loaded by Gemini CLI)
├── CONTRIBUTING.md                 # Contributor entry point
├── .claude-plugin/marketplace.json # Plugin registry (source of truth)
├── .gemini/settings.json           # Gemini CLI → AGENTS.md redirect
├── plugins/                        # SOURCE OF TRUTH (81 local plugins; 2 externals in marketplace)
│   └── <name>/
│       ├── .claude-plugin/plugin.json
│       ├── agents/*.md
│       ├── commands/*.md
│       └── skills/<n>/{SKILL.md, references/, assets/}
├── tools/
│   ├── adapters/                   # Per-harness adapter framework
│   │   ├── base.py                 # Parser, HarnessAdapter ABC, helpers
│   │   ├── capabilities.py         # Capability matrix; consumed by every adapter
│   │   ├── codex.py / cursor.py / opencode.py / gemini.py / copilot.py
│   │   └── cursor_rules/           # Hand-curated .mdc rules
│   ├── generate.py                 # Unified CLI: `make generate HARNESS=<x>`
│   ├── validate_generated.py       # Structural validation
│   ├── doc_gardener.py             # Drift detection (per harness-engineering)
│   └── tests/                      # Adapter + behavioral + CLI smoke tests
└── docs/                           # Detailed reference docs
    ├── architecture.md             # Full architecture (this file is the map)
    ├── plugins.md / agents.md / agent-skills.md  # Catalogs
    ├── usage.md                    # User workflows
    ├── authoring.md                # Portable-content style guide
    ├── harnesses.md                # Cross-harness capability matrix
    ├── plugin-eval.md              # Quality evaluation framework
    └── round-trip-results.md       # Real-CLI verification recipes

Cross-harness adapter framework

Each adapter consumes the canonical plugins/ source and emits harness-native artifacts:

| Adapter | Output | What it does |
|---|---|---|
| codex.py | .codex/skills/, .codex/agents/*.toml | Markdown → TOML transform, 8 KB body cap with references/ overflow, sandbox_mode heuristic, collision detection |
| cursor.py | .cursor-plugin/, .cursor/rules/*.mdc | Marketplace manifests + hand-curated rules. Cursor reads .claude/ directly for skills/agents |
| opencode.py | .opencode/agents/, .opencode/commands/, .opencode/skills/ | Permission block from tools: allowlist (locked agents preserve intent); strict lowercase tool names; OpenCode-safe skill names |
| copilot.py | .copilot/agents/, .copilot/skills/, .copilot/commands/ | Markdown agent profiles + SKILL.md skills + commands-as-skills; model maps to GPT-5 family |
| gemini.py | skills/, agents/, commands/*.toml at extension root | Native skills + April-2026 subagents; @{path} injection for large command bodies |

Detail in [docs/harnesses.md](docs/harnesses.md) (capability matrix per harness) and [docs/architecture.md](docs/architecture.md) (full design rationale).

Quality gates

Three mechanical gates, each runnable as a make target and wired into CI:

  1. make validate — structural validation of every generated artifact. Errors block CI; warnings advisory.
  2. make garden — drift detection (dead links, stale artifacts, oversize skills, marketplace orphans). Sorted by severity with per-kind summary.
  3. make test — full pytest suite (386 tests: adapters + validators + gardener + real-source + round-trip + real-CLI smoke).

CI workflow: [.github/workflows/validate.yml](.github/workflows/validate.yml) runs all three on every PR, plus a cli-smoke-test job that installs OpenCode + Gemini and exercises them against the generated artifacts.

Plugin component model

Each plugin is a directory under plugins/. Three component types, all auto-discovered:

  • Agents (agents/<name>.md) — domain experts. Frontmatter: name, description ("Use PROACTIVELY when …"), model: opus|sonnet|haiku|inherit, optional tools:, optional color:.
  • Skills (skills/<n>/SKILL.md) — modular knowledge with progressive disclosure. Frontmatter: name, description (must include a recognized trigger phrase like "Use when …"). Supporting material in references/, templates in assets/.
  • Commands (commands/<n>.md) — slash commands. Frontmatter: description, argument-hint.

Full conventions in [docs/authoring.md](docs/authoring.md). Authoring for portability across all five harnesses is the main concern; the adapter framework handles per-harness mechanics.

Model tiers

| Tier | Model | Use |
|---|---|---|
| 1 | Opus | Architecture, security, code review, production coding |
| 2 | inherit | Complex tasks — user chooses model (AI/ML, backend, specialized) |
| 3 | Sonnet | Docs, testing, debugging, support |
| 4 | Haiku | Fast ops, SEO, deployment, simple tasks |

Per-harness adapter maps these aliases to native model IDs at generation time (see tools/adapters/capabilities.py:MODEL_ALIASES).

See also

  • [docs/architecture.md](docs/architecture.md) — full design rationale, file ownership, capability matrix detail
  • OpenAI: Harness engineering — the practices this repo follows
  • agents.md spec — the AGENTS.md convention this repo adopts

SKILL.md source

---
name: ARCHITECTURE
description: ARCHITECTURE skill from wshobson/agents.
---

# Architecture

Top-level architectural map for the claude-agents marketplace. Detail lives in [`docs/architecture.md`](docs/architecture.md); this file is the index per the OpenAI [harness-engineering](https://openai.com/index/harness-engineering/) pattern.

## Invariants

1. **Single source of truth.** All agent / skill / command authoring happens under `plugins/<name>/`. Generated harness-specific artifacts (`.codex/`, `.cursor-plugin/`, `.opencode/`, `.copilot/`, `commands/`, `agents/`, `skills/` at extension root for Gemini) are produced by adapters and gitignored. Never hand-edit generated files.

2. **One canonical context file.** `AGENTS.md` at repo root is the only context file authored directly. `CLAUDE.md` imports it via `@AGENTS.md`. Gemini CLI reads it via `.gemini/settings.json` `context.fileName`. Codex / Cursor / OpenCode read `AGENTS.md` natively.

3. **Adapters own per-harness mechanics; source content stays portable.** Authors write Claude-Code-quality markdown. Adapters under `tools/adapters/` handle every harness-specific transform (frontmatter rewriting, model-alias mapping, body-size caps, tool-name remapping). Source files never carry harness conditional logic.

4. **Mechanical enforcement with remediation hints.** Every lint / validator finding ships with a concrete fix string. `make validate`, `make garden`, and the `plugin-eval` `harness_portability` dimension all follow this convention.

5. **Progressive disclosure all the way down.** Context files (`AGENTS.md`, `CLAUDE.md`, etc.) cap at ~150 lines. Skill bodies cap at ~8 KB (Codex's hard limit). Detail offloads to `docs/` and `references/details.md`. Detail is loaded on demand, not pre-injected.

## Component overview

```
claude-agents/
├── AGENTS.md                       # Canonical context file (committed)
├── CLAUDE.md                       # @AGENTS.md + Claude-specific addenda
├── ARCHITECTURE.md                 # This file
├── README.md                       # User-facing GitHub landing page
├── GEMINI.md                       # Gemini-specific setup (auto-loaded by Gemini CLI)
├── CONTRIBUTING.md                 # Contributor entry point
├── .claude-plugin/marketplace.json # Plugin registry (source of truth)
├── .gemini/settings.json           # Gemini CLI → AGENTS.md redirect
├── plugins/                        # SOURCE OF TRUTH (81 local plugins; 2 externals in marketplace)
│   └── <name>/
│       ├── .claude-plugin/plugin.json
│       ├── agents/*.md
│       ├── commands/*.md
│       └── skills/<n>/{SKILL.md, references/, assets/}
├── tools/
│   ├── adapters/                   # Per-harness adapter framework
│   │   ├── base.py                 # Parser, HarnessAdapter ABC, helpers
│   │   ├── capabilities.py         # Capability matrix; consumed by every adapter
│   │   ├── codex.py / cursor.py / opencode.py / gemini.py / copilot.py
│   │   └── cursor_rules/           # Hand-curated .mdc rules
│   ├── generate.py                 # Unified CLI: `make generate HARNESS=<x>`
│   ├── validate_generated.py       # Structural validation
│   ├── doc_gardener.py             # Drift detection (per harness-engineering)
│   └── tests/                      # Adapter + behavioral + CLI smoke tests
└── docs/                           # Detailed reference docs
    ├── architecture.md             # Full architecture (this file is the map)
    ├── plugins.md / agents.md / agent-skills.md  # Catalogs
    ├── usage.md                    # User workflows
    ├── authoring.md                # Portable-content style guide
    ├── harnesses.md                # Cross-harness capability matrix
    ├── plugin-eval.md              # Quality evaluation framework
    └── round-trip-results.md       # Real-CLI verification recipes
```

## Cross-harness adapter framework

Each adapter consumes the canonical `plugins/` source and emits harness-native artifacts:

| Adapter | Output | What it does |
|---|---|---|
| `codex.py` | `.codex/skills/`, `.codex/agents/*.toml` | Markdown → TOML transform, 8 KB body cap with `references/` overflow, sandbox_mode heuristic, collision detection |
| `cursor.py` | `.cursor-plugin/`, `.cursor/rules/*.mdc` | Marketplace manifests + hand-curated rules. Cursor reads `.claude/` directly for skills/agents |
| `opencode.py` | `.opencode/agents/`, `.opencode/commands/`, `.opencode/skills/` | Permission block from `tools:` allowlist (locked agents preserve intent); strict lowercase tool names; OpenCode-safe skill names |
| `copilot.py` | `.copilot/agents/`, `.copilot/skills/`, `.copilot/commands/` | Markdown agent profiles + SKILL.md skills + commands-as-skills; model maps to GPT-5 family |
| `gemini.py` | `skills/`, `agents/`, `commands/*.toml` at extension root | Native skills + April-2026 subagents; `@{path}` injection for large command bodies |

Detail in [`docs/harnesses.md`](docs/harnesses.md) (capability matrix per harness) and [`docs/architecture.md`](docs/architecture.md) (full design rationale).

## Quality gates

Three mechanical gates, each runnable as a make target and wired into CI:

1. **`make validate`** — structural validation of every generated artifact. Errors block CI; warnings advisory.
2. **`make garden`** — drift detection (dead links, stale artifacts, oversize skills, marketplace orphans). Sorted by severity with per-kind summary.
3. **`make test`** — full pytest suite (386 tests: adapters + validators + gardener + real-source + round-trip + real-CLI smoke).

CI workflow: [`.github/workflows/validate.yml`](.github/workflows/validate.yml) runs all three on every PR, plus a `cli-smoke-test` job that installs OpenCode + Gemini and exercises them against the generated artifacts.

## Plugin component model

Each plugin is a directory under `plugins/`. Three component types, all auto-discovered:

- **Agents** (`agents/<name>.md`) — domain experts. Frontmatter: `name`, `description` ("Use PROACTIVELY when …"), `model: opus|sonnet|haiku|inherit`, optional `tools:`, optional `color:`.
- **Skills** (`skills/<n>/SKILL.md`) — modular knowledge with progressive disclosure. Frontmatter: `name`, `description` (must include a recognized trigger phrase like "Use when …"). Supporting material in `references/`, templates in `assets/`.
- **Commands** (`commands/<n>.md`) — slash commands. Frontmatter: `description`, `argument-hint`.

Full conventions in [`docs/authoring.md`](docs/authoring.md). Authoring for portability across all five harnesses is the main concern; the adapter framework handles per-harness mechanics.

## Model tiers

| Tier | Model | Use |
|---|---|---|
| 1 | Opus | Architecture, security, code review, production coding |
| 2 | inherit | Complex tasks — user chooses model (AI/ML, backend, specialized) |
| 3 | Sonnet | Docs, testing, debugging, support |
| 4 | Haiku | Fast ops, SEO, deployment, simple tasks |

Per-harness adapter maps these aliases to native model IDs at generation time (see `tools/adapters/capabilities.py:MODEL_ALIASES`).

## See also

- [`docs/architecture.md`](docs/architecture.md) — full design rationale, file ownership, capability matrix detail
- [OpenAI: Harness engineering](https://openai.com/index/harness-engineering/) — the practices this repo follows
- [agents.md spec](https://agents.md/) — the AGENTS.md convention this repo adopts

Related skills 6

running-claude-code-via-litellm-copilot

★ Featured

Use when routing Claude Code through a local LiteLLM proxy to GitHub Copilot, reducing direct Anthropic spend, configuring ANTHROPIC_BASE_URL or ANTHROPIC_MODEL overrides, or troubleshooting Copilot proxy setup failures such as model-not-found, no localhost traffic, or GitHub 401/403 auth errors.

xixu-me 155k
AI & ML

skills-cli

★ Featured

Use when users ask to discover, install, list, check, update, remove, back up, restore, sync, or initialize Agent Skills, mention `bunx skills`, `npx skills`, `skills.sh`, or `skills-lock.json`, ask "find a skill for X", or want help extending agent capabilities with installable skills.

xixu-me 155k
AI & ML

repo-intake-and-plan

★ Featured

Narrow RigorPilot helper for README-first deep learning repo reproduction. Use when the task is specifically to scan a repository, read the README and common project files, extract documented commands, classify inference, evaluation, and training candidates, and return the smallest trustworthy reproduction plan to the main orchestrator. Do not use for environment setup, asset download, command execution, final reporting, paper lookup, or end-to-end orchestration.

lllllllama 127k
AI & ML

image-to-video

★ Featured

Animate any still image on RunComfy — this skill is a smart router that matches the user's intent to the right i2v model in the RunComfy catalog. Picks HappyHorse 1.0 I2V (Arena #1, native audio, identity preservation) for general animations, Wan 2.7 with `audio_url` for custom-voiceover lip-sync, or Seedance 2.0 Pro for multi-modal animation from image + reference video + reference audio. Bundles each model's documented prompting patterns so the caller gets sharper output without burning ite...

agentspace-so 121k
AI & ML

video-edit

★ Featured

Edit existing video on RunComfy — this skill is a smart router that matches the user's intent to the right edit model in the RunComfy catalog. Picks Wan 2.7 Edit-Video (general restyle / background swap / packaging swap, identity + motion preservation), Kling 2.6 Pro Motion Control (transfer precise motion from a reference video to a target character), or Lucy Edit Restyle (lightweight identity-stable restyle / outfit swap). Bundles each model's documented prompting patterns so the skill gets...

agentspace-so 121k
AI & ML

nano-banana-2

★ Featured

Generate images with Google Nano Banana 2 (Gemini-family flash-tier text-to-image) on RunComfy — bundled with the model's documented prompting patterns so the skill gets sharper output than naive prompting against the same model. Documents Nano Banana 2's strengths (rapid iteration, in-image typography rendering, predictable framing, optional web-grounded context), the resolution-tier pricing, the safety-tolerance dial, and when to route to Nano Banana Pro / GPT Image 2 / Flux 2 / Seedream in...

agentspace-so 121k
AI & ML