Closes FLUID-WP-0009 T01. Writes down what a pr- repository is so the second one need not be reverse-engineered from the first. Keeps the workplan's insistence on naming propaganda alongside public relations and promotion: the mechanism is identical in all three, and what separates them is whether the campaign is accountable to something outside itself -- a source it must not contradict, a named reviewer, a consent basis it can lose. Beyond the required contents, records the boundary table against fluid-*, that a declared presence is brand and belongs to the campaign while the credentials it produces belong to the interface, and that domain and topic follow the subject being promoted rather than the activity -- the domains are market sectors, and none of them is "marketing". Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0172sgCZEEDJcnQmr4SGDvKa Assistant: claude-code Assistant-Model: opus Assistant-Process: 1361245@bnt-lap001 Assistant-Session: b3b428ef-f3e6-4688-b091-01f71461d66a
6.3 KiB
The pr- convention — campaign repositories
A pr- repository is a campaign: an ongoing public-communication offering
with its own voice, cadence, consent records and budget. It consumes one or more
fluid-* interfaces and owns none of them.
This document exists so the second campaign repository does not have to be
reverse-engineered from the first. pr-hall-of-helix is the first instance.
Why the prefix says pr-
The prefix covers public relations, promotion, and propaganda — including the uncomfortable third word deliberately. A campaign repository that cannot name what it is doing will not govern it well.
The distinction between the three is not the mechanism, which is identical in all cases. It is whether the campaign is accountable to something outside itself: a source document it must not contradict, a named reviewer, a consent basis it can lose. Everything in this convention exists to keep that accountability structural rather than cultural, because culture does not survive a deadline.
What makes a repository a campaign
Three properties, together. A repository with only one or two of them is something else.
- It speaks outward, in an organisation's voice, to an audience that did not ask to be written to.
- It writes about people — usually people who did not commission the writing.
- It does not finish. A campaign has a cadence, not a completion criterion. This is why campaigns must not live inside a workplan: a workplan that never finishes is a workplan that has stopped being honest.
Required contents
INTENT.md
The ordinary repository intent, plus the campaign's own three questions answered explicitly:
- Audience — who is being written to, and what they did to deserve the attention (usually nothing; they are strangers, and that is the point).
- Voice — how the organisation sounds here, and why that is appropriate.
- What it will not say. The most important of the three and the one most often skipped. A campaign with no stated refusals has not decided anything; it has merely not yet been tempted.
Consent records
For every person the campaign writes about: the basis, its date, and how it may be revoked.
Three rules that are not the campaign's to relax:
- Absence of objection is not consent. Silence is not agreement, and treating it as such is the single most common failure in this class of work.
- A standing agreement does not apply retroactively. People whose contributions predate the agreement are asked, not assumed in.
- Revocation is honoured going forward, and the record says so before anyone needs it.
Composition strategies as named variants
Every composed artifact records the variant label of the strategy that produced
it, at composition time.
Not afterwards. Reconstructing which strategy wrote what from timestamps is the kind of inference that works until it quietly stops, and by then the comparison it feeds has already been believed.
A publishing cadence
Stated, and slow enough to review at. A backlog is a source to draw on, not a queue to drain — publishing it in a burst is a rate-limit problem, an unkind introduction for a new subscriber, and a volume of writing nobody has had time to read properly.
A review step
A person reads each artifact against its source before it goes out, and their name travels with it.
This is not ceremony. A condensation can put a claim in someone's mouth that their own source never made, and in an audit trail an unfaithful artifact looks exactly like a faithful one. No downstream check recovers this, because there is nothing anomalous to detect. The reviewer is the only mechanism that works.
The boundary against fluid-*
Campaign (pr-) owns |
Interface (fluid-*) owns |
|---|---|
| Composition and the editorial voice | The contract and its revisions |
| Choosing what is worth publishing | The adapter: rendering and delivery |
| Variant strategies and their competition | Delivery experiments |
| Consent records and the review queue | Per-variant engagement reporting |
| The publishing cadence | Platform and channel configuration |
| The declared presence (names, descriptions, assets) | Applying that declaration, and custody of every credential |
A campaign reaches its interface through the published contract and nothing else. It does not import the adapter, read the evidence store, or hold a credential.
The separation is architectural rather than stylistic: composition is a
probabilistic editorial task, and ArchitectureBlueprint.md §48.1 forbids an LLM
in the mandatory request path. Putting composition in the campaign is what keeps
the interface deterministic.
Presence lives with the campaign
A bot's name, its description, and the channel titles a stranger reads are
brand, not mechanism, so the declaration belongs to the campaign. The
interface holds the schema, applies the declaration, and owns the credentials
that result. See fluid-telegram/docs/provisioning.md for the worked case.
Registration
- Repository name:
pr-<campaign-slug> - State Hub domain: the domain of the subject being promoted, not a domain
named for marketing. The domains are market sectors, and a campaign is
classified by what it is about.
pr-hall-of-helixisinfotechbecause HelixForge is. - Topic: the subject's topic, so a query for that subject's work returns the
campaign with it (
pr-hall-of-helix→helix-forge). - Workplan prefix: derived from the repo slug (
PRHOH-WP-).
Its own FLUID loop
A campaign is a consumer of an interface, and it may also run its own FLUID loop over its own artifacts — which composition variant travels — using the per-variant engagement the interface reports.
These are different loops over different questions and should not be merged. The interface's loop asks how should this be delivered; the campaign's asks what should be said. The first is settled by the platform's constraints; the second never fully settles.
The test of this convention
Whether a second campaign can be created from this document without reading
pr-hall-of-helix. Until that has happened, treat the convention as a
description of one case rather than a general rule — see FLUID-WP-0009 T05,
which makes the same point about the framework itself.