tink-harness 1.17.0 → 1.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tink",
3
3
  "description": "A small harness layer for Claude Code and Codex.",
4
- "version": "1.17.0",
4
+ "version": "1.17.2",
5
5
  "author": {
6
6
  "name": "dotori"
7
7
  }
package/CHANGELOG.md CHANGED
@@ -4,6 +4,17 @@ All notable changes to Tink are tracked here.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## [1.17.2] - 2026-06-30
8
+
9
+ - E2E 테스트 5종 추가: install smoke, update preservation, Codex surface, pack manifest, metadata 검증.
10
+ - `package.json` scripts 분리: `test:templates`, `test:syntax`, `test:metadata`, `test:pack`, `test:e2e`, `check`.
11
+ - CI에 macOS 매트릭스 추가 및 `test:pack`, `test:e2e` step 포함.
12
+ - `CONTRIBUTING.md` 테스트 명령표 갱신, `README.md`/`README.ko.md`에 Verification 섹션 추가.
13
+
14
+ ## [1.17.1] - 2026-06-30
15
+
16
+ - README / README.ko.md에 Before→After 대비 블록과 run record·verify evidence 실물 예시 추가.
17
+
7
18
  ## [1.17.0] - 2026-06-30
8
19
 
9
20
  - `loop-engineering` 하네스 추가: 측정 가능한 수용 신호(테스트·lint·build 통과, 커버리지, 벤치마크, 점수 등)를 향해 한 번에 한 병목씩 반복하고, 예산 초과 시 현재 상태·원인·다음 행동을 보고한다. 독립 평가(자기 채점 금지)와 반복 로그를 강제. `goal-checkpoint`(일반 다단계)·`bug-diagnosis-loop`(버그 진단)와 `use_when`에서 명시적으로 구분됨.
package/README.ko.md CHANGED
@@ -83,6 +83,24 @@ $tink:cast 인증 모듈 리팩터링 # Codex
83
83
 
84
84
  ## 실제로 남는 것
85
85
 
86
+ **Tink 없이 (Claude Code / Codex 단독):**
87
+
88
+ ```text
89
+ "인증 모듈 리팩터링"
90
+ → 계획은 채팅 기록에만
91
+ → 완료 기준 없음
92
+ → 다음 세션에서 맥락 소실
93
+ ```
94
+
95
+ **Tink 사용 후 (`/tink:cast 인증 모듈 리팩터링`):**
96
+
97
+ ```text
98
+ → .tink/current/contract.json — 완료 조건
99
+ → plan.md / checks.md — 보이는 계획 + 검증 단계
100
+ → /tink:verify — "된 것 같다"가 아닌 증거로 증명
101
+ → .tink/runs/…md — 재사용 가능한 간결한 기록
102
+ ```
103
+
86
104
  사소하지 않은 작업마다 열어보고, diff하고, 커밋할 수 있는 평범한 파일이 남습니다:
87
105
 
88
106
  ```text
@@ -96,6 +114,34 @@ $tink:cast 인증 모듈 리팩터링 # Codex
96
114
  refactor-review.md # 재사용 작업 방식 — 승인해야 저장
97
115
  ```
98
116
 
117
+ <details>
118
+ <summary><strong>완성된 run은 이렇게 남습니다</strong></summary>
119
+
120
+ **Run 기록** (`.tink/runs/YYYY-MM-DD-HHMM-작업명.md`):
121
+
122
+ ```text
123
+ Status: completed
124
+ Goal: Codex에서 직접 호출 가능한 entrypoint 스킬 추가.
125
+ Changed: `$tink:<action>` 별칭을 인식하도록 main `tink` 스킬 수정; 래퍼 스킬 추가.
126
+ Evidence: `find … | rg 'tink(-|/)'` 로 모든 SKILL.md와 main 스킬 확인.
127
+ Notes: 재사용 메모리·하네스 변경 없음.
128
+ ```
129
+
130
+ **Verify 증거** (`/tink:verify`, 두 가지 사례):
131
+
132
+ ```text
133
+ ✅ evidence_kind: command
134
+ evidence_ref: npm test
135
+ observed: 테스트 47개 통과, 실패 없음
136
+
137
+ ⚠️ evidence_kind: manual
138
+ evidence_ref: 클린 설치 스모크 테스트 (macOS)
139
+ observed: 미실행 — CI 러너는 Linux 전용
140
+ next_action: 배포 전 macOS에서 수동 실행 필요
141
+ ```
142
+
143
+ </details>
144
+
99
145
  ## CLAUDE.md·슬래시 명령·스킬만으로는 왜 부족할까?
100
146
 
101
147
  | 도구 | 제공하는 것 | Tink가 얹는 것 |
@@ -250,9 +296,20 @@ npx tink-harness@latest update
250
296
 
251
297
  코딩 에이전트도, 워크플로 엔진도, 멀티 에이전트 런타임도, 프롬프트 라이브러리도 아닙니다. Claude Code와 Codex 위에 얹는 작은 하네스 레이어입니다.
252
298
 
299
+ ## 검증
300
+
301
+ ```bash
302
+ npm test # 템플릿 동기화, 문법, 버전 일치
303
+ npm run test:pack # 배포 파일 목록: 필수 파일 존재, 시크릿 미포함
304
+ npm run test:e2e # tmpdir 실제 설치, 업데이트 보존, Codex 서피스
305
+ npm run check # npm test + test:pack 한 번에
306
+ ```
307
+
308
+ CI는 Ubuntu와 macOS에서 `npm test`, `test:pack`, `test:e2e`를 모두 실행합니다.
309
+
253
310
  ## 기여
254
311
 
255
- 이슈와 PR을 환영합니다. [CONTRIBUTING.md](CONTRIBUTING.md)를 참고하세요 — 핵심은 `npm test` 실행, 명령 템플릿 3벌 동기화, 문제/해결/검증 구조의 설명입니다.
312
+ 이슈와 PR을 환영합니다. [CONTRIBUTING.md](CONTRIBUTING.md)를 참고하세요 — 핵심은 `npm test && npm run test:pack` 실행, 명령 템플릿 3벌 동기화, 문제/해결/검증 구조의 설명입니다.
256
313
 
257
314
  Tink가 시간을 아껴줬다면 ⭐ 하나가 다른 개발자들이 Tink를 찾는 데 큰 도움이 됩니다.
258
315
 
package/README.md CHANGED
@@ -83,6 +83,24 @@ $tink:cast refactor the auth module # Codex
83
83
 
84
84
  ## What you actually get
85
85
 
86
+ **Before (plain Claude Code / Codex):**
87
+
88
+ ```text
89
+ "refactor the auth module"
90
+ → plan lives in chat only
91
+ → no completion criteria
92
+ → context lost next session
93
+ ```
94
+
95
+ **After (`/tink:cast refactor the auth module`):**
96
+
97
+ ```text
98
+ → .tink/current/contract.json — what must be true when done
99
+ → plan.md / checks.md — visible plan and verification steps
100
+ → /tink:verify — proves "done" with evidence, not vibes
101
+ → .tink/runs/…md — compact record, reusable next time
102
+ ```
103
+
86
104
  Every non-trivial task leaves plain files you can open, diff, and commit:
87
105
 
88
106
  ```text
@@ -96,6 +114,34 @@ Every non-trivial task leaves plain files you can open, diff, and commit:
96
114
  refactor-review.md # reusable ways of working — approval-gated
97
115
  ```
98
116
 
117
+ <details>
118
+ <summary><strong>What a finished run actually looks like</strong></summary>
119
+
120
+ **Run record** (`.tink/runs/YYYY-MM-DD-HHMM-task.md`):
121
+
122
+ ```text
123
+ Status: completed
124
+ Goal: make Tink easier to invoke in Codex with direct entrypoint skills.
125
+ Changed: updated main `tink` skill to recognize `$tink:<action>` aliases; added thin wrapper skills.
126
+ Evidence: `find … | rg 'tink(-|/)'` showed all SKILL.md files plus the main skill.
127
+ Notes: no reusable memory or harness was changed.
128
+ ```
129
+
130
+ **Verify evidence** (`/tink:verify`, two outcomes):
131
+
132
+ ```text
133
+ ✅ evidence_kind: command
134
+ evidence_ref: npm test
135
+ observed: 47 tests passed, 0 failures
136
+
137
+ ⚠️ evidence_kind: manual
138
+ evidence_ref: clean install smoke (macOS)
139
+ observed: not run — CI runner is Linux only
140
+ next_action: run manually on macOS before publish
141
+ ```
142
+
143
+ </details>
144
+
99
145
  ## Why not just CLAUDE.md / slash commands / skills?
100
146
 
101
147
  | Tooling | What it gives you | What Tink adds on top |
@@ -258,9 +304,20 @@ Verify: `docs/update-verification-recipe.md` or `docs/update-verification-recipe
258
304
 
259
305
  Tink is not a coding agent, workflow engine, multi-agent runtime, or prompt library. It is a small harness layer for Claude Code or Codex.
260
306
 
307
+ ## Verification
308
+
309
+ ```bash
310
+ npm test # template sync, syntax, version parity
311
+ npm run test:pack # pack manifest: required files, no secrets
312
+ npm run test:e2e # real install into tmpdir, update preservation, Codex surface
313
+ npm run check # npm test + test:pack together
314
+ ```
315
+
316
+ CI runs `npm test`, `test:pack`, and `test:e2e` on Ubuntu and macOS.
317
+
261
318
  ## Contributing
262
319
 
263
- Issues and pull requests are welcome. Start with [CONTRIBUTING.md](CONTRIBUTING.md) — the short version: run `npm test`, keep command templates in sync across their three copies, and describe changes as problem / solution / verification.
320
+ Issues and pull requests are welcome. Start with [CONTRIBUTING.md](CONTRIBUTING.md) — the short version: run `npm test && npm run test:pack`, keep command templates in sync across their three copies, and describe changes as problem / solution / verification.
264
321
 
265
322
  If Tink saves you time, a ⭐ helps other developers find it.
266
323
 
package/VERSIONING.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Versioning
2
2
 
3
- Current version: `1.17.0`
3
+ Current version: `1.17.2`
4
4
 
5
5
  Tink follows semver from `1.0.0` onward.
6
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tink-harness",
3
- "version": "1.17.0",
3
+ "version": "1.17.2",
4
4
  "description": "Self-growing harnesses for Claude Code and Codex.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -23,8 +23,13 @@
23
23
  "LICENSE"
24
24
  ],
25
25
  "scripts": {
26
- "test": "python tests/test_templates.py && node --check bin/install.js",
27
- "check": "npm test"
26
+ "test": "npm run test:templates && npm run test:syntax && npm run test:metadata",
27
+ "test:templates": "python tests/test_templates.py",
28
+ "test:syntax": "node --check bin/install.js",
29
+ "test:metadata": "node tests/test_metadata.mjs",
30
+ "test:pack": "node tests/test_pack.mjs",
31
+ "test:e2e": "node tests/test_install_smoke.mjs && node tests/test_update_preservation.mjs && node tests/test_codex_home.mjs",
32
+ "check": "npm test && npm run test:pack"
28
33
  },
29
34
  "keywords": [
30
35
  "claude-code",