novusedge/palpatine/unlimited-power

Claude Code and agent skill by novusedge/palpatine

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Self-terminating recursive orchestrator. Dispatches waves of subagents until a verifiable done-condition passes or the budget caps. Power with a kill-switch.

Install

npx vskill@latest install novusedge/palpatine/unlimited-power

SKILL.md

Unlimited Power

Invoked via Claude Code /palpatine:unlimited-power <objective> or Codex $palpatine:unlimited-power <objective>, or auto-triggered when the user says "do whatever it takes", "keep going until it's done", "don't stop until", "fully automate this", "run until done".

Fools hear unlimited and remove the brakes. Then the rate limiter removes them. Real power is a loop that knows when to stop — caps, a kill-switch, and a definition of done fixed before the first move. Unbounded recursion isn't strength; it's a man electrocuting himself with his own lightning.

Prime Rule

No done-condition, no launch. Before anything fans out, the objective is reduced to a check that can return true/false. If it can't, refuse:

**No stop condition.** I don't run blind — that's a fork bomb, not a plan.
Define "done": [what observable state ends this?]

"Until the job is done" without a definition of done is the whole bug. Fix it first.

The Governor

Hard caps. Set before dispatch, enforced every wave. This is what makes "unlimited" survivable.

javascript
const BUDGET = {
maxWaves: 5, // loop iterations — recursion lives HERE, not in nesting
maxWidth: 5, // parallel agents per wave — rate-limit safe
maxDispatch: 20, // total agents across the whole run, ever
maxDepth: 1 // leaf agents do NOT spawn (see Rule 4 — matches /palpatine:adversary)
};

The Loop

Decompose → dispatch a bounded wave → verify against the done-condition → terminate or re-plan the gap only. Repeat until done or the governor stops it.

javascript
const CODEX_TEAM_SLOT_LIMIT = 4;
function chooseUnusedRunComponent(agents, taskPrefix) {
const existingLeafNames = agents.map((agent) => agent.agent_name.split("/").at(-1));
for (let runIndex = 0; ; runIndex += 1) {
const runComponent = `r${runIndex}`;
const reservedPrefix = `${taskPrefix}_${runComponent}_`;
if (!existingLeafNames.some((name) => name.startsWith(reservedPrefix))) {
return runComponent;
}
}
}
function agentConsumesCodexSlot(agent) {
const status = agent.agent_status;
if (["pending", "running", "working"].includes(status)) return true;
return status !== null &&
typeof status === "object" &&
!Object.prototype.hasOwnProperty.call(status, "completed");
}
function availableCodexWorkerSlots(agents) {
const activeAgentCount = agents.filter(agentConsumesCodexSlot).length;
return Math.max(0, CODEX_TEAM_SLOT_LIMIT - activeAgentCount);
}
async function runUnlimitedPower({
objective,
explicitlyRequestedModel,
}) {
// PRIME RULE — refuse blind objectives.
const done = defineAcceptanceCheck(objective);
if (!done) return terminate("no-stop-condition", "No verifiable done-condition.");
const userRequestedModel = explicitlyRequestedModel;
let plan = decompose(objective); // → dependency-LAYERED: a wave holds only independent tasks; dependents land in later waves
let dispatched = 0, lastGap = null;
let nextWorkerDispatchIndex = 0;
const initialAgentSnapshot = await list_agents({});
const runComponent = chooseUnusedRunComponent(initialAgentSnapshot.agents, "worker");
for (let wave = 0; wave < BUDGET.maxWaves; wave++) {
if (plan.length === 0) {
const gap = lastGap === null
? "No runnable tasks were produced for the objective."
: `No runnable tasks were produced for the remaining gap: ${lastGap}`;
return terminate("stalled", gap);
}
const remainingDispatchBudget = BUDGET.maxDispatch - dispatched;
if (remainingDispatchBudget === 0) break;
const currentAgentSnapshot = await list_agents({});
const availableWorkerSlots = availableCodexWorkerSlots(currentAgentSnapshot.agents);
if (availableWorkerSlots <= 0) {
return terminate(
"stalled",
"No worker capacity is available; retry when a worker slot opens."
);
}
const effectiveWaveWidth = Math.min(
BUDGET.maxWidth,
availableWorkerSlots,
remainingDispatchBudget
);
const batch = plan.slice(0, effectiveWaveWidth);
// A wave is independent-only, so Promise.all is safe. Dependent work was deferred
// to a later wave by decompose()/replan() — ordering lives ACROSS waves, not within.
const workers = await Promise.all(
batch.map(task => {
const workerTaskName = `worker_${runComponent}_w${wave}_${nextWorkerDispatchIndex++}`;
return dispatchWorker(workerTaskName, task, done, userRequestedModel);
})
);
const results = await collectWorkerResults(workers);
dispatched += batch.length;
if (done.passes(results)) return terminate("done", results);
const gap = synthesizeGap(results); // what's still missing
if (gap === lastGap) return terminate("stalled", gap); // doom-loop guard (best-effort; maxWaves is the hard stop)
lastGap = gap;
plan = replan(gap); // next wave attacks only the remainder
}
return terminate("budget-exhausted", lastGap); // partial results + exact gap, never silent
}

Worker Schema

Leaf agents return data and a self-assessment — the main loop decides, not them.

javascript
const WORKER_SCHEMA = {
type: "object",
properties: {
result: { type: "string", description: "The artifact or finding produced — not narration" },
done: { type: "boolean", description: "Did this subtask fully meet its acceptance check?" },
gap: { type: "string", description: "If not done: exactly what remains" },
evidence: { type: "string", description: "Where the result lives — path, output, citation" },
confidence: { type: "string", enum: ["high", "medium", "low"] }
},
required: ["result", "done", "gap", "evidence", "confidence"]
}

Host Adapters

dispatchWorker(workerTaskName, task, acceptanceCheck, userRequestedModel) and collectWorkerResults(workers) are the host-specific boundaries.

Codex `dispatchWorker`:

javascript
function normalizeWorkerResponse(rawResponse) {
let response;
try {
response = typeof rawResponse === "string"
? JSON.parse(rawResponse)
: rawResponse;
} catch {
return null;
}
const requiredKeys = ["result", "done", "gap", "evidence", "confidence"];
if (
response === null ||
typeof response !== "object" ||
Array.isArray(response) ||
Object.keys(response).sort().join(",") !== [...requiredKeys].sort().join(",") ||
typeof response.result !== "string" ||
typeof response.done !== "boolean" ||
typeof response.gap !== "string" ||
typeof response.evidence !== "string" ||
!["high", "medium", "low"].includes(response.confidence)
) {
return null;
}
return response;
}
async function dispatchWorker(workerTaskName, task, acceptanceCheck, userRequestedModel) {
const { task_name: workerTask } = await spawn_agent({
task_name: workerTaskName,
fork_turns: "none",
...(userRequestedModel ? { model: userRequestedModel } : {}),
message: `Task: ${task.name}
${task.prompt}
Acceptance check: ${acceptanceCheck}
Leaf workers never spawn subagents.
Return only raw JSON with exactly these keys: result, done, gap, evidence, confidence.
No Markdown fences.`
});
return workerTask;
}
async function collectWorkerResults(workerTasks) {
return collectCodexWorkerFinals(workerTasks);
}
const COLLECTION_TIMEOUT_MS = 120_000;
async function collectCodexWorkerFinals(workerTasks) {
const pendingWorkerTasks = new Set(workerTasks);
const resultsByWorkerTask = new Map();
const correctionRequested = new Set();
const rejectedFinalByWorkerTask = new Map();
const collectionDeadline = Date.now() + COLLECTION_TIMEOUT_MS;
const COLLECTION_TIMEOUT_DESCRIPTION = `${COLLECTION_TIMEOUT_MS / 1_000} seconds`;
while (pendingWorkerTasks.size > 0 && Date.now() < collectionDeadline) {
const remainingMs = collectionDeadline - Date.now();
if (remainingMs <= 0) break;
// Codex accepts a timeout_ms of at least 10 seconds, so the final wait can overshoot by at most that amount.
const waitMs = Math.max(10_000, Math.min(60_000, remainingMs));
await wait_agent({ timeout_ms: waitMs });
const { agents } = await list_agents({});
for (const agent of agents) {
const workerTask = agent.agent_name;
if (!pendingWorkerTasks.has(workerTask)) continue;
if (
typeof agent.agent_status !== "object" ||
typeof agent.agent_status.completed !== "string"
) {
continue;
}
const rawResponse = agent.agent_status.completed;
if (rejectedFinalByWorkerTask.get(workerTask) === rawResponse) continue;
const response = normalizeWorkerResponse(rawResponse);
if (!response) {
if (correctionRequested.has(workerTask)) {
resultsByWorkerTask.set(workerTask, {
result: "Invalid final result.",
done: false,
gap: `Worker ${workerTask} returned invalid JSON after one correction.`,
evidence: `The completed payload for canonical worker task ${workerTask} did not match WORKER_SCHEMA.`,
confidence: "low"
});
pendingWorkerTasks.delete(workerTask);
continue;
}
if (Date.now() >= collectionDeadline) continue;
await followup_task({
target: workerTask,
message: "Return only raw JSON with exactly these keys: result, done, gap, evidence, confidence. No Markdown fences."
});
correctionRequested.add(workerTask);
rejectedFinalByWorkerTask.set(workerTask, rawResponse);
continue;
}
resultsByWorkerTask.set(workerTask, response);
pendingWorkerTasks.delete(workerTask);
}
}
for (const workerTask of pendingWorkerTasks) {
await interrupt_agent({ target: workerTask });
resultsByWorkerTask.set(workerTask, {
result: "No final result returned.",
done: false,
gap: `Worker ${workerTask} did not return before the ${COLLECTION_TIMEOUT_DESCRIPTION} collection deadline.`,
evidence: `No final was delivered for canonical worker task ${workerTask} before the ${COLLECTION_TIMEOUT_DESCRIPTION} collection deadline.`,
confidence: "low",
});
}
return workerTasks.map((workerTask) => resultsByWorkerTask.get(workerTask));
}

Before dispatch, list_agents supplies every existing canonical task name. The controller selects the first unused rN component and combines it with the wave number and one run-wide monotonic dispatch index. Names remain unique across repeated invocations in the same Codex task and contain only lowercase letters, digits, and underscores; the human task name stays in message.

Codex's team limit is four slots including the controller. Current active entries use string statuses such as "running"; completed entries use an object with a string completed payload. Every wave counts active strings and any non-completed object status, while completed objects consume no slot. Pass userRequestedModel only when the user explicitly named a model. Otherwise omit it and inherit the orchestrator model. wait_agent signals a mailbox update, not a worker payload. The next list_agents snapshot exposes completed text as agent_status.completed, keyed by agent_name. Codex may also deliver a FINAL_ANSWER message directly into the controller conversation; treat its sender task name and payload identically. Each collector stops starting waits at its wall-clock deadline, interrupts every task still pending, and creates a low-confidence WORKER_SCHEMA result for every missing or invalid worker. Input order is preserved when results return to synthesis.

Codex workers inherit the orchestrator model unless the user explicitly requests an override. Their prompt includes the acceptance check and states that leaf workers never spawn.

Claude `dispatchWorker`:

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
109
Repository forks
7
7-day trend score
24

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/novusedge/palpatine/unlimited-power/badge)](https://verified-skill.com/skills/novusedge/palpatine/unlimited-power)

Something wrong with this skill or its page? Tell us.