open-multi-agent-kit 0.98.5 → 0.99.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.
Files changed (163) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +3 -2
  3. package/dist/cli/help.d.ts.map +1 -1
  4. package/dist/cli/help.js +1 -0
  5. package/dist/cli/help.js.map +1 -1
  6. package/dist/commands/verified-run-cli.d.ts.map +1 -1
  7. package/dist/commands/verified-run-cli.js +2 -2
  8. package/dist/commands/verified-run-cli.js.map +1 -1
  9. package/dist/core/agent-session.d.ts.map +1 -1
  10. package/dist/core/agent-session.js +19 -2
  11. package/dist/core/agent-session.js.map +1 -1
  12. package/dist/core/devin-harness-dispatch.d.ts +12 -0
  13. package/dist/core/devin-harness-dispatch.d.ts.map +1 -0
  14. package/dist/core/devin-harness-dispatch.js +12 -0
  15. package/dist/core/devin-harness-dispatch.js.map +1 -0
  16. package/dist/core/devin-harness.d.ts +53 -0
  17. package/dist/core/devin-harness.d.ts.map +1 -0
  18. package/dist/core/devin-harness.js +112 -0
  19. package/dist/core/devin-harness.js.map +1 -0
  20. package/dist/core/domain-dispatch.d.ts +4 -1
  21. package/dist/core/domain-dispatch.d.ts.map +1 -1
  22. package/dist/core/domain-dispatch.js +5 -0
  23. package/dist/core/domain-dispatch.js.map +1 -1
  24. package/dist/core/domain-loadouts-provider-harness.d.ts +12 -0
  25. package/dist/core/domain-loadouts-provider-harness.d.ts.map +1 -0
  26. package/dist/core/domain-loadouts-provider-harness.js +122 -0
  27. package/dist/core/domain-loadouts-provider-harness.js.map +1 -0
  28. package/dist/core/domain-loadouts.d.ts +2 -33
  29. package/dist/core/domain-loadouts.d.ts.map +1 -1
  30. package/dist/core/domain-loadouts.js +3 -56
  31. package/dist/core/domain-loadouts.js.map +1 -1
  32. package/dist/core/domain-profile.d.ts +40 -0
  33. package/dist/core/domain-profile.d.ts.map +1 -0
  34. package/dist/core/domain-profile.js +7 -0
  35. package/dist/core/domain-profile.js.map +1 -0
  36. package/dist/core/grok-harness-dispatch.d.ts +6 -20
  37. package/dist/core/grok-harness-dispatch.d.ts.map +1 -1
  38. package/dist/core/grok-harness-dispatch.js +6 -55
  39. package/dist/core/grok-harness-dispatch.js.map +1 -1
  40. package/dist/core/grok-harness.d.ts +7 -9
  41. package/dist/core/grok-harness.d.ts.map +1 -1
  42. package/dist/core/grok-harness.js +9 -23
  43. package/dist/core/grok-harness.js.map +1 -1
  44. package/dist/core/harness-skills.d.ts +20 -0
  45. package/dist/core/harness-skills.d.ts.map +1 -0
  46. package/dist/core/harness-skills.js +36 -0
  47. package/dist/core/harness-skills.js.map +1 -0
  48. package/dist/core/loadout-runtime-state.d.ts +25 -0
  49. package/dist/core/loadout-runtime-state.d.ts.map +1 -0
  50. package/dist/core/loadout-runtime-state.js +39 -0
  51. package/dist/core/loadout-runtime-state.js.map +1 -0
  52. package/dist/core/loadout-runtime.d.ts +2 -12
  53. package/dist/core/loadout-runtime.d.ts.map +1 -1
  54. package/dist/core/loadout-runtime.js +6 -13
  55. package/dist/core/loadout-runtime.js.map +1 -1
  56. package/dist/core/model-resolver.d.ts +1 -41
  57. package/dist/core/model-resolver.d.ts.map +1 -1
  58. package/dist/core/model-resolver.js +2 -49
  59. package/dist/core/model-resolver.js.map +1 -1
  60. package/dist/core/provider-default-models.d.ts +42 -0
  61. package/dist/core/provider-default-models.d.ts.map +1 -0
  62. package/dist/core/provider-default-models.js +50 -0
  63. package/dist/core/provider-default-models.js.map +1 -0
  64. package/dist/core/provider-display-names.d.ts.map +1 -1
  65. package/dist/core/provider-display-names.js +1 -0
  66. package/dist/core/provider-display-names.js.map +1 -1
  67. package/dist/core/provider-harness-dispatch.d.ts +63 -0
  68. package/dist/core/provider-harness-dispatch.d.ts.map +1 -0
  69. package/dist/core/provider-harness-dispatch.js +60 -0
  70. package/dist/core/provider-harness-dispatch.js.map +1 -0
  71. package/dist/core/provider-usage-devin.d.ts +16 -0
  72. package/dist/core/provider-usage-devin.d.ts.map +1 -0
  73. package/dist/core/provider-usage-devin.js +61 -0
  74. package/dist/core/provider-usage-devin.js.map +1 -0
  75. package/dist/core/provider-usage-text.d.ts +5 -0
  76. package/dist/core/provider-usage-text.d.ts.map +1 -0
  77. package/dist/core/provider-usage-text.js +15 -0
  78. package/dist/core/provider-usage-text.js.map +1 -0
  79. package/dist/core/provider-usage-types.d.ts +2 -1
  80. package/dist/core/provider-usage-types.d.ts.map +1 -1
  81. package/dist/core/provider-usage-types.js.map +1 -1
  82. package/dist/core/provider-usage.d.ts +1 -2
  83. package/dist/core/provider-usage.d.ts.map +1 -1
  84. package/dist/core/provider-usage.js +12 -7
  85. package/dist/core/provider-usage.js.map +1 -1
  86. package/dist/core/run-execution-api.d.ts +1 -1
  87. package/dist/core/run-execution-api.d.ts.map +1 -1
  88. package/dist/core/run-execution-api.js.map +1 -1
  89. package/dist/core/sdk.d.ts.map +1 -1
  90. package/dist/core/sdk.js +23 -18
  91. package/dist/core/sdk.js.map +1 -1
  92. package/dist/core/verified-run/dag-phase.d.ts +1 -1
  93. package/dist/core/verified-run/dag-phase.d.ts.map +1 -1
  94. package/dist/core/verified-run/dag-phase.js +46 -8
  95. package/dist/core/verified-run/dag-phase.js.map +1 -1
  96. package/dist/core/verified-run/dag-projection.d.ts.map +1 -1
  97. package/dist/core/verified-run/dag-projection.js +25 -12
  98. package/dist/core/verified-run/dag-projection.js.map +1 -1
  99. package/dist/core/verified-run/dag-types.d.ts +11 -0
  100. package/dist/core/verified-run/dag-types.d.ts.map +1 -1
  101. package/dist/core/verified-run/dag-types.js.map +1 -1
  102. package/dist/core/verified-run/event-parser.d.ts.map +1 -1
  103. package/dist/core/verified-run/event-parser.js +1 -0
  104. package/dist/core/verified-run/event-parser.js.map +1 -1
  105. package/dist/core/verified-run/owned-execution.d.ts +1 -0
  106. package/dist/core/verified-run/owned-execution.d.ts.map +1 -1
  107. package/dist/core/verified-run/owned-execution.js +7 -1
  108. package/dist/core/verified-run/owned-execution.js.map +1 -1
  109. package/dist/core/verified-run/process-projection.d.ts +13 -0
  110. package/dist/core/verified-run/process-projection.d.ts.map +1 -0
  111. package/dist/core/verified-run/process-projection.js +82 -0
  112. package/dist/core/verified-run/process-projection.js.map +1 -0
  113. package/dist/core/verified-run/projection.d.ts.map +1 -1
  114. package/dist/core/verified-run/projection.js +11 -55
  115. package/dist/core/verified-run/projection.js.map +1 -1
  116. package/dist/core/verified-run/run-types.d.ts +1 -0
  117. package/dist/core/verified-run/run-types.d.ts.map +1 -1
  118. package/dist/core/verified-run/run-types.js.map +1 -1
  119. package/dist/core/verified-run/task-execution.d.ts +9 -0
  120. package/dist/core/verified-run/task-execution.d.ts.map +1 -0
  121. package/dist/core/verified-run/task-execution.js +29 -0
  122. package/dist/core/verified-run/task-execution.js.map +1 -0
  123. package/dist/core/verified-run/writer-projection.d.ts.map +1 -1
  124. package/dist/core/verified-run/writer-projection.js +6 -5
  125. package/dist/core/verified-run/writer-projection.js.map +1 -1
  126. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  127. package/dist/modes/interactive/interactive-mode.js +2 -5
  128. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  129. package/dist/modes/interactive/resource-description.d.ts +3 -0
  130. package/dist/modes/interactive/resource-description.d.ts.map +1 -0
  131. package/dist/modes/interactive/resource-description.js +15 -0
  132. package/dist/modes/interactive/resource-description.js.map +1 -0
  133. package/docs/devin-harness.md +121 -0
  134. package/docs/docs.json +4 -0
  135. package/docs/environment-variables.md +2 -1
  136. package/docs/index.md +1 -0
  137. package/docs/loadout-domains/README.md +2 -1
  138. package/docs/loadout-domains/devin-harness.md +72 -0
  139. package/docs/metrics.md +57 -16
  140. package/docs/providers.md +76 -0
  141. package/docs/release-audit-0.98.5.md +17 -0
  142. package/docs/release-audit-0.99.0.md +68 -0
  143. package/docs/run-protocol.md +4 -3
  144. package/docs/runtime-algorithms.md +4 -1
  145. package/docs/sdk.md +9 -5
  146. package/docs/settings.md +1 -1
  147. package/docs/startup-resource-labels-testing.md +47 -0
  148. package/docs/tb21-audit.md +18 -4
  149. package/docs/usage.md +5 -0
  150. package/docs/verified-run-remaining-design.md +881 -0
  151. package/docs/verified-run-testing.md +91 -0
  152. package/docs/verified-run.md +30 -9
  153. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  154. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  155. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  156. package/examples/extensions/gondolin/package-lock.json +2 -2
  157. package/examples/extensions/gondolin/package.json +1 -1
  158. package/examples/extensions/sandbox/package-lock.json +2 -2
  159. package/examples/extensions/sandbox/package.json +1 -1
  160. package/examples/extensions/with-deps/package-lock.json +2 -2
  161. package/examples/extensions/with-deps/package.json +1 -1
  162. package/npm-shrinkwrap.json +18 -18
  163. package/package.json +6 -6
package/docs/sdk.md CHANGED
@@ -161,7 +161,8 @@ for the JSON shape, events, hook restrictions, and uncovered paths.
161
161
  `planVerifiedRun()` and `createRunCoordinator()` provide three experimental profiles:
162
162
  `linux-command-v1` executes an approved command, `linux-scripted-agent-v1` drives
163
163
  approved steps through the real `AgentSession` and the offline Faux adapter, and
164
- `linux-command-dag-v1` executes a bounded command DAG serially.
164
+ `linux-command-dag-v1` executes a bounded command DAG, serially by default or with
165
+ an explicitly approved `writer.maxConcurrentTasks: 2`.
165
166
  Commands run in private sandboxes; native EvidenceReceipt v3 cores and a supervisor
166
167
  attestation bind the checked candidate before artifact retrieval.
167
168
 
@@ -183,13 +184,16 @@ interrupted tasks. `RunTaskRetryCommand` pins `baseDigest` and `taskIds` alongsi
183
184
  contract/revision/generation fields; an empty selection only continues pending work.
184
185
  Successful checkpoints are revalidated against their complete ancestor inputs before
185
186
  adoption. Final integration verification always uses fresh native receipts. The
186
- profile supports at most 16 tasks and two preapproved commands per task; it does not
187
+ profile supports at most 16 tasks, two preapproved commands per task and an optional
188
+ concurrency cap of 1 or 2. Omitted concurrency preserves legacy contract bytes.
189
+ The eager frontier starts a ready consumer without waiting for unrelated work;
190
+ fatal failure or cancellation drains all started tasks before returning. It does not
187
191
  synthesize a repair or accept overlapping task write scopes. `RunProjection.tasks`
188
192
  exposes task attempts and checkpoint digests; a blocked DAG returns `execution: "paused"`.
189
193
  All recovery actions share the generation cap, original budget and command-id fence.
190
194
 
191
- This does not enable live-model task generation, opaque remote replay, parallel
192
- frontier scheduling, plan amendment, or host application. See [Verified Run](verified-run.md) for contracts and trust boundaries.
195
+ This does not enable live-model task generation, opaque remote replay,
196
+ verification-conditioned edges, plan amendment, or host application. See [Verified Run](verified-run.md) for contracts and trust boundaries.
193
197
 
194
198
  ### Shared run budgets (SDK, opt-in)
195
199
 
@@ -463,7 +467,7 @@ interface PromptOptions {
463
467
  }
464
468
  ```
465
469
 
466
- `activeSkillNames` marks additional discovered skills active for this turn; `activeSkillSource` labels their provenance. They merge with global `defaultActiveSkills`, prioritize matching inventory entries, and do not expand authorization or inline full skill instructions. When the active provider is native `xai` and `OMK_GROK_HARNESS` is enabled, each non-queued `AgentSession.prompt()` request also derives up to three request-scoped matches from the live skill inventory after ordinary prompt-template expansion. Explicit-only skills are excluded from automatic selection, while explicit SDK/settings/bang selections remain authoritative additions. Queued steering and follow-up messages reuse the active run's system prompt and therefore do not perform another automatic skill-selection pass.
470
+ `activeSkillNames` marks additional discovered skills active for this turn; `activeSkillSource` labels their provenance. They merge with global `defaultActiveSkills`, prioritize matching inventory entries, and do not expand authorization or inline full skill instructions. When the active provider is native `xai` and `OMK_GROK_HARNESS` is enabled, or `devin` and `OMK_DEVIN_HARNESS` is enabled, each non-queued `AgentSession.prompt()` request also derives up to three request-scoped matches from the live skill inventory after ordinary prompt-template expansion. Explicit-only skills are excluded from automatic selection, while explicit SDK/settings/bang selections remain authoritative additions. Queued steering and follow-up messages reuse the active run's system prompt and therefore do not perform another automatic skill-selection pass.
467
471
 
468
472
  `preflightResult` is called once per `prompt()` invocation:
469
473
 
package/docs/settings.md CHANGED
@@ -272,7 +272,7 @@ Plays a short system sound only after the top-level prompt settles: retries, con
272
272
  | `retry.enabled` | boolean | `true` | Enable automatic agent-level retry on transient errors |
273
273
  | `retry.maxRetries` | number | `3` | Maximum agent-level retry attempts |
274
274
  | `retry.baseDelayMs` | number | `2000` | Base delay for agent-level exponential backoff (2s, 4s, 8s) |
275
- | `retry.provider.timeoutMs` | number | SDK default | Provider/SDK request timeout in milliseconds |
275
+ | `retry.provider.timeoutMs` | number | SDK default | Provider/SDK request timeout in milliseconds. Also bounds how long the `openai-codex` SSE transport waits for response headers (floor 10s); large contexts need more than the floor |
276
276
  | `retry.provider.maxRetries` | number | `0` | Provider/SDK retry attempts |
277
277
  | `retry.provider.maxRetryDelayMs` | number | `60000` | Max server-requested delay before failing (60s) |
278
278
 
@@ -0,0 +1,47 @@
1
+ # 시작 리소스 설명의 하네스 태그: 검증 기록
2
+
3
+ 기준: `cabbb38389`. 실제 launcher의 version/help와 credentials 없는 offline TUI를 확인했습니다.
4
+ 기본 시작 화면은 OMK였으며, 다른 실행기로 전환되는 현상은 재현되지 않았습니다.
5
+ 외부 스킬 설명의 `[OMX]`가 자동완성에 원문으로 나타나는 경로는 재현했습니다.
6
+
7
+ ## 현재 표시 규칙
8
+
9
+ `resource-description.ts`는 설명 앞의 `[OMX]` / `[OMO]` 장식 표기를 제거합니다.
10
+ 설명이 태그만으로 구성되면 `OMK resource`를 표시합니다. source scope와 호출 이름은
11
+ 그대로이며, formatter 자체가 원본 스킬이나 metadata를 수정하지는 않습니다.
12
+ 일반 문장 속 제품명이나 `[preview]` 같은 다른 태그를 무차별 치환하지 않습니다.
13
+
14
+ 초기 구현은 태그를 설명 뒤의 `resource tag`로 옮겼지만, 사용자의 후속 요구에 따라
15
+ 현재는 그 꼬리표도 출력하지 않습니다. 출처와 라이선스는 원본·별도 provenance에서 보존합니다.
16
+
17
+ ## RED → GREEN
18
+
19
+ 현재 요구의 8개 검사 중 4개가 RED였습니다. 예:
20
+
21
+ ```text
22
+ Expected: [t] Planning workflow
23
+ Received: [t] Planning workflow · resource tag: OMX
24
+ ```
25
+
26
+ 수정 후 다음 명령은 41개 테스트 통과, exit 0입니다.
27
+
28
+ ```bash
29
+ (cd packages/coding-agent && node ../../node_modules/vitest/dist/cli.js --run \
30
+ test/interactive-mode-resource-description.test.ts test/interactive-mode-startup-input.test.ts \
31
+ test/cli-resource-paths.test.ts test/resource-loader.test.ts)
32
+ ```
33
+
34
+ ## 실제 진입점과 제한
35
+
36
+ 원래 문제는 임시 home의 실제 TUI에서 같은 스킬을 추가하고 `/skill:deep`을 입력해
37
+ 재현했습니다. 사용자 프롬프트를 전송하거나 credential을 복사하지 않았습니다.
38
+ 표시 로직은 source CLI와 단위 검사로 확인하고, 설치된 실행기는 별도로 대조합니다.
39
+ 소스 변경만으로 이미 설치·실행 중인 bundle이 바뀐다고 주장하지 않습니다.
40
+
41
+ 개인 OMK 스킬 경로 이관·설정 백업·네이티브 스킬 검증은 별도의 운영 범위이며,
42
+ 그 개인 파일이나 설정을 이 저장소에 복제하지 않습니다. 외부 확장이 자신의 UI를
43
+ 직접 렌더링하는 모든 경로를 검사한 결과도 아닙니다.
44
+
45
+ 변경 경로: `src/modes/interactive/{interactive-mode,resource-description}.ts`,
46
+ `test/interactive-mode-resource-description.test.ts`, [사용 안내](usage.md), 이 기록.
47
+ 제안 메시지: `fix(tui): OMK 설명에서 외부 하네스 장식 표기 제거`.
@@ -3,6 +3,7 @@
3
3
  `scripts/tb21-audit.mjs`는 명시한 두 Harbor job의 **기록된 결과**를 검증한다.
4
4
  모델·Harbor를 실행하지 않으며 입력 파일이나 기존 요약을 수정하지 않는다.
5
5
  저장소 checkout과 Node.js 22.19 이상이 필요하다. 공개 npm CLI의 하위 명령은 아니다.
6
+ 현재 출력은 `omk-tb21-audit-report-2`, manifest 입력은 기존 `omk-tb21-manifest-1`이다.
6
7
 
7
8
  ## 사용
8
9
 
@@ -85,7 +86,7 @@ arm-b/
85
86
  job 바깥에 둔다. job 루트의 일반 파일(예: `config.json`, 전체 `result.json`)은
86
87
  개별 trial 집계에 사용하지 않는다. 최신 job 검색이나 시간창 기반 원장 귀속은 없다.
87
88
 
88
- 각 task는 각 arm에 정확히 한 번 있어야 한다. v1은 재시도·다회 반복 집계를 지원하지
89
+ 각 task는 각 arm에 정확히 한 번 있어야 한다. 이 감사기는 재시도·다회 반복 집계를 지원하지
89
90
  않으므로 추가 attempt를 거부한다. 마지막 결과로 덮어쓰거나 가장 좋은 시행을 고르지 않는다.
90
91
  `trial_name`은 디렉터리 이름과 일치해야 하며 `id`는 두 arm 전체에서 유일해야 한다.
91
92
  Harbor가 절대 task 경로를 기록한 경우 마지막 경로 조각을 manifest ID와 비교하고,
@@ -96,6 +97,17 @@ Harbor가 절대 task 경로를 기록한 경우 마지막 경로 조각을 mani
96
97
  성공 보상 1과 예외가 함께 있으면 모순으로 거부한다. `exception_info` 필드 자체가
97
98
  없으면 예외 여부를 추측하지 않는다. timeout도 분모에 남는다.
98
99
 
100
+ `started_at`과 `finished_at`은 필수다. 누락/null이면 `unfinished_trial`로 거부한다.
101
+ 두 값은 `YYYY-MM-DDTHH:mm:ss[.fraction]Z` 또는 명시적인 `±HH:mm` 오프셋을 가진
102
+ 시각이어야 한다. 소수초 1~9자리를 보존하며 밀리초로 잘라 순서를 비교하지 않는다.
103
+ `finished_at < started_at`, 존재하지 않는 날짜, `24:00:00`, 타임존 없는 값은
104
+ `invalid_trial_time`으로 거부한다. 시각 문자열 뒤의 개행도 허용하지 않는다.
105
+ 윤초 표기는 지원하지 않는다. 두 시각이 같으면 허용한다.
106
+
107
+ 종료시각이 없으면 보상 1이나 timeout 예외가 있어도 전체 요약을 거부한다. 그 trial을
108
+ 분모에서 빼거나 누락 시각에 현재 시간을 대입하지 않는다. v1에서 통과한 자료가 이
109
+ 추가 검증으로 거부될 수 있으므로 출력 버전을 2로 구분한다.
110
+
99
111
  `agent_result.cost_usd`는 0 이상의 유한한 숫자여야 한다. 누락·null은 **0이 아니라
100
112
  미확인**이며 요약을 거부한다. 합산 overflow도 거부한다. 해결 task가 0개이면
101
113
  `costPerSolved`는 null이다. 비용 단가·캐시 할인·실제 청구서 정합성은 별도 확인 대상이다.
@@ -110,8 +122,10 @@ manifest는 최대 256 KiB, 개별 결과는 최대 8 MiB까지 읽는다. 파
110
122
  manifest와 결과 파일의 해시가 포함된다. 원본 trial ID·task 절대 경로·kwargs·예외
111
123
  메시지는 내보내지 않는다. 출력의 run/task ID는 manifest에서 승인한 식별자를 사용한다.
112
124
 
113
- 항상 `modelVerification: "configuration-only"`, `costSource: "harbor-agent-result"`를
114
- 표시한다. 설정이 같다는 사실로 실제 모든 provider 전송이 같았다고 추론하지 않는다.
125
+ 항상 `modelVerification: "configuration-only"`, `costSource: "harbor-agent-result"`,
126
+ `completionVerification: "recorded-timestamps"`를 표시한다. 기록된 시각의 유효성·순서만
127
+ 검사하며 실제 프로세스 종료, 시계 정확도, 자식 프로세스 정리까지 증명하지 않는다.
128
+ 설정이 같다는 사실로 실제 모든 provider 전송이 같았다고 추론하지 않는다.
115
129
  Gateway 원장으로만 비용을 알 수 있는 과거 trial은 비용을 지어내지 않고 `missing_cost`로
116
130
  거부한다. 신뢰할 수 있는 request ID별 원장 결합은 로드맵 R3의 후속 작업이다.
117
131
 
@@ -123,7 +137,7 @@ Gateway 원장으로만 비용을 알 수 있는 과거 trial은 비용을 지
123
137
  저장소 루트에서 공급자·다운로드 없이 실행한다.
124
138
 
125
139
  ```bash
126
- node --test --test-concurrency=1 scripts/test/tb21-audit.test.mjs scripts/test/tb21-audit-inputs.test.mjs
140
+ node --test --test-concurrency=1 scripts/test/tb21-audit.test.mjs scripts/test/tb21-audit-inputs.test.mjs scripts/test/tb21-audit-completion.test.mjs
127
141
  node node_modules/typescript/bin/tsc --noEmit --allowJs --checkJs --strict --target ES2022 --module NodeNext --skipLibCheck --types node scripts/tb21-audit.mjs scripts/lib/tb21-input.mjs scripts/lib/tb21-audit.mjs
128
142
  ```
129
143
 
package/docs/usage.md CHANGED
@@ -34,6 +34,11 @@ See [Keybindings](keybindings.md) for all shortcuts and customization.
34
34
 
35
35
  Type `/` in the editor to open command completion. Extensions can register custom commands, skills are available as `/skill:name`, `!skill:name`, or `!name` for known skills, `!omk <role-or-request>` selects an OMK role hub such as frontend, backend, loop, or plan, and prompt templates expand via `/templatename`.
36
36
 
37
+ OMK omits decorative `[OMX]` and `[OMO]` prefixes from completion descriptions,
38
+ without adding another harness label. A marker-only description becomes `OMK resource`.
39
+ The formatter preserves original skill metadata, invocation names and source scope;
40
+ this display change enables no foreign tools or compatibility guarantees.
41
+
37
42
  | Command | Description |
38
43
  | --------- | ------------- |
39
44
  | `/login`, `/logout` | Manage OAuth or API-key credentials |