> ## Documentation Index
> Fetch the complete documentation index at: https://mda.sno.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Log

## May 9, 2026 — v1.0.0-rc.3

Reference CLI release candidate. This release promotes the TypeScript CLI from
repo implementation work to the shipped npm package `@markdown-ai/cli`.

**CLI:**

* Published the `mda` command for authoring, validating, compiling,
  canonicalizing, integrity-checking, and conformance-checking MDA artifacts.
* Refreshed the npm-facing package README and metadata so humans and AI agents
  can discover the command surface from the npm package page.
* Kept the MDA file-format and conformance contract unchanged from rc.2; rc.3's
  primary change is the installable reference CLI.

## May 9, 2026 — v1.0.0-rc.2

Security hardening release for signed MDA and production trusted-runtime loading. This release candidate updates the conformance contract because rc.1 left trust-policy and runtime verification behavior too easy to implement unsafely.

**Security / trusted runtime:**

* Added §13 Trusted Runtime Profile as the production loading profile for signed MDA: production runtimes MUST verify `integrity`, MUST verify the digest before checking signatures, MUST require trusted signatures, MUST apply `mda-trust-policy.json`, and MUST fail closed.
* Defined refresh behavior for long-running runtimes: keep the previous-good verified config when refresh verification fails; fail closed on startup if no verified config exists.
* Expanded loader guidance and machine-readable error vocabulary for `missing-required-integrity`, `missing-required-signature`, `integrity-mismatch`, `signature-digest-mismatch`, `signature-verification-failure`, `rekor-inclusion-failure`, `fulcio-chain-failure`, `no-trusted-signature`, `insufficient-trusted-signatures`, and `trust-policy-violation`.
* Tightened multi-signature threshold semantics: `minSignatures` counts distinct signatures that both verify and match the trust policy; untrusted or duplicate signatures do not satisfy the threshold.

**Trust policy schema:**

* Added `schemas/mda-trust-policy.schema.json` for `mda-trust-policy.json`.
* Sigstore OIDC signers MUST pin both `issuer` and `subject`; issuer-only trust policies reject.
* Sigstore trust policies MUST configure Rekor with `rekor.url`; there is no `rekor.required` flag and no `required: false` opt-out.
* `did:web` trust policies use only `domain`; Rekor is forbidden for did:web-only policies.
* `minSignatures` is optional and defaults to `1`; examples omit `minSignatures: 1`.

**Signatures / tooling:**

* Tightened signature schema: Sigstore signatures require `rekor-log-id` and `rekor-log-index`, Sigstore Rekor entries must be `dsse-v0.0.1`, and `did:web` signatures MUST NOT include Rekor fields.
* Clarified that DSSE vendor payload types use `application/vnd.<vendor>.<doc-type>+json`; `+jcs+json` rejects.
* Rewrote Sigstore tooling guidance around DSSE-capable `sigstore-python` / `sigstore-go` paths; documented `cosign sign-blob` and `cosign attest-blob` as incompatible with MDA's required Rekor `dsse-v0.0.1` entry type.

**Conformance / docs:**

* Extended `scripts/validate-conformance.mjs` to validate raw JSON fixtures, enforce trusted-runtime semantic checks, match expected machine-readable errors, and test Sigstore policy matching using post-crypto `verified-identities`.
* Added fixtures for issuer-only policy rejection, Sigstore without Rekor, did:web with Rekor, invalid payload-type suffix, trusted-runtime missing integrity/signature, duplicate signer threshold failure, untrusted `did:web` signer, trusted Sigstore signer, untrusted Sigstore subject, and did:web-only policy with Rekor.
* Added `docs/create-sign-verify-mda.md`, focused on human create/sign/verify steps, local-dev vs production boundaries, trust-policy examples, and runtime verification.

## May 7, 2026 — v1.0.0-rc.1

First release-candidate baseline of the MDA v1.0 specification. `1.0.0-rc.2` superseded this baseline for signed-MDA trusted-runtime behavior. `1.0.0-rc.3` adds the shipped `@markdown-ai/cli` reference package. The final `1.0.0` lands when `@markdown-ai/cli` passes 100% of the conformance suite.

**Specification baseline:**

* §00 Overview, terms, P0 > P1 > P2 priority, three authoring modes, governance, versioning.
* §01 Source (`.mda`) ↔ Output (`.md`) compile direction. Identity-compile clarified.
* §02 Frontmatter floor + MDA-extended fields under `metadata.mda.*` (`doc-id`, `title`, `version`, `requires`, `depends-on`, `tags`, `author`, `relationships`, `created-date`, `updated-date`).
* §03 Relationships: typed Markdown footnotes mirrored to `metadata.mda.relationships`; `metadata.mda.depends-on` dependency graph with restricted SemVer ranges (exact + caret) and self-describing `<algorithm>:<hex>` digest pinning.
* §04 Vendor namespaces under `metadata.<vendor>.*`. Registry: `REGISTRY.md`.
* §05 Progressive disclosure (informative tier model, inherited from agentskills.io v1).
* §06 Target schemas: `SKILL.md` and `AGENTS.md` (Tier 1); `MCP-SERVER.md` with sidecar `mcp-server.json` and `CLAUDE.md` stub (Tier 2).
* §07 Conformance levels V (validator) and C (compiler), bound to fixtures in `conformance/manifest.yaml`.
* §08 Integrity: JCS-canonicalized digest; `<algorithm>:<hex>` self-describing format; multi-file boundary literal.
* §09 Signatures: DSSE PAE envelope; Sigstore OIDC keyless default; `did:web` air-gap fallback. `signatures[].payload-digest` MUST equal `integrity.digest` byte-for-byte.
* §10 Capabilities: `metadata.mda.requires` open key-value with six standard keys (`runtime`, `tools`, `network`, `packages`, `model`, `cost-hints`).
* §11 Implementer's Guide (informative): canonical loader pseudocode, error vocabulary.
* §12 Sigstore tooling integration (informative): mapping from `cosign` / `sigstore-python` / `sigstore-go` bundles into MDA `signatures[]`.

**Companion artifacts:**

* JSON Schemas (2020-12, `unevaluatedProperties: false`) for source frontmatter, every Tier-1 / Tier-2 target frontmatter, and shared `_defs/`.
* Conformance suite at `conformance/manifest.yaml`; runner at `scripts/validate-conformance.mjs`.
* `REGISTRY.md`: vendor namespaces, standard `requires` keys, reserved Sigstore OIDC issuers, reserved Rekor instances, reserved DSSE payload types.
* `docs/create-sign-verify-mda.md`: human create/sign/verify workflow without requiring the reference CLI.
* `apps/cli/IMPL-SPEC.md`: reference-implementation architecture (TypeScript, npm `@markdown-ai/cli`).

**Removed / not in v1.0:**

* `ai-script` fenced JSON blocks (out of scope; subset of Markdown).
* `MEMORY.md`, `GEMINI.md`, `SOUL.md`, `*.instructions.md`, `*.mdc` targets (no observed cross-runtime adoption).
* Long-tail MDA-extended fields: `author-id`, `image`, `images-list`, `published-date`, `expired-date`, `globs`, `audience`, `purpose`, `entities`, `source-url`, and `targets`.
* `mcp-server.json` JSON Schema (sidecar is upstream MCP-owned).

Full release notes: [github.com/sno-ai/mda/releases/tag/v1.0.0-rc.3](https://github.com/sno-ai/mda/releases/tag/v1.0.0-rc.3)

## April 18, 2025 — v0.9.1

* Added Mintlify MDX folder
* Added MDA examples
* Added architecture, overview, specification, and developer-guide documents

## April 17, 2025 — v0.9.0

* Initial project setup
* CONTRIBUTING.md, CODE\_OF\_CONDUCT.md, SECURITY.md
* Issue and PR templates
