brief.md ecosystem hub. Add the spec to your repo. Validate it in CI. Wire it into your editor.
The doer’s page. New to brief.md? Start here for the explainer. Already know you want to ship a brief.md and need the tools to do it — the GitHub Action, the paste-validator, the editor-rules export, the canonical spec — you’re in the right place.
Add brief.md to your repo in three steps.
Plain markdown. No build step, no SaaS lock-in. The GitHub Action keeps the file honest, validateVoice keeps your drafts on-brand, the rules export wires your voice into Cursor, Claude Code, or Codex.
- 1
Drop a brief.md in your repo
Use the generator with your homepage URL, or copy the example from the spec. The result is a markdown file with frontmatter; commit it at any path you like (most teams usedocs/brief.mdor.integrity/brief.md). - 2
Add the validator GitHub Action
Create
.github/workflows/brief.ymlwith this content. Every PR touching a brief.md (or a sample draft undertests/voice/) gets a sticky comment with parse + voice findings.name: brief.md validator on: pull_request: paths: ['**/brief.md', 'tests/voice/**'] permissions: contents: read pull-requests: write jobs: validate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: theintegrityframework/brief-md-validator@v1 - 3
Wire your editor to the brief
Once your brief lives somewhere PRAPI can read, run
prapi brief export-rulesto drop a Cursor / Claude Code / Codex rules file into your editor config. Your AI assistant now respects the brand voice while you draft anywhere — not just inside PRAPI.# Cursor (writes .cursor/rules/voice.md + .cursorrules) prapi brief export-rules my-brand --target cursor # Claude Code (writes .claude/rules/voice.md) prapi brief export-rules my-brand --target claude # Codex IDE prapi brief export-rules my-brand --target codexThe same content is available as a bearer-authed REST endpoint at
/api/v1/briefs/[operator]/[brand]/export-rulesif you want to pull it from your own tooling.
Tools in the ecosystem.
Every tool below speaks the same brief.md spec. Mix and match. Your brief.md file is the substrate; these are the consumers.
brief.md validator (web)
Paste a brief.md in, see schema errors and voice diagnostics inline. Pure client-side; nothing is uploaded. Useful for one-off checks or showing the spec to a colleague.
Open the validator→brief-md-validator (GitHub Action)
Drop the Action into any repo's CI. On every PR that touches a brief.md, parse + resolve + voice-check + comment. Fail the check on schema errors; warn on reading-level / claim-provenance findings.
View on GitHub↗@theintegrityframework/brief-core
The TypeScript parser + resolver + validator that every other tool calls. parseBrief, resolveBrief, validateVoice, getPublications, channel-aware character limits. Public on npm under MIT.
View on npm↗prapi brief export-rules
Renders the resolved brand voice as a markdown rules file your editor's AI respects: Cursor, Claude Code, Codex. brief.md stays canonical; the export is one-way and re-runnable.
See the CLI→Brands publishing their brief publicly.
Anyone fetching these URLs — AI agents, search engines, journalist workflows — gets the same source-of-truth brand context. Plain markdown, content-negotiated for HTML or text/markdown.
/prapiThe canonical implementation. Operator brief at /brief.md, brand briefs by URL.
/sourcesEvery brand that has opted into public publishing of their brief.md, listed in the /sources directory. Filterable by topic, expertise, and recent coverage.
Want to be listed? Sign up for PRAPI, author your brief, and publish it publicly when you’re ready. The directory is consent-based; nothing appears without an explicit opt-in. Other tools that implement the spec can serve their own brief URLs the same way.
Conformance and trademark.
brief.md is stewarded by The Integrity Framework, not by PRAPI. The spec is open; the trademark is licensed; conformance is verified by running brief-core's published parser against your output.
theintegrityframework.org/specs/brief-md
Versioned at v0.1; v0.2 is in draft. Spec changes ship in brief-core releases. Pin a spec_url in your frontmatter to lock the version your file claims to satisfy.
@theintegrityframework/brief-core
The npm package every conformant consumer uses. v0.11.0 covers parseBrief, resolveBrief, validateVoice (8 rule kinds), getPublications, channel limits, claim-provenance hints.
License from The Integrity Framework
Other tools that implement the spec can use the brief.md trademark under license. PRAPI is the canonical implementation, not the only allowed implementation.
The substrate is open. Adopt it once, reuse it everywhere.
Your brand context belongs to you. brief.md is the file. PRAPI is the canonical execution surface. The Integrity Framework holds the trademark. Drop the file in your repo, add the Action, point your editor at it — and your voice rules apply everywhere code or copy gets written.