Skip to main content

CLI tool for managing federated architecture metadata models

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Documentation Robotics (dr) CLI Tool

A command-line tool for managing federated architecture metadata models across 11 layers using standard specifications (ArchiMate, OpenAPI, JSON Schema, OpenTelemetry) and custom extensions.

CLI Tests

Specification Conformance

Implements: Federated Architecture Metadata Model Specification v0.1.0 Conformance Level: Full (All 11 layers)

Run dr conformance to see detailed conformance information.

Status

Current Version: v0.3.0 Specification Version: v0.1.0

  • Phase 1 (MVP) - Model initialization, element management, validation
  • Phase 2 (Validation & Integrity) - Cross-layer references, projection, dependency tracking
  • Phase 3 (Export) - Export to ArchiMate, OpenAPI, JSON Schema, PlantUML, Markdown, GraphML

Features

Phase 1 (MVP)

  • ✅ Model initialization with 11-layer structure
  • ✅ Element management (add, update, remove) across all layers
  • ✅ Query and search capabilities
  • ✅ Basic validation (schema, naming, cross-references)
  • ✅ Manifest tracking and statistics

Phase 2 (Validation & Integrity)

  • ✅ Cross-layer reference tracking and validation
  • ✅ Element projection across layers
  • ✅ Dependency tracking and tracing
  • ✅ Semantic validation
  • ✅ Circular dependency detection

Phase 3 (Export)

  • ✅ Export to ArchiMate 3.2 XML
  • ✅ Export to OpenAPI 3.0 specifications
  • ✅ Export to JSON Schema Draft 7
  • ✅ Generate PlantUML diagrams (component, class, deployment)
  • ✅ Generate Markdown documentation
  • ✅ Export to GraphML for visualization

Claude Code Integration (NEW! 🎉)

  • Natural Language Modeling - Create architecture models using conversational language
  • Automatic Code Extraction - Extract models from existing codebases (Python, TypeScript, Java, Go)
  • Intelligent Validation - Auto-fix common issues with confidence scoring
  • Documentation Generation - Generate comprehensive docs and diagrams automatically
  • Slash Commands - Quick access to common workflows (/dr-model, /dr-ingest, /dr-validate)
  • Specialized Agents - Autonomous agents for complex tasks (extractor, validator, documenter)
  • Customization - Templates for organization-specific commands and agents

Try it:

dr claude install              # Install Claude integration
claude                         # Open Claude Code
> /dr-model Add order management service

See Claude Code Integration Guide for details.

Coming in Future Phases

  • Code generation (TypeScript, Python, React components)
  • Interactive REPL mode
  • Diff/merge functionality
  • Advanced reporting and analytics
  • CI/CD integration
  • Enhanced AI capabilities (better extraction, smarter suggestions)

Installation

# From the cli directory
cd cli

# Install from source
pip install -e .

# Install with development dependencies
pip install -e ".[dev]"

Quick Start

Traditional CLI Usage

# Initialize a new model
dr init my-project

# Add a business service
dr add business service --name "Customer Management" \
  --description "Manages customer lifecycle"

# Find an element
dr find business.service.customer-management

# List all elements in a layer
dr list business

# Validate the model
dr validate

# Search across layers
dr search --type service --name "Customer*"

# Project to other layers
dr project business.service.customer-management --to application,api

# Trace dependencies
dr trace application.service.customer-service

# Export to various formats
dr export --format archimate
dr export --format openapi
dr export --format plantuml
dr export --format markdown
dr export --format all

AI-Powered Usage with Claude Code (NEW!)

# Install Claude Code integration
dr claude install

# Start Claude Code
claude

# Then use natural language:
> Create an architecture model for an e-commerce platform with:
> - Business services for orders, payments, and inventory
> - Application services that realize each business service
> - REST API operations
> - Security controls (OAuth2, rate limiting)
> - Monitoring metrics (availability, latency)

# Or use slash commands:
> /dr-model Add order management service
> /dr-ingest ./src/api --layers business,application,api
> /dr-validate --fix
> /dr-project business→application

# Extract from existing code:
> Please analyze my FastAPI application in ./src and create an architecture model

See Claude Code Integration Guide for full details.

Architecture Model Structure

The dr tool manages models with 11 layers as defined in the Federated Architecture Metadata Model Specification:

  1. Motivation - Stakeholders, goals, requirements, principles (spec)
  2. Business - Business services, processes, actors, roles (spec)
  3. Security - Authentication, authorization, policies, threats (spec)
  4. Application - Application services, components, interfaces (spec)
  5. Technology - Infrastructure, nodes, devices, networks (spec)
  6. API - REST APIs, operations, endpoints (OpenAPI) (spec)
  7. Data Model - Entities, relationships (JSON Schema) (spec)
  8. Data Store - Databases, tables, columns, constraints (spec)
  9. UX - Screens, layouts, components, states (spec)
  10. Navigation - Routes, guards, transitions, menus (spec)
  11. APM/Observability - Traces, logs, metrics (OpenTelemetry) (spec)

For detailed layer specifications, see ../spec/layers/

Project Structure

project/
├── .dr/                    # Tool configuration and schemas
│   ├── schemas/           # JSON Schema definitions for each layer
│   ├── examples/          # Example elements
│   └── README.md          # Model documentation
├── model/                  # The canonical architecture model
│   ├── manifest.yaml      # Model metadata and registry
│   ├── 01_motivation/     # Motivation layer elements
│   ├── 02_business/       # Business layer elements
│   └── ...               # Other layers
├── specs/                  # Generated/exported specifications
│   ├── archimate/         # ArchiMate XML exports
│   ├── openapi/           # OpenAPI 3.0 specs
│   ├── schemas/           # JSON Schema files
│   ├── diagrams/          # PlantUML diagrams
│   └── docs/              # Markdown documentation
├── dr.config.yaml         # Configuration
└── projection-rules.yaml  # Cross-layer projection rules

Design Philosophy

  • Files are the API - The model is stored as YAML/JSON files that can be directly manipulated
  • CLI provides convenience - The dr tool offers validation, projection, and export functionality
  • Claude Code integration - Designed to be easily used by both humans and Claude Code
  • Standards-based - Leverage existing standards wherever possible (ArchiMate, OpenAPI, JSON Schema)
  • Git-friendly - All model files are text-based and version-controllable

Documentation

User Guides

Claude Code Integration

CLI Documentation

Specification Documentation

Export Formats

Format Command Output Tool Compatibility
ArchiMate dr export --format archimate .archimate XML Archi, Enterprise Architect
OpenAPI dr export --format openapi .yaml specs Swagger Editor, Postman
JSON Schema dr export --format schema .schema.json Any JSON Schema validator
PlantUML dr export --format plantuml .puml diagrams PlantUML, online renderers
Markdown dr export --format markdown .md docs Any Markdown viewer
GraphML dr export --format graphml .graphml yEd, Gephi, Cytoscape

Development

# Run tests
pytest

# Run tests with coverage
pytest --cov=documentation_robotics --cov-report=html

# Run specific test suites
pytest tests/unit/
pytest tests/integration/

# Type checking
mypy src/documentation_robotics/

# Linting
ruff check src/
black --check src/

# Format code
black src/

License

MIT License - see LICENSE file for details.

Version

Current: v0.3.0 (Phase 3 Complete)

  • Phase 1 (MVP): v0.1.0
  • Phase 2 (Validation): v0.2.0
  • Phase 3 (Export): v0.3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

documentation_robotics-0.3.0.tar.gz (114.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

documentation_robotics-0.3.0-py3-none-any.whl (146.0 kB view details)

Uploaded Python 3

File details

Details for the file documentation_robotics-0.3.0.tar.gz.

File metadata

  • Download URL: documentation_robotics-0.3.0.tar.gz
  • Upload date:
  • Size: 114.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for documentation_robotics-0.3.0.tar.gz
Algorithm Hash digest
SHA256 74f424c932c6ffcc4262889cbeb4acc3650328e44850a684b3079e565e3a097a
MD5 e7547e9e4de205f574ba6d3978e7ce0b
BLAKE2b-256 4c8a98f2a52f397bb4f4d6cf0bc5e298e4cd21cc176766e80a1f72d350d20d9f

See more details on using hashes here.

File details

Details for the file documentation_robotics-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for documentation_robotics-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bb4f7b4778c33437ec14e630697508003d2062aa7649ba88163e1abd547b0e0c
MD5 d4536aecfbe0d1d15ed2686065fb6df9
BLAKE2b-256 cc9c17dfa35a85a522ee17131fb996bb99a71fa62f431b176d22db4056a78f6f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page