Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Architecture Decision Records

This directory captures the architectural decisions that shaped Metano. Each ADR is a short MADR-style document answering why a particular choice was made, written at the moment it was made (or retroactively when the decision predates this log). Features and tickets live in GitHub issues; ADRs are for the decisions a future reader might second-guess when they meet the code without the context that led to it.

Conventions

  • Filenames: nnnn-slug.md, four-digit zero-padded, sequential.
  • Numbers are permanent. If an ADR is superseded, the replacement gets a new number and the original is marked Superseded by ADR-NNNN.
  • Prefer short ADRs. Use the template and keep each section to what is actually load-bearing.
  • Ground every decision in concrete references (file paths, issue numbers, commits). An ADR that can't be traced back to the code is fiction.

Index

ADR Title
ADR-0001 Target-agnostic core + per-target projects
ADR-0002 Handler decomposition (not formal GoF Visitor)
ADR-0003 Declarative BCL mappings via [MapMethod] / [MapProperty]
ADR-0004 Cross-project references via Roslyn compilation references
ADR-0005 [InlineWrapper] as branded type + companion namespace
ADR-0006 Namespace-first barrel imports + same-namespace relative
ADR-0007 Output conventions: kebab-case, leaf-only barrels, #/ alias, sideEffects
ADR-0008 Overload dispatch: slow-path dispatcher + fast-path private methods
ADR-0009 Type guards as shape validation with instanceof fast path
ADR-0010 MetanoDiagnostic + MS0001–MS0008 codes
ADR-0011 [EmitPackage] as single source of truth for package.json#name
ADR-0012 LINQ as eager wrapper hierarchy (with pipe-based migration tracked)