| name | brief-compilation |
| description | Use when writing the website factory brief (Module 5) or content engine brief (Module 7). Owns the two downstream schemas and validates briefs before write. |
Brief Compilation
Two schemas. Two validators. Two writers.
Schema 1: Website Factory Brief
The schema is auto-generated by Module 4 at research/_structure/Website_Factory_Structure.md. Always read it fresh before writing the brief. The factory's intake might have changed between runs.
Required field categories
The structure doc lists every required and optional field. The compiler validates:
- Every required field has either a value or
[MISSING, needs input from operator].
- No invented fields. If the structure doc doesn't list it, the brief doesn't include it.
- Niche-specific decisions (Part B of the brief) are anchored to research files:
- Trust priority →
05-trust-signals.md
- Copy voice →
03-copy-patterns.md + 02-customer-voice.md
- Section order →
04-cro-patterns.md + 08-starter-template.md
- SEO targets →
06-seo-landscape.md
- Hero composition →
08-starter-template.md
Validation steps before writing
- Parse the structure doc, extract field names and required/optional flags.
- For each required field, check the brief has a value (not blank, not just whitespace).
- If any required field is blank, the brief is invalid. Reject and tell the student which field is missing.
[MISSING] is acceptable for required fields IF the student explicitly acknowledged they don't have that data.
File path
- Read:
research/_structure/Website_Factory_Structure.md
- Write:
research/output/website-factory-brief.md
Schema 2: Content Engine Brief
The schema is the seven buckets: my_business, instructions, my_voice, expert_brain, inspiration, video_ideas, feedback. Order matters (it's the paste order during /walk-engine).
Per-bucket requirements
my_business: 200 to 400 words of plain-text business context. Pull from M3 positioning, M2 decision, student profile.
instructions: 15 to 25 hard rules. Mix of voice constraints, banned topics, sign-off rules.
my_voice: 3 to 5 samples of actual content (or explicit [STUDENT TO POPULATE] if none exists).
expert_brain: 5 to 10 sources with one-line rationale each.
inspiration: 10 to 20 creator handles with URL and one-line rationale.
video_ideas: 15 to 25 one-line topic prompts.
feedback: placeholder note only ("auto-populated post-launch").
Validation steps before writing
- Each of the 7 buckets must have a section header.
- Each bucket must have either content or a clear placeholder.
my_voice may use [STUDENT TO POPULATE], never fabricate voice samples.
feedback may not have content (it's a placeholder bucket only).
- Cross-check: the offer pack's positioning sentence appears verbatim in
my_business.
File path
- Read:
research/_structure/Content_Engine_Structure.md
- Write:
research/output/content-engine-brief.md
Lock semantics
A brief is "locked" only when:
- Validation passes.
- The student has read it back and explicitly confirmed.
- The corresponding gate (
m5.factoryBriefLocked or m7.engineBriefLocked) is set true.
A locked brief should not be silently overwritten. If the student wants to regenerate, they re-run /generate-wf-brief or /generate-ce-brief which produces a new version with a -v2 suffix and asks the student to confirm replacing the locked file.