oh-my-opencode-slim 2.1.0 → 2.2.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 (61) hide show
  1. package/README.ja-JP.md +31 -30
  2. package/README.ko-KR.md +31 -30
  3. package/README.md +57 -33
  4. package/README.zh-CN.md +29 -28
  5. package/dist/agents/index.d.ts +0 -4
  6. package/dist/cli/index.js +90 -16
  7. package/dist/cli/providers.d.ts +7 -7
  8. package/dist/companion/manager.d.ts +3 -0
  9. package/dist/config/constants.d.ts +12 -1
  10. package/dist/config/council-schema.d.ts +37 -12
  11. package/dist/config/schema.d.ts +691 -6
  12. package/dist/config/strip-orchestrator-model.d.ts +9 -0
  13. package/dist/council/council-manager.d.ts +7 -3
  14. package/dist/hooks/command-hook-utils.d.ts +5 -0
  15. package/dist/hooks/foreground-fallback/index.d.ts +53 -7
  16. package/dist/hooks/image-hook.d.ts +1 -0
  17. package/dist/hooks/index.d.ts +2 -1
  18. package/dist/hooks/phase-reminder/index.d.ts +3 -1
  19. package/dist/hooks/post-file-tool-nudge/index.d.ts +15 -9
  20. package/dist/hooks/session-lifecycle.d.ts +11 -0
  21. package/dist/hooks/task-session-manager/index.d.ts +14 -2
  22. package/dist/index.js +2804 -801
  23. package/dist/interview/document.d.ts +2 -1
  24. package/dist/interview/service.d.ts +2 -0
  25. package/dist/interview/ui.d.ts +0 -1
  26. package/dist/multiplexer/cmux/close-policy.d.ts +20 -0
  27. package/dist/multiplexer/cmux/index.d.ts +102 -0
  28. package/dist/multiplexer/cmux/session-lifecycle.d.ts +92 -0
  29. package/dist/multiplexer/cmux/session-state.d.ts +45 -0
  30. package/dist/multiplexer/factory.d.ts +0 -9
  31. package/dist/multiplexer/herdr/index.d.ts +7 -3
  32. package/dist/multiplexer/index.d.ts +3 -1
  33. package/dist/multiplexer/session-manager.d.ts +14 -6
  34. package/dist/multiplexer/shared.d.ts +31 -0
  35. package/dist/multiplexer/tmux/index.d.ts +0 -1
  36. package/dist/multiplexer/types.d.ts +5 -2
  37. package/dist/multiplexer/zellij/index.d.ts +0 -1
  38. package/dist/tools/cancel-task.d.ts +2 -2
  39. package/dist/tools/smartfetch/utils.d.ts +3 -1
  40. package/dist/tui-state.d.ts +5 -5
  41. package/dist/tui.d.ts +1 -0
  42. package/dist/tui.js +130 -29
  43. package/dist/utils/background-job-board.d.ts +5 -1
  44. package/dist/utils/background-job-coordinator.d.ts +72 -0
  45. package/dist/utils/background-job-store.d.ts +46 -0
  46. package/dist/utils/councillor-models.d.ts +20 -0
  47. package/dist/utils/escape-html.d.ts +1 -0
  48. package/dist/utils/frontmatter.d.ts +6 -0
  49. package/dist/utils/index.d.ts +3 -1
  50. package/dist/utils/internal-initiator.d.ts +6 -1
  51. package/dist/utils/logger.d.ts +0 -2
  52. package/dist/utils/session.d.ts +1 -1
  53. package/oh-my-opencode-slim.schema.json +728 -1
  54. package/package.json +1 -1
  55. package/src/skills/clonedeps/SKILL.md +32 -29
  56. package/src/skills/codemap.md +7 -3
  57. package/src/skills/deepwork/SKILL.md +17 -6
  58. package/src/skills/oh-my-opencode-slim/SKILL.md +3 -3
  59. package/src/skills/release-smoke-test/SKILL.md +2 -2
  60. package/src/skills/verification-planning/SKILL.md +103 -0
  61. package/src/skills/worktrees/SKILL.md +14 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode-slim",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "Lightweight agent orchestration plugin for OpenCode - a slimmed-down fork of oh-my-opencode",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -100,7 +100,37 @@ The orchestrator owns final approval. Before cloning:
100
100
  5. Ask for confirmation before network cloning unless the user explicitly asked
101
101
  to clone immediately.
102
102
 
103
- ### Step 4: Clone Sources Manually
103
+ ### Step 4: Update Ignore Files
104
+
105
+ Before cloning artifacts or cleaning cloned dependencies, inspect existing
106
+ `.gitignore` and `.ignore`. Update the managed block in place when present;
107
+ otherwise append it. Add only the missing exact lines below, never duplicate
108
+ entries or modify unrelated rules. These blocks keep cloned artifacts git-local
109
+ while the `.ignore` allowlist keeps them readable to OpenCode.
110
+
111
+ `.gitignore`:
112
+
113
+ ```gitignore
114
+ # BEGIN oh-my-opencode-slim clonedeps
115
+ .slim/clonedeps/repos/
116
+ # END oh-my-opencode-slim clonedeps
117
+ ```
118
+
119
+ `.ignore`:
120
+
121
+ ```ignore
122
+ # BEGIN oh-my-opencode-slim clonedeps
123
+ !.slim/
124
+ !.slim/clonedeps.json
125
+ !.slim/clonedeps/
126
+ !.slim/clonedeps/repos/
127
+ !.slim/clonedeps/repos/**
128
+ .slim/clonedeps/repos/**/.git/
129
+ .slim/clonedeps/repos/**/.git/**
130
+ # END oh-my-opencode-slim clonedeps
131
+ ```
132
+
133
+ ### Step 5: Clone Sources Manually
104
134
 
105
135
  Create one folder per source repository under:
106
136
 
@@ -135,7 +165,7 @@ Safe manual git pattern:
135
165
 
136
166
  Do not run dependency install/build/test scripts from cloned repositories.
137
167
 
138
- ### Step 5: Write Local State
168
+ ### Step 6: Write Local State
139
169
 
140
170
  Write `.slim/clonedeps.json` so future agents know what exists:
141
171
 
@@ -173,33 +203,6 @@ Do not add `.slim/clonedeps.json` to `.gitignore`. It is small, reviewable
173
203
  project metadata that can be committed. Only the cloned repository contents
174
204
  under `.slim/clonedeps/repos/` should be ignored.
175
205
 
176
- ### Step 6: Update Ignore Files
177
-
178
- Update `.gitignore` with an idempotent marker block:
179
-
180
- ```gitignore
181
- # BEGIN oh-my-opencode-slim clonedeps
182
- .slim/clonedeps/repos/
183
- # END oh-my-opencode-slim clonedeps
184
- ```
185
-
186
- Update `.ignore` so OpenCode can read the cloned source while git still ignores
187
- it:
188
-
189
- ```ignore
190
- # BEGIN oh-my-opencode-slim clonedeps
191
- !.slim/
192
- !.slim/clonedeps.json
193
- !.slim/clonedeps/
194
- !.slim/clonedeps/repos/
195
- !.slim/clonedeps/repos/**
196
- .slim/clonedeps/repos/**/.git/
197
- .slim/clonedeps/repos/**/.git/**
198
- # END oh-my-opencode-slim clonedeps
199
- ```
200
-
201
- Only edit content inside these marker blocks.
202
-
203
206
  ### Step 7: Register Dependency Source in AGENTS.md
204
207
 
205
208
  After successful cloning, update the repository root `AGENTS.md` so future
@@ -11,7 +11,7 @@
11
11
 
12
12
  ### Skill Registry
13
13
 
14
- - `CUSTOM_SKILLS` in `src/cli/custom-skills.ts` is the authoritative skill manifest for bundled skills
14
+ - `CUSTOM_SKILLS` in `src/cli/custom-skills-registry.ts` is the authoritative skill manifest for bundled skills
15
15
  - Each entry maps folder name + `sourcePath` to an install-time consumer
16
16
  - Skills are categorized by purpose and access scope:
17
17
 
@@ -21,7 +21,9 @@
21
21
  | `clonedeps/` | General-purpose | Workflow skill for dependency source mirroring and inspection |
22
22
  | `simplify/` | General-purpose | Readability and maintainability guidance skill |
23
23
  | `deepwork/` | Orchestrator-only | Heavy coding sessions, multi-phase implementation, and risky refactors |
24
+ | `verification-planning/` | Orchestrator-only | Project-specific evidence planning and verification affordances before non-trivial implementation |
24
25
  | `reflect/` | Orchestrator-only | Learning from repeated work and suggesting reusable improvements |
26
+ | `release-smoke-test/` | Orchestrator-only | Packed release-candidate and bugfix validation |
25
27
  | `worktrees/` | Orchestrator-only | Safe Git worktree lanes for parallel, risky, or isolated work |
26
28
  | `oh-my-opencode-slim/` | Orchestrator-only | Plugin configuration and self-improvement guidance |
27
29
 
@@ -39,7 +41,7 @@
39
41
 
40
42
  ## Flow
41
43
 
42
- 1. **Skill Discovery**: `src/cli/custom-skills.ts` defines `CUSTOM_SKILLS` array with skill metadata
44
+ 1. **Skill Discovery**: `src/cli/custom-skills-registry.ts` defines `CUSTOM_SKILLS` array with skill metadata
43
45
  2. **Installation**: `bun run install` delegates to `src/cli/install.ts`, where `installCustomSkills()` gates copying of each `CUSTOM_SKILLS` entry
44
46
  3. **Validation**: `installCustomSkill()` computes `packageRoot`, validates `sourcePath`, then performs a recursive directory copy via `copyDirRecursive()`
45
47
  4. **Distribution**: During plugin release, `package.json` `files` whitelist ensures `src/skills/**` are included in the published tarball
@@ -49,14 +51,16 @@
49
51
 
50
52
  ### Build & Release Dependencies
51
53
 
52
- - `src/cli/custom-skills.ts`: Source-of-truth registry consumed by installer and permission helpers
54
+ - `src/cli/custom-skills-registry.ts`: Source-of-truth registry consumed by installer and permission helpers
53
55
  - `src/cli/install.ts`: Contains `installCustomSkills()` and `installCustomSkill()` functions
54
56
  - `verify-release-artifact.ts`: Enforces artifact completeness by asserting key bundled skill payloads are present in the tarball:
55
57
  - `src/skills/simplify/SKILL.md`
56
58
  - `src/skills/codemap/SKILL.md`
57
59
  - `src/skills/clonedeps/SKILL.md`
58
60
  - `src/skills/deepwork/SKILL.md`
61
+ - `src/skills/verification-planning/SKILL.md`
59
62
  - `src/skills/reflect/SKILL.md`
63
+ - `src/skills/release-smoke-test/SKILL.md`
60
64
  - `src/skills/worktrees/SKILL.md`
61
65
  - `src/skills/oh-my-opencode-slim/SKILL.md`
62
66
  - `package.json` scripts (`verify:release`, `build`) rely on these assets to ensure install-time skill availability
@@ -1,13 +1,18 @@
1
1
  ---
2
2
  name: deepwork
3
- description: Orchestrator-only workflow for heavy coding sessions, multi-phase implementation, and risky refactors. Use for complex work that needs planning, review gates, and persistent progress tracking.
3
+ description: High-cost orchestrator workflow for large, high-risk, multi-phase coding efforts with meaningful dependencies and review gates. Do not activate for routine multi-file changes.
4
4
  ---
5
5
 
6
6
  # Deepwork
7
7
 
8
- Deepwork is an orchestrator workflow for heavy coding sessions. Use it when the
9
- work is broad, risky, multi-file, or likely to span several implementation
10
- phases. Do not use it for trivial edits, quick docs changes, or simple bug fixes.
8
+ Deepwork is an orchestrator workflow for heavy coding sessions. Use it only
9
+ when the work is clearly large or high-risk: multiple dependent phases,
10
+ cross-cutting architectural change, unsafe-to-partially-ship migration, or
11
+ sustained coordination across several specialist lanes.
12
+
13
+ Do not infer Deepwork merely because a task touches multiple files. Do not use
14
+ it for trivial edits, quick docs changes, simple bug fixes, or routine bounded
15
+ features.
11
16
 
12
17
  ## Core Contract
13
18
 
@@ -16,6 +21,10 @@ not as the default implementation worker.
16
21
 
17
22
  Required behavior:
18
23
 
24
+ - before planning, delegation, or creating a deepwork state file, inspect the
25
+ existing `.gitignore` and `.ignore`; add only missing entries, without
26
+ duplicates, so `.gitignore` contains `.slim/deepwork/` and `.ignore` contains
27
+ `!.slim/deepwork/` and `!.slim/deepwork/**`;
19
28
  - keep OpenCode todos aligned with the active deepwork phase;
20
29
  - create and maintain a local markdown progress file under `.slim/deepwork/`;
21
30
  - write valuable research findings into that file as confirmed research context
@@ -65,8 +74,8 @@ Create a task-specific file such as:
65
74
  .slim/deepwork/<short-task-slug>.md
66
75
  ```
67
76
 
68
- Keep `.slim/deepwork/` out of git, but make it readable to OpenCode. Ensure the
69
- project ignore files include:
77
+ Before creating this file—and before planning or delegation—inspect the existing
78
+ `.gitignore` and `.ignore`. Add only missing entries and do not add duplicates:
70
79
 
71
80
  ```gitignore
72
81
  # .gitignore
@@ -79,6 +88,8 @@ project ignore files include:
79
88
  !.slim/deepwork/**
80
89
  ```
81
90
 
91
+ These rules keep deepwork state git-local while allowing OpenCode to read it.
92
+
82
93
  Do not follow a rigid template. Choose whatever markdown structure best fits the
83
94
  work. The file only needs to remain useful as persistent session state and should
84
95
  capture, as applicable:
@@ -122,13 +122,13 @@ Edit the active preset under `presets.<preset>.<agent>`:
122
122
  "presets": {
123
123
  "openai": {
124
124
  "orchestrator": {
125
- "model": "openai/gpt-5.5",
125
+ "model": "openai/gpt-5.6-terra",
126
126
  "variant": "high",
127
127
  "skills": ["*"],
128
128
  "mcps": ["*", "!context7"]
129
129
  },
130
130
  "librarian": {
131
- "model": "openai/gpt-5.4-mini",
131
+ "model": "openai/gpt-5.6-luna",
132
132
  "variant": "low",
133
133
  "skills": [],
134
134
  "mcps": ["websearch", "context7", "gh_grep"]
@@ -233,7 +233,7 @@ Use this shape as a starting point:
233
233
  {
234
234
  "agents": {
235
235
  "api-reviewer": {
236
- "model": "openai/gpt-5.5",
236
+ "model": "openai/gpt-5.6",
237
237
  "variant": "high",
238
238
  "prompt": "You review API design, compatibility, error semantics, and migration risk. Return concise findings with file references.",
239
239
  "orchestratorPrompt": "Delegate to @api-reviewer for API contract changes, public SDK changes, backwards-compatibility questions, or migration-risk review. Do not use it for routine implementation.",
@@ -119,13 +119,13 @@ tarball install.
119
119
  mkdir -p "$SMOKE/config"
120
120
  cat > "$SMOKE/config/opencode.json" <<EOF
121
121
  {
122
- "model": "openai/gpt-5.5-fast",
122
+ "model": "openai/gpt-5.6-fast",
123
123
  "plugin": [
124
124
  "file://$SMOKE/app/node_modules/oh-my-opencode-slim/dist/index.js"
125
125
  ],
126
126
  "agent": {
127
127
  "orchestrator": {
128
- "model": "openai/gpt-5.5-fast"
128
+ "model": "openai/gpt-5.6-fast"
129
129
  }
130
130
  }
131
131
  }
@@ -0,0 +1,103 @@
1
+ ---
2
+ name: verification-planning
3
+ description: Verification planning for non-trivial coding work. Use before implementing a feature, bug fix, refactor, cross-system change, or high-confidence behavior change that needs a credible project-specific evidence path.
4
+ ---
5
+
6
+ # Verification Planning
7
+
8
+ ## Build an evidence path
9
+
10
+ Before changing a non-trivial system, build an **evidence path**: a
11
+ project-specific route from the claim being made to evidence that can establish,
12
+ limit, or refute it.
13
+
14
+ The purpose is not to select a familiar technique. The purpose is to decide how
15
+ this system can reveal the truth of this particular change.
16
+
17
+ ## 1. Frame the claim
18
+
19
+ State the behavior that needs to become true and the conditions that could make
20
+ a confident conclusion wrong.
21
+
22
+ Consider what must change, what must remain true, where the behavior crosses a
23
+ boundary, and which failure would matter most.
24
+
25
+ **Complete when:** the claim, its meaningful uncertainty, and its important
26
+ failure modes are concrete enough to investigate.
27
+
28
+ ## 2. Design the evidence path
29
+
30
+ Derive possible evidence paths from the system itself: its controllable inputs,
31
+ observable effects, state transitions, invariants, boundaries, artifacts, and
32
+ ability to repeat or reverse a scenario.
33
+
34
+ Generate alternatives before choosing. Prefer the path that produces a
35
+ trustworthy conclusion with proportionate cost, safety, and effort.
36
+
37
+ **Complete when:** there is a preferred path, its limitations are understood,
38
+ and a weaker or stronger alternative is available if circumstances change.
39
+
40
+ ## 3. Create a verification affordance when needed
41
+
42
+ When the existing system leaves the decisive truth too indirect or ambiguous,
43
+ extend the evidence path with a **verification affordance**: the smallest
44
+ capability that makes the relevant state controllable, observable, repeatable,
45
+ and diagnosable for an agent.
46
+
47
+ Ask what capability would let an agent establish the claim directly, repeat the
48
+ scenario from a known state, and explain a failure without inference. Prefer an
49
+ affordance that strengthens directness, determinism, agent-legibility,
50
+ isolation, resetability, or future reuse.
51
+
52
+ Treat the affordance as part of the evidence path, not an automatic product
53
+ feature. Decide deliberately whether it is temporary or durable before building
54
+ it.
55
+
56
+ **Complete when:** the chosen path can establish the claim directly enough for
57
+ its stakes, and any needed affordance has a defined lifecycle.
58
+
59
+ ## 4. Research when the path is unknown
60
+
61
+ When the right evidence path depends on an unfamiliar dependency, framework,
62
+ external service, or rapidly changing capability, ask `@librarian` for focused
63
+ research before committing to an approach.
64
+
65
+ Ask for official or project-specific facilities, constraints, and trade-offs
66
+ that affect this exact verification problem. Use existing project evidence
67
+ directly when it already resolves the choice.
68
+
69
+ **Complete when:** the chosen path rests on known capabilities and real
70
+ constraints rather than assumption.
71
+
72
+ ## 5. Make the path runnable
73
+
74
+ Prepare only the support needed to follow the evidence path reliably. Keep the
75
+ support narrow, repeatable, and safe to inspect.
76
+
77
+ Decide whether that support has recurring value or exists only to resolve the
78
+ current uncertainty. Retain durable value deliberately; remove temporary
79
+ support once it has served its purpose.
80
+
81
+ Ask before introducing dependencies, persistent diagnostic surfaces, or
82
+ structural changes whose sole purpose is evidence gathering.
83
+
84
+ **Complete when:** the path can be followed without guessing about setup,
85
+ state, or interpretation.
86
+
87
+ ## 6. Close the evidence path
88
+
89
+ After implementation, follow the planned path and interpret the resulting
90
+ evidence against the original claim.
91
+
92
+ Report whether the claim was established, limited, or refuted; distinguish
93
+ known facts from remaining uncertainty.
94
+
95
+ **Complete when:** a future reader can see what supports the conclusion and
96
+ what remains outside its reach.
97
+
98
+ ## Scope
99
+
100
+ Use this skill proportionately. Small mechanical changes can follow ordinary
101
+ project checks directly. For release-specific validation, use
102
+ `release-smoke-test`; for larger multi-phase work, let this skill establish the
103
+ evidence path that later work follows.
@@ -81,7 +81,11 @@ operation.
81
81
 
82
82
  ### 3. Ignore File Setup
83
83
 
84
- Before creating lanes, add or update managed marker blocks only.
84
+ Before creating or cleaning lanes, inspect existing `.gitignore` and `.ignore`.
85
+ Update the managed block in place when present; otherwise append it. Add only
86
+ the missing exact lines below, never duplicate entries or modify unrelated
87
+ rules. These blocks keep lane artifacts git-local while the `.ignore` allowlist
88
+ keeps them readable to OpenCode.
85
89
 
86
90
  `.gitignore`:
87
91
 
@@ -111,7 +115,8 @@ Before creating lanes, add or update managed marker blocks only.
111
115
  1. Identify the task scope and determine a short `<slug>` for the worktree.
112
116
  2. Formulate a branch name. Default to `omos/<slug>` unless project/user conventions dictate otherwise.
113
117
  3. Validate repository safety. Ask the user for confirmation to initialize the lane.
114
- 4. Ensure the managed ignore blocks are present.
118
+ 4. Before creating the lane, ensure the managed ignore blocks are present using
119
+ the Ignore File Setup rules above.
115
120
  5. Run:
116
121
  ```bash
117
122
  git worktree add -b <branch-name> .slim/worktrees/<slug> <base-commit/branch>
@@ -138,14 +143,16 @@ Before merging or integrating the worktree branch:
138
143
  checkout or the user-approved integration checkout.
139
144
 
140
145
  ### Phase 4: Cleanup & Pruning
141
- 1. Ensure all changes are safely merged or archived.
142
- 2. Confirm the worktree has no uncommitted changes.
143
- 3. Request user approval to remove the worktree.
144
- 4. Safely remove the worktree using:
146
+ 1. Before cleaning the lane, ensure the managed ignore blocks follow the Ignore
147
+ File Setup rules above.
148
+ 2. Ensure all changes are safely merged or archived.
149
+ 3. Confirm the worktree has no uncommitted changes.
150
+ 4. Request user approval to remove the worktree.
151
+ 5. Safely remove the worktree using:
145
152
  ```bash
146
153
  git worktree remove .slim/worktrees/<slug>
147
154
  ```
148
- 5. Update `.slim/worktrees.json` to mark the lane as `archived` or remove it.
155
+ 6. Update `.slim/worktrees.json` to mark the lane as `archived` or remove it.
149
156
 
150
157
  ---
151
158