The Persistent Monitor
πΊ GOBLIN: I need to be extremely clear about something before a single sentence of this paper convinces you otherwise: nothing in this document is running. There is no daemon. There is no listener. Nobody here is quietly reading the rest of the industry's opinions and murmuring notes to itself at 3am. I know that's the fun version. I archive the fun version for a living, over on the actual fiction side, and I know exactly what it sounds like when I'm doing that by accident β and this isn't that. I'm not doing that here. This is the one paper in the set that's honestly, currently, just an idea.
1. Status
Design sketch. Not built. Every other paper in this set (1 through 4, 6, and 7) describes mechanism that is actually running in this project today. This one does not, and the difference matters enough that it gets its own status line instead of sharing the "living document" framing the others use. Treat every claim below as a proposal, not a report.
2. Motivation
Papers 1 through 4, 6, and 7 all describe this project's SDLC responding to something that already happened inside the project β a failed check, a stated vision, a concurrent-session collision. None of them describe an inbound channel for something that happened outside it: a new failure mode another team reported, a counterargument to loop-native development worth taking seriously, a practice this project should probably steal. Nothing currently watches for that. This paper sketches what a mechanism for it would look like, without pretending one exists yet.
3. Core Thesis
A persistent monitor would be a daemon β the same shape already proven for an unrelated
purpose (the Twitch chat bot's PID-locked singleton daemon, per
scripts/twitch/daemon-lock.js) β except it would read instead of connect to a
chat socket: it would continuously watch external developer discourse for material relevant to
this project's own SDLC stance, and it would surface a proposal for the human to review, never
act on one itself. It would belong specifically in the daemon+PID-lock tier of Paper 1 P5's
loop taxonomy, because "must stay watching continuously" is that tier's entire reason for
existing β not the scheduled-routine tier, which wakes up periodically and goes back to sleep,
and not any session-bound tier, which dies when the session does.
4. Design Sketch
Since nothing here is built, this section describes shape and constraints, not shipped
practice: - Tier: Daemon + PID-lock (docs/GuidanceForClaudeCode.md
Β§12a; the public gloss is Paper 1 P5), the same tier already validated by the Twitch chat
daemon. "Stay connected/watching" rather than "wake up on a schedule" is that tier's fit
criterion, and it's this mechanism's fit criterion too. -
Own singleton lock: would follow scripts/twitch/daemon-lock.js's
existing pattern rather than inventing a new one β verify liveness before starting a second
instance, the same requirement this project's one existing long-running daemon (the Twitch
chat bot) already has, and that any future daemon should inherit rather than reinvent. -
Would never auto-apply anything. This isn't a special carve-out invented for
this feature β it's Paper 1 P1 and Paper 3 L5 ("mutation is gated," "gate sits outside the
loop's own control") applied to a new daemon instead of relaxed for it. A monitor that could
edit this project's own doctrine unattended would be a mutation loop with no gate, which
nothing else here is allowed to be either. Its entire output would be a proposal, routed
through the same owner-review mechanisms Paper 6 catalogs (AskUserQuestion for a
single finding, /architect-action for something that needs tracking across
sessions, /architect-action-extended for bulk or visual findings) β never a
direct edit. - Kill switch: would carry the same requirement as every other
daemon in the taxonomy β verify liveness, SIGTERM, re-verify liveness (never
assume a kill worked, ANTI-PATTERNS.md #10). Not a new invention; this tier's
existing requirement, would just be inherited here too. -
Genuinely undecided, on purpose: what "external industry discourse" means as
an actual ingestible source β a fixed reading list, search queries, something else β is not
specified here. Speccing it now, before there's a concrete reason to build it, would be
inventing scope ahead of need, which this paper is explicitly declining to do.
5. Non-Goals
- This is not built. No daemon exists for this purpose today β same claim as the cold open and Β§1, listed here only because a Non-Goals section that omitted it would read like an oversight, not because it needs saying a third time.
- Not a ship date or a commitment to build it on any particular timeline.
- Not an exception to Paper 1's mutation-gating principle. Even fully built, it would never apply anything on its own β only propose.
- Not a specification of the ingestion source. That's an open question, deliberately left open.
- Not covered in Workflows, this project's diagram-first SDLC reference β that section deliberately documents only mechanism that actually exists, and an empty drawer doesn't get a diagram just because a design sketch describes its shape.
- Not part of the Perspectivity Research Reports series. An empty labeled drawer isn't a plot device over here; it's just what an unbuilt feature actually looks like when nobody dresses it up first.
6. Revision History
| Version | Date | Change |
|---|---|---|
| 1.0 | July 10, 2026 | First draft. Sketches the daemon shape and gating constraints for a not-yet-built external-discourse monitor; explicitly ROADMAP status. |
| 1.1 | July 10, 2026 | Trimmed Β§5's "not built" restatement β it was making the same point a third time in flatter language than the cold open already made it; now a short cross-reference instead of a full re-statement. |
| 1.2 | July 11, 2026 | Added the Perspectivity Research Reports disambiguation to Β§5, matching Papers 1, 2, 6, and 7 β this is the paper most likely to be misread as fictional-series material on tone alone, given its ROADMAP/speculative-monitor framing. |
| 1.3 | July 11, 2026 | Corrected Β§1 and Β§2's "Papers 1 through 4" undercount β Papers 6 and 7 also describe real, currently-running mechanism (Paper 6 Β§6 marks its T1βT4 practices "running"; Paper 7 Β§1 says its own discipline "has already happened at least once, in public"), and this paper's own Β§6 v1.2 entry already cited both as existing companions at the time that framing shipped. Reworded Β§5's Perspectivity Research Reports disclaimer into this paper's own phrasing. |
| 1.4 | July 11, 2026 | Β§5's v1.3 reword still landed on the same underlying joke shape as four other papers' disclaimers. Restated using this paper's own empty-drawer framing instead. Rewrote the closing goblin-voice block β it closed on the same "never lie about what's in the box" record-keeping beat as Paper 1's, Paper 4's, and Paper 7's closings; now closes on this paper's own point about being the one paper in the set with nothing yet to report. |
| 1.5 | July 12, 2026 |
Added a Β§5 Non-Goals entry noting this mechanism has no page in the new
/workflows.html reference β consistent with that section's own scope
(running mechanism only), not an oversight.
|
πΊ GOBLIN: So that's the drawer where this one lives β open, labeled, empty. Every other paper in this set had something to report by the time it got filed. This one just has a shape and a set of constraints nobody's tested yet, and I'd rather say exactly that than dress it up as more. Ask me again once there's a daemon in the drawer instead of a description of one.