Command Taxonomy
Overview
EAC commands are organized into a hierarchical taxonomy based on their primary function. Understanding this organization helps you quickly find the right command for your task.
Command Categories
EAC provides 108 commands organized into 14 top-level categories:
1. create (7 commands)
Purpose: AI-powered content generation
Create commands use AI to generate various artifacts including commit messages, specifications, architecture diagrams, and release documentation.
Commands:
create commit-message- Generate semantic commit messages from staged changescreate design- Generate architecture diagrams (workspace.dsl) with AIcreate pr- Create pull requests with AI-generated descriptionscreate risk-assess- Update OSCAL assessment-results with test and security evidencecreate risk-profile- Create OSCAL profiles from risk assessments using AIcreate spec- Generate Gherkin specifications from natural languagecreate squash-message- Generate squash merge commit messages
When to use: During development and release preparation when you need AI assistance to generate structured documentation or content.
See also: Create Commands Category
2. get (18 commands)
Purpose: Structured JSON output for automation
Get commands provide machine-readable JSON output designed for CI/CD pipelines, build scripts, and automation tools.
Key characteristics:
- All output is valid JSON
- Designed to be piped through
jq - Non-zero exit codes on errors
- Cacheable and deterministic
Command groups:
Module & Repository Information:
get modules- Module contractsget dependencies- Dependency graphget files- File-to-module mappings (expensive, 19k tokens)get config- EAC configurationget environments- Environment contracts
Build & Test Information:
get artifacts- Resolved artifactsget build-deps- Build dependenciesget build-times- Build performance dataget execution order- Dependency-based build orderget suite- Test suite informationget tests- All tests in repositoryget test-timings- Test performance data
Change Detection:
get changed-modules- Modules affected by local changesget changed-modules-ci- Modules requiring rebuild since last CI run
Command Metadata:
get commands- Command metadata for shell integrationget valid-commands- All valid commands in structured format
Specifications:
get specs unused-steps- Detect unused godog step definitions
When to use: In CI/CD pipelines, build scripts, or when you need programmatic access to repository data.
See also: Get Commands Category
3. show (17 commands)
Purpose: Human-readable output for interactive use
Show commands provide formatted, human-readable output designed for terminal display and interactive exploration.
Key characteristics:
- Formatted tables and lists
- Colorized output
- Designed for human consumption
- Interactive use cases
Command groups:
Module & Repository Information:
show modules- Display module contracts in table formatshow moduletypes- Module types grouped by countshow dependencies- Dependency graph in table formatshow files- Repository files with module ownershipshow files-changed- Modified files with module ownershipshow files-staged- Staged files with module ownershipshow config- Configuration with defaults applied
Build & Test Results:
show build-summary- Pretty build summary for GitHub Actionsshow build-times- Build timing analysis in readable formatshow test-summary- Pretty test summary for GitHub Actionsshow test-timings- Test timing analysis in readable formatshow tests- All tests in human-readable tableshow suite- Detailed test suite information
Environment & Workspace:
show environments- Environment contracts in table formatshow workspaces- List all workspaces and their statusshow artifacts- Display artifacts with statusshow books- Display book configurations
Help System:
show help- Display help informationshow valid-commands- All valid commands in table format
When to use: During interactive development and troubleshooting when you need to quickly understand repository state.
See also: Show Commands Category
4. validate (20 commands)
Purpose: Contract and quality validation
Validate commands ensure repository consistency, enforce contracts, and verify quality standards.
Command groups:
Module Contracts:
validate contracts- Validate repository contracts against JSON schemasvalidate dependencies- Validate module dependencies match contractsvalidate module-files- Validate file ownershipvalidate module-hierarchy- Validate dependency graph structurevalidate artifacts- Validate build artifacts exist
Code Quality:
validate go-tidy- Ensure Go dependencies are tidyvalidate markdown- Validate markdown file syntaxvalidate test-tags- Validate test tags against contract
Specifications:
validate specs- Validate Gherkin specifications against quality contracts
Architecture & Design:
validate design- Check workspace.dsl syntax using Structurizr CLIvalidate books- Validate books.yml configuration
Release Management:
validate release- Validate changelog format and structurevalidate release-version- Validate release version format
Risk & Compliance:
validate control-tags- Validate @control tags against OSCAL catalogvalidate risk-catalog- Validate OSCAL catalogs against schemavalidate risk-profile- Validate OSCAL profile documents against schema
When to use: In pre-commit hooks, CI pipelines, and before releases to ensure quality standards are met.
See also: Validate Commands Category
5. work (6 commands)
Purpose: Workspace management using git worktrees
Work commands manage parallel development workspaces, enabling multiple topic branches to be worked on simultaneously without switching contexts.
Commands:
work create- Create new workspace for parallel developmentwork commit- Commit changes with AI-generated messageswork pull- Sync workspace with latest main via rebasework merge- Merge workspace changes to main (squash by default)work remove- Remove workspace and optionally delete branchesshow workspaces- List all workspaces and their status
When to use: When you need to work on multiple features simultaneously or want isolated development environments.
See also: Work Commands Category, Workspace Commands Guide
6. test (4 commands)
Purpose: Testing and test suite management
Test commands run tests, manage test suites, and analyze test results.
Commands:
test- Test one or more modules by monikertest suite- Run specific test suite (parallel by default)test list-suites- List all available test suitestest debug- Parse test results and list failures
When to use: During development (unit tests), in CI pipelines (all test types), and when debugging test failures.
See also: Test Commands Category
7. build (1 command)
Purpose: Module building
Commands:
build- Build one or more modules by moniker
When to use: To compile modules in dependency order, both locally and in CI/CD pipelines.
See also: Build Command Reference
8. pipeline (6 commands)
Purpose: CI/CD orchestration and monitoring
Pipeline commands orchestrate CI/CD workflows, monitor build status, and generate diagnostics.
Commands:
pipeline run- Execute module pipelines respecting dependenciespipeline ci- CI orchestration and diagnosticspipeline ci dispatch-and-wait- Trigger and wait for GitHub workflowspipeline ci summary-link- Generate diagnostic markdown for CI summariespipeline status- Show CI status for the head of trunkpipeline wait- Wait for GitHub workflow runs to complete
When to use: In CI/CD workflows, when orchestrating complex builds, and when monitoring deployment status.
See also: Pipeline Commands Category
9. release (8 commands)
Purpose: Release management and versioning
Release commands manage the release process from changelog generation through tagging and validation.
Commands:
release changelog- Generate or update changelog from commitsrelease pending- Check if module has pending changes for releaserelease this- Finalize changelog and prepare module for releaserelease get-version- Extract latest version from changelogrelease generate-module-calver- Generate CalVer tag for a modulerelease r2r-cli- Create SemVer tag for releasing r2r-clirelease check-ci- Check CI status before releasingrelease tag-pending- Check for changelog versions without git tags
When to use: During release preparation and when creating versioned releases.
See also: Release Commands Category
10. scan (8 commands)
Purpose: Security scanning and evidence collection
Scan commands perform various security scans and generate compliance evidence.
Commands:
scan vuln- Scan for vulnerabilities using Trivyscan secrets- Detect secrets and credentials using Trivyscan sast- Static Application Security Testing using Semgrepscan iac- Scan Infrastructure as Code for misconfigurationsscan compliance- Check compliance with security standardsscan sbom- Generate Software Bill of Materialsscan zap- Dynamic Application Security Testing using OWASP ZAPscan- Security scanning and evidence collection (orchestrator)
When to use: In pre-commit hooks (fast scans), CI pipelines (comprehensive scans), and for compliance evidence generation.
11. serve (2 commands)
Purpose: Local development servers
Serve commands start local servers for documentation and architecture visualization.
Commands:
serve docs- Start or stop MkDocs serverserve design- View architecture diagrams in browser using Structurizr Lite
When to use: During documentation writing and when reviewing architecture diagrams.
See also: Serve Commands Category
12. templates (7 commands)
Purpose: Template management for documentation and specifications
Templates commands manage project templates for consistent documentation and specification creation.
Commands:
templates list- List template placeholder variablestemplates tags- Extract template tagstemplates apply- Apply templates with value replacementstemplates apply docs- Apply documentation templatestemplates install- Install templates without value replacementstemplates install reports- Install report templatestemplates- Manage project templates (base command)
When to use: When setting up new modules or generating standardized documentation.
See also: Templates Commands Category
13. update (1 command)
Purpose: Update operations
Commands:
update design- Update existing workspace.dsl for a module using AI
When to use: When refreshing architecture diagrams after code changes.
See also: Update Commands Category
14. Other Commands
Commands that don't fit into the verb-based categorization:
Commands:
help- Display help information for commandsinit- Initialize AI provider configuration for the projectextension-meta- Output extension metadata for r2r CLI
When to use:
help: Anytime you need command informationinit: First-time setup or when changing AI providersextension-meta: When integrating with r2r CLI
See also: Other Commands Category
Command Naming Patterns
Verb-First Convention
Most commands follow a verb-first naming pattern: <verb> <noun> [<modifier>]
Examples:
get modules- verb: get, noun: modulesshow dependencies- verb: show, noun: dependenciesvalidate contracts- verb: validate, noun: contractscreate commit-message- verb: create, noun: commit-message
Multi-word Commands
Some commands have multi-word names connected by hyphens:
create commit-messageget changed-modules-cipipeline ci dispatch-and-wait
Hierarchical Commands
Some categories have hierarchical subcommands:
pipeline ci(base)pipeline ci dispatch-and-waitpipeline ci summary-linktemplates(base)templates applytemplates apply docs
See Naming Conventions for detailed rules.
Finding the Right Command
By Task
I want to...
- ...see what modules exist:
show modules - ...build a module:
build <module> - ...run tests:
test <module>ortest suite <name> - ...commit my changes:
work commitorcreate commit-message - ...create a pull request:
create pr - ...check for errors:
validatecommands - ...scan for security issues:
scancommands - ...create a release:
releasecommands - ...get data for a script:
getcommands - ...view information:
showcommands
By Output Format
I need...
- JSON output for automation: Use
getcommands - Human-readable output: Use
showcommands - Validation/checks: Use
validatecommands - AI-generated content: Use
createcommands
By Development Stage
I'm working on...
- Local development:
work create,create spec,validate,test,build - Committing changes:
work commit,create commit-message - Code review:
create pr,show files-changed - CI/CD:
pipeline run,get changed-modules-ci,test suite - Releases:
releasecommands - Security:
scancommands
Command Organization Principles
1. Functional Grouping
Commands are grouped by their primary function (create, get, show, validate, etc.) rather than by domain (build, test, release).
This makes it easier to find commands when you know what you want to do, even if you're not sure which domain it belongs to.
2. Output Format Distinction
get vs show commands provide the same information in different formats:
get modules→ JSON for automationshow modules→ Table for humans
3. Workflow Alignment
Command categories align with common development workflows:
- Authoring:
create,work create - Validation:
validate,scan,test - Integration:
build,pipeline - Release:
release
4. Discoverability
The help command and show help provide interactive discovery:
# Get help for any command
r2r eac help <command>
# List all commands
r2r eac show valid-commands
# Get command metadata
r2r eac get commands
See Also
- Naming Conventions - Command naming rules and patterns
- Common Flags - Global options available to commands
- Output Formats - Understanding JSON vs human-readable output
- Categories Index - Browse all command categories
- Main Index - Command reference home
Tutorials | How-to Guides | Explanation | Reference
You are here: Reference — information-oriented technical descriptions of the system.