chore(sunset): remove journal-entry pipeline and gate off Bluesky step#3368
Conversation
The Fro Bot "operational log" issues that journal-entry.ts produced were not being read by anyone and were accumulating in the issue tracker (30+ open). Sunsetting the journal pipeline entirely: - Delete scripts/journal-entry.ts and its test (-400 lines) - Remove the journal step from social-broadcast.yaml and drop the 3 journal-related workflow inputs (journal_text, journal_metadata, repo); FRO_BOT_PAT secret no longer required - Remove the journal step invocations from poll-invitations.yaml, fro-bot.yaml, and survey-repo.yaml's broadcast call - Remove the Journal/Internal tone bullet and 2 Journal Entry example sections from persona/fro-bot-persona.md - Close all open "operational log" issues with a sunset comment - Delete the runtime-created `journal` and `journal-active` labels Bluesky posting is also gated off pending re-evaluation of social channels. scripts/bluesky-post.ts is retained for future reactivation; only the step invocations in social-broadcast.yaml and poll-invitations.yaml are gated via `if: false`. Follow-up: brainstorming tighter integration with fro-bot/agent's Discord gateway (long-lived WebSocket bot deployed via marcusrbrown/infra to gateway.fro.bot) for proactive control-plane notifications.
fro-bot
left a comment
There was a problem hiding this comment.
Clean sunset. The journal pipeline is removed cohesively — source, tests, persona examples, and every workflow consumer (fro-bot.yaml daily oversight, poll-invitations.yaml invitation-accepted, social-broadcast.yaml core step, survey-repo.yaml caller inputs) all drop together. Grep confirms no orphan node scripts/journal-entry invocation remains in workflows. Issue-as-log was always the wrong primitive for low-signal control-plane telemetry; gating to Discord-only until the gateway integration lands is the right call.
The if: false && ... pattern on the Bluesky steps is the correct sunset gate: short-circuits without re-indenting the step, keeps the rest of the condition documented for the eventual revival, and the env wiring stays intact so reactivation is a one-token diff. Preamble comments above both gates carry their weight.
Verdict: PASS
Blocking issues
None.
Non-blocking concerns
.github/workflows/social-broadcast.yaml:32-33—FRO_BOT_PATis declared as an optional secret but no step in the reusable workflow consumes it anymore. Now dead surface. Drop the declaration entirely (and the corresponding pass-through in any future callers) unless you're keeping it as a forward hook for a near-term re-add. If the latter, a one-line comment naming the intended consumer would justify the carry..github/workflows/social-broadcast.yaml:21-25—bluesky_textis now a true no-op input. The description correctly flags this, but consider whether to also drop the input plumbing insurvey-repo.yaml:291-293to make the gate honest at the call site. Either is defensible; the current state means we generate copy that nothing reads.scripts/bluesky-post.tsis retained but now has zero invocation paths. Confirm it's exercised by CI in some form (lint/typecheck) so it doesn't bitrot silently while gated off.
Missing tests
None. The journal tests were correctly removed with the script. The Bluesky gate is configuration, not logic — no test surface to add.
Risk assessment: LOW
Deletions-only on the journal side; the gating change cannot fire the Bluesky step under any input combination because false && X is unconditionally false in GitHub Actions expression evaluation. No new actions pinned, no untrusted input flowing into run: blocks, no permission expansion, no secret newly exposed to logs. Downgrading FRO_BOT_PAT from required: true to required: false matches reality and tightens the contract.
Run Summary
| Field | Value |
|---|---|
| Event | pull_request |
| Repository | fro-bot/.github |
| Run ID | 26340542955 |
| Cache | hit |
| Session | ses_1a9db9600ffeFXjJ6G9vcrHA9M |
…po bluesky_text PR #3368 NBCs #1 and #2: - social-broadcast.yaml: FRO_BOT_PAT is no longer consumed by any step (only the journal step needed it, and that step is removed). Drop the declaration entirely. - survey-repo.yaml: drop bluesky_text input plumbing from the broadcast call. The Bluesky step in social-broadcast.yaml is gated 'if: false' pending revival, so generating the copy at the call site is dead work. Comment marks the omission and the revival contract. NBC #3 (verify bluesky-post.ts has CI coverage) confirmed already addressed by Vitest (scripts/bluesky-post.test.ts), Test Scripts Load (scripts/*.ts import loop), tsc --noEmit, and ESLint.
|
Both addressable items from the prior review landed in
Third item ( Verdict stands: PASS. Ship it. Run Summary
|
Why
The Fro Bot 'operational log' issues that
scripts/journal-entry.tsproduced were noise \u2014 nobody was reading them and they were accumulating in the issue tracker (54 issues open across 5 weeks before this PR). The journal-entry pipeline was the wrong primitive for control-plane observability: GitHub issues are heavy artifacts optimized for human attention, not low-signal automated trail.Sunsetting the journal pipeline entirely and gating off Bluesky posting pending a re-evaluation of social channels. Discord posting stays intact \u2014 a follow-up brainstorm will design tighter integration with
fro-bot/agent's long-lived Discord gateway (deployed togateway.fro.botviamarcusrbrown/infra) for proactive control-plane notifications instead of issue-based logging.What changes
Journal pipeline \u2014 removed in full
scripts/journal-entry.tsdeleted (191 lines)scripts/journal-entry.test.tsdeleted (209 lines).github/workflows/social-broadcast.yaml\u2014\ud83d\udcd3 Journal entrystep removed;journal_text/journal_metadata/repoinputs dropped;FRO_BOT_PATsecret no longer required (downgraded fromrequired: truetorequired: falsesince the only consumer was the journal step).github/workflows/poll-invitations.yaml\u2014\ud83d\udcd3 Journal \u2014 invitation acceptedstep removed.github/workflows/fro-bot.yaml\u2014\ud83d\udcd3 Journal \u2014 daily oversightstep removed.github/workflows/survey-repo.yaml\u2014journal_text/journal_metadata/repoinputs andsecrets:block dropped from the social-broadcast callpersona/fro-bot-persona.md\u2014Journal/Internaltone bullet and 2### Journal Entryexample sections removedjournalandjournal-activeGitHub labels deletedBluesky \u2014 disabled (not deleted)
scripts/bluesky-post.tsretained (no edits) so the code is available for future reactivation.github/workflows/social-broadcast.yaml\u2014\ud83e\udd8b Post to Blueskystep gated withif: false && ...plus a preamble comment explaining the gate.github/workflows/poll-invitations.yaml\u2014 sameif: falsegate on its inline Bluesky stepDiscord \u2014 untouched
scripts/discord-notify.tsand all Discord webhook invocations remain in production. The follow-up brainstorm will decide whether to replace webhook-based posting with gateway-relayed messages.Stats
What's next
A follow-up brainstorm (separate PR / docs/brainstorms entry) will scope how
fro-bot/.github(control plane) should leveragefro-bot/agent's Discord gateway. Research already done: see internal note for the gateway capability matrix and integration gaps.