Claude Code Agent Development
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
Queue processing with fresh context per phase. An agent skill from agenticnotetaking/arscontexta.
$ npx skills add agenticnotetaking/arscontexta --skill ralph -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install agenticnotetaking/arscontexta ralph --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/agenticnotetaking/arscontexta.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill-sources/ralph .claude/skills/ralph && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ralph" agent skill from https://github.com/agenticnotetaking/arscontexta/tree/main/skill-sources/ralph into .claude/skills/ralph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/agenticnotetaking/arscontexta/tree/main/skill-sources/ralphType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add agenticnotetaking/arscontexta --skill ralph -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install agenticnotetaking/arscontexta ralph --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agenticnotetaking/arscontexta.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skill-sources/ralph .agents/skills/ralph && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ralph" agent skill from https://github.com/agenticnotetaking/arscontexta/tree/main/skill-sources/ralph into .agents/skills/ralph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add agenticnotetaking/arscontexta --skill ralph -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install agenticnotetaking/arscontexta ralph --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agenticnotetaking/arscontexta.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skill-sources/ralph .cursor/skills/ralph && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ralph" agent skill from https://github.com/agenticnotetaking/arscontexta/tree/main/skill-sources/ralph into .cursor/skills/ralph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/agenticnotetaking/arscontexta.git --path skill-sources/ralph--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add agenticnotetaking/arscontexta --skill ralph -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install agenticnotetaking/arscontexta ralph --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agenticnotetaking/arscontexta.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skill-sources/ralph .gemini/skills/ralph && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ralph" agent skill from https://github.com/agenticnotetaking/arscontexta/tree/main/skill-sources/ralph into .gemini/skills/ralph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install agenticnotetaking/arscontexta ralphInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add agenticnotetaking/arscontexta --skill ralph -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/agenticnotetaking/arscontexta.git skills-src && mkdir -p .github/skills && cp -r skills-src/skill-sources/ralph .github/skills/ralph && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ralph" agent skill from https://github.com/agenticnotetaking/arscontexta/tree/main/skill-sources/ralph into .github/skills/ralph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add agenticnotetaking/arscontexta --skill ralph -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install agenticnotetaking/arscontexta ralph --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agenticnotetaking/arscontexta.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skill-sources/ralph .opencode/skills/ralph && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ralph" agent skill from https://github.com/agenticnotetaking/arscontexta/tree/main/skill-sources/ralph into .opencode/skills/ralph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ralphQueue processing with fresh context per phase. An agent skill from agenticnotetaking/arscontexta.
Ralph is an agent skill from agenticnotetaking/arscontexta. 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".
Its SKILL.md is about 5.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.json`).
It sits in Agent Workflows, covering Subagents. The repository describes itself as: Claude Code plugin that generates individualized knowledge systems from conversation. You describe how you think and work, have a conversation and get a complete second brain as… The licence is MIT.
Read from SKILL.md and the folder at commit 2acfd5c. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditGrepGlobBashTaskFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ralph loads about 5.3k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 1,780 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Grep, Glob, Bash, TaskAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from agenticnotetaking/arscontexta at commit 2acfd5c, republished under its MIT licence (© agenticnotetaking). 1,780 words, ~5,277 tokens.
.claude/skills/ralph/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Target: $ARGUMENTS
Parse arguments:
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.
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:
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.
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:
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.
Read the queue file. Check these locations in order:
ops/queue.yamlops/queue/queue.yamlops/queue/queue.jsonParse 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."
Build a list of actionable tasks — tasks where status == "pending". Order by position in the tasks array (first = highest priority).
Apply filters:
--batch specified: keep only tasks where batch matches--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 -> verifyenrichment: enrich -> reflect -> reweave -> verifyShow 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 spawnsIf --parallel is set, skip to Step 6 instead.
Process up to N tasks (default 1). For each iteration:
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}Construct a prompt based on current_phase. Every prompt MUST include:
file field)--handoffONE PHASE ONLY constraintPhase-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 OLDER {DOMAIN:note_plural} AND sibling claims
that should reference this {DOMAIN:note} but don't.
Add inline links FROM older {DOMAIN:note_plural} TO this {DOMAIN:note}.
ONE PHASE ONLY. Do NOT run verify.For verify phase:
Read the task file at ops/queue/{FILE} for context.
You are processing task {ID} from the work queue.
Phase: verify | Target: {TARGET}
Run /verify --handoff on: {TARGET}
Combined verification: recite (cold-read prediction test), validate (schema check),
review (per-note health).
IMPORTANT: Recite runs FIRST — read only title+description, predict content,
THEN read full {DOMAIN:note}.
Final phase for this claim. ONE PHASE ONLY.Call the Task tool with the constructed prompt:
Task(
prompt = {the constructed prompt from 4b},
description = "{current_phase}: {short target}" (5 words max)
)REPEAT: You MUST call the Task tool here. Do NOT execute the prompt yourself. Do NOT "optimize" by running the task inline. The Task tool call is the ONLY acceptable action at this step.
Wait for the subagent to complete and capture its return value.
When the subagent returns:
=== RALPH HANDOFF and === END HANDOFF === markersAfter evaluating the return, advance the task to the next phase.
Phase progression logic:
Look up phase_order from the queue header to determine the next phase. Find current_phase in the array. If there is a next phase, advance. If it is the last phase, mark done.
If NOT the last phase — advance to next:
current_phase to the next phase in the sequencecompleted_phasesIf the last phase (verify) — mark task done:
status: donecompleted to current UTC timestampcurrent_phase to nullcompleted_phasesFor extract tasks ONLY: Re-read the queue after marking done. The reduce skill writes new task entries (1 entry per claim/enrichment with current_phase/completed_phases) to the queue during execution. The lead must pick these up for subsequent iterations.
=== Task {id} complete ({i}/{N}) ===
Phase: {current_phase} -> {next_phase or "done"}If learnings were captured, show a brief summary. If more unblocked tasks exist, show the next one.
Before the next iteration, re-read the queue and re-filter tasks. Phase advancement may have changed eligibility (e.g., after completing a create phase, the task is now at reflect — if filtering by --type reflect, it becomes eligible).
After advancing a task to "done" (Step 4e), check if ALL tasks in that batch now have status: "done". If yes and the batch has 2 or more completed claims:
Collect all note paths from completed batch tasks. For each claim task with status: "done", read the task file's ## Create section to find the created note path.
Spawn ONE subagent for cross-connect validation:
Task(
prompt = "You are running post-batch cross-connect validation for batch '{BATCH}'.
Notes created in this batch:
{list of ALL note titles + paths from completed batch tasks}
Verify sibling connections exist between batch notes. Add any that were missed
because sibling notes did not exist yet when the earlier claim's reflect ran.
Check backward link gaps. Output RALPH HANDOFF block when done.",
description = "cross-connect: batch {BATCH}"
)Skip if: batch has only 1 claim (no siblings) or tasks from the batch are still pending.
When --parallel flag is present, SKIP Step 4 entirely and use this section instead.
Incompatible flags: --parallel cannot be combined with --type. Parallel mode processes claims end-to-end (all phases). If --type is also set, report an error:
ERROR: --parallel and --type are incompatible. Parallel processes full claim pipelines, not individual phases.
Use serial mode for per-phase filtering: /ralph N --type reflectTwo-phase design: Workers receive sibling claim info upfront so they can link proactively. Phase B validates and catches any gaps.
Ralph Lead (you) — orchestration only
|
+-- PHASE A: PARALLEL CLAIM PROCESSING (concurrent)
| +-- worker-001: all 4 phases for claim 001 (with sibling awareness)
| +-- worker-002: all 4 phases for claim 002 (with sibling awareness)
| +-- worker-003: all 4 phases for claim 003 (with sibling awareness)
| +-- ...up to 5 concurrent workers
|
+-- [semantic search index sync]
|
+-- PHASE B: CROSS-CONNECT VALIDATION (one subagent, one pass)
| +-- validates sibling links, adds any that workers missed
|
+-- CLEANUP + FINAL REPORTWhy two phases? Workers have sibling awareness (claim titles in spawn prompt) and link proactively during reflect/reweave. But timing means some sibling notes may not exist yet during a worker's reflect phase. Phase B runs a single cross-connect pass after all notes exist.
From the filtered queue, find pending claims. A claim is parallelizable when its status == "pending". Cap at 5 concurrent workers (or N, whichever is smaller).
Report:
=== Parallel Mode ===
Parallelizable claims: {count}
Max concurrent workers: {min(count, N, 5)}For each parallelizable claim (up to N requested, max 5 concurrent):
Build the worker prompt with sibling awareness:
You are a claim worker processing claim "{TARGET}" from batch "{BATCH}".
Claim ID: {CLAIM_ID}
Task file: ops/queue/{FILE}
Current phase: {CURRENT_PHASE}
Completed phases: {COMPLETED_PHASES}
SIBLING CLAIMS IN THIS BATCH (link to these where genuine connections exist):
{for each other claim in the batch:}
- "{SIBLING_TARGET}" (task file: ops/queue/{SIBLING_FILE})
{end for}
During REFLECT and REWEAVE, check if your claim genuinely connects to any sibling.
If a sibling {DOMAIN:note} exists in {DOMAIN:notes}/, link to it inline where the
connection is real. If it does not exist yet (still being created), skip —
cross-connect will catch it after.
Read the task file for full context. Execute phases from current_phase onwards.
If completed_phases is not empty, skip those phases (resumption mode).
When complete, update the queue entry to status "done" and report the created
{DOMAIN:note} title, path, and claim ID. The lead needs this for cross-connect.Spawn via Task tool:
Task(
prompt = {the constructed prompt},
description = "claim: {short target}" (5 words max)
)Spawn workers in PARALLEL — launch all Task tool calls in a single message, not sequentially.
Wait for worker completions. As workers complete:
Collect all created notes — maintain a list of {note_title, note_path} from worker completion messages. You need this for the cross-connect validation phase.
Completion gate: Phase B CANNOT start until ALL spawned workers have reported back (either success or error). Track completions:
Workers spawned: {total_spawned}
Workers completed: {completion_count}
Workers with errors: {error_count}
Phase B ready: {completion_count + error_count == total_spawned}Do NOT proceed to Phase B while any worker is still running.
Light validation pass. Workers had sibling awareness during Phase A and linked proactively. This phase validates their work and catches gaps.
Skip if only 1 claim was processed (no siblings to cross-connect).
Spawn ONE subagent for cross-connect validation:
Task(
prompt = "You are running post-batch cross-connect validation for batch '{BATCH}'.
Notes created in this batch:
{list of ALL newly created note titles with paths from Phase A}
Verify sibling connections exist between these notes. Add any connections that
workers missed because sibling notes did not exist yet when a worker's reflect ran.
Check backward link gaps. Output RALPH HANDOFF block when done.",
description = "cross-connect: batch {BATCH}"
)Parse the handoff block, capture learnings.
Report after Phase B:
=== Cross-Connect Validation Complete ===
Sibling connections validated: {count}
Missing connections added: {count}After Phase B completes (or after Phase A if cross-connect was skipped):
After all iterations (or when no unblocked tasks remain):
--=={ ralph }==--
Processed: {count} tasks
{breakdown by phase type}
Subagents spawned: {count} (MUST equal tasks processed)
Learnings captured:
{list any friction, surprises, methodology insights, or "None"}
Queue state:
Pending: {count}
Done: {count}
Phase distribution: {create: N, reflect: N, reweave: N, verify: N}
Next steps:
{if more pending tasks}: Run /ralph {remaining} to continue
{if batch complete}: Run /archive-batch {batch-id}
{if queue empty}: All tasks processedVerification: The "Subagents spawned" count MUST equal "Tasks processed." If it does not, the lead executed tasks inline — this is a process violation. Report it as an error.
If --handoff flag was set, also output:
=== RALPH HANDOFF: orchestration ===
Target: queue processing
Work Done:
- Processed {count} tasks: {list of task IDs}
- Types: {breakdown by type}
Learnings:
- [Friction]: {description} | NONE
- [Surprise]: {description} | NONE
- [Methodology]: {description} | NONE
- [Process gap]: {description} | NONE
Queue Updates:
- Marked done: {list of completed task IDs}
=== END HANDOFF ===Subagent crash mid-phase: The queue still shows current_phase at the failed phase. The task file confirms the corresponding section is empty. Re-running /ralph picks it up automatically — the task is still pending at that phase.
Queue corruption: If the queue file is malformed, report the error and stop. Do NOT attempt to fix it automatically.
All tasks blocked: Report which tasks are blocked and why. Suggest remediation.
Empty queue: Report "Queue is empty. Use /seed or /pipeline to add sources."
Every task MUST be processed via Task tool. If the lead detects it executed a task inline, log this as an error and flag it in the final report.
Every subagent SHOULD return a RALPH HANDOFF block. If missing: log warning, mark task done, continue.
For extract tasks: if zero claims extracted, log as an observation. Do NOT retry automatically.
After each phase, the task file's corresponding section (Create, Reflect, Reweave, Verify) should be filled. If empty after subagent completes, log warning.
Never:
Always:
© agenticnotetaking, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skill-sources/ralph of agenticnotetaking/arscontexta.
Open the folder on GitHubat commit 2acfd5c
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in agenticnotetaking/arscontexta, which our catalogue first saw on October 7, 2026.
Ralph next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ralph this skillagenticnotetaking/arscontexta | 3.5k | 1 repos | ~5.3k | Automated safety check: Notes | MIT | |
| Claude Code Agent Developmentanthropics/claude-plugins-official | 37k | 8 repos | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Subagent Driven DevelopmentAsvarox/allkaraoke | 261 | 37 repos | ~1.2k | Automated safety check: Pass | None | |
| Dispatching Parallel Agentsultralisp/ultralisp | 258 | 40 repos | ~1.5k | Automated safety check: Pass | None | |
| Paseo Advisor Second Opiniongetpaseo/paseo | 20k | 1 repos | ~756 | Automated safety check: Pass | Custom licence | |
| Task Observerrebelytics/one-skill-to-rule-them-all | 3.2k | 1 repos | ~12k | Automated safety check: Pass | CC-BY-4.0 |
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
Asvarox/allkaraoke
A skill your agent uses when executing implementation plans with independent tasks in the current session
ultralisp/ultralisp
A skill your agent uses when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
getpaseo/paseo
Launches one separate agent through Paseo to give a second opinion on the current task, with a self-contained briefing and no permission to edit files.
rebelytics/one-skill-to-rule-them-all
Monitors task execution for skill improvement opportunities.
openobserve/openobserve
Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.
agenticnotetaking/arscontexta
Interactive knowledge graph analysis. An agent skill from agenticnotetaking/arscontexta.
agenticnotetaking/arscontexta
Research a topic and grow your knowledge graph. An agent skill from agenticnotetaking/arscontexta.
agenticnotetaking/arscontexta
Get research-backed architecture advice for your knowledge system.
agenticnotetaking/arscontexta
Show vault statistics and knowledge graph metrics. An agent skill from agenticnotetaking/arscontexta.
agenticnotetaking/arscontexta
Contextual guidance and command discovery. An agent skill from agenticnotetaking/arscontexta.
agenticnotetaking/arscontexta
Surface the most valuable next action by combining task stack, queue state, inbox pressure, health, and goals.
Categories
Queue processing with fresh context per phase. An agent skill from agenticnotetaking/arscontexta. Ralph is an agent skill from agenticnotetaking/arscontexta. Queue processing with fresh context per phase.
Ralph fits situations like: run pipeline tasks; tasks that involve Subagents.
Run `npx skills add agenticnotetaking/arscontexta --skill ralph -a claude-code`. Or copy the skill folder (skill-sources/ralph in agenticnotetaking/arscontexta) into .claude/skills/ralph in your project. Claude Code loads it when a task matches its description.
Run `npx skills add agenticnotetaking/arscontexta --skill ralph -a codex`. Or copy the skill folder (skill-sources/ralph in agenticnotetaking/arscontexta) into .agents/skills/ralph in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add agenticnotetaking/arscontexta --skill ralph -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ralph, .gemini/skills/ralph, .github/skills/ralph and .opencode/skills/ralph in your project.
SKILL.md names no scripts, command-line tools or credentials: Ralph is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, Edit, Grep, Glob, Bash, Task.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Ralph is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.3k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ralph: Claude Code Agent Development (anthropics/claude-plugins-official, 37k stars), Subagent Driven Development (Asvarox/allkaraoke, 261 stars), Dispatching Parallel Agents (ultralisp/ultralisp, 258 stars) and Paseo Advisor Second Opinion (getpaseo/paseo, 20k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
agenticnotetaking (a GitHub organization) maintains it in agenticnotetaking/arscontexta, which has 3,492 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on February 24, 2026.
Source: agenticnotetaking/arscontexta on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.