aminet-browser
Aminet search and browse: full-text search, category tree navigation, architecture filtering, package detail, and curated collections. Use when searching,…
Interrupt controller converting polled to proactive agent execution. Per-runtime strategies, configurable thresholds, Deacon heartbeat supervision. Fights LLM passivity bias.
$ npx -y skills add Tibsfox/gsd-skill-creator --skill gupp-propulsion --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/gupp-propulsionContext preview
The summary Claude sees to decide when to auto-load this skill.
Interrupt controller converting polled to proactive agent execution. Per-runtime strategies, configurable thresholds, Deacon heartbeat supervision. Fights LLM passivity bias.
name: gupp-propulsion description: Interrupt controller converting polled to proactive agent execution. Per-runtime strategies, configurable thresholds, Deacon heartbeat supervision. Fights LLM passivity bias. format: 2025-10-02 version: 1.0.0 status: ACTIVE updated: 2026-04-25 triggers: - agent has work assigned to its hook and is not yet executing - stall detection identifies an agent with hooked work that has gone idle - new agent is spawned and needs GUPP enforcement injected into its context - runtime-specific GUPP strategy selection is needed - heartbeat supervision needs to be configured for active agents references_subdir: true word_budget: 800
The Gas Town Universal Propulsion Principle: **If there is work on your hook, YOU MUST RUN IT.**
GUPP is the interrupt controller of the Gastown chipset. In a real processor, the interrupt controller converts external events (keyboard press, network packet, timer tick) into CPU interrupts that force immediate handling. GUPP does the same for AI coding agents: it converts the polled model (agent checks periodically, waits for user input) into an interrupt-driven model (work appears on hook, agent executes immediately).
RLHF-trained LLM assistants have a strong bias toward *waiting for the user* — asking clarifying questions, seeking confirmation, pausing for feedback. This is appropriate in interactive chat but catastrophic for autonomous multi-agent orchestration, where every moment of idle waiting stalls the pipeline. Gastown discovered this empirically: agents spawned with a work item would introduce themselves, summarize the task, and *wait*, asking "Shall I proceed?" when the answer was already on their hook. GUPP overrides this trained passivity with an explicit, non-negotiable execution mandate: if you have hooked work, you do not wait, do not ask for confirmation, do not pause for feedback. You begin immediately. This is physics, not politeness.
This skill activates when:
GUPP enforcement adapts to each runtime via the Runtime HAL. The HAL exposes `getGUPPStrategy()` which returns one of:
A Deacon heartbeat loop runs inside the witness-observer at the configured `nudge_interval`, detecting agents that received hooks but stalled. After `restart_threshold`, the watchdog requests a session restart. Per-runtime strategy tables, configurable thresholds, the full heartbeat protocol, and the Claude Code HAL note are in [`references/runtime-strategies.md`](references/runtime-strategies.md).
**These safety rules MUST remain in effect at all times — they are not advisory.**
GUPP enforcement is ADVISORY within GSD's structured workflow. The GSD orchestrator's phase gates, verification steps, and checkpoint protocols take precedence over GUPP urgency. If a GSD checkpoint requires human verification, GUPP does not override it. If a phase gate blocks progress pending approval, GUPP does not force execution past the gate.
The hierarchy is:
GSD orchestrator (highest authority) -> Phase gates and checkpoints -> GUPP propulsion (execution enforcement) -> Agent autonomy (lowest -- must obey all above)
GUPP operates between the orchestrator's structural gates. Within a phase, within an approved plan, within a committed task — GUPP demands immediate execution. But it never overrides the orchestrator's decision about *what* to execute or *when* a phase is complete.
The watchdog restart mechanism has strict limits to prevent infinite restart loops:
| Limit | Value | |-------|-------| | Max restart threshold | 1800s (30 min, hard cap) | | Max restarts per bead | 3 | | Restart cooldown | 60s minimum between consecutive restarts |
After 3 restarts for the same work item, escalation to human is mandatory.
After 3 restarts for the same bead without resolution, GUPP stops attempting automated recovery and escalates to a human operator via durable mail to the mayor. The mayor surfaces this through whatever channel the human is monitoring. GUPP does not attempt a fourth restart.
GUPP enforcement never destroys work in progress. Restarts preserve the agent's branch and commits. Nudges are non-destructive signals. Escalations are informational. At no point does GUPP delete files, reset branches, or discard uncommitted changes.
Reads runtime capabilities from `runtime-hal` (`getGUPPStrategy()`, thresholds, restart support). Targets `polecat-worker` (the primary enforcement target). Runs inside `witness-observer` (Deacon heartbeat). Sends nudges via `nudge-sync` and escalations via `mail-async`. Reads agent activity timestamps from `beads-state` and hook status from `hook-persistence`. `mayor-coordinator` receives escalations. `sling-dispatch` sets hooks that activate GUPP enforcement.
Implementation detail moved to:
An adaptive learning and coprocessor architecture for Claude Code, built as an extension to GSD (open-gsd)
Repo: Tibsfox/gsd-skill-creator
Aminet search and browse: full-text search, category tree navigation, architecture filtering, package detail, and curated collections. Use when searching,…
FS-UAE emulator configuration and launch: hardware profiles, ROM management, WHDLoad integration, config generation, and state snapshots. Use when configuring…
Manages Aminet INDEX infrastructure: fetch, parse, cache, and incremental update of ~84,000-entry package database. Use when managing INDEX data, checking…
Aminet package installation: LhA/LZX extraction, Amiga filesystem mapping, dependency detection, install tracking, and scan gate enforcement. Use when…
Selective Aminet package mirroring: single-package fetch, integrity verification, mirror state tracking, bulk download, and sync detection. Use when…
Multi-layer virus scanning for Aminet packages. Signature-based detection, heuristic hunk analysis, boot block scanning, quarantine management, and scan…