Skip to content
AI & Agents
Skill

/implementing-tasks

Implementing a single planned task (Task N.M.T) end-to-end: selects the right backend agent by language and service type, drives one TDD RED->GREEN turn, then verifies coverage, lint, license headers, runtime, and delivery before handoff. Runs as Gate 0 before

From plugin
ring
20577 skills42 agents1 command
Install
$ npx -y skills add LerianStudio/ring --skill implementing-tasks --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/implementing-tasks

Context preview

The summary Claude sees to decide when to auto-load this skill.

Implementing a single planned task (Task N.M.T) end-to-end: selects the right backend agent by language and service type, drives one TDD RED->GREEN turn, then verifies coverage, lint, license headers, runtime, and delivery before handoff. Runs as Gate 0 before

SKILL.md

implementing-tasks.SKILL.md
name: ring:implementing-tasks
description: "Implementing a single planned task (Task N.M.T) end-to-end: selects the right backend agent by language and service type, drives one TDD RED->GREEN turn, then verifies coverage, lint, license headers, runtime, and delivery before handoff. Runs as Gate 0 before ring:reviewing-code. Use to drive ONE task inside an already-running cycle. Skip when asked to implement a whole plan.md or multiple tasks (use ring:running-dev-cycle)."

Code Implementation (Gate 0)

When to use

  • Gate 0 of development cycle
  • Tasks loaded at initialization
  • Ready to write code

Skip when

  • Not inside a development cycle (ring:running-dev-cycle or ring:planning-backend-refactor)
  • Task is documentation-only, configuration-only, or non-code
  • Implementation already completed for the current gate

Sequence

**Runs before:** ring:reviewing-code

Related

**Complementary:** ring:running-dev-cycle, ring:test-driven-development, ring:reviewing-code

You orchestrate. Agents implement. Select the agent, prepare the prompt, track state, validate outputs.

Step 1: Validate Input

The unit of work is a single task (Task N.M.T, e.g. Task 1.1.1) from the phased plan. Its requirements arrive inline from the orchestrator, which reads the task block under its epic in plan.md: Context, Implementation vision, Files, Verification, and Done when.

Required: `unit_id` (the task's `Task N.M.T` id), `requirements` (the task block), `language` (go|typescript|python), `service_type` (api|worker|batch|cli|frontend|bff). Optional: `technical_design`, `existing_patterns`, `project_rules_path` (default: `docs/PROJECT_RULES.md`).

STOP if any required input is missing.

Step 2: Validate Prerequisites

Check `PROJECT_RULES.md` exists at `project_rules_path` → STOP if not found.

**Agent selection:**

| Language | Service Type | Agent | |----------|--------------|-------| | go | api, worker, batch, cli | ring:backend-go | | typescript | api, worker | ring:backend-ts | | typescript | frontend, bff | ring:bff-ts |

Step 3: Gate 0 — TDD (RED → GREEN)

Dispatch the selected agent ONCE. The agent writes the failing test, captures the RED failure output as evidence, then implements to GREEN — in one turn.

Task:
  subagent_type: "{selected_agent}"
  description: "Gate 0 TDD (RED→GREEN) for {unit_id}"
  prompt: |
    ## TDD: write a failing test, then make it pass

    unit_id: {unit_id}
    requirements: {requirements}
    language: {language}
    service_type: {service_type}

    Standards: load via state.cached_standards or WebFetch Ring standards for the language.
    Project rules: {project_rules_path}

    ## Frontend TDD policy (React/Next.js only)
    Visual-only components (layout, styling, animations): RED not required — report
    "Visual-only → RED skipped; visual checks apply in the frontend flow."
    Behavioral components (hooks, validation, state, conditional rendering, API): RED required.

    ## Multi-Tenant (Go only)
    Implement DUAL-MODE from the start. Use resolvers for all resources
    (tmcore.GetPGContext, tmcore.GetMBContext, etc.) — they work transparently
    in single-tenant and multi-tenant mode. Load multi-tenant.md for patterns.

    ## Your task
    1. Write a test capturing expected behavior; run it; it MUST fail (no implementation yet); capture the failure output.
    2. Implement the minimum code to make the test pass; run tests — all pass.
    3. Enforce coverage threshold (Ring minimum 85%, PROJECT_RULES may raise it).
    4. Create/update docker-compose and .env.example when the service needs local dependencies.
    5. Verify local runtime starts cleanly for the changed service path; verify basic health/observability for the changed code.
    6. Write delivery verification results.
    7. Commit: "{feat|fix|test|chore}(scope): description".

    ## Required output
    - RED: test file path + the actual failure output (MANDATORY — must contain FAIL)
    - GREEN: implementation files + test pass output
    - Coverage report (must meet threshold)
    - Local runtime: docker-compose/.env.example status or explicit "not required"
    - Basic health/observability verification
    - Delivery verification: requirements delivered, dead-code check, files changed
    - Git commit SHA

Validate output: the RED failure output must contain "FAIL" (evidence the test failed before implementation existed), and the GREEN output must show PASS with coverage ≥ threshold. Re-dispatch if RED evidence is missing or tests do not pass.

Step 4: Gate 0 Exit — Delivery Verification

After TDD-GREEN passes, verify delivery:

**Automated checks (run on all files changed by Gate 0):**

# A. File size (>1500 = FAIL, >1000 = PARTIAL unless cohesion justified)
find . -name "*.go" ! -name "*_test.go" ! -path "*/generated/*" \
  -exec wc -l {} + | awk '$1 > 1000'

# B. License headers
for f in $files_changed; do
  head -10 "$f" | grep -qiE 'copyright|licensed|spdx|license' || echo "MISSING: $f"
done

# C. Lint (go: golangci-lint; ts: eslint)
golangci-lint run ./... || echo "LINT FAILED"

# D. Coverage (Ring minimum 85%; PROJECT_RULES.md can raise)
# Go example: go test ./... -cover
# TypeScript example: npm test -- --coverage

# E. Local runtime / docker-compose
# If docker-compose.yml is required, verify it can config and start the changed service dependencies.

# F. Migration safety (if SQL migrations changed)
# Check for blocking ops: ADD COLUMN NOT NULL without DEFAULT, DROP COLUMN,
# CREATE INDEX without CONCURRENTLY, ALTER COLUMN TYPE, TRUNCATE

**Verdict:**

  • PASS: all requirements delivered, 0 dead code, all checks pass
  • PARTIAL: some requirements delivered → list gaps, return to Gate 0
  • FAIL: critical requirements missing → return to Gate 0 with explicit instructions

Step 5: Commit

When Step 4 verdict is PASS, load and call `ring:committing-changes` to create the signed atomic commit for this task before returning control to the de

Read more
Ships withring

Proven engineering practices, enforced through skills. Ring is a comprehensive skills library and workflow system for AI agents that transforms how AI assistants approach software development.

Get the whole plugin

Other skills on ring.