영어 | Русский
<p align="center"><img src="https://raw.githubusercontent.com/Kibertum/tausik-core/HEAD/docs/assets/tausik-logo.png" width="200" alt="TAUSIK"></p>
TAUSIK
'완료됨(done)'을 조용히 위장할 수 없는 AI 코딩 에이전트.
TAUSIK은 사용자가 이미 사용하는 AI 코딩 에이전트(Claude Code, Cursor, Codex 등) 위에 위치하여 그 작업물을 검사합니다. 에이전트는 코드를 수정하기 전에 "완료됨(done)"의 정의가 포함된 작업을 열어야 하며, 작업을 닫기 전에 통과하는 검사 결과(passing checks)를 보여주어야 합니다. 모든 결정과 실패한 접근 방식은 다음 세션에 기억됩니다. 신뢰만으로 "테스트 통과(tests pass)"를 받아들이고 싶지 않은 개발자를 위한 도구입니다.
작동 원리. 이 분야에서는 이 학문을 *하네스 엔지니어링(harness engineering)*이라고 부릅니다. 하네스는 에이전트 루프(agent loop), 도구 인터페이스(tool interface), 컨텍스트 관리(context management) 및 제어 메커니즘을 의미합니다. TAUSIK은 하네스가 아닙니다. 루프와 도구는 Claude Code, Cursor, Codex 등 다른 에이전트가 소유하고 있습니다. TAUSIK은 이들 위에 놓이는 검증 및 제어 계층입니다. 차별점은 증거 없이는 아무것도 "완료됨(done)"으로 간주되지 않는다는 것입니다.
v1.11.11
signed receipts: ed25519
14116 tests
coverage 76%
0 dependencies
License: Apache 2.0
Python 3.11+
거짓말을 포착하는 것을 확인하세요
이것은 tausik demo의 실제 출력물입니다 (약 10초 소요, 네트워크 연결 없음, LLM 키 불필요, 임시 샌드박스에서 실행):
== 에이전트가 테스트를 실행하지 않고 "테스트 통과(tests pass)"라고 말하며 종료를 시도합니다.
오류: QG-2 구현 게이트 실패: verify-first — QG-2: 작업 'fix-add'가 relevant_files를 선언하지 않았으므로, 어떤 verify 실행으로도 이를 인증할 수 없습니다...
...
설치 후 직접 실행해 보세요: .tausik/tausik demo.
설치
Python 3.11 이상 버전과 git이 필요합니다. --ide claude|cursor|qwen|kilo|opencode|codex를 사용하여 호스트를 명시적으로 선택하거나 (--ide all) 생략할 수 있습니다. 생략할 경우, 부트스트랩(bootstrap)은 하나의 호스트 환경, 기록된 프로필 또는 프로필 디렉토리가 모호하지 할 때만 진행되며, Claude로 조용히 폴백(fallback)되지 않습니다. 프로젝트 내에서 다음을 수행하세요:
git submodule add https://github.com/Kibertum/tausik-core .tausik-lib
python .tausik-lib/bootstrap/bootstrap.py --ide cursor --init
echo ".tausik/" >> .gitignore
그런 다음 IDE를 재시작하세요. IDE는 MCP(Model Context Protocol, AI 에이전트가 외부 도구를 호출하는 표준 방식)를 통해 TAUSIK과 통신하며, 새로운 MCP 서버는 시작 시에만 인식합니다. 부트스트랩은 사용자의 스택을 감지하고 일치하는 검사를 활성화합니다.
작동 확인하기
.tausik/tausik status
.tausik\tausik.cmd status
Tasks: 0/0 done이 표시되어야 합니다. 명령어를 찾을 수 없다는 메시지가 나타나면 부트스트랩이 완료되지 않은 것입니다. 다시 실행하고 마지막 줄을 읽어보세요.
첫 번째 작업 수행하기
에이전트에게 다음 세 가지를 말하세요:
fix the bug — button doesn't work on mobile
에이전트는 세션을 열고, 인수 조건(acceptance criteria, '완료됨'을 정의하는 체크리스트)과 함께 작업을 작성하고, 변경 사항을 적용하며, 테스트와 검토를 실행하고, 모든 기준을 확인한 후 커밋합니다. 사용자가 결과를 설명하면; TAUSIK은 에이전트가 그렇지 않았다면 건너뛰었을 단계들을 수행하도록 만듭니다.
전체 빠른 시작 가이드 → · 에이전트 빠른 시작 → (AI 에이전트를 위해 작성됨)
사용자에게 달라지는 점
| 사용자의 에이전트 동작 | TAUSIK의 동작 |
|---|
| "그냥 이걸 리팩토링할게"라고 말하며 30개 파일을 수정함 | 차단됨(Blocked). 작업이 열릴 때까지 코드 수정 불가. |
| ... | |
차이점은 한 단어: **증거(evidence)**입니다.
두 가지 체크포인트
작업 시작 전: 목표나 인수 조건이 없음 → 작업을 시작할 수 없습니다.
$ .tausik/tausik task start fix-mobile-button
BLOCKED (QG-0): task has no acceptance criteria.
Define what "done" means before writing code.
작업이 종료되기 전에: 현재 커밋에 대한 통과 검사(passing check)가 없으면 → 작업은 종료될 수 없습니다.
$ .tausik/tausik task done fix-mobile-button --ac-verified
BLOCKED (QG-2): no valid verification receipt for HEAD a1b2c3d.
Run `tausik verify --task fix-mobile-button` first.
이 메시지들은 QG-0과 QG-2(quality gates, 품질 게이트)를 지칭합니다. 체크포인트가 결정을 내릴 수 없으면 작업을 통과시키기보다는 차단합니다.
이것이 약속하지 않는 것. TAUSIK은 정직한 에이전트가 이탈하는 것을 막습니다. 이는 의도적으로 우회하려는 에이전트에 대한 샌드박스(sandbox)는 아닙니다. 대신, 그러한 시도를 가시화하고 기록할 뿐입니다. 또한 토큰을 절약해 줄 것이라는 약속도 없습니다: 한 측정(1.9절에서 언급됨)에 따르면 이 쌍(측정 대상 기능이 있든 없든 동일하게 실행된 작업들)에서는 절약되는 부분이 발견되지 않았습니다 — 198,848개 대 195,055 토큰(+1.9%), 탐색 중 읽은 바이트는 326,323개 대 292,715바이트(+11.5%)였으며, 코드 검색 도구(search_code)는 호출된 적이 없었습니다. 전체 목록은 **알려진 제한 사항 →**에 있습니다.
서명된 영수증 (Signed receipts)
tausik verify는 사용자의 검사를 실행하고, 커밋과 연결된 ed25519 키로 그 결과를 서명합니다. task done은 작업이 종료되기 전에 해당 서명을 확인합니다. 오프라인으로 영수증을 확인할 때는 tausik receipt verify <file>를 사용할 수 있으며, 누가 발행했는지 추가로 증명하려면 프로젝트의 공개 키(--pub)를 전달할 수 있습니다.
서명된 영수증 작동 방식 →
왜 .cursorrules / AGENTS.md가 아닌가?
이들은 **제안(suggestions)**입니다. 에이전트가 읽을 수 있지만, 불편할 경우 무시할 수 있는 텍스트에 불과합니다. TAUSIK은 **차단(blocks)**합니다: 후크(hooks)(IDE가 각 에이전트 액션 전에 실행하는 스크립트)는 작업 없이는 편집을 거부하고, 종료는 증거 없이 거부하며, 영수증은 결과를 입증합니다.
무엇이 들어있는지
- 생명 주기를 가진 태스크(Tasks with a lifecycle) — 에픽(Epic) → 스토리(Story) → 태스크(Task); 태스크는 완료 정의(definition of done) 없이는 시작할 수 없고, 증거 없이 종료될 수도 없습니다.
- 서명된 영수증(Signed receipts) — 오프라인에서 검증 가능하며, 스킬 및 스택 릴리스 또한 서명됩니다.
- 프로젝트 메모리(Project memory) — 결정 사항, 패턴, 관례, 그리고 실패한 시도들이 로컬 SQLite 데이터베이스에 저장되며, 모든 새로운 세션에 로드됩니다.
- 공유 지식 기반(A shared knowledge base) — 사용자별로, 프로젝트 전반에 걸쳐, 오직 사용자의 기기에만 존재합니다. 프로젝트 메모리와의 차이점은 여기서 확인하세요 →
- 후크(Hooks) — 태스크 없이는 코딩할 수 없습니다. 위험한 셸 명령어에 대한 가드, 푸시(push)마다 한 번만 사용할 수 있는 티켓, 자동 포맷팅 기능 등을 제공합니다.
- 메트릭 및 모델 라우팅(Metrics and model routing) — 처리량(throughput), 첫 번째 시도 성공률(first-pass success), 태스크당 비용(cost per task)을 측정하며, 간단한 태스크의 경우 더 저렴한 모델(Claude, z.ai GLM)을 추천합니다.
<details>
<summary>원시 카운트</summary>
- 152 MCP 도구 — 프로젝트 데이터베이스에 대한 완전한 프로그래밍 방식 접근 권한.
- 24개의 실시간 후크(real-time hooks) — 태스크 게이트, bash 방화벽, 푸시 게이트, 자동 포맷팅, 드리프트 감지(drift detection), 메모리 사전/사후 감사(pre/post audit) 등 다수.
- 25개의 스택 인식 검증 스위트(stack-aware verify suites) — pytest, ruff, mypy, tsc, eslint, cargo, go vet, phpstan, helm-lint, hadolint 등을 포함하며, 사용자가 건드린 파일 범위로 제한됩니다.
- 14개의 핵심 스킬이 자동 배포되며; 공식 스토어에는
docs, excel, pdf만 있고, 하나씩 설치되므로 사용하지 않는 명령어는 프롬프트 비용을 추가로 발생시키지 않습니다.
- 6가지 자동 메트릭, 공유 로컬 지식 저장소 (
~/.tausik-knowledge, --global), 배치 실행 (/run plan.md).
</details>
지원되는 IDE
| IDE | MCP 도구 | 스킬 | 후크 | 상태 |
|---|
| Claude Code | 152 | 14개 핵심 + 옵트인 | 24 (전체) | 최상위급(First-class) |
| ... | | | | |
후크는 Claude Code, Qwen Code 및 Codex에서 실행됩니다 (Codex는 사용자가 프로젝트를 신뢰한 후에만 후크를 실행합니다 — Codex 강제 적용 매트릭스 참조). 다른 호스트들도 동일한 도구와 스킬을 얻으며, 체크포인트는 태스크 시작 및 태스크 완료 시점에 적용됩니다. | | | | |
증명: TAUSIK이 TAUSIK을 구축했다
TAUSIK의 모든 기능과 수정 사항은 제품에 포함되는 것과 동일한 검증 과정을 거쳤습니다.
- 모든 작업은 목표와 승인 기준(acceptance criteria)을 가지고 완료되었으며, 통과하는 검증 없이는 없습니다.
- 14,116개의 테스트를 포함하며,
scripts/ 디렉터리의 **76% 라인 커버리지(line coverage)**를 달성했습니다 (재설정 방법: pytest tests/ --cov=scripts --cov-report=json:coverage.json).
- 핵심 의존성(core dependencies)은 0개입니다 — Python 3.11 이상 표준 라이브러리만 사용하며, MCP 패키지는 격리된
.tausik/venv/에 위치합니다.
- 공개된 업데이트 엔드포인트는 하나입니다 — 모든 세션 시작 시도는 익명의 GET 요청을
api.github.com/repos/Kibertum/tausik-core/releases/latest로 전송합니다. 더 새로운 릴리스가 감지되면 시작이 차단됩니다. 이 요청에는 프로젝트 이름, 경로(path), 사용자, 스키마 또는 설치된 버전 정보가 포함되지 않습니다. .tausik/config.json 파일의 "updates": {"check": false} 설정은 요청을 보내지 않아 명시적인 검증되지 않은 버전 경고와 함께 시작할 수 있게 합니다. 독립적으로 캐싱되는 확인(cached check)은 최대 일일 단위로 이루어집니다.
그 기반이 되는 표준 (The standard behind it)
TAUSIK은 2026년 9월 23일 기준으로 자체 선언한 SENAR v1.5 Core를 준수합니다. SENAR는 AI 지원 개발을 위한 개방형 엔지니어링 표준입니다. TAUSIK을 사용하기 위해 이를 읽을 필요는 없습니다. 이 표준이 요구하는 공개 범위는 다음과 같습니다: §13.5에 따라 SHALL(반드시 해야 하는 것)은 처리되며, 주장된 범위 내에서 구현되지 않은 SHOULD(해야 하는 것)는 없습니다. TAUSIK과 SENAR → · 준수 매트릭스 →
새로운 기능 (What's new)
측정된 이점과 그 솔직한 한계를 포함하여 **1.11에서 변경된 사항 →**을 확인하세요. 이전 버전: 1.10 →, 1.9 →, 1.8 →. 문서와 실제 동작 간의 불일치를 발견했습니까? 이슈 제기(File an issue).
라이선스 (License)
Apache License 2.0