← ClaudeAtlas

canonical-markdown-authoringlisted

Convert plain markdown contract drafts into OpenAgreements' canonical template.md authoring format — YAML frontmatter, Kind|Label|Value|Show When cover-term tables, oa:clause directives, [[Defined Term]] paragraphs, and oa:signer directives that compile to validated JSON specs and DOCX artifacts. Use when the user says "convert this to canonical markdown," "author a new OpenAgreements template," "migrate template to template.md," or "write a canonical-form contract."
open-agreements/open-agreements · ★ 34 · Data & Documents · score 81
Install: claude install-skill open-agreements/open-agreements
# canonical-markdown-authoring Convert plain markdown contract drafts into OpenAgreements' canonical `template.md` authoring format. The canonical form is a single lawyer-editable file that compiles to a validated JSON contract spec plus a rendered DOCX via the shared template renderer. ## Activation Use this skill when the user wants to: - Convert a plain-prose contract draft into a canonical OpenAgreements `template.md` - Migrate an existing JSON-source template to canonical authoring - Author a new template that compiles via `npm run generate:templates` - Add or refactor a Defined Terms clause, `oa:clause` directives, or signer metadata - Bring a template into parity with the Wyoming / Employee IP canonical patterns This skill assumes: - You are working inside an OpenAgreements repo checkout. Templates live at `content/templates/<template-id>/template.md`. - The shared canonical compiler (`scripts/template_renderer/canonical-source.mjs`) and the `cover-standard-signature-v1` layout are present. ## Canonical structure overview A canonical `template.md` has these parts in this order: 1. **YAML frontmatter** — template ID, source paths, layout, style, document metadata, section labels. 2. **`# Title`** — H1 matching `document.title` in frontmatter. 3. **`## Cover Terms`** — short subtitle paragraph followed by a `Kind | Label | Value | Show When` table with `{snake_case}` field placeholders. 4. **Optional `recitals` section** — `<!-- oa:section type=recita