Skill Guide
A detailed guide to MoAI-ADK’s skill system. Skills are the knowledge layer of the agentic harness — and, in that they “load only the needed knowledge at the needed moment,” they are also where tokenomics is most concretely implemented.
Platform basicsBackground on the platform layer is in Skills. This page is the MoAI-ADK account of it.
InfoWhat is a skill?
Remember the helicopter scene from the 1999 film The Matrix? When Neo asks Trinity whether she can fly a helicopter, Trinity calls headquarters, names the helicopter model, and asks for the operating program to be uploaded.
Claude Code’s skills are exactly that operating manual. They load only the needed knowledge at the needed moment, letting the AI instantly act like an expert.
A skill is a knowledge module that provides Claude Code with specialized expertise in a particular field.
In a school analogy, Claude Code is the student and skills are the textbooks. Just as you open the math textbook in math class and the science textbook in science class, Claude Code loads the Python skill when writing Python code and the Frontend skill when building a React UI.
flowchart TD
USER[User request] --> DETECT[Keyword detection]
DETECT --> TRIGGER{Trigger matching}
TRIGGER -->|Python-related| PY["moai-domain-backend
Backend expertise"]
TRIGGER -->|React-related| FE["moai-domain-frontend
Frontend expertise"]
TRIGGER -->|Security-related| SEC["moai-foundation-core
TRUST 5 security principles"]
TRIGGER -->|DB-related| DB["moai-domain-database
Database expertise"]
PY --> AGENT[Knowledge injected into agent]
FE --> AGENT
SEC --> AGENT
DB --> AGENTWithout skills: Claude Code responds with general knowledge only. With skills: it responds by applying MoAI-ADK’s rules, patterns, and best practices.
The MoAI-ADK template ships 34 skills in total. The catalog splits them by installation scope into 21 core skills, deployed with every project, and 13 optional-pack skills (backend 3, design 1, devops 5, frontend 4), deployed on demand. By function they group as Foundation 4 + Workflow 8 + Domain 7 + Reference 11 + Meta/Harness 3 = 33 specialized skills, plus the 1 moai umbrella skill that routes requests to them. In user projects, you can additionally author custom hns-* harness skills. Programming-language support is provided by rules under rules/moai/languages/ and is not a separate skill.
This count is also a result of dieting — the skill catalog was refined from 48 → 38 over the v3 period, and now stands at 34 with the optional packs included. The current prefix for custom harness skills is hns-* (the legacy harness-* is also recognized).
| Skill name | Description |
|---|---|
moai-foundation-core | SPEC-based TDD/DDD, the TRUST 5 framework, execution rules |
moai-foundation-cc | Claude Code extension patterns (Skills, Agents, Hooks) |
moai-foundation-thinking | Structured thinking, ideation, first-principles analysis |
moai-foundation-quality | Automatic code-quality verification, TRUST 5 validation |
| Skill name | Description |
|---|---|
moai-workflow-spec | SPEC document creation, GEARS format, requirements analysis |
moai-workflow-project | Project initialization, docs generation, language setup |
moai-workflow-ddd | The ANALYZE-PRESERVE-IMPROVE cycle |
moai-workflow-tdd | RED-GREEN-REFACTOR test-driven development |
moai-workflow-testing | Test creation, debugging, code-review integration |
moai-workflow-worktree | Git-worktree-based parallel development |
moai-workflow-loop | Ralph Engine autonomous loop, LSP integration |
moai-workflow-docs-claim-check | Read-only claim verification for public docs (README, release notes) |
| Skill name | Description |
|---|---|
moai-domain-backend | API design, microservices, database integration |
moai-domain-frontend | React 19, Next.js 16, Vue 3.5, component architecture |
moai-domain-database | PostgreSQL, MongoDB, Redis, advanced data patterns |
moai-domain-html-report | Markdown → single-file HTML report renderer (6 modes, no external dependencies) |
moai-domain-humanize | AI text humanization and post-editing (KO/EN/JA/ZH) |
moai-domain-svg-infographic | Editable SVG technical infographics (architecture, flow, comparison), CJK fonts |
moai-domain-design-dna | Reverse-engineers a reference design (screenshot, image set, URL) into a Design DNA JSON, and generates a new artifact from it. Supports diagram profiles — the active profile marker persists under the project root’s .design-dna/ so it survives moai update, and the opt-in mermaid and drawio importers treat their sources as untrusted input (coordinates, colors, fonts, and layout never carry over) |
Which diagram kinds moai-domain-svg-infographic can produce was measured, not assumed. All nine forms of an external catalog (the SkillStead TypePack) were run as identical generation briefs and checked against the skill’s own delivery gates — the deterministic source lint and the dimension-verified 2x PNG render — and every one of them reproduced successfully.
| Diagram type | Use | Measured artifact |
|---|---|---|
| Approval-gate flow | An ordered procedure with a gate that must pass | .moai/reports/t272/artifacts/approval-gate.svg |
| Before-after comparison | Two states weighed against the same criteria | .moai/reports/t272/artifacts/before-after.svg |
| KPI card grid | Key metrics laid out as cards | .moai/reports/t272/artifacts/cards-kpi-grid.svg |
| Decision matrix | Options crossed with criteria | .moai/reports/t272/artifacts/decision-matrix.svg |
| Layer stack | Components stacked top to bottom | .moai/reports/t272/artifacts/layer-stack.svg |
| Nested scope | Boundaries wrapped one inside another | .moai/reports/t272/artifacts/nested-scope.svg |
| Process flow | Steps joined in order | .moai/reports/t272/artifacts/process-flow.svg |
| Roadmap timeline | Phases and milestones on a time axis | .moai/reports/t272/artifacts/roadmap-timeline.svg |
| Component topology | How components connect | .moai/reports/t272/artifacts/topology-component.svg |
Each form is expressed on top of the four base layouts (stack, left-to-right flow, side-by-side comparison, hierarchy tree) in a way that preserves the information structure. The per-form verdict table and gate logs live in .moai/reports/t272/verdict.md.
| Skill name | Description |
|---|---|
moai-ref-api-patterns | REST/GraphQL API design patterns, error handling |
moai-ref-git-workflow | Git workflow, branch strategies, Conventional Commits |
moai-ref-owasp-checklist | OWASP Top 10 security patterns, input validation |
moai-ref-react-patterns | React/Next.js component patterns, state management |
moai-ref-testing-pyramid | Test pyramid strategy, coverage targets |
moai-ref-llm-security | AI/LLM defensive security (prompt injection, OWASP LLM Top 10) |
moai-ref-secops | DevSecOps/container/API operational defensive security |
moai-ref-supply-chain | Software supply-chain defensive security (SBOM, SLSA, Sigstore) |
moai-ref-seo | Search visibility and crawlability (canonical URLs, per-page metadata, JSON-LD) |
moai-ref-ui-polish | UI design completeness, interface-polish reference |
moai-ref-cross-model-audit | Cross-model audit convergence (parallel codex + GLM review, verdict convergence) |
| Skill name | Description |
|---|---|
moai-meta-harness | DEPRECATED — the legacy 7-Phase meta-harness. Redirects to the v4 Builder (/moai:harness <natural-language request>) |
moai-harness-learner | The harness learning subsystem, auto-update proposals |
moai-kanban-foreman | One unattended kanban foreman iteration — watch the backlog, dispatch a picked card to an isolated worker, collect evidence |
The 34 skills ship with the MoAI-ADK template (21 core immediately, 13 via optional packs), and each skill loads independently to save tokens. Users can additionally author per-project custom
hns-*harness skills (the legacyharness-*prefix is also recognized).
MoAI-ADK skills use a 3-level Progressive Disclosure system. Loading every skill at once wastes tokens, so they load incrementally, only as needed. Think of it as the skill-layer implementation of the context diet.
flowchart TD
subgraph L1["Level 1: Metadata (~100 tokens)"]
M1["Name, description, trigger keywords"]
M2["Always loaded"]
end
subgraph L2["Level 2: Body (~5,000 tokens)"]
B1["Full skill document"]
B2["Code examples, patterns"]
end
subgraph L3["Level 3: Bundle (unlimited)"]
R1["modules/ directory"]
R2["reference.md, examples.md"]
end
L1 -->|"On trigger match"| L2
L2 -->|"When deep information is needed"| L3| Level | Tokens | Loaded when | Content |
|---|---|---|---|
| Level 1 | ~100 | Always | Skill name, description, trigger keywords |
| Level 2 | ~5,000 | On trigger match | Full document, code examples, patterns |
| Level 3 | Unlimited | On demand | modules/, reference.md, examples.md |
- Naive approach: loading all 34 skills = about 170,000 tokens (infeasible)
- Progressive disclosure: metadata only = about 3,400 tokens (98% savings)
- Load on demand: only the 2-3 skills the task needs = about 15,000 additional tokens
Skills load automatically via 4 trigger conditions.
flowchart TD
REQ[Analyze user request] --> KW{Keyword detection}
REQ --> AG{Agent invocation}
REQ --> PH{Workflow phase}
REQ --> LN{Language detection}
KW -->|"api, database"| SKILL1[moai-domain-backend]
AG -->|"manager-develop"| SKILL1
PH -->|"run phase"| SKILL2[moai-workflow-ddd]
LN -->|"Python file"| SKILL3[moai-domain-backend]
SKILL1 --> LOAD[Skill loaded]
SKILL2 --> LOAD
SKILL3 --> LOAD# The actual SKILL.md frontmatter (auto-discovery is driven by the description/when_to_use prose)
name: moai-domain-backend
description: >
Backend development specialist ... Use when designing APIs,
implementing server logic, authentication, or authorization.
when_to_use: >
Use for backend work: API design (REST, GraphQL, gRPC) ...
allowed-tools: Read, Write, Edit, Bash(go:*), Grep, Glob # CSV string (not a YAML array)
user-invocable: false
metadata:
version: "1.0.0"
category: "domain"Auto-load mechanism:
- Claude Code reads the
description/when_to_useprose and discovers a skill by matching it against the domain of the user request (there is no separatetriggers:block). allowed-toolsis written as a CSV string (not space-separated, not a YAML array).- The orchestrator routes domain skills by injecting an
At start, invoke Skill("<name>")instruction on agent spawn (skill-routing.md).
You can invoke a skill directly in a Claude Code conversation.
# Invoke a skill in Claude Code
> Skill("moai-domain-backend")
> Skill("moai-domain-frontend")
> Skill("moai-ref-api-patterns")In most cases skills are loaded automatically by the trigger mechanism. The conversation context is analyzed and the appropriate skills are activated without the user invoking anything.
Skill files live in the .claude/skills/ directory.
.claude/skills/
├── moai-foundation-core/ # Foundation category
│ ├── skill.md # main skill document (500 lines or fewer)
│ ├── modules/ # in-depth documents (unlimited)
│ │ ├── trust-5-framework.md
│ │ ├── spec-first-ddd.md
│ │ └── delegation-patterns.md
│ ├── examples.md # real-world examples
│ └── reference.md # external reference links
│
├── moai-domain-backend/ # Domain category
│ ├── skill.md
│ └── modules/
│ ├── api-patterns.md
│ └── microservices.md
│
└── my-skills/ # user custom skills (excluded from updates)
└── my-custom-skill/
└── skill.mdWarningWarning: Skills with themoai-*prefix are overwritten on MoAI-ADK updates. Always create personal skills in the.claude/skills/my-skills/directory.
A skill prefix distinguishes the distribution owner, and moai update behaves differently.
| Prefix | Ownership | moai update behavior |
|---|---|---|
moai-* / moai-harness-* | template-managed | Overwrite (sync) |
hns-* | user-owned (harness) | Preserve (no modify/delete) |
| (no prefix) / other | user-owned (personal) | Preserve |
The hns-* prefix means a user-created harness skill, which moai update never overwrites or deletes. You must not mirror hns-* skills in the template (a CI guard detects it).
WarningNote: Skills with themoai-*prefix are overwritten on a MoAI-ADK update. Create personal skills and harness skills in ahns-*-prefixed or prefix-less directory.
Each skill’s skill.md follows this structure.
---
name: moai-domain-backend
description: >
Backend development specialist. Provides API design, microservices, and database integration patterns.
Use when developing APIs, web apps, or data pipelines.
version: 3.0.0
category: domain
status: active
triggers:
keywords: ["api", "database", "microservices", "authentication"]
allowed-tools: ["Read", "Grep", "Glob", "Bash"]
---
# Backend Development Specialist
## Quick Reference
(quick reference - 30 seconds)
## Implementation Guide
(implementation guide - 5 minutes)
## Advanced Patterns
(advanced patterns - 10 minutes+)
## Works Well With
(related skills/agents)A scenario where the user is working in a Python FastAPI project.
# 1. The user requests API development
> Build a user authentication API with FastAPI
# 2. Keywords MoAI-ADK detects automatically
# "FastAPI" → moai-domain-backend trigger (Python patterns come from rules/moai/languages/)
# "authentication" → moai-domain-backend trigger
# "API" → moai-domain-backend trigger
# 3. Skills loaded automatically
# - moai-domain-backend (Level 2): API design patterns, authentication strategies
# - moai-foundation-core (Level 1): TRUST 5 quality standards
# 4. The agent implements using skill knowledge
# - Applies FastAPI router patterns
# - Applies JWT authentication best practices
# - Auto-generates pytest tests
# - Meets TRUST 5 quality standardsHow multiple skills cooperate on a single task.
flowchart TD
REQ["User: Build a full-stack app
with Supabase + Next.js"] --> ANALYZE[Analyze request]
ANALYZE --> S1["moai-domain-frontend
React/Next.js patterns"]
ANALYZE --> S2["moai-domain-backend
API design patterns"]
ANALYZE --> S3["moai-domain-database
Database integration"]
ANALYZE --> S4["moai-foundation-core
TRUST 5 quality"]
S1 --> IMPL[Integrated implementation]
S2 --> IMPL
S3 --> IMPL
S4 --> IMPL
IMPL --> RESULT["Type-safe
full-stack app"]Claude Code discovers .claude/skills/ not only at the project root but also in nested subdirectories (parent-walk). Monorepos can therefore place package-local skills in each package’s own .claude/skills/ directory. When working inside a nested directory containing its own .claude/skills/, that nested directory’s skills are loaded alongside the root-level skills while working within that subtree.
When the same skill name appears in more than one .claude/skills/ directory along the nesting chain, the closest-directory-wins rule resolves the conflict: the .claude/skills/ closest to the current working directory shadows the one higher up the tree. This is the same precedent rule already applied to agents, workflows, and output-styles under nested .claude/ directories — the innermost .claude/ wins. A package-local skill that deliberately overrides a root skill must keep the same name. Renaming it creates a second skill, not an override.
disableBundledSkills (a settings.json boolean, or its environment-variable form) hides Claude Code’s bundled skills and workflows — e.g. /deep-research, built-in slash-command skills — from discovery, exposing only enterprise + personal + project + plugin skills. Use it when providing a curated, bundle-free skill surface. MoAI-ADK does not generate this toggle in its own generators. It is documented here as an available option. The companion --safe-mode launch flag is documented in the Settings JSON Guide.
- Agent Guide - the agent system that uses skills
- Builder Agents Guide - how to create custom skills
- CLAUDE.md Guide - skill configuration and the rules system
InfoTip: The key to using skills well is using the right keywords. Ask “build a REST API in Python” and themoai-domain-backendskill activates automatically (Python patterns are provided viarules/moai/languages/) to generate optimal code.