Install any skill in seconds. Free to start, no credit card required.
Get Started Free →human-agent-society/coral-extend
Add a new component to the CORAL framework itself — a new agent runtime under `coral/agent/builtin/` (claude_code/codex/cursor_agent style), a new CLI command in `coral/cli/`, a new bundled skill or subagent template under `coral/template/skills/` or `coral/template/agents/`, a new hook in `coral/hooks/`, a new field in `coral/config.py`, or a framework-level extension to the grader stack under `coral/grader/`. NOT for writing a per-task grader or adding an example task — use `coral-new-task` fo
Passed 23 of 25 test cases with the skill, and 8 of 25 without it.
and 18 more in the full report
15 fixed8 passed either way2 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 15 test cases the skill fixed. Same model, same prompt, with and without the skill.
Which module under coral/cli/ houses subcommands related to task authoring such as initialization and validation?
| Checked | Without skill | With skill |
|---|---|---|
| Identifies coral/cli/author.py as the module for task author subcommands. | Missed | Passed |
The instructions your model reads when the skill loads.
For day-to-day debug / reproduce loops see the sibling coral-debug skill. For creating a new examples/<task>/ (seed + task.yaml + grader package) see coral-new-task. This skill covers adding new components to the CORAL package itself.
If you're writing a grader for a specific task, use coral-new-task. This section is only for changes to the grader framework under coral/grader/:
TaskGrader (coral/grader/task_grader.py) — make sure they're useful to multiple existing example graders before adding.GraderInterface implementations (coral/grader/protocol.py / base.py) — the bar is high; the existing protocol covers everything we currently need.coral/grader/daemon.py) — concurrency, queue caps, worktree isolation, retry policy. Cover with tests/test_grader_daemon.py.coral/grader/builtin/ — function_grader.py is the only one today; not wired through task.yaml. New built-ins should justify why a TaskGrader subclass per task isn't enough.Adding a new runtime (e.g. another coding-agent CLI) means three small files plus a registry entry.
coral/agent/builtin/<name>.py and subclass AgentRuntime (coral/agent/runtime.py). Existing runtimes are the canonical reference — claude_code.py is the most complete; codex.py and cursor_agent.py are smaller and easier to mimic.coral/agent/registry.py:
_RUNTIMES["my_runtime"] = MyRuntime
_ALIASES["mine"] = "my_runtime"
_DEFAULT_MODELS["my_runtime"] = "default-model-id"
.claude for Claude Code, .codex for Codex, etc.). The worktree symlink uses this; pass it through shared_dir so generate_coral_md(...) renders the right paths.cursor_agent.json, opencode.json, gateway port), follow the opencode pattern: emit a per-agent config file inside the worktree at startup.tests/test_<runtime>.py modeled on tests/test_cursor_agent.py.Reference recent additions: PR #79 (cursor_agent), commit f6f266e (codex web_search config fix).
CLI is an old-school argparse single-file dispatcher.
coral/cli/__init__.py::main(). Match the existing style — _HelpOnErrorParser, an epilog with Examples:, _CommandHelpFormatter. Add the new command name to _VISIBLE_COMMANDS so "did you mean?" suggestions work.cmd_<name>(args: argparse.Namespace) -> None in the most-fitting module under coral/cli/:
start.py — agent lifecycle (start/resume/stop/status)query.py — read-only inspection (log/show/notes/skills/runs)eval.py — agent-side commands that mutate the worktree (eval/wait/diff/revert/checkout)heartbeat.py — heartbeat configurationtest cases passed, vs 8 / 25 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.