tink-harness 1.4.0 → 1.6.0
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.
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +25 -0
- package/README.ko.md +13 -5
- package/README.md +14 -5
- package/VERSIONING.md +1 -1
- package/bin/install.js +67 -0
- package/commands/cast.md +4 -0
- package/commands/frog.md +9 -0
- package/commands/weave.md +46 -38
- package/docs/context-run-history-rollup.ko.md +36 -0
- package/docs/context-run-history-rollup.md +36 -0
- package/docs/context-run-record-policy.ko.md +50 -0
- package/docs/context-run-record-policy.md +50 -0
- package/docs/context-threshold-status.ko.md +43 -0
- package/docs/context-threshold-status.md +43 -0
- package/docs/graph-rule-adoption-plan.ko.md +215 -0
- package/docs/pr/2026-06-08-codex-surface-cleanup.ko.md +27 -0
- package/docs/pr/2026-06-08-context-run-history-rollup.ko.md +27 -0
- package/docs/pr/2026-06-08-context-run-record-policy.ko.md +25 -0
- package/docs/pr/2026-06-08-context-threshold-status.ko.md +25 -0
- package/docs/pr/2026-06-08-v1.5.0.ko.md +30 -0
- package/docs/pr/2026-06-09-graph-rule-adoption-plan.ko.md +26 -0
- package/docs/pr/2026-06-09-graph-rule-seed-rules.ko.md +27 -0
- package/docs/pr/2026-06-09-v1.6.0.ko.md +27 -0
- package/docs/update-troubleshooting.ko.md +6 -1
- package/docs/update-troubleshooting.md +6 -1
- package/docs/update-verification-recipe.ko.md +3 -0
- package/docs/update-verification-recipe.md +3 -0
- package/package.json +1 -1
- package/skills/tink/SKILL.md +75 -73
- package/templates/claude/commands/tink/cast.md +4 -0
- package/templates/claude/commands/tink/frog.md +9 -0
- package/templates/claude/commands/tink/weave.md +46 -38
- package/templates/claude/skills/tink/SKILL.md +75 -73
- package/templates/codex/skills/tink-core/RULES.md +10 -8
- package/templates/tink/rules/index.json +239 -128
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,31 @@ All notable changes to Tink are tracked here.
|
|
|
7
7
|
No unreleased changes yet.
|
|
8
8
|
|
|
9
9
|
|
|
10
|
+
## [1.6.0] - 2026-06-09
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Graph-rule seed rules now route common Tink maintenance work to the right supporting files, harnesses, and verification checks without adding a public `tink index` command.
|
|
15
|
+
- `/tink:weave`, `/tink:frog`, and `$tink:*` guidance now treats rule `reason`, `risk`, `include_paths`, and `checks` as reviewable context-engineering evidence.
|
|
16
|
+
- Korean PR history draft for the graph-rule seed rules work in `docs/pr/2026-06-09-graph-rule-seed-rules.ko.md`.
|
|
17
|
+
- Korean PR history draft for the v1.6.0 release in `docs/pr/2026-06-09-v1.6.0.ko.md`.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## [1.5.0] - 2026-06-08
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Codex-only install/update now removes repo-local Tink Claude Code command files under `.claude/commands/tink/*.md` so Codex no longer shows them as stale `Source Command Tink ...` entries after a Codex-only refresh.
|
|
25
|
+
- Codex-only install/update now removes the old repo-local `.claude/skills/tink/SKILL.md` Tink surface when it matches the known generated Tink skill, while preserving unknown user-authored content.
|
|
26
|
+
- Update troubleshooting and verification docs now explain when `Source Command Tink ...` is stale and when it is expected because the repo intentionally keeps the Claude Code surface.
|
|
27
|
+
- README and Korean README now highlight the v1.5.0 update behavior for existing Codex users.
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- Regression coverage for Codex-only update cleanup of repo-local Claude command and skill surfaces.
|
|
32
|
+
- Korean PR history draft for the v1.5.0 release in `docs/pr/2026-06-08-v1.5.0.ko.md`.
|
|
33
|
+
|
|
34
|
+
|
|
10
35
|
## [1.4.0] - 2026-06-08
|
|
11
36
|
|
|
12
37
|
### Added
|
package/README.ko.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<p align="center">
|
|
1
|
+
<p align="center">
|
|
2
2
|
<img src=".github/assets/hero.gif" alt="Tink Hero Banner" width="100%">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@ Claude Code와 Codex를 위한 작은 하네스 레이어입니다.
|
|
|
8
8
|
|
|
9
9
|
Tink는 지금 작업에 맞는 하네스를 고르고, 실행 상태를 보이게 만들고, 실제 사용 중 생긴 실패와 피드백으로 하네스 세트를 개선합니다.
|
|
10
10
|
|
|
11
|
-
**최신 릴리스:** v1.
|
|
11
|
+
**최신 릴리스:** v1.6.0 — graph-rule seed routing으로 반복 작업에서 필요한 관련 파일, 하네스, 검증 체크를 더 잘 고릅니다.
|
|
12
12
|
|
|
13
13
|
[English](README.md) · **한국어**
|
|
14
14
|
|
|
@@ -59,14 +59,22 @@ npx tink-harness@latest update
|
|
|
59
59
|
|
|
60
60
|
업데이트 후 Codex skill, schema, Windows 경고가 이상해 보이면 `docs/update-troubleshooting.ko.md` 또는 `docs/update-troubleshooting.md`를 확인하세요.
|
|
61
61
|
|
|
62
|
-
## 1.
|
|
62
|
+
## 1.6.0에서 달라진 점
|
|
63
|
+
|
|
64
|
+
이번 릴리스는 Tink의 작은 rule graph를 실제 작업에서 더 쓸모 있게 만듭니다.
|
|
65
|
+
|
|
66
|
+
- README 한/영 동기화, 버전 메타데이터 동기화, Claude Code 명령 3-copy 동기화, installer/update smoke check처럼 반복되는 작업에 필요한 관련 파일과 검증 체크를 seed rule로 연결합니다.
|
|
67
|
+
- `/tink:cast`와 `$tink:cast`는 rule의 `reason`, `risk`, `include_paths`, `checks`를 context 증거로 남기도록 안내합니다.
|
|
68
|
+
- `/tink:weave`와 `/tink:frog`는 rule quality를 함께 점검해서 keep, rewrite, split, merge, needs evidence로 정리할 수 있게 합니다.
|
|
69
|
+
- 그래프는 계속 작고 파일 기반으로 유지합니다. 이번 릴리스도 public `tink index` 명령, watcher, generated cache, database, 외부 서비스를 추가하지 않습니다.
|
|
70
|
+
## 1.2.0 이후 기반 개선
|
|
63
71
|
|
|
64
72
|
이번 릴리스는 Tink를 Claude Code와 Codex에서 같은 하네스 레이어로 쓰기 쉽게 정리합니다.
|
|
65
73
|
|
|
66
74
|
- Codex에는 하나의 넓은 `tink` 스킬 대신 `$tink:cast`, `$tink:verify` 같은 action skill만 보이도록 설치됩니다.
|
|
67
75
|
- 비단순 작업은 `context-pack.md`, `context-map.json`, `excluded-context.md`로 어떤 context를 썼고 뺐는지 남깁니다.
|
|
68
76
|
- Repo Signal과 Context Graph Lite는 새 `tink index` 명령을 만들지 않고도 관련 테스트, 스키마, 동기화 파일, 검증 힌트를 고르는 데 쓰입니다.
|
|
69
|
-
- context 효율
|
|
77
|
+
- context 효율 점수화, fixture 비율 계산, run-history rollup, 90% threshold status, 실제 run 기록 경계 기준은 `docs/context-budget-ledger.ko.md`, `docs/context-budget-ledger.md`, `docs/context-metrics-evaluator.ko.md`, `docs/context-metrics-evaluator.md`, `docs/context-run-history-rollup.ko.md`, `docs/context-run-history-rollup.md`, `docs/context-threshold-status.ko.md`, `docs/context-threshold-status.md`, `docs/context-run-record-policy.ko.md`, `docs/context-run-record-policy.md`에서 확인할 수 있습니다.
|
|
70
78
|
- `/tink:verify`와 `$tink:verify`는 같은 Verify Runner 모델을 쓰며 `.tink/current/verification.json`에 검증 증거를 남깁니다.
|
|
71
79
|
- 외부 context는 MCP Safe Profile을 따릅니다. 가장 작은 source handle만 남기고, 신뢰도와 민감도를 표시하며, 위험하거나 너무 넓은 context는 `excluded-context.md`에 따로 기록합니다.
|
|
72
80
|
|
|
@@ -114,7 +122,7 @@ Tink는 직접 볼 수 있는 파일을 씁니다.
|
|
|
114
122
|
|
|
115
123
|
Rule graph는 작게 유지합니다. Tink는 먼저 필수 규칙을 고르고, 작업 사실이나 keyword에 맞는 선택 규칙만 가져오며, phase별로 이미 읽은 rule id를 기록해 같은 안내를 반복하지 않습니다.
|
|
116
124
|
|
|
117
|
-
설계 메모는 `docs/`에 둡니다. 기본 호환성 기준은 `docs/compatibility-policy.md`에 있으며, 새 작업은 Claude Code와 Codex, macOS와 Windows를 함께 고려해야 합니다. Repo Signal 동작은 `docs/repo-signals.ko.md` 또는 `docs/repo-signals.md`에 정리되어 있고, 외부 context 안전 기준은 `docs/mcp-safe-profile.md`에 정리되어 있습니다. `.tink/current/` 상태를 읽거나 검토할 때는 `docs/work-state.ko.md` 또는 `docs/work-state.md`부터 보면 됩니다. 다음 업데이트 안정화 계획은 `docs/phase-5-update-confidence.ko.md`와 `docs/phase-5-update-confidence.md`에 정리되어 있습니다. 더 큰 아이디어 구현 점검과 로드맵은 `docs/tink-idea-implementation-plan.ko.md`에 정리되어 있습니다.
|
|
125
|
+
설계 메모는 `docs/`에 둡니다. 기본 호환성 기준은 `docs/compatibility-policy.md`에 있으며, 새 작업은 Claude Code와 Codex, macOS와 Windows를 함께 고려해야 합니다. Repo Signal 동작은 `docs/repo-signals.ko.md` 또는 `docs/repo-signals.md`에 정리되어 있고, 가벼운 graph 규칙 적용 계획은 `docs/graph-rule-adoption-plan.ko.md`에 정리되어 있습니다. 외부 context 안전 기준은 `docs/mcp-safe-profile.md`에 정리되어 있습니다. `.tink/current/` 상태를 읽거나 검토할 때는 `docs/work-state.ko.md` 또는 `docs/work-state.md`부터 보면 됩니다. 다음 업데이트 안정화 계획은 `docs/phase-5-update-confidence.ko.md`와 `docs/phase-5-update-confidence.md`에 정리되어 있습니다. 더 큰 아이디어 구현 점검과 로드맵은 `docs/tink-idea-implementation-plan.ko.md`에 정리되어 있습니다.
|
|
118
126
|
|
|
119
127
|
중요한 원칙은 승인입니다. 현재 작업을 진행하는 승인과, 미래에도 재사용될 상태를 저장하는 승인은 별개입니다. 새 하네스, 메모리, rule graph, hook guard 저장은 항상 별도 승인이 필요합니다.
|
|
120
128
|
|
package/README.md
CHANGED
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
</p>
|
|
18
18
|
|
|
19
19
|
<p>
|
|
20
|
-
<a href="https://github.com/dotoricode/tink-harness/releases/tag/v1.
|
|
20
|
+
<a href="https://github.com/dotoricode/tink-harness/releases/tag/v1.6.0"><img src="https://img.shields.io/github/v/release/dotoricode/tink-harness?label=release&color=2ea44f" alt="GitHub release"></a>
|
|
21
21
|
<a href="https://www.npmjs.com/package/tink-harness"><img src="https://img.shields.io/npm/v/tink-harness?label=npm&color=cb3837" alt="npm version"></a>
|
|
22
22
|
<a href="https://github.com/dotoricode/tink-harness/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/dotoricode/tink-harness/ci.yml?branch=main&label=ci" alt="CI"></a>
|
|
23
23
|
<a href="https://github.com/dotoricode/tink-harness/blob/main/LICENSE"><img src="https://img.shields.io/github/license/dotoricode/tink-harness" alt="License"></a>
|
|
24
24
|
<a href="https://github.com/dotoricode/tink-harness/stargazers"><img src="https://img.shields.io/github/stars/dotoricode/tink-harness?style=social" alt="GitHub stars"></a>
|
|
25
25
|
</p>
|
|
26
26
|
|
|
27
|
-
<p><strong>Latest release:</strong> v1.
|
|
27
|
+
<p><strong>Latest release:</strong> v1.6.0 - Graph-rule seed routing now helps Tink pick supporting files, harnesses, and verification checks for repeated work.</p>
|
|
28
28
|
|
|
29
29
|
**English** · [한국어](README.ko.md)
|
|
30
30
|
|
|
@@ -124,14 +124,23 @@ To quickly verify the updated install, see `docs/update-verification-recipe.md`
|
|
|
124
124
|
|
|
125
125
|
If an update looks stale or incomplete, see `docs/update-troubleshooting.md` or `docs/update-troubleshooting.ko.md`.
|
|
126
126
|
|
|
127
|
-
## What's new in 1.
|
|
127
|
+
## What's new in 1.6.0
|
|
128
|
+
|
|
129
|
+
This release makes Tink's small rule graph more useful during real work.
|
|
130
|
+
|
|
131
|
+
- Seed rules now connect common maintenance work to related files, harnesses, and checks, such as README bilingual sync, version metadata sync, Claude Code command 3-copy sync, and installer/update smoke checks.
|
|
132
|
+
- `/tink:cast` and `$tink:cast` guidance now records rule `reason`, `risk`, `include_paths`, and `checks` as reviewable context evidence instead of silently loading extra files.
|
|
133
|
+
- `/tink:weave` and `/tink:frog` now include rule-quality review so reusable rules can be kept, rewritten, split, merged, or marked as needing more evidence.
|
|
134
|
+
- The graph remains file-based and small. This release still does not add a public `tink index` command, watcher, generated cache, database, or external service.
|
|
135
|
+
|
|
136
|
+
## Recent foundation from 1.2.0+
|
|
128
137
|
|
|
129
138
|
This release makes Tink work as one harness layer across Claude Code and Codex.
|
|
130
139
|
|
|
131
140
|
- Codex now installs focused `$tink:*` action skills instead of one broad visible `tink` skill, so the picker shows commands like `$tink:cast` and `$tink:verify` cleanly.
|
|
132
141
|
- Non-trivial runs now create context artifacts: `context-pack.md`, `context-map.json`, and `excluded-context.md`.
|
|
133
142
|
- Repo Signals and Context Graph Lite help `/tink:cast` and `$tink:cast` choose relevant tests, schemas, sync partners, and verification hints without adding a new `tink index` command.
|
|
134
|
-
- Context Budget Ledger fields
|
|
143
|
+
- Context Budget Ledger fields, fixture-ratio evaluation, run-history rollup, the 90 percent threshold status, and future real-run record boundaries are documented in `docs/context-budget-ledger.md`, `docs/context-budget-ledger.ko.md`, `docs/context-metrics-evaluator.md`, `docs/context-metrics-evaluator.ko.md`, `docs/context-run-history-rollup.md`, `docs/context-run-history-rollup.ko.md`, `docs/context-threshold-status.md`, `docs/context-threshold-status.ko.md`, `docs/context-run-record-policy.md`, and `docs/context-run-record-policy.ko.md` without adding a new command.
|
|
135
144
|
- `/tink:verify` and `$tink:verify` share one portable Verify Runner model and write compact evidence to `.tink/current/verification.json`.
|
|
136
145
|
- External context now follows the MCP Safe Profile: include only the smallest useful source handle, mark confidence and sensitivity, exclude unsafe context visibly, and connect important claims to verification.
|
|
137
146
|
|
|
@@ -193,7 +202,7 @@ Tink uses files you can inspect:
|
|
|
193
202
|
|
|
194
203
|
The rule graph stays small on purpose. Tink loads matching mandatory rules first, retrieves only relevant optional rules by task facts or keywords, and records loaded rule ids by phase so the same guidance is not repeated in one run.
|
|
195
204
|
|
|
196
|
-
Design notes live in `docs/`. The compatibility baseline is `docs/compatibility-policy.md`: every new slice should consider Claude Code and Codex, plus macOS and Windows. Repo signal behavior is described in `docs/repo-signals.md` or `docs/repo-signals.ko.md`. External context safety is described in `docs/mcp-safe-profile.md` and `docs/external-context-policy.md`. To read or review `.tink/current/` state, start with `docs/work-state.md` or `docs/work-state.ko.md`. Update confidence is still documented in `docs/phase-5-update-confidence.md` or `docs/phase-5-update-confidence.ko.md`. The planned work-unit list is `docs/planned-work-units.md` or `docs/planned-work-units.ko.md`, with details in the verification evidence, harness lifecycle, memory decision, context change, and update diagnosis docs. The broader Korean idea audit and roadmap is `docs/tink-idea-implementation-plan.ko.md`.
|
|
205
|
+
Design notes live in `docs/`. The compatibility baseline is `docs/compatibility-policy.md`: every new slice should consider Claude Code and Codex, plus macOS and Windows. Repo signal behavior is described in `docs/repo-signals.md` or `docs/repo-signals.ko.md`. The lightweight graph-rule adoption plan is `docs/graph-rule-adoption-plan.ko.md`. External context safety is described in `docs/mcp-safe-profile.md` and `docs/external-context-policy.md`. To read or review `.tink/current/` state, start with `docs/work-state.md` or `docs/work-state.ko.md`. Update confidence is still documented in `docs/phase-5-update-confidence.md` or `docs/phase-5-update-confidence.ko.md`. The planned work-unit list is `docs/planned-work-units.md` or `docs/planned-work-units.ko.md`, with details in the verification evidence, harness lifecycle, memory decision, context change, and update diagnosis docs. The broader Korean idea audit and roadmap is `docs/tink-idea-implementation-plan.ko.md`.
|
|
197
206
|
|
|
198
207
|
The important rule is approval.
|
|
199
208
|
|
package/VERSIONING.md
CHANGED
package/bin/install.js
CHANGED
|
@@ -369,6 +369,70 @@ function removeLegacyCodexSkill(codexTarget) {
|
|
|
369
369
|
if (!dryRun) fs.rmSync(legacyDir, { recursive: true, force: true });
|
|
370
370
|
}
|
|
371
371
|
|
|
372
|
+
function removeIfExists(base, filePath, label = 'legacy') {
|
|
373
|
+
if (!fs.existsSync(filePath)) return false;
|
|
374
|
+
log.message(`${dryRun ? `would remove ${label}` : `remove ${label}`} ${displayPath(base, filePath)}`);
|
|
375
|
+
recordOperation('removedLegacy', base, filePath);
|
|
376
|
+
if (!dryRun) fs.rmSync(filePath, { recursive: true, force: true });
|
|
377
|
+
return true;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
function removeRepoLocalClaudeTinkSurface(target) {
|
|
381
|
+
const commandDir = path.join(target, '.claude/commands/tink');
|
|
382
|
+
const flatCommandDir = path.join(target, '.claude/commands');
|
|
383
|
+
const commandFiles = ['setup.md', 'cast.md', 'verify.md', 'list.md', 'frog.md', 'weave.md', 'update.md'];
|
|
384
|
+
for (const name of commandFiles) {
|
|
385
|
+
removeIfExists(target, path.join(commandDir, name), 'repo-local Claude command');
|
|
386
|
+
}
|
|
387
|
+
if (fs.existsSync(commandDir) && fs.readdirSync(commandDir).length === 0) {
|
|
388
|
+
removeIfExists(target, commandDir, 'empty repo-local Claude command dir');
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
const legacyFlatCommands = [
|
|
392
|
+
'tink-setup.md',
|
|
393
|
+
'tink-cast.md',
|
|
394
|
+
'tink-verify.md',
|
|
395
|
+
'tink-list.md',
|
|
396
|
+
'tink-frog.md',
|
|
397
|
+
'tink-weave.md',
|
|
398
|
+
'tink-update.md',
|
|
399
|
+
'tink-forge.md',
|
|
400
|
+
'tink-purge.md',
|
|
401
|
+
'tink-hone.md'
|
|
402
|
+
];
|
|
403
|
+
for (const name of legacyFlatCommands) {
|
|
404
|
+
removeIfExists(target, path.join(flatCommandDir, name), 'repo-local Claude command');
|
|
405
|
+
}
|
|
406
|
+
if (fs.existsSync(flatCommandDir) && fs.readdirSync(flatCommandDir).length === 0) {
|
|
407
|
+
removeIfExists(target, flatCommandDir, 'empty repo-local Claude commands dir');
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
const skillDir = path.join(target, '.claude/skills/tink');
|
|
411
|
+
const skillParentDir = path.join(target, '.claude/skills');
|
|
412
|
+
const skillFile = path.join(skillDir, 'SKILL.md');
|
|
413
|
+
if (!fs.existsSync(skillDir)) {
|
|
414
|
+
if (fs.existsSync(skillParentDir) && fs.readdirSync(skillParentDir).length === 0) {
|
|
415
|
+
removeIfExists(target, skillParentDir, 'empty repo-local Claude skills dir');
|
|
416
|
+
}
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
if (!fs.existsSync(skillFile)) {
|
|
420
|
+
log.message(`keep unknown ${displayPath(target, skillDir)}`);
|
|
421
|
+
recordOperation('keptUnknown', target, skillDir);
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
const text = fs.readFileSync(skillFile, 'utf8');
|
|
425
|
+
if (text.includes('name: tink') && text.includes('# Tink')) {
|
|
426
|
+
removeIfExists(target, skillDir, 'repo-local Claude skill');
|
|
427
|
+
if (fs.existsSync(skillParentDir) && fs.readdirSync(skillParentDir).length === 0) {
|
|
428
|
+
removeIfExists(target, skillParentDir, 'empty repo-local Claude skills dir');
|
|
429
|
+
}
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
log.message(`keep unknown ${displayPath(target, skillDir)}`);
|
|
433
|
+
recordOperation('keptUnknown', target, skillDir);
|
|
434
|
+
}
|
|
435
|
+
|
|
372
436
|
function readJsonFile(filePath, fallback) {
|
|
373
437
|
if (!fs.existsSync(filePath)) return fallback;
|
|
374
438
|
try {
|
|
@@ -417,6 +481,9 @@ function copySelected(scope, components, agent) {
|
|
|
417
481
|
if (includesClaude(agent) && components.includes('commands')) {
|
|
418
482
|
copyTinkCommands(templateRoot, target);
|
|
419
483
|
}
|
|
484
|
+
if (agent === 'codex') {
|
|
485
|
+
removeRepoLocalClaudeTinkSurface(target);
|
|
486
|
+
}
|
|
420
487
|
if (components.includes('skill')) {
|
|
421
488
|
if (includesClaude(agent)) {
|
|
422
489
|
copyDir(path.join(templateRoot, 'claude/skills'), path.join(target, '.claude/skills'), target);
|
package/commands/cast.md
CHANGED
|
@@ -369,8 +369,12 @@ A task is trivial only when ALL of the following are true:
|
|
|
369
369
|
2. Read `.tink/rules/index.json` if present. Use it as a small rule graph to choose candidate harnesses, checks, and opt-in guard candidates from contract facts. Do not read every harness.
|
|
370
370
|
- Load `mandatory` nodes first when their `when` facts match the contract.
|
|
371
371
|
- Retrieve `retrievable` nodes only when their `when` facts or `keywords` fit the task.
|
|
372
|
+
- Treat `select_harnesses`, `include_paths`, `checks`, `reason`, and `risk` as first-class routing data when present.
|
|
372
373
|
- Respect `budget_cost` and `selection_policy.retrieval.max_retrievable_per_phase` when present.
|
|
373
374
|
- Record every loaded rule id in `.tink/current/session.json` under `loaded_rule_ids_by_phase.<phase>`.
|
|
375
|
+
- Record selected `include_paths` in `context-map.json.included[]` with `role: "supporting"` or `role: "verification_target"` when the rule also adds a check.
|
|
376
|
+
- Record rule `checks` in `contract.json.verification.manual_checks[]` or `commands[]` only when they are relevant and cheap; otherwise record them in `notes.md` as deferred checks.
|
|
377
|
+
- Record rule `reason` and `risk` in `context-map.json.signals[]` with `kind: "rule_graph"` so reviewers can see why the context or check was chosen.
|
|
374
378
|
- If a rule id is already listed for the same phase, do not repeat its guidance; cite the existing session entry instead.
|
|
375
379
|
3. Read `.tink/harnesses/index.json`. Use it to validate the candidates from the rule graph and to fall back when no rule node matches.
|
|
376
380
|
4. Read small memory files where `config.json` sets `memory_has_entries.<name>: true`. Skip files set to `false`. After a Save Gate approves a new memory entry, set that file's flag to `true` in `config.json`.
|
package/commands/frog.md
CHANGED
|
@@ -26,6 +26,7 @@ Use Korean field values when `.tink/config.json` language is `ko` or `auto` with
|
|
|
26
26
|
- `.tink/runs/` summaries
|
|
27
27
|
- `.tink/maintenance/ledger.jsonl`
|
|
28
28
|
- `.tink/maintenance/weave-queue.json`
|
|
29
|
+
- `.tink/rules/index.json`
|
|
29
30
|
- references in memory files
|
|
30
31
|
- recent git history touching harness files as weak context only
|
|
31
32
|
2b. Check `.tink/runs/` accumulation against TTL config:
|
|
@@ -53,6 +54,14 @@ Use Korean field values when `.tink/config.json` language is `ko` or `auto` with
|
|
|
53
54
|
- merge into another harness
|
|
54
55
|
- delete
|
|
55
56
|
- rewrite via `/tink:weave`
|
|
57
|
+
6b. If `.tink/rules/index.json` exists, also inspect rule quality:
|
|
58
|
+
- keep: concrete `when`, `reason`, and useful `checks` or `include_paths`
|
|
59
|
+
- rewrite: too broad, unclear reason, or missing verification
|
|
60
|
+
- split: one rule mixes unrelated paths, tasks, or risks
|
|
61
|
+
- merge: multiple rules cover the same `when`, `include_paths`, and `checks`
|
|
62
|
+
- needs evidence: weak or no run, ledger, friction, or user-correction evidence
|
|
63
|
+
Prefer keep, rewrite, split, merge, or needs evidence before any removal proposal.
|
|
64
|
+
Report rule recommendations separately from harness recommendations.
|
|
56
65
|
7. Only strong evidence may recommend `delete`. Medium evidence may recommend `merge` or `hone`. Weak evidence must default to `keep` or `needs evidence`.
|
|
57
66
|
8. For each non-keep action, prepare an operation-specific approval payload with exact files, op ID, evidence handles, and rollback.
|
|
58
67
|
9. If the recommendation is `weave`, write or present a weave handoff packet and, after approval, add it to `.tink/maintenance/weave-queue.json`:
|
package/commands/weave.md
CHANGED
|
@@ -24,42 +24,50 @@ Use Korean field values when `.tink/config.json` language is `ko` or `auto` with
|
|
|
24
24
|
1. Read `.tink/harnesses/index.json`. If `.tink/maintenance/weave-queue.json` exists, read it to find:
|
|
25
25
|
- Handoff packets from `/tink:frog` (entries where `auto` is absent or false)
|
|
26
26
|
- Auto signals from completed runs (entries where `auto: true`)
|
|
27
|
-
Count auto signals per harness: `check_failed` signals count as 2, all other outcomes count as 1. Use this frequency to rank improvement candidates — harnesses with the highest signal count should be improved first. If invoked from `/tink:frog`, also read the purge output and `.tink/current/notes.md` for the weave handoff packet.
|
|
28
|
-
If `.tink/maintenance/friction.jsonl` exists, read only compact recent entries and count repeated `check_failed`, `check_skipped`, `blocked`, gate denial, or rollback events. Repeated friction can justify a harness edit, rule graph update, or opt-in guard candidate.
|
|
27
|
+
Count auto signals per harness: `check_failed` signals count as 2, all other outcomes count as 1. Use this frequency to rank improvement candidates — harnesses with the highest signal count should be improved first. If invoked from `/tink:frog`, also read the purge output and `.tink/current/notes.md` for the weave handoff packet.
|
|
28
|
+
If `.tink/maintenance/friction.jsonl` exists, read only compact recent entries and count repeated `check_failed`, `check_skipped`, `blocked`, gate denial, or rollback events. Repeated friction can justify a harness edit, rule graph update, or opt-in guard candidate.
|
|
29
29
|
2. Identify one or a few active harnesses to improve using real failures and evidence:
|
|
30
30
|
- repeated mistakes
|
|
31
|
-
- user corrections
|
|
32
|
-
- failed checks
|
|
33
|
-
- repeated friction entries
|
|
34
|
-
- confusing approval prompts
|
|
31
|
+
- user corrections
|
|
32
|
+
- failed checks
|
|
33
|
+
- repeated friction entries
|
|
34
|
+
- confusing approval prompts
|
|
35
35
|
- too much context footprint
|
|
36
36
|
- missing done criteria
|
|
37
37
|
3. Require concrete evidence handles before proposing a save:
|
|
38
|
-
- run record path or run ID
|
|
39
|
-
- current notes path when same-conversation certainty exists
|
|
40
|
-
- failed check name
|
|
41
|
-
- friction entry timestamp/type
|
|
42
|
-
- compact user correction snippet
|
|
38
|
+
- run record path or run ID
|
|
39
|
+
- current notes path when same-conversation certainty exists
|
|
40
|
+
- failed check name
|
|
41
|
+
- friction entry timestamp/type
|
|
42
|
+
- compact user correction snippet
|
|
43
43
|
- purge handoff ID from `.tink/maintenance/weave-queue.json`
|
|
44
44
|
4. Classify the evidence as repeated or single-run. Single-run evidence may suggest a trial edit, but should not become broad policy unless the user explicitly approves.
|
|
45
|
-
5. Explain why the change belongs in the harness rather than `.tink/memory/` or `.tink/current/notes.md`.
|
|
46
|
-
6. Decide the right destination:
|
|
47
|
-
- harness edit: a procedure, ask-first question, check, or recovery step should change;
|
|
48
|
-
- rule graph update: a contract fact should select a harness, check, or guard candidate earlier;
|
|
49
|
-
- opt-in hook guard candidate: the same failure should be blocked by `PreToolUse`, `PostToolUse`, or `Stop` after user approval;
|
|
50
|
-
- friction logging update: the run should record a missing evidence pattern more clearly.
|
|
51
|
-
7. Read only the target harness files and `.tink/rules/index.json` when the evidence points to rule selection.
|
|
52
|
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
45
|
+
5. Explain why the change belongs in the harness rather than `.tink/memory/` or `.tink/current/notes.md`.
|
|
46
|
+
6. Decide the right destination:
|
|
47
|
+
- harness edit: a procedure, ask-first question, check, or recovery step should change;
|
|
48
|
+
- rule graph update: a contract fact should select a harness, check, or guard candidate earlier;
|
|
49
|
+
- opt-in hook guard candidate: the same failure should be blocked by `PreToolUse`, `PostToolUse`, or `Stop` after user approval;
|
|
50
|
+
- friction logging update: the run should record a missing evidence pattern more clearly.
|
|
51
|
+
7. Read only the target harness files and `.tink/rules/index.json` when the evidence points to rule selection.
|
|
52
|
+
For rule graph updates, run a structural gate before proposing a save:
|
|
53
|
+
- duplicate: does an existing rule already cover the same `when`, `include_paths`, or `checks`?
|
|
54
|
+
- breadth: is the rule too broad, such as "always check docs", instead of tied to concrete paths, task facts, or risks?
|
|
55
|
+
- evidence: does the proposal cite a run, failed check, user correction, or friction entry?
|
|
56
|
+
- verification: does the rule add a check or explain why no check is needed?
|
|
57
|
+
- compatibility: does the rule make sense for both Claude Code and Codex, and for macOS and Windows?
|
|
58
|
+
- portability: does it avoid OS-specific shell syntax unless alternatives are listed?
|
|
59
|
+
8. Propose small edits:
|
|
60
|
+
- clearer when-to-use trigger
|
|
61
|
+
- better ask-first question
|
|
62
|
+
- tighter checks
|
|
63
|
+
- smaller context footprint
|
|
64
|
+
- explicit failure recovery
|
|
65
|
+
- rule graph node or edge
|
|
66
|
+
- opt-in guard template
|
|
67
|
+
9. Show an approval payload: destination files, exact patch summary, evidence handles, repeated vs single-run classification, why reusable, context-cost delta, sensitive content excluded, rollback path.
|
|
68
|
+
For rule graph updates, also show structural gate results: duplicate, breadth, evidence, verification, compatibility, and portability.
|
|
69
|
+
10. Ask for approval before saving.
|
|
70
|
+
11. Apply surgical changes, update index metadata or `.tink/rules/index.json` if needed, mark the weave queue item status, and append the approval/result to `.tink/maintenance/ledger.jsonl`.
|
|
63
71
|
|
|
64
72
|
## Approval format
|
|
65
73
|
```text
|
|
@@ -72,11 +80,11 @@ Evidence:
|
|
|
72
80
|
- observed failure: verification command was unclear in two runs
|
|
73
81
|
|
|
74
82
|
Approval payload:
|
|
75
|
-
- operation: weave
|
|
76
|
-
- destination files: `.tink/harnesses/code-change.md`, `.tink/harnesses/index.json` if metadata changes, `.tink/rules/index.json` if routing changes
|
|
77
|
-
- context-cost delta: neutral or smaller
|
|
78
|
-
- ledger: append op ID to `.tink/maintenance/ledger.jsonl`
|
|
79
|
-
- rollback: revert this patch or rerun `/tink:weave` with the previous trigger
|
|
83
|
+
- operation: weave
|
|
84
|
+
- destination files: `.tink/harnesses/code-change.md`, `.tink/harnesses/index.json` if metadata changes, `.tink/rules/index.json` if routing changes
|
|
85
|
+
- context-cost delta: neutral or smaller
|
|
86
|
+
- ledger: append op ID to `.tink/maintenance/ledger.jsonl`
|
|
87
|
+
- rollback: revert this patch or rerun `/tink:weave` with the previous trigger
|
|
80
88
|
|
|
81
89
|
Proposed improvement:
|
|
82
90
|
- Checks 섹션에 “검증 명령과 실패 시 마지막 안전 지점 기록” 추가
|
|
@@ -89,7 +97,7 @@ Proposed improvement:
|
|
|
89
97
|
|
|
90
98
|
## Do not
|
|
91
99
|
- Do not rewrite a harness from scratch unless the user asks.
|
|
92
|
-
- Do not add broad principles that do not change behavior.
|
|
93
|
-
- Do not save one-off task progress as harness knowledge.
|
|
94
|
-
- Do not propose a harness edit without evidence handles.
|
|
95
|
-
- Do not register enforcement hooks by default. Save guard templates as opt-in candidates unless the user explicitly approves installation.
|
|
100
|
+
- Do not add broad principles that do not change behavior.
|
|
101
|
+
- Do not save one-off task progress as harness knowledge.
|
|
102
|
+
- Do not propose a harness edit without evidence handles.
|
|
103
|
+
- Do not register enforcement hooks by default. Save guard templates as opt-in candidates unless the user explicitly approves installation.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Context Run History Rollup
|
|
2
|
+
|
|
3
|
+
Context Run History Rollup은 여러 run의 `context-metrics-evaluation.json` 점수를 묶어 90% 목표가 반복 작업에서도 유지되는지 보는 기준이다.
|
|
4
|
+
|
|
5
|
+
이 기능은 새 public command가 아니다. `tink index` 명령, watcher, generated cache, hidden runtime index를 만들지 않는다. 지금 단계에서는 `tests/fixtures/maintenance/context-metrics-rollup.json`과 `tests/test_templates.py`가 같은 rollup 점수를 계산하는지 확인한다.
|
|
6
|
+
|
|
7
|
+
영어판은 `docs/context-run-history-rollup.md`에 있다.
|
|
8
|
+
|
|
9
|
+
## 왜 필요한가
|
|
10
|
+
|
|
11
|
+
current run 하나가 90% 이상이어도 반복 작업 전체가 안정적이라고 말하기는 어렵다. Rollup은 여러 run의 점수를 모아서 다음을 확인한다.
|
|
12
|
+
|
|
13
|
+
- 각 지표의 평균 점수.
|
|
14
|
+
- 각 지표의 최저 점수.
|
|
15
|
+
- 모든 run이 여섯 지표를 빠짐없이 갖는지.
|
|
16
|
+
- 각 지표가 평균과 최저점 모두 90% 이상인지.
|
|
17
|
+
|
|
18
|
+
## 점수의 의미
|
|
19
|
+
|
|
20
|
+
`scope: "run_history"`는 여러 run record를 묶은 값이라는 뜻이다.
|
|
21
|
+
|
|
22
|
+
fixture에 있는 rollup은 production telemetry가 아니다. 실제 `.tink/runs/*` 기록이 충분히 쌓이기 전까지는 “대표 run-history fixture에서 90% 이상”이라고만 말한다.
|
|
23
|
+
|
|
24
|
+
## 완료 기준
|
|
25
|
+
|
|
26
|
+
- 여섯 지표가 모두 rollup 평균 90% 이상이다.
|
|
27
|
+
- 여섯 지표가 모두 run별 최저점 90% 이상이다.
|
|
28
|
+
- 각 score에는 `formula`, `numerator`, `denominator`, `evidence_refs`, `minimum_percent`가 있다.
|
|
29
|
+
- `limits`에 production telemetry가 아님을 명시한다.
|
|
30
|
+
|
|
31
|
+
## 호환성 기준
|
|
32
|
+
|
|
33
|
+
- Claude Code와 Codex가 같은 artifact 이름과 metric 이름을 읽을 수 있어야 한다.
|
|
34
|
+
- macOS와 Windows 모두에서 `npm test`로 검증되어야 한다.
|
|
35
|
+
- 사용자 승인 없이 reusable memory, harness, rule, config를 저장하지 않는다.
|
|
36
|
+
- Sentry와 release evidence bundling은 포함하지 않는다.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Context Run History Rollup
|
|
2
|
+
|
|
3
|
+
Context Run History Rollup combines multiple `context-metrics-evaluation.json` scores to check whether the 90% target holds across repeated work.
|
|
4
|
+
|
|
5
|
+
It is not a new public command. It must not add a `tink index` command, watcher, generated cache, or hidden runtime index. At this stage, `tests/fixtures/maintenance/context-metrics-rollup.json` and `tests/test_templates.py` must calculate the same rollup scores.
|
|
6
|
+
|
|
7
|
+
Korean companion: `docs/context-run-history-rollup.ko.md`.
|
|
8
|
+
|
|
9
|
+
## Why It Exists
|
|
10
|
+
|
|
11
|
+
A single current run above 90% is useful, but it does not prove repeated work is stable. The rollup combines several runs and checks:
|
|
12
|
+
|
|
13
|
+
- Average score for each metric.
|
|
14
|
+
- Minimum score for each metric.
|
|
15
|
+
- Whether every run records all six metrics.
|
|
16
|
+
- Whether both average and minimum are at or above 90%.
|
|
17
|
+
|
|
18
|
+
## What The Score Means
|
|
19
|
+
|
|
20
|
+
`scope: "run_history"` means the score combines multiple run records.
|
|
21
|
+
|
|
22
|
+
The fixture rollup is not production telemetry. Until enough real `.tink/runs/*` records exist, describe it as representative run-history fixture evidence only.
|
|
23
|
+
|
|
24
|
+
## Done Criteria
|
|
25
|
+
|
|
26
|
+
- All six metrics have rollup averages at or above 90%.
|
|
27
|
+
- All six metrics have per-run minimums at or above 90%.
|
|
28
|
+
- Each score has `formula`, `numerator`, `denominator`, `evidence_refs`, and `minimum_percent`.
|
|
29
|
+
- `limits` states that the data is not production telemetry.
|
|
30
|
+
|
|
31
|
+
## Compatibility
|
|
32
|
+
|
|
33
|
+
- Claude Code and Codex read the same artifact names and metric names.
|
|
34
|
+
- macOS and Windows are both verified through `npm test`.
|
|
35
|
+
- Reusable memory, harness, rule, and config saves still require explicit approval.
|
|
36
|
+
- Sentry and release evidence bundling are out of scope.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Context Run Record Policy
|
|
2
|
+
|
|
3
|
+
Context Run Record Policy는 실제 `.tink/runs/*` 기록을 나중에 rollup할 때 어떤 기록을 써도 되는지 정하는 기준이다.
|
|
4
|
+
|
|
5
|
+
이 문서는 새 public command가 아니다. `tink index` 명령, watcher, generated cache, hidden runtime index를 만들지 않는다. 자동 수집도 하지 않는다.
|
|
6
|
+
|
|
7
|
+
영어 문서는 `docs/context-run-record-policy.md`에 있다.
|
|
8
|
+
|
|
9
|
+
## 왜 필요한가
|
|
10
|
+
|
|
11
|
+
현재 90% 달성 근거는 repository fixture와 대표 run-history fixture 기준이다. 이것만으로 “모든 실제 프로젝트에서 production-wide 90%가 보장된다”고 말하면 안 된다.
|
|
12
|
+
|
|
13
|
+
실제 run 기록으로 넘어가려면 먼저 다음을 정해야 한다.
|
|
14
|
+
|
|
15
|
+
- 어떤 `.tink/runs/*` 기록을 rollup에 포함할 수 있는가.
|
|
16
|
+
- 어떤 정보는 민감하거나 너무 넓어서 제외해야 하는가.
|
|
17
|
+
- metric score가 verification evidence와 연결되어 있는가.
|
|
18
|
+
- Claude Code와 Codex, macOS와 Windows에서 같은 기준으로 검증할 수 있는가.
|
|
19
|
+
|
|
20
|
+
## 포함 가능한 기록
|
|
21
|
+
|
|
22
|
+
포함 가능한 기록은 사용자가 승인한 current-run에서 나온 완료 기록이어야 한다.
|
|
23
|
+
|
|
24
|
+
- run id 또는 run path.
|
|
25
|
+
- 완료 시각.
|
|
26
|
+
- 사용한 surface: Claude Code 또는 Codex.
|
|
27
|
+
- 사용한 platform: macOS 또는 Windows.
|
|
28
|
+
- `context-metrics-evaluation.json` 형태의 여섯 지표 점수.
|
|
29
|
+
- 검증 결과와 check 목록.
|
|
30
|
+
- 짧은 evidence handle.
|
|
31
|
+
- production telemetry인지, fixture인지, 대표 run인지에 대한 limit.
|
|
32
|
+
|
|
33
|
+
## 제외해야 할 기록
|
|
34
|
+
|
|
35
|
+
다음은 run-history rollup에 넣지 않는다.
|
|
36
|
+
|
|
37
|
+
- token, credential, raw private payload.
|
|
38
|
+
- private issue, dashboard, Figma file, discussion 전체 복사본.
|
|
39
|
+
- 별도 승인 없는 `.tink/memory/*`, `.tink/rules/*`, `.tink/harnesses/*` reusable state 변경.
|
|
40
|
+
- Sentry 연동.
|
|
41
|
+
- release evidence bundling.
|
|
42
|
+
|
|
43
|
+
## 완료 기준
|
|
44
|
+
|
|
45
|
+
- 여섯 지표가 모두 기록에 존재한다.
|
|
46
|
+
- metric score마다 근거가 있다.
|
|
47
|
+
- verification result와 checks가 연결되어 있다.
|
|
48
|
+
- limit가 production telemetry인지 아닌지 명확히 말한다.
|
|
49
|
+
- 새 public command, watcher, generated cache, hidden runtime index가 없다.
|
|
50
|
+
- macOS와 Windows 모두 `npm test`로 검증할 수 있다.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Context Run Record Policy
|
|
2
|
+
|
|
3
|
+
Context Run Record Policy defines which real `.tink/runs/*` records can later be used for run-history rollup.
|
|
4
|
+
|
|
5
|
+
This is not a new public command. It does not create a `tink index` command, watcher, generated cache, or hidden runtime index. It also does not collect records automatically.
|
|
6
|
+
|
|
7
|
+
Korean documentation is available in `docs/context-run-record-policy.ko.md`.
|
|
8
|
+
|
|
9
|
+
## Why This Exists
|
|
10
|
+
|
|
11
|
+
The current 90 percent evidence is based on repository fixtures and representative run-history fixtures. That is not enough to claim production-wide 90 percent behavior across every real project.
|
|
12
|
+
|
|
13
|
+
Before moving to real run records, Tink needs a clear answer to these questions:
|
|
14
|
+
|
|
15
|
+
- Which `.tink/runs/*` records can be included in a rollup?
|
|
16
|
+
- Which data is sensitive or too broad and must be excluded?
|
|
17
|
+
- Are metric scores linked to verification evidence?
|
|
18
|
+
- Can Claude Code and Codex, on macOS and Windows, verify the same criteria?
|
|
19
|
+
|
|
20
|
+
## Records That Can Be Included
|
|
21
|
+
|
|
22
|
+
Included records must come from an approved current run and represent a completed work record.
|
|
23
|
+
|
|
24
|
+
- Run id or run path.
|
|
25
|
+
- Completion timestamp.
|
|
26
|
+
- Surface: Claude Code or Codex.
|
|
27
|
+
- Platform: macOS or Windows.
|
|
28
|
+
- Six metric scores shaped like `context-metrics-evaluation.json`.
|
|
29
|
+
- Verification result and check list.
|
|
30
|
+
- Short evidence handles.
|
|
31
|
+
- Explicit limits that say whether the record is production telemetry, a fixture, or a representative run.
|
|
32
|
+
|
|
33
|
+
## Records That Must Be Excluded
|
|
34
|
+
|
|
35
|
+
Do not include these in run-history rollup:
|
|
36
|
+
|
|
37
|
+
- Tokens, credentials, or raw private payloads.
|
|
38
|
+
- Full private issue text, whole dashboards, entire Figma files, or complete discussions.
|
|
39
|
+
- Unapproved reusable state changes under `.tink/memory/*`, `.tink/rules/*`, or `.tink/harnesses/*`.
|
|
40
|
+
- Sentry integration.
|
|
41
|
+
- Release evidence bundling.
|
|
42
|
+
|
|
43
|
+
## Completion Criteria
|
|
44
|
+
|
|
45
|
+
- All six metrics are present.
|
|
46
|
+
- Each metric score has evidence.
|
|
47
|
+
- Verification result and checks are linked.
|
|
48
|
+
- Limits clearly state whether the data is production telemetry.
|
|
49
|
+
- No new public command, watcher, generated cache, or hidden runtime index exists.
|
|
50
|
+
- macOS and Windows can verify the criteria with `npm test`.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Context Threshold Status
|
|
2
|
+
|
|
3
|
+
Context Threshold Status는 여섯 가지 컨텍스트 효율 지표가 90% 목표를 넘었는지 한눈에 확인하는 상태판이다.
|
|
4
|
+
|
|
5
|
+
현재 상태판은 `tests/fixtures/current-run/context-metrics-evaluation.json`과 `tests/fixtures/maintenance/context-metrics-rollup.json`을 함께 본다. 즉, 단일 current run fixture와 여러 대표 run을 묶은 run-history rollup이 모두 90% 이상인지 확인한다.
|
|
6
|
+
|
|
7
|
+
이 문서는 새 public command가 아니다. `tink index` 명령, watcher, generated cache, hidden runtime index를 만들지 않는다. 자동으로 사용자의 repo 데이터를 수집하지도 않는다.
|
|
8
|
+
|
|
9
|
+
영어 문서는 `docs/context-threshold-status.md`에 있다.
|
|
10
|
+
|
|
11
|
+
## 현재 상태
|
|
12
|
+
|
|
13
|
+
| 지표 | current run | rollup 평균 | rollup 최저 | 상태 |
|
|
14
|
+
| --- | ---: | ---: | ---: | --- |
|
|
15
|
+
| 불필요 context 포함률 감소 | 100% | 97% | 94% | 90% 이상 |
|
|
16
|
+
| 초기 context pack 크기 감소 | 100% | 95% | 92% | 90% 이상 |
|
|
17
|
+
| 리뷰자가 근거 찾는 시간 감소 | 100% | 98% | 96% | 90% 이상 |
|
|
18
|
+
| 검증 누락 탐지율 개선 | 100% | 99% | 98% | 90% 이상 |
|
|
19
|
+
| 반복 작업 context 재사용 정확도 | 100% | 96% | 94% | 90% 이상 |
|
|
20
|
+
| 재작업 가능성 감소 | 100% | 95% | 91% | 90% 이상 |
|
|
21
|
+
|
|
22
|
+
## 왜 필요한가
|
|
23
|
+
|
|
24
|
+
이 상태판이 없으면 90% 이상이라는 말을 어디까지 믿어도 되는지 다시 추리해야 한다.
|
|
25
|
+
|
|
26
|
+
- current run fixture는 지금 만든 artifact가 완전한지 본다.
|
|
27
|
+
- run-history rollup은 반복 작업에서도 점수가 유지되는지 본다.
|
|
28
|
+
- minimum score는 특정 작업 단위가 90% 아래로 떨어지는지 본다.
|
|
29
|
+
|
|
30
|
+
## 한계
|
|
31
|
+
|
|
32
|
+
현재 상태는 repository fixture와 대표 run-history fixture 기준이다. production telemetry가 아니다.
|
|
33
|
+
|
|
34
|
+
따라서 사용자에게 “모든 실제 프로젝트에서 90% 이상 보장”이라고 말하면 안 된다. 실제 `.tink/runs/*` 기록이 충분히 쌓이면 같은 계산식으로 다시 rollup해야 한다.
|
|
35
|
+
|
|
36
|
+
## 완료 기준
|
|
37
|
+
|
|
38
|
+
- 여섯 지표 모두 current run score가 90% 이상이다.
|
|
39
|
+
- 여섯 지표 모두 rollup 평균이 90% 이상이다.
|
|
40
|
+
- 여섯 지표 모두 rollup 최저점이 90% 이상이다.
|
|
41
|
+
- `limits`에 production telemetry가 아니라는 한계를 명시한다.
|
|
42
|
+
- Claude Code와 Codex 모두 같은 artifact 이름과 metric 이름을 읽을 수 있다.
|
|
43
|
+
- macOS와 Windows 모두 `npm test`로 검증할 수 있다.
|