Skip to content

Commit e9b9f4e

Browse files
authored
Merge pull request #25 from Forward-Future/codex/repository-maintainer-loop
[codex] Add five-minute repository maintainer loop
2 parents 90d6004 + 3339f7d commit e9b9f4e

69 files changed

Lines changed: 629 additions & 125 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

scripts/check.mjs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ const requestedConceptSlugs = [
156156
"autonomy-loop",
157157
"codex-completion-contract-loop",
158158
"revolve-self-improvement-loop",
159+
"five-minute-repository-maintainer-loop",
159160
];
160161
const submissionPromptAnchors = new Map([
161162
["ticket-to-pr-ready-loop", ["bug report", "customer complaint"]],
@@ -172,6 +173,10 @@ const submissionPromptAnchors = new Map([
172173
["autonomy-loop", ["autonomy-loop", "LOOP-STATE.md", "red-before"]],
173174
["codex-completion-contract-loop", ["$goal-planner-codex", "landing a PR"]],
174175
["revolve-self-improvement-loop", ["Revolve", "revolve/", "support prompt"]],
176+
[
177+
"five-minute-repository-maintainer-loop",
178+
["every five minutes", "one thread per repository", "autoreview"],
179+
],
175180
]);
176181

177182
assert.equal(collection.mainEntity.numberOfItems, loops.length);
@@ -189,7 +194,7 @@ assert.deepEqual(agentLoopTerm.sameAs, [
189194
"https://code.claude.com/docs/en/agent-sdk/agent-loop",
190195
"https://arxiv.org/abs/2210.03629",
191196
]);
192-
assert.equal(loops.length, 29);
197+
assert.equal(loops.length, 30);
193198
assert.equal(slugs.size, loops.length);
194199
assert.equal(titles.size, loops.length);
195200
assert.equal(prompts.size, loops.length);

scripts/loop-data.mjs

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export const site = {
55
description:
66
"Practical AI agent workflows for engineering, research, editorial work, evaluation, and operations.",
77
updated: "2026-06-19",
8-
socialImageVersion: "20260619-6",
8+
socialImageVersion: "20260619-7",
99
socialImageExtension: "png",
1010
socialImageMimeType: "image/png",
1111
};
@@ -1184,4 +1184,46 @@ export const loops = [
11841184
],
11851185
related: ["self-improving-champion-loop", "full-product-evaluation-loop"],
11861186
},
1187+
{
1188+
number: "030",
1189+
slug: "five-minute-repository-maintainer-loop",
1190+
title: "The five-minute repository maintainer loop",
1191+
summary:
1192+
"Keeps repository work moving through dedicated threads without interrupting active agents.",
1193+
seoTitle: "Five-Minute Repository Maintainer Loop | Loop Library",
1194+
description:
1195+
"A five-minute Codex workflow that triages repositories, directs bounded maintenance to dedicated threads, and requires proof and permission before work lands.",
1196+
categoryLabel: "AI repository operations workflow",
1197+
author: "Peter Steinberger",
1198+
sourceUrl:
1199+
"https://github.com/steipete/agent-scripts/blob/main/skills/maintainer-orchestrator/SKILL.md",
1200+
published: "2026-06-19",
1201+
modified: "2026-06-19",
1202+
prompt:
1203+
"While repository maintenance is active, wake every five minutes. Triage [repositories] and read each repository thread's latest state. Reuse one thread per repository; assign its highest-value bounded task only within granted permissions, and do not interrupt coherent active work. Require tests, live proof, autoreview, and green CI before work can land. Escalate product, access, security, or irreversible decisions. Record meaningful changes and stop when every item is landed, decision-ready, blocked, or has no work.",
1204+
verifyTitle:
1205+
"Every repository item reaches a proven handoff or terminal state.",
1206+
verifyDetail:
1207+
"Authorized autonomous work lands with evidence; other items are decision-ready, blocked with one exact ask, or recorded as a clean no-op.",
1208+
useWhen:
1209+
"Use this when Codex may coordinate maintenance across several active repositories and you want parallel work to stay steerable without duplicating or micromanaging threads.",
1210+
steps: [
1211+
"Define the repository scope, exclusions, and separate permissions for triage, delegation, implementation, push, CI repair, merge, and release.",
1212+
"Every five minutes, refresh each repository queue and read the latest state of its existing thread before choosing the highest-value eligible item.",
1213+
"Reuse one thread per repository, assign one bounded task, and let coherent active work continue unless it is blocked, stalled, unsafe, or off course.",
1214+
"Require tests, live proof, autoreview, and green CI; record the evidence, then route the next item or present the owner with one exact decision.",
1215+
],
1216+
why:
1217+
"A five-minute heartbeat keeps the control plane current without turning polling into micromanagement. One thread per repository preserves context, while proof and authorization gates make autonomous landing auditable.",
1218+
note:
1219+
"The source pairs Maintainer Orchestrator with github-project-triage, autoreview, and computer use for live proof. A heartbeat automates observation, not authority: triage, delegation, implementation, push, merge, and release remain separate permissions. Read current thread state before steering, and never duplicate or interrupt active work.",
1220+
keywords: [
1221+
"Codex repository maintenance",
1222+
"multi-repository orchestration",
1223+
"five minute agent loop",
1224+
"GitHub project triage",
1225+
"thread delegation",
1226+
],
1227+
related: ["ticket-to-pr-ready-loop", "stale-safe-batch-release-loop"],
1228+
},
11871229
];
165 KB
Loading
153 KB
Loading
171 KB
Loading
167 KB
Loading
158 KB
Loading
170 KB
Loading
159 KB
Loading
161 KB
Loading

0 commit comments

Comments
 (0)