Back to Skills

perpetuum

Set up, supervise, and control a persistent multi-layer "explore → execute → escalate" agent loop on a project. Use whenever a user asks to keep an agent running on a task across sessions or days — finding bugs, polishing writing, distilling a style, watching feeds, scanning for gaps, or any task whose value grows with how many findings the agent produces. Also use when the user wants to inspect, pause, resume, stop, or send a new instruction to an already-running perpetuum task.

Updated 7/29/2026

Security Assessment

Low Risk(84/100)

Detected risks:

Autonomous Persistent Execution(The skill sets up a persistent scheduler that keeps an agent loop running unattended across sessions or days, autonomously dispatching shell-driven work each cycle., The middle agent can autonomously commit code changes to git and, in the GitHub watcher example, comment on or act on repository issues and pull requests without a human approving each action., Because the loop grants meaningful autonomy over a project, misconfiguration or an overly broad task scope could let it take unintended or hard-to-reverse actions between human check-ins.)
Security Score84/100

About perpetuum

Perpetuum is a framework skill for setting up, supervising, and controlling a persistent three-layer "explore, execute, escalate" agent loop on a project. It targets tasks whose value grows with how many findings an agent can produce over hours or days, such as bug hunting, writing polish, style distillation, feed watching, and gap scanning, and it also manages the lifecycle of an already-running loop: inspect, pause, resume, stop, or nudge with a new instruction. What ships is an adaptable framework rather than fixed source code; the architecture is fixed but the prompts, trigger scripts, and contract files are templates rewritten per task.

The design separates a producer inner agent (Layer 1, fresh context per dispatch, so it cannot rubber-stamp prior behavior) from a judging middle agent (Layer 2, fresh per cycle) that commits, fixes, or escalates, above a persistent scheduler (`trigger.sh`, Layer 3) and an optional human/host monitor layer. This GAN-like discriminator/generator split prevents the self-certifying failure of simpler loops, with durable state kept in files and git rather than a long-lived conversation. The skill is organized as a router into references for setup, status, control, feedback, git-worktree parallelism, trigger authoring, design rationale, and an optional browser dashboard. It runs on top of cc-use and ships worked examples (adversarial testing, article polish, GitHub watcher, observability-gap scanning, style distillation) with plan/inbox/escalation contract files and trigger scripts.

Target users are developers and power users who want an autonomous, long-running agent that keeps producing findings across sessions while remaining inspectable and controllable, escalating genuine decisions to a human. Because it runs a persistent scheduler that autonomously dispatches shell-driven agent work, commits, and can act on GitHub, it grants meaningful autonomy and should be pointed at scoped projects with human escalation in place.

FAQ

What kinds of tasks is perpetuum for?

Long-running tasks whose value grows with the number of findings, such as bug hunting, article and writing polish, style distillation from a target corpus, GitHub issue/PR triage, and observability-gap scanning. It also manages inspecting, pausing, resuming, stopping, or nudging an existing loop.

How does it avoid an agent rubber-stamping its own work?

It separates a producer inner agent with fresh context per dispatch from a judging middle agent that is fresh per cycle. This GAN-like discriminator/generator split, plus a blind fresh-agent comparison for keep/revert decisions, prevents the self-certification problem of simpler single-agent loops.

What does it require to run?

It runs on top of the cc-use skill and uses Bash, Read, Write, Edit, Glob, and Grep, with a persistent trigger.sh scheduler and tmux for the middle-agent session. Durable state lives in files and git; the GitHub watcher example additionally uses the gh CLI, and an optional Python browser dashboard is available.

Is running a persistent autonomous loop safe on my project?

The loop autonomously dispatches shell-driven work and can commit code or act on GitHub across cycles, so it grants real autonomy. It is designed with human escalation, an inbox for instructions, and file/git-based durable memory so decisions stay inspectable; point it at scoped work and keep escalation in place, especially for irreversible actions.

Can I run several loops at once?

Yes. It supports running multiple loops in parallel on the same project via git worktrees, with a dedicated worktree reference for isolating each line of work on its own branch.

All Files

62 files
examples/adversarial-testing/inbox.md0.8 KB
View
examples/article-polish/_meta.md0.4 KB
View
examples/article-polish/README.md2.4 KB
View
examples/github-watcher/prompts/1_explore.md1.8 KB
View
examples/observability-gap/inbox.md0.4 KB
View
examples/adversarial-testing/prompts/2_execute.md4.3 KB
View
examples/article-polish/plan.md0.4 KB
View
examples/github-watcher/escalations.md0.4 KB
View
examples/github-watcher/trigger.sh8.1 KB
View
examples/observability-gap/prompts/2_execute.md3.6 KB
View
examples/style-distill/inbox.md0.4 KB
View
examples/adversarial-testing/escalations.md1.4 KB
View
examples/adversarial-testing/trigger.sh7.7 KB
View
examples/article-polish/prompts/2_execute.md3.2 KB
View
examples/github-watcher/plan.md0.4 KB
View
examples/adversarial-testing/_meta.md0.6 KB
View
examples/adversarial-testing/README.md2.4 KB
View
examples/article-polish/prompts/1_explore.md1.5 KB
View
examples/github-watcher/inbox.md0.5 KB
View
examples/adversarial-testing/prompts/1_explore.md2.5 KB
View
examples/article-polish/inbox.md0.4 KB
View
examples/github-watcher/_meta.md0.5 KB
View
examples/github-watcher/README.md2.4 KB
View
examples/observability-gap/prompts/1_explore.md1.8 KB
View
examples/style-distill/escalations.md0.8 KB
View
examples/style-distill/style_score.py3.7 KB
View
references/feedback.md6.1 KB
View
scripts/dashboard/controls.py3.7 KB
View
scripts/dashboard/uv.lock124.4 KB
View
examples/adversarial-testing/plan.md0.6 KB
View
examples/article-polish/escalations.md0.7 KB
View
examples/article-polish/trigger.sh6.0 KB
View
examples/github-watcher/prompts/2_execute.md3.9 KB
View
examples/observability-gap/plan.md0.4 KB
View
examples/style-distill/_meta.md0.5 KB
View
examples/style-distill/README.md3.4 KB
View
references/design.md13.5 KB
View
scripts/dashboard/.python-version0.0 KB
View
scripts/dashboard/static/style.css4.2 KB
View
examples/observability-gap/_meta.md0.8 KB
View
examples/observability-gap/README.md2.4 KB
View
examples/style-distill/plan.md0.5 KB
View
examples/style-distill/trigger.sh6.7 KB
View
references/status.md3.4 KB
View
scripts/dashboard/pyproject.toml0.2 KB
View
scripts/validate.sh2.2 KB
View
examples/observability-gap/escalations.md0.7 KB
View
examples/observability-gap/trigger.sh5.9 KB
View
examples/style-distill/prompts/1_explore.md1.9 KB
View
references/control.md5.4 KB
View
references/trigger.md10.2 KB
View
scripts/dashboard/static/app.js8.6 KB
View
SKILL.md21.9 KB
View
examples/README.md2.3 KB
View
examples/style-distill/prompts/2_execute.md3.1 KB
View
references/dashboard.md3.8 KB
View
references/worktree.md4.9 KB
View
scripts/dashboard/static/index.html3.5 KB
View
examples/style-distill/target_corpus/README.md1.3 KB
View
references/setup.md12.3 KB
View
scripts/dashboard/parsers.py15.1 KB
View
scripts/dashboard/web.py5.2 KB
View

Install perpetuum

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill