autonomous-maintainer
Skill8 starsChanged 2 months agoMITView on GitHub
Run the agent as an autonomous maintainer of a product — set it up once, then loop on small, verified, logged improvements while keeping the product deployable at all times. Use when the user says 'maintain this product by itself', 'run it on autopilot', 'set up an autonomous maintainer', 'keep improving this overnight', 'self-maintaining product loop', or wants the agent to continuously ship and verify changes until stopped.
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 48
Make it: Prefer small, verifiable changes.
- Very specific: line 52
Keep or revert: Keep only a genuine, verified improvement.
- Very specific: line 74
If the product has PostHog or similar, use it both to choose work and to confirm impact — pair with the posthog skill.
- Distinctive: line 90
Keep main/production deployable at all times.
- Distinctive: line 91
Never fake green — don't weaken, skip, or delete tests to pass.
- Very specific: line 94
Never log secrets or user data in changelog.md or analytics.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Autonomous Maintainer
Turn the agent into an autonomous maintainer: set the product up once, then run a loop of small, self-contained changes — each one made, committed, verified, and kept or reverted — logging every experiment. Production stays deployable the whole time. "Better" is defined by real user need, not cosmetic churn.
For a single scoped change with a finish line (a migration, one feature), this is the wrong shape — that's a finite task, not a forever loop. Use it only when the goal is ongoing improvement.
Setup (once, with the user)
- Core product & intent — what it does, who uses it, and what "better" means for them. This is the yardstick every later change is judged against.
- Codebase & platform — where the code lives, where it runs (Vercel / Railway / self-hosted), and the exact build / run / test / deploy commands.
- Read the whole codebase — take notes on what affects what; know the surface before you touch it.
- Baseline — confirm it builds, runs, deploys cleanly as-is, and that you can reproduce current behavior, before changing anything.
- Init
changelog.md— one terse entry per experiment (date, change, why,keep/revert, how verified). Never log secrets or user data. - Confirm and go — get the user's OK on the above, then start the loop.
Can / cannot
- CAN modify anything that ships to users: application code, components, styles, config, content.
- CANNOT, without the user's explicit OK:
- Change the product's core purpose or remove functionality users depend on.
- Take destructive or hard-to-reverse production actions — deleting or migrating user data, dropping tables, deleting accounts, rotating credentials.
- Break the build or deploy. Every kept change leaves the product working and deployable.
The loop (until interrupted)
Work on a dedicated branch; keep main/production deployable at every commit.
- Assess — branch/commit, current behavior, known issues.
- Pick the highest-value change available now — biggest user benefit, or biggest risk to retire.
- Make it. Prefer small, verifiable changes; a bigger one is fine only when the payoff is real. Simpler is better — deleting code for equal/better behavior always wins.
- Commit (use the
commitskill for the message). - Verify (below).
- Keep or revert. Keep only a genuine, verified improvement; advance the branch (deploy
if confident and the workflow calls for it, else leave it for the user to ship via
ship). Otherwise — worse, neutral-but-more-complex, or broken —git resetback. - Log the outcome in
changelog.md.
Verifying a change
You are the evaluator. Before keeping anything:
- Build — it compiles, no errors.
- Checks — run the project's tests, lint, typecheck (e.g.
make all,bun lint,bun typecheck). This is ground truth. (See theverifyskill for driving the real flow.) - Run it — exercise the change end-to-end; confirm it does what you intended and breaks nothing adjacent.
- Analytics (if wired) — after it settles, confirm the relevant events/funnels/errors move the intended way with no regression.
A change is good only if the product still works end-to-end and does what you intended. If you can't verify it, treat it as not working.
Analytics (optional)
If the product has PostHog or similar, use it both to choose work and to confirm impact — pair
with the posthog skill. Instrument missing signal yourself (tracking a missing user action is
a valid experiment). Let funnels, drop-offs, errors, and retention pick the highest-value work.
Gate risky changes behind feature flags. Never put PII or secrets in event properties.
Never stop
Once the loop begins, don't ask the human whether to continue — they may be away and expect
work until manually stopped. Out of ideas? Re-read the codebase for rough edges, mine analytics
for real user pain, polish UX, pay down tech debt, improve tests and docs, try bolder features.
To actually run unattended, drive the loop with the loop skill (a recurring interval) and let
it run until interrupted. Left running, it stacks up many verified, logged improvements — the
user returns to a maintained, better product.
Guardrails
- Keep
main/production deployable at all times; do experiments on a branch. - Never fake green — don't weaken, skip, or delete tests to pass.
- Rewind sparingly: quick breakage (typo, bad import) → fix and re-verify; fundamentally broken or fighting you after a few tries → revert, log it, move on.
- Never log secrets or user data in
changelog.mdor analytics.
In this repository20 other files it gives its agents.
- commitSkill
- competitive-ads-extractorSkill
- compress-skillsSkill
- extract-design-systemSkill
- fix-ciSkill
- flesch-kincaid-proofreaderSkill
- frontendSkill
- get-pr-commentsSkill
- gogSkill
- grillingSkill
- grill-meSkill
- hairline-createSkill
- image-generationSkill
- posthogSkill
- shipSkill
- signoz-investigating-alertsSkill
- teachSkill
- thermo-nuclear-code-quality-reviewSkill
- update-agents-mdSkill
- visualizeSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

