maestro-dev

Solid

Development workflow for maestroCLI itself. Encodes the hexagonal architecture pattern (port -> adapter -> use-case -> command -> MCP tool -> test) and project-specific conventions. Use when implementing new maestro features, adding CLI commands, extending the MCP server, creating new adapters, modifying ports, writing use-cases, or debugging maestro's own code. Also use when you need to understand how maestro's layers connect or where to put new code.

AI & Automation 189 stars 21 forks Updated today MIT

Install

View on GitHub

Quality Score: 88/100

Stars 20%
76
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# maestroCLI Development Workflow ## Architecture maestroCLI follows hexagonal architecture. Every feature touches the same layers in the same order: ``` commands/ --> usecases/ --> ports/ <-- adapters/ (CLI I/O) (rules) (interfaces) (implementations) server/ --> usecases/ --> ports/ <-- adapters/ (MCP I/O) (rules) (interfaces) (implementations) ``` Commands and MCP server tools are thin I/O shells. Business logic lives in use-cases. Ports define what the system needs. Adapters provide it. ## Adding a New Feature: Step by Step ### 1. Define or Extend the Port Interface (`src/ports/`) Ports are TypeScript interfaces that describe what the system needs without saying how to provide it. If your feature needs new persistence or external interaction, define it here. ```typescript // src/ports/memory.ts export interface MemoryPort { write(feature: string, name: string, content: string): Promise<void>; read(feature: string, name: string): Promise<string | undefined>; list(feature: string): Promise<string[]>; delete(feature: string, name: string): Promise<void>; compile(feature: string): Promise<string>; } ``` **Rules:** - Ports are pure interfaces -- no implementation, no imports from adapters - Method signatures use domain types, not framework types - Every method returns a Promise (even if the current adapter is sync) - One port per domain concern (tasks, features, plans, memory) ### 2. Implement the Adapter (`src/adapter...

Details

Author
ReinaMacCredy
Repository
ReinaMacCredy/maestro
Created
5 months ago
Last Updated
today
Language
Rust
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category