← brief.md spec
spec topic · v0.1.0

brief.md voice overrides — banned phrases, required elements, channel limits

Voice rules in brief.md are operator-level by default and overridden per brand. Each brand can extend the operator's banned phrases, add required pitch elements, and set channel-specific limits without rewriting the operator-wide voice rules.

Operators running multi-brand portfolios need each brand to keep its own voice without managing N separate voice-rule systems.

Voice inheritance model

Voice rules cascade: operator-wide rules apply by default; per-brand `Voice Overrides` extend or override specific rules. A banned phrase added at the brand level is added on top of the operator banned-phrase list, not in place of it. A required element added at the brand level applies in addition to operator-wide required elements. Channel limits override operator defaults entirely.

Three override categories

`Additional banned phrases` — phrases that fail this brand's voice validator even if they pass at the operator level. PRAPI's brand-brief bans "platform" (overused), "AI tool" (PRAPI is a system), "press release distribution" (PRAPI does not distribute), and "substrate" (retired prior positioning). `Additional required elements` — elements every output must contain at this brand. PRAPI requires `pitch: brief_md_attribution` so every pitch carries the brief reference. `Channel limits override` — channel-specific length or tone rules different from operator defaults.

How the validator runs

PRAPI's voice validator runs on every draft. It checks the brand's composed voice rules (operator inherited + brand overrides), flags banned phrases with line numbers, verifies required elements are present, and validates channel-specific length limits. The validator runs structurally — no LLM-based "vibe check" — so the same input produces the same output deterministically.

Versioning voice rules

Voice rules ship with the brief.md spec version (`spec_version: 0.1.0`). Brand-level voice overrides are typed as part of the brand's `brand_version`. When a brand updates its voice rules, the brand_version bumps; downstream consumers (PRAPI, AI agents) compare brand_version against their cached state and refresh.

Example — PRAPI

PRAPI's brand-brief defines four banned phrases (substrate, AI tool, platform, press release distribution) and one required element (brief_md_attribution on every pitch). Operator-wide rules add ~30 more banned phrases and required elements that apply by default.

FAQ

  • How are voice overrides different from operator voice rules?

    Operator voice rules are the default applied to every brand. Brand-level overrides extend or replace specific rules. Banned phrases extend (added on top); required elements extend; channel limits override (replace).

  • Can a brand allow a phrase the operator banned?

    No, by design. The override system is additive on banned phrases — you cannot un-ban operator-banned phrases at the brand level. This is a guardrail; if a brand needs different voice fundamentally, the operator-level rules need updating, not the brand override.

  • How does the voice validator score a draft?

    The validator returns a structured object: passing/failing per rule, line numbers for banned-phrase hits, missing required elements, channel-limit overruns. PRAPI surfaces the result in the Pitch Composer with banned-phrase highlighting + a 0-100 voice score per draft.

  • Does the validator use LLMs?

    No, by design. The validator is structural — string matching for banned phrases, presence checks for required elements, length checks for channel limits. Deterministic. LLM-based "vibe checks" produce inconsistent results; structural validation is reproducible.

Run brief.md in PRAPI.

PRAPI is the canonical brief.md implementation. Every brand in your portfolio gets its own brief.md, voice-validated drafts on every pitch, and Git-canonical authoring.

Sign in