Community생산성 & 협업github.com

수렴 - QA 후 사양 쓰기 저장

QA_PASSED 상태의 태스크 번들에서 확인된 구현 편차를 기술 사양에 반영하고, 태스크 번들을 아카이브하며 변경 제안을 종료합니다.

수렴 - QA 후 사양 쓰기 저장란 무엇인가요?

이 스킬은 AI 개발 워크플로우에서 태스크가 QA를 통과한 후, 구현 과정에서 기록된 편차(deviation)를 공식 기술 사양에 반영하는 '수렴(ConvergeTool)' 역할을 수행합니다. QA_PASSED 판정이 확인되고 02-dev-workspace.md에 편차 로그가 준비된 태스크 번들에 사용됩니다. 수렴 과정은 사양의 'Converged changes' 섹션에 태스크별 항목을 추가하고, 태스크 번들을 아카이브하며, 변경 제안이 있을 경우 이를 종료합니다. Python 헬퍼 스크립트(check → apply → verify)를 통해 자동화되며, CI 환경에서의 정확성 검증을 지원합니다. 이 스킬은 수동 폴백 절차를 제공하고, QA 미통과, 편차 로그 누락, 사양 불일치 등의 경우 수렴을 거부합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/formal-you/agent-skills-suite/tree/HEAD/.agents/skills/converge

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

미리보기

스킬 README에서

수렴 - QA 후 사양 쓰기 저장 preview

문서

수렴 - QA 후 사양 쓰기 저장 (Converge - Spec Write-Back After QA)

실행 루프를 종료합니다: QA를 통과한 태스크는 살아있는 사양의 일부가 됩니다. 이 스킬은 라이프사이클에서 ConvergeTool 역할을 나타냅니다. 프로세스를 정의하며, 저장소 에이전트 규칙은 여전히 권한을 소유하고, 이 스킬은 추가 액세스를 부여하지 않습니다.

파이프라인 위치: dev -> qa -> 수렴(converge) -> 아카이브된 번들 + 업데이트된 사양.

사용 시기

  • 태스크 번들의 03-qa-verification.md에 확인된 QA_PASSED 판정이 기록되어 있습니다.
  • 02-dev-workspace.md에 고정된 구현 편차 표(행 또는 명시적 None 행)가 포함되어 있습니다.
  • 태스크의 확인된 동작을 .specs/02-tech-spec.md에 반영하고, 번들을 아카이브하며, 원본 변경 제안을 종료해야 합니다.

사용하지 말아야 할 경우

  • 구현 또는 QA가 아직 진행 중이거나, 핸드오프 마커가 확인되지 않았거나, REWORK_REQUIRED가 활성 상태인 경우 - 안정적인 QA_PASSED 판정을 기다리십시오.
  • 편차 로그가 비어 있거나 누락된 경우 - 추측하는 대신 태스크를 Dev로 되돌려 보내십시오.
  • 사양 내용을 발명하거나 기존 사양 산문을 다시 작성해야 하는 경우 - 이는 계획 변경이지 수렴이 아닙니다.

입력

  • tasks/<task-id>/01-contract.md - 제목, 추적성 앵커, 선택적 change_id.
  • tasks/<task-id>/02-dev-workspace.md - 구현 편차 표(고정 형식).
  • tasks/<task-id>/03-qa-verification.md - 확인된 QA_PASSED 판정 및 증거.
  • tasks/<task-id>/04-process.md - 파생된 상태 카드 및 이벤트 로그.
  • .specs/02-tech-spec.md - 살아있는 기술 사양.
  • .specs/changes/<change-id>/proposal.md - 원본 변경 제안(있는 경우).

출력

  • 사양의 Converged changes 섹션에 태스크당 날짜와 작성자가 표시된 하나의 항목.
  • 태스크당 수렴 마커: <!-- converged: <task-id> sha256:<hash> -->.
  • 04-process.md에 macro_status: "CONVERGED" 및 하나의 TASK_CONVERGED 이벤트 행 (actor ConvergeTool).
  • 태스크 번들이 tasks/archive/<task-id>/로 이동(절대 삭제되지 않음).
  • 제안이 있는 경우, .specs/changes/<change-id>/convergence.md 및 제안 상태 archived.

확인 -> 적용 -> 검증

  1. 확인. 쓰기 전에 번들을 분류합니다: python .agents/skills/converge/scripts/converge.py check --tasks-dir ./tasks --json 번들은 QA 통과, 재작업 없음, 편차 표에 최소 하나의 행 또는 명시적 None 행이 있고, 사양에 이미 해당 마커가 없는 경우에만 수렴 준비가 된 것입니다.
  2. 적용. 하나의 번들을 수렴합니다: python .agents/skills/converge/scripts/converge.py apply --task tasks/<task-id> 먼저 --dry-run을 사용하여 계획된 쓰기를 검사하십시오. 헬퍼는 번들이 수렴 준비가 되지 않은 경우 종료 코드 1을 반환하고, --force가 제공되지 않은 경우 기존 아카이브 대상을 거부합니다.
  3. 검증. check를 다시 실행하여 마커가 존재하는지, 04-process.md가 CONVERGED를 나타내는지, 번들이 아카이브되었는지, --spec-sha256이 예상 CI 값과 일치하는지 확인합니다: python .agents/skills/converge/scripts/converge.py --spec .specs/02-tech-spec.md --spec-sha256

수동 폴백 (Python 없음)

헬퍼를 사용할 수 없는 경우, 동일한 단계를 수동으로 수행하고 마커를 정확하게 유지하십시오:

  1. 03에서 QA_PASSED가 확인되었고 REWORK_REQUIRED가 활성화되지 않았는지 확인합니다.
  2. 02에서 편차 행을 읽고, 빈 로그를 거부합니다.
  3. 사양의 Converged changes 섹션에 하나의 항목을 추가(편집하지 않음)합니다: ### <task-id> 제목, 편차 표, 및 <!-- converged: <task-id> sha256:<hash> --> 마커. SHA-256 도구를 사용하여 정규화된 태스크 ID와 행에 대한 해시를 계산합니다.
  4. 04에서 macro_status를 CONVERGED로 설정하고 TASK_CONVERGED / ConvergeTool 행을 추가합니다.
  5. 번들을 tasks/archive/<task-id>/로 이동(절대 삭제하지 않음)하고, 변경 제안이 있는 경우 제안을 아카이브하고 convergence.md를 작성합니다.
  6. 검증 단계를 다시 실행하고 증거를 기록합니다.

거부 조건

다음 중 하나라도 해당되면 수렴 대신 중지하고 보고하십시오:

  • QA 미통과 - 03에 확인된 QA_PASSED가 없거나 REWORK_REQUIRED가 여전히 활성 상태입니다.
  • 해결되지 않은 재작업 - 재시도 증거에 태스크가 재작업 중임을 나타냅니다. 새 판정을 기다리십시오.
  • 빈 편차 로그 - 구현 편차 표가 없거나 DEV 행 또는 명시적 None 행이 없습니다.
  • 사양 불일치(Spec drift) - modify/remove 편차가 사양에 포함되지 않은 #sec-* 앵커를 가리키는 경우; 사양과 편차 로그가 일치하지 않습니다. CI에서 check/apply와 함께 --strict를 실행하여 이 경고를 거부로 전환하십시오.
  • 아카이브 충돌 - tasks/archive/<task-id>/가 이미 존재하고 --force가 제공되지 않았습니다.

구조적 편차(새 모듈, 변경된 경계, 새로운 ADR 수준 결정)는 spec-generator로 에스컬레이션되어야 하며, 조용히 수렴되지 않습니다.

기록 및 귀속

수렴은 기록을 다시 작성하지 않습니다: 기존 사양 산문을 편집하는 대신 날짜와 작성자가 표시된 섹션을 추가합니다. 기존 항목은 바이트 단위로 안정적으로 유지되며, 모든 항목은 소스 태스크, QA 판정 및 ConvergeTool 행위자의 이름을 지정합니다. 새 태스크를 맞추기 위해 이전 수렴 항목을 편집하지 마십시오. 새 항목을 추가하고 충돌을 기록하십시오.

참조

  • references/convergence-protocol.md - 상태 머신, 누가 무엇을 쓰는지, 아카이브 레이아웃, 멱등성 마커, 충돌 규칙 및 구조적 에스컬레이션.
  • 역할 경계: references/role-boundaries.md — 쓰기 범위, 불변 조건 및 정직한 시행 모델(번들 포함, 외부 파일 불필요).
  • 태스크 번들 형식 및 역할 라이프사이클: task-decomposition 스킬(설치된 경우).
  • 핸드오프 입력: dev 스킬; 판정 입력: qa 스킬.
  • 저장소 규칙: 채택 프로젝트가 정의하는 경우 AGENTS.md 및 역할 규칙 파일을 읽으십시오. 이들은 요구 사항을 추가할 수 있지만 이 스킬에는 필요하지 않습니다.

정직한 한계

이 스킬은 쓰기 액세스를 부여하지 않으며 역할 격리를 강제할 수 없습니다. 저장소에 CI(예: git 기반 역할 감사) 또는 브랜치 보호가 있는 경우, 이것이 권위 있는 계층입니다. 번들된 헬퍼는 선택적 결정론적 보조 도구입니다. 마커와 기록된 증거가 계약입니다.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

formal-you/agent-skills-suite

Run a bounded brownfield change (bugfix, small feature, behavior tweak) against an existing spec or codebase: proposal -> one task bundle -> dev/QA -> converge -> archive. Use when an existing spec or codebase needs an incremental change (bugfix, small feature, behavior tweak) and a full PRD is overkill. Do not use for greenfield requirements (use prd-generator), architecture decisions (use spec-generator), or pure task slicing (use task-decomposition).

formal-you/agent-skills-suite

Implement one planned task bundle as the Dev role: read the contract, change only touch_files, run the machine-checkable DoD, fill 02-dev-workspace.md and hand off to QA. Use when a task contract exists and you are assigned implementation. Do not use for planning, task slicing, architecture, or QA verification.

formal-you/agent-skills-suite

Use on Windows for unexpected DSH sandbox access denials: workspace writes or listing fail, or an ordinarily readable path cannot be read. One bundled command inspects the path and every ancestor and repairs the ACL problems it proves in that same run. Expected confinement denials need no ACL repair.

formal-you/agent-skills-suite

Run the Gate 1 deterministic static check on task bundles before development starts and follow the Gate 2 review checklist. Use when task contracts exist under tasks/ and you need to verify blast radius, diff budget, declared-file topology, traceability anchors, spec anchor coverage, inherited ADRs, machine-checkable acceptance criteria, and DAG acyclicity. Do not use for code execution, CI pipeline construction, AST/complexity checks, or test audits (owned by quality-engineering).

관련 스킬