
Standards
Keep DDD and hexagonal architecture vocabulary consistent when building or extending AgentOps packets, hooks, and CLI around ExecutionPacket.
Overview
Standards is an agent skill for the Build phase that enforces AgentOps DDD and hexagonal ubiquitous language across skills, hooks, schemas, and CLI.
Install
npx skills add https://github.com/boshu2/agentops --skill standardsWhat is this skill?
- Canonical ubiquitous-language register complementing PRACTICE-REGISTRY.md practice slugs
- Mandates consistent terms across skills, hooks, schemas, and CLI commands
- Defines Aggregate / Aggregate Root with ExecutionPacket as the v1 aggregate root
- Entries cite source works (e.g. Evans 2003) and AgentOps doctrine surfaces
- Forward-references code anchors that may land in later DDD+Hexagonal plan waves
- ExecutionPacket documented as the sole aggregate root in AgentOps v1
Adoption & trust: 770 installs on skills.sh; 384 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your agent-assisted changes introduce inconsistent domain terms so packet invariants and hexagonal boundaries are hard to review or automate.
Who is it for?
Builders extending boshu2/agentops CLI, packet aggregates, or companion skills who need a single source of truth for DDD terms.
Skip if: Solo makers who only want marketing, SEO, or generic coding help without AgentOps domain modeling.
When should I use this skill?
User is implementing or documenting AgentOps domain concepts, or asks about DDD, hexagonal, aggregate root, or ubiquitous language in the AgentOps repo.
What do I get? / Deliverables
Contributors align on canonical architecture definitions and cite the register before naming new concepts in AgentOps code or skills.
- Term definitions with citations and code anchors
- Alignment checklist for naming in skills and CLI
Recommended Skills
Journey fit
Build phase is where agent frameworks, schemas, and domain models are defined; this register governs naming for AgentOps implementation work. Agent-tooling subphase matches ubiquitous-language registers, aggregate roots, and CLI domain anchors—not generic app CRUD.
How it compares
Reference glossary for an agent ops repo—not a starter template for shipping a consumer SaaS UI.
Common Questions / FAQ
Who is standards for?
Developers and agent operators working inside the AgentOps ecosystem who must keep architecture language aligned with ExecutionPacket and hexagonal layout.
When should I use standards?
During Build agent-tooling when authoring skills, hooks, or CLI changes; before reviews that touch domain boundaries; when you need the definition of aggregate root versus supporting entities.
Is standards safe to install?
It is read-only reference material in SKILL.md; check the Security Audits panel on this Prism page for the parent repository before install.
SKILL.md
READMESKILL.md - Standards
# Architecture Terms (Ubiquitous-Language Register) This file is the canonical register for the DDD/Hexagonal vocabulary AgentOps uses. It complements `PRACTICE-REGISTRY.md`, which owns practice slugs rather than architecture terms. Every skill, hook, schema, and CLI command that names one of these concepts MUST use the term as defined here. New terms are appended; existing entries are revised in place rather than renamed. Citations point to the source work that named the concept (`Author Year`) or to a canonical AgentOps doctrine surface. Code anchors are relative-path links; some anchors point at files scheduled by later waves of the DDD+Hexagonal v1 plan and may not yet exist on disk — that is intentional forward referencing. ## Aggregate / Aggregate Root **Aggregate / Aggregate Root** — Evans, *Domain-Driven Design*, 2003 (Part II, ch. 6). An *aggregate* is a cluster of domain objects treated as a single unit for the purpose of invariant enforcement and persistence; the *aggregate root* is the one entity outside collaborators are allowed to reference, and it gate-keeps every mutation so the aggregate's invariants hold at every transaction boundary. In AgentOps v1, `ExecutionPacket` is the sole aggregate root — phase transitions, attempt history, and verdict assignment all flow through it so that "a packet is always in a legal phase with a consistent attempt graph" remains invariant. Anchor: [`../../../cli/internal/domain/packet/aggregate.go`](../../../cli/internal/domain/packet/aggregate.go) (created in Wave 1 #6). ## Bounded Context **Bounded Context** — Evans, *Domain-Driven Design*, 2003 (Part IV, ch. 14). A *bounded context* is an explicit boundary inside which a single model and its ubiquitous language apply consistently; outside the boundary the same words may mean different things, and translation is required at the seam. In AgentOps each skill directory under `skills/<name>/` is treated as one bounded context: terms like "validate", "promote", or "phase" carry skill-local meanings, and cross-skill contracts go through declared inputs/outputs rather than shared mutable state. Anchor: [`../../../skills/`](../../../skills/) (each subdirectory is one context). ## Ubiquitous Language **Ubiquitous Language** — Evans, *Domain-Driven Design*, 2003 (Part I, ch. 2). A *ubiquitous language* is a vocabulary deliberately shared between domain experts and code so that the same words name the same concepts in conversation, documentation, and source — eliminating the translation layer that otherwise rots requirements. AgentOps maintains its ubiquitous language as two coupled registries: the practice-slug registry at [`../../../PRACTICE-REGISTRY.md`](../../../PRACTICE-REGISTRY.md) for cross-era practice names, and this file for DDD/Hexagonal architectural terms. Anchor: [`../../../PRACTICE-REGISTRY.md`](../../../PRACTICE-REGISTRY.md) — the slug registry section. ## Port / Adapter **Port / Adapter** — Cockburn, "Hexagonal architecture" (alistair.cockburn.us), 2005. In *hexagonal architecture* a *port* is a domain-defined interface describing one kind of conversation the application can have with the outside world; an *adapter* is the concrete implementation of that conversation against a specific technology. Ports come in two flavors: *primary* (driving) ports are called *by* outside actors (CLI, HTTP, test harness) to invoke the domain, while *secondary* (driven) ports are called *by* the domain to reach external systems (storage, Git, LLM, beads). In AgentOps the `PacketRepository`, `ClaimEmitter`, and `EvaluatorBus` interfaces are secondary ports; the `ao` CLI commands are primary adapters that drive those ports. Anchor: [`../../../cli/internal/ports/`](../../../cli/internal/ports/) (created in Wave 1 #6). ## Anti-Corruption Layer (ACL) **Anti-Corruption Layer (ACL)** — Evans, *Domain-Driven Design*, 2003 (Part IV, ch. 14, "Anticorruption Layer" pattern). An *anti-corruption layer* is a translating boundary placed betw