Communitygithub.com

BEKO2210/SkillQuarry

에이전트 기술을 위한 개방형 마켓플레이스

SkillQuarry란 무엇인가요?

이 스킬은 코딩 에이전트 변경 사항을 수용할 수 있는 결정론적 게이트 역할을 하는 Cordon CLI 도구에 대한 상세한 문서를 제공합니다. 에이전트가 작업을 완료한 후 Cordon은 Git HEAD를 스냅샷하고 명시적인 저장소 상대 경로와 크기 정책을 기록한 다음, Git에 표시되는 변경 사항이 해당 정책을 준수하고 모든 독립 검증기가 정상 종료 코드(0)를 반환하는 경우에만 수락합니다. 이 도구는 '에이전트는 X만 건드려야 한다'는 규칙이 에이전트가 내부적으로만 기억하는 것이 아니라 코드로 강제되어야 할 때 유용하며, JetBrains, Cursor, Claude Code, Windsurf, Codex CLI와 같은 다양한 환경에서 에이전트를 래핑할 수 있습니다. Cordon은 허용/거부 패턴, 파일 수 제한, 추가/삭제 라인 예산, 사용자 정의 검증 명령을 지원하며, 실패한 실행을 재개할 수 있는 복구 메커니즘을 갖추고 있지만 무시된 파일이나 악의적인 프로세스로부터의 완전한 보안을 보장하지 않는다는 점을 명확히 하고 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add BEKO2210/SkillQuarry

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

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

문서

Cordon — 결정론적 변경 범위(change envelopes)

Cordon은 코딩 에이전트 변경 사항을 실행 후 수용하는 레이어입니다. 현재 Git HEAD를 스냅샷하고 명시적인 저장소 상대 경로와 크기 정책을 기록한 다음, Git에 표시되는 변경 사항이 해당 정책 내에 있고 모든 독립 검증기가 정상 종료(0)할 때만 결과를 수락합니다.

"에이전트는 X만 건드려야 한다"는 규칙이 에이전트가 내부적으로 기억하는 것이 아니라 코드로 강제되어야 할 때 Cordon을 사용하십시오. Cordon을 샌드박스라고 부르지 마십시오. 무시된(ignored) 파일은 v1 증거 모델 범위 밖이며, 제한되지 않은 파일시스템 접근 권한을 가진 프로세스는 Cordon 자체 상태를 변조할 수 있습니다.

모드 선택

벤더 중립적: 준비(arm), 모든 에이전트 실행, 검사(check)

cordon arm "파서만 업데이트" \
  --allow "src/parser/**" \
  --allow "tests/parser/**" \
  --deny "src/parser/generated/**" \
  --max-files 8 \
  --max-added-lines 400 \
  --max-deleted-lines 200 \
  --verify "python3 -m unittest discover -s tests"

# 코딩 에이전트를 직접 실행합니다.
cordon check

이 모드는 AI 서비스를 호출하지 않습니다.

Claude Code 래퍼

cordon run "생성된 파일을 변경하지 않고 파서 회귀 버그를 수정하세요." \
  --allow "src/parser/**" \
  --allow "tests/parser/**" \
  --deny "src/parser/generated/**" \
  --verify "python3 -m unittest discover -s tests" \
  --max-files 8 \
  --max-added-lines 400 \
  --max-deleted-lines 200 \
  --max-turns 20 \
  --max-budget-usd 2

Cordon은 JSON 출력, 세션 지속성 비활성화, 권한 모드 acceptEdits로 새 claude -p 프로세스를 시작합니다. 실패/중단된 실행은 cordon resume을 사용하여 새 프로세스로 재시도할 수 있지만, 부분적인 Git 표시 변경 사항이 여전히 설정된 범위(envelope)를 만족하고 시도 한도에 도달하지 않은 경우에만 가능합니다.

결과 읽기

종료 코드의미
0감사 수락됨
2Cordon이 작업을 거부했거나 상태/정책이 유효하지 않음
3에이전트/프로세스가 종료되었지만 Git 정책 또는 검증기가 결과를 거부함
4래핑된 Claude 프로세스가 실패, 시간 초과 또는 캡처된 출력 제한을 초과함

cordon status는 현재 단계와 마지막 감사를 보고합니다. cordon reset은 .cordon/만 제거합니다. 저장소 파일을 되돌리거나, 삭제하거나, 커밋하지 않습니다.

정책 규칙

  • 최소한 하나의 --allow 패턴이 필수입니다.
  • --deny는 항상 --allow보다 우선합니다.
  • 패턴은 저장소 상대 경로 Cordon 글로브(glob)입니다: *는 /를 넘지 않고, **는 넘으며, ?는 /가 아닌 문자 하나와 일치합니다.
  • Cordon은 절대 경로 패턴(/x, ./x), NUL 바이트, 명시적인 . / .. 경로 세그먼트를 거부합니다.
  • HEAD 이동은 기본적으로 거부됩니다. 커밋이 작업의 의도된 일부인 경우에만 --allow-commits를 사용하십시오.
  • 예산은 포함적입니다. 정확히 제한에 도달하면 수락되고, 하나라도 초과하면 거부됩니다.
  • 검증기는 shlex.split으로 파싱되어 셸을 거치지 않고 직접 실행됩니다. 따라서 &&, 파이프, 리디렉션 같은 셸 연산자는 해석되지 않습니다.

상태 및 복구

Cordon은 상태를 .cordon/에 저장하고 /.cordon/을 .git/info/exclude에 등록합니다. .gitignore는 편집하지 않습니다.

또한 Cordon은 추적된 파일이 assume-unchanged 또는 skip-worktree 인덱스 플래그를 가지고 있으면 준비(arm)를 거부합니다. 이러한 파일은 감사할 수 없기 때문입니다. git update-index --no-assume-unchanged <path>로 플래그를 해제하고 해결 방법을 사용하지 마십시오.

Cordon 의미 상태에 대한 쓰기는 임시 파일 + fsync + os.replace를 사용합니다. Git 메타데이터(cordon.lock)를 통해 확인된 제로 길이 동기화 inode는 OS 권고 잠금(advisory lock)으로 유지됩니다. 이는 .cordon/ 상태의 일부가 아니며 잠겨 있는 동안 대체되지 않습니다. 잠금은 두 개의 Cordon 작업이 동시에 동일한 저장소 상태를 소유하는 것을 방지합니다(준비/설정 + 래핑된 에이전트 시도 포함). Claude 시도는 자식 프로세스가 시작되기 전에 running으로 표시됩니다. 키보드 인터럽트는 interrupted로 유지됩니다. 엔진 오류는 유지되며 재개할 수 있습니다.

Cordon이 증명하는 것 — 그리고 증명하지 않는 것

Cordon은 준비된 기준선(baseline)과 실행되는 Git 구현에 대해 감사 시점에 관찰된 Git 표시 추적 변경 사항 및 무시되지 않은 untracked 파일이 정책을 충족하고 구성된 검증기 프로세스가 정상 종료되었음을 증명할 수 있습니다.

다음은 증명하지 않습니다:

  • 무시된 파일이 손대지 않았음;
  • 상태를 다시 쓸 수 있는 악의적인 프로세스로부터 저장소가 안전함;
  • 검증기가 논리적으로 올바름;
  • 에이전트 런타임의 권한/훅이 우회될 수 없음;
  • diff가 작다는 이유만으로 코드가 안전함.

수락 후 diff를 검토하십시오. Cordon은 결정론적 게이트이지 코드 리뷰나 OS 수준 샌드박싱을 대체하지 않습니다.

전체 구현 및 경계 세부 사항: README.md. 소스 증거: RESEARCH.md. 재현 가능한 테스트 및 알려진 제한 사항: TEST_REPORT.md.

관련 스킬