agentskills.codes

Author and validate structured-MADR ADRs so they project clean as MIF (Modeled Information Format) at the configured conformance level. Use when writing or upgrading an ADR, when a MIF gate fails, when asked to make an ADR MIF-compliant, or to explain the MIF level model for ADRs.

Install

mkdir -p .claude/skills/mif-compliance && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15960" && unzip -o skill.zip -d .claude/skills/mif-compliance && rm skill.zip

Installs to .claude/skills/mif-compliance

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Author and validate structured-MADR ADRs so they project clean as MIF (Modeled Information Format) at the configured conformance level. Use when writing or upgrading an ADR, when a MIF gate fails, when asked to make an ADR MIF-compliant, or to explain the MIF level model for ADRs.
281 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)

About this skill

MIF Compliance for structured-MADR ADRs

structured-MADR markdown stays canonical. A MIF JSON-LD object is derived from each ADR's frontmatter + body and validated against the level selected in .github/config.yml (mifConformanceLevel: 1|2|3, default 2). You do not write JSON-LD; you fill frontmatter, and the projector assembles + validates it.

What each level requires (content-dependent)

  • Level 1 (core): every ADR — @id (synthesized urn), conceptType (semantic), content (the body), created, title. Already satisfied by a valid ADR.
  • Level 2 (standard, default): adds namespace (derived _semantic/decisions/<category>), modified (from updated), temporal. Relationships and entities are derived and validated only when present.
  • Level 3 (full): adds provenance (from author/project) and temporal.validFrom. Citations are extracted from body links; validated only when present.

A sparse ADR (no technologies, no related) still passes every level — optional collections are validated only when present.

How frontmatter maps to MIF

You write (frontmatter)Becomes (MIF)
title, created, updated, description, tagstitle, created, modified, summary, tags
categorynamespace = _semantic/decisions/<category-slug>
technologies: [rust, tokio]entities[] (EntityReference, entityType Technology)
related: [0002-foo.md]relationships[] {type: relates-to, target: /decisions/0002-foo.md}
x-superseded-by: 0009-new.mdrelationships[] {type: supersedes, target: /decisions/0009-new.md}
author, projectprovenance (sourceType user_explicit)
body [label](https://…) linkscitations[] (L3)

You may also author MIF-native keys directly in frontmatter (conceptType, namespace, relationships, entities, temporal, provenance, citations, id) to override the derivation; they are deep-validated against the MIF schema after projection.

Make an ADR conform

  1. Confirm the ADR passes the MADR validator: npm run validate.
  2. Project + validate as MIF at the configured level: npm run validate:mif (or preview one ADR's MIF object with the /mif-project command).
  3. If it fails: read the ::error:: annotation (it names the missing/invalid MIF field), fix the frontmatter source, re-run. To link a superseding decision, add x-superseded-by: <file>.md and set status: superseded.

Notes

  • The MIF schemas are vendored under .github/schema/ and pinned in VENDOR.lock (MIF develop/v1.0.0). Do not hand-edit vendored files; bump the vendor instead.
  • To type ADRs as MIF entities, enable the structured-madr ontology in .github/config.yml ontologies[]; the projection then stamps entity.entity_type: adr.

Search skills

Search the agent skills registry