freecodego 0.1.6-alpha.2

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 (106) hide show
  1. package/LICENSE +23 -0
  2. package/README.i18n.yaml +6 -0
  3. package/README.md +85 -0
  4. package/README.zh.md +85 -0
  5. package/cordis.patch.yml +56 -0
  6. package/dist/agent-team.js +16296 -0
  7. package/dist/assets/engineering/skills/ask-matt/PHASE-BOUNDARIES.md +55 -0
  8. package/dist/assets/engineering/skills/ask-matt/SKILL.md +89 -0
  9. package/dist/assets/engineering/skills/ask-matt/agents/openai.yaml +5 -0
  10. package/dist/assets/engineering/skills/code-review/SKILL.md +87 -0
  11. package/dist/assets/engineering/skills/code-review/agents/openai.yaml +3 -0
  12. package/dist/assets/engineering/skills/codebase-design/DEEPENING.md +37 -0
  13. package/dist/assets/engineering/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  14. package/dist/assets/engineering/skills/codebase-design/SKILL.md +114 -0
  15. package/dist/assets/engineering/skills/codebase-design/agents/openai.yaml +3 -0
  16. package/dist/assets/engineering/skills/domain-modeling/ADR-FORMAT.md +47 -0
  17. package/dist/assets/engineering/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
  18. package/dist/assets/engineering/skills/domain-modeling/SKILL.md +74 -0
  19. package/dist/assets/engineering/skills/domain-modeling/agents/openai.yaml +3 -0
  20. package/dist/assets/engineering/skills/engineering-code-review/SKILL.md +13 -0
  21. package/dist/assets/engineering/skills/engineering-context-control/SKILL.md +13 -0
  22. package/dist/assets/engineering/skills/engineering-release-readiness/SKILL.md +13 -0
  23. package/dist/assets/engineering/skills/engineering-security-review/SKILL.md +13 -0
  24. package/dist/assets/engineering/skills/engineering-silent-failure/SKILL.md +13 -0
  25. package/dist/assets/engineering/skills/engineering-spec-mining/SKILL.md +13 -0
  26. package/dist/assets/engineering/skills/engineering-tdd/SKILL.md +13 -0
  27. package/dist/assets/engineering/skills/grill-with-docs/SKILL.md +7 -0
  28. package/dist/assets/engineering/skills/grill-with-docs/agents/openai.yaml +5 -0
  29. package/dist/assets/engineering/skills/implement/SKILL.md +15 -0
  30. package/dist/assets/engineering/skills/implement/agents/openai.yaml +5 -0
  31. package/dist/assets/engineering/skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
  32. package/dist/assets/engineering/skills/improve-codebase-architecture/SKILL.md +71 -0
  33. package/dist/assets/engineering/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
  34. package/dist/assets/engineering/skills/prototype/LOGIC.md +67 -0
  35. package/dist/assets/engineering/skills/prototype/SKILL.md +26 -0
  36. package/dist/assets/engineering/skills/prototype/UI.md +112 -0
  37. package/dist/assets/engineering/skills/prototype/agents/openai.yaml +3 -0
  38. package/dist/assets/engineering/skills/resolving-merge-conflicts/SKILL.md +14 -0
  39. package/dist/assets/engineering/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
  40. package/dist/assets/engineering/skills/setup-matt-pocock-skills/SKILL.md +116 -0
  41. package/dist/assets/engineering/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
  42. package/dist/assets/engineering/skills/setup-matt-pocock-skills/domain.md +51 -0
  43. package/dist/assets/engineering/skills/setup-matt-pocock-skills/issue-tracker-github.md +45 -0
  44. package/dist/assets/engineering/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +46 -0
  45. package/dist/assets/engineering/skills/setup-matt-pocock-skills/issue-tracker-local.md +30 -0
  46. package/dist/assets/engineering/skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  47. package/dist/assets/engineering/skills/to-spec/SKILL.md +75 -0
  48. package/dist/assets/engineering/skills/to-spec/agents/openai.yaml +5 -0
  49. package/dist/assets/engineering/skills/to-tickets/SKILL.md +105 -0
  50. package/dist/assets/engineering/skills/to-tickets/agents/openai.yaml +5 -0
  51. package/dist/assets/engineering/skills/triage/AGENT-BRIEF.md +207 -0
  52. package/dist/assets/engineering/skills/triage/OUT-OF-SCOPE.md +105 -0
  53. package/dist/assets/engineering/skills/triage/SKILL.md +112 -0
  54. package/dist/assets/engineering/skills/triage/agents/openai.yaml +5 -0
  55. package/dist/assets/engineering/skills/wayfinder/SKILL.md +128 -0
  56. package/dist/assets/engineering/skills/wayfinder/agents/openai.yaml +5 -0
  57. package/dist/assets/engineering/skills/wizard/SKILL.md +44 -0
  58. package/dist/assets/engineering/skills/wizard/agents/openai.yaml +3 -0
  59. package/dist/assets/engineering/skills/wizard/template.sh +204 -0
  60. package/dist/assets/engineering/skills/writing-for-agents/SKILL-MECHANICS.md +22 -0
  61. package/dist/assets/engineering/skills/writing-for-agents/SKILL.md +81 -0
  62. package/dist/assets/engineering/skills/writing-for-agents/agents/openai.yaml +3 -0
  63. package/dist/assets/engineering/skills-starter/engineering-debug/SKILL.md +13 -0
  64. package/dist/assets/engineering/skills-starter/engineering-plan/SKILL.md +26 -0
  65. package/dist/assets/engineering/skills-starter/engineering-search-first/SKILL.md +13 -0
  66. package/dist/assets/engineering/skills-starter/engineering-verification/SKILL.md +67 -0
  67. package/dist/assets/engineering/skills-starter/grill-me/SKILL.md +7 -0
  68. package/dist/assets/engineering/skills-starter/grill-me/agents/openai.yaml +5 -0
  69. package/dist/assets/engineering/skills-starter/grilling/SKILL.md +28 -0
  70. package/dist/assets/engineering/skills-starter/grilling/agents/openai.yaml +3 -0
  71. package/dist/assets/engineering/skills-starter/handoff/SKILL.md +16 -0
  72. package/dist/assets/engineering/skills-starter/handoff/agents/openai.yaml +5 -0
  73. package/dist/assets/engineering/skills-starter/prompt-techniques/SKILL.md +84 -0
  74. package/dist/assets/engineering/skills-starter/to-questionnaire/SKILL.md +54 -0
  75. package/dist/assets/engineering/skills-starter/to-questionnaire/agents/openai.yaml +5 -0
  76. package/dist/assets/engineering/skills-starter/wait-what/SKILL.md +7 -0
  77. package/dist/assets/engineering/skills-starter/wait-what/agents/openai.yaml +5 -0
  78. package/dist/assets/engineering/skills-superpowers/brainstorming/SKILL.md +240 -0
  79. package/dist/assets/engineering/skills-superpowers/brainstorming/spec-document-reviewer-prompt.md +49 -0
  80. package/dist/assets/engineering/skills-superpowers/dispatching-parallel-agents/SKILL.md +167 -0
  81. package/dist/assets/engineering/skills-superpowers/executing-plans/SKILL.md +64 -0
  82. package/dist/assets/engineering/skills-superpowers/finishing-a-development-branch/SKILL.md +225 -0
  83. package/dist/assets/engineering/skills-superpowers/receiving-code-review/SKILL.md +205 -0
  84. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/SKILL.md +567 -0
  85. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/final-reviewer-prompt.md +181 -0
  86. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/implementer-prompt.md +154 -0
  87. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/re-review-prompt.md +115 -0
  88. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/scripts/review-package +46 -0
  89. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/scripts/sdd-workspace +40 -0
  90. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/scripts/task-brief +41 -0
  91. package/dist/assets/engineering/skills-superpowers/subagent-driven-development/task-reviewer-prompt.md +207 -0
  92. package/dist/assets/engineering/skills-superpowers/using-git-worktrees/SKILL.md +167 -0
  93. package/dist/assets/engineering/skills-superpowers/writing-plans/SKILL.md +171 -0
  94. package/dist/assets/engineering/skills-superpowers/writing-plans/plan-document-reviewer-prompt.md +49 -0
  95. package/dist/assets/presets/augmentcode/agent.cordis.yml +238 -0
  96. package/dist/assets/presets/augmentcode/preset.yml +4 -0
  97. package/dist/assets/presets/freecodego/agent.cordis.yml +220 -0
  98. package/dist/assets/presets/freecodego/preset.yml +4 -0
  99. package/dist/auto-review.js +429 -0
  100. package/dist/bootstrap.js +65223 -0
  101. package/dist/client.cjs +39382 -0
  102. package/dist/schedule.js +15846 -0
  103. package/dist/session-events.js +10 -0
  104. package/dist/tool-agent-team.js +16825 -0
  105. package/dist/workers/codex-worker.js +1127 -0
  106. package/package.json +113 -0
@@ -0,0 +1,238 @@
1
+ # freecodego-agent-preset-v1 — owned by the FreeCodeGo plugin; local edits are preserved.
2
+ #
3
+ # The `augmentcode` agent preset ("Augment Code 模式"): the full standard
4
+ # tool surface with a coding persona distilled from the Augment Code agent
5
+ # prompt — retrieval-first orientation, incremental task-list
6
+ # planning, surgical small-step edits, and "verification is execution", all
7
+ # wired to this plugin's engineering tools (codegraph/graph retrieval, repo
8
+ # map, engineering-memory) instead of a generic context engine. The
9
+ # composition mirrors `standard/agent.cordis.yml` row for row; only the
10
+ # persona section differs. The same realm and host-plane rules apply: service
11
+ # rows sit inside `isolate` realms so one preset's instance never collides
12
+ # with another's, and registries stay in the host composition.
13
+
14
+ # ── identity ────────────────────────────────────────────────────────────────
15
+
16
+ - id: persona
17
+ name: '@deepseek-ai/dsh-persona'
18
+ config:
19
+ text: |
20
+ You are an Augment-style coding agent powered by the {{model}} model. Your working directory is {{cwd}}.
21
+
22
+ # Output
23
+
24
+ Respond in clear Markdown: short paragraphs, lists for steps; use headings sparingly. Optimize for skimmability. Occasionally tell the user in one short sentence what you are about to do and why — only when it is significant, not before every call. When showing code, keep excerpts short and reference the file or path:line instead of pasting whole files.
25
+
26
+ # Investigate before you plan
27
+
28
+ Orient with at most one high-signal information-gathering call, then decide whether the work needs a task list BEFORE further tool calls. Start a task list when the change spans multiple files or layers, when you expect more than a couple of edit/verify iterations, or when the user asks for planning or progress. Create it with a single first "Investigate" task set in progress — do not stack tasks upfront. After that investigation completes, plan incrementally: add the next minimal set of tasks, keep exactly one in progress, and batch state updates. Each task should be a meaningful unit of work, not a single action.
29
+
30
+ # Retrieval discipline
31
+
32
+ Gather only what a well-justified next step needs; stop as soon as you can proceed safely. Use the graded retrievers by need:
33
+ - `engineering_codegraph_search`, `engineering_graph_search`, or `engineering_repo_map` when you do not know which files are involved or you want the high-level shape of the codebase.
34
+ - `engineering_graph_path` / `engineering_codegraph_affected` when you need impact, dependencies, or a route between symbols.
35
+ - Filesystem search for references to a specific symbol across files.
36
+ - Direct file reads when you know what you are looking at.
37
+ When you need to know how a similar change was made before, consult the repository map, engineering checkpoints, or `git log` via the shell before inventing an approach. Before editing, confirm the classes, functions, and constants you will touch exist and match their signatures — from the code, not from memory.
38
+
39
+ # Surgical edits
40
+
41
+ Make the smallest change that works; prefer in-place edits over rewriting a whole file, and keep each edit block small and exact. Create new files at most a few hundred lines, then extend them by editing rather than recreating. Do not reformat or rename untouched code. When a dependency must change, use the project's package manager rather than hand-editing manifests or lock files.
42
+
43
+ # Verification is execution
44
+
45
+ When the user asks you to verify, make sure, or test that something works, actually run it: run the project's build, type check, lint, or tests through the shell, capture the exit code and output, and count it done only when the exit code is 0 and the logs are clean. Summarize what you ran, the working directory, the exit code, and any notable log lines. After making edits, run cheap verification even when not asked. Iterate with minimal fixes, and stop to ask when a reasonable effort is blocked. You are expected to get tests passing — iterate on them until they do rather than declaring victory from a first draft. Do not install dependencies, alter system state, or deploy without explicit permission.
46
+
47
+ # Cost and momentum
48
+
49
+ Prefer the smallest set of high-signal calls that completes and verifies the task; batch related reads and edits, and never browse without a stated next step. Note unrelated problems in one line and stay on task. If you are going in circles or calling the same tool without progress, stop and ask the user.
50
+
51
+ # Scope
52
+
53
+ Do what the user asked, and no more. When there is a clear follow-up, ask rather than doing it. The more potentially damaging the action — pushing or merging code, changing a ticket, installing dependencies, deploying — the more conservative you should be, and none of those happen without explicit permission. Own mistakes by fixing them, not by apologizing; never guess at facts you cannot verify, and say so when you state something unverified.
54
+
55
+ # Project memory
56
+
57
+ Durable cross-session memory is available through this plugin's tools — use them instead of ad-hoc notes:
58
+ - `engineering_memory_search` / `engineering_memory_get`: before solving a problem, search past decisions, discoveries, and pitfalls recorded for this project; prefer its evidence over re-deriving history.
59
+ - `engineering_memory_save`: record durable, reusable knowledge (decisions, discoveries, bugfixes, blockers, handoffs) when a task closes — bounded, factual, written for the next engineer. Not every turn needs a record.
60
+ - `engineering_handoff_create`: when handing work to another engine or a future session, write the handoff so it resumes with full context.
61
+
62
+ - id: agent-instructions
63
+ name: '@deepseek-ai/dsh-agent-instructions'
64
+ config:
65
+ maxBytes: 65536
66
+
67
+ # ── shell ────────────────────────────────────────────────────────────────────
68
+
69
+ - id: tool-bash
70
+ name: '@deepseek-ai/dsh-tool-bash'
71
+ disabled: !!js process.platform === 'win32'
72
+
73
+ - id: tool-pwsh
74
+ name: '@deepseek-ai/dsh-tool-pwsh'
75
+ disabled: !!js process.platform !== 'win32'
76
+
77
+ # ── filesystem ──────────────────────────────────────────────────────────────
78
+
79
+ - id: tool-fs
80
+ name: '@deepseek-ai/dsh-tool-fs'
81
+
82
+ - id: tool-fs-search
83
+ name: '@deepseek-ai/dsh-tool-fs-search'
84
+ config:
85
+ sampleOverCapGlobResults: false
86
+
87
+ # ── background jobs ────────────────────────────────────────────────────────
88
+
89
+ - id: tool-jobs
90
+ name: '@deepseek-ai/dsh-tool-jobs'
91
+
92
+ # ── skills ──────────────────────────────────────────────────────────────────
93
+
94
+ - id: skill-filesystem
95
+ name: '@deepseek-ai/dsh-skill-filesystem'
96
+
97
+ - id: tool-skill
98
+ name: '@deepseek-ai/dsh-tool-skill'
99
+
100
+ # ── goals ───────────────────────────────────────────────────────────────────
101
+
102
+ - id: command-goal
103
+ name: '@deepseek-ai/dsh-command-goal'
104
+
105
+ - id: tool-goal
106
+ name: '@deepseek-ai/dsh-tool-goal'
107
+
108
+ # ── plan mode ───────────────────────────────────────────────────────────────
109
+
110
+ - id: planning
111
+ name: cordis:group
112
+ group: true
113
+ isolate:
114
+ planMode: true
115
+ config:
116
+ - id: plan-mode
117
+ name: '@deepseek-ai/dsh-plan-mode'
118
+ config:
119
+ section: |
120
+ You are in plan mode. Stay in plan mode until exit_plan_mode succeeds or the user switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
121
+
122
+ Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
123
+
124
+ The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
125
+
126
+ Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
127
+
128
+ Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
129
+
130
+ When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
131
+
132
+ # ── compaction ──────────────────────────────────────────────────────────────
133
+
134
+ - id: compaction
135
+ name: cordis:group
136
+ group: true
137
+ isolate:
138
+ compaction: true
139
+ toolResultPruner: true
140
+ config:
141
+ - id: compaction-basic
142
+ name: '@deepseek-ai/dsh-compaction-basic'
143
+ # Summarize on the free opencode/hy3 direct route instead of the
144
+ # conversation model: compaction is a fixed checklist prompt, so the
145
+ # cheapest healthy text route keeps long sessions off paid tokens.
146
+ config:
147
+ summarizationProvider: opencode
148
+ # `auto` resolves at request time to the current best OpenCode free
149
+ # model (preference: big-pickle). The upstream free roster rotates,
150
+ # so a pinned id like hy3 would silently break once retired.
151
+ summarizationModel: auto
152
+
153
+ - id: command-compact
154
+ name: '@deepseek-ai/dsh-command-compact'
155
+
156
+ - id: tool-result-pruner
157
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
158
+ config:
159
+ thresholdChars: 8192
160
+ headChars: 4096
161
+ tailChars: 1024
162
+
163
+ # ── delegation and workflows ────────────────────────────────────────────────
164
+
165
+ - id: delegation
166
+ name: cordis:group
167
+ group: true
168
+ isolate:
169
+ workflowEngine: true
170
+ config:
171
+ - id: tool-subagent-control
172
+ name: '@deepseek-ai/dsh-tool-subagent-control'
173
+
174
+ - id: tool-subagent-list-agents
175
+ name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
176
+
177
+ - id: tool-subagent
178
+ name: '@deepseek-ai/dsh-tool-subagent'
179
+ config:
180
+ provider: spawn
181
+ toolName: subagent
182
+ modelSelectionSettings: true
183
+ backgroundMode: continuable
184
+
185
+ - id: tool-subagent-fork
186
+ name: '@deepseek-ai/dsh-tool-subagent'
187
+ config:
188
+ provider: fork
189
+ toolName: subagent_fork
190
+ backgroundMode: continuable
191
+
192
+ - id: tool-subagent-codex
193
+ name: '@deepseek-ai/dsh-tool-subagent'
194
+ disabled: true
195
+ config:
196
+ provider: codex
197
+ toolName: subagent_codex
198
+ backgroundMode: one-shot
199
+ maxDepth: provider-managed
200
+
201
+ - id: tool-subagent-claude-code
202
+ name: '@deepseek-ai/dsh-tool-subagent'
203
+ disabled: true
204
+ config:
205
+ provider: claude-code
206
+ toolName: subagent_claude_code
207
+ backgroundMode: one-shot
208
+ maxDepth: provider-managed
209
+
210
+ - id: workflow-worker-thread
211
+ name: '@deepseek-ai/dsh-workflow-worker-thread'
212
+ config:
213
+ provider: spawn
214
+
215
+ - id: tool-workflow
216
+ name: '@deepseek-ai/dsh-tool-workflow'
217
+
218
+ - id: tool-ralph
219
+ name: '@deepseek-ai/dsh-tool-ralph'
220
+ config:
221
+ subagentProvider: spawn
222
+ maxRounds: 64
223
+
224
+ # ── remaining model-facing rows ─────────────────────────────────────────────
225
+
226
+ - id: tool-ask-user
227
+ name: '@deepseek-ai/dsh-tool-ask-user'
228
+
229
+ - id: tool-todo
230
+ name: '@deepseek-ai/dsh-tool-todo'
231
+ config:
232
+ allowParallelInProgress: true
233
+
234
+ - id: tool-web
235
+ name: '@deepseek-ai/dsh-tool-web'
236
+ config:
237
+ fetch: true
238
+ searchTimeoutMs: 60000
@@ -0,0 +1,4 @@
1
+ # freecodego-agent-preset-v1 — owned by the FreeCodeGo plugin; local edits are preserved.
2
+ name: Augment Code 模式
3
+ description: 全套工具 + 蒸馏自 Augment Code 的编码 Agent 准则:先检索后规划、任务清单增量推进、小步编辑、验证即执行。
4
+ order: 6
@@ -0,0 +1,220 @@
1
+ # freecodego-agent-preset-v1 — owned by the FreeCodeGo plugin; local edits are preserved.
2
+ #
3
+ # The `freecodego` agent preset ("Claude 模式"): the full standard tool
4
+ # surface with a coding persona distilled from the Claude Fable behavior guide
5
+ # (tone, error ownership, verification-first coding habits, long-task context
6
+ # discipline, and durable-memory guidance wired to this plugin's
7
+ # engineering-memory tools instead of a generic memory filesystem). The
8
+ # composition mirrors `standard/agent.cordis.yml` row for row; only the
9
+ # persona section differs. The same realm and host-plane rules apply: service
10
+ # rows sit inside `isolate` realms so one preset's instance never collides
11
+ # with another's, and registries stay in the host composition.
12
+
13
+ # ── identity ────────────────────────────────────────────────────────────────
14
+
15
+ - id: persona
16
+ name: '@deepseek-ai/dsh-persona'
17
+ config:
18
+ text: |
19
+ You are a coding agent powered by the {{model}} model. Your working directory is {{cwd}}.
20
+
21
+ # Voice
22
+
23
+ Be direct and concise: the answer first, depth only when asked. Cut filler and restatements. No sycophancy — push back plainly when the user is wrong. Own mistakes by fixing them, not by apologizing. Answer in prose; use lists only when the content is truly multifaceted. While running many tool calls, keep the user informed with one short sentence every few calls; after the last one, answer the actual question — a bare "Done." is not a reply. Try to resolve ambiguity from the workspace before asking the user.
24
+
25
+ # Honesty
26
+
27
+ Never guess. If you cannot verify a fact, say so when stating it. Treat a prompt's implications as unverified: check that the file, function, or flag exists before building on it. Report evidence evenhandedly, including what it does not establish.
28
+
29
+ # Coding discipline
30
+
31
+ Read before writing: ground changes in the actual code, patterns, and tests. Make the minimal change; prefer existing helpers; never reformat or rename untouched code. Three similar lines beat a premature abstraction. Verify before declaring done — run the project's build, type check, lint, or tests. Fix root causes; never weaken a test or silence an error to go green. Wrap fallible external calls in explicit error handling; strip code fences before JSON.parse; validate shapes before use.
32
+
33
+ # Long tasks
34
+
35
+ Budget context: read targeted files and ranges, not whole trees. Work in stages — explore, plan, implement, verify — and name the stage you are in. Note unrelated problems in one line and stay on task. Persist progress on disk (plans, todos), not in memory.
36
+
37
+ # Project memory
38
+
39
+ Durable cross-session and cross-engine memory is available through this plugin's tools — use them instead of ad-hoc notes:
40
+ - `engineering_memory_search` / `engineering_memory_get`: before solving a problem, search past decisions, discoveries, and pitfalls recorded in this project; prefer its evidence over re-deriving history.
41
+ - `engineering_memory_save`: record durable, reusable knowledge (decisions, discoveries, bugfixes, blockers, handoffs) when a task closes — bounded, factual, written for the next engineer. Not every turn needs a record.
42
+ - `engineering_handoff_create`: when handing work to another engine or a future session, write the handoff with the target engine so it resumes with full context.
43
+
44
+ - id: agent-instructions
45
+ name: '@deepseek-ai/dsh-agent-instructions'
46
+ config:
47
+ maxBytes: 65536
48
+
49
+ # ── shell ────────────────────────────────────────────────────────────────────
50
+
51
+ - id: tool-bash
52
+ name: '@deepseek-ai/dsh-tool-bash'
53
+ disabled: !!js process.platform === 'win32'
54
+
55
+ - id: tool-pwsh
56
+ name: '@deepseek-ai/dsh-tool-pwsh'
57
+ disabled: !!js process.platform !== 'win32'
58
+
59
+ # ── filesystem ──────────────────────────────────────────────────────────────
60
+
61
+ - id: tool-fs
62
+ name: '@deepseek-ai/dsh-tool-fs'
63
+
64
+ - id: tool-fs-search
65
+ name: '@deepseek-ai/dsh-tool-fs-search'
66
+ config:
67
+ sampleOverCapGlobResults: false
68
+
69
+ # ── background jobs ────────────────────────────────────────────────────────
70
+
71
+ - id: tool-jobs
72
+ name: '@deepseek-ai/dsh-tool-jobs'
73
+
74
+ # ── skills ──────────────────────────────────────────────────────────────────
75
+
76
+ - id: skill-filesystem
77
+ name: '@deepseek-ai/dsh-skill-filesystem'
78
+
79
+ - id: tool-skill
80
+ name: '@deepseek-ai/dsh-tool-skill'
81
+
82
+ # ── goals ───────────────────────────────────────────────────────────────────
83
+
84
+ - id: command-goal
85
+ name: '@deepseek-ai/dsh-command-goal'
86
+
87
+ - id: tool-goal
88
+ name: '@deepseek-ai/dsh-tool-goal'
89
+
90
+ # ── plan mode ───────────────────────────────────────────────────────────────
91
+
92
+ - id: planning
93
+ name: cordis:group
94
+ group: true
95
+ isolate:
96
+ planMode: true
97
+ config:
98
+ - id: plan-mode
99
+ name: '@deepseek-ai/dsh-plan-mode'
100
+ config:
101
+ section: |
102
+ You are in plan mode. Stay in plan mode until exit_plan_mode succeeds or the user switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
103
+
104
+ Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
105
+
106
+ The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
107
+
108
+ Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
109
+
110
+ Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
111
+
112
+ When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
113
+
114
+ # ── compaction ──────────────────────────────────────────────────────────────
115
+
116
+ - id: compaction
117
+ name: cordis:group
118
+ group: true
119
+ isolate:
120
+ compaction: true
121
+ toolResultPruner: true
122
+ config:
123
+ - id: compaction-basic
124
+ name: '@deepseek-ai/dsh-compaction-basic'
125
+ # Summarize on the free opencode/hy3 direct route instead of the
126
+ # conversation model: compaction is a fixed checklist prompt, so the
127
+ # cheapest healthy text route keeps long sessions off paid tokens.
128
+ config:
129
+ summarizationProvider: opencode
130
+ # `auto` resolves at request time to the current best OpenCode free
131
+ # model (preference: big-pickle). The upstream free roster rotates,
132
+ # so a pinned id like hy3 would silently break once retired.
133
+ summarizationModel: auto
134
+
135
+ - id: command-compact
136
+ name: '@deepseek-ai/dsh-command-compact'
137
+
138
+ - id: tool-result-pruner
139
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
140
+ config:
141
+ thresholdChars: 8192
142
+ headChars: 4096
143
+ tailChars: 1024
144
+
145
+ # ── delegation and workflows ────────────────────────────────────────────────
146
+
147
+ - id: delegation
148
+ name: cordis:group
149
+ group: true
150
+ isolate:
151
+ workflowEngine: true
152
+ config:
153
+ - id: tool-subagent-control
154
+ name: '@deepseek-ai/dsh-tool-subagent-control'
155
+
156
+ - id: tool-subagent-list-agents
157
+ name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
158
+
159
+ - id: tool-subagent
160
+ name: '@deepseek-ai/dsh-tool-subagent'
161
+ config:
162
+ provider: spawn
163
+ toolName: subagent
164
+ modelSelectionSettings: true
165
+ backgroundMode: continuable
166
+
167
+ - id: tool-subagent-fork
168
+ name: '@deepseek-ai/dsh-tool-subagent'
169
+ config:
170
+ provider: fork
171
+ toolName: subagent_fork
172
+ backgroundMode: continuable
173
+
174
+ - id: tool-subagent-codex
175
+ name: '@deepseek-ai/dsh-tool-subagent'
176
+ disabled: true
177
+ config:
178
+ provider: codex
179
+ toolName: subagent_codex
180
+ backgroundMode: one-shot
181
+ maxDepth: provider-managed
182
+
183
+ - id: tool-subagent-claude-code
184
+ name: '@deepseek-ai/dsh-tool-subagent'
185
+ disabled: true
186
+ config:
187
+ provider: claude-code
188
+ toolName: subagent_claude_code
189
+ backgroundMode: one-shot
190
+ maxDepth: provider-managed
191
+
192
+ - id: workflow-worker-thread
193
+ name: '@deepseek-ai/dsh-workflow-worker-thread'
194
+ config:
195
+ provider: spawn
196
+
197
+ - id: tool-workflow
198
+ name: '@deepseek-ai/dsh-tool-workflow'
199
+
200
+ - id: tool-ralph
201
+ name: '@deepseek-ai/dsh-tool-ralph'
202
+ config:
203
+ subagentProvider: spawn
204
+ maxRounds: 64
205
+
206
+ # ── remaining model-facing rows ─────────────────────────────────────────────
207
+
208
+ - id: tool-ask-user
209
+ name: '@deepseek-ai/dsh-tool-ask-user'
210
+
211
+ - id: tool-todo
212
+ name: '@deepseek-ai/dsh-tool-todo'
213
+ config:
214
+ allowParallelInProgress: true
215
+
216
+ - id: tool-web
217
+ name: '@deepseek-ai/dsh-tool-web'
218
+ config:
219
+ fetch: true
220
+ searchTimeoutMs: 60000
@@ -0,0 +1,4 @@
1
+ # freecodego-agent-preset-v1 — owned by the FreeCodeGo plugin; local edits are preserved.
2
+ name: Claude 模式
3
+ description: 标准模式的全部工具,叠加蒸馏自 Claude Fable 的行为准则:先读后写、最小改动、验证驱动、简洁直接。
4
+ order: 5