English · 简体中文
A personal home for the portable parts of how I run AI agents across my whole
operation — software development, company / project management, and personal
self-management. Skills, agent roles, orchestration patterns, prompts, rules,
MCP configs, workflows, and evals live here under version control. The
deployable ones — skills — install into every runtime with
npx skills; runtime settings (LLM
provider, models, plugins) stay in chezmoi.
Named after Tony Stark's Hall of Armor: the workshop where every suit is built, stored, compared, and improved — gear for every mission, not one narrow focus.
This repo is a practice ground for two crafts:
- Harness engineering — capability = model × harness. A harness is
everything wrapped around the model: context, tools, control loop, memory,
permissions, output handling.
hoadoesn't store whole harnesses — a harness is an assembly: the runtime's own settings (managed by chezmoi) plus portable parts from here (skills/installed vianpx skills, withagents/prompts/rules/mcps/as the library they draw on). - Orchestration & loop engineering — the control structures that drive
iterative, multi-agent work: continuation, termination, retry, handoff,
fan-out / fan-in, best-of-N. Loops are one shape of orchestration, so they
live in
orchestration/, not aloops/folder.
Built for my personal use, but the repository is public — clone it,
fork it, npx skills add wxxb789/hoa, take any part you like. Because it is
public, no secrets and no personal information are ever tracked by git (see
.gitignore): commit templates and sanitized assets only; real
credentials and private content stay untracked (.env, *.key, *.token,
*.local.*, private/) or live in a secret manager.
- Manage — one versioned home for the portable agent parts, instead of
copies scattered across
~/.claude,~/.codex,~/.config/opencode, … - Deploy —
skills/installs into every runtime withnpx skills; runtime settings are deployed by chezmoi.hoareinvents neither. - Reflect — analyze / review / retro how I use AI agents: which setup wins which task, what worked, what broke, why I chose X.
Hermes · Claude Code · Codex · pi · OpenCode · Kimi Code · (any of the 70+
agents npx skills supports)
| Concern | Owner | Mechanism |
|---|---|---|
Skills (SKILL.md packages) |
hoa | npx skills add wxxb789/hoa → ~/<agent>/skills/ |
| Agent roles, orchestration, prompts, rules, mcps, workflows, evals | hoa | version-controlled library / knowledge (composed into skills or used by hand) |
| Reflections & external refs | hoa | knowledge, never deployed |
Runtime settings — LLM provider, models, plugins, settings.json / config.toml / opencode.json |
chezmoi | chezmoi apply |
The split is deliberate: chezmoi already handles machine-specific settings and
secret templating; hoa handles the portable, shareable parts. No overlap, no
custom deploy tooling.
hoa/
├── index.md · index.zh-CN.md # every artifact, labeled by area + target
├── skills/ # THE deploy surface — SKILL.md packages installed via `npx skills`
├── agents/ # portable, runtime-agnostic role / persona / authority / I-O contracts
├── orchestration/ # scheduling, handoff, retry, continuation, termination, aggregation (loops, crews, fan-out/in, best-of-N)
├── mcps/ # portable MCP server definitions & catalogs
├── prompts/ # per-task prompt templates
├── rules/ # always-on normative constraints / reusable rulesets
├── workflows/ # outcome-oriented finite recipes (no retry / termination controller)
├── evals/ # repeatable benchmarks, cases, fixtures, rubrics, sanitized datasets
├── reflections/ # human write-ups: comparisons, decisions, retros, post-mortems
├── ref/ # external references
└── scripts/ # this repo's own validation / index tooling
skills/ follows the npx skills layout: skills/<name>/SKILL.md (flat) or
skills/<category>/<name>/SKILL.md (catalog); skills/.curated/,
skills/.experimental/, skills/.system/ are recognized too.
Classify by an artifact's primary consumption interface, not by what it uses internally.
| Folder | Belongs here | Not here |
|---|---|---|
skills/ |
a whole capability invoked by skill / command name; deployable via npx skills |
a prompt or role meant only to be assembled by something else |
agents/ |
a single-agent role contract many runtimes could implement | vendor-specific runtime settings (→ chezmoi); crew scheduling (→ orchestration/) |
orchestration/ |
decides who runs when, how results flow, whether to retry / stop | a concrete business recipe (→ workflows/) |
mcps/ |
portable MCP endpoint / tool definition | vendor-specific registration in settings.json (→ chezmoi) |
prompts/ |
a one-shot, per-task request template | standing behavioral constraints (→ rules/); persona (→ agents/) |
rules/ |
"always / never / must" standing constraints | one-off task instructions (→ prompts/) |
workflows/ |
outcome-centered finite steps | anything owning retry / continuation / agent scheduling (→ orchestration/) |
evals/ |
machine-runnable / repeatably-scored inputs + rubrics | prose analysis of results (→ reflections/) |
reflections/ |
observations, conclusions, decisions, retros | fixtures / configs / datasets used at run time |
scripts/ |
maintains the hoa repo itself |
runtime settings or hooks (→ chezmoi) |
Edge cases: a stop-hook that tweaks a runtime is settings → chezmoi; a generic continuation / termination pattern →
orchestration/. A multi-agent skill like/security-reviewis askill/(its external interface), even though it uses orchestration inside.
Skills — the only auto-deployed artifacts — install with the Vercel
skills CLI:
# install all hoa skills into every detected runtime (global)
npx skills add wxxb789/hoa -g
# just some skills, into specific runtimes
npx skills add wxxb789/hoa -g -s <skill> -a claude-code -a opencode
# list before installing / update / remove
npx skills add wxxb789/hoa --list
npx skills update
npx skills remove <skill>- Global (
-g) installs to~/<agent>/skills/(~/.claude/skills,~/.config/opencode/skills,~/.agents/skills, …); default scope installs to the current project. - Symlink by default (one canonical copy, easy updates) or
--copy(Windows / no-symlink environments). - Everything else in
hoais library / knowledge — not auto-deployed. Fold it into a skill, or reference it by hand. - Runtime settings deploy separately via
chezmoi apply.
Areas and targets are tracked as labels in index.md, not as
folders (one artifact often serves several):
areas:software-development·work-management·self-managementtargets:runtime-agnostic·repo-only·claude-code·codex·opencode·hermes·pi·kimi-code(thenpx skills --agenta skill is meant for)
Type is derived from the folder. Both axes are multi-valued.
- Phase 1: skeleton + definition + area/target-labeled index (taxonomy pressure-tested via Oracle). ✓
- Phase 2: skills-first deploy —
skills/vianpx skills, settings via chezmoi;runtimes/dropped. ✓ - Phase 3: grow real skills in
skills/; generateindex.mdfrom per-artifact metadata; build outevals/+reflections/.
- Anyone:
npx skills add wxxb789/hoato install the skills, or fork and take whichever parts help. - Me: author skills here →
npx skills add wxxb789/hoa -g→ they land in every runtime; settings ride along via chezmoi.