Audience control

Every unit opts into projections via audience: :book (default), :ai, or :both — the skill is curated up, never filtered down.

Every content unit carries an audience field saying which projections render it: :book (human docs only — the default), :ai (skill/agent only), or :both. The default is deliberate: content stays OUT of the AI skill until opted in, so the skill is *curated up* rather than filtered down — an agent gets a lean, intentional reference instead of everything.

In practice: reference material an agent should cite gets :both; agent-only working notes (task heuristics, guardrail detail) get :ai; background prose for human readers keeps the :book default. The book renders :book + :both; the skill renders :ai + :both. Indexes carry an audience too — an :ai index shapes SKILL.md's Reference section without touching the book nav.

Audience selects whole units. To vary *content inside one body* per view, use visibility scoping instead.

§ 1Examples

§ 1.1Opting units into the skill

The default keeps content out of the AI skill; tag what the agent needs.

wcl
concept fast_forward { audience = :both  ... }   // book + skill
fact   port_table    { audience = :ai    ... }   // skill only
concept history      { ... }                     // :book default — book only

Expected: The skill's references/ contains fastforward and porttable but not history; the book shows fast_forward and history.