Version: 0.1.0-draft Date: 2026-06-03 Status: Draft
This roadmap outlines the phased development of api-style-spec, from core types through full ecosystem integration.
| Phase | Focus | Key Deliverables |
|---|---|---|
| Phase 1 | Foundation | Core types, JSON Schema, vacuum integration, basic CLI |
| Phase 2 | Intelligence | LLM evaluation, profiles, documentation generation |
| Phase 3 | Integration | Web UI, MCP server, agent generation |
| Phase 4 | Enterprise | Observability, conformance levels, breaking change detection |
| Phase 5 | Ecosystem | Community profiles, advanced features, polish |
Goal: Establish core types and deterministic linting capability.
- Initialize Go module
- Set up directory structure per TRD
- Configure CI/CD (GitHub Actions)
- Set up linting (golangci-lint)
- Create initial README
- Define
APIStyleSpecroot type - Define
Ruleand related types - Define
LintReportandViolationtypes - Define
ProfileandExtendstypes - Generate JSON Schema from Go types
- Validate schema with
schemago lint - Embed schema via
//go:embed
- Add vacuum as dependency
- Implement
Linterinterface - Convert
APIStyleSpecrules to vacuum ruleset - Convert vacuum results to
LintReport - Support custom Spectral-compatible rules
- Unit tests with golden files
- Set up cobra CLI structure
- Implement
api-style lintcommand - Support
--format json|text|sarif - Support
--outputfile path - Exit codes (0=pass, 1=violations, 2=error)
- Basic
--helpdocumentation
- Create
default.api-style.jsonwith ~30 rules - Cover categories: uri-design, http-methods, naming, errors
- Embed as built-in profile
- Document each rule with rationale and examples
pkg/types/- Core Go typesschema/- Generated JSON Schemapkg/lint/- vacuum integrationcmd/api-style/- CLI withlintcommandprofiles/default.api-style.json- Built-in profile- Unit tests with >70% coverage
Goal: Add LLM evaluation and documentation generation.
- Add structured-evaluation as dependency
- Implement
Evaluatorinterface - Build
RubricSetfromAPIStyleSpec - Generate evaluation prompts from rules
- Map LLM responses to
rubric.Rubric
- Implement Claude client wrapper
- Category-based evaluation
- Configurable model (haiku/sonnet/opus)
- Temperature and token control
- Error handling and retries
- Implement
Analyzerorchestrator - Combine lint + evaluate results
- Generate
SummaryReport(GO/NO-GO) - Implement
api-style evaluatecommand - Implement
api-style analyzecommand
- Create
azure.api-style.json(~80 rules) - Create
google.api-style.json(~60 rules) - Create
zalando.api-style.json(~70 rules) - Implement profile loading and resolution
- Support
extendsinheritance - Support
overridescustomization - Implement
api-style profile list|show|validate
- Implement Markdown generator
- Generate table of contents
- Generate rule categories
- Include examples (good/bad)
- Include rationale and references
- Implement
api-style generate guide
- Implement Spectral YAML generator
- Map enforcement rules to Spectral format
- Support custom functions
- Implement
api-style generate spectral
pkg/judge/- LLM evaluationpkg/analyze/- Combined orchestrationpkg/generate/- Output generatorspkg/profile/- Profile managementprofiles/*.api-style.json- Industry profiles- CLI commands:
evaluate,analyze,generate guide|spectral,profile
Goal: Enable IDE and web-based usage.
- Add mcp-go as dependency
- Implement MCP server structure
- Register
api_style_linttool - Register
api_style_evaluatetool - Register
api_style_analyzetool - Register
api_style_explain_ruletool - Register
api_style_list_rulestool - Implement
api-style serve mcp
- Create
api-style-reviewer.mdspec (multi-agent-spec) - Create
api-style-guide-generator.mdspec - Implement agent instruction generator
- Integrate assistantkit for Claude Code output
- Integrate assistantkit for Kiro output
- Implement
api-style generate agent
- Set up web/packages/api-style-analyzer
- Implement
api-style-analyzermain component - Implement
asa-url-inputcomponent - Implement tab navigation (Evaluate/Guide/Rules)
- Set up Vite build configuration
- Integrate PRISM design system
- URL inputs for OpenAPI, Style Spec, Spectral
- "Evaluate" button with loading state
- Implement
asa-evaluation-reportcomponent - Display violations with severity icons
- Display LLM findings (if applicable)
- Export to JSON button
- Export to PDF button
- URL input for Style Spec
- Load and parse spec
- Render as Markdown (reuse markdown-editor patterns)
- Download as Markdown button
- Download as PDF button (reuse export-pdf utility)
- Implement
asa-rule-browsercomponent - Search/filter by keyword
- Filter by category
- Filter by severity
- Rule detail view with examples
- Implement Go server for Web UI
- Serve static assets
- API endpoints for lint/evaluate (optional)
- Implement
api-style serve web
mcp/- MCP serveragents/specs/- Agent definitionsagents/plugins/- Generated Claude Code/Kiro filesweb/packages/api-style-analyzer/- Web UIweb/server/- Optional Go server- CLI commands:
serve mcp,serve web,generate agent
Goal: Add governance and observability features.
- Define
ConformanceLeveltype - Implement level calculation from violations
- Add
--level bronze|silver|goldoption - Fail if level not achieved
- Display achieved level in reports
- Define
Exceptiontype - Implement exception loading
- Filter violations by exceptions
- Track exception expiration
- Warn on expired exceptions
- Define
Lexicontype - Implement terminology checker
- Check approved terms
- Flag forbidden terms with replacements
- Integrate into lint pipeline
- Add openapi-diff or implement custom differ
- Define
CompatibilityReporttype - Detect breaking changes (removed endpoints, required params, etc.)
- Implement
api-style diffcommand - Support
--fail-on-breakingflag
- Define storage interface
- Implement SQLite backend
- Implement PostgreSQL backend
- Store evaluation results
- Implement
api-style historycommand
- Define metrics interface
- Implement Datadog exporter
- Implement generic StatsD exporter
- Export lint counts, decision, conformance level
- Add
--export datadog|statsdoption
pkg/types/conformance.go- Conformance levelspkg/types/exception.go- Exception registrypkg/types/lexicon.go- Terminologypkg/diff/- Breaking change detectionpkg/store/- Evaluation storage- CLI commands:
diff,history
Goal: Community growth and advanced features.
- Accept community profile contributions
- Profile validation in CI
- Profile discovery/registry
- Documentation for creating profiles
- VS Code extension (consumes MCP)
- JetBrains plugin (consumes MCP)
- Real-time linting feedback
- GitHub Actions workflow template
- GitLab CI template
- Azure DevOps template
- Documentation for CI integration
- Multi-judge evaluation (consensus)
- Fine-tuned judge calibration
- Cost optimization (tiered evaluation)
- AsyncAPI support (experimental)
- GraphQL support (experimental)
- gRPC/protobuf support (experimental)
- Comprehensive user guide
- API reference documentation
- Tutorial videos
- Example repositories
- Blog posts / announcements
- Community contribution guidelines
- IDE extensions
- CI/CD templates
- Extended format support
- Production-ready documentation
| Feature | P1 | P2 | P3 | P4 | P5 |
|---|---|---|---|---|---|
| Core Types | ✅ | ||||
| JSON Schema | ✅ | ||||
| vacuum Integration | ✅ | ||||
| CLI (lint) | ✅ | ||||
| Default Profile | ✅ | ||||
| LLM Evaluation | ✅ | ||||
| Industry Profiles | ✅ | ||||
| Documentation Generation | ✅ | ||||
| Spectral Generation | ✅ | ||||
| CLI (evaluate, analyze, generate) | ✅ | ||||
| MCP Server | ✅ | ||||
| Agent Generation | ✅ | ||||
| Web UI | ✅ | ||||
| Conformance Levels | ✅ | ||||
| Exception Registry | ✅ | ||||
| Lexicon/Terminology | ✅ | ||||
| Breaking Change Detection | ✅ | ||||
| Evaluation Storage | ✅ | ||||
| Observability Export | ✅ | ||||
| Community Profiles | ✅ | ||||
| IDE Extensions | ✅ | ||||
| CI/CD Templates | ✅ | ||||
| Extended Format Support | ✅ |
| Version | Phase | Focus |
|---|---|---|
| v0.1.0 | P1 | Foundation - lint capability |
| v0.2.0 | P2.1-P2.3 | LLM evaluation |
| v0.3.0 | P2.4-P2.6 | Profiles and generation |
| v0.4.0 | P3.1-P3.2 | MCP and agents |
| v0.5.0 | P3.3-P3.7 | Web UI |
| v0.6.0 | P4.1-P4.3 | Conformance and lexicon |
| v0.7.0 | P4.4-P4.6 | Diff, storage, observability |
| v1.0.0 | P5 | Production release |
| Metric | Target | Phase |
|---|---|---|
| Lint <500ms (1MB spec) | ✓ | P1 |
| Default profile covers common rules | 30+ rules | P1 |
| Industry profiles available | 3 profiles | P2 |
| LLM evaluation cost | <$0.10/spec | P2 |
| Web UI functional | All tabs working | P3 |
| MCP server functional | All tools working | P3 |
| GitHub stars | 100+ | P5 |
| Community profiles | 5+ | P5 |
| Dependency | Version | Used In |
|---|---|---|
| vacuum | latest | P1 |
| structured-evaluation | latest | P2 |
| multi-agent-spec | latest | P3 |
| assistantkit | latest | P3 |
| mcp-go | latest | P3 |
| huma/v2 | latest | P3 (optional) |
| ent | latest | P4 (optional) |
| Project | Purpose |
|---|---|
| structured-evaluation | LLM evaluation framework |
| multi-agent-spec | Agent definitions |
| assistantkit | Agent file generation |
| web-tools | Web UI components |
| schemago | JSON Schema validation |
| Risk | Mitigation |
|---|---|
| vacuum API changes | Pin version, abstract behind interface |
| LLM cost overruns | Tiered evaluation, caching, cost alerts |
| Scope creep | Strict phase boundaries, defer to backlog |
| Community adoption | Early outreach, good documentation |
- Approve this roadmap - Review with stakeholders
- Begin Phase 1 - Start with project setup and core types
- Iterate - Adjust roadmap based on learnings