Reframe the handover around composed posts, and plan the pr- pattern

The Telegram channel publishes posts written from hall entries, not the
entries themselves, so the handover's pressure, competition and
guardrails are rebuilt around that. Composition sits outside the
interface because Blueprint 48.1 forbids an LLM in the mandatory request
path, and because a post about a named person's work deserves a human
read that a request-path step would never get.

Adds FLUID-WP-0009 for the pr- campaign repository convention and for
reducing the Hall of Helix case from the thing this framework is for to
an example of using it. The prefix deliberately includes "propaganda":
a campaign repository that cannot name what it is doing will not govern
it well.

The workplan starts only after the loop has closed once on real traffic.
Extracting a seam before using it is how you learn you cut it in the
wrong place.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014KmVxhJ35tCo7rE7UnLwWu

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1116572@bnt-lap001
Assistant-Session: 8ba9bb93-a72a-4883-b189-2499cce5c400
This commit is contained in:
tegwick 2026-09-04 11:59:30 +02:00
parent 47f11dd8ec
commit 78454c59d8
3 changed files with 219 additions and 45 deletions

View file

@ -29,9 +29,9 @@ func TestTelegramHandoverContractCompiles(t *testing.T) {
ops := c.Operations()
want := map[string]bool{
"GET /v1/hall-entries": false,
"POST /v1/hall-entries": false,
"GET /v1/hall-entries/{entry_id}": false,
"GET /v1/channel-posts": false,
"POST /v1/channel-posts": false,
"GET /v1/channel-posts/{post_id}": false,
}
for _, op := range ops {
if _, tracked := want[op]; tracked {