Skip to content

ADR-028: README Theme Composition

Native mdtheme composes the project README from its source and pinned shared themes.

Status: Accepted

Last updated: 2026-10-16

Decision

The project README is composed by native mdtheme from README.md.src. The outer frame is Sebastian Software; Ferramenta is the inner frame. Footers close in reverse order. The project content remains the main focus; shared branding is compact and maintained upstream. The Ferramenta footer excludes this project and includes sibling descriptions and the family icon.

Pin the CLI with mise and both Git theme revisions in mdtheme.yaml. CI checks the generated output. Source and output are committed together. Standards repositories explicitly delegate README ownership to mdtheme, so standards cannot append a second company footer. Published subpackage READMEs keep their compact registry format and existing generator.

Context

The README needs consistent family branding without duplicate footers or hand-maintained generated output. Root and npm package READMEs have different rendering constraints, so their generators remain separate.

Theme badge placement

The project pins mdtheme in mise.toml and uses one mdtheme:badges:start / mdtheme:badges:end comment pair in README.md.src. The Sebastian Software theme prepends its badge before the authored project badges. Ferramenta's header and footer stay unchanged. Update the CLI and theme pins together when their contracts change. Keep badge markup outside raw HTML blocks.

Consequences

Contributors edit the source, then regenerate. No JavaScript configuration or Node installation is needed for the root README. Shared theme updates are reviewable Git diffs. Rendering requires network access to the Git sources.

See the contributor guide for commands.