Skip to main content

Module md

Module md 

Source
Expand description

Markdown-native config: the same A–J model, written as a document.

A .md config is not YAML wearing a markdown hat. Headings are sections, ### headings are entries, bullets are fields, and any prose at column 0 is documentation that the parser ignores. That means a loop config can explain itself in place — the reason a goal exists sits next to the goal.

§Shape

# my-loop

- version: 0.1.0
- description: what this loop is for

Prose at the left margin is ignored. Put the reasoning here.

## C. Goals

### ship-it
- description: the thing is shipped and the suite is green
- priority: 1

## F. Stop gates
- max_iterations: 12
- max_cost_usd: 10.0

§How it works

The parser does not know about Goal or StopGates. It turns the document into a serde_yaml::Value and hands that to the same Deserialize impls the YAML path uses. Every default, alias, and deny_unknown_fields rule therefore applies identically, and a new config field needs no parser change at all.

The renderer is the exact inverse, over serde_yaml::to_value. Round-trip is a property test rather than a hope.

Functions§

parse_md
Parse a markdown config.
render_md