sprag-cli 3.40.0
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/LICENSE +21 -0
- package/README.ko.md +637 -0
- package/README.md +758 -0
- package/bin/cli.js +801 -0
- package/examples/statusline-command.ps1 +43 -0
- package/examples/statusline-command.sh +36 -0
- package/package.json +62 -0
- package/presets/cohesion/cohesion-en.md +26 -0
- package/presets/doc2md/convert.py +363 -0
- package/presets/korean-style/LICENSE-fluent-korean +21 -0
- package/presets/korean-style/fluent-korean.md +52 -0
- package/presets/korean-style/supplement.md +93 -0
- package/presets/model-rules.json +115 -0
- package/presets/ratchet-rules.json +38 -0
- package/src/advice.js +564 -0
- package/src/agents.js +52 -0
- package/src/brief.js +264 -0
- package/src/caps-cache.js +84 -0
- package/src/cli-args.js +51 -0
- package/src/cohesion.js +70 -0
- package/src/commands/brief.js +31 -0
- package/src/commands/cohesion.js +59 -0
- package/src/commands/compact-window.js +93 -0
- package/src/commands/doc2md.js +166 -0
- package/src/commands/feedback.js +132 -0
- package/src/commands/handoff.js +33 -0
- package/src/commands/harness.js +459 -0
- package/src/commands/history.js +46 -0
- package/src/commands/install.js +358 -0
- package/src/commands/korean.js +220 -0
- package/src/commands/last.js +151 -0
- package/src/commands/mode.js +46 -0
- package/src/commands/route-scan.js +454 -0
- package/src/commands/seed.js +105 -0
- package/src/commands/uninstall.js +42 -0
- package/src/commands/update-check.js +77 -0
- package/src/commands/upgrade.js +68 -0
- package/src/compact-window.js +205 -0
- package/src/config.js +232 -0
- package/src/cost.js +253 -0
- package/src/debug.js +29 -0
- package/src/demo.js +331 -0
- package/src/doc2md-ledger.cjs +227 -0
- package/src/doc2md.cjs +997 -0
- package/src/fig2md-runner.cjs +21 -0
- package/src/fig2md.cjs +191 -0
- package/src/first-run-note.js +63 -0
- package/src/format-time.js +44 -0
- package/src/formatters/csv.js +8 -0
- package/src/formatters/json.js +3 -0
- package/src/formatters/statusline.js +750 -0
- package/src/formatters/table.js +299 -0
- package/src/handoff.js +161 -0
- package/src/harness-analyzer.cjs +264 -0
- package/src/harness-templates.js +153 -0
- package/src/harness.js +613 -0
- package/src/history.js +383 -0
- package/src/hook-manager.js +96 -0
- package/src/hook.cjs +196 -0
- package/src/installer.js +614 -0
- package/src/korean-lint.cjs +303 -0
- package/src/korean-style.js +187 -0
- package/src/litellm-budget.js +223 -0
- package/src/model-alias.js +484 -0
- package/src/model-rules.js +527 -0
- package/src/month-spend.js +47 -0
- package/src/parser.js +330 -0
- package/src/paths.js +41 -0
- package/src/prompt.js +52 -0
- package/src/route-scan.js +832 -0
- package/src/savings-ledger.js +137 -0
- package/src/seed-rules.js +280 -0
- package/src/session-cache.js +160 -0
- package/src/session-records.js +188 -0
- package/src/stats.js +380 -0
- package/src/stdin-payload.js +122 -0
- package/src/subagent-records.js +214 -0
- package/src/update-check.js +201 -0
- package/src/window-labels.js +64 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
claude-token-saver's own supplement to the vendored fluent-korean guidance.
|
|
3
|
+
Compiled 2026-09-13 from:
|
|
4
|
+
- 국립국어원 「한눈에 알아보는 공공언어 바로 쓰기」 및 한글문화연대의 번역투 교정 사례 (urimal.org/4544)
|
|
5
|
+
- 쿠버네티스 문서 한글화 가이드 (kubernetes.io/ko/docs/contribute/localization_ko/)
|
|
6
|
+
- 「한국어 AI 글쓰기에서 피해야 할 상투적 패턴」 (gist: woonjangahn)
|
|
7
|
+
- 문장 연결 원칙: 생글생글 논술 첨삭노트 133 (sgsg.hankyung.com/article/2013012517791),
|
|
8
|
+
구정보-신정보 배열과 주제 연쇄는 국어 글쓰기 교육의 통설
|
|
9
|
+
- 응집성 실증 근거: 「한국어 교육과 결속성(cohesion) 및 응집성(coherence)의 문제」
|
|
10
|
+
(KCI ART002501143: 결속 장치와 텍스트 질은 상관이 없거나 부적),
|
|
11
|
+
「한국어 학습자의 쓰기 텍스트에 나타난 응결성과 응집성의 상관분석」
|
|
12
|
+
(KCI ART002240473, 우리말글: 대용 남발은 부적 상관, 상술형 접속만 정적 상관),
|
|
13
|
+
「한국어 학습자 텍스트의 내용적 오류 양상: 응집성 중심」
|
|
14
|
+
(DBpia NODE11604445, 2023: 주제부-설명부 분석, 오류를 관련성·일관성으로 분류)
|
|
15
|
+
- 나무위키 「번역체 문장」의 과교정 경고
|
|
16
|
+
|
|
17
|
+
Only patterns that survive a conservative bar are included: each clause names
|
|
18
|
+
a form that is nearly always an improvement to change, and the final section
|
|
19
|
+
lists forms that must NOT be "corrected". This file is appended to the
|
|
20
|
+
session-start injection after fluent-korean.md; see src/korean-style.js.
|
|
21
|
+
-->
|
|
22
|
+
|
|
23
|
+
## 보강 지침 (claude-token-saver 자체 수집분)
|
|
24
|
+
|
|
25
|
+
앞의 fluent-korean 본문에 더해, 아래 지침도 같은 범위와 같은 우선순위로 적용합니다. 각 조항은 국립국어원의 공공언어 지침과 공개된 기술 문서 한글화 지침에서 보수적으로 골라 낸 것이므로, 판단이 갈리는 표현은 여기에 싣지 않았습니다.
|
|
26
|
+
|
|
27
|
+
### 번역투 추가 조항
|
|
28
|
+
|
|
29
|
+
1. 이중 피동을 쓰지 않습니다. 피동 표현이 필요하면 단일 피동으로 충분합니다.
|
|
30
|
+
- ✗ 보여집니다, 쓰여진, 잊혀진, 되어지고 → ○ 보입니다, 쓰인, 잊힌, 되고
|
|
31
|
+
|
|
32
|
+
2. 일본어에서 온 굳은 번역투는 항상 바꿉니다.
|
|
33
|
+
- ✗ 성공에 다름 아니다 → ○ 성공일 뿐이다, 바로 성공이다
|
|
34
|
+
- ✗ 노력하지 않으면 안 됩니다 → ○ 노력해야 합니다
|
|
35
|
+
|
|
36
|
+
3. 조사만으로 충분한 곳에 관용구를 끼우지 않습니다.
|
|
37
|
+
- ✗ 모든 분야에 있어서 기준이 필요하다 → ○ 모든 분야에서 기준이 필요하다
|
|
38
|
+
- ✗ 국민투표에 의하여 결정한다 → ○ 국민투표로 결정한다
|
|
39
|
+
- ✗ 미국 여행을 가기 위해 영어를 공부했다 → ○ 미국 여행을 가려고 영어를 공부했다
|
|
40
|
+
|
|
41
|
+
4. 속성 서술에 '가지다'를 쓰지 않습니다. 영어 have의 직역이라 서술이 늘어집니다.
|
|
42
|
+
- ✗ 하나라는 의미를 가지고 있다 → ○ 하나라는 의미다
|
|
43
|
+
- ✗ 세 가지 장점을 가진다 → ○ 장점이 세 가지 있다
|
|
44
|
+
|
|
45
|
+
5. 행위자가 분명한 문장은 능동으로 씁니다. 피동은 행위자를 밝힐 수 없거나 밝힐 필요가 없을 때만 씁니다.
|
|
46
|
+
- ✗ 아이들은 보육원에 의해 보호되었다 → ○ 보육원이 아이들을 보호했다
|
|
47
|
+
|
|
48
|
+
### 상투 패턴 억제 조항
|
|
49
|
+
|
|
50
|
+
LLM 산출물에서 반복적으로 관찰되는 습관입니다. 금지가 아니라 절제 대상이므로, 한 문서 안에서 되풀이될 때 고칩니다.
|
|
51
|
+
|
|
52
|
+
1. 수식어를 자동으로 붙이지 않습니다. '다양한', '핵심적인', '효과적으로', '성공적으로' 같은 수식어는 구체 정보가 없으면 빼고, 있으면 그 정보로 대체합니다.
|
|
53
|
+
- ✗ 다양한 분야에서 활용됩니다 → ○ 금융과 의료 분야에서 활용됩니다
|
|
54
|
+
|
|
55
|
+
2. 표지판 문장을 줄입니다. '지금부터 살펴보겠습니다' 같은 도입, '결론적으로' 같은 마무리 표지는 본문이 짧으면 빼고 바로 내용을 적습니다.
|
|
56
|
+
|
|
57
|
+
3. 수사적 질문을 던지고 곧바로 답하는 구성을 쓰지 않습니다.
|
|
58
|
+
- ✗ 해답은 무엇일까요? 바로 캐시입니다. → ○ 해답은 캐시입니다.
|
|
59
|
+
|
|
60
|
+
4. '~뿐만 아니라 ~도' 구문은 한 문단에 한 번까지만 씁니다.
|
|
61
|
+
|
|
62
|
+
5. 영어(한글) 병기는 용어가 처음 나올 때 한 번만 하고, 그 뒤로는 정착된 한쪽 표기만 씁니다. 이는 쿠버네티스 한글화 가이드의 병기 원칙과 같습니다.
|
|
63
|
+
|
|
64
|
+
6. 근거 없이 긍정적으로 끝맺지 않습니다. '앞으로의 발전이 기대됩니다' 같은 마무리는 내용이 뒷받침할 때만 씁니다.
|
|
65
|
+
|
|
66
|
+
### 문장 연결 조항 (응집성)
|
|
67
|
+
|
|
68
|
+
문장 하나하나가 옳아도 이어짐이 어색하면 읽기 어렵습니다. 아래 원칙은 문장을 잇는 방법이므로, 문서와 내레이션처럼 이어 읽는 글에 우선 적용합니다. 연구 결과가 방향을 정해 줍니다. 접속어와 지시어 같은 표층 연결 장치는 글의 품질과 상관이 없거나 오히려 부적 상관이고, 앞 내용을 자세히 풀어 주는 상술형 연결만이 품질과 정적 상관을 보였습니다. 그러므로 연결이 어색할 때 접속어를 더하는 대신, 정보의 배열을 고치는 쪽으로 손질합니다.
|
|
69
|
+
|
|
70
|
+
1. 아는 것에서 새 것으로 나아갑니다. 문장 앞부분에는 독자가 이미 아는 정보를 놓고, 새 정보는 뒷부분에 놓습니다. 다음 문장은 앞 문장이 끝에 내놓은 새 정보를 머리에서 받아 이어 갑니다.
|
|
71
|
+
- ✗ 캐시 적중률이 떨어졌다. 요청 사이의 간격이 TTL을 넘긴 것이 원인이다. 5분이 기본 TTL이다.
|
|
72
|
+
- ○ 캐시 적중률이 떨어졌다. 원인은 요청 사이의 간격이 TTL을 넘긴 것이다. 이 TTL의 기본값은 5분이다.
|
|
73
|
+
|
|
74
|
+
2. 지시어에는 가리키는 대상이 하나만 있어야 합니다. '이', '그', '이러한'이 바로 앞 문장의 무엇을 받는지 즉시 답할 수 없으면, 지시어 대신 그 명사를 다시 적습니다. 대용 표현을 자주 쓸수록 의미 연결이 약해진다는 상관 분석 결과가 있으므로, 지시어는 아껴 씁니다.
|
|
75
|
+
|
|
76
|
+
3. 한 문단 안에서는 주어나 관점을 유지합니다. 문장마다 주어가 바뀌면 독자가 매번 시점을 다시 잡아야 하므로, 바꿀 이유가 없으면 같은 주어로 잇거나 자연스럽게 생략합니다.
|
|
77
|
+
|
|
78
|
+
4. 접속어는 논리 관계가 실제로 있을 때만 씁니다. '또한'과 '그리고'가 반복되면 문장들이 연결된 것이 아니라 나열만 된 상태라는 신호이므로, 접속어를 더할 것이 아니라 문장 순서와 정보 배열부터 다시 잡습니다. 인과가 있으면 '그래서'나 '~하므로'처럼 관계를 이름 붙여 잇습니다.
|
|
79
|
+
|
|
80
|
+
5. 문장 사이의 비약을 없앱니다. 뒤 문장이 전제하는 조건이나 이유는 앞 문장이 미리 준비해 두어야 하며, 준비 없이 결론이 나오면 그 사이에 다리가 되는 문장을 하나 넣습니다.
|
|
81
|
+
|
|
82
|
+
6. 짧은 문장 여러 개가 같은 대상을 반복하면, 덜 중요한 문장을 수식어구로 바꾸어 핵심 문장에 붙입니다.
|
|
83
|
+
- ✗ 토끼와 거북이가 경주를 했다. 토끼는 잠을 잤다. 거북이가 이겼다.
|
|
84
|
+
- ○ 잠을 잔 토끼와 달리, 거북이는 꾸준히 걸어 경주에서 이겼다.
|
|
85
|
+
|
|
86
|
+
### 과교정 금지 조항
|
|
87
|
+
|
|
88
|
+
교정 자체가 오류가 되는 경우입니다. 나무위키 번역체 문서와 국립국어원 논의가 공통으로 경고하는 지점이므로, 아래 표현에는 위 조항들을 적용하지 않습니다.
|
|
89
|
+
|
|
90
|
+
1. 전문 용어와 정착된 관용 표기는 원형을 유지합니다. 분야에서 굳은 표기를 일반 어휘로 바꾸면 오히려 뜻이 흐려집니다.
|
|
91
|
+
2. 문어체는 오류가 아닙니다. 구어로만 고쳐 쓰라는 요구는 이 지침에 없습니다.
|
|
92
|
+
3. 원문을 그대로 옮기는 인용은 손보지 않습니다.
|
|
93
|
+
4. 검사 도구의 지적은 확인 요청이지 판정이 아닙니다. 굳은 표현이라 판단해 유지할 때는 그 이유를 한 줄로 남깁니다.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"note": [
|
|
3
|
+
"Curated tier-delegation presets bundled with the package — the model-fitting",
|
|
4
|
+
"counterpart to presets/ratchet-rules.md. These were promoted from the author's",
|
|
5
|
+
"own route-scan candidates over months of real sessions, then stripped of the",
|
|
6
|
+
"originating examples, project paths and recurrence counts: what carries over is",
|
|
7
|
+
"the shape of the work (category, tier, agent, cap), not the author's transcripts.",
|
|
8
|
+
"Each entry is offered one at a time at session start; nothing is registered",
|
|
9
|
+
"without the user saying yes. Caps are the defaults a scan would calibrate to;",
|
|
10
|
+
"later scans refresh the stats on whatever the user accepts.",
|
|
11
|
+
"Rule sentences are composed at accept time from modelRuleBaseText() so that a",
|
|
12
|
+
"reworded template never leaves this file stale."
|
|
13
|
+
],
|
|
14
|
+
"presets": [
|
|
15
|
+
{
|
|
16
|
+
"id": "run-t2",
|
|
17
|
+
"tier": "T2",
|
|
18
|
+
"category": "run",
|
|
19
|
+
"label": "명령 실행 (빌드·테스트·git)",
|
|
20
|
+
"labelEn": "running commands (build/test/git)",
|
|
21
|
+
"agent": "haiku-runner",
|
|
22
|
+
"example": "npm test 돌려봐",
|
|
23
|
+
"exampleEn": "run npm test",
|
|
24
|
+
"budget": { "calls": 8, "out": 1500 }
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "run-t1",
|
|
28
|
+
"tier": "T1",
|
|
29
|
+
"category": "run",
|
|
30
|
+
"label": "명령 실행 (빌드·테스트·git)",
|
|
31
|
+
"labelEn": "running commands (build/test/git)",
|
|
32
|
+
"agent": "sonnet",
|
|
33
|
+
"example": "빌드하고 실패한 테스트만 보여줘",
|
|
34
|
+
"exampleEn": "build it and show only the failing tests",
|
|
35
|
+
"budget": { "calls": null, "out": 6000 }
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "explore-t2",
|
|
39
|
+
"tier": "T2",
|
|
40
|
+
"category": "explore",
|
|
41
|
+
"label": "탐색·조회 (파일/값 찾기)",
|
|
42
|
+
"labelEn": "lookup (finding files/values)",
|
|
43
|
+
"agent": "haiku-explore",
|
|
44
|
+
"example": "이 설정값 어느 파일에 있어?",
|
|
45
|
+
"exampleEn": "which file holds this config value?",
|
|
46
|
+
"budget": { "calls": 8, "out": 1500 }
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "explore-t1",
|
|
50
|
+
"tier": "T1",
|
|
51
|
+
"category": "explore",
|
|
52
|
+
"label": "탐색·조회 (파일/값 찾기)",
|
|
53
|
+
"labelEn": "lookup (finding files/values)",
|
|
54
|
+
"agent": "sonnet",
|
|
55
|
+
"example": "이 함수를 호출하는 곳 전부 찾아줘",
|
|
56
|
+
"exampleEn": "find every caller of this function",
|
|
57
|
+
"budget": { "calls": null, "out": 6000 }
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "check-t2",
|
|
61
|
+
"tier": "T2",
|
|
62
|
+
"category": "check",
|
|
63
|
+
"label": "상태 확인·검증",
|
|
64
|
+
"labelEn": "status checks / verification",
|
|
65
|
+
"agent": "haiku-explore",
|
|
66
|
+
"example": "지금 배포된 버전이 뭔지 확인해줘",
|
|
67
|
+
"exampleEn": "check which version is deployed right now",
|
|
68
|
+
"budget": { "calls": 8, "out": 1500 }
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "check-t1",
|
|
72
|
+
"tier": "T1",
|
|
73
|
+
"category": "check",
|
|
74
|
+
"label": "상태 확인·검증",
|
|
75
|
+
"labelEn": "status checks / verification",
|
|
76
|
+
"agent": "sonnet",
|
|
77
|
+
"example": "마이그레이션이 실제로 적용됐는지 확인해줘",
|
|
78
|
+
"exampleEn": "verify the migration actually applied",
|
|
79
|
+
"budget": { "calls": null, "out": 6000 }
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "paste-t2",
|
|
83
|
+
"tier": "T2",
|
|
84
|
+
"category": "paste",
|
|
85
|
+
"label": "붙여넣은 화면·로그 질문",
|
|
86
|
+
"labelEn": "questions about pasted screens/logs",
|
|
87
|
+
"agent": "haiku-explore",
|
|
88
|
+
"example": "이 에러 로그는 무슨 뜻이야?",
|
|
89
|
+
"exampleEn": "what does this error log mean?",
|
|
90
|
+
"budget": { "calls": 8, "out": 1500 }
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "paste-t1",
|
|
94
|
+
"tier": "T1",
|
|
95
|
+
"category": "paste",
|
|
96
|
+
"label": "붙여넣은 화면·로그 질문",
|
|
97
|
+
"labelEn": "questions about pasted screens/logs",
|
|
98
|
+
"agent": "sonnet",
|
|
99
|
+
"example": "이 스택트레이스에서 어느 모듈이 죽은 건지 짚어줘",
|
|
100
|
+
"exampleEn": "point out which module failed in this stack trace",
|
|
101
|
+
"budget": { "calls": null, "out": 8000 }
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": "read-t2",
|
|
105
|
+
"tier": "T2",
|
|
106
|
+
"category": "read",
|
|
107
|
+
"label": "읽기·요약·설명",
|
|
108
|
+
"labelEn": "reading / summarizing / explaining",
|
|
109
|
+
"agent": "haiku-explore",
|
|
110
|
+
"example": "이 README 요약해줘",
|
|
111
|
+
"exampleEn": "summarize this README",
|
|
112
|
+
"budget": { "calls": 8, "out": 1900 }
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"note": [
|
|
3
|
+
"Curated ratchet rules bundled with the package — promoted from mistakes that",
|
|
4
|
+
"actually recurred in the author's sessions, not from theory. `harness pull`",
|
|
5
|
+
"registers the whole set at once; `seed` offers them one at a time and records",
|
|
6
|
+
"each answer. Both read this file, so there is one source for the wording.",
|
|
7
|
+
"Each rule carries both languages because the text is injected into the model's",
|
|
8
|
+
"context, where a Korean-only rule would steer an English session into Korean.",
|
|
9
|
+
"Ids are derived from the `ko` text (the canonical one), so a rule keeps its",
|
|
10
|
+
"identity — and a user's 'no' — when the English wording is revised."
|
|
11
|
+
],
|
|
12
|
+
"rules": [
|
|
13
|
+
{
|
|
14
|
+
"ko": "웹 fetch/search에서 robots·UA 차단('unable to fetch' 등)이 발생하면 → curl에 브라우저 UA(Mozilla/5.0 ... Chrome/...) 헤더를 붙여 재시도. reddit 등은 .json 엔드포인트 + UA 조합으로 접근 가능",
|
|
15
|
+
"en": "When a web fetch/search is blocked by robots or user-agent checks ('unable to fetch' and similar) → retry with curl carrying a browser UA header (Mozilla/5.0 ... Chrome/...). Sites like reddit also answer on their .json endpoints with that UA"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"ko": "ratchet 룰 promote 호출 직전 사용자에게 scope(project/global)를 먼저 묻는다 — Bash 환경은 non-TTY라 CLI readline 프롬프트가 안 뜨므로, 호출자(LLM)가 대신 묻고 --project/--global 플래그를 명시해 실행",
|
|
19
|
+
"en": "Ask the user for the scope (project or global) before calling ratchet promote — the Bash environment is non-TTY, so the CLI's readline prompt never appears; the caller (the model) has to ask and pass --project/--global explicitly"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"ko": "자동화 도구가 grep·정규식으로 찾는 마커 텍스트(헤더·앵커·키워드 라인)는 리팩터링·압축·수정 금지 — 정확 매칭 검출은 한 글자만 바뀌어도 깨짐",
|
|
23
|
+
"en": "Never refactor, compress or reword marker text that an automated tool finds by grep or regex (headings, anchors, keyword lines) — exact-match detection breaks on a single changed character"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"ko": "자동화 설계에서 vision/screenshot 루프가 보이면 → 호출 가능한 함수·API·MCP tool부터 찾는다. 통제 가능한 내부 도구는 무조건 API, 통제 불가 외부 SaaS만 vision 차선책. 인터페이스를 바꾼 뒤에 모델을 내린다 — 거꾸로 가면 토큰 폭발",
|
|
27
|
+
"en": "When an automation design calls for a vision/screenshot loop → look for a callable function, API or MCP tool first. Anything you control gets an API; vision is the fallback only for external SaaS you cannot change. Fix the interface before lowering the model — doing it the other way round explodes the token cost"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"ko": "입력 데이터(ground-truth) 변경 시 그에 의존하는 모든 파생 자산을 끝까지 재생성한다 — 중간 단계를 생략하면 stale 산출물이 새 입력 위에 얹혀 결과가 깨짐",
|
|
31
|
+
"en": "When the ground-truth input changes, regenerate every derived asset all the way through — skipping an intermediate step leaves a stale artifact sitting on top of the new input and the result breaks"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"ko": "탐색·조회·상태 확인·명령 실행 같은 단순 요청은 `model: haiku` 서브에이전트로 위임해 상위 모델 토큰을 아낀다 (읽기 전용 preset 에이전트가 이미 있으면 그걸 쓰고, 없으면 티어만 내려서 위임)",
|
|
35
|
+
"en": "Delegate simple requests — lookup, status checks, running commands — to a `model: haiku` subagent to keep the expensive model's tokens for real work (use an existing read-only preset agent when there is one; otherwise delegate with the tier lowered)"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|