tink-harness 1.0.0 → 1.1.1
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 +8 -8
- package/CHANGELOG.md +141 -109
- package/LICENSE +21 -21
- package/README.ko.md +38 -154
- package/README.md +196 -166
- package/VERSIONING.md +73 -73
- package/bin/install.js +646 -520
- package/commands/cast.md +577 -484
- package/commands/frog.md +86 -77
- package/commands/setup.md +185 -185
- package/commands/update.md +1 -5
- package/commands/verify.md +123 -0
- package/commands/weave.md +95 -81
- package/hooks/hooks.json +15 -15
- package/package.json +53 -52
- package/skills/tink/SKILL.md +72 -66
- package/templates/claude/commands/tink/cast.md +577 -484
- package/templates/claude/commands/tink/frog.md +86 -77
- package/templates/claude/commands/tink/setup.md +185 -185
- package/templates/claude/commands/tink/update.md +1 -5
- package/templates/claude/commands/tink/verify.md +123 -0
- package/templates/claude/commands/tink/weave.md +95 -81
- package/templates/claude/skills/tink/SKILL.md +72 -66
- package/templates/codex/skills/tink/SKILL.md +79 -0
- package/templates/tink/config.json +29 -20
- package/templates/tink/harnesses/harness-synthesis.md +52 -52
- package/templates/tink/harnesses/index.json +17 -0
- package/templates/tink/harnesses/pr-merge.md +53 -0
- package/templates/tink/harnesses/research.md +31 -31
- package/templates/tink/harnesses/review.md +31 -31
- package/templates/tink/harnesses/ship.md +33 -33
- package/templates/tink/hooks/guards.json +32 -0
- package/templates/tink/hooks/user-prompt-submit.json +7 -7
- package/templates/tink/hooks/user-prompt-submit.mjs +51 -49
- package/templates/tink/maintenance/friction.jsonl +1 -0
- package/templates/tink/maintenance/weave-queue.json +3 -3
- package/templates/tink/memory/lessons.md +17 -17
- package/templates/tink/memory/mistakes.md +16 -16
- package/templates/tink/memory/preferences.md +16 -16
- package/templates/tink/rules/index.json +128 -0
- package/templates/tink/schemas/contract.schema.json +86 -0
- package/templates/tink/schemas/session.schema.json +37 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "tink",
|
|
3
|
-
"description": "A small harness layer for Claude Code.",
|
|
4
|
-
"version": "1.
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "dotori"
|
|
7
|
-
}
|
|
8
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "tink",
|
|
3
|
+
"description": "A small harness layer for Claude Code.",
|
|
4
|
+
"version": "1.1.1",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "dotori"
|
|
7
|
+
}
|
|
8
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,109 +1,141 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to Tink are tracked here.
|
|
4
|
-
|
|
5
|
-
## [Unreleased]
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Tink are tracked here.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
No unreleased changes yet.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## [1.1.1] - 2026-05-26
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Small Writ-inspired rule selection: rule graph nodes now distinguish `mandatory` and `retrievable` guidance with phase, budget cost, and keyword metadata.
|
|
15
|
+
- Current-run `session.json` schema so Tink can record `loaded_rule_ids_by_phase` and avoid repeating the same rule guidance during a run.
|
|
16
|
+
- Verification evidence and friction templates: `/tink:verify` now documents `.tink/current/verification.json` evidence and `.tink/maintenance/friction.jsonl` failure signals.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- `/tink:cast`, `/tink:verify`, and `/tink:weave` now describe the smaller rule-loading path: mandatory first, keyword retrieval second, phase dedupe, compact evidence, then repeated-friction promotion through weave.
|
|
21
|
+
- README and graph docs now explain the compact rule graph, verification evidence, and friction signal flow.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## [1.1.0] - 2026-05-26
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- Contract-first run model: `/tink:cast` now writes `.tink/current/contract.json` for non-trivial runs so task type, risks, success conditions, forbidden actions, verification, and evidence are structured before harness bodies are loaded.
|
|
29
|
+
- `/tink:verify` command: runs the checks promised in the current contract, records compact evidence, and feeds failed checks into weave as `check_failed` signals.
|
|
30
|
+
- Repo-local rule graph templates in `.tink/rules/index.json`, plus `contract.schema.json`, so Tink can select relevant harnesses, checks, and opt-in guard candidates without loading large Markdown by default.
|
|
31
|
+
- Opt-in guard templates for repeated failures that should become real Claude Code hook boundaries after explicit approval.
|
|
32
|
+
- Documentation for graph contracts, verification, and guard promotion.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- `/tink:weave` can now classify improvements as harness edits, rule graph updates, or opt-in hook guard candidates.
|
|
37
|
+
- Hook recommendation script now uses readable multilingual messages and keeps the default hook advisory-only.
|
|
38
|
+
|
|
39
|
+
### Planned
|
|
40
|
+
|
|
41
|
+
- Layered scope model: merge `global` (`~/.tink/`) + `repo` (`.tink/`) + `local` (`.tink/local/` or `.tink/settings.local.json`) following the Claude Code settings pattern. Tracked separately.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## [1.0.0] - 2026-05-25
|
|
45
|
+
|
|
46
|
+
First stable release. All hardening gates passed.
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
|
|
50
|
+
- `pre-publish-multi-agent-verify` harness: 5-agent parallel verification harness for npm publish readiness. Agents cover install matrix, UX walkthrough, doc consistency, secret leak audit, and slash/contract coverage.
|
|
51
|
+
|
|
52
|
+
### Fixed
|
|
53
|
+
|
|
54
|
+
- `update` subcommand never propagated template changes to existing installs. Commands, skills, and maintenance files now always overwrite on update; harnesses, hooks, memory, and config are preserved when user-modified (respects `weave` customizations).
|
|
55
|
+
- `VERSIONING.md` update command used `npx tink-harness@latest update` (npm registry form, fails before first publish). Changed to `npx github:dotoricode/tink-harness update` (GitHub form, always works).
|
|
56
|
+
|
|
57
|
+
### Removed
|
|
58
|
+
|
|
59
|
+
- Remaining phantom references to `context-habit-calibration` in `cast.md`, `list.md`, and `SKILL.md` (harness was merged into `harness-curation` in v0.1.5).
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## [0.1.5] - 2026-05-24
|
|
63
|
+
|
|
64
|
+
### Added
|
|
65
|
+
|
|
66
|
+
- `tink-feedback-apply` harness: classify user feedback about Tink into the correct layer (behavioral, UX, preference, harness procedure, or new harness) and apply the minimum viable change.
|
|
67
|
+
- `/tink:list` output redesign: multi-line per harness, header field description, three categories (작업용 / 메타 / 이 저장소 전용), assessment section, and next-command suggestions.
|
|
68
|
+
|
|
69
|
+
### Changed
|
|
70
|
+
|
|
71
|
+
- Built-in harness `## Checks` sections replaced generic boilerplate with domain-specific checks:
|
|
72
|
+
- `research`: decision named, options compared, facts/guesses labeled, recommendation follows evidence.
|
|
73
|
+
- `review`: correctness/security/data/UX risk addressed, severity labeled, no speculative blockers.
|
|
74
|
+
- `ship`: CI checks pass or reason stated, rollback documented, artifacts listed, risks explicit.
|
|
75
|
+
- `ship` Plan step 3: "Prepare notes for humans" → "Draft PR or release summary: what changed, what risks, what rollback."
|
|
76
|
+
- `harness-curation` now includes context habit calibration (signals, 6 habit types, calibration procedure) as an inline section. No separate harness needed.
|
|
77
|
+
- `index.json`: `harness-synthesis` and `harness-curation` classified as `kind: "meta"` to distinguish from work harnesses.
|
|
78
|
+
|
|
79
|
+
### Removed
|
|
80
|
+
|
|
81
|
+
- `context-habit-calibration` standalone harness. Its content is now part of `harness-curation`.
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
## [0.1.4] - 2026-05-23
|
|
85
|
+
|
|
86
|
+
### Added
|
|
87
|
+
|
|
88
|
+
- `/tink:update` slash command: detects install source, diagnoses user-modified files, and shows the safe update command.
|
|
89
|
+
- `npx tink-harness update` subcommand: data-preserving update that keeps user-modified files. Use `--force` to overwrite everything (data loss risk).
|
|
90
|
+
- HARNESS.md harness catalog for fast human scanning.
|
|
91
|
+
- Hard-gate behavior for `ship` harness (release/publish/deploy/PR) — runs the safety gate at initial approval, not just at the first risky step.
|
|
92
|
+
|
|
93
|
+
### Changed
|
|
94
|
+
|
|
95
|
+
- Default installer language now auto-detects from `LANG`/`LANGUAGE`/`LC_ALL`, falling back to English; previously hardcoded to Korean.
|
|
96
|
+
- README Update section recommends `npx ... update` only. The `install --force` path is no longer documented as a user-facing option (the `--force` flag remains in the code for emergency use but is not advertised).
|
|
97
|
+
- `/tink:cast` approval format uses plain language for the soft-gate review block; internal labels are kept in code/docs but not shown to the user.
|
|
98
|
+
- `/tink:cast` UX overhauls: shorter prompts, fewer approval gates for trivial tasks, single consolidated approval for soft-gate cases.
|
|
99
|
+
|
|
100
|
+
### Fixed
|
|
101
|
+
|
|
102
|
+
- Restored the README hero image after the previous fix targeted the wrong surface.
|
|
103
|
+
- Increased the installer TINK banner contrast for dark terminal themes.
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## [0.1.3]
|
|
107
|
+
|
|
108
|
+
Skipped during pre-v1 sequencing.
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
## [0.1.2] - 2026-05-22
|
|
112
|
+
|
|
113
|
+
### Changed
|
|
114
|
+
|
|
115
|
+
- Added a synthesis probe so `/tink:cast` can detect when a built-in harness is only a generic fit.
|
|
116
|
+
- Made run-only draft harnesses the default path for generic-fit cases, with saving still requiring separate approval.
|
|
117
|
+
- Clarified that `harness-synthesis` should handle both `no fit` and `generic fit` cases.
|
|
118
|
+
|
|
119
|
+
## [0.1.1] - 2026-05-22
|
|
120
|
+
|
|
121
|
+
### Added
|
|
122
|
+
|
|
123
|
+
- Existing-user update instructions for Claude Code plugin installs.
|
|
124
|
+
- Standalone compatibility installer refresh command using `--force`.
|
|
125
|
+
- Maintenance evidence structure: approval ledger and weave queue templates.
|
|
126
|
+
- Run record fields for selected, rejected, actually loaded, and maintenance evidence.
|
|
127
|
+
|
|
128
|
+
### Changed
|
|
129
|
+
|
|
130
|
+
- Bumped the Claude Code plugin version to make `/plugin update` detect the latest release.
|
|
131
|
+
- Clarified `unknown` evidence handling for `/tink:list`.
|
|
132
|
+
- Added evidence grades for `/tink:frog` and evidence handles for `/tink:weave`.
|
|
133
|
+
|
|
134
|
+
## [0.1.0] - 2026-05-22
|
|
135
|
+
|
|
136
|
+
### Added
|
|
137
|
+
|
|
138
|
+
- Initial pre-v1 plugin shape for Tink.
|
|
139
|
+
- Plugin-first `/tink:*` command surface.
|
|
140
|
+
- Standalone compatibility installer.
|
|
141
|
+
- Built-in harnesses, setup flow, optional hook recommendation, and visible `.tink/` state model.
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 dotori
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 dotori
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.ko.md
CHANGED
|
@@ -2,25 +2,11 @@
|
|
|
2
2
|
<img src=".github/assets/hero.gif" alt="Tink Hero Banner" width="100%">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
<strong>Tink</strong>
|
|
7
|
-
</h1>
|
|
5
|
+
# Tink
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
Claude Code와 Codex를 위한 작은 하네스 레이어입니다.
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
Tink는 작업에 맞는 하네스를 고르고, 작업에 맞는 하네스를 만들기도 하며, 하네스를 개선 및 제거도 합니다.
|
|
13
|
-
</p>
|
|
14
|
-
|
|
15
|
-
<p>
|
|
16
|
-
<em>Tink는 <strong>knit(뜨개질)</strong>을 거꾸로 한 이름입니다. 엉킨 작업 흐름을 풀고, 더 나은 흐름으로 다시 뜨개질해 묶어준다는 뜻입니다. 동시에 곁에 있는 작은 조력자 팅커벨에 대한 오마주이기도 합니다.</em>
|
|
17
|
-
</p>
|
|
18
|
-
|
|
19
|
-
<p>
|
|
20
|
-
<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>
|
|
21
|
-
<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>
|
|
22
|
-
<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>
|
|
23
|
-
</p>
|
|
9
|
+
Tink는 지금 작업에 맞는 하네스를 고르고, 실행 상태를 보이게 만들고, 실제 사용 중 생긴 실패와 피드백으로 하네스 세트를 개선합니다.
|
|
24
10
|
|
|
25
11
|
[English](README.md) · **한국어**
|
|
26
12
|
|
|
@@ -28,196 +14,94 @@
|
|
|
28
14
|
|
|
29
15
|
## 왜 만들었나
|
|
30
16
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
처음에는 하나씩 써보면서 저에게 맞는 것만 남겼습니다. 그런데 여러 개를 섞을수록 환경이 점점 엉켜갔습니다. 매번 처음부터 다시 정리하기가 지쳐서, 결국 제가 이해하고 통제할 수 있는 skill 기반 흐름으로 돌아갔습니다.
|
|
34
|
-
|
|
35
|
-
그 뒤로 한동안 Hermes Agent를 썼습니다. 그때 마음에 남은 것은, 쓸수록 시스템이 나아진다는 점이었습니다. 반복되는 작업이 다시 쓸 수 있는 skill이 되고, 실수가 기억이 되며, 시스템이 사용하는 사람에게 천천히 맞춰져 갔습니다.
|
|
36
|
-
|
|
37
|
-
Tink는 단순한 질문에서 시작됐습니다:
|
|
17
|
+
새로운 AI 코딩 하네스와 워크플로는 계속 늘어납니다. 좋은 것도 많지만, 여러 개를 섞다 보면 환경이 무거워지고 매번 다시 정리해야 합니다.
|
|
38
18
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
큰 프레임워크를 더 얹지 않고도, 에이전트를 더 늘리지 않고도. 그저 Claude나 Codex가 지금 작업에 맞는 하네스를 고르고, 맞는 게 없으면 새로 만들고, 시간이 지나며 그 모음을 더 좋게 다듬도록 돕는 방식으로요.
|
|
19
|
+
Tink는 큰 프레임워크가 아닙니다. Claude Code나 Codex가 지금 작업에 필요한 절차만 고르고, 없으면 작은 임시 하네스를 만들고, 반복되는 실수만 승인 후 재사용 지식으로 남기도록 돕습니다.
|
|
42
20
|
|
|
43
21
|
## 설치
|
|
44
22
|
|
|
45
|
-
Claude Code
|
|
23
|
+
Claude Code 플러그인:
|
|
46
24
|
|
|
47
25
|
```text
|
|
48
26
|
/plugin marketplace add dotoricode/tink-harness
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
```text
|
|
52
27
|
/plugin install tink@tink-harness
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
```text
|
|
56
28
|
/reload-plugins
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
```text
|
|
60
29
|
/tink:setup
|
|
61
30
|
```
|
|
62
31
|
|
|
63
|
-
|
|
32
|
+
Standalone / Codex 호환 설치:
|
|
64
33
|
|
|
65
34
|
```bash
|
|
66
|
-
npx
|
|
35
|
+
npx tink-harness@latest install
|
|
67
36
|
```
|
|
68
37
|
|
|
69
|
-
|
|
38
|
+
설치 중 `Claude Code`, `Codex`, 또는 둘 다를 선택할 수 있습니다. Codex에서는 `$tink cast <task>`로 시작합니다.
|
|
70
39
|
|
|
71
40
|
## 업데이트
|
|
72
41
|
|
|
73
|
-
Claude Code
|
|
42
|
+
Claude Code 플러그인:
|
|
74
43
|
|
|
75
44
|
```text
|
|
76
45
|
/plugin marketplace update tink-harness
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
```text
|
|
80
46
|
/plugin update tink@tink-harness
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
```text
|
|
84
47
|
/reload-plugins
|
|
85
48
|
```
|
|
86
49
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
```text
|
|
90
|
-
/plugin uninstall tink@tink-harness
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
```text
|
|
94
|
-
/plugin install tink@tink-harness
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
기존 독립형 설치를 업데이트하려면(사용자 수정 파일은 유지됩니다):
|
|
50
|
+
Standalone / Codex:
|
|
98
51
|
|
|
99
52
|
```bash
|
|
100
|
-
npx
|
|
53
|
+
npx tink-harness@latest update
|
|
101
54
|
```
|
|
102
55
|
|
|
103
56
|
## 명령
|
|
104
57
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
Tink는 플러그인 우선 구조이며, 모든 명령은 `tink` 네임스페이스를 사용합니다. 따라서 공개되는 명령은 `/tink:*`로 한정되고 일반 명령과의 충돌을 피할 수 있습니다.
|
|
58
|
+
Claude Code에서는 `/tink:*`, Codex에서는 `$tink <action>`을 씁니다.
|
|
108
59
|
|
|
109
60
|
### `/tink:cast`
|
|
110
61
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
Tink에서 `cast`는 기본 실행 흐름입니다. 작업을 읽고, 적절한 하네스를 선택하거나 초안을 만들고, 짧은 내부 검토를 거친 뒤 `.tink/current/`에 현재 작업 상태를 구성합니다. 이후 사용자 승인을 받고 안전한 첫 단계를 실행합니다.
|
|
62
|
+
작업을 읽고, 필요한 하네스만 고르고, `.tink/current/` 실행 상태를 만든 뒤 첫 번째 안전한 단계를 시작합니다.
|
|
114
63
|
|
|
115
|
-
|
|
64
|
+
Tink는 이제 비단순 작업에 대해 `.tink/current/contract.json`도 만듭니다. 이 파일에는 작업 종류, 위험, 성공 조건, 금지 사항, 검증 명령이 들어갑니다.
|
|
116
65
|
|
|
117
|
-
### `/tink:
|
|
118
|
-
|
|
119
|
-
**frog**는 잘못 뜬 부분을 풀어내는 뜨개질 용어입니다. 실을 푸는 소리인 "rip it, rip it"에서 이름이 왔습니다.
|
|
66
|
+
### `/tink:verify`
|
|
120
67
|
|
|
121
|
-
|
|
68
|
+
`contract.json`에 적힌 검증을 실제로 실행하고 증거를 남깁니다.
|
|
122
69
|
|
|
123
|
-
|
|
124
|
-
- 다른 하네스와 역할이 겹치는 항목
|
|
125
|
-
- 범위가 지나치게 넓은 하네스
|
|
126
|
-
- 유지 비용 대비 효율이 낮은 하네스
|
|
70
|
+
릴리스, 배포, 공개 PR처럼 "된 것 같다"가 아니라 "확인했다"가 필요한 작업에서 씁니다.
|
|
127
71
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
삭제는 항상 사용자 승인 이후에만 수행됩니다.
|
|
72
|
+
### `/tink:frog`
|
|
131
73
|
|
|
132
|
-
|
|
74
|
+
거의 쓰지 않거나 겹치거나 너무 무거운 하네스를 정리 후보로 제안합니다. 사용자 승인 없이는 삭제하지 않습니다.
|
|
133
75
|
|
|
134
76
|
### `/tink:weave`
|
|
135
77
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
Tink에서 `weave`는 실제 사용 기록, 실패 사례, 사용자 수정 내용을 바탕으로 기존 하네스를 다듬습니다.
|
|
139
|
-
|
|
140
|
-
목표는 다음 실행이:
|
|
141
|
-
|
|
142
|
-
- 더 명확하고
|
|
143
|
-
- 더 안전하며
|
|
144
|
-
- 더 검증 가능하도록
|
|
145
|
-
|
|
146
|
-
개선하는 것입니다.
|
|
147
|
-
|
|
148
|
-
하네스가 거의 맞지만 조금씩 어긋나기 시작할 때 사용합니다.
|
|
149
|
-
|
|
150
|
-
### 기타 명령
|
|
151
|
-
|
|
152
|
-
- `/tink:setup`
|
|
153
|
-
- 언어, 설치 범위, Git 추적, Hook 정책을 설정합니다.
|
|
154
|
-
|
|
155
|
-
- `/tink:list`
|
|
156
|
-
- 사용 가능한 하네스와 최근 사용 내역을 확인합니다.
|
|
157
|
-
|
|
158
|
-
- `/tink:update`
|
|
159
|
-
- 설치 경로를 감지하고 안전한 업데이트 방법을 안내합니다.
|
|
160
|
-
|
|
161
|
-
## 동작 방식
|
|
162
|
-
|
|
163
|
-
Tink는 사용자가 직접 확인할 수 있는 파일 구조를 사용합니다.
|
|
164
|
-
|
|
165
|
-
- `.tink/harnesses/`
|
|
166
|
-
- 재사용 가능한 작업 하네스
|
|
167
|
-
|
|
168
|
-
- `.tink/current/`
|
|
169
|
-
- 현재 실행 상태
|
|
170
|
-
|
|
171
|
-
- `.tink/runs/`
|
|
172
|
-
- 완료·중단·취소·교체된 실행 기록
|
|
173
|
-
|
|
174
|
-
- `.tink/memory/`
|
|
175
|
-
- 승인된 실수, 선호 설정, 작업 중 얻은 교훈
|
|
176
|
-
|
|
177
|
-
가장 중요한 원칙은 **승인(approval)** 입니다.
|
|
178
|
-
|
|
179
|
-
Tink는:
|
|
180
|
-
|
|
181
|
-
- 하네스 생성
|
|
182
|
-
- 메모리 저장
|
|
183
|
-
- 정리 작업
|
|
184
|
-
- 개선 제안
|
|
185
|
-
|
|
186
|
-
을 수행할 수 있지만, 실제 적용 전에는 항상 사용자 확인을 거칩니다.
|
|
187
|
-
|
|
188
|
-
실행 전에는 짧은 점검 단계를 수행하며, 중요한 변경이 있을 때만 별도 제안을 표시합니다.
|
|
189
|
-
|
|
190
|
-
위험이 낮은 작업은 기록된 가정을 바탕으로 계속 진행할 수 있습니다. 하지만:
|
|
191
|
-
|
|
192
|
-
- 공개
|
|
193
|
-
- 배포
|
|
194
|
-
- 삭제
|
|
195
|
-
- 대규모 수정
|
|
196
|
-
- 되돌리기 어려운 변경
|
|
78
|
+
실제 실패, 반복 사용, 사용자 수정 내용을 바탕으로 하네스를 조금 더 정확하게 고칩니다. 필요한 경우 `.tink/rules/`의 rule graph나 opt-in hook guard 후보로 승격합니다.
|
|
197
79
|
|
|
198
|
-
|
|
80
|
+
### 기타
|
|
199
81
|
|
|
200
|
-
|
|
82
|
+
- `/tink:setup`: 언어, 설치 범위, git 추적, hook 정책 설정
|
|
83
|
+
- `/tink:list`: 사용 가능한 하네스와 사용 신호 확인
|
|
84
|
+
- `/tink:update`: 설치 출처를 확인하고 안전한 업데이트 안내
|
|
201
85
|
|
|
202
|
-
|
|
203
|
-
- 메모리 항목
|
|
204
|
-
- `.claude/` 워크플로 파일
|
|
86
|
+
## 작동 방식
|
|
205
87
|
|
|
206
|
-
|
|
88
|
+
Tink는 직접 볼 수 있는 파일을 씁니다.
|
|
207
89
|
|
|
208
|
-
|
|
90
|
+
- `.tink/harnesses/`: 재사용 가능한 작업 하네스
|
|
91
|
+
- `.tink/rules/`: 계약 내용에 맞춰 필요한 하네스, 체크, guard 후보만 고르는 작은 rule graph
|
|
92
|
+
- `.tink/schemas/`: `contract.json` 같은 구조화 파일의 스키마
|
|
93
|
+
- `.tink/current/`: 현재 실행 상태
|
|
94
|
+
- `.tink/runs/`: 완료, 중단, 취소, 교체된 실행 기록
|
|
95
|
+
- `.tink/maintenance/`: 검증, friction, weave 신호 기록
|
|
96
|
+
- `.tink/memory/`: 승인된 실수, 선호, 교훈
|
|
209
97
|
|
|
210
|
-
|
|
98
|
+
Rule graph는 작게 유지합니다. Tink는 먼저 필수 규칙을 고르고, 작업 사실이나 keyword에 맞는 선택 규칙만 가져오며, phase별로 이미 읽은 rule id를 기록해 같은 안내를 반복하지 않습니다.
|
|
211
99
|
|
|
212
|
-
|
|
100
|
+
중요한 원칙은 승인입니다. 현재 작업을 진행하는 승인과, 미래에도 재사용될 상태를 저장하는 승인은 별개입니다. 새 하네스, 메모리, rule graph, hook guard 저장은 항상 별도 승인이 필요합니다.
|
|
213
101
|
|
|
214
|
-
|
|
215
|
-
- 워크플로 엔진
|
|
216
|
-
- 멀티 에이전트 런타임
|
|
217
|
-
- 프롬프트 라이브러리
|
|
218
|
-
- Claude Code나 Codex 대체 도구
|
|
102
|
+
## Tink가 아닌 것
|
|
219
103
|
|
|
220
|
-
Tink는 Claude Code
|
|
104
|
+
Tink는 코딩 에이전트, 워크플로 엔진, 멀티 에이전트 런타임, 프롬프트 라이브러리가 아닙니다. Claude Code와 Codex 위에 얹는 작은 하네스 레이어입니다.
|
|
221
105
|
|
|
222
106
|
## 라이선스
|
|
223
107
|
|