tink-harness 1.15.3 → 1.15.4

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.15.3",
4
+ "version": "1.15.4",
5
5
  "author": {
6
6
  "name": "dotori"
7
7
  }
package/CHANGELOG.md CHANGED
@@ -6,6 +6,11 @@ All notable changes to Tink are tracked here.
6
6
 
7
7
  - Added a geobench product spec and runbook for measuring Tink's LLM answer visibility with hit rate, MRR, share of voice, and citation metrics. The runbook keeps benchmark execution separate from this repo and says to publish aggregate metrics only.
8
8
 
9
+ ## [1.15.4] - 2026-06-24
10
+
11
+ - Deep mode interview: round indicator no longer shows `/10` as a fixed denominator; bar fills relative to the 10-round maximum. Indicator is omitted entirely when no questions are asked. Actual round count is shown on the final spec line.
12
+ - Deep mode Round 0 renamed from "Topology lock" to "구성 파악"; component list now uses emojis for readability.
13
+
9
14
  ## [1.15.3] - 2026-06-24
10
15
 
11
16
  - Fixed `$tink:cast` with no argument in Codex showing a task prompt instead of mode descriptions. Codex now displays the current mode and all three mode descriptions directly, matching Claude Code behavior.
package/README.ko.md CHANGED
@@ -10,7 +10,7 @@ Tink는 사소하지 않은 모든 에이전트 작업을 눈에 보이는 파
10
10
 
11
11
  <sub>Claude Code와 Codex를 위한 작은 하네스 레이어</sub>
12
12
 
13
- **최신 패키지:** v1.15.3Codex에서 `$tink:cast` 인수 없이 실행 작업 입력 요구 대신 모드 설명 바로 표시. 전체 변경 이력은 [CHANGELOG](CHANGELOG.md)를 확인하세요.
13
+ **최신 패키지:** v1.15.4deep 모드 인터뷰 UX 개선: 라운드 표시 적응형 전환, 구성 요소 이모지 표기, 질문 없을 때 표시 생략. 전체 변경 이력은 [CHANGELOG](CHANGELOG.md)를 확인하세요.
14
14
 
15
15
  [English](README.md) · **한국어** · [변경 이력](CHANGELOG.md)
16
16
 
package/README.md CHANGED
@@ -24,7 +24,7 @@
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 package:</strong> v1.15.3 - Fixed <code>$tink:cast</code> with no argument in Codex showing a task prompt instead of mode descriptions. See <a href="CHANGELOG.md">CHANGELOG</a> for release history.</p>
27
+ <p><strong>Latest package:</strong> v1.15.4 - Deep mode interview UX improvements: adaptive round indicator, emoji component list, omit indicator when no questions asked. See <a href="CHANGELOG.md">CHANGELOG</a> for release history.</p>
28
28
 
29
29
  **English** · [한국어](README.ko.md) · [Changelog](CHANGELOG.md)
30
30
 
package/VERSIONING.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Versioning
2
2
 
3
- Current version: `1.15.3`
3
+ Current version: `1.15.4`
4
4
 
5
5
  Tink follows semver from `1.0.0` onward.
6
6
 
package/commands/cast.md CHANGED
@@ -134,14 +134,20 @@ Do not record a clean Stitch pass.
134
134
  ## Deep mode
135
135
  When `cast_mode` is `deep`, run a structured interview before the normal Procedure. The interview refines the task into a spec that feeds harness selection.
136
136
 
137
- **Round 0 — Topology lock** (not counted in progress)
138
- Before asking any questions, present the high-level components Claude infers from the request and visible codebase context. Ask the user to confirm, add, remove, or merge components. This prevents deep focus on one component from obscuring others.
137
+ **Round 0 — 구성 파악** (not counted in progress)
138
+ Before asking any questions, present the high-level components Claude infers from the request and visible codebase context. Use emojis to separate components and improve readability — e.g. one emoji per component line (🖥️ 🔗 ⚡ 🚫 📂 🔄). Ask the user to confirm, add, remove, or merge components. This prevents deep focus on one component from obscuring others.
139
139
 
140
140
  **Interview loop — Rounds 1–10**
141
- Show a progress indicator at the start of each question:
141
+ Show a progress indicator at the start of each question. Do not show `/10` as a fixed denominator — the actual number of rounds is not known upfront:
142
142
 
143
143
  ```
144
- [Round N/10 ████████░░░░░░░░░░░░]
144
+ [Round N ██░░░░░░░░]
145
+ ```
146
+
147
+ The bar fills N/10 cells to show relative progress toward the maximum. Only show the indicator when an actual question is asked — if the interview produces no questions (task is already clear after Round 0), omit the indicator entirely. When the interview ends early, replace the indicator with the actual count on the final spec line:
148
+
149
+ ```
150
+ [인터뷰 완료 · N라운드] (English: [Interview done · N rounds])
145
151
  ```
146
152
 
147
153
  Rules:
@@ -159,7 +165,7 @@ Rules:
159
165
  - When those are also resolved → shift to Simplifier mode: "What is the smallest version that still has meaningful value?"
160
166
 
161
167
  **Spec → plan.md → harness selection**
162
- When the interview ends, write `.tink/current/plan.md` with these top-level sections: Goal, Topology, Constraints, Success Criteria, Open Questions.
168
+ When the interview ends, write `.tink/current/plan.md` with these top-level sections: Goal, 구성 요소, Constraints, Success Criteria, Open Questions.
163
169
 
164
170
  Then proceed to the normal Procedure starting at step 3 (read harness index). Use the spec as the harness selection input instead of the raw task request. Stitch Phase A runs after harness selection as normal. Phase B is skipped.
165
171
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tink-harness",
3
- "version": "1.15.3",
3
+ "version": "1.15.4",
4
4
  "description": "Self-growing harnesses for Claude Code and Codex.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -134,14 +134,20 @@ Do not record a clean Stitch pass.
134
134
  ## Deep mode
135
135
  When `cast_mode` is `deep`, run a structured interview before the normal Procedure. The interview refines the task into a spec that feeds harness selection.
136
136
 
137
- **Round 0 — Topology lock** (not counted in progress)
138
- Before asking any questions, present the high-level components Claude infers from the request and visible codebase context. Ask the user to confirm, add, remove, or merge components. This prevents deep focus on one component from obscuring others.
137
+ **Round 0 — 구성 파악** (not counted in progress)
138
+ Before asking any questions, present the high-level components Claude infers from the request and visible codebase context. Use emojis to separate components and improve readability — e.g. one emoji per component line (🖥️ 🔗 ⚡ 🚫 📂 🔄). Ask the user to confirm, add, remove, or merge components. This prevents deep focus on one component from obscuring others.
139
139
 
140
140
  **Interview loop — Rounds 1–10**
141
- Show a progress indicator at the start of each question:
141
+ Show a progress indicator at the start of each question. Do not show `/10` as a fixed denominator — the actual number of rounds is not known upfront:
142
142
 
143
143
  ```
144
- [Round N/10 ████████░░░░░░░░░░░░]
144
+ [Round N ██░░░░░░░░]
145
+ ```
146
+
147
+ The bar fills N/10 cells to show relative progress toward the maximum. Only show the indicator when an actual question is asked — if the interview produces no questions (task is already clear after Round 0), omit the indicator entirely. When the interview ends early, replace the indicator with the actual count on the final spec line:
148
+
149
+ ```
150
+ [인터뷰 완료 · N라운드] (English: [Interview done · N rounds])
145
151
  ```
146
152
 
147
153
  Rules:
@@ -159,7 +165,7 @@ Rules:
159
165
  - When those are also resolved → shift to Simplifier mode: "What is the smallest version that still has meaningful value?"
160
166
 
161
167
  **Spec → plan.md → harness selection**
162
- When the interview ends, write `.tink/current/plan.md` with these top-level sections: Goal, Topology, Constraints, Success Criteria, Open Questions.
168
+ When the interview ends, write `.tink/current/plan.md` with these top-level sections: Goal, 구성 요소, Constraints, Success Criteria, Open Questions.
163
169
 
164
170
  Then proceed to the normal Procedure starting at step 3 (read harness index). Use the spec as the harness selection input instead of the raw task request. Stitch Phase A runs after harness selection as normal. Phase B is skipped.
165
171
 
@@ -44,7 +44,7 @@ Accept legacy `$tink <action>` spelling for compatibility, but present `$tink:<a
44
44
  24. If a check fails, update `.tink/current/notes.md`, state the failure, last safe point, and next single action. Append compact friction to `.tink/maintenance/friction.jsonl` when it exists. Feed repeated failures to `$tink:weave`.
45
45
  25. Keep context compact. Do not paste raw logs or full diffs.
46
46
  26. Use calm, clear, concise language. Prefer plain everyday words over technical terms. No jokes.
47
- 27. Read `cast_mode` from `.tink/config.json` before classifying the task. If `quick`, force Lane 1 (instant start) unless a hard-gate signal is present. If `deep`, run the structured interview before harness selection: (Round 0) present inferred topology and confirm with the user; (Rounds 1–10 max) ask one question per round targeting the weakest clarity dimension — goal (0.35 weight), constraint (0.25), success criteria (0.25), context (0.15) — investigate brownfield code before asking, do not ask what is already visible; show `[Round N/10 ████░░░░░░░░░░░░░░░░]` at each question; allow early exit from Round 3+; shift to Contrarian questioning when goal and constraint are clear, then Simplifier when those resolve; end by writing Goal, Topology, Constraints, Success Criteria, Open Questions to `.tink/current/plan.md`, then proceed to harness selection with Stitch Phase A only. If `$tink:cast` is invoked with no task argument, show the current `cast_mode` value and one-line descriptions of all three modes (quick / standard / deep) and stop — do not ask for a task. To change the mode, run `$tink:cast <mode>`; that sets `cast_mode` in `.tink/config.json` and confirms with a single line, no other output.
47
+ 27. Read `cast_mode` from `.tink/config.json` before classifying the task. If `quick`, force Lane 1 (instant start) unless a hard-gate signal is present. If `deep`, run the structured interview before harness selection: (Round 0) present inferred components as a structured list with one emoji per component line for readability (🖥️ 🔗 ⚡ 🚫 📂 🔄 etc.) and confirm with the user; (Rounds 1–10 max) ask one question per round targeting the weakest clarity dimension — goal (0.35 weight), constraint (0.25), success criteria (0.25), context (0.15) — investigate brownfield code before asking, do not ask what is already visible; show `[Round N ██░░░░░░░░]` (no `/10` — actual round count is not known upfront; bar fills N/10 cells) only when a question is actually asked — omit the indicator entirely if the task is clear after Round 0 and no questions are needed; when ending early, show `[인터뷰 완료 · N라운드]` on the final spec line; allow early exit from Round 3+; shift to Contrarian questioning when goal and constraint are clear, then Simplifier when those resolve; end by writing Goal, Topology, Constraints, Success Criteria, Open Questions to `.tink/current/plan.md`, then proceed to harness selection with Stitch Phase A only. If `$tink:cast` is invoked with no task argument, show the current `cast_mode` value and one-line descriptions of all three modes (quick / standard / deep) and stop — do not ask for a task. To change the mode, run `$tink:cast <mode>`; that sets `cast_mode` in `.tink/config.json` and confirms with a single line, no other output.
48
48
 
49
49
  ## Codex Approval Protocol
50
50