본문으로 건너뛰기
cccskills
무료GitHub에 공개

independent-qa

Use after completing a round of code generation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(5)

  • SKILL.md9.4 KB
  • evaluator-prompt.md7.8 KB
  • grading-rubric.md3.7 KB
  • security-reviewer-prompt.md1.4 KB
  • tie-break-reviewer-prompt.md767 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Independent QA

Dispatch isolated reviewer subagents to verify your code. Harnessed uses independent QA to lower self-evaluation bias and improve issue-finding rate. Self-critique is useful for improving a draft, but it does not replace the independent QA loop.

When This Skill Activates

  • After completing a round of code changes (new code, bug fix, refactor)
  • After fixing issues from a previous QA round (re-evaluation)
  • NOT for micro tasks (single-line, config-only, comment-only changes)

Execution Flow

Step 1: Locate the Contract

Determine the acceptance criteria source:

  • Standalone mode: Read .harnessed/contract.md
  • Complementary mode (Superpowers): Read the spec from docs/superpowers/specs/, normalize it into .harnessed/contract.md, and use that as the shared criteria source

If no contract/spec exists: STOP. Invoke harnessed:contract-writing first.

Step 2: Detect Verification Tier

Check the project for available verification infrastructure.

Tier 2 — test suite indicators present (package.json test script, pytest, go test, Playwright/Cypress, or equivalent) Tier 1.5 — no test suite, but a dev server is running Tier 1 — code review only

Record the active tier.

Step 2b: Pre-Flight Checks

Before dispatching reviewers, run available zero-LLM checks:

  • type checker
  • linter
  • test suite

If these fail, fix them first.

Step 2c: Git State Checks

Before gathering context:

  • stop on active merge conflict (.git/MERGE_HEAD)
  • use git diff HEAD to capture staged + unstaged changes
  • include untracked files by appending their contents to the diff context

Extract the changed file paths from this diff. Use them to drive any scope-based policy selection.

Step 2d: Risk Classification and Review Mode

Classify the task as standard or high-risk.

A task is high-risk if it touches auth, authz, secrets, crypto, payments, privacy, destructive data operations, infra/prod config, new public endpoints, or if the user explicitly says it is security-sensitive or release-blocking.

Choose one review mode:

  • standard-review — one primary evaluator
  • corroborated-review — primary evaluator + second independent evaluator for high-risk tasks
  • security-review — primary evaluator + dedicated security reviewer for security-sensitive tasks
  • tie-break-review — dispatched only when prior reviewers disagree materially

Material disagreement means any of the following:

  • different overall grades
  • one reviewer says PASS and another says FAIL/PARTIAL for the same criterion
  • one reviewer says SHIP while another requires human review for a high-risk boundary

Step 2e: Calibration and Drift Governance

Read docs/evaluator-calibration.md before dispatching reviewers.

This step exists to make evaluator drift explicit rather than silently trusted.

Set Calibration Status to:

  • current — calibration guidance exists and matches the current evaluator configuration
  • stale — evaluator prompt, model, or high-risk workflow changed since the last calibration review
  • missing — no calibration guidance exists

For high-risk tasks, stale or missing calibration means the best possible fully automated outcome is SHIP_WITH_HUMAN_REVIEW, not plain SHIP.

Step 2f: Select Relevant Policy Summaries

If .harnessed/policies/ exists, select only the policy files relevant to the current diff scope.

Use simple path and keyword matching rather than semantic inference:

  • auth-related paths or keywords -> auth.md
  • service/API changes -> response.md + db.md + validation.md
  • test changes -> testing.md
  • security-sensitive paths or keywords -> security.md

Read only the matched files. Keep the token budget bounded: inject at most the small set of matching policy summaries, not the full policy directory. If no policy matches, skip policy injection entirely and keep the existing behavior.

Step 3: Gather Context for Reviewers

Collect the following — this is ALL the reviewers see:

IncludeWhy
The contract/spec contentCriteria to evaluate against
git diff HEAD outputThe actual code to review
Project stack infoContext for evaluation
Verification tierWhat the reviewer can do
Available verification commandsHow to verify
Risk levelWhether corroboration is required
Review modeWhich reviewer path is active
Calibration statusWhether clean automation can be trusted fully
{RELEVANT_POLICIES}Repo-specific constraints selected from .harnessed/policies/

DO NOT include:

  • your reasoning or thought process
  • your self-assessment of the code
  • your conversation history with the user
  • planning notes

The reviewer must judge the code, not your intent.

Step 4: Dispatch the Review Set

Construct reviewer prompts from the prompt files in skills/independent-qa/:

  • primary evaluator → evaluator-prompt.md, writes .harnessed/qa-report.md
  • second evaluator for corroborated-review → same prompt, writes .harnessed/qa-report-secondary.md
  • security reviewer for security-review → security-reviewer-prompt.md, writes .harnessed/qa-report-security.md
  • tie-break reviewer → tie-break-reviewer-prompt.md, writes .harnessed/qa-report-tiebreak.md

When using evaluator-prompt.md, replace:

  • {CONTRACT}
  • {DIFF}
  • {STACK}
  • {TIER}
  • {MODE}
  • {RISK_LEVEL}
  • {CALIBRATION_STATUS}
  • {VERIFICATION_COMMANDS}
  • {RELEVANT_POLICIES}
  • {GRADING_RUBRIC}

Step 4b: Static Analysis for Security-Sensitive Tasks

If the task is security-sensitive, run available tooling before final synthesis:

  • Semgrep
  • CodeQL
  • bandit

Treat tool findings as strong evidence. Treat tool absence as uncertainty, not as proof that the code is secure.

Step 4c: Verify Reviewer Output

After reviewers return, verify that each expected report:

  • exists
  • contains # QA Report
  • is newer than dispatched_at in .harnessed/qa-state.md

If a required report is missing or malformed, retry once. If it still fails, treat as BLOCKED.

Step 5: Synthesize Results

Use the most conservative defensible outcome.

  • If reviewers materially disagree, dispatch the tie-break reviewer
  • If the tie-break reviewer still cannot resolve the issue, escalate to the user
  • If any automatable criterion has weak evidence, downgrade it to PARTIAL or MANUAL_REVIEW_NEEDED rather than PASS
  • If the task is high-risk and calibration is stale/missing, the best possible result is SHIP_WITH_HUMAN_REVIEW
  • If the task is security-sensitive and security review remains heuristic or tooling is absent, force explicit human review even when all automatable checks pass

Step 6: Process Final Grade

If final grade is SHIP or SHIP_WITH_HUMAN_REVIEW:

  • proceed to harnessed:verification-gate
  • note any pending human review items

If final grade is ITERATE:

  • fix the issues
  • re-run QA
  • maximum 3 iterations

If final grade is BLOCKED:

  • do not attempt speculative fixes
  • present the blocking reason to the user

Step 7: Record Failure Patterns

After ITERATE or BLOCKED, update .harnessed/failure-patterns.md from the evaluator's ## Failure Categories table.

Apply the decay and cap rules already defined by Harnessed.

Step 8: Write QA Summary

After a SHIP or SHIP_WITH_HUMAN_REVIEW result, append:

## QA Summary
- Tier: {1, 1.5, or 2}
- Risk level: {standard or high-risk}
- Review mode: {standard-review / corroborated-review / security-review / tie-break-review}
- Calibration status: {current / stale / missing}
- Confidence: {High / Medium / Low}
- Uncertainty: {brief list or None}
- Iterations: {count}
- Final grade: {SHIP or SHIP_WITH_HUMAN_REVIEW}
- Key findings fixed: {brief list of issues caught and fixed during iterations, if any}

Iteration Rules

  • Each QA round uses FRESH reviewer context
  • Each round uses the latest diff
  • Never lower the bar between iterations
  • qa-state.md must track:
    • iteration
    • dispatched_at
    • head_commit
    • contract_hash
    • risk_level
    • review_mode
    • calibration_status

Anti-Rationalization

Your ThoughtWhy It's WrongWhat To Do
"I can include helpful context for the evaluator"Helpful context biases the reviewer toward your assumptions.Include only the approved context bundle.
"My self-review already found the issue"Great — fix it. But self-review is still not independent evidence.Use self-review to improve the draft, then run independent QA.
"The evaluator is wrong about this finding"Maybe, but your bias is exactly why the reviewer exists.Gather stronger evidence or use the tie-break path.
"High-risk mode is too expensive"High-risk tasks are where unchecked bias is most costly.Use corroboration and explicit human review.
"No tool found anything, so security is proven"Tool silence is not proof of safety.Record uncertainty and require human review where appropriate.
"The reviewer can infer repo policy from the codebase"That makes coherence checking depend on model guesswork.Inject only the relevant policy summaries selected from the diff scope.
<HARD-GATE> INDEPENDENT QA IS MANDATORY FOR ALL STANDARD AND LARGE TASKS.

Self-critique can improve a draft. It cannot replace independent verification.

High-risk disagreement must be resolved or escalated — never silently ignored. </HARD-GATE>

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use before starting any coding task when Superpowers is not present.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tt-a1i/harnessed22026년 3월 29일 업데이트

Use at the start of every session and before completing any coding task.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tt-a1i/harnessed22026년 3월 29일 업데이트

Use before declaring any coding task complete, done, or finished.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tt-a1i/harnessed22026년 3월 29일 업데이트

tt-a1i의 스킬 모두 보기

이 스킬의 문제 신고