oh-my-customcodex 0.5.17 → 0.5.18

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/dist/cli/index.js CHANGED
@@ -3091,7 +3091,7 @@ var init_package = __esm(() => {
3091
3091
  workspaces: [
3092
3092
  "packages/*"
3093
3093
  ],
3094
- version: "0.5.17",
3094
+ version: "0.5.18",
3095
3095
  requiresCC: ">=2.1.121",
3096
3096
  claudeCode: {
3097
3097
  minimumVersion: "2.1.121",
package/dist/index.js CHANGED
@@ -2316,7 +2316,7 @@ var package_default = {
2316
2316
  workspaces: [
2317
2317
  "packages/*"
2318
2318
  ],
2319
- version: "0.5.17",
2319
+ version: "0.5.18",
2320
2320
  requiresCC: ">=2.1.121",
2321
2321
  claudeCode: {
2322
2322
  minimumVersion: "2.1.121",
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "0.5.17",
6
+ "version": "0.5.18",
7
7
  "requiresCC": ">=2.1.121",
8
8
  "claudeCode": {
9
9
  "minimumVersion": "2.1.121",
@@ -162,6 +162,10 @@ When a user sends a new instruction while work is in progress, completion status
162
162
  3. If the new message adds a requirement, add it to the completion contract before closing.
163
163
  4. If no conflict exists, continue but explicitly preserve the new requirement in the next verification pass.
164
164
 
165
+ ### Tool-Call Payload Completeness
166
+
167
+ 도구 호출의 required 파라미터는 invoke 전에 확인한다(완료 선언 후가 아니라 호출 시점의 전제조건). announce(prefix)만 출력하고 payload의 required 필드를 누락하는 패턴은 R008 "Required-Parameter Completeness Check"가 canonical owner다. Reference: #1487 / upstream #1324.
168
+
165
169
  ## Completion Contract Format — [Contract] + [Done] with criterion/evidence pairs. See template via Read tool.
166
170
 
167
171
  <!-- DETAIL: Completion Contract Format
@@ -34,6 +34,19 @@ Before writing/editing multiple files:
34
34
  5. Running agent stalled (2x+ duration)? → Spawn independent follow-up tasks immediately
35
35
  6. Parallel dispatch announced? → put all announced tool calls in the same message
36
36
 
37
+ ### LLM Batch Output Token Budget
38
+
39
+ For N-item structured LLM batches, pre-compute output tokens and chunk variable-size lists (default ≤40 items); raising `max_tokens` alone is not enough. Reference: #1486 / upstream #1321 and #1320.
40
+
41
+ <!-- DETAIL: LLM Batch Output Token Budget
42
+ The giant-prompt heuristic governs input tokens. The symmetric output-side rule: when a single LLM call processes N items (scoring/classifying/extracting) and must emit structured output (for example JSON) per item, pre-compute the output budget = N × per-item output tokens before the call. Exceeding `max_tokens` truncates the response mid-structure, so the call can appear to succeed while JSON parsing fails.
43
+
44
+ | Anti-pattern | Required |
45
+ |--------------|----------|
46
+ | Single batch call over a variable-size list with a fixed small `max_tokens` | Chunk into bounded batches (default ≤40 items), constrain per-item output length, and set `max_tokens` to fit one chunk |
47
+ | Raising `max_tokens` alone | Insufficient — it only defers the failure as the list grows. Chunking is the invariant fix. |
48
+ -->
49
+
37
50
  ### Common Violations to Avoid
38
51
 
39
52
  <!-- DETAIL: Common Violations Short Examples
@@ -50,6 +50,18 @@ Incorrect parallel: tool_call(url1), tool_call(url2), tool_call(cmd) — no iden
50
50
  Correct parallel: list ALL [agent][model] → Tool/Fetching/Running lines FIRST, then all tool_calls
51
51
  -->
52
52
 
53
+
54
+ ### Required-Parameter Completeness Check
55
+
56
+ R008 prefix(announce)와 실제 도구 호출은 분리된 단계다. prefix를 출력한 뒤 호출 payload에서 도구 스키마상 required 파라미터를 누락하면 호출이 실패하거나 빈 동작이 된다. 호출 직전, prefix 존재뿐 아니라 required 파라미터가 모두 채워졌는지 확인한다.
57
+
58
+ | Anti-pattern | Required |
59
+ |--------------|----------|
60
+ | `[agent][model] → Tool: AskUserQuestion` prefix만 출력하고 `questions` 파라미터 없이/빈 배열로 호출 | prefix + `questions` 배열(최소 1개) 모두 채워 호출 |
61
+ | announce 후 payload의 required 필드 누락 (announce-payload separation gap) | announce와 동일 메시지에서 required 필드 완비 호출 |
62
+
63
+ Cross-reference: R020 (action-completeness precondition — invoke 전에 required 파라미터 확인). Reference issue: #1487 / upstream #1324 (AskUserQuestion `questions` 누락 재발 방지).
64
+
53
65
  ## Models
54
66
 
55
67
  | Model | Use |
@@ -100,6 +112,31 @@ matches the spawn announcement:
100
112
  [2] lang-python-expert:sonnet → Python code review
101
113
  ```
102
114
 
115
+ ## Tier-3 Interaction Tool Prefix (MANDATORY)
116
+
117
+ R008 "every tool call" applies to Tier-3 interaction tools too — not only file/exec tools. Applying the `[agent][model] → Tool:` prefix to Bash/Read/Agent while omitting it on `AskUserQuestion`, `TodoWrite`, `EnterPlanMode`, `ExitPlanMode`, `request_user_input`, or equivalent structured-question tools is a violation.
118
+
119
+ | Tool | R008 prefix required? |
120
+ |------|----------------------|
121
+ | AskUserQuestion / `request_user_input` / structured question | YES — `[agent][model] → Tool: AskUserQuestion` or equivalent before the call |
122
+ | TodoWrite / `update_plan` | YES |
123
+ | EnterPlanMode / ExitPlanMode | YES |
124
+ | Skill | NO separate R008 prefix — identified via the R007 integrated header instead |
125
+
126
+ Skill invocation is the one exception: it is identified through the R007 integrated identification block (`┌─ Agent: {agent} → {skill-name}`), not a standalone R008 tool prefix.
127
+
128
+ Reference issue: #1486 / upstream #1321 (AskUserQuestion prefix omission); complements #1487 required-payload completeness.
129
+
130
+ ## Multi-Turn Self-Check
131
+
132
+ 도구 호출 전 매번 확인한다:
133
+
134
+ 1. 이 호출 위에 `[agent-name][model] → Tool: <tool-name>` 라인이 있는가?
135
+ 2. agent-name과 model이 현재 컨텍스트와 일치하는가?
136
+ 3. 이 호출에 도구 스키마상 required 파라미터가 모두 채워져 있는가? 예: AskUserQuestion/request_user_input 계열은 `questions` 배열이 비어 있지 않아야 한다. prefix(announce)만 출력하고 실제 호출 payload의 required 필드를 누락하면 안 된다.
137
+
138
+ 체크 실패 시 즉시 prefix/필수 파라미터를 보완한 후 호출.
139
+
103
140
  ## Example
104
141
 
105
142
  ```
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.5.17",
2
+ "version": "0.5.18",
3
3
  "requiresCC": ">=2.1.121",
4
4
  "claudeCode": {
5
5
  "minimumVersion": "2.1.121",