Skip to content
cccskills
FreePublished on GitHub

root-cause-review

Use when a task in code_review was sent back before (an earlier need_revision comment exists) - verify every prior point was fixed at its root

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md3.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Root-Cause Review

Overview

When a task returns to code_review after a need_revision cycle, the question is not "did something change" but "was the ROOT CAUSE addressed". Symptom patches come back as bugs; catching them here is cheaper than in QA or production.

The Process

  1. Find the prior feedback first. A re-submission enters code_review from in_progress, so the earlier need_revision comment is NOT injected into this run automatically — list_task_comments on this task is how you find it (also check get_task_pull_request for human reviewer comments on the PR itself).
  2. Re-read the prior feedback: your previous need_revision comment, the QA failure report, or the pipeline failure — list every numbered point.
  3. Map each point to the new diff: for every point, find the exact change that addresses it. A point with no matching change means the revision is incomplete → back to need_revision citing the unaddressed point.
  4. Judge root cause vs symptom for each fix:
    • Symptom patch: special-casing the failing input, catching-and-ignoring the error, widening a timeout, deleting the failing assertion.
    • Root-cause fix: the change explains WHY the failure happened and removes that mechanism at its source.
  5. Check the guard test: a test now exists that reproduces the original failure and passes with the fix. No guard test → Important finding.
  6. Watch for regressions: revision diffs are written under pressure — re-check the surrounding code paths the fix touches.

Worked Example (symptom vs root cause)

Prior finding: "export returns empty CSV on DB error (swallowed error)."

  • Resubmission A (symptom patch): the diff wraps the export call in the handler with if len(csv)==0 { return 500 }. Rejected → back to need_revision: "Point 1: the swallowed error at service.go:24 is still there; you inferred failure from an empty result instead of propagating the error. An empty project also returns empty CSV, so this now 500s a valid empty project. Fix the source."
  • Resubmission B (root cause): ListByProject's error is propagated and mapped to 500; a test injects a repo error and asserts 500; the empty-project test still asserts 200 + header-only CSV. Approved → ready_for_qa.

The tell was step 2: B's fix touched service.go:24 (where the mechanism lives); A's didn't.

Verdict

  • Every prior point addressed at the root, guard tests present, pipeline green → ready_for_qa.
  • Any symptom patch, unaddressed point, or missing guard test → need_revision, quoting the specific gap ("Point 3 from the previous review: ... — the new diff only catches the exception; the invalid state is still produced upstream in ...").

Red Flags

  • The diff deletes or weakens a failing test instead of fixing the behavior.
  • A fix touches none of the files where the failure mechanism lives.
  • The fix's commit message or the revision's diff says "fixed" without showing what caused the failure — you never see the developer's closing message, so judge the code and the guard test, not a claim.
  • Third revision cycle on the same task — question the design: comment on whether the approach itself is wrong and consider recommending a re-analysis instead of a fourth patch. The system backs this up: three moves into need_revision without a human touch parks the task automatically, so this is also where a real disagreement belongs, not a further round-trip.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

Use when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level authorization, mass assignment and tenant scoping

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

How to work a task returned with review, QA or UAT findings. Use when a task is in need_revision or PR review comments are in your context.

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

Use when the repository keeps its alerting in code, or a person asks for alerts outside TaskTrooper - PrometheusRule YAML, a Cloud Monitoring alert policy in Terraform, a Datadog monitor, each routed to TaskTrooper's alert ingest URL so it opens an incident here

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

See all skills by makifbaysal

Report a problem with this skill