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 +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/rules/MUST-completion-verification.md +4 -0
- package/templates/.claude/rules/MUST-parallel-execution.md +13 -0
- package/templates/.claude/rules/MUST-tool-identification.md +37 -0
- package/templates/manifest.json +1 -1
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -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
|
```
|
package/templates/manifest.json
CHANGED