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

pair-loop

Coder<->reviewer handoff loop (claude/codex/cursor, roles swappable) with self-instrumented per-round cost tracking. Loops locally via HANDOFF.md until approved, then opens a PR with the full transcript.

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

연동 도구GitHub
설치 방법 보기

포함된 파일(2)

  • SKILL.md6.6 KB
  • .100xprism-generated89 B

SKILL.md(원문)

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

Pair-Loop — Coder <-> Reviewer Handoff

Runs a formal review loop between a coder and a reviewer (default: you as coder, Codex as reviewer — swap via ~/.100xprism/config.json's pair_loop section). Three vendors are supported — claude, codex, cursor — as either role. Each round is recorded in HANDOFF.md and self-instrumented into a cost manifest the token dashboard reads. Do NOT ask for permission to start or to run rounds — only stop for the outcomes listed in "When to stop" below.

Step 1 — Start

PROJECT_ROOT=$(git rev-parse --show-toplevel)
cd "$PROJECT_ROOT"
python3 ~/100xprism/scripts/pair-loop.py start --task "<one-line task description>"

If this fails with a "dirty" error, commit or stash first — do not force-start on uncommitted work. Save the printed run_id, handoff_path, max_rounds, coder, and reviewer — you'll pass run_id to every subsequent command.

Step 2 — Budget check (before every round)

python3 ~/100xprism/scripts/pair-loop.py budget-check --run "$RUN_ID"

Exit code 2 means the per-run budget cap is hit — STOP and ask the user whether to continue or stop; do not proceed to another round silently. Exit code 0 with "level": "warn" in the output means print a one-line warning and continue.

Step 3 — Coder round

Implement the task (or address the reviewer's findings from the prior round). Run the project's quick checks (tests + lint) before recording the round. Do not commit — leave all changes in the working tree so review diffs stay accurate across rounds; commit only in Step 5 (PR phase). Then:

python3 ~/100xprism/scripts/pair-loop.py coder-done --run "$RUN_ID" \
  --summary "<what you implemented/fixed, files touched, how you verified it>" \
  --findings-addressed <N>

Step 4 — Reviewer round

python3 ~/100xprism/scripts/pair-loop.py review --run "$RUN_ID"

This shells out to the configured reviewer and returns {"verdict":, "findings": [...], "fallback_used":, "reviewer_tool":, "reviewer_model":, "same_model_conflict":}. reviewer_tool is the vendor that actually ran — with three vendors, do not assume it equals pair_loop.reviewer; check it, especially when fallback_used is true.

If the configured reviewer's CLI is missing, it falls back to the best available alternative — preferring a vendor other than the coder's, and preferring a multi-model CLI (Cursor, which can itself run Claude/GPT/Grok/Kimi models) over a same-vendor fallback. Only as a last resort does it fall back to the coder's own vendor. Whichever vendor runs is pinned to pair_loop.fallback_models (default sonnet for Claude, gpt-5.6-luna for Codex, composer-2.5 for Cursor) to reduce the chance of a same-model self-review. The output says "fallback_used": true, with the actual vendor in "reviewer_tool" and its pinned model (if any) in "reviewer_model" — mention this to the user once, don't repeat it every round. If no supported CLI is on PATH the command fails naming every supported vendor; that is a stop condition.

Independence is verified, not just configured, whenever it can be: when a round's verdict comes back APPROVED, review resolves both the coder's and the reviewer's session transcripts to the model each actually ran, and if they match, overrides the verdict to CHANGES_REQUESTED and adds a process finding explaining why (#93) — "same_model_conflict" in the output carries the matched model name (null otherwise). Treat this exactly like any other CHANGES_REQUESTED: go back to Step 2, and mention the conflict to the user so they can point fallback_models (or the reviewer config) at a model that differs from the coder's. This is still best-effort, not a guarantee — a session_id that couldn't be resolved (no adapter for Cursor yet, or a missed guess) means the check silently can't run, same as before.

  • "verdict": "APPROVED" → go to Step 5 (PR phase).
  • "verdict": "CHANGES_REQUESTED" and you have rounds remaining (round count reported by start as max_rounds) → go back to Step 2 for the next round.
  • "verdict": "CHANGES_REQUESTED" at max_rounds → STOP. Present the open findings to the user and ask whether to ship as-is, do another round anyway, or abandon. Do not silently exceed the configured round cap.

Step 5 — PR phase

python3 ~/100xprism/scripts/pair-loop.py finish --run "$RUN_ID" --verdict APPROVED

(Omit --pr on this first call — you don't have a PR number yet.) This prints pr_body_path. Run the branch and pr skills to push and open the PR, passing that file as the PR body (gh pr create --body-file <pr_body_path>). Once you have the real PR number, re-run finish with --pr <number> so the manifest records it for the dashboard's $/merged-PR metric:

python3 ~/100xprism/scripts/pair-loop.py finish --run "$RUN_ID" --verdict APPROVED --pr <NUMBER>

This second call also posts a review summary to the PR — rounds, reviewer tool (plus its model when one was pinned; the normal path uses each CLI's own default, which isn't recorded), findings raised/resolved, verdict, and an explicit warning when the fallback was used. Pass --no-comment to skip it. A failed post warns and returns "summary_posted": false; it never fails the run.

If pair_loop.pr_final_round is true in the config, run one more review round against the pushed PR diff before this step, and post any findings as a PR comment via gh pr comment — then do exactly one more local coder round to address them before finishing.

When to stop and ask the user

  • Budget cap hit (Step 2, exit code 2).
  • Round cap hit without approval (Step 4).
  • Never auto-merge — a human merges the PR, always.

Note: If the configured reviewer's CLI was missing and a fallback ran, mention it to the user once ("fallback_used": true, with the vendor in "reviewer_tool" and any pinned model in "reviewer_model"), but do not block — this is not a stop condition. A fallback onto the coder's own vendor is weaker than a genuinely different one; review checks the reviewer's resolved model against the coder's when it can (see Step 4, #93) and refuses a same-model approval, but that check can't always run (unresolved session_id), so treat any surviving APPROVED from a same-vendor fallback as weaker signal, not a guarantee — the PR summary states this rather than claiming otherwise.

리뷰

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

댓글

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

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

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

0 / 1,000자

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

같은 저장소의 스킬

Act as a Senior Accessibility Engineer to audit a page, component, or design against WCAG 2.2 AA. Produces a triaged finding list (critical/serious/moderate), focus-order map, contrast report, ARIA decision tree, and a screen-reader test plan. Use when shipping new UI, hardening an existing flow, or preparing for VPAT/accessibility conformance.

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

rajitsaha/100xprism102026년 10월 14일 업데이트

When the user wants to plan, design, or implement an A/B test or experiment — "split test," "variant copy," "multivariate test," "hypothesis," "statistical significance," "how long should I run this test," or comparing two versions. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro.

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

rajitsaha/100xprism102026년 10월 14일 업데이트

When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, full variations — for any paid platform; 'ad copy variations,' 'RSA headlines,' 'bulk ad copy,' 'creative testing,' 'write me some ads.' For campaign strategy and targeting, see paid-ads. For landing page copy, see copywriting.

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

rajitsaha/100xprism102026년 10월 14일 업데이트

ai-seo

무료

When the user wants content cited by LLMs or surfaced in AI-generated answers — 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'AI Overviews,' 'optimize for ChatGPT/Perplexity/Claude,' 'AI citations,' 'zero-click search.' For traditional technical/on-page audits, see seo-audit. For structured data, see schema-markup.

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

rajitsaha/100xprism102026년 10월 14일 업데이트

When the user wants to set up, improve, or audit analytics tracking and measurement — "GA4," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "tracking plan," "attribution," "Mixpanel," "Segment," "are my events firing," or how to measure marketing results. For A/B test measurement, see ab-test-setup.

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

rajitsaha/100xprism102026년 10월 14일 업데이트

architect

무료

Architectural decision advisor for cloud, data, and SaaS distributed systems. Use when the user asks "should we use X or Y", weighs a tradeoff, or needs a decision matrix, scaling analysis, cost-at-scale review, data-tier design, multi-tenancy model, or API/resilience guidance. For full technical blueprints, use enterprise-design.

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

rajitsaha/100xprism102026년 10월 14일 업데이트

rajitsaha의 스킬 모두 보기

이 스킬의 문제 신고