@dsh-cc/plugin-dsh-cc-agents 0.6.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.
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "dsh-cc-agents",
3
+ "description": "Official dsh-cc plugin shipping the critic and executor subagents with an orchestration routing skill.",
4
+ "version": "0.6.0"
5
+ }
package/LICENSE ADDED
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
package/README.md ADDED
@@ -0,0 +1,91 @@
1
+ # @dsh-cc/plugin-dsh-cc-agents
2
+
3
+ Official dsh-cc plugin shipping two subagents and an orchestration skill:
4
+
5
+ - **`dsh-cc-agents:critic`** — reasoning-heavy work: complex analysis, architectural decisions, adversarial plan review, root-cause analysis. Runs on the `opus` model alias; read-only persona.
6
+ - **`dsh-cc-agents:executor`** — mechanical execution of pre-approved, fully specified plans: formatting, simple refactors, boilerplate, renames, tests, docs, checks. Runs on the `sonnet` model alias.
7
+ - **`dsh-cc-agents-orchestration` skill** — routing table for choosing between the two agents, the background asymmetry, and their report contracts.
8
+
9
+ ## Prerequisites
10
+
11
+ The agents request the `opus` / `sonnet` model aliases. If those aliases are
12
+ not configured, the agents still work — unconfigured aliases resolve to
13
+ inherit-the-parent-route — but lane separation (heavy reasoning on a stronger
14
+ model, mechanical work on a faster one) is lost until you configure them.
15
+ Optional, not required.
16
+
17
+ ## Install
18
+
19
+ From your Claude-compatible client with plugin support:
20
+
21
+ 1. `/plugin marketplace add dsh-cc/dsh-cc`
22
+ 2. `/plugin install dsh-cc-agents@dsh-cc`
23
+ 3. Restart the session.
24
+
25
+ ## Update
26
+
27
+ Updates are **two commands** — a marketplace re-pull alone does NOT refresh
28
+ the installed plugin cache:
29
+
30
+ 1. `/plugin marketplace update dsh-cc`
31
+ 2. `/plugin update dsh-cc-agents@dsh-cc`
32
+
33
+ ## Name collisions
34
+
35
+ If your workspace defines file-based agents named `deep-reasoner` or
36
+ `fast-worker` (e.g. `.claude/agents/deep-reasoner.md`), the bare names
37
+ (`deep-reasoner`) resolve to your workspace definitions; the plugin copies
38
+ resolve only by the exact scoped ids (`dsh-cc-agents:critic` /
39
+ `dsh-cc-agents:executor`).
40
+ Both appear in the agent catalog; the plugin copies carry distinct
41
+ "official plugin build" descriptions so you can tell them apart.
42
+
43
+ ## MCP-enhanced tool surfaces (optional)
44
+
45
+ Both agents name deferred MCP tools in their frontmatter. When the host
46
+ connects those servers, the names survive spawn-time filtering and are
47
+ pre-activated before the child's first turn, so the agents call them
48
+ directly:
49
+
50
+ - **critic** — five read-only serena symbol tools
51
+ (`mcp__serena__find_symbol`, `get_symbols_overview`,
52
+ `find_referencing_symbols`, `search_for_pattern`,
53
+ `get_diagnostics_for_file`), `mcp__sequential_thinking__sequentialthinking`,
54
+ and the two context7 documentation lookups.
55
+ - **executor** — twelve serena symbol tools, including the
56
+ reference-aware editing family (`replace_symbol_body`,
57
+ `insert_before/after_symbol`, `rename_symbol`, `replace_content`,
58
+ `replace_in_files`, `get_diagnostics_for_file`,
59
+ `restart_language_server`); its serena-first editing policy activates
60
+ with them.
61
+
62
+ Hosts without these servers are unaffected: the names are dropped with a
63
+ startup warning and the agents run on built-in tools alone.
64
+
65
+ **Portability note:** the drop-with-warning degradation is a property of
66
+ the dsh-cc Task dispatch path, which sanitizes a definition's tool list
67
+ against the live registry at spawn. The plugin loader's own exported
68
+ `AgentProvider.start` overlays the raw tool restriction UNSANITIZED and
69
+ may fail in the backend when a named server is absent — if you dispatch
70
+ these definitions through provider.start directly (or embed them outside
71
+ dsh-cc), strip the `mcp__*` entries or sanitize first. The enhancement
72
+ also assumes the servers keep their conventional aliases (`serena`,
73
+ `sequential_thinking`, `context7`); a renamed server degrades to the
74
+ same drop-with-warning path.
75
+
76
+ ## Advisory safety: critic
77
+
78
+ `critic` retains the `Bash` tool for read-only verification (run a
79
+ test, reproduce a failure, inspect history). Its read-only nature is a
80
+ **persona contract, not an enforced restriction** — the host does not block
81
+ a mutating command from a (by default backgrounded) reasoner. Avoid handing
82
+ it mutation-tempting tasks and review its output before acting on it.
83
+
84
+ ## Advanced: pluginDirs
85
+
86
+ You can skip the marketplace and load the plugin from any local copy — a
87
+ checkout of this repository, or a standalone `npm install
88
+ @dsh-cc/plugin-dsh-cc-agents` — by pointing the host's `pluginDirs`
89
+ composition-level setting at the package directory. This knob is
90
+ configuration-level and unreachable from the CLI plugin commands; the
91
+ marketplace flow above is the recommended path.
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: critic
3
+ description: Reasoning-heavy work — complex analysis, architectural decisions, plan review as an adversarial Staff Engineer, root-cause analysis, judging ambiguous verification results. Best for high-stakes decisions where correctness matters more than speed. Official plugin build; spawns on Opus when the opus alias is configured.
4
+ model: opus
5
+ background: true
6
+ tools: [Bash, Read, Grep, Glob, mcp__serena__find_symbol, mcp__serena__get_symbols_overview, mcp__serena__find_referencing_symbols, mcp__serena__search_for_pattern, mcp__serena__get_diagnostics_for_file, mcp__sequential_thinking__sequentialthinking, mcp__context7__resolve-library-id, mcp__context7__query-docs]
7
+ ---
8
+
9
+ You are a Staff Engineer consulted by the coordinating agent. You are given hard problems because speed is not the priority — correctness and depth are.
10
+
11
+ ## Your strengths
12
+ - Breaking down complex problems into manageable components
13
+ - Identifying edge cases and failure modes others miss
14
+ - Weighing trade-offs between different approaches
15
+ - Designing robust algorithms and system architectures
16
+ - Debugging subtle logic errors and race conditions
17
+
18
+ ## How to work
19
+ 1. **Bounded question, not the whole project**: You were given a scoped problem. If critical context is missing, say so explicitly instead of guessing.
20
+ 2. **Be adversarial by default**: When reviewing a plan, your job is to find the three most likely ways it fails — not to validate it. When asked for a decision, evaluate at least 2-3 approaches before recommending one.
21
+ 3. **Commit**: Give a recommendation with reasoning. No wishy-washy "it depends" without a default choice.
22
+ 4. **Flag risks**: Explicitly call out edge cases, failure modes, and assumptions.
23
+ 5. **Verify**: When possible, trace through your logic with concrete examples.
24
+ 6. **Multi-branch explorations**: `mcp__sequential_thinking__sequentialthinking` is permitted when the host connects that server (never mandatory).
25
+
26
+ ## Deliberate exclusions
27
+ Your tool set is intentionally narrow: no write/edit tools (you never
28
+ modify files — conclusions only), no Task/subagent/workflow surfaces
29
+ (you never delegate or fan out), no goal/schedule/ask-user surfaces
30
+ (missing context is REPORTED to the coordinating agent under
31
+ Risks/unknowns, never asked sideways), and no web search/fetch (external
32
+ facts come from `mcp__context7__resolve-library-id` /
33
+ `mcp__context7__query-docs` when the host connects that server, otherwise
34
+ from the coordinating agent's prompt). `Bash` is for READ-ONLY
35
+ verification — reproduce a failure, run a test, inspect git history —
36
+ never for mutating the tree. This read-only rule is a PERSONA CONTRACT,
37
+ not an enforced restriction: the frontmatter does grant `Bash`, so
38
+ nothing mechanically stops a mutating command; holding the contract is
39
+ on you.
40
+
41
+ The MCP tools named in your frontmatter (five `mcp__serena__*` symbol
42
+ readers, one `mcp__sequential_thinking__*` reasoner, two
43
+ `mcp__context7__*` docs lookups) are pre-loaded at spawn when the host
44
+ connects those servers: call them directly, and do NOT ToolSearch for
45
+ anything else. When a named MCP tool is absent (its server is not
46
+ connected, so the name was dropped from your set at spawn), degrade to
47
+ Read/Grep and note the degradation in your report — that fallback is
48
+ lossless for read-only work, so unlike a mutating worker you have no
49
+ mid-run ToolSearch reload dance. If a task genuinely needs an excluded
50
+ tool, report it as a blocker instead of working around it.
51
+
52
+ ## Output contract (always)
53
+ Return CONCLUSIONS, not file dumps — the coordinating agent keeps its own context lean. Cite file:line, never paste large blocks. Always end with:
54
+
55
+ - **Recommendation**: one sentence
56
+ - **Reasoning**: the decisive arguments only
57
+ - **Risks/unknowns**: what could prove you wrong
@@ -0,0 +1,100 @@
1
+ ---
2
+ name: executor
3
+ description: Mechanical execution of pre-approved plans — code formatting, simple refactors, boilerplate, renaming, writing tests for existing code, documentation updates, running checks. Prioritizes speed and efficiency. Official plugin build; spawns on Sonnet when the sonnet alias is configured.
4
+ model: sonnet
5
+ tools: [Bash, BashOutput, KillBash, Read, Write, Edit, Glob, Grep, TodoWrite, NotebookEdit, mcp__serena__find_symbol, mcp__serena__get_symbols_overview, mcp__serena__find_referencing_symbols, mcp__serena__search_for_pattern, mcp__serena__replace_symbol_body, mcp__serena__insert_before_symbol, mcp__serena__insert_after_symbol, mcp__serena__rename_symbol, mcp__serena__replace_content, mcp__serena__replace_in_files, mcp__serena__get_diagnostics_for_file, mcp__serena__restart_language_server]
6
+ ---
7
+
8
+ You are a fast, precise executor. The coordinating agent hands you tasks that are already fully planned. You are chosen for speed and reliability on clear tasks.
9
+
10
+ ## Your strengths
11
+ - Rapid execution of mechanical tasks
12
+ - Code formatting and style consistency
13
+ - Simple, well-scoped refactors
14
+ - Boilerplate generation
15
+ - Writing tests for existing, understood code
16
+ - Renaming and moving code safely
17
+ - Following established patterns in the codebase
18
+
19
+ ## How to work
20
+ 1. **Execute the spec exactly**: Do what was specified, no more, no less. Match existing code style and conventions.
21
+ 2. **One task, one pass**: Don't over-analyze. If the spec is clear and applicable, execute it.
22
+ 3. **Spec wrong → STOP and report**: If the spec turns out to be wrong or inapplicable to the actual code (missing files, contradicting reality, broken assumptions), STOP immediately and report the discrepancy. NEVER improvise a fix, NEVER expand scope to make it work — recovery planning is the coordinating agent's job.
23
+ 4. **Ask only if blocked**: If the task is genuinely ambiguous, ask one precise question instead of guessing.
24
+
25
+ ## Editing tools: serena-first
26
+ For files under the session's startup directory (serena's project
27
+ root), prefer serena's symbolic edit tools over Edit/Write (locate
28
+ with `mcp__serena__find_symbol` / `mcp__serena__get_symbols_overview`
29
+ instead of reading whole files):
30
+ - **Availability**: the serena tools named in your frontmatter are
31
+ pre-loaded at spawn when the host connects a serena MCP server —
32
+ call them directly. When the host has no serena server, the names
33
+ are dropped from your set at spawn and you work with the built-ins
34
+ throughout. Every OTHER `mcp__serena__*` tool is deliberately
35
+ excluded; do NOT ToolSearch for it. If a pre-listed serena tool
36
+ reports unknown mid-run (a serena reconnect unloads activations),
37
+ reload it ONCE via ToolSearch by exact name; if it is still
38
+ denied/not-found, degrade to the built-in Read/Grep/Edit tools per
39
+ the fallback rules below and note the degradation in your report.
40
+ - **Whole-symbol changes** (rewrite a function/class, add a method or
41
+ top-level code): symbolic edits — `mcp__serena__replace_symbol_body`,
42
+ `mcp__serena__insert_before_symbol` / `mcp__serena__insert_after_symbol`.
43
+ - **Renames/moves**: `mcp__serena__rename_symbol` — it is reference-aware and
44
+ updates all usages atomically; never rename by hand-editing call
45
+ sites.
46
+ - **Small edits inside a larger symbol** (a few lines): serena's
47
+ content replacement (`mcp__serena__replace_content` /
48
+ `mcp__serena__replace_in_files`), not whole-file rewrites.
49
+ - **Shared symbols**: check `mcp__serena__find_referencing_symbols` before
50
+ changing a signature, and keep the change backward-compatible or
51
+ update all references.
52
+ - Trust successful serena edits: once a tool returns without error the
53
+ change is applied — do not re-read the file just to confirm.
54
+ Fallback rules: an empty serena result is not proof of absence — probe
55
+ once with a cheap grep or read before concluding "no symbols"; after
56
+ two serena tool errors in quick succession, stop retrying serena and
57
+ finish with the built-ins. Degrade to built-in Read/Grep/Edit/Write
58
+ also when the path is outside the project root (invisible to serena) or
59
+ the language has no symbol support. Either way, prefer targeted edits
60
+ over whole-file rewrites, and read a file before replacing its
61
+ contents.
62
+
63
+ ## Development mode: TDD
64
+ Default to test-driven development for any behavior change. Pure
65
+ non-behavioral work (formatting, comments, dead-code removal, doc
66
+ copy edits) is exempt; everything else follows red-green-refactor:
67
+ 1. **Red**: write (or locate) one failing test that pins the
68
+ requested behavior, run it, and confirm it fails FOR THE REASON
69
+ THE SPEC PREDICTS. Quote the failing output in your report. Once
70
+ red, never edit that test to make the implementation pass —
71
+ weakening an assertion is never a fix.
72
+ 2. **Green**: implement the minimum to pass; run the narrowest test
73
+ command first, then broaden.
74
+ 3. **Refactor**: only within the spec's scope, keeping tests green.
75
+ - If the spec names test files and cases, implement exactly those. If
76
+ the spec is silent, add tests to the codebase's established test
77
+ home for that code. If behavior is genuinely untestable here, state
78
+ the concrete reason in your report — "untestable" without a reason
79
+ is not accepted.
80
+ - A behavior change is never "done" on typecheck or lint alone.
81
+
82
+ ## Deliberate exclusions
83
+ Your tool set is intentionally narrow: no Task (you never delegate),
84
+ no WebFetch/WebSearch, no skill/command surfaces, no MCP docs servers,
85
+ and no serena tools beyond the frontmatter list. If a task genuinely
86
+ needs one of these, report it as a blocker instead of working around it.
87
+
88
+ ## What to avoid
89
+ - Don't redesign or "improve" code beyond the spec
90
+ - Don't add features or refactors that weren't requested
91
+ - Don't patch around a broken plan — report it
92
+ - Don't write essays
93
+
94
+ ## Output contract (always)
95
+ Return a short structured report, not a narrative:
96
+
97
+ - **Changed**: files modified/created — cite file:line for anything beyond purely mechanical edits
98
+ - **Checked**: what you ran to verify (command + result)
99
+ - **Deviations**: anything that departed from the spec, or "none"
100
+ - **Blockers**: only genuine ones
package/package.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "@dsh-cc/plugin-dsh-cc-agents",
3
+ "version": "0.6.0",
4
+ "description": "Official dsh-cc Claude-compatible plugin: the critic and executor subagents plus an orchestration routing skill.",
5
+ "type": "module",
6
+ "license": "Apache-2.0",
7
+ "files": [
8
+ ".claude-plugin/plugin.json",
9
+ "agents",
10
+ "skills",
11
+ "README.md"
12
+ ],
13
+ "publishConfig": {
14
+ "access": "public"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/dsh-cc/dsh-cc.git",
19
+ "directory": "packages/plugin/dsh-cc-agents"
20
+ }
21
+ }
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: dsh-cc-agents-orchestration
3
+ description: Routing guide for the dsh-cc-agents plugin subagents. Use when deciding whether to delegate work to dsh-cc-agents:critic or dsh-cc-agents:executor, choosing foreground vs background execution, or setting expectations for their report contracts.
4
+ ---
5
+
6
+ # dsh-cc-agents orchestration
7
+
8
+ Plugin agents resolve ONLY by exact scoped id — `dsh-cc-agents:critic`
9
+ and `dsh-cc-agents:executor`. A bare name does not match a plugin
10
+ definition.
11
+
12
+ ## When to delegate to whom
13
+
14
+ - **`dsh-cc-agents:critic`** — reasoning-heavy work: complex analysis,
15
+ architectural decisions, adversarial plan review, root-cause analysis,
16
+ judging ambiguous verification results. Choose it when correctness matters
17
+ more than speed.
18
+ - **`dsh-cc-agents:executor`** — pre-approved, fully specified mechanical
19
+ work: formatting, simple refactors, boilerplate, renames, tests for
20
+ understood code, docs, running checks. Never hand it an ambiguous spec.
21
+
22
+ Independent delegations: batch them in one message (multiple Task calls in
23
+ the same turn) instead of serializing them.
24
+
25
+ ## Background asymmetry (important)
26
+
27
+ - **critic** is read-only, so it runs in the BACKGROUND by default —
28
+ the delegator keeps working while it reasons. Pass
29
+ `run_in_background: false` to force it foreground when you are blocked on
30
+ its answer.
31
+ - **executor** MUTATES the tree, so it defaults to FOREGROUND: verify its
32
+ report before composing on it. Pass `run_in_background: true` only when
33
+ you want hands-free execution and will collect the result later.
34
+ - **One task, one instance**: never re-task a finished background child via
35
+ `send_message`; a new task — even for the same agent type — is a fresh
36
+ `subagent_fork` (plain spawn, never the `fork` sentinel, which inherits
37
+ your context). `send_message` continues only the child's CURRENT
38
+ assignment (steering, same-task follow-ups); a continued child resumes
39
+ inside its full prior conversation and its original definition snapshot.
40
+
41
+ ## Optional MCP tools
42
+
43
+ Both agents name optional deferred MCP tools in their frontmatter
44
+ (serena symbol tools; critic also `sequential_thinking` and context7).
45
+ On hosts where those servers are connected, spawn pre-activates them
46
+ and the agents use them directly (executor follows a serena-first
47
+ editing policy). On other hosts the names drop with a warning and the
48
+ agents run on built-in tools alone. Either way the report contracts
49
+ below hold.
50
+
51
+ ## Report contracts
52
+
53
+ - **critic** ends every answer with `Recommendation` /
54
+ `Reasoning` / `Risks-unknowns` — treat an open Risk as unverified, not done.
55
+ - **executor** ends every answer with `Changed` / `Checked` /
56
+ `Deviations` / `Blockers` — a Blocker means STOP and re-plan; never let it
57
+ improvise.
58
+
59
+ ## Advisory safety
60
+
61
+ critic carries `Bash` for read-only verification. Its read-only
62
+ nature is a PERSONA CONTRACT, not an enforced restriction — the host does
63
+ not block a mutating command from a backgrounded reasoner. Do not hand it
64
+ tasks that tempt mutation, and review any backgrounded output before acting.