Schema Reference
A living, field-by-field reference for every major .usm type. Sourced from the v1 JSON Schema — type, required, constraints, and descriptions are never hand-maintained here.
How to use this page
Scan the summary tables for a quick answer, then expand a field for intent, YAML example, generator/MCP impact, and best practices.
File types at a glance
$type | Purpose | Required header fields |
|---|---|---|
system | Whole-system map (identity, services, features index) | $schema, $id, $type, $version, summary, identity |
service | One deployable service or shared package | $schema, $id, $type, $version, summary, $system |
feature | One capability with flows, contracts, tests | $schema, $id, $type, $version, summary, $system, $service, intent |
feedback | Structured agent/human feedback entry | $schema, $id, $type, $version, summary, kind, severity, status, reported_by |
system Files
| Field | Type | Required | Description |
|---|---|---|---|
$schema | "https://usm.dev/schema/v1.json" | yes | |
$id | string | yes | |
$type | "system" | yes | |
$version | integer | yes | |
$last_updated | string | — | |
summary | string | yes | |
status | planned | in-progress | built | deprecated | — | Implementation status: planned (no code yet), in-progress (partial code), built |
version | string | — | The consuming project's OWN release version (e.g. '2.3.1'). NOT the USM tool ver |
usm_version | string | — | The USM tool version this project was last aligned with via usm upgrade (e.g. |
identity | object | yes | |
index | object[] | — | |
services | object[] | — | |
apis | object[] | — | |
data | object[] | — | |
infrastructure | object | — | |
deployment | object | — | |
operations | object | — | |
policies | object | — | |
risks | object[] | — | |
roadmap | object[] | — | |
agent_context | string | — | Markdown content for AI agent context — critical distinctions, usage modes, etc. |
conventions | string[] | — | Platform-wide conventions that all agents must follow |
mandatory_reading | object[] | — | Documents that must be read before any work |
nextjs_breaking_changes | string | — | Markdown content describing Next.js 16 breaking changes (middleware→proxy, Turbo |
principles | object[] | — | TOGAF Architecture Principles — the rules and values that govern all architectur |
roles | object[] | — | User roles — who uses this system and what they need from the docs and tools. |
local_development | object | — | Local development workflow — commands, quirks, log locations, and external servi |
feedback | object | — | Agent feedback policy — governs how AI agents report bugs and improvements. Set |
Field details
$schema (required, "https://usm.dev/schema/v1.json")
$schema
Description and intent
No description in schema.
Type and constraints
- Type:
"https://usm.dev/schema/v1.json" - Required: yes
- const:
"https://usm.dev/schema/v1.json"
YAML example
$schema: "https://usm.dev/schema/v1.json"Impact
Pins the JSON Schema version used by usm validate.
$id (required, string)
$id
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
$id: "example-value"Impact
Stable identity used by MCP tools, cross-refs, and generators.
Best practice
Format org/name. Immutable after write — never rename casually.
$type (required, "system")
$type
Description and intent
No description in schema.
Type and constraints
- Type:
"system" - Required: yes
- const:
"system"
YAML example
$type: "system"Impact
Discriminator for validation (oneOf) and type-specific generators.
$version (required, integer)
$version
Description and intent
No description in schema.
Type and constraints
- Type: integer
- Required: yes
YAML example
$version: 1Impact
Schema format version; mismatch produces a validation warning.
$last_updated (optional, string)
$last_updated
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: no
YAML example
$last_updated: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
summary (required, string)
summary
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
summary: |
One or two sentences describing this.Impact
Rendered on every generated doc page; used by MCP usm_list / usm_search.
Best practice
Keep to 1–3 sentences. Lead with the outcome, not the implementation.
status (optional, planned / in-progress / built / deprecated)
status
Description and intent
Implementation status: planned (no code yet), in-progress (partial code), built (code exists), deprecated (replaced by something else)
Type and constraints
- Type:
planned|in-progress|built|deprecated - Required: no
- enum:
planned,in-progress,built,deprecated - default:
"built"
YAML example
status: "planned"Impact
Drives help-docs filtering (only built/public appear); badges in sidebar.
Best practice
Only advance planned → in-progress → built → deprecated. Use MCP status tools.
version (optional, string)
version
Description and intent
The consuming project's OWN release version (e.g. '2.3.1'). NOT the USM tool version. Distinct from $version (schema format) and usm_version (tool alignment).
Type and constraints
- Type: string
- Required: no
YAML example
version: "example-value"Impact
Project's own release version — not the USM tool version.
usm_version (optional, string)
usm_version
Description and intent
The USM tool version this project was last aligned with via usm upgrade (e.g. '0.1.0'). Used to detect stale projects and offer new capabilities. Absent = never upgraded (treated as 0.0.0). Do not confuse with version (the project's own release) or $version (the schema format).
Type and constraints
- Type: string
- Required: no
YAML example
usm_version: "example-value"Impact
Compared by usm upgrade against the installed tool version.
Best practice
Written only by usm upgrade. Do not hand-edit unless you know why.
identity (required, object)
identity
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: yes
YAML example
identity:
# nested fields…Impact
Homepage hero, VitePress title/description, footer/repo links.
index (optional, object[])
index
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
index:
- example-itemImpact
Feature index, sidebar feature groups, getting-started example selection.
services (optional, object[])
services
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
services:
- example-itemImpact
Service overview pages + homepage service lists.
apis (optional, object[])
apis
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
apis:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
data (optional, object[])
data
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
data:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
infrastructure (optional, object)
infrastructure
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
infrastructure:
# nested fields…Impact
Deployment docs and ArchiMate/TOGAF outputs.
deployment (optional, object)
deployment
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
deployment:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
operations (optional, object)
operations
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
operations:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
policies (optional, object)
policies
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
policies:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
risks (optional, object[])
risks
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
risks:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
roadmap (optional, object[])
roadmap
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
roadmap:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
agent_context (optional, string)
agent_context
Description and intent
Markdown content for AI agent context — critical distinctions, usage modes, etc.
Type and constraints
- Type: string
- Required: no
YAML example
agent_context: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
conventions (optional, string[])
conventions
Description and intent
Platform-wide conventions that all agents must follow
Type and constraints
- Type: string[]
- Required: no
YAML example
conventions:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
mandatory_reading (optional, object[])
mandatory_reading
Description and intent
Documents that must be read before any work
Type and constraints
- Type: object[]
- Required: no
YAML example
mandatory_reading:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
nextjs_breaking_changes (optional, string)
nextjs_breaking_changes
Description and intent
Markdown content describing Next.js 16 breaking changes (middleware→proxy, Turbopack, etc.)
Type and constraints
- Type: string
- Required: no
YAML example
nextjs_breaking_changes: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
principles (optional, object[])
principles
Description and intent
TOGAF Architecture Principles — the rules and values that govern all architecture decisions.
Type and constraints
- Type: object[]
- Required: no
YAML example
principles:
- example-itemImpact
Homepage feature cards + AGENTS.md principles section.
roles (optional, object[])
roles
Description and intent
User roles — who uses this system and what they need from the docs and tools.
Type and constraints
- Type: object[]
- Required: no
YAML example
roles:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
local_development (optional, object)
local_development
Description and intent
Local development workflow — commands, quirks, log locations, and external services required to run the platform on a developer's machine.
Type and constraints
- Type: object
- Required: no
YAML example
local_development:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
feedback (optional, object)
feedback
Description and intent
Agent feedback policy — governs how AI agents report bugs and improvements. Set up via usm init. Drives the Feedback Protocol block rendered into all agent-facing rules files.
Type and constraints
- Type: object
- Required: no
YAML example
feedback:
# nested fields…Impact
Agent Feedback Protocol in all rules files; usm upgrade / usm feedback.
Best practice
Default policy is human-gate. Never invent ad-hoc bugs.md files.
service Files
| Field | Type | Required | Description |
|---|---|---|---|
$schema | "https://usm.dev/schema/v1.json" | yes | |
$id | string | yes | |
$type | "service" | yes | |
$version | integer | yes | |
$last_updated | string | — | |
summary | string | yes | |
name | string | — | Human-readable display name for this service (e.g., 'Agent X (Tenant)' instead o |
$system | string | yes | Reference to system.usm file (e.g. smith-gray/system) |
status | planned | in-progress | built | deprecated | — | Implementation status: planned (no code yet), in-progress (partial code), built |
type | web-app | api | worker | idp | llm-gateway | agent-flows | database | cache | queue | yes | |
runtime | string | yes | |
port | integer | — | |
paths | string[] | — | |
depends_on | string[] | — | |
dev | object | — | |
prod | object | — | |
testing | object | — | |
security | object | — | |
risks | string[] | — | |
future | string[] | — | |
decisions | object[] | — | |
modules | object[] | — | |
project_structure | string | — | Markdown describing the project's directory layout (app/, lib/, components/, etc |
rbac | object | — | |
tech_stack | object | — | Detailed tech stack mapping (framework, language, styling, database, auth, etc.) |
conventions | string[] | — | Service-level conventions (import aliases, auth patterns, code rules) |
testing_details | object | — | |
patterns | object[] | — | Shared patterns used by this service (e.g., prisma-singleton, litellm-proxy, zit |
runtime_details | string | — | Markdown describing the agent runtime architecture (Docker sandbox, config-gener |
infrastructure | object | — | Terraform-managed infrastructure for this service. Extracted by `usm scan infras |
Field details
$schema (required, "https://usm.dev/schema/v1.json")
$schema
Description and intent
No description in schema.
Type and constraints
- Type:
"https://usm.dev/schema/v1.json" - Required: yes
- const:
"https://usm.dev/schema/v1.json"
YAML example
$schema: "https://usm.dev/schema/v1.json"Impact
Pins the JSON Schema version used by usm validate.
$id (required, string)
$id
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
$id: "example-value"Impact
Stable identity used by MCP tools, cross-refs, and generators.
Best practice
Format org/name. Immutable after write — never rename casually.
$type (required, "service")
$type
Description and intent
No description in schema.
Type and constraints
- Type:
"service" - Required: yes
- const:
"service"
YAML example
$type: "service"Impact
Discriminator for validation (oneOf) and type-specific generators.
$version (required, integer)
$version
Description and intent
No description in schema.
Type and constraints
- Type: integer
- Required: yes
YAML example
$version: 1Impact
Schema format version; mismatch produces a validation warning.
$last_updated (optional, string)
$last_updated
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: no
YAML example
$last_updated: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
summary (required, string)
summary
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
summary: |
One or two sentences describing this.Impact
Rendered on every generated doc page; used by MCP usm_list / usm_search.
Best practice
Keep to 1–3 sentences. Lead with the outcome, not the implementation.
name (optional, string)
name
Description and intent
Human-readable display name for this service (e.g., 'Agent X (Tenant)' instead of 'tenant'). Falls back to derived from $id if not set.
Type and constraints
- Type: string
- Required: no
YAML example
name: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
$system (required, string)
$system
Description and intent
Reference to system.usm file (e.g. smith-gray/system)
Type and constraints
- Type: string
- Required: yes
YAML example
$system: "example-value"Impact
Links features/services back to their system file.
status (optional, planned / in-progress / built / deprecated)
status
Description and intent
Implementation status: planned (no code yet), in-progress (partial code), built (code exists), deprecated (replaced by something else)
Type and constraints
- Type:
planned|in-progress|built|deprecated - Required: no
- enum:
planned,in-progress,built,deprecated - default:
"built"
YAML example
status: "planned"Impact
Drives help-docs filtering (only built/public appear); badges in sidebar.
Best practice
Only advance planned → in-progress → built → deprecated. Use MCP status tools.
type (required, web-app / api / worker / idp / llm-gateway / agent-flow)
type
Description and intent
No description in schema.
Type and constraints
- Type:
web-app|api|worker|idp|llm-gateway|agent-flows|database|cache|queue - Required: yes
- enum:
web-app,api,worker,idp,llm-gateway,agent-flows,database,cache,queue
YAML example
type: "web-app"Impact
Validated by usm validate; available to generators and MCP tools.
runtime (required, string)
runtime
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
runtime: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
port (optional, integer)
port
Description and intent
No description in schema.
Type and constraints
- Type: integer
- Required: no
YAML example
port: 1Impact
Validated by usm validate; available to generators and MCP tools.
paths (optional, string[])
paths
Description and intent
No description in schema.
Type and constraints
- Type: string[]
- Required: no
YAML example
paths:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
depends_on (optional, string[])
depends_on
Description and intent
No description in schema.
Type and constraints
- Type: string[]
- Required: no
YAML example
depends_on:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
dev (optional, object)
dev
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
dev:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
prod (optional, object)
prod
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
prod:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
testing (optional, object)
testing
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
testing:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
security (optional, object)
security
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
security:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
risks (optional, string[])
risks
Description and intent
No description in schema.
Type and constraints
- Type: string[]
- Required: no
YAML example
risks:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
future (optional, string[])
future
Description and intent
No description in schema.
Type and constraints
- Type: string[]
- Required: no
YAML example
future:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
decisions (optional, object[])
decisions
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
decisions:
- example-itemImpact
ADR-style decision records in feature docs.
Best practice
Record rejected alternatives — future agents will re-propose them otherwise.
modules (optional, object[])
modules
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
modules:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
project_structure (optional, string)
project_structure
Description and intent
Markdown describing the project's directory layout (app/, lib/, components/, etc.)
Type and constraints
- Type: string
- Required: no
YAML example
project_structure: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
rbac (optional, object)
rbac
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
rbac:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
tech_stack (optional, object)
tech_stack
Description and intent
Detailed tech stack mapping (framework, language, styling, database, auth, etc.)
Type and constraints
- Type: object
- Required: no
YAML example
tech_stack:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
conventions (optional, string[])
conventions
Description and intent
Service-level conventions (import aliases, auth patterns, code rules)
Type and constraints
- Type: string[]
- Required: no
YAML example
conventions:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
testing_details (optional, object)
testing_details
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
testing_details:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
patterns (optional, object[])
patterns
Description and intent
Shared patterns used by this service (e.g., prisma-singleton, litellm-proxy, zitadel-oidc)
Type and constraints
- Type: object[]
- Required: no
YAML example
patterns:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
runtime_details (optional, string)
runtime_details
Description and intent
Markdown describing the agent runtime architecture (Docker sandbox, config-generator, warm pool, etc.)
Type and constraints
- Type: string
- Required: no
YAML example
runtime_details: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
infrastructure (optional, object)
infrastructure
Description and intent
Terraform-managed infrastructure for this service. Extracted by usm scan infrastructure.
Type and constraints
- Type: object
- Required: no
YAML example
infrastructure:
# nested fields…Impact
Deployment docs and ArchiMate/TOGAF outputs.
feature Files
| Field | Type | Required | Description |
|---|---|---|---|
$schema | "https://usm.dev/schema/v1.json" | yes | |
$id | string | yes | |
$type | "feature" | yes | |
$version | integer | yes | |
$last_updated | string | — | |
summary | string | yes | |
$system | string | yes | |
$service | string | yes | |
status | planned | in-progress | built | deprecated | — | Implementation status: planned (no code yet), in-progress (partial code), built |
intent | string | yes | 1-3 sentences: the why behind this feature |
visibility | public | internal | — | Controls whether this feature appears in help docs (public) or only developer do |
decisions | object[] | — | |
flows | object[] | — | |
interfaces | object[] | — | |
contracts | object[] | — | |
tests | object[] | — | |
implementation | object | — | |
see_also | string[] | — | |
routes | object[] | — | Routes (pages + API endpoints) that compose this feature |
apps | string[] | — | Apps this feature is deployed in |
source | string | — | How this feature was detected (e.g., 'scan', 'hand-written') |
usage | object[] | — | Command usage examples for this feature |
options | object[] | — | CLI options/flags for this feature |
prerequisites | string[] | — | What needs to exist before using this feature |
command | string | — | The user-facing name shown in reference docs, decoupled from the internal $id gr |
Field details
$schema (required, "https://usm.dev/schema/v1.json")
$schema
Description and intent
No description in schema.
Type and constraints
- Type:
"https://usm.dev/schema/v1.json" - Required: yes
- const:
"https://usm.dev/schema/v1.json"
YAML example
$schema: "https://usm.dev/schema/v1.json"Impact
Pins the JSON Schema version used by usm validate.
$id (required, string)
$id
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
$id: "example-value"Impact
Stable identity used by MCP tools, cross-refs, and generators.
Best practice
Format org/name. Immutable after write — never rename casually.
$type (required, "feature")
$type
Description and intent
No description in schema.
Type and constraints
- Type:
"feature" - Required: yes
- const:
"feature"
YAML example
$type: "feature"Impact
Discriminator for validation (oneOf) and type-specific generators.
$version (required, integer)
$version
Description and intent
No description in schema.
Type and constraints
- Type: integer
- Required: yes
YAML example
$version: 1Impact
Schema format version; mismatch produces a validation warning.
$last_updated (optional, string)
$last_updated
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: no
YAML example
$last_updated: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
summary (required, string)
summary
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
summary: |
One or two sentences describing this.Impact
Rendered on every generated doc page; used by MCP usm_list / usm_search.
Best practice
Keep to 1–3 sentences. Lead with the outcome, not the implementation.
$system (required, string)
$system
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
$system: "example-value"Impact
Links features/services back to their system file.
$service (required, string)
$service
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
$service: "example-value"Impact
Groups features under a service for docs and MCP context.
status (optional, planned / in-progress / built / deprecated)
status
Description and intent
Implementation status: planned (no code yet), in-progress (partial code), built (code exists), deprecated (replaced by something else)
Type and constraints
- Type:
planned|in-progress|built|deprecated - Required: no
- enum:
planned,in-progress,built,deprecated - default:
"built"
YAML example
status: "planned"Impact
Drives help-docs filtering (only built/public appear); badges in sidebar.
Best practice
Only advance planned → in-progress → built → deprecated. Use MCP status tools.
intent (required, string)
intent
Description and intent
1-3 sentences: the why behind this feature
Type and constraints
- Type: string
- Required: yes
YAML example
intent: |
One or two sentences describing this.Impact
Feature docs lead with intent; agents use it to understand why before building.
Best practice
Answer why this exists — not how it works. Agents read this first.
visibility (optional, public / internal)
visibility
Description and intent
Controls whether this feature appears in help docs (public) or only developer docs (internal). Default: internal.
Type and constraints
- Type:
public|internal - Required: no
- enum:
public,internal
YAML example
visibility: "public"Impact
Overrides status for help-docs inclusion (public always shown).
Best practice
Default is internal-safe. Set public only for features safe for help docs.
decisions (optional, object[])
decisions
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
decisions:
- example-itemImpact
ADR-style decision records in feature docs.
Best practice
Record rejected alternatives — future agents will re-propose them otherwise.
flows (optional, object[])
flows
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
flows:
- example-itemImpact
Drives Mermaid sequence diagrams and numbered steps in feature docs.
Best practice
Prefer 3–7 steps. Use stable ids so diagrams and contracts can reference them.
interfaces (optional, object[])
interfaces
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
interfaces:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
contracts (optional, object[])
contracts
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
contracts:
- example-itemImpact
Acceptance criteria in feature docs; feed test-planning via usm_get_contracts.
Best practice
Write must_have as checkable assertions, not vague wishes.
tests (optional, object[])
tests
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: no
YAML example
tests:
- example-itemImpact
Given/When/Then blocks; auto-generate Vitest specs when present.
Best practice
One test per contract when possible. Keep setup keys machine-readable.
implementation (optional, object)
implementation
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
implementation:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
see_also (optional, string[])
see_also
Description and intent
No description in schema.
Type and constraints
- Type: string[]
- Required: no
YAML example
see_also:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
routes (optional, object[])
routes
Description and intent
Routes (pages + API endpoints) that compose this feature
Type and constraints
- Type: object[]
- Required: no
YAML example
routes:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
apps (optional, string[])
apps
Description and intent
Apps this feature is deployed in
Type and constraints
- Type: string[]
- Required: no
YAML example
apps:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
source (optional, string)
source
Description and intent
How this feature was detected (e.g., 'scan', 'hand-written')
Type and constraints
- Type: string
- Required: no
YAML example
source: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
usage (optional, object[])
usage
Description and intent
Command usage examples for this feature
Type and constraints
- Type: object[]
- Required: no
YAML example
usage:
- example-itemImpact
Powers CLI reference pages (usm generate --only docs).
options (optional, object[])
options
Description and intent
CLI options/flags for this feature
Type and constraints
- Type: object[]
- Required: no
YAML example
options:
- example-itemImpact
Powers CLI option tables in the CLI reference.
prerequisites (optional, string[])
prerequisites
Description and intent
What needs to exist before using this feature
Type and constraints
- Type: string[]
- Required: no
YAML example
prerequisites:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
command (optional, string)
command
Description and intent
The user-facing name shown in reference docs, decoupled from the internal $id grouping. For CLI features this is the command as typed (e.g. 'init', 'scan', without the 'usm' prefix). For MCP features this is the tool name (e.g. 'usm_read', 'usm_report_feedback'). Optional — generators fall back to the $id's last segment when absent.
Type and constraints
- Type: string
- Required: no
YAML example
command: "example-value"Impact
Display name for CLI/MCP reference (preferred over $id slug).
Best practice
Bare name only (init, usm_read) — no usm prefix for CLI, full tool name for MCP.
feedback Files
A structured feedback entry (bug, improvement, or question) reported by an agent or human. Lives in .usm/feedback/. First-class .usm file — queryable via MCP, convertible to features or issues.
| Field | Type | Required | Description |
|---|---|---|---|
$schema | "https://usm.dev/schema/v1.json" | yes | |
$id | string | yes | Unique identifier: system/name (e.g. usm/scan-drops-empty-dirs) |
$type | "feedback" | yes | |
$version | integer | yes | |
$last_updated | string | — | |
kind | bug | improvement | question | yes | The nature of the feedback |
severity | low | medium | high | critical | yes | |
title | string | — | Short one-line title |
summary | string | yes | Description of the issue or suggestion |
status | open | acknowledged | resolved | wontfix | yes | |
reported_by | string | yes | Who reported this — e.g. 'agent:glm-5.2' or 'human:james' |
feature | string | — | Related feature $id (optional) |
reproduction | string | — | Steps to reproduce (for bugs) |
suggested_fix | string | — | Proposed resolution (optional) |
created | string | — | Date created (ISO 8601 date) |
Field details
$schema (required, "https://usm.dev/schema/v1.json")
$schema
Description and intent
No description in schema.
Type and constraints
- Type:
"https://usm.dev/schema/v1.json" - Required: yes
- const:
"https://usm.dev/schema/v1.json"
YAML example
$schema: "https://usm.dev/schema/v1.json"Impact
Pins the JSON Schema version used by usm validate.
$id (required, string)
$id
Description and intent
Unique identifier: system/name (e.g. usm/scan-drops-empty-dirs)
Type and constraints
- Type: string
- Required: yes
- pattern:
^[a-z0-9][a-z0-9-]*/[a-z0-9][a-z0-9-]*$
YAML example
$id: "example-value"Impact
Stable identity used by MCP tools, cross-refs, and generators.
Best practice
Format org/name. Immutable after write — never rename casually.
$type (required, "feedback")
$type
Description and intent
No description in schema.
Type and constraints
- Type:
"feedback" - Required: yes
- const:
"feedback"
YAML example
$type: "feedback"Impact
Discriminator for validation (oneOf) and type-specific generators.
$version (required, integer)
$version
Description and intent
No description in schema.
Type and constraints
- Type: integer
- Required: yes
- minimum: 1
YAML example
$version: 1Impact
Schema format version; mismatch produces a validation warning.
$last_updated (optional, string)
$last_updated
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: no
YAML example
$last_updated: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
kind (required, bug / improvement / question)
kind
Description and intent
The nature of the feedback
Type and constraints
- Type:
bug|improvement|question - Required: yes
- enum:
bug,improvement,question
YAML example
kind: "bug"Impact
Validated by usm validate; available to generators and MCP tools.
severity (required, low / medium / high / critical)
severity
Description and intent
No description in schema.
Type and constraints
- Type:
low|medium|high|critical - Required: yes
- enum:
low,medium,high,critical
YAML example
severity: "low"Impact
Validated by usm validate; available to generators and MCP tools.
title (optional, string)
title
Description and intent
Short one-line title
Type and constraints
- Type: string
- Required: no
YAML example
title: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
summary (required, string)
summary
Description and intent
Description of the issue or suggestion
Type and constraints
- Type: string
- Required: yes
- minLength: 10
YAML example
summary: |
One or two sentences describing this.Impact
Rendered on every generated doc page; used by MCP usm_list / usm_search.
Best practice
Keep to 1–3 sentences. Lead with the outcome, not the implementation.
status (required, open / acknowledged / resolved / wontfix)
status
Description and intent
No description in schema.
Type and constraints
- Type:
open|acknowledged|resolved|wontfix - Required: yes
- enum:
open,acknowledged,resolved,wontfix - default:
"open"
YAML example
status: "open"Impact
Drives help-docs filtering (only built/public appear); badges in sidebar.
Best practice
Only advance planned → in-progress → built → deprecated. Use MCP status tools.
reported_by (required, string)
reported_by
Description and intent
Who reported this — e.g. 'agent:glm-5.2' or 'human:james'
Type and constraints
- Type: string
- Required: yes
YAML example
reported_by: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
feature (optional, string)
feature
Description and intent
Related feature $id (optional)
Type and constraints
- Type: string
- Required: no
YAML example
feature: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
reproduction (optional, string)
reproduction
Description and intent
Steps to reproduce (for bugs)
Type and constraints
- Type: string
- Required: no
YAML example
reproduction: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
suggested_fix (optional, string)
suggested_fix
Description and intent
Proposed resolution (optional)
Type and constraints
- Type: string
- Required: no
YAML example
suggested_fix: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
created (optional, string)
created
Description and intent
Date created (ISO 8601 date)
Type and constraints
- Type: string
- Required: no
YAML example
created: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
Shared building blocks
These shapes appear inside feature (and other) files — flows, contracts, tests, decisions, CLI usage.
flows
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | Kebab-case flow identifier |
name | string | yes | |
description | string | — | |
steps | object[] | yes |
Field details
id (required, string)
id
Description and intent
Kebab-case flow identifier
Type and constraints
- Type: string
- Required: yes
- pattern:
^[a-z][a-z0-9-]*$
YAML example
id: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
name (required, string)
name
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
name: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
description (optional, string)
description
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: no
YAML example
description: |
One or two sentences describing this.Impact
Validated by usm validate; available to generators and MCP tools.
steps (required, object[])
steps
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: yes
YAML example
steps:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
contracts
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
description | string | yes | |
applies_after | string[] | — | |
must_have | union[] | — |
Field details
id (required, string)
id
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
- pattern:
^[a-z][a-z0-9-]*$
YAML example
id: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
description (required, string)
description
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
description: |
One or two sentences describing this.Impact
Validated by usm validate; available to generators and MCP tools.
applies_after (optional, string[])
applies_after
Description and intent
No description in schema.
Type and constraints
- Type: string[]
- Required: no
YAML example
applies_after:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
must_have (optional, union[])
must_have
Description and intent
No description in schema.
Type and constraints
- Type: union[]
- Required: no
YAML example
must_have:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
tests
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
flow | union | — | |
setup | object | — | |
expect | object[] | yes | |
contracts | string[] | — |
Field details
id (required, string)
id
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
- pattern:
^[a-z][a-z0-9-]*$
YAML example
id: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
flow (optional, union)
flow
Description and intent
No description in schema.
Type and constraints
- Type: union
- Required: no
YAML example
flow: …Impact
Validated by usm validate; available to generators and MCP tools.
setup (optional, object)
setup
Description and intent
No description in schema.
Type and constraints
- Type: object
- Required: no
YAML example
setup:
# nested fields…Impact
Validated by usm validate; available to generators and MCP tools.
expect (required, object[])
expect
Description and intent
No description in schema.
Type and constraints
- Type: object[]
- Required: yes
YAML example
expect:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
contracts (optional, string[])
contracts
Description and intent
No description in schema.
Type and constraints
- Type: string[]
- Required: no
YAML example
contracts:
- example-itemImpact
Acceptance criteria in feature docs; feed test-planning via usm_get_contracts.
Best practice
Write must_have as checkable assertions, not vague wishes.
decisions
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
decision | string | yes | |
rationale | string | yes | |
date | string | — | |
status | proposed | accepted | rejected | superseded | — | ADR status |
alternatives | object[] | — | Alternatives considered and rejected (ADR-style) |
consequences | string | — | What consequences this decision has (positive and negative) |
Field details
id (required, string)
id
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
id: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
decision (required, string)
decision
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
decision: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
rationale (required, string)
rationale
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
rationale: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
date (optional, string)
date
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: no
YAML example
date: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
status (optional, proposed / accepted / rejected / superseded)
status
Description and intent
ADR status
Type and constraints
- Type:
proposed|accepted|rejected|superseded - Required: no
- enum:
proposed,accepted,rejected,superseded - default:
"accepted"
YAML example
status: "proposed"Impact
Drives help-docs filtering (only built/public appear); badges in sidebar.
Best practice
Only advance planned → in-progress → built → deprecated. Use MCP status tools.
alternatives (optional, object[])
alternatives
Description and intent
Alternatives considered and rejected (ADR-style)
Type and constraints
- Type: object[]
- Required: no
YAML example
alternatives:
- example-itemImpact
Validated by usm validate; available to generators and MCP tools.
consequences (optional, string)
consequences
Description and intent
What consequences this decision has (positive and negative)
Type and constraints
- Type: string
- Required: no
YAML example
consequences: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
usage
| Field | Type | Required | Description |
|---|---|---|---|
command | string | yes | The command invocation |
description | string | yes | What this invocation does |
Field details
command (required, string)
command
Description and intent
The command invocation
Type and constraints
- Type: string
- Required: yes
YAML example
command: "example-value"Impact
Display name for CLI/MCP reference (preferred over $id slug).
Best practice
Bare name only (init, usm_read) — no usm prefix for CLI, full tool name for MCP.
description (required, string)
description
Description and intent
What this invocation does
Type and constraints
- Type: string
- Required: yes
YAML example
description: |
One or two sentences describing this.Impact
Validated by usm validate; available to generators and MCP tools.
options
| Field | Type | Required | Description |
|---|---|---|---|
flag | string | yes | Flag name (e.g. '--root <root>') |
description | string | yes | |
default | string | — |
Field details
flag (required, string)
flag
Description and intent
Flag name (e.g. '--root <root>')
Type and constraints
- Type: string
- Required: yes
YAML example
flag: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
description (required, string)
description
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: yes
YAML example
description: |
One or two sentences describing this.Impact
Validated by usm validate; available to generators and MCP tools.
default (optional, string)
default
Description and intent
No description in schema.
Type and constraints
- Type: string
- Required: no
YAML example
default: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
common Fields
| Field | Type | Required | Description |
|---|---|---|---|
$schema | "https://usm.dev/schema/v1.json" | yes | Schema reference URI |
$id | string | yes | Unique identifier: system/name (e.g. smith-gray/system) |
$type | system | service | feature | api | data | policy | operations | feedback | yes | File type discriminator |
$version | integer | yes | Schema version (starts at 1) |
$last_updated | string | — | Last update date (ISO 8601 date) |
summary | string | yes | 1-3 sentence summary for quick agent scan |
Field details
$schema (required, "https://usm.dev/schema/v1.json")
$schema
Description and intent
Schema reference URI
Type and constraints
- Type:
"https://usm.dev/schema/v1.json" - Required: yes
- const:
"https://usm.dev/schema/v1.json"
YAML example
$schema: "https://usm.dev/schema/v1.json"Impact
Pins the JSON Schema version used by usm validate.
$id (required, string)
$id
Description and intent
Unique identifier: system/name (e.g. smith-gray/system)
Type and constraints
- Type: string
- Required: yes
- pattern:
^[a-z0-9][a-z0-9-]*/[a-z0-9][a-z0-9-]*$
YAML example
$id: "example-value"Impact
Stable identity used by MCP tools, cross-refs, and generators.
Best practice
Format org/name. Immutable after write — never rename casually.
$type (required, system / service / feature / api / data / policy / ope)
$type
Description and intent
File type discriminator
Type and constraints
- Type:
system|service|feature|api|data|policy|operations|feedback - Required: yes
- enum:
system,service,feature,api,data,policy,operations,feedback
YAML example
$type: "system"Impact
Discriminator for validation (oneOf) and type-specific generators.
$version (required, integer)
$version
Description and intent
Schema version (starts at 1)
Type and constraints
- Type: integer
- Required: yes
- minimum: 1
YAML example
$version: 1Impact
Schema format version; mismatch produces a validation warning.
$last_updated (optional, string)
$last_updated
Description and intent
Last update date (ISO 8601 date)
Type and constraints
- Type: string
- Required: no
YAML example
$last_updated: "example-value"Impact
Validated by usm validate; available to generators and MCP tools.
summary (required, string)
summary
Description and intent
1-3 sentence summary for quick agent scan
Type and constraints
- Type: string
- Required: yes
- minLength: 10
YAML example
summary: |
One or two sentences describing this.Impact
Rendered on every generated doc page; used by MCP usm_list / usm_search.
Best practice
Keep to 1–3 sentences. Lead with the outcome, not the implementation.
See also
- CLI Reference — commands that create and validate these files
- MCP Tools — agent tools for reading/writing
.usm - Getting Started — first-run workflow
- Agent Setup Guide — wire USM into Cursor / Claude / Copilot