Tasks
RafaelGB/Obsidian-ZettelFlow
Stage 3 of the SDD pipeline — turn a ZettelFlow plan (in a GitHub issue comment) into an ordered TDD task checklist posted as a second issue comment.
A skill your agent uses when an approved plan and task list exist and it is time to turn them into working, tested code — the SDD phase after analyze and before verify.
$ npx skills add ericrisco/rsc-harness --skill implement -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness implement --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/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/implement .claude/skills/implement && 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 "implement" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/implement into .claude/skills/implement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implement", 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/ericrisco/rsc-harness/tree/main/skills/implementType 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 ericrisco/rsc-harness --skill implement -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness implement --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/implement .agents/skills/implement && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "implement" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/implement into .agents/skills/implement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implement", 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 ericrisco/rsc-harness --skill implement -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness implement --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/implement .cursor/skills/implement && 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 "implement" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/implement into .cursor/skills/implement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implement", 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/ericrisco/rsc-harness.git --path skills/implement--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 ericrisco/rsc-harness --skill implement -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness implement --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/implement .gemini/skills/implement && 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 "implement" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/implement into .gemini/skills/implement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implement", 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 ericrisco/rsc-harness implementInstalls 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 ericrisco/rsc-harness --skill implement -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/implement .github/skills/implement && 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 "implement" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/implement into .github/skills/implement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implement", 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 ericrisco/rsc-harness --skill implement -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ericrisco/rsc-harness implement --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/implement .opencode/skills/implement && 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 "implement" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/implement into .opencode/skills/implement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implement", 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.
implementA skill your agent uses when an approved plan and task list exist and it is time to turn them into working, tested code — the SDD phase after analyze and before verify.
Implement is an agent skill from ericrisco/rsc-harness. Use when an approved plan and task list exist and it is time to turn them into working, tested code — the SDD phase after analyze and before verify. Enforces TDD: a failing test comes before the code that makes it pass, one task at a time, appended to a progress ledger that survives compaction. Delegates test tooling to the stack skill and fans disjoint tasks out via parallel. NOT spec writing (that is specify), NOT planning (that is plan), NOT the final lint/test/audit gate (that is verify).
Its SKILL.md is about 5.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/per-task-review.md`).
It sits in Testing & QA, covering Task breakdown, Test-driven development and Failing and flaky tests. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e3d5b33. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/, which the agent can run.
Shell commands in SKILL.md call:
fluttergonpxgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and git, which can reach the network depending on how they are called.
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.
Implement loads about 5.9k tokens when it runs, and up to ~6.5k if it reads all its reference files. Until then it costs about 130 tokens; SKILL.md has 2,860 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.
| "I'll just write the .env so the integration test runs" | Never. Secrets are the user's; mock/stub the boundary or useAutomated 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); the scripts in this folder are not scanned.
The full file from ericrisco/rsc-harness at commit e3d5b33, republished under its MIT licence (© ericrisco). 2,860 words, ~5,878 tokens.
.claude/skills/implement/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.You have a spec, a plan, and an ordered task list (from specify → plan → tasks), and the
analyze gate has cleared. This skill does the building: it walks the tasks in order, writes each
one test-first, stops to show its work after every task, and records the decisions it makes
along the way. It is the intent → shipped code engine's hands — verify is the gate that comes
after, not part of this skill.
This is a process skill. It owns the discipline (red → green → refactor, checkpoints, decision
logging, constitution adherence). It does not own the test tooling — pytest fixtures, go test
table-drivers, Vitest/Playwright, flutter test — those belong to the stack skill, and you call
into them rather than reinventing them.
Run this short gate. Skipping it is the most common way an implement session goes sideways. This gate is a hard refuse, not a checklist to feel good about: if it fails you stop and route back — you do not write feature code anyway.
02-DOCS/wiki/sdd/specs/<slug>.md),
the plan (02-DOCS/wiki/sdd/plans/<slug>.md, which holds the task list), and the constitution
(02-DOCS/wiki/sdd/constitution.md). If any is missing, you are not allowed to implement —
route back: no spec → specify; no plan → plan; no task list inside the plan → tasks;
unresolved analyze findings → resolve them first. If a spec/plan exists but the user has not
actually seen and approved it, get that approval first. Never "start coding to discover the
plan as you go", and never accept "just build it, skip the spec" on a non-trivial feature — name
the gate in one friendly line and route to specify. (Only a true one-line, low-risk change
earns a skip, and you say so.)02-DOCS/wiki/sdd/config.yaml. If it is missing on
non-trivial work, stop and route to sdd-init. Use testing.strict_tdd,
testing.commands.apply, testing.commands.verify, sdd.review_budget and
sdd.registry_path. Do not choose a different test command from memory while config exists..rsc/skill-registry.json if present. Select only the
relevant stack/process skills for this task, then digest them into compact rules. If the
registry is missing, run or recommend npx @ericrisco/rsc registry refresh and record the fallback.02-DOCS/wiki/harness/user-profile.md and read technical_level.
It picks technical terms or plain words with analogies at each checkpoint (see "Checkpoints"
below). No profile yet → use analogies, and ask before any irreversible step.worktrees)? Never branch on your
own; another session in this folder makes the worktree mandatory.parallel; everything else runs in order.For each task in the list, in order (or dispatched per the parallel rule below):
RED → write the smallest failing test that encodes the task's done-check. Run it. Watch it FAIL
for the right reason (assertion, not import error). A test that was never red proves nothing.
GREEN → write the least code that makes that test pass. No extra features, no "while I'm here".
Run the test. Watch it PASS.
TRIANGULATE → add the smallest edge-case test that proves the behavior is not hard-coded
(only when config.testing.strict_tdd is true and the task has meaningful edge cases).
REFACTOR → with the test green, clean up names/duplication/shape. Re-run; still green. Only now.
CHECK → re-read the task's done-check. Met? Constitution still honored? Decision worth logging?
PROGRESS → append task/test/blocker/decision state to 02-DOCS/wiki/sdd/progress/<slug>.md.
COMMIT → commit this task as one logical unit (authorship = Eric; see ship for the rule).
REVIEW → dispatch a fresh reviewer subagent over THIS task's commits (see "Per-task review gate").
Fold its Critical/Important findings back in before you move on; Minor can wait.
CHECKPOINT → stop and show: what changed, test output, review verdict, the next task. Wait for the user.The order is load-bearing. Red before green is not a suggestion — a test you write after the code tells you nothing about whether it can fail. Refactor only on green keeps every cleanup reversible against a passing bar. Checkpoint after each task is what makes this resumable and reviewable instead of a 2000-line surprise diff.
The loop only means anything if green cannot be manufactured. These are absolute, and each one is a way people reach green without fixing anything:
../testing-py/SKILL.md, ../testing-web/SKILL.md, ../testing-go/SKILL.md).Each task carries a done-check from the tasks phase ("returns 409 on duplicate email", "list
renders empty state when zero items"). That sentence is your first failing test. Do not invent a
looser check, and do not mark a task done because the code "looks right" — done means the done-check's
test is green and the relevant acceptance criterion in the spec is satisfied.
Write the intent of the test here; get the mechanics from the stack skill. The discipline is yours; the fixtures, runners and idioms are theirs.
| Stack | Where the test mechanics live | What you delegate |
|---|---|---|
| FastAPI / async Python | ../fastapi/references/testing.md | ASGITransport in-process client, dependency_overrides, transactional rollback fixture, pytest-asyncio |
| Go services | ../go/references/testing.md | table-driven subtests, httptest, interface fakes, golden files, errors.Is checks |
| Next.js / React | ../nextjs/references/testing.md | Vitest + Testing Library for units, Playwright for flows, server-action / RSC testing |
| Flutter | ../flutter/references/testing.md | flutter test widget tests, pump/pumpAndSettle, golden tests, mocked repositories |
If the feature spans two stacks (a Next.js front-end calling a FastAPI back-end), each task names its stack and pulls that stack's testing reference — you do not mix idioms inside one task.
When a task or subagent needs skill context, use the registry path from config:
.rsc/skill-registry.jsonSelect the smallest set of skills that match the task. Digest each selected skill into 4-5 compact rules that affect this task. A task brief or checkpoint includes:
Selected skills: fastapi, postgresdb, implement
Compact rules:
- Use the configured apply command from config.yaml.
- Red test first; verify it fails for the right reason.
- Keep DB migrations expand-contract when touching production tables.
Skill resolution:
- used: [...]
- missing: [...]
- fallback: [...]If a skill is referenced but unavailable, say so and record the fallback. Do not silently pretend it was used.
Maintain an append-only progress file:
02-DOCS/wiki/sdd/progress/<slug>.mdEntry shape:
## T004 — 2026-06-02
- status: complete
- red: `pytest tests/auth/test_login.py::test_bad_password_returns_401` failed for expected missing route
- green: same test passed
- triangulation: blank title returns 422
- files: app/auth.py, tests/auth/test_login.py
- decision: none
- blocker: noneThis file is what makes resumes and archive reliable. Never rewrite old entries; append corrections as new entries.
The progress file is the source of truth across compaction and restarts:
status: complete here is DONE — never re-dispatch it. Re-running completed
tasks (re-implementing, re-committing) is the single most expensive recovery failure: it rebuilds
work that already exists and can clobber later commits.git log, not from
memory. Read the progress entries and the commit history first; resume at the first task not
marked complete. If the ledger and the working tree disagree, believe the tree and append a
correction entry — do not silently re-run.When two or more tasks are genuinely disjoint — no shared files, no shared state, no ordering
dependency — fan them out with parallel rather than serializing. The rule of thumb:
users repository" and "add the invoices repository" in separate modules).Each parallel branch still runs its own full red → green → refactor loop and reports back its diff +
test output. You merge the branches, then run the combined test suite before the next checkpoint —
green-in-isolation is not green-together. Hand the orchestration to parallel; keep the TDD
discipline inside each branch.
Dispatch implementation work to the developer subagent. rsc installs a developer agent
pinned to the balanced tier (Sonnet by default, chosen at onboarding, never light). When you
delegate a task or fan out via parallel, dispatch it to that agent (e.g. Claude Code
subagent_type: developer) so the bulk of TDD execution runs on the cheaper-but-capable model
while you stay on the session model to orchestrate. Full rationale: ../sdd/references/model-routing.md.
A dispatched worker is context-isolated — it sees only what you hand it, not your session. Make each dispatch self-sufficient and make its return machine-checkable:
Consumes/Produces, exact signatures — from tasks), and the plan's §0 Global Constraints.
Anything not in those three is invisible to it. Prefer file paths over pasted text (use
scripts/task-brief and scripts/review-package, below) — pasted briefs and diffs stay resident
in your context and get re-read every turn.developer agent already pins balanced). An omitted model silently inherits the session's model —
usually the most expensive one — which is the quiet way fan-out cost explodes.DONE — done-check green, Produces contract met.DONE_WITH_CONCERNS — green, but it flagged a risk/assumption for you to adjudicate.BLOCKED — cannot proceed (failing dependency, contradiction, missing access). Stops; does not
hack around it.NEEDS_CONTEXT — a Consumes/constraint it needed was not in the brief. Stops; names what's missing.BLOCKED/NEEDS_CONTEXT you must change
something before re-dispatching: add the missing context/interface, fix the dependency, or
escalate the tier (balanced → heavy) for a genuinely hard sub-problem. Re-running an identical
prompt on an identical model is how a loop burns budget without progress.After a task is committed and before its checkpoint, run a small, fresh-eyes review of that task alone — catching over-/under-building while it is one commit cheap to fix, instead of waiting for the whole-branch review when it is buried in a large diff. It is a mid-build gate, not the finish line (see the boundary below).
How to run it:
scripts/review-package <BASE> <HEAD> where BASE
is the task's recorded base sha (never HEAD~1 — that drops every commit but the last of a
multi-commit task). It writes the commit list + --stat + full diff to one file.references/per-task-review.md.Critical/Important/Minor) with file:line evidence.Critical/Important back in now; Minor may wait for the end-of-branch review.Anti-pre-judging (hard rule). The dispatch must never tell the reviewer what not to flag, pre-rate a finding's severity, or explain why a choice is fine ("the plan chose X, treat as Minor"). A stated rationale never downgrades a finding — that is laundering your own bias through the reviewer. Hand it the evidence and the contract; let it judge.
Boundary — this does not replace the end gates. verify still runs the whole suite and the
acceptance criteria once at the end, and review still reads the whole diff adversarially once
before ship. The per-task gate is the cheap early pass; the broad reviews remain. Skip the per-task
gate on a genuinely trivial task (a one-line change), like the rest of the chain.
balanced (opt-in routing)This phase's default model tier is balanced — it is the bulk of TDD execution: cost-sensitive, with quality balanced handles well. Routing is off unless models.enabled: true in 02-DOCS/wiki/sdd/config.yaml. When on: resolve this phase's tier (models.overrides wins over models.phases), map it to a model via models.tiers, and apply per ../sdd/references/model-routing.md — announce the switch in one line when it differs from the session model, and dispatch any Task/parallel subagents on that model (this is where routing pays off most — fan-out runs on balanced while a hard sub-problem can be escalated to heavy). Routing off or no profile → honor the session model silently. Never fake a switch a tool can't make; skip routing on a one-line change.
Speak in the orient voice, in the register technical_level sets. At each checkpoint show: the
task, tests green or red, the one why behind any non-obvious choice, and the next task. Ask only
where the plan genuinely forked, and confirm before deviating from the plan or doing anything
irreversible.
How short you are never changes the engineering. TDD, the done-checks, the constitution and decision logging hold for every reader.
When you make a choice the plan did not fully specify — a library, a data shape, an error contract, a
deviation from the plan — append it to 02-DOCS/wiki/sdd/decisions.md (append-only; create it if
absent and index it in 02-DOCS/wiki/index.md (the Knowledge map; root CLAUDE.md keeps only a short pointer) under the sdd/ topic). One entry:
## YYYY-MM-DD — <short title> (feature: <slug>, task: <n>)
Context — what forced the choice
Options — the 2–3 real alternatives weighed
Decision — what you chose
Why — the trade-off that decided itLog the non-obvious ones — the choices a reviewer would otherwise have to reverse-engineer from
the diff. Do not log "named the variable count". If a decision contradicts the constitution, you do
not get to log your way around it: stop (see red flags).
02-DOCS/wiki/sdd/constitution.md holds the project's non-negotiables (stack canon, quality bars,
naming, security posture). Every task you implement must honor it. If a task can only be done by
breaking a constitutional rule, that is a contradiction the analyze phase should have caught —
surface it and stop; do not quietly violate the constitution to make a test pass. The constitution
outranks the plan, and the plan outranks your in-the-moment preference.
| Rationalization | Reality |
|---|---|
| "I'll write the tests after, once the code settles" | Then the test only confirms what you built, not what was asked. Red first, always. |
| "This task is trivial, skip the failing test" | Trivial code breaks too, and the next task may lean on it. Smallest red test still goes first. |
| "I'm here anyway, I'll also fix that other thing" | Scope creep buries the diff and breaks the done-check contract. One task, one commit. |
| "The test passed first try without ever being red" | It tests nothing. Make it fail on purpose, then make it pass. |
| "I'll batch ten tasks into one big commit to save time" | You just made the work unreviewable and un-resumable. One logical unit per task. |
| "The constitution's rule doesn't fit here, I'll bend it" | The constitution outranks you. Surface the conflict; don't bend it silently. |
| "These two tasks touch the same file but I'll parallelize anyway" | Shared file = shared state = merge pain and lost work. Serialize them. |
| "Refactor now, the test is still red" | Never refactor on red — you can't tell a cleanup from a regression. Get green first. |
| "I'll mark it done, the code looks correct" | Done = the done-check's test is green and the acceptance criterion holds. Looks ≠ green. |
| "I'll just write the .env so the integration test runs" | Never. Secrets are the user's; mock/stub the boundary or use a test fixture. |
plan /
tasks.analyze findings (contradiction between constitution ↔ spec ↔ plan ↔ tasks) →
resolve them before any code; they will only get more expensive after the diff exists.analyze/plan.worktrees).debug before continuing.debug; never ship around a red test.- [ ] Read the task's done-check; it is my first test's assertion
- [ ] RED: smallest test written, run, fails for the RIGHT reason
- [ ] GREEN: least code to pass; test now green
- [ ] REFACTOR: cleaned up on green; still green
- [ ] Constitution honored; no banned pattern introduced
- [ ] Non-obvious decision (if any) logged to 02-DOCS/wiki/sdd/decisions.md
- [ ] Apply progress appended to 02-DOCS/wiki/sdd/progress/<slug>.md
- [ ] Skill resolution recorded (used/missing/fallback/compact rules)
- [ ] Committed as one logical unit (authorship = Eric)
- [ ] Checkpoint shown in the orient voice; next task namedEnd every implementation checkpoint or completed batch with:
{
"status": "complete",
"executive_summary": "Implemented task(s) with red/green/triangulate/refactor evidence.",
"artifact": "02-DOCS/wiki/sdd/progress/<slug>.md",
"next_recommended": "implement|verify",
"risk": "low|medium|high",
"skill_resolution": {
"used": ["implement"],
"missing": [],
"fallback": [],
"compact_rules": ["Use config testing commands.", "Append progress after every task."]
},
"evidence": ["red test output", "green test output", "progress entry path"]
}verify's job. Don't claim the
feature is done here — that claim belongs to verify, on evidence.plan; don't silently re-architect inside a commit.debug (reproduce → isolate → hypothesize → fix → verify) instead of guessing.constitution → specify → clarify → plan → tasks → analyze → implement → verify →
review → ship. On-demand from here: debug (a test fails mysteriously), worktrees (need
isolation), parallel (independent tasks to fan out).
Next: when every task's done-check is green and committed, go to verify — run the stack skill's
scripts/verify.sh, confirm the spec's acceptance criteria, and let evidence (not assertion) declare
the feature done.
Habla con la voz de orient: frases cortas, una idea por frase, y cada respuesta se entiende sola. Registro técnico o con analogías según technical_level en 02-DOCS/wiki/harness/user-profile.md. Cierra cada turno con el bloque-brújula (📍 dónde estás · ➡️ siguiente, terminando en pregunta; ✅ y 🧭 cuando hay algo hecho o decidido). Nunca termines en seco. Protocolo completo: skill orient → skills/orient/references/orientation-contract.md. (Defiere a suggest el "¿instalo la skill que falta?".)
© ericrisco, 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 6 other files (scripts, references) in skills/implement of ericrisco/rsc-harness.
Open the folder on GitHubat commit e3d5b33
Implement 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 |
|---|---|---|---|---|---|---|
| Implement this skillericrisco/rsc-harness | 167 | — | ~5.9k | Automated safety check: Notes | MIT | |
| TasksRafaelGB/Obsidian-ZettelFlow | 174 | — | ~573 | Automated safety check: Pass | MIT | |
| Feature Next Task Workflowmylukin/agent-foreman | 250 | — | ~927 | Automated safety check: Notes | None | |
| Superpowers Test Driven Developmentchristopherarter/superpowers-reasonix | 102 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Openspec Plus TDDelastic/terraform-provider-elasticstack | 210 | 1 repos | ~4.7k | Automated safety check: Pass | Apache-2.0 | |
| Fix BugMelbourneDeveloper/dart_node | 113 | 1 repos | ~709 | Automated safety check: Notes | None |
RafaelGB/Obsidian-ZettelFlow
Stage 3 of the SDD pipeline — turn a ZettelFlow plan (in a GitHub issue comment) into an ordered TDD task checklist posted as a second issue comment.
mylukin/agent-foreman
Enforces a strict next-implement-check-done cycle through the agent-foreman CLI so an agent works one backlog task at a time, with optional TDD gating.
christopherarter/superpowers-reasonix
Writing or fixing any code?. An agent skill from christopherarter/superpowers-reasonix.
elastic/terraform-provider-elasticstack
MANDATORY skill that activates whenever code is written to implement an OpenSpec change task.
MelbourneDeveloper/dart_node
Fix a bug using test-driven development. An agent skill from MelbourneDeveloper/dart_node.
evanklem/evanflow
Root-cause discipline for bugs, test failures, and unexpected behavior.
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
Categories
A skill your agent uses when an approved plan and task list exist and it is time to turn them into working, tested code — the SDD phase after analyze and before verify. Implement is an agent skill from ericrisco/rsc-harness. Use when an approved plan and task list exist and it is time to turn them into working, tested code — the SDD phase after analyze and before verify.
Implement fits situations like: an approved plan and task list exist and it is time to turn them into working; tested code — the SDD phase after analyze and before verify.
Run `npx skills add ericrisco/rsc-harness --skill implement -a claude-code`. Or copy the skill folder (skills/implement in ericrisco/rsc-harness) into .claude/skills/implement in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill implement -a codex`. Or copy the skill folder (skills/implement in ericrisco/rsc-harness) into .agents/skills/implement 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 ericrisco/rsc-harness --skill implement -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/implement, .gemini/skills/implement, .github/skills/implement and .opencode/skills/implement in your project.
Going by SKILL.md and its folder, Implement needs the command-line tools its instructions call (flutter, go, npx and git). Our summary lists: Python 3; Node.js.
SKILL.md contains no URLs. Its commands use npx and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Implement 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.9k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 637 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Implement: Tasks (RafaelGB/Obsidian-ZettelFlow, 174 stars), Feature Next Task Workflow (mylukin/agent-foreman, 250 stars), Superpowers Test Driven Development (christopherarter/superpowers-reasonix, 102 stars) and Openspec Plus TDD (elastic/terraform-provider-elasticstack, 210 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 167 GitHub stars. The repository holds 227 skills in this directory. The repository was last updated on October 7, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.