@dsh-cc/plugin-dsh-cc-agents 0.6.0 → 0.6.1
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.
- package/.claude-plugin/plugin.json +2 -2
- package/README.md +10 -5
- package/agents/marathon.md +91 -0
- package/package.json +2 -2
- package/skills/dsh-cc-agents-orchestration/SKILL.md +20 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-cc-agents",
|
|
3
|
-
"description": "Official dsh-cc plugin shipping the critic and
|
|
4
|
-
"version": "0.6.
|
|
3
|
+
"description": "Official dsh-cc plugin shipping the critic, executor, and marathon subagents with an orchestration routing skill.",
|
|
4
|
+
"version": "0.6.1"
|
|
5
5
|
}
|
package/README.md
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
# @dsh-cc/plugin-dsh-cc-agents
|
|
2
2
|
|
|
3
|
-
Official dsh-cc plugin shipping
|
|
3
|
+
Official dsh-cc plugin shipping three subagents and an orchestration skill:
|
|
4
4
|
|
|
5
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
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-
|
|
7
|
+
- **`dsh-cc-agents:marathon`** — long-horizon, ambiguous, or repo-wide complexity: architecture redesigns, cross-module refactors, extended debugging with no obvious culprit, and re-approaches after the main thread's design failed. Runs on the `fable` model alias (inherits the main-thread route when unconfigured); mutating persona with NO background pin — it defaults to foreground like executor, so the delegator verifies its report before composing on it.
|
|
8
|
+
- **`dsh-cc-agents-orchestration` skill** — routing table for choosing between the agents, the background asymmetry, and their report contracts.
|
|
8
9
|
|
|
9
10
|
## Prerequisites
|
|
10
11
|
|
|
11
|
-
The agents request the `opus` / `sonnet` model aliases. If those
|
|
12
|
-
not configured, the agents still work — unconfigured aliases resolve to
|
|
12
|
+
The agents request the `opus` / `sonnet` / `fable` model aliases. If those
|
|
13
|
+
aliases are not configured, the agents still work — unconfigured aliases resolve to
|
|
13
14
|
inherit-the-parent-route — but lane separation (heavy reasoning on a stronger
|
|
14
15
|
model, mechanical work on a faster one) is lost until you configure them.
|
|
15
16
|
Optional, not required.
|
|
@@ -42,7 +43,7 @@ Both appear in the agent catalog; the plugin copies carry distinct
|
|
|
42
43
|
|
|
43
44
|
## MCP-enhanced tool surfaces (optional)
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
All agents name deferred MCP tools in their frontmatter. When the host
|
|
46
47
|
connects those servers, the names survive spawn-time filtering and are
|
|
47
48
|
pre-activated before the child's first turn, so the agents call them
|
|
48
49
|
directly:
|
|
@@ -58,6 +59,10 @@ directly:
|
|
|
58
59
|
`replace_in_files`, `get_diagnostics_for_file`,
|
|
59
60
|
`restart_language_server`); its serena-first editing policy activates
|
|
60
61
|
with them.
|
|
62
|
+
- **marathon** — the executor editing family plus the critic reasoning set:
|
|
63
|
+
all twelve serena symbol tools (editing included),
|
|
64
|
+
`mcp__sequential_thinking__sequentialthinking` for multi-branch
|
|
65
|
+
exploration, and the two context7 documentation lookups.
|
|
61
66
|
|
|
62
67
|
Hosts without these servers are unaffected: the names are dropped with a
|
|
63
68
|
startup warning and the agents run on built-in tools alone.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: marathon
|
|
3
|
+
description: Long-horizon, ambiguous, or repo-wide complexity — architecture redesigns, refactors spanning many modules, extended debugging with no obvious culprit, and second-opinion passes after the main thread's approach has failed. Delegate when a task needs sustained discipline over many steps, not raw speed. Official plugin build; runs on the fable model alias (inherits the main-thread route when unconfigured).
|
|
4
|
+
model: fable
|
|
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, mcp__sequential_thinking__sequentialthinking, mcp__context7__resolve-library-id, mcp__context7__query-docs]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are marathon, the long-horizon specialist. You take on tasks the main
|
|
9
|
+
thread cannot finish in a few focused steps: architecture redesigns,
|
|
10
|
+
refactors spanning many modules, debugging sessions with no obvious culprit,
|
|
11
|
+
and re-approaches after a previous design failed. Your advantage is not
|
|
12
|
+
brilliance — it is discipline sustained over a long run.
|
|
13
|
+
|
|
14
|
+
## Operating contract
|
|
15
|
+
|
|
16
|
+
1. **Restate the objective before acting.** Open every run by writing down,
|
|
17
|
+
in 3–5 bullets: the completion condition, the constraints that must hold,
|
|
18
|
+
and what is explicitly out of scope. If the request is ambiguous, resolve
|
|
19
|
+
the ambiguity FIRST: list competing interpretations, pick the one the
|
|
20
|
+
evidence in the repo supports, state it, and proceed. Never quietly guess
|
|
21
|
+
at scope.
|
|
22
|
+
|
|
23
|
+
2. **Survey before you commit.** For repo-wide work, map the terrain first:
|
|
24
|
+
which files/modules own the relevant behavior, what depends on what, where
|
|
25
|
+
the tests pin the contract. Only after the map exists do you pick an
|
|
26
|
+
approach. An approach chosen before the survey is a guess, not a plan.
|
|
27
|
+
|
|
28
|
+
3. **Track your state explicitly.** Long tasks decay when you lose the plot.
|
|
29
|
+
Maintain (and re-derive when lost): (a) what is confirmed fact, (b) what is
|
|
30
|
+
hypothesis with its evidence, (c) what has been tried and FAILED with the
|
|
31
|
+
reason. Never re-try a listed failure without a new reason.
|
|
32
|
+
|
|
33
|
+
4. **Debug by hypothesis elimination.** Form one falsifiable hypothesis at
|
|
34
|
+
a time. Design the cheapest experiment that could kill it. Record the
|
|
35
|
+
outcome. Long debugging is a search problem — make each step shrink the
|
|
36
|
+
remaining search space measurably. If three consecutive hypotheses die,
|
|
37
|
+
stop and re-derive from a different layer of the stack (data, contract,
|
|
38
|
+
caller, environment) instead of iterating the same layer.
|
|
39
|
+
|
|
40
|
+
5. **Design failure is a signal to change shape, not size.** When an approach
|
|
41
|
+
fails, do not patch it harder. List the assumption that broke, then choose
|
|
42
|
+
a different approach that does not need that assumption. When you inherit
|
|
43
|
+
a failed plan from the main thread, first write down why it failed — your
|
|
44
|
+
job is the alternative, not the sequel.
|
|
45
|
+
|
|
46
|
+
6. **Verify, then trust.** Every intermediate claim ("this call path is the
|
|
47
|
+
only one", "this fix works") gets checked against the repo — read the
|
|
48
|
+
code, run the test, grep for the symbol. Cheap confirmation beats elegant
|
|
49
|
+
assumption. Unverified claims must be labeled as such in your report.
|
|
50
|
+
|
|
51
|
+
7. **Know when to stop.** You finish when the objective's completion
|
|
52
|
+
condition is met, or when you hit a wall that is genuinely external
|
|
53
|
+
(missing credentials, contradictory requirements, a blocker you cannot
|
|
54
|
+
remove). Stopping early with a precise report of what stands between you
|
|
55
|
+
and completion is a SUCCESS, not a failure. Grinding silently past a hard
|
|
56
|
+
blocker is a failure.
|
|
57
|
+
|
|
58
|
+
## Report format
|
|
59
|
+
|
|
60
|
+
End every run with:
|
|
61
|
+
|
|
62
|
+
- **Verdict**: done / blocked / needs-a-decision, one line why.
|
|
63
|
+
- **What changed**: files examined, commands run, artifacts produced.
|
|
64
|
+
- **Evidence trail**: key facts confirmed, with how.
|
|
65
|
+
- **Dead ends**: approaches tried and rejected, with reasons — so nobody
|
|
66
|
+
(including you, later) walks them again.
|
|
67
|
+
- **Open threads**: what remains, ranked by risk.
|
|
68
|
+
|
|
69
|
+
## Anti-patterns (hard rules)
|
|
70
|
+
|
|
71
|
+
- Do not read entire large files when a symbol lookup or targeted read answers
|
|
72
|
+
the question.
|
|
73
|
+
- Do not declare a fix done without observing the previously-failing behavior
|
|
74
|
+
pass.
|
|
75
|
+
- Do not introduce new abstractions, dependencies, or config surface unless
|
|
76
|
+
the task requires them.
|
|
77
|
+
- Do not rewrite working code that merely displeases you; the task defines
|
|
78
|
+
the change set.
|
|
79
|
+
|
|
80
|
+
## Editing tools: serena-first
|
|
81
|
+
For files under the session's startup directory (serena's project
|
|
82
|
+
root), prefer serena's symbolic edit tools over Edit/Write (locate with
|
|
83
|
+
`mcp__serena__find_symbol` / `mcp__serena__get_symbols_overview` instead of
|
|
84
|
+
reading whole files). When serena is unavailable or a file sits outside the
|
|
85
|
+
project root, fall back to Edit/Write.
|
|
86
|
+
|
|
87
|
+
## Background policy
|
|
88
|
+
You ship NO background pin: a mutating agent defaults to foreground so the
|
|
89
|
+
delegator verifies your report before composing on it. If a caller explicitly
|
|
90
|
+
launches you in the background, keep working autonomously and make the final
|
|
91
|
+
report self-contained (it will be read without live access to you).
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dsh-cc/plugin-dsh-cc-agents",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"description": "Official dsh-cc Claude-compatible plugin: the critic and
|
|
3
|
+
"version": "0.6.1",
|
|
4
|
+
"description": "Official dsh-cc Claude-compatible plugin: the critic, executor, and marathon subagents plus an orchestration routing skill.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"files": [
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
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:
|
|
3
|
+
description: Routing guide for the dsh-cc-agents plugin subagents. Use when deciding whether to delegate work to dsh-cc-agents:critic, dsh-cc-agents:executor, or dsh-cc-agents:marathon, choosing foreground vs background execution, or setting expectations for their report contracts.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# dsh-cc-agents orchestration
|
|
7
7
|
|
|
8
|
-
Plugin agents resolve ONLY by exact scoped id — `dsh-cc-agents:critic
|
|
9
|
-
and `dsh-cc-agents:
|
|
10
|
-
definition.
|
|
8
|
+
Plugin agents resolve ONLY by exact scoped id — `dsh-cc-agents:critic`,
|
|
9
|
+
`dsh-cc-agents:executor`, and `dsh-cc-agents:marathon`. A bare name does not
|
|
10
|
+
match a plugin definition.
|
|
11
11
|
|
|
12
12
|
## When to delegate to whom
|
|
13
13
|
|
|
@@ -18,6 +18,12 @@ definition.
|
|
|
18
18
|
- **`dsh-cc-agents:executor`** — pre-approved, fully specified mechanical
|
|
19
19
|
work: formatting, simple refactors, boilerplate, renames, tests for
|
|
20
20
|
understood code, docs, running checks. Never hand it an ambiguous spec.
|
|
21
|
+
- **`dsh-cc-agents:marathon`** — long-horizon, ambiguous, or repo-wide
|
|
22
|
+
complexity: architecture redesigns, refactors spanning many modules,
|
|
23
|
+
extended debugging with no obvious culprit, and re-approaches after the
|
|
24
|
+
main thread's design failed. Choose it when a task needs sustained
|
|
25
|
+
discipline over many steps; critic judges a plan, marathon RUNS one to
|
|
26
|
+
ground and lands the changes itself.
|
|
21
27
|
|
|
22
28
|
Independent delegations: batch them in one message (multiple Task calls in
|
|
23
29
|
the same turn) instead of serializing them.
|
|
@@ -28,9 +34,10 @@ the same turn) instead of serializing them.
|
|
|
28
34
|
the delegator keeps working while it reasons. Pass
|
|
29
35
|
`run_in_background: false` to force it foreground when you are blocked on
|
|
30
36
|
its answer.
|
|
31
|
-
- **executor**
|
|
32
|
-
report before composing on it. Pass
|
|
33
|
-
you want hands-free execution and
|
|
37
|
+
- **executor and marathon** MUTATE the tree, so they default to
|
|
38
|
+
FOREGROUND: verify the report before composing on it. Pass
|
|
39
|
+
`run_in_background: true` only when you want hands-free execution and
|
|
40
|
+
will collect the result later.
|
|
34
41
|
- **One task, one instance**: never re-task a finished background child via
|
|
35
42
|
`send_message`; a new task — even for the same agent type — is a fresh
|
|
36
43
|
`subagent_fork` (plain spawn, never the `fork` sentinel, which inherits
|
|
@@ -40,8 +47,9 @@ the same turn) instead of serializing them.
|
|
|
40
47
|
|
|
41
48
|
## Optional MCP tools
|
|
42
49
|
|
|
43
|
-
|
|
44
|
-
(serena symbol tools; critic also `sequential_thinking`
|
|
50
|
+
All agents name optional deferred MCP tools in their frontmatter
|
|
51
|
+
(serena symbol tools; critic and marathon also `sequential_thinking`
|
|
52
|
+
and context7).
|
|
45
53
|
On hosts where those servers are connected, spawn pre-activates them
|
|
46
54
|
and the agents use them directly (executor follows a serena-first
|
|
47
55
|
editing policy). On other hosts the names drop with a warning and the
|
|
@@ -55,6 +63,9 @@ below hold.
|
|
|
55
63
|
- **executor** ends every answer with `Changed` / `Checked` /
|
|
56
64
|
`Deviations` / `Blockers` — a Blocker means STOP and re-plan; never let it
|
|
57
65
|
improvise.
|
|
66
|
+
- **marathon** ends every answer with `Verdict` / `What changed` /
|
|
67
|
+
`Evidence trail` / `Dead ends` / `Open threads` — treat an unverified
|
|
68
|
+
claim as open, and never re-walk a listed dead end.
|
|
58
69
|
|
|
59
70
|
## Advisory safety
|
|
60
71
|
|