본문으로 건너뛰기
cccskills
무료GitHub에 공개

ralph

Run repeated Ouroboros execution and improvement cycles as a background job, starting from a Seed specification or continuing an existing lineage. The loop stops on a quality check pass, convergence, cancellation, or the generation limit, and reports the outcome.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

MCP-owned Ralph loop around background evolve_step jobs

설치 방법 보기

이럴 때 유용합니다

  • Starting repeated improvement from a Seed specification
  • Continuing an existing improvement lineage
  • Following meaningful background progress
  • Reviewing why an improvement loop stopped

포함된 파일(1)

  • SKILL.md8.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

/ouroboros:ralph

MCP-owned Ralph loop around background evolve_step jobs. "The boulder never stops."

Usage

ooo ralph --lineage-id <lineage_id>
/ouroboros:ralph --lineage-id <lineage_id>

The ouroboros_ralph tool owns the loop (do not reimplement it): one background job runs repeated evolve_step generations until QA pass, convergence, a terminal evolution action, cancellation, or max_generations. Router dispatch reads only the named --lineage-id option, never trailing text.

Instructions

Loading MCP tools (deferred-schema guard)

Ouroboros tools may be deferred, and a schema loaded on one turn can unload by the next. Immediately before each ouroboros_* call, load it with the active runtime's tool-discovery capability: "+ouroboros ralph job" for ouroboros_ralph, ouroboros_job_wait, ouroboros_job_status, ouroboros_job_result, and ouroboros_cancel_job; "+ouroboros session signal" for ouroboros_session_signal_targets and ouroboros_session_signal; "+ouroboros conductor decision" for ouroboros_record_conductor_decision. A call whose schema is not loaded fails with "Invalid tool parameters". If the tool is already callable, discovery is a no-op and an empty result is expected. If the tools are genuinely absent, stop and tell the user that Ralph requires the Ouroboros MCP runtime.

1. Prepare lineage input

  • Continue a lineage: when the user gives an existing lineage_id and wants to continue it, reuse it and omit seed_content unless they supply an updated Seed.
  • New run from Seed YAML: use it as seed_content with a fresh lineage_id such as ralph-<short-slug>-<uuid>. Never reuse a Seed, interview, or session id as the lineage id, so separate runs over one Seed do not collide.
  • Plain natural-language request: never pass raw text as seed_content or freehand Seed YAML. Run ooo interview and ooo seed first (or reuse a validated Seed in context), then start with a fresh lineage_id. Without inputs the tool returns input guidance instead of a job.

2. Start Ralph

Call ouroboros_ralph with lineage_id, seed_content (generation 1 of a new lineage), execute (default true), parallel (default true), skip_qa (default false), project_dir when known, and max_generations (default 10, also the hard max; lower it only on request).

3. Handle the start response

  • Job started (response.meta.job_id present): keep response.meta.cursor and report:

    [Ralph] Started background loop: <job_id>
    Lineage: <lineage_id>
    Live view: <dashboard_url, or `ouroboros tui open`>
    
    A read-only observer will post meaningful progress, attention, and terminal
    events here. This conversation remains available for other safe work.
    
  • Observer handoff: if response.meta.job_observer is missing, recover it from the final <!-- ouroboros-job-observer-v1 base64 ... --> content sentinel; fail closed unless it passes canonical v1 validation and its job identity matches the visible start receipt, and use it only as an identity anchor, never to reconstruct tools or arguments. When the host supports an independent child session, spawn exactly one read-only observer and pass the contract unchanged. The observer exclusively owns job wait/result calls and the cursor; the main session keeps user conversation, explicit on-demand status, and user-requested cancellation. The main session must not poll the same job while the observer is active. It may refine requirements, do read-only review, or work in an unrelated isolated worktree; check active-worker conflicts before writing to Ralph's workspace.

    • A wait call or a parent job-status poll is not a spawn; claim no observer until a live child ID/path returns. The contract's host_lifecycle and the runtime's orchestrate_subagents guidance name the concrete spawn and wait mechanics. If the runtime cannot wake a parent turn that already ended when the child posts (a child message only queues for the parent), keep the parent turn open with the host's child-wait primitive in waits of at most 60 seconds while the observer is active. Relay meaningful updates and wait again until terminal.
    • User input may interrupt the wait; handle it and resume waiting unless the user asks to stop live observation or replaces the request. Then end only the relay loop, keep the durable job running, and offer next-turn or explicit-status catch-up. Use the same fallback, instead of waiting indefinitely, if the observer child fails, is cancelled, or exits before a terminal summary. The relay loop must not poll the Ouroboros job or take cursor ownership.
    • If spawn fails, promise no live relays: the detached worker continues after the stdio turn, and the main session catches up from durable events on the next interaction or explicit status request.
  • Plugin delegation (response.meta.status == "delegated_to_plugin", job_id is None): a child session owns the loop. Never call job tools without a job id; treat the child session result as the terminal surface and summarize its completion/error state and lineage id.

4. Monitor (polling owner only)

The observer is the default owner. Run this loop in the main session only when no independent child session exists and the user explicitly asked for live watching; otherwise catch up on the next turn. Never run both:

  • ouroboros_job_wait(job_id, cursor, timeout_seconds=120, stream="linked", wait_for="attention_or_ac_change") for long polling; after every wait/status response, update cursor = response.meta.cursor
  • ouroboros_job_status(job_id) for a quick status check
  • ouroboros_job_result(job_id) when the job is terminal
  • ouroboros_cancel_job(job_id) if the user says stop/cancel

Relay rules: 1-2 lines per change; surface attention_required and rejected or uncertain delivery immediately; distinguish Synapse queued from runtime-proven applied; never forward heartbeats, raw tool output, commands, or model reasoning. Report run configuration, AC count and parallel levels, first scheduled ACs, and verified AC completion; say "currently running with", since later generations may switch model or harness. When lineage.generation.started carries ac_focus, report what the generation is redoing from active_ac_descriptions and how many ACs stay frozen (for example "Gen 7: reworking 2/5 ACs, 3 frozen on prior PASS evidence"); if it is absent or every AC is active, say the full AC graph is running. Never quote verify commands or expected outputs.

When the user asks a live AC a read-only question or adds intent, call ouroboros_session_signal_targets for the observed execution and pick the relevant AC without asking for internal IDs. Use mode="inform" for questions and assurance, and omit fallback_mode in that mode. For implementation refinement use contract_effect="additive", source="user", mode="redirect", and explicit fallback_mode="after_turn" with the exact discovered guards, sent via ouroboros_session_signal. Shared goal, AC, constraint, or non-goal changes require an approved shared successor.

5. On termination

The polling owner fetches the job result, then:

  • Success / convergence: summarize the final generation, QA verdict, and any worktree_path / worktree_branch. A Ralph lineage_id is not an execution session_id: offer ooo evaluate <session_id> only when a real execution session id is available from a separate run.
  • Max generations / failure: summarize the stop reason and suggest ooo unstuck, ooo interview, or a narrower Ralph retry.
  • Cancelled: confirm and keep the job id for later inspection.

Active Conductor decision policy

For attention_required, use at most one short-lived read-only verifier. If the host has no verifier primitive, surface the evidence and do not mutate. Otherwise VERIFY → DECIDE from recommended_host_actions → LOG selected with ouroboros_record_conductor_decision → ACT only a menu-listed registered tool → LOG exactly one completed, failed, or declined outcome. Ralph may apply a conductor directive only to the first and sole bounded successor generation (max_generations=1), and only when it is deterministic and non-relaxing. Never silently retry or weaken the approved shared contract.

These are English canonical host instructions. Render them, and every relay, naturally in the user's conversation language.

RFC #1392 State Breadcrumb Footer

End the final response with exactly one line ◆ <current state> → next: <recommended action>. Derive the state from live session state via ouroboros_session_status when available, otherwise from this skill's actual outcome. Never use a linear Step N of M footer; when the next step is a real choice, list 2-3 options.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

auto

무료

Turn a multi-file development task or technology migration into a specification with acceptance criteria, then launch background implementation and verification. The workflow clarifies missing requirements, reviews the specification, and tracks progress and blockers through linked jobs.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Implementing a feature across multiple files
  • Migrating a framework or programming language
  • Replacing authentication, storage, or API layers
Q00/ouroboros6.2천2026년 10월 19일 업데이트

Register and search existing Git repositories and worktrees, then choose which projects Ouroboros interviews use as context. You can also generate a configuration containing verified build, test, and other check commands for the evaluation workflow.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Selecting existing projects as interview context
  • Finding registered repositories by topic
  • Rescanning after repositories are added or moved
Q00/ouroboros6.2천2026년 10월 19일 업데이트

cancel

무료

Stop stuck Ouroboros executions or background jobs by ID, or cancel all running and paused executions in the current project. It reports whether cancellation is complete or has been requested, with guidance for checking the final status.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Stopping a stuck execution
  • Cancelling a background job by ID
  • Cancelling all active executions in a project
Q00/ouroboros6.2천2026년 10월 19일 업데이트

evaluate

무료

Verify finished work against acceptance criteria using executable checks and a review of whether each requirement is met. Multiple models can review uncertain cases, and rejected work can enter an automated repair loop when the required Seed is available.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Checking finished work against its specification
  • Verifying observed behavior against acceptance criteria
  • Requesting multiple model reviews for uncertain results
Q00/ouroboros6.2천2026년 10월 19일 업데이트

evolve

무료

Start and monitor an Ouroboros development loop that revises project concepts and acceptance criteria, the conditions for judging completion. Run and evaluate successive generations, focus revisions on failed criteria, inspect progress, or rewind to an earlier generation.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Refining a project through repeated execution and evaluation
  • Inspecting progress across generations
  • Rewinding a development loop to an earlier generation
Q00/ouroboros6.2천2026년 10월 19일 업데이트

interview

무료

Turn a vague development idea into clear goals, constraints, and acceptance criteria through a guided interview. It checks unresolved decisions and confirms the agreed goal before moving toward a Seed, the requirements document used by Ouroboros.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Clarifying a vague idea before development
  • Defining completion criteria for a new feature
  • Agreeing on scope and constraints
Q00/ouroboros6.2천2026년 10월 19일 업데이트

Q00의 스킬 모두 보기

이 스킬의 문제 신고