tink-harness 1.2.1 → 1.2.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.
- package/.claude-plugin/plugin.json +2 -2
- package/CHANGELOG.md +103 -75
- package/README.ko.md +130 -122
- package/README.md +96 -92
- package/VERSIONING.md +2 -2
- package/bin/install.js +318 -257
- package/commands/cast.md +179 -172
- package/docs/context-change-review.ko.md +14 -0
- package/docs/context-change-review.md +14 -0
- package/docs/external-context-policy.ko.md +15 -0
- package/docs/external-context-policy.md +15 -0
- package/docs/graph-contracts-and-guards.md +61 -0
- package/docs/harness-lifecycle-signals.ko.md +23 -0
- package/docs/harness-lifecycle-signals.md +23 -0
- package/docs/hooks.md +49 -0
- package/docs/memory-decision-layers.ko.md +14 -0
- package/docs/memory-decision-layers.md +14 -0
- package/docs/memory.md +31 -0
- package/docs/phase-5-update-confidence.ko.md +99 -0
- package/docs/phase-5-update-confidence.md +97 -0
- package/docs/planned-work-units.ko.md +77 -0
- package/docs/planned-work-units.md +77 -0
- package/docs/pr/2026-06-07-phase-5-6-follow-up.ko.md +35 -0
- package/docs/pr/2026-06-07-v1.2.0-improvements.html +450 -0
- package/docs/pr/2026-06-08-planned-work-units.ko.md +27 -0
- package/docs/pr/2026-06-08-v1.2.2.ko.md +27 -0
- package/docs/repo-signals.ko.md +104 -0
- package/docs/repo-signals.md +95 -77
- package/docs/research.md +16 -0
- package/docs/tink-idea-implementation-plan.ko.md +201 -0
- package/docs/update-diagnosis.ko.md +16 -0
- package/docs/update-diagnosis.md +16 -0
- package/docs/update-troubleshooting.ko.md +113 -0
- package/docs/update-troubleshooting.md +100 -0
- package/docs/update-verification-recipe.ko.md +118 -0
- package/docs/update-verification-recipe.md +119 -0
- package/docs/verification-evidence-details.ko.md +14 -0
- package/docs/verification-evidence-details.md +14 -0
- package/docs/work-state.ko.md +94 -0
- package/docs/work-state.md +92 -0
- package/package.json +2 -4
- package/templates/claude/commands/tink/cast.md +179 -172
- package/templates/codex/skills/tink-cast/SKILL.md +14 -13
- package/templates/codex/skills/tink-core/RULES.md +163 -112
- package/templates/tink/memory/approved/README.md +5 -0
- package/templates/tink/memory/candidate/README.md +5 -0
- package/templates/tink/memory/evidence/README.md +5 -0
- package/templates/tink/memory/rejected/README.md +5 -0
- package/templates/tink/schemas/harness-lifecycle.schema.json +44 -0
- package/templates/tink/schemas/mcp-policy.schema.json +65 -0
- package/templates/tink/schemas/verification.schema.json +154 -141
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# 업데이트 검증 레시피
|
|
2
|
+
|
|
3
|
+
이 문서는 `tink-harness update` 후 최소한 무엇을 보면 정상 업데이트라고 판단할 수 있는지 정리한다.
|
|
4
|
+
|
|
5
|
+
문제가 이미 보인다면 먼저 `docs/update-troubleshooting.ko.md`를 봐도 된다. 이 문서는 문제 해결보다 "업데이트 후 확인 순서"에 초점을 둔다.
|
|
6
|
+
|
|
7
|
+
## 빠른 검증
|
|
8
|
+
|
|
9
|
+
repo 개발자는 다음을 실행한다.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm test
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
일반 사용자는 설치된 repo에서 다음을 실행한다.
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx tink-harness@latest update --yes
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
출력에서 `Update Result Summary`를 확인한다.
|
|
22
|
+
|
|
23
|
+
## 확인 순서
|
|
24
|
+
|
|
25
|
+
### 1. Surface 확인
|
|
26
|
+
|
|
27
|
+
`Surfaces`가 의도한 값인지 본다.
|
|
28
|
+
|
|
29
|
+
- `claude`: Claude Code command와 skill만 갱신
|
|
30
|
+
- `codex`: Codex `$tink:*` skill과 repo `.tink/` 파일 갱신
|
|
31
|
+
- `all`: Claude Code와 Codex 모두 갱신
|
|
32
|
+
|
|
33
|
+
Codex를 별도 위치에 설치했다면 `Codex target`도 확인한다.
|
|
34
|
+
|
|
35
|
+
### 2. Codex skill 확인
|
|
36
|
+
|
|
37
|
+
Codex surface를 갱신했다면 다음이 있어야 한다.
|
|
38
|
+
|
|
39
|
+
- `tink-cast`
|
|
40
|
+
- `tink-verify`
|
|
41
|
+
- `tink-list`
|
|
42
|
+
- `tink-frog`
|
|
43
|
+
- `tink-weave`
|
|
44
|
+
- `tink-setup`
|
|
45
|
+
- `tink-update`
|
|
46
|
+
- `tink-core/RULES.md`
|
|
47
|
+
|
|
48
|
+
기대 상태:
|
|
49
|
+
|
|
50
|
+
- `skills/tink`는 제거되어야 한다.
|
|
51
|
+
- picker에는 action skill이 보이고, `tink-core`는 공유 규칙으로만 쓰인다.
|
|
52
|
+
|
|
53
|
+
### 3. Claude Code command 확인
|
|
54
|
+
|
|
55
|
+
Claude Code surface를 갱신했다면 다음 command가 있어야 한다.
|
|
56
|
+
|
|
57
|
+
- `/tink:setup`
|
|
58
|
+
- `/tink:cast`
|
|
59
|
+
- `/tink:verify`
|
|
60
|
+
- `/tink:list`
|
|
61
|
+
- `/tink:frog`
|
|
62
|
+
- `/tink:weave`
|
|
63
|
+
- `/tink:update`
|
|
64
|
+
|
|
65
|
+
repo 개발 중에는 `npm test`가 3-copy sync를 확인한다.
|
|
66
|
+
|
|
67
|
+
### 4. Schema 확인
|
|
68
|
+
|
|
69
|
+
다음 파일이 있어야 한다.
|
|
70
|
+
|
|
71
|
+
- `.tink/schemas/contract.schema.json`
|
|
72
|
+
- `.tink/schemas/context-map.schema.json`
|
|
73
|
+
- `.tink/schemas/verification.schema.json`
|
|
74
|
+
- `.tink/schemas/session.schema.json`
|
|
75
|
+
|
|
76
|
+
이 파일들은 `$tink:cast`와 `$tink:verify`가 같은 계약 구조를 쓰는지 확인하는 기준이다.
|
|
77
|
+
|
|
78
|
+
### 5. 보존된 파일 확인
|
|
79
|
+
|
|
80
|
+
`Preserved user-modified files`에 예상한 local file이 있는지 본다.
|
|
81
|
+
|
|
82
|
+
대표적으로 다음 파일들은 사용자 수정이 있으면 보존되는 것이 정상이다.
|
|
83
|
+
|
|
84
|
+
- `.tink/config.json`
|
|
85
|
+
- `.tink/harnesses/*`
|
|
86
|
+
- `.tink/memory/*`
|
|
87
|
+
|
|
88
|
+
`--force`를 쓰면 보존 정책이 달라질 수 있으므로 일반 update 검증에는 쓰지 않는다.
|
|
89
|
+
|
|
90
|
+
### 6. 다음 명령 확인
|
|
91
|
+
|
|
92
|
+
summary 마지막의 `Next`를 확인한다.
|
|
93
|
+
|
|
94
|
+
- Claude Code: `/tink:cast <task>`
|
|
95
|
+
- Codex: `$tink:cast <task>`
|
|
96
|
+
|
|
97
|
+
업데이트 후 바로 큰 작업을 시작하기보다, 작은 non-trivial 작업에서 `$tink:cast` 또는 `/tink:cast`가 승인 요청을 먼저 보여주는지 확인하면 좋다.
|
|
98
|
+
|
|
99
|
+
## 정상으로 볼 수 있는 기준
|
|
100
|
+
|
|
101
|
+
- update command가 성공 종료된다.
|
|
102
|
+
- `Update Result Summary`가 표시된다.
|
|
103
|
+
- 의도한 surface가 summary에 표시된다.
|
|
104
|
+
- legacy Codex `skills/tink`가 제거된다.
|
|
105
|
+
- action skills나 slash commands가 설치된다.
|
|
106
|
+
- schema files가 존재한다.
|
|
107
|
+
- 사용자 수정 파일은 `Preserved user-modified files`에 표시되고 내용이 유지된다.
|
|
108
|
+
- 다음 명령이 Claude Code와 Codex에 맞게 표시된다.
|
|
109
|
+
|
|
110
|
+
## 더 확인해야 하는 경우
|
|
111
|
+
|
|
112
|
+
다음 상황이면 `docs/update-troubleshooting.ko.md`를 본다.
|
|
113
|
+
|
|
114
|
+
- Codex picker에 예전 `tink`가 계속 보인다.
|
|
115
|
+
- schema files가 없다.
|
|
116
|
+
- update를 다른 repo에서 실행한 것 같다.
|
|
117
|
+
- Windows에서 인코딩 경고가 보여 결과를 해석하기 어렵다.
|
|
118
|
+
- `Update Result Summary`의 target path가 예상과 다르다.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Update Verification Recipe
|
|
2
|
+
|
|
3
|
+
Use this recipe after `tink-harness update` to decide whether the update looks healthy.
|
|
4
|
+
|
|
5
|
+
If something already looks wrong, see `docs/update-troubleshooting.md`. This document focuses on the normal verification path.
|
|
6
|
+
|
|
7
|
+
## Quick Check
|
|
8
|
+
|
|
9
|
+
When developing this repo, run:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm test
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
As a normal user, run this from the repo you want to update:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx tink-harness@latest update --yes
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Then read `Update Result Summary`.
|
|
22
|
+
|
|
23
|
+
## Check Order
|
|
24
|
+
|
|
25
|
+
### 1. Surface
|
|
26
|
+
|
|
27
|
+
Check `Surfaces`.
|
|
28
|
+
|
|
29
|
+
- `claude`: Claude Code commands and skill refreshed.
|
|
30
|
+
- `codex`: Codex `$tink:*` skills and repo `.tink/` files refreshed.
|
|
31
|
+
- `all`: both Claude Code and Codex refreshed.
|
|
32
|
+
|
|
33
|
+
If Codex is installed in a custom location, also check `Codex target`.
|
|
34
|
+
|
|
35
|
+
### 2. Codex Skills
|
|
36
|
+
|
|
37
|
+
For Codex, these should exist:
|
|
38
|
+
|
|
39
|
+
- `tink-cast`
|
|
40
|
+
- `tink-verify`
|
|
41
|
+
- `tink-list`
|
|
42
|
+
- `tink-frog`
|
|
43
|
+
- `tink-weave`
|
|
44
|
+
- `tink-setup`
|
|
45
|
+
- `tink-update`
|
|
46
|
+
- `tink-core/RULES.md`
|
|
47
|
+
|
|
48
|
+
Expected state:
|
|
49
|
+
|
|
50
|
+
- `skills/tink` is removed.
|
|
51
|
+
- The picker shows action skills.
|
|
52
|
+
- `tink-core` is shared internal guidance, not a user-facing action.
|
|
53
|
+
|
|
54
|
+
### 3. Claude Code Commands
|
|
55
|
+
|
|
56
|
+
For Claude Code, these commands should exist:
|
|
57
|
+
|
|
58
|
+
- `/tink:setup`
|
|
59
|
+
- `/tink:cast`
|
|
60
|
+
- `/tink:verify`
|
|
61
|
+
- `/tink:list`
|
|
62
|
+
- `/tink:frog`
|
|
63
|
+
- `/tink:weave`
|
|
64
|
+
- `/tink:update`
|
|
65
|
+
|
|
66
|
+
When developing Tink itself, `npm test` verifies the 3-copy command sync rule.
|
|
67
|
+
|
|
68
|
+
### 4. Schemas
|
|
69
|
+
|
|
70
|
+
These files should exist:
|
|
71
|
+
|
|
72
|
+
- `.tink/schemas/contract.schema.json`
|
|
73
|
+
- `.tink/schemas/context-map.schema.json`
|
|
74
|
+
- `.tink/schemas/verification.schema.json`
|
|
75
|
+
- `.tink/schemas/session.schema.json`
|
|
76
|
+
|
|
77
|
+
They keep `$tink:cast` and `$tink:verify` aligned on the same contract shape.
|
|
78
|
+
|
|
79
|
+
### 5. Preserved Files
|
|
80
|
+
|
|
81
|
+
Check `Preserved user-modified files`.
|
|
82
|
+
|
|
83
|
+
Common preserved files:
|
|
84
|
+
|
|
85
|
+
- `.tink/config.json`
|
|
86
|
+
- `.tink/harnesses/*`
|
|
87
|
+
- `.tink/memory/*`
|
|
88
|
+
|
|
89
|
+
Do not use `--force` for ordinary update verification because it changes the preservation behavior.
|
|
90
|
+
|
|
91
|
+
### 6. Next Command
|
|
92
|
+
|
|
93
|
+
Check the final `Next` line.
|
|
94
|
+
|
|
95
|
+
- Claude Code: `/tink:cast <task>`
|
|
96
|
+
- Codex: `$tink:cast <task>`
|
|
97
|
+
|
|
98
|
+
Before starting large work, try a small non-trivial task and confirm that `$tink:cast` or `/tink:cast` asks for approval before proceeding.
|
|
99
|
+
|
|
100
|
+
## Healthy Update Criteria
|
|
101
|
+
|
|
102
|
+
- The update command exits successfully.
|
|
103
|
+
- `Update Result Summary` appears.
|
|
104
|
+
- The intended surface appears in the summary.
|
|
105
|
+
- Legacy Codex `skills/tink` is removed.
|
|
106
|
+
- Action skills or slash commands are installed.
|
|
107
|
+
- Schema files exist.
|
|
108
|
+
- User-modified files appear under `Preserved user-modified files` and keep their content.
|
|
109
|
+
- The next command matches Claude Code or Codex.
|
|
110
|
+
|
|
111
|
+
## When To Troubleshoot
|
|
112
|
+
|
|
113
|
+
Use `docs/update-troubleshooting.md` when:
|
|
114
|
+
|
|
115
|
+
- old `tink` still appears in the Codex picker;
|
|
116
|
+
- schema files are missing;
|
|
117
|
+
- update may have run from the wrong repo;
|
|
118
|
+
- Windows encoding warnings make output hard to interpret;
|
|
119
|
+
- `Update Result Summary` shows an unexpected target path.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# 검증 증거 세분화
|
|
2
|
+
|
|
3
|
+
검증은 단순히 통과 여부만 말하는 것이 아니라 어떤 종류의 증거가 있는지도 설명해야 한다.
|
|
4
|
+
|
|
5
|
+
`templates/tink/schemas/verification.schema.json`의 다음 필드를 사용한다.
|
|
6
|
+
|
|
7
|
+
- `evidence_kind`: command, manual, diff, coverage, security, external, package, unknown.
|
|
8
|
+
- `evidence_ref`: `npm test`, `docs/work-state.md`, `source_ref`, PR check URL 같은 짧은 포인터.
|
|
9
|
+
- `observed`: 증거에서 확인한 내용을 짧게 쓴 문장.
|
|
10
|
+
- `next_action`: 필수 check가 실패하거나 막혔을 때 가장 작은 복구 행동.
|
|
11
|
+
|
|
12
|
+
raw log나 full diff를 붙여 넣지 않는다. 자세한 근거가 필요하면 파일, check 이름, source ref, 외부 handle을 인용한다.
|
|
13
|
+
|
|
14
|
+
이 흐름은 Claude Code `/tink:verify`와 Codex `$tink:verify`에서 같아야 하며, 검증 명령은 macOS와 Windows 모두에서 실행 가능해야 한다.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Verification Evidence Details
|
|
2
|
+
|
|
3
|
+
Verification should explain what kind of proof exists, not only whether a check passed.
|
|
4
|
+
|
|
5
|
+
Use `templates/tink/schemas/verification.schema.json` fields:
|
|
6
|
+
|
|
7
|
+
- `evidence_kind`: command, manual, diff, coverage, security, external, package, or unknown.
|
|
8
|
+
- `evidence_ref`: a compact pointer such as `npm test`, `docs/work-state.md`, `source_ref`, or a PR check URL.
|
|
9
|
+
- `observed`: a short statement of what the evidence showed.
|
|
10
|
+
- `next_action`: the smallest useful recovery step when a required check fails or is blocked.
|
|
11
|
+
|
|
12
|
+
Do not paste raw logs or full diffs. If detail is needed, cite a file, check name, source ref, or external handle.
|
|
13
|
+
|
|
14
|
+
This must behave the same from Claude Code `/tink:verify` and Codex `$tink:verify`, with portable commands for macOS and Windows.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# 작업 상태 읽기 가이드
|
|
2
|
+
|
|
3
|
+
Tink는 실행 상태를 파일로 남겨서 사람이 빠르게 네 가지를 확인할 수 있게 합니다.
|
|
4
|
+
|
|
5
|
+
1. 이 실행이 끝내려는 작업은 무엇인가?
|
|
6
|
+
2. 어떤 context를 사용했는가?
|
|
7
|
+
3. 어떤 context를 의도적으로 제외했는가?
|
|
8
|
+
4. 무엇을 근거로 완료를 판단했는가?
|
|
9
|
+
|
|
10
|
+
이 문서는 `/tink:cast`, `$tink:cast`, `/tink:verify`, `$tink:verify`가 만드는 파일을 읽는 순서입니다.
|
|
11
|
+
|
|
12
|
+
영어판은 `docs/work-state.md`에 있습니다.
|
|
13
|
+
|
|
14
|
+
## 빠른 읽기 순서
|
|
15
|
+
|
|
16
|
+
작업을 이어받거나 검토할 때는 이 순서로 봅니다.
|
|
17
|
+
|
|
18
|
+
1. `.tink/current/contract.json`
|
|
19
|
+
- 작업 종류, 성공 조건, 금지 사항, 필수 검증을 확인합니다.
|
|
20
|
+
2. `.tink/current/context-pack.md`
|
|
21
|
+
- 선택된 파일, 문서, 규칙, 외부 source의 사람용 요약을 읽습니다.
|
|
22
|
+
3. `.tink/current/context-map.json`
|
|
23
|
+
- `included`, `excluded`, `signals`, `external_context`를 구조적으로 확인합니다.
|
|
24
|
+
4. `.tink/current/excluded-context.md`
|
|
25
|
+
- 오래됐거나, 위험하거나, 너무 넓거나, 접근할 수 없거나, 범위 밖이라 제외한 context를 확인합니다.
|
|
26
|
+
5. `.tink/current/verification.json`
|
|
27
|
+
- pass, fail, blocked, skipped 검증 결과와 최종 report를 확인합니다.
|
|
28
|
+
6. `.tink/current/notes.md`
|
|
29
|
+
- 마지막 안전 지점, 복구 메모, 짧은 검증 요약을 읽습니다.
|
|
30
|
+
|
|
31
|
+
## Context 읽는 법
|
|
32
|
+
|
|
33
|
+
먼저 `context-pack.md`를 봅니다. 스키마를 몰라도 읽을 수 있어야 합니다.
|
|
34
|
+
|
|
35
|
+
추적성이 필요하면 `context-map.json`을 봅니다.
|
|
36
|
+
|
|
37
|
+
- `included`: 작업 판단에 사용한 파일, 문서, source, 산출물.
|
|
38
|
+
- `excluded`: 의도적으로 제외한 후보.
|
|
39
|
+
- `signals`: repo signal, `context_graph_rule` 선택, verification hint, unmatched path, 선택 근거.
|
|
40
|
+
- `external_context`: Figma, GitHub, official docs, dashboards, API responses, screenshots, attachments, runbooks 같은 외부 source.
|
|
41
|
+
|
|
42
|
+
`signals[]`에 `kind: "context_graph_rule"`가 있으면 `/tink:cast`나 `$tink:cast`가 changed path를 보고 고른 작은 단서로 읽습니다. `context_graph_lite.rules.claude-command-sync` 같은 안정적인 `source_ref`를 가리키고, 왜 관련 파일을 함께 포함했는지 설명해야 합니다. 이 신호는 cast 내부 선택 근거일 뿐이며 public `tink index` 명령, watcher, generated cache, hidden runtime index를 뜻하지 않습니다.
|
|
43
|
+
|
|
44
|
+
외부 context는 다음 항목을 확인합니다.
|
|
45
|
+
|
|
46
|
+
- `source`
|
|
47
|
+
- `source_ref`
|
|
48
|
+
- `included`
|
|
49
|
+
- `excluded`
|
|
50
|
+
- `confidence`
|
|
51
|
+
- `sensitivity`
|
|
52
|
+
- `verification_hint`
|
|
53
|
+
|
|
54
|
+
중요한 습관은 context를 많이 넣는 것이 아닙니다. 선택한 context가 왜 충분했는지 설명하는 것입니다.
|
|
55
|
+
|
|
56
|
+
## Verification 읽는 법
|
|
57
|
+
|
|
58
|
+
작업을 믿어도 되는지 판단할 때는 `verification.json`을 봅니다.
|
|
59
|
+
|
|
60
|
+
- `result: "pass"`는 필수 검증이 모두 통과했다는 뜻입니다.
|
|
61
|
+
- `result: "fail"`은 필수 검증이 실행되거나 점검됐고 실패했다는 뜻입니다.
|
|
62
|
+
- `result: "blocked"`는 필수 검증을 실행하거나 점검할 수 없었다는 뜻입니다.
|
|
63
|
+
- `status: "skipped"`는 선택 검증에만 허용됩니다. 필수 검증이 skipped면 blocked입니다.
|
|
64
|
+
|
|
65
|
+
`report`는 사람이 읽는 요약입니다.
|
|
66
|
+
|
|
67
|
+
- `result_line`: 한 줄 결과.
|
|
68
|
+
- `checked`: 확인한 항목.
|
|
69
|
+
- `problems`: 실패했거나 이상했던 항목.
|
|
70
|
+
- `remaining`: 아직 남은 일.
|
|
71
|
+
- `next_action`: 가장 작은 다음 행동.
|
|
72
|
+
|
|
73
|
+
## 좋은 상태의 기준
|
|
74
|
+
|
|
75
|
+
좋은 run state는 다음을 만족합니다.
|
|
76
|
+
|
|
77
|
+
- contract가 완료 조건을 말합니다.
|
|
78
|
+
- context pack이 선택된 context를 쉬운 말로 설명합니다.
|
|
79
|
+
- context map이 중요한 파일, source, verification hint를 추적할 수 있게 합니다.
|
|
80
|
+
- excluded context가 건너뛴 입력이나 위험한 입력을 보이게 합니다.
|
|
81
|
+
- verification evidence가 짧고 반복 가능하게 남습니다.
|
|
82
|
+
- notes가 마지막 안전 지점과 다음 행동을 말합니다.
|
|
83
|
+
|
|
84
|
+
## 피해야 할 것
|
|
85
|
+
|
|
86
|
+
- raw log나 full diff를 run state에 붙여넣지 않습니다.
|
|
87
|
+
- secrets, tokens, private payloads, request bodies, 넓은 external dump를 저장하지 않습니다.
|
|
88
|
+
- 외부 context는 검증 evidence가 없으면 검증된 것으로 취급하지 않습니다.
|
|
89
|
+
- repo signal에서 check를 지어내지 않습니다. hint가 없으면 `unmatched_path`를 기록합니다.
|
|
90
|
+
- 상태 요약만을 위해 새 public command를 만들지 않습니다. 먼저 기존 docs, `$tink:list`, `$tink:verify` 출력 개선을 고려합니다.
|
|
91
|
+
|
|
92
|
+
## 호환성 기준
|
|
93
|
+
|
|
94
|
+
작업 상태는 Claude Code와 Codex 양쪽에서 유용해야 합니다. 검증 명령은 macOS와 Windows에서 모두 동작하도록 repo-relative path와 `npm`, `node`, `python` 명령을 우선합니다.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Work State Guide
|
|
2
|
+
|
|
3
|
+
Tink writes work state so a human can quickly answer four questions:
|
|
4
|
+
|
|
5
|
+
1. What task is this run trying to finish?
|
|
6
|
+
2. What context did it use?
|
|
7
|
+
3. What context did it intentionally leave out?
|
|
8
|
+
4. What evidence says the work is done?
|
|
9
|
+
|
|
10
|
+
This guide is a reading path for the files created by `/tink:cast`, `$tink:cast`, `/tink:verify`, and `$tink:verify`.
|
|
11
|
+
|
|
12
|
+
## Quick Reading Order
|
|
13
|
+
|
|
14
|
+
Start here when resuming, reviewing, or handing off a run:
|
|
15
|
+
|
|
16
|
+
1. `.tink/current/contract.json`
|
|
17
|
+
- Read the task type, success conditions, forbidden actions, and required checks.
|
|
18
|
+
2. `.tink/current/context-pack.md`
|
|
19
|
+
- Read the short human summary of selected files, docs, rules, and external sources.
|
|
20
|
+
3. `.tink/current/context-map.json`
|
|
21
|
+
- Inspect the structured `included`, `excluded`, `signals`, and `external_context` entries.
|
|
22
|
+
4. `.tink/current/excluded-context.md`
|
|
23
|
+
- Check what was skipped because it was stale, unsafe, too broad, unavailable, or outside scope.
|
|
24
|
+
5. `.tink/current/verification.json`
|
|
25
|
+
- Confirm pass, fail, blocked, or skipped checks and the final report.
|
|
26
|
+
6. `.tink/current/notes.md`
|
|
27
|
+
- Read the last safe point, recovery notes, and compact verification summaries.
|
|
28
|
+
|
|
29
|
+
## How To Read Context
|
|
30
|
+
|
|
31
|
+
Use `context-pack.md` first. It should be readable without knowing the schema.
|
|
32
|
+
|
|
33
|
+
Use `context-map.json` when you need traceability:
|
|
34
|
+
|
|
35
|
+
- `included`: files, docs, sources, or artifacts that shaped the work.
|
|
36
|
+
- `excluded`: candidates intentionally left out.
|
|
37
|
+
- `signals`: repo signals, `context_graph_rule` selections, verification hints, unmatched paths, or other selection evidence.
|
|
38
|
+
- `external_context`: outside sources such as Figma, GitHub, official docs, dashboards, API responses, screenshots, attachments, or runbooks.
|
|
39
|
+
|
|
40
|
+
When `signals[]` includes `kind: "context_graph_rule"`, read it as a small changed-path clue selected by `/tink:cast` or `$tink:cast`. It should point to a stable `source_ref` such as `context_graph_lite.rules.claude-command-sync`, explain why related files were included, and stay internal to cast. It must not imply a public `tink index` command, watcher, generated cache, or hidden runtime index.
|
|
41
|
+
|
|
42
|
+
For external context, check:
|
|
43
|
+
|
|
44
|
+
- `source`
|
|
45
|
+
- `source_ref`
|
|
46
|
+
- `included`
|
|
47
|
+
- `excluded`
|
|
48
|
+
- `confidence`
|
|
49
|
+
- `sensitivity`
|
|
50
|
+
- `verification_hint`
|
|
51
|
+
|
|
52
|
+
The important habit is not to include more context. The important habit is to explain why the selected context was enough.
|
|
53
|
+
|
|
54
|
+
## How To Read Verification
|
|
55
|
+
|
|
56
|
+
Use `verification.json` to decide whether the work can be trusted.
|
|
57
|
+
|
|
58
|
+
- `result: "pass"` means all required checks passed.
|
|
59
|
+
- `result: "fail"` means a required check ran or was inspected and failed.
|
|
60
|
+
- `result: "blocked"` means a required check could not run or could not be inspected.
|
|
61
|
+
- `status: "skipped"` is acceptable only for optional checks. A required skipped check is blocked.
|
|
62
|
+
|
|
63
|
+
The `report` object is the human-facing summary:
|
|
64
|
+
|
|
65
|
+
- `result_line`: one-line result.
|
|
66
|
+
- `checked`: what was checked.
|
|
67
|
+
- `problems`: what failed or looked wrong.
|
|
68
|
+
- `remaining`: what is still open.
|
|
69
|
+
- `next_action`: the smallest useful next step.
|
|
70
|
+
|
|
71
|
+
## What Good Looks Like
|
|
72
|
+
|
|
73
|
+
A good run state has these properties:
|
|
74
|
+
|
|
75
|
+
- The contract says what done means.
|
|
76
|
+
- The context pack explains the selected context in plain language.
|
|
77
|
+
- The context map can trace every important file, source, and verification hint.
|
|
78
|
+
- The excluded context file makes skipped or unsafe inputs visible.
|
|
79
|
+
- Verification evidence is compact and repeatable.
|
|
80
|
+
- Notes say the last safe point and next action.
|
|
81
|
+
|
|
82
|
+
## What To Avoid
|
|
83
|
+
|
|
84
|
+
- Do not paste raw logs or full diffs into run state.
|
|
85
|
+
- Do not store secrets, tokens, private payloads, request bodies, or broad external dumps.
|
|
86
|
+
- Do not treat external context as verified unless a check or evidence item confirms it.
|
|
87
|
+
- Do not invent checks from repo signals. If no hint matches, record `unmatched_path`.
|
|
88
|
+
- Do not create a new command surface just to summarize state. Improve existing docs, `$tink:list`, or `$tink:verify` output first.
|
|
89
|
+
|
|
90
|
+
## Compatibility Baseline
|
|
91
|
+
|
|
92
|
+
Work state must be useful from both Claude Code and Codex. Checks should stay portable across macOS and Windows by preferring repo-relative paths and `npm`, `node`, or `python` commands.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tink-harness",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"description": "Self-growing harnesses for Claude Code and Codex.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -14,9 +14,7 @@
|
|
|
14
14
|
"commands/",
|
|
15
15
|
"skills/",
|
|
16
16
|
"hooks/",
|
|
17
|
-
"docs
|
|
18
|
-
"docs/mcp-safe-profile.md",
|
|
19
|
-
"docs/repo-signals.md",
|
|
17
|
+
"docs/*.md",
|
|
20
18
|
"docs/pr/",
|
|
21
19
|
"README.md",
|
|
22
20
|
"CHANGELOG.md",
|