Skip to content

Separate audiences with separate bundles, not with folders or tags

This is a knowledge-management practice

How knowledge gets organised, independently of any tool that stores it.

A knowledge base that outlives its first subject eventually holds things not everyone should read: work under a client's name, notes about people, a half-formed opinion. The reflex is to put the boundary where the other structure already is, in a folder called private or a tag called internal.

Neither is a boundary. A folder is a path and a tag is a label; both are conventions that hold only as long as everyone publishing remembers them, and the thing you are guarding against is exactly a moment of not remembering. The boundary that holds is the repository: a separate remote, separate permissions, a separate publish gate, and a git push that cannot reach the wrong place because it is not configured to.

So visibility is decided one level up from the content, at the bundle. You publish a bundle. You never publish a folder.

What that buys the structure inside

This is the part worth noticing, because it is not obvious until the decision is made.

Two jobs pull in opposite directions when both must be expressed in one tree. Composition wants organisation by nature, so you can take every principle regardless of subject and assemble a new repository from them. Sharing wants organisation by domain, so you can hand someone the home-and-family slice without the software one. A single hierarchy cannot serve both, and trying produces the folder-name explosion that Split orthogonal classification axes across folders and tags describes.

Deciding visibility at the bundle dissolves the conflict rather than resolving it. Each bundle already has one audience, so there is no sharing pressure inside it, and the folder axis is free to carry nature while tags carry domain. Adding an audience becomes adding a bundle, not reorganising an existing one.

What it costs

  • A concept cannot be half-visible. A page that is mostly publishable with two sentences that are not has to be split, or written to the stricter audience. This is a real cost and the correct one: the alternative is a page whose visibility depends on how it is read.
  • Cross-bundle links become their own problem, since a link from a public page into a private one leaks the private page's existence and often its title. That needs a rule of its own; in this knowledge base it is the referenceable_by allow-list in Federated OKF knowledge bases.
  • Moving a page to a wider audience is irreversible, because the target's history keeps it. That makes promotion a deliberate, gated act rather than a drag-and-drop, which is why Federating my knowledge base as privacy-tiered OKF bundles treats it as a first-class operation.

The tell that a tag is being asked to do this

You are about to write tags: [private], or to name a folder after who may read it. Both are the same mistake wearing different clothes: an audience expressed as content metadata, inside an artefact that is published or not published as a whole.

The following pages link to this page: