moai-adk-go Domain Patterns
SkillDev toolsmoai-adk-go domain-patterns reference for the 4 harness specialists (cli-template-specialist, quality-specialist, workflow-specialist, hook-ci-specialist). Covers the CLI/template/config/hook/spec subsystem architecture, key source paths, the Pipeline specialist delegation map, the Template-First build cycle, the namespace separation contract, and common add-a-template / add-a-hook / add-an-agent / add-a-SPEC workflows. Loaded by the specialists when working on moai-adk-go's own Go codebase and templates.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the moai-adk-go Domain Patterns skill
What this skill tells your AI
The instructions your AI receives, as published by modu-ai/moai-adk in .claude/skills/hns-moaiadk-patterns/SKILL.md and read by ahel’s review.
Architecture Quick Reference
moai-adk-go is a Go binary (moai) with four subsystems:
- CLI (
internal/cli/*.go,cmd/moai/) — Cobra commands:init,update,hook,build,glm,cc,cg,version,doctor,spec. Subcommand handlers read stdin JSON for hooks, emit structured output for the orchestrator. - Template system (
internal/template/) —go:embed-based scaffolding. Source atinternal/template/templates/, embedded into the binary via//go:embed all:templatesininternal/template/embed.go(no generated.gofile).make buildrecompiles the binary.TemplateContext({{.GoBinPath}}/{{.HomeDir}}) renders atmoai init. - Config (
internal/config/) —defaults.go(single source for thresholds),envkeys.go(env-var constants),TemplateContextrenderer. - Hook + CI (
.claude/hooks/moai/*.sh,.github/workflows/) — bash wrapper hooks callingmoai hook <event>; CI guard enforces template neutrality.
Plus the SPEC lifecycle (.moai/specs/) governing the project's own
development (plan→run→sync→Mx).
Key Source Paths
| Subsystem | Path | Notes |
|---|---|---|
| Cobra commands | internal/cli/*.go | wired from cmd/moai/ |
| Template source | internal/template/templates/** | edit HERE first |
| Embedded assets | internal/template/embed.go | //go:embed all:templates (no generated file) |
| Config defaults | internal/config/defaults.go | threshold SSOT |
| Env constants | internal/config/envkeys.go | no hardcoded env names |
| SPEC docs | .moai/specs/SPEC-*/ | spec/plan/acceptance/progress |
| Era classifier | internal/spec/era.go | ClassifyEra() H-1..H-6 |
| Hook scripts | .claude/hooks/moai/*.sh | bash only, no Python |
| CI workflows | .github/workflows/*.yaml | neutrality guard active |
| Harness agents | .claude/agents/harness/*.md | USER-OWNED (this skill) |
Pipeline Specialist Delegation Map
This harness is a 4-stage pipeline; each specialist delegates to retained agents (never archived, never replaces them):
CLI/Template ──→ quality ──→ workflow ──→ hook/CI
│ │ │ │
├─ manager-develop (tdd, backend)
├─ Explore (read-only)
├─ sync-auditor (4-dim scoring)
├─ sync-phase-quality-gate.sh (Stop hook)
├─ manager-spec (plan)
├─ manager-develop (run)
├─ manager-docs (sync)
├─ plan-auditor (audit)
├─ builder-harness (artifact_type=hook|command|plugin)
└─ Agent(general-purpose, model: opus, tools: ..., prompt: "...CI specialist...")
Template-First Build Cycle
When adding/editing anything that ships to user projects:
- Edit
internal/template/templates/<path>FIRST. - Run
make build→ recompiles the binary (templates embedded via//go:embed all:templatesinembed.go; no generated.gofile). - Sync to local:
moai update(or manual copy). - Verify the local
.claude//.moai/reflects the template. - Run
go test ./internal/template/...(neutrality audit included).
Never edit .claude/ or .moai/ directly without a template source. The
source of truth is templates/ — edit files there, then make build.
Namespace Separation Contract
Two namespaces, enforced by moai update:
| Namespace | Location | Owner | moai update behavior |
|---|---|---|---|
| Template-managed | internal/template/templates/** → .claude/agents/{core,expert,meta}/, moai-* skills | MoAI-ADK distribution | Overwrites local on sync |
| User-owned (this harness) | .claude/agents/harness/, harness-* skills, .moai/harness/ | Project developer | NEVER deleted/modified; backup before update |
The canonical user-owned skill prefix is harness-* (recognized by Go
enforcement after the namespace catch-up, SPEC-V3R6-HARNESS-NAMESPACE-V2-001).
The legacy my-harness-* form is retained during a backward-compat
deprecation window; new skills MUST use the bare harness-* prefix.
Common Workflows
Add a template
- Create file at
internal/template/templates/<path>. make build.moai update(or test via./moai init /tmp/test-project).go test ./internal/template/... -run TestTemplateNeutralityAudit.
Add a hook
- Write
.claude/hooks/moai/handle-<event>.sh(bash, reads stdin JSON, callsmoai hook <event>). - Wire in
.claude/settings.jsonwith"$CLAUDE_PROJECT_DIR/..."quoting +timeout: 5. - If the hook is template-distributable, add the wrapper template source AND
the settings.json entry to
internal/template/templates/.
Add an agent (harness specialist)
- Create
.claude/agents/harness/<role>-specialist.mdwithname, trigger-shapeddescription,skills:array (companion skill),tools:(CSV string). - Ensure the companion
harness-*skill exists (else self-activation smoke gate FAILs).
Add a SPEC
/moai plan "<description>"→manager-specauthors plan-phase artifacts.plan-auditorindependent audit gate.- Implementation Kickoff Approval human gate (orchestrator runs
AskUserQuestion). /moai run SPEC-<ID>→manager-develop(cycle_type per quality.yaml)./moai sync SPEC-<ID>→manager-docs.sync-auditor4-dimension gate.- 3-phase close on the single sync commit (populate
sync_commit_shain §E.4; the sync commit carries theimplemented → completedtransition — per SPEC-V3R6-LIFECYCLE-REDESIGN-001, the former separatemx_commit_sha/ §E.5 Mx-phase step is retired; MX Tag validation is a sync sub-step).
Cross-References
- CLAUDE.local.md §2 (Template-First Rule), §7 (hooks), §21 (dev-only commands)
.claude/rules/moai/development/agent-authoring.md— agent frontmatter schema.claude/rules/moai/development/skill-authoring.md— skill frontmatter schema.claude/rules/moai/workflow/archived-agent-rejection.md§C — migration table.claude/skills/moai-meta-harness/SKILL.md§ Namespace Separation
Signals
- GitHub stars
- 1k
- Forks
- 221
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
hns-moaiadk-patterns- Source
- github.com/modu-ai/moai-adk