@wwkit/harness 1.0.9 → 1.0.11

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 (125) hide show
  1. package/agents/extract.md +2 -14
  2. package/agents/lint.md +368 -0
  3. package/agents/pyit.md +361 -0
  4. package/agents/pyut.md +347 -0
  5. package/agents/query.md +2 -14
  6. package/agents/revise.md +2 -14
  7. package/agents/work.md +631 -0
  8. package/commands/fix.md +77 -0
  9. package/commands/git-sync.md +218 -0
  10. package/commands/net-port.md +364 -0
  11. package/commands/pyit.md +6 -0
  12. package/commands/pyut.md +6 -0
  13. package/commands/resume.md +104 -0
  14. package/package.json +4 -2
  15. package/plugins/work-bootstrap.js +77 -0
  16. package/scripts/work-review-package +50 -0
  17. package/scripts/work-task-brief +27 -0
  18. package/scripts/work-workspace +31 -0
  19. package/skills/better-skill/SKILL.md +124 -0
  20. package/skills/blame-skill/SKILL.md +201 -0
  21. package/skills/lint-ai-fix/SKILL.md +141 -0
  22. package/skills/lint-config-setup/SKILL.md +106 -0
  23. package/skills/lint-config-setup/references/languages/js.md +110 -0
  24. package/skills/lint-config-setup/references/languages/py.md +89 -0
  25. package/skills/lint-env-ensure/SKILL.md +92 -0
  26. package/skills/lint-env-ensure/references/config.md +65 -0
  27. package/skills/lint-language-detect/SKILL.md +79 -0
  28. package/skills/lint-language-detect/references/detect-language.js +65 -0
  29. package/skills/lint-rules-analyze/SKILL.md +129 -0
  30. package/skills/lint-suitability-check/SKILL.md +84 -0
  31. package/skills/lint-tool-fix/SKILL.md +94 -0
  32. package/skills/new-skill/SKILL.md +227 -0
  33. package/skills/new-skill/references/template.md +53 -0
  34. package/skills/new-skill/references/workflow-patterns.md +104 -0
  35. package/skills/pytest-case-create/SKILL.md +327 -0
  36. package/skills/pytest-case-create/references/test-standards.md +244 -0
  37. package/skills/pytest-case-fix/SKILL.md +274 -0
  38. package/skills/pytest-coverage-analyze/SKILL.md +226 -0
  39. package/skills/pytest-coverage-analyze/references/scoring-rules.md +57 -0
  40. package/skills/pytest-env-ensure/SKILL.md +198 -0
  41. package/skills/pytest-env-ensure/references/config.md +145 -0
  42. package/skills/pytest-execute/SKILL.md +155 -0
  43. package/skills/pytest-sample/SKILL.md +164 -0
  44. package/skills/pytest-sample/references/src/pytest-sample/Calculator.py +67 -0
  45. package/skills/pytest-sample/references/src/pytest-sample/ConfigManager.py +68 -0
  46. package/skills/pytest-sample/references/src/pytest-sample/FileProcessor.py +53 -0
  47. package/skills/pytest-sample/references/src/pytest-sample/OrderService.py +82 -0
  48. package/skills/pytest-sample/references/src/pytest-sample/TokenGenerator.py +50 -0
  49. package/skills/pytest-sample/references/src/pytest-sample/UserService.py +45 -0
  50. package/skills/pytest-sample/references/src/pytest-sample/__init__.py +0 -0
  51. package/skills/pytest-suitability-check/SKILL.md +224 -0
  52. package/skills/read-docs/SKILL.md +134 -0
  53. package/skills/read-docs/references/opencode/agents/cases.md +206 -0
  54. package/skills/read-docs/references/opencode/agents/design-pattern.md +47 -0
  55. package/skills/read-docs/references/opencode/agents/detail.md +191 -0
  56. package/skills/read-docs/references/opencode/agents/examples.md +100 -0
  57. package/skills/read-docs/references/opencode/agents/index.md +309 -0
  58. package/skills/read-docs/references/opencode/agents/parallel-dispatch.md +149 -0
  59. package/skills/read-docs/references/opencode/agents/subagent-internals.md +217 -0
  60. package/skills/read-docs/references/opencode/agents/workflow.md +161 -0
  61. package/skills/read-docs/references/opencode/cli/commands/acp.md +32 -0
  62. package/skills/read-docs/references/opencode/cli/commands/agent.md +16 -0
  63. package/skills/read-docs/references/opencode/cli/commands/attach.md +20 -0
  64. package/skills/read-docs/references/opencode/cli/commands/mcp.md +37 -0
  65. package/skills/read-docs/references/opencode/cli/commands/others.md +49 -0
  66. package/skills/read-docs/references/opencode/cli/commands/plugin.md +13 -0
  67. package/skills/read-docs/references/opencode/cli/commands/provider.md +44 -0
  68. package/skills/read-docs/references/opencode/cli/commands/run.md +81 -0
  69. package/skills/read-docs/references/opencode/cli/commands/serve.md +84 -0
  70. package/skills/read-docs/references/opencode/cli/commands/session.md +38 -0
  71. package/skills/read-docs/references/opencode/cli/commands/web.md +15 -0
  72. package/skills/read-docs/references/opencode/cli/env.md +39 -0
  73. package/skills/read-docs/references/opencode/cli/index.md +19 -0
  74. package/skills/read-docs/references/opencode/cli/tui.md +35 -0
  75. package/skills/read-docs/references/opencode/commands/examples.md +42 -0
  76. package/skills/read-docs/references/opencode/commands/index.md +185 -0
  77. package/skills/read-docs/references/opencode/config/provider.md +152 -0
  78. package/skills/read-docs/references/opencode/formatter/index.md +71 -0
  79. package/skills/read-docs/references/opencode/guide/config.md +419 -0
  80. package/skills/read-docs/references/opencode/guide/formatters.md +70 -0
  81. package/skills/read-docs/references/opencode/guide/index.md +37 -0
  82. package/skills/read-docs/references/opencode/guide/providers.md +31 -0
  83. package/skills/read-docs/references/opencode/guide/rules.md +63 -0
  84. package/skills/read-docs/references/opencode/plugins/examples.md +75 -0
  85. package/skills/read-docs/references/opencode/plugins/index.md +188 -0
  86. package/skills/read-docs/references/opencode/reference/index.md +119 -0
  87. package/skills/read-docs/references/opencode/rule/index.md +78 -0
  88. package/skills/read-docs/references/opencode/skills/detail.md +113 -0
  89. package/skills/read-docs/references/opencode/skills/examples.md +141 -0
  90. package/skills/read-docs/references/opencode/skills/index.md +126 -0
  91. package/skills/read-docs/references/opencode/skills/workflow.md +146 -0
  92. package/skills/read-docs/references/opencode/tests/agent.md +10 -0
  93. package/skills/read-docs/references/opencode/tests/config.md +60 -0
  94. package/skills/read-docs/references/opencode/tests/file.md +12 -0
  95. package/skills/read-docs/references/opencode/tests/serve.md +18 -0
  96. package/skills/read-docs/references/opencode/tests/session.md +31 -0
  97. package/skills/read-docs/references/opencode/tests/web.md +17 -0
  98. package/skills/read-docs/references/opencode/tools/arguments.md +305 -0
  99. package/skills/read-docs/references/opencode/tools/context.md +18 -0
  100. package/skills/read-docs/references/opencode/tools/custom.md +111 -0
  101. package/skills/read-docs/references/opencode/tools/detail.md +104 -0
  102. package/skills/read-docs/references/opencode/tools/examples.md +71 -0
  103. package/skills/read-docs/references/opencode/tools/index.md +56 -0
  104. package/skills/read-docs/references/opencode/tools/lsp.md +26 -0
  105. package/skills/read-docs/references/opencode/tools/mcp.md +132 -0
  106. package/skills/read-docs/references/opencode/train/README.md +135 -0
  107. package/skills/read-docs/references/opencode/train/agent-basic.md +772 -0
  108. package/skills/read-docs/references/opencode/train/command-basic.md +668 -0
  109. package/skills/read-docs/references/opencode/train/config-basic.md +509 -0
  110. package/skills/read-docs/references/opencode/train/index.md +164 -0
  111. package/skills/read-docs/references/opencode/train/practice.md +873 -0
  112. package/skills/read-docs/references/opencode/train/skill-basic.md +608 -0
  113. package/skills/read-docs/references/opencode/tui/commands/config.md +32 -0
  114. package/skills/read-docs/references/opencode/tui/commands/editor.md +47 -0
  115. package/skills/read-docs/references/opencode/tui/commands/index.md +125 -0
  116. package/skills/read-docs/references/opencode/tui/commands/init.md +5 -0
  117. package/skills/read-docs/references/opencode/tui/index.md +26 -0
  118. package/skills/read-docs/references/superpowers/bootstrap.md +107 -0
  119. package/skills/read-docs/references/superpowers/comparison.md +77 -0
  120. package/skills/read-docs/references/superpowers/context.md +71 -0
  121. package/skills/read-docs/references/superpowers/index.md +58 -0
  122. package/skills/read-docs/references/superpowers/parallel.md +49 -0
  123. package/skills/read-docs/references/superpowers/sdd.md +183 -0
  124. package/skills/read-docs/references/superpowers/skills.md +68 -0
  125. package/skills/read-docs/references/superpowers/workflow.md +83 -0
@@ -0,0 +1,42 @@
1
+ # 命令示例
2
+
3
+ ## review — 代码审查
4
+
5
+ 位置:`.opencode/command/review.md`,执行:`/review src/main.ts`
6
+
7
+ ```md
8
+ ---
9
+ description: 审查指定文件的代码质量
10
+ agent: plan
11
+ ---
12
+ @$1
13
+ 请审查这个文件的代码质量,重点关注:
14
+ 1. 代码规范和命名
15
+ 2. 潜在 Bug
16
+ 3. 性能问题
17
+ 4. 可维护性
18
+ ```
19
+
20
+ ## commit — 生成提交消息
21
+
22
+ ```md
23
+ ---
24
+ description: 根据变更生成 Commit 消息
25
+ ---
26
+ 根据以下变更生成 commit 消息:
27
+ !`git diff --staged`
28
+ 要求:
29
+ - 遵循 Conventional Commits 规范
30
+ - 简洁明了,说明"为什么"而非"做了什么"
31
+ ```
32
+
33
+ ## translate — 翻译为中文
34
+
35
+ ```md
36
+ ---
37
+ description: 翻译为中文
38
+ subtask: true
39
+ ---
40
+ 请将以下内容翻译为中文:
41
+ $ARGUMENTS
42
+ ```
@@ -0,0 +1,185 @@
1
+ # 命令(Commands)
2
+
3
+ 自定义命令让你在 TUI 中执行预设的提示词:
4
+
5
+ ```
6
+ /my-command
7
+ ```
8
+
9
+ 可以通过 OpenCode 配置或在 `commands/` 目录创建 Markdown 文件添加自定义命令。
10
+
11
+ ## 创建命令文件
12
+
13
+ 在 `commands/` 目录创建 Markdown 文件:
14
+
15
+ - 全局:`~/.config/opencode/commands/`
16
+ - 项目级:`.opencode/commands/`
17
+
18
+ ```md
19
+ ---
20
+ description: Run tests with coverage
21
+ agent: build
22
+ model: anthropic/claude-3-5-sonnet-20241022
23
+ ---
24
+
25
+ Run the full test suite with coverage report and show any failures.
26
+ Focus on the failing tests and suggest fixes.
27
+ ```
28
+
29
+ Frontmatter 定义命令属性,正文内容成为模板。
30
+
31
+ 使用命令:
32
+
33
+ ```
34
+ /test
35
+ ```
36
+
37
+ ## 提示词配置
38
+
39
+ ### 参数传递
40
+
41
+ 使用 `$ARGUMENTS` 占位符传递参数:
42
+
43
+ ```md
44
+ ---
45
+ description: Create a new component
46
+ ---
47
+
48
+ Create a new React component named $ARGUMENTS with TypeScript support.
49
+ Include proper typing and basic structure.
50
+ ```
51
+
52
+ 运行:
53
+
54
+ ```
55
+ /component Button
56
+ ```
57
+
58
+ 使用位置参数:
59
+
60
+ - `$1`:第一个参数
61
+ - `$2`:第二个参数
62
+ - 以此类推
63
+
64
+ ```md
65
+ ---
66
+ description: Create a new file with content
67
+ ---
68
+
69
+ Create a file named $1 in the directory $2
70
+ with the following content: $3
71
+ ```
72
+
73
+ 运行:
74
+
75
+ ```
76
+ /create-file config.json src "{ \"key\": \"value\" }"
77
+ ```
78
+
79
+ ### Shell 输出
80
+
81
+ 使用 `` !`command` `` 注入 bash 命令输出:
82
+
83
+ ```md
84
+ ---
85
+ description: Analyze test coverage
86
+ ---
87
+
88
+ Here are the current test results:
89
+ !`npm test`
90
+
91
+ Based on these results, suggest improvements to increase coverage.
92
+ ```
93
+
94
+ ### 文件引用
95
+
96
+ 使用 `@` 引用文件:
97
+
98
+ ```md
99
+ ---
100
+ description: Review component
101
+ ---
102
+
103
+ Review the component in @src/components/Button.tsx.
104
+ Check for performance issues and suggest improvements.
105
+ ```
106
+
107
+ ## 配置选项
108
+
109
+ ### Template(必需)
110
+
111
+ 定义命令执行时发送给 LLM 的提示词:
112
+
113
+ ```json
114
+ {
115
+ "command": {
116
+ "test": {
117
+ "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
118
+ }
119
+ }
120
+ }
121
+ ```
122
+
123
+ ### Description
124
+
125
+ 命令的简要描述,在 TUI 中输入命令时显示:
126
+
127
+ ```jsonc
128
+ {
129
+ "command": {
130
+ "test": {
131
+ "description": "Run tests with coverage"
132
+ }
133
+ }
134
+ }
135
+ ```
136
+
137
+ ### Agent
138
+
139
+ 指定执行此命令的 Agent(可选,默认为当前 Agent):
140
+
141
+ ```jsonc
142
+ {
143
+ "command": {
144
+ "review": {
145
+ "agent": "plan"
146
+ }
147
+ }
148
+ }
149
+ ```
150
+
151
+ ### Subtask
152
+
153
+ 强制命令触发子代理调用:
154
+
155
+ ```jsonc
156
+ {
157
+ "command": {
158
+ "analyze": {
159
+ "subtask": true
160
+ }
161
+ }
162
+ }
163
+ ```
164
+
165
+ ### Model
166
+
167
+ 覆盖命令的默认模型:
168
+
169
+ ```jsonc
170
+ {
171
+ "command": {
172
+ "analyze": {
173
+ "model": "anthropic/claude-3-5-sonnet-20241022"
174
+ }
175
+ }
176
+ }
177
+ ```
178
+
179
+ ## 内置命令
180
+
181
+ OpenCode 包含以下内置命令:`/init`、`/undo`、`/redo`、`/share`、`/help`。
182
+
183
+ ## 更多内容
184
+
185
+ - [命令示例](/commands/examples) — 实用命令示例
@@ -0,0 +1,152 @@
1
+ # Providers
2
+ To add a provider you need to:
3
+ - Add the API keys for the provider using the `/connect` command.
4
+ - Configure the provider in your OpenCode config.
5
+
6
+ ## Credentials
7
+ When you add a provider’s API keys with the `/connect` command, they are stored in `~/.local/share/opencode/auth.json`.
8
+
9
+ ## Config
10
+ You can customize the providers through the provider section in your OpenCode config.
11
+
12
+ ### Base URL
13
+ You can customize the base URL for any provider by setting the baseURL option.
14
+ - This is useful when using proxy services or custom endpoints.
15
+
16
+ ```json
17
+ {
18
+ "$schema": "https://opencode.ai/config.json",
19
+ "provider": {
20
+ "anthropic": {
21
+ "options": {
22
+ "baseURL": "https://api.anthropic.com/v1"
23
+ }
24
+ }
25
+ }
26
+ }
27
+ ```
28
+
29
+ ### Hiding models
30
+ Both options take an array of model IDs — the same IDs shown in the `/models` picker.
31
+ - `blacklist` removes the listed models from the picker.
32
+ - `whitelist` keeps only the listed models and hides the rest.
33
+
34
+ You can combine them: whitelist narrows the set, then blacklist removes entries from it.
35
+ ```json
36
+ {
37
+ "$schema": "https://opencode.ai/config.json",
38
+ "provider": {
39
+ "anthropic": {
40
+ "blacklist": ["claude-opus-4-20250514"],
41
+ "whitelist": ["claude-sonnet-4-20250514"]
42
+ }
43
+ }
44
+ }
45
+ ```
46
+
47
+ ## OpenCode Zen
48
+ OpenCode Zen is a list of models provided by the OpenCode team that have been tested and verified to work well with OpenCode.
49
+
50
+
51
+ Run the /connect command in the TUI, select OpenCode Zen, and head to opencode.ai/auth.
52
+ ```
53
+ /connect
54
+ ```
55
+
56
+ Run /models in the TUI to see the list of models we recommend.
57
+ ```
58
+ /models
59
+ ```
60
+
61
+ ## OpenCode Go
62
+ OpenCode Go is a low cost subscription plan that provides reliable access to popular open coding models provided by the OpenCode team that have been tested and verified to work well with OpenCode.
63
+
64
+
65
+ ## Custom provider
66
+ To add any OpenAI-compatible provider that’s not listed in the /connect command.
67
+
68
+ Create or update your opencode.json file in your project directory:
69
+ ```json
70
+ {
71
+ "$schema": "https://opencode.ai/config.json",
72
+ "provider": {
73
+ "myprovider": {
74
+ "npm": "@ai-sdk/openai-compatible",
75
+ "name": "My AI ProviderDisplay Name",
76
+ "options": {
77
+ "baseURL": "https://api.myprovider.com/v1"
78
+ },
79
+ "models": {
80
+ "my-model-name": {
81
+ "name": "My Model Display Name"
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ ```
88
+
89
+ Configuration options:
90
+ - npm: AI SDK package to use:
91
+ - `@ai-sdk/openai-compatible` for OpenAI-compatible providers (for `/v1/chat/completions`).
92
+ - `@ai-sdk/openai` for `/v1/responses`
93
+ - name: Display name in UI.
94
+ - models: Available models.
95
+ - options.baseURL: API endpoint URL.
96
+ - options.apiKey: Optionally set the API key, if not using auth.
97
+ - support `env` variable syntax
98
+ - options.headers: Optionally set custom headers.
99
+ - limit.context: Maximum input tokens the model accepts.
100
+ - limit.output: Maximum tokens the model can generate.
101
+
102
+ ### Demo 1:
103
+ ```json
104
+ {
105
+ "$schema": "https://opencode.ai/config.json",
106
+ "provider": {
107
+ "llmproxy": {
108
+ "npm": "@ai-sdk/openai-compatible",
109
+ "name": "llmproxy",
110
+ "options": {
111
+ "baseURL": "http://127.0.0.1:31943/v1",
112
+ "apiKey": "sk-123",
113
+ "headers":{}
114
+ },
115
+ "models": {
116
+ "MiniMax-M2.7": {
117
+ "name": "MiniMax-M2.7"
118
+ },
119
+ }
120
+ }
121
+ },
122
+ }
123
+ ```
124
+
125
+ ### Demo 2:
126
+ ```json
127
+ {
128
+ "$schema": "https://opencode.ai/config.json",
129
+ "provider": {
130
+ "myprovider": {
131
+ "npm": "@ai-sdk/openai-compatible",
132
+ "name": "My AI ProviderDisplay Name",
133
+ "options": {
134
+ "baseURL": "https://api.myprovider.com/v1",
135
+ "apiKey": "{env:ANTHROPIC_API_KEY}",
136
+ "headers": {
137
+ "Authorization": "Bearer custom-token"
138
+ }
139
+ },
140
+ "models": {
141
+ "my-model-name": {
142
+ "name": "My Model Display Name",
143
+ "limit": {
144
+ "context": 200000,
145
+ "output": 65536
146
+ }
147
+ }
148
+ }
149
+ }
150
+ }
151
+ }
152
+ ```
@@ -0,0 +1,71 @@
1
+ # Formatters
2
+ OpenCode can format files after they are written or edited using language-specific formatters.
3
+
4
+ > Formatters are disabled by default; enable them in your config before OpenCode will run them.
5
+
6
+ ## Built-in
7
+ OpenCode comes with several built-in formatters for popular languages and frameworks.
8
+ - `prettier` : .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml
9
+ - `uv` : .py, .pyi
10
+ - `shfmt` : .sh, .bash
11
+ - `pint` : .php
12
+
13
+ ## How it works
14
+ When OpenCode writes or edits a file and formatters are enabled, it:
15
+
16
+ 1. Checks the file extension against all enabled formatters.
17
+ 2. Runs the appropriate formatter command on the file.
18
+ 3. Applies the formatting changes.
19
+
20
+ This process happens in the background for enabled formatters.
21
+
22
+ ## Configure
23
+ You can enable and customize formatters through the formatter section in your OpenCode config.
24
+
25
+ To enable all built-in formatters, set formatter to true.
26
+ ```
27
+ {
28
+ "$schema": "https://opencode.ai/config.json",
29
+ "formatter": true
30
+ }
31
+ ```
32
+
33
+ Each formatter configuration supports the following:
34
+ - `disabled` : `boolean` Set this to true to disable the formatter
35
+ - `command` : `string[]` The command to run for formatting.
36
+ - Required for custom formatters;
37
+ - optional for built-ins.
38
+ - `environment` : `object` Environment variables to set when running the formatter
39
+ - `extensions` : `string[]` File extensions this formatter should handle
40
+
41
+ ```json
42
+ {
43
+ "$schema": "https://opencode.ai/config.json",
44
+ "formatter": {
45
+ "prettier": {
46
+ "disabled": true
47
+ }
48
+ }
49
+ }
50
+ ```
51
+
52
+ ## Custom formatters
53
+ The `$FILE` placeholder in the command will be replaced with the path to the file being formatted.
54
+ ```json
55
+ {
56
+ "$schema": "https://opencode.ai/config.json",
57
+ "formatter": {
58
+ "prettier": {
59
+ "command": ["npx", "prettier", "--write", "$FILE"],
60
+ "environment": {
61
+ "NODE_ENV": "development"
62
+ },
63
+ "extensions": [".js", ".ts", ".jsx", ".tsx"]
64
+ },
65
+ "custom-markdown-formatter": {
66
+ "command": ["deno", "fmt", "$FILE"],
67
+ "extensions": [".md"]
68
+ }
69
+ }
70
+ }
71
+ ```