Receber por email
← Voltar para o catálogo

ralph

Queue processing with fresh context per phase. Processes N tasks from the queue, spawning isolated subagents to prevent context contamination. Supports serial, parallel, batch filter, and dry run modes. Triggers on "/ralph", "/ralph N", "process queue", "run pipeline tasks".

3.4kestrelas
Atualizado há 8 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add agenticnotetaking/arscontexta

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/ralph-agenticnotetaking/svg)](https://www.skillteca.com.br/skills/ralph-agenticnotetaking)

Skills relacionadas

Ver todas de Produtividade →

Alerta por categoria

Receba novas skills de Produtividade toda segunda

1 email curto, só com as skills novas de Produtividade. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

EXECUTE NOW

Target: $ARGUMENTS

Parse arguments:

  • N (required unless --dry-run): number of tasks to process
  • --parallel: concurrent claim workers (max 5) + cross-connect validation
  • --batch [id]: process only tasks from specific batch
  • --type [type]: process only tasks at a specific phase (extract, create, reflect, reweave, verify, enrich)
  • --dry-run: show what would execute without running
  • --handoff: output structured RALPH HANDOFF block at end (for pipeline chaining)

Step 0: Read Vocabulary

Read ops/derivation-manifest.md (or fall back to ops/derivation.md) for domain vocabulary mapping. All output must use domain-native terms. If neither file exists, use universal terms.

START NOW. Process queue tasks.

MANDATORY CONSTRAINT: SUBAGENT SPAWNING IS NOT OPTIONAL

You MUST use the Task tool to spawn a subagent for EVERY task. No exceptions.

This is not a suggestion. This is not an optimization you can skip for "simple" tasks. The entire architecture depends on fresh context isolation per phase. Executing tasks inline in the lead session:

  • Contaminates context (later tasks run on degraded attention)
  • Skips the handoff protocol (learnings are not captured)
  • Violates the ralph pattern (one phase per context window)

If you catch yourself about to execute a task directly instead of spawning a subagent, STOP. Call the Task tool. Every time. For every task. Including create tasks. Including "simple" tasks.

The lead session's ONLY job is: read queue, spawn subagent, evaluate return, update queue, repeat.

Phase Configuration

Each phase maps to specific Task tool parameters. Use these EXACTLY when spawning subagents.

| Phase | Skill Invoked | Purpose | |-------|---------------|---------| | extract | /reduce | Extract claims from source material | | create | (inline note creation) | Write the {DOMAIN:note} file | | enrich | /enrich | Add content to existing {DOMAIN:note} | | reflect | /reflect | Find connections, update {DOMAIN:topic map}s | | reweave | /reweave | Update older {DOMAIN:note_plural} with new connections | | verify | /verify | Description quality + schema + health checks |

All phases use the same subagent configuration:

  • subagent_type: knowledge-worker (if available) or default
  • mode: dontAsk

Subagents inherit the session model. Users running opus get opus quality on processing phases. Users running sonnet get sonnet everywhere. Fresh context per phase already ensures efficiency — every phase gets full capability in the smart zone.

Step 1: Read Queue State

Read the queue file. Check these locations in order:

  1. ops/queue.yaml
  2. ops/queue/queue.yaml
  3. ops/queue/queue.json

Parse the queue. Identify ALL pending tasks.

Queue structure (v2 schema):

The queue uses current_phase and completed_phases per task entry:

phase_order:
  claim: [create, reflect, reweave, verify]
  enrichment: [enrich, reflect, reweave, verify]

tasks:
  - id: source-name
    type: extract
    status: pending
    source: ops/queue/archive/2026-01-30-source/source.md
    file: source-name.md
    created: "2026-01-30T10:00:00Z"

  - id: claim-010
    type: claim
    status: pending
    target: "claim title here"
    batch: source-name
    file: source-name-010.md
    current_phase: reflect
    completed_phases: [create]

If the queue file does not exist or is empty, report: "Queue is empty. Use /seed or /pipeline to add sources."

Step 2: Filter Tasks

Build a list of actionable tasks — tasks where status == "pending". Order by position in the tasks array (first = highest priority).

Apply filters:

  • If --batch specified: keep only tasks where batch matches
  • If --type specified: keep only tasks where current_phase matches (e.g., --type reflect finds tasks whose current_phase is "reflect")

The phase_order header defines the phase sequence:

  • claim: create -> reflect -> reweave -> verify
  • enrichment: enrich -> reflect -> reweave -> verify

Step 3: If --dry-run, Report and Stop

Show this and STOP (do not process):

--=={ ralph dry-run }==--

Queue: X total tasks (Y pending, Z done)

Phase distribution:
  Claims:       {create: N, reflect: N, reweave: N, verify: N}
  Enrichments:  {enrich: N, reflect: N, reweave: N, verify: N}

Next tasks to process:
1. {id} — phase: {current_phase} — {target}
2. {id} — phase: {current_phase} — {target}
...

Estimated: ~{N} subagent spawns

Step 4: Process Loop (SERIAL MODE)

If --parallel is set, skip to Step 6 instead.

Process up to N tasks (default 1). For each iteration:

4a. Select Next Task

Pick the first pending task from the filtered list. Read its metadata: id, type, file, target, batch, current_phase, completed_phases.

The current_phase determines which skill to invoke.

Report:

=== Processing task {i}/{N}: {id} — phase: {current_phase} ===
Target: {target}
File: {file}

4b. Build Subagent Prompt

Construct a prompt based on current_phase. Every prompt MUST include:

  • Reference to the task file path (from queue's file field)
  • The task identity (id, current_phase, target)
  • The skill to invoke with --handoff
  • ONE PHASE ONLY constraint
  • Instruction to output RALPH HANDOFF block

Phase-specific prompts:

For extract phase (type=extract tasks only):

Read the task file at ops/queue/{FILE} for context.

You are processing task {ID} from the work queue.
Phase: extract | Target: {TARGET}

Run /reduce --handoff on the source file referenced in the task file.
After extraction: create per-claim task files, update the queue with new entries
(1 entry per claim with current_phase/completed_phases), output RALPH HANDOFF.
ONE PHASE ONLY. Do NOT run reflect or other phases.

For create phase:

Read the task file at ops/queue/{FILE} for context.

You are processing task {ID} from the work queue.
Phase: create | Target claim: {TARGET}

Create a {DOMAIN:note} for this claim in {DOMAIN:notes}/[claim as sentence].md
Follow note design patterns:
- YAML frontmatter with description (adds info beyond title), topics
- Body: 150-400 words showing reasoning with connective words
- Footer: Source (wiki link), Relevant Notes (with context), Topics
Update the task file's ## Create section.
ONE PHASE ONLY. Do NOT run reflect.

For enrich phase:

Read the task file at ops/queue/{FILE} for context.

You are processing task {ID} from the work queue.
Phase: enrich | Target: {TARGET}

Run /enrich --handoff using the task file for context.
The task file specifies which existing {DOMAIN:note} to enrich and what to add.
ONE PHASE ONLY. Do NOT run reflect.

For reflect phase:

Build sibling list: Query the queue for other claims in the same batch where completed_phases includes "create" (note already exists). Format as wiki links.

Read the task file at ops/queue/{FILE} for context.

You are processing task {ID} from the work queue.
Phase: reflect | Target: {TARGET}

OTHER CLAIMS FROM THIS BATCH (check connections to these alongside regular discovery):
{for each sibling in batch where completed_phases includes "create":}
- [[{SIBLING_TARGET}]]
{end for, or "None yet" if this is the first claim}

Run /reflect --handoff on: {TARGET}
Use dual discovery: {DOMAIN:topic map} exploration AND semantic search.
Add inline links where genuine connections exist — including sibling claims listed above.
Update relevant {DOMAIN:topic map} with this {DOMAIN:note}.
ONE PHASE ONLY. Do NOT run reweave.

For reweave phase:

Same sibling list as reflect (re-query queue for freshest state):

Read the task file at ops/queue/{FILE} for context.

You are processing task {ID} from the work queue.
Phase: reweave | Target: {TARGET}

OTHER CLAIMS FROM THIS BATCH:
{for each sibling in batch where completed_phases includes "create":}
- [[{SIBLING_TARGET}]]
{end for}

Run /reweave --handoff for: {TARGET}
This is the BACKWARD pass. Find 
Compartilhar X LinkedIn