mint
드라이버(Drivers)는 작업을 조직하고 실행합니다. mint는 원자적 단위가 '완료'라고 불릴 수 있는 이유를 기록합니다.
License: MIT
Site
Ko-fi
에이전트(agent)는 성공을 보고합니다. 이 보고서는 증거가 아니라 문장일 뿐이며, 루프 내의 어떤 것도 이 둘을 구분하도록 요청받지 않았습니다. mint는 완료의 장소(completion floor)를 담고 있는 작은 CLI 도구입니다: 선언된 게이트(declared gates), 독립적인 검토(independent review), 그리고 검증한 정확한 소스에 바인딩되는 불변의 영수증(immutable receipt).
그것은 오직 그것만을 소유합니다. 사용자의 드라이버는 프로젝트, 티켓, 터미널, 에이전트, 작업 트리(worktrees), 재시도(retries), Git 및 배포를 관리합니다.
설치 (Install)
curl -fsSL https://raw.githubusercontent.com/3li7alaki/mint/main/install.sh | sh
정적 바이너리 하나입니다. 레포지토리 내에 .mint 디렉토리를 생성하지 않으며, .gitignore를 수정하지 않습니다. 상태는 $XDG_STATE_HOME/mint 아래에 존재하며, 레포지토리에 의해 키가 지정되고 작업 트리별로 격리됩니다. 테스트를 위해 이를 재정의하려면 MINT_STATE_HOME을 설정하세요.
실행 예시 (What a run looks like)
실제 출력이며, 상태 경로는 약어 처리되었습니다.
$ mint spec new "expose service health" --slug health-check \
--goal "Expose service health" --scope "src/**" \
--acceptance "WHEN the health endpoint is called, THE service SHALL return its status"
...
그것은 diff를 자체 안전 등급으로 분류하고, 독립적인 적대적(adversarial) 및 안전 검사(safety check)가 판결문(verdict)에 증명될 때까지 영수증 발행을 거부합니다. 이들을 첨부하고 다시 실행하세요:
$ mint done health-check 001 --attempt maker-1 --verdict verdict.json
PASS - floor clean, done
ok clause 1: verifiable-completion
...
단위의 선언된 범위 내에서 파일을 하나 변경한 다음, 다시 요청합니다:
$ mint receipt verify .../20260726T120221Z-2169e1977a45.json
stale sha256:3118a072308ac4a7f0e5b9ef13394b505c7aebdb0a93fcc7a1aa9fc4d2337248 - source snapshot changed after receipt issuance
이것이 전체 제품입니다. 자신이 설명했던 코드를 초월하는 주장은 더 이상 주장이 아니며, 이제 당신은 질문할 수 있습니다.
The floor
오타 수정과 인증 재작성(auth rewrite)에 모두 적용되는 7가지 고정 조항이 있습니다: 검증 가능한 완료(verifiable completion), 제작자 및 검토자 독립성(maker and checker independence), 안전 예외 처리(safety carve-out), 안티 게이밍(anti-gaming), 범위(scope), 유한 종단 상태(bounded terminal state), 그리고 바닥 제한 결과 행동(floor-gated consequential action)입니다.
선택적 최상위 <protected> 블록은 범위가 허용하더라도 안티 게이밍 조항이 플래그를 지정하는 경로를 추가합니다. <path> 자식 요소나 쉼표로 구분된 목록을 사용하거나, mint spec new 또는 mint spec set에 --protected <paths>를 전달하십시오. 기본값은 항상 CI 워크플로우와 후크 구성을 보호하며, 빈 블록은 이러한 기본값을 유지합니다. 플래그가 지정된 수정 사항에는 독립적인 판결에서 tamperingReviewed: true와 실질적인 tamperingReason이 필요합니다.
시도가 기준선(baseline)을 가지고 있을 때 게이트는 깨끗한 재생 워크트리에서 실행됩니다. 보호된 경로는 그곳에서 기준선 콘텐츠로 복원됩니다. 무시되는 파일은 존재하지 않으므로, 종속성 및 로컬 환경 파일을 위해 선택적 최상위 <prepare> 셸 명령(또는 mint spec new 및 mint spec set의 경우 --prepare)을 사용하십시오. 이 명령어는 MINT_SOURCE_ROOT가 라이브 워크트리를 가리키면서 게이트보다 먼저 실행되며, 예시로 cp "$MINT_SOURCE_ROOT/.env" .와 같습니다.
게이트 및 준비(prepare) 출력은 <state>/attempts/<slug>/<spec>/<attempt>.logs/에 저장됩니다. 전체 검증 실행(full verify run)마다 이 로그가 대체되며, mint verify는 통과하지 못한 각 게이트의 마지막 20줄을 출력합니다. 준비 과정이 실패하면, 준비 로그 끝부분을 출력하고 해당 게이트를 실행되지 않음으로 표시합니다. 게이트가 결론을 내릴 수 없는(inconclusive) 경우는 준비 과정이 실패했거나, 명령어를 시작할 수 없었거나, 126 또는 127로 종료되었거나, 신호에 의해 직접 중단된 경우입니다. '결론을 내릴 수 없음'은 절대 통과로 간주되지 않습니다.
독립성은 구조적입니다. 일반 작업은 동일한 공급업체(vendor)에 의해 별도의 실행 참조(execution reference)에서만 검사될 수 있습니다. 같은 공급업체의 다른 실행자(executor)가 이를 확립하지는 않습니다. 안전성 검토(Safety reviews)와 안전 등급 승인(safety-tier acceptance)에는 제작자와 다른 공급업체가 필요합니다.
<risk>safety</risk>를 선언하는 스펙은 절대적이라는 것을 의미합니다. 만약 플로어(floor)가 디프(diff)를 읽어서 티어를 추론한 경우, 단일 공급업체 박스(single-vendor box)는 차단되지 않습니다. 체커(checker)가 vendorDiversityWaived와 실질적인 vendorDiversityReason을 판결에 증명하면, 해당 유닛은 '없음(none)'이 아닌 정상 독립성으로 떨어지며, 영수증에는 vendorDiverse: false가 기록되어 약한 증거가 숨겨지지 않고 보이게 됩니다.
출처(Provenance)는 선언된 기록입니다. executor, vendor, model, locality, 그리고 executionRef는 불투명하지만 귀속 가능한 주장들입니다. mint는 이들을 저장하며, 실행기 레지스트리나 바이너리 어댑터는 소유하지 않습니다. 또한 볼 수 없는 신원을 인증한다고 주장하지 않습니다.
디스패처(Dispatchers)는 판결이 mint가 시작한 프로세스로부터 나오도록 --checker-executor, --checker-vendor, --checker-model, --checker-locality, 그리고 --checker-execution-ref를 포함하여 mint done --checker '<shell command>'를 선호해야 합니다. 체커는 게이트(gates) 실행 후 stdin을 통해 스펙, 변경된 파일들, 패치, 그리고 게이트 결과를 JSON 형식으로 받습니다. 그 첫 번째 비어있지 않은 stdout 라인은 반드시 ALLOW: <reason> 또는 BLOCK: <reason>이어야 하며; 이후의 ATTEST adversarial: <reason>, ATTEST safety: <reason>, ATTEST tampering: <reason>, 또는 ATTEST vendorDiversity: <reason> 라인이 증명(attestations)을 제공합니다. --checker-timeout은 기본값으로 15m입니다. 타임아웃, 프로세스 실패, 또는 잘못된 출력은 완료를 거부합니다. --checker와 --verdict는 상호 배타적입니다. 영수증은 실행된 체크에 대해 verdictSource: "checker"를 기록하며; 판결 파일은 기본적으로 `
- 작업 관리자가 아닙니다. 티켓(Tickets), 워크트리(worktrees), 브랜치(branches), 재시도(retries)는 드라이버(driver)와 함께 유지됩니다.
- 무엇을 구축할 가치가 있는지에 대한 결정이 아닙니다. 그것은 blueprint입니다.
- 에이전트 러너(agent runner)가 아니며, 누가 무엇을 실행했는지에 대한 권위도 아닙니다.
More
Support
mint는 무료이며 MIT 라이선스를 따르며, 가격 책정 페이지가 없습니다. 만약 이로 인해 오후 시간을 절약했다면, 그것은 커피 한 잔 값 정도의 가치가 있습니다.
ko-fi
자신만의 스택(stack)을 위해 이와 유사한 것을 구축해야 하나요? 커미션은 ko-fi.com/3li7alaki에서 열려 있습니다.
License
MIT. LICENSE를 참조하십시오.