v1.12.0
AI-first release (Mermaid-inspired): make ArchLang maximally discoverable, self-describing and
distributable for AI agents. Default SVG output stays byte-identical throughout; every new output
behavior is opt-in (ADR 0007 discipline).
Added — agent context & diagnostics
llms-full.txt(generated, drift-tested vianpm run gen:llms/scripts/gen-llms-full.ts):
the full language spec, theSKILL.mdagent workflow, a manifest-derived CLI reference and the
complete diagnostic catalog bundled into one system-prompt-ready document (~40 KB). Ships in the
npm package; the docs site now serves/llms.txtand/llms-full.txtat its root
(copied intodocs-site/public/bysync-docs.mjs, per llmstxt.org convention).arch context: prints the bundle — one command gives a cold-start agent everything
(arch specremains the language-only view).diagnosticToJson(source, d)+DiagnosticJson(newsrc/diagnostic-json.ts, exported):
the CLI's agent-facing diagnostic projection (line/col from byte spans + cataloguedfix) is now
public API for SDK/playground/LSP consumers. CLI JSON output is byte-identical.
Added — always-visible errors & eval spine
- Opt-in error-card SVG:
compile(src, { onError: "svg" })/--error-svgon
compile/preview/md— a plan that fails to compile still renders a deterministic,
self-describing SVG card (severity, code chip, line:col, message, catalogued fix; new
src/backends/error-svg.ts, exportedrenderErrorSvg). Errors/diagnostics/exit codes are
unchanged; without the opt-in, a broken plan still produces no bytes.arch md --error-svg
renders failing fenced blocks as error cards instead of skipping them. Also exported:
renderPngFromSvg(raster core extracted from the PNG backend). - Authorability eval hardened: corpus grown 3 → 18 briefs with hand-verified goldens
(relational placement,dims auto,against wall, multi-bath topology, open-planopening,
accessibility briefs, scripting, an intentional-warning shell, 30–126 m²); offline golden
regression gate wired into CI (npm run eval:ci, no API key); default live-eval model id
updated.
Added — distribution
- Docs site: plain
```archfences in any docs page now render as live, editable
<ArchLive>widgets (markdown-it fence transform; SSR/no-JS keeps the highlighted block;
```arch staticopts out). Explicit<ArchLive>usage is untouched. - GitHub Action
.github/actions/arch-render(composite, in-repo): render every fenced
```archblock in a repo's Markdown viaarch md— inputsfiles/format/out-dir/
error-svg/version, with a self-test workflow. Witherror-svg: true(default) broken blocks
become error-card images and the job stays green. - Playground: Copy-for-LLM button (current source +
describe()facts + diagnostics with
fixes + spec pointer as one paste-ready prompt; purebuildLlmPrompthelper) and diagnostics
now show their catalogued fix inline (full cause/example still behind the disclosure).
Added — accessibility as a language feature
compile(src, { accessible: true })/arch compile --accessible: the SVG carries
<title>(plan name),<desc>(a derived one-sentence caption) androle="img"+
aria-labelledby. The caption is also exposed asdescribe().caption(same sentence,
guaranteed identical). Default output byte-identical without the flag.accTitle/accDescrplan-level keywords (the release's one language-surface change):
explicit accessible metadata overriding the derived title/caption. Duplicate → new
W_DUP_ACC_METADATA(last wins); misplaced → newE_ACC_PLACEMENT. Grammar/spec/editor
artifacts regenerated; newexamples/accessible.arch;arch fmtprints and preserves both.
VS Code extension repack required (it bundles the core).