Declare the Telegram presence and state the campaign's boundary

The presence spec is editorial -- a bot's name, its description and the
channel titles a stranger reads are brand, not mechanism -- so it belongs
to the campaign rather than to the delivery interface. fluid-telegram's
provisioner consumes it by path, which keeps that interface reusable by
campaigns other than this one.

The avatar is referenced but deliberately absent: it is the first thing a
stranger sees of HelixForge on Telegram, and a generated placeholder would
quietly become permanent.

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
This commit is contained in:
tegwick 2026-09-04 19:30:39 +02:00
parent fa6f38e3d7
commit 305e6cd313
3 changed files with 147 additions and 1 deletions

17
presence/assets/README.md Normal file
View file

@ -0,0 +1,17 @@
# Brand assets
## helixforge-avatar.png — MISSING
`presence/telegram.yaml` references `presence/assets/helixforge-avatar.png`.
It does not exist yet, and `provision apply` will fail on `/setuserpic` until
it does.
Requirements: square, at least 512×512, PNG. Telegram crops to a circle, so
keep the mark clear of the corners.
Deliberately not generated. This is the first thing a stranger sees of
HelixForge on Telegram, and it should be a considered choice rather than a
placeholder that quietly becomes permanent.
Provisioning is content-addressed on the file's digest, so replacing this file
is what triggers an avatar update on a later `apply`.