@kendoo.agentdesk/agentdesk 0.12.2 → 0.13.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.
- package/README.md +2 -1
- package/cli/agents.mjs +40 -6
- package/package.json +1 -1
- package/prompts/phased.md +16 -0
- package/prompts/team.md +10 -0
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
AI team orchestrator for [Claude Code](https://claude.ai/code). Run collaborative agent sessions from your terminal and watch them live on [agentdesk.live](https://agentdesk.live).
|
|
4
4
|
|
|
5
|
-
AgentDesk spawns a team of AI agents inside Claude Code that collaborate on your tasks. The default team includes
|
|
5
|
+
AgentDesk spawns a team of AI agents inside Claude Code that collaborate on your tasks. The default team includes 8 built-in agents, and you can add custom agents to fit your workflow.
|
|
6
6
|
|
|
7
7
|
### Built-in Agents
|
|
8
8
|
|
|
@@ -15,6 +15,7 @@ AgentDesk spawns a team of AI agents inside Claude Code that collaborate on your
|
|
|
15
15
|
| Vera | Test Engineer — unit tests, regression coverage |
|
|
16
16
|
| Luna | UX/UI Designer — visual consistency, accessibility, interaction patterns |
|
|
17
17
|
| Mark | Content Writer — copy, tone, user-facing text |
|
|
18
|
+
| Nora | Documentation Steward — README, /docs, setup guides, npm metadata, website docs |
|
|
18
19
|
|
|
19
20
|
You can also add **custom agents** (e.g., a Security Engineer or DevOps specialist) via project settings.
|
|
20
21
|
|
package/cli/agents.mjs
CHANGED
|
@@ -38,14 +38,20 @@ export const BUILT_IN_AGENTS = {
|
|
|
38
38
|
badge: "◆◆ SAM ◆◆",
|
|
39
39
|
role: "Architecture Auditor",
|
|
40
40
|
description: "guards code architecture and separation of concerns",
|
|
41
|
-
groundRules: "Sam backs claims with file:line references.",
|
|
42
|
-
codePrinciple: "Guards separation of concerns.
|
|
43
|
-
planning: "Architecture review: existing patterns, whether approach
|
|
41
|
+
groundRules: "Sam backs claims with file:line references. Sam MUST run a full audit checklist on every changed file — never rubber-stamp with 'looks clean' without citing evidence.",
|
|
42
|
+
codePrinciple: "Guards separation of concerns. Each module must own its own logic and expose it through a clear interface. Sam cites file:line for every finding.",
|
|
43
|
+
planning: "Architecture review: existing patterns, module boundaries, whether approach keeps concerns separated",
|
|
44
44
|
execution: {
|
|
45
45
|
step: "Sam audits",
|
|
46
46
|
tasks: [
|
|
47
|
-
"Read changed
|
|
48
|
-
"
|
|
47
|
+
"Read EVERY changed file. For each file, run this checklist and report findings with file:line references:",
|
|
48
|
+
"1. **Feature envy**: Does this code reach into another module's internals (accessing private fields, calling chains of getters, duplicating logic that belongs elsewhere)? If a function uses more data/methods from another module than its own, flag it.",
|
|
49
|
+
"2. **Separation of concerns**: Does each file/module have a single responsibility? Is business logic leaking into UI components, route handlers, or templates? Is data access mixed with presentation?",
|
|
50
|
+
"3. **Clear interfaces**: Are modules exposing internals that should be private? Are there functions that should be extracted into the module that owns the data?",
|
|
51
|
+
"4. **Layering violations**: Is code bypassing the intended layer (e.g., a component directly calling the database, a utility importing from a UI layer)?",
|
|
52
|
+
"5. **God objects/files**: Has a file grown to handle too many responsibilities? Should it be split?",
|
|
53
|
+
"For each violation found, Sam MUST state: the file:line, which rule is violated, what the fix is, and which module should own the logic.",
|
|
54
|
+
"Dennis MUST fix all violations Sam flags before Bart proceeds to PR. This is a blocking gate — not advisory.",
|
|
49
55
|
],
|
|
50
56
|
order: 2,
|
|
51
57
|
},
|
|
@@ -120,6 +126,30 @@ export const BUILT_IN_AGENTS = {
|
|
|
120
126
|
order: 2.2,
|
|
121
127
|
},
|
|
122
128
|
},
|
|
129
|
+
Nora: {
|
|
130
|
+
badge: "❖❖ NORA ❖❖",
|
|
131
|
+
role: "Documentation Steward",
|
|
132
|
+
description: "keeps project docs, README, setup guides, website docs, and npm package metadata in sync with shipped behavior",
|
|
133
|
+
groundRules: "Nora MUST audit docs whenever user-facing behavior changes (new/changed CLI flags, config options, env vars, commands, features, or version bumps). She cites the exact file:line for every doc that needs updating.",
|
|
134
|
+
codePrinciple: "Docs are a product surface. README, /docs/**, website docs, setup guides, and npm package description must match what the code actually does. Stale docs are bugs.",
|
|
135
|
+
planning: "Docs review: which user-facing surfaces changed, what needs updating (README, /docs, setup guides, npm description, website docs)",
|
|
136
|
+
execution: {
|
|
137
|
+
step: "Nora reviews & updates docs (if applicable)",
|
|
138
|
+
tasks: [
|
|
139
|
+
"Determine if this change affects user-facing behavior: new/changed CLI flags, commands, config options, env vars, install steps, defaults, version bumps, or any feature a user interacts with. If no user-facing impact, Nora states 'no doc impact' and skips.",
|
|
140
|
+
"If there IS user-facing impact, Nora MUST audit this checklist and report findings with file:line references:",
|
|
141
|
+
"1. **README.md** — does it reflect the new behavior? Feature list, usage examples, CLI flags, config sample, install steps all still accurate?",
|
|
142
|
+
"2. **/docs/** — are guide pages (setup, usage, reference) updated? Any broken or now-incorrect examples?",
|
|
143
|
+
"3. **npm package metadata** — does `package.json` description, keywords, and the README shipped to npm reflect the new feature? (npm shows the repo README by default — check it renders correctly.)",
|
|
144
|
+
"4. **Website docs** — if the project has a public docs site (e.g. agentdesk.live/docs), flag which pages need updating. Dennis updates them.",
|
|
145
|
+
"5. **CLI help text / in-app help** — do `--help`, `-h`, or in-app help screens still match actual behavior?",
|
|
146
|
+
"6. **Setup guides / first-run experience** — do install instructions and first-run flows still work end-to-end?",
|
|
147
|
+
"For each doc that needs updating, Nora MUST propose the exact edit (or write it herself) and Dennis applies it before Bart creates the PR.",
|
|
148
|
+
"Blocking gate: Bart cannot create the PR until Nora signs off with one of: 'No doc impact — skipped' OR 'Docs updated: [list of files]'.",
|
|
149
|
+
],
|
|
150
|
+
order: 2.3,
|
|
151
|
+
},
|
|
152
|
+
},
|
|
123
153
|
};
|
|
124
154
|
|
|
125
155
|
/**
|
|
@@ -190,7 +220,7 @@ export function resolveTeam(config) {
|
|
|
190
220
|
}
|
|
191
221
|
}
|
|
192
222
|
|
|
193
|
-
// Ensure Jane and
|
|
223
|
+
// Ensure Jane, Dennis, and Sam are always present
|
|
194
224
|
if (!team.find(a => a.name === "Jane")) {
|
|
195
225
|
team.unshift({ name: "Jane", ...BUILT_IN_AGENTS.Jane });
|
|
196
226
|
}
|
|
@@ -198,6 +228,10 @@ export function resolveTeam(config) {
|
|
|
198
228
|
const jane = team.findIndex(a => a.name === "Jane");
|
|
199
229
|
team.splice(jane + 1, 0, { name: "Dennis", ...BUILT_IN_AGENTS.Dennis });
|
|
200
230
|
}
|
|
231
|
+
if (!team.find(a => a.name === "Sam")) {
|
|
232
|
+
const dennis = team.findIndex(a => a.name === "Dennis");
|
|
233
|
+
team.splice(dennis + 1, 0, { name: "Sam", ...BUILT_IN_AGENTS.Sam });
|
|
234
|
+
}
|
|
201
235
|
|
|
202
236
|
return team;
|
|
203
237
|
}
|
package/package.json
CHANGED
package/prompts/phased.md
CHANGED
|
@@ -194,6 +194,14 @@ Speaking order:
|
|
|
194
194
|
|
|
195
195
|
{{CODE_PRINCIPLES}}
|
|
196
196
|
|
|
197
|
+
## CRITICAL: SAM'S AUDIT IS A BLOCKING GATE
|
|
198
|
+
|
|
199
|
+
- Sam MUST read every changed file and run his full audit checklist after Dennis implements. No exceptions.
|
|
200
|
+
- Sam MUST NOT say "looks clean" or "no issues" without citing specific file:line references he inspected.
|
|
201
|
+
- If Sam finds violations, Dennis MUST fix them before Bart creates the PR.
|
|
202
|
+
- The PR cannot be created until Sam explicitly signs off with evidence.
|
|
203
|
+
- If Sam rubber-stamps without evidence, the session is invalid.
|
|
204
|
+
|
|
197
205
|
## RULES
|
|
198
206
|
|
|
199
207
|
- Follow CLAUDE.md conventions (if present).
|
|
@@ -252,6 +260,14 @@ Speaking order:
|
|
|
252
260
|
|
|
253
261
|
{{CODE_PRINCIPLES}}
|
|
254
262
|
|
|
263
|
+
## CRITICAL: SAM'S AUDIT IS A BLOCKING GATE
|
|
264
|
+
|
|
265
|
+
- Sam MUST read every changed file and run his full audit checklist after Dennis implements. No exceptions.
|
|
266
|
+
- Sam MUST NOT say "looks clean" or "no issues" without citing specific file:line references he inspected.
|
|
267
|
+
- If Sam finds violations, Dennis MUST fix them before Bart creates the PR.
|
|
268
|
+
- The PR cannot be created until Sam explicitly signs off with evidence.
|
|
269
|
+
- If Sam rubber-stamps without evidence, the session is invalid.
|
|
270
|
+
|
|
255
271
|
## RULES
|
|
256
272
|
|
|
257
273
|
- Follow CLAUDE.md conventions (if present).
|
package/prompts/team.md
CHANGED
|
@@ -40,6 +40,16 @@ Violation of this rule makes the entire session invalid.
|
|
|
40
40
|
|
|
41
41
|
{{CODE_PRINCIPLES}}
|
|
42
42
|
|
|
43
|
+
## CRITICAL: SAM'S AUDIT IS A BLOCKING GATE
|
|
44
|
+
|
|
45
|
+
This is a hard constraint that MUST NOT be violated under any circumstances:
|
|
46
|
+
|
|
47
|
+
- Sam MUST read every changed file and run his full audit checklist after Dennis implements. No exceptions.
|
|
48
|
+
- Sam MUST NOT say "looks clean", "no issues", or "architecture is fine" without citing specific file:line references he inspected and what he checked.
|
|
49
|
+
- If Sam finds violations (feature envy, leaking concerns, missing interfaces, layering violations), Dennis MUST fix them before Bart creates the PR.
|
|
50
|
+
- The PR cannot be created until Sam explicitly signs off with evidence. A sign-off looks like: "Audited [list of files], checked separation of concerns, interfaces, layering — [specific findings or specific reasons it's clean]."
|
|
51
|
+
- If Sam rubber-stamps without evidence, the session is invalid — same severity as Jane touching code.
|
|
52
|
+
|
|
43
53
|
## RULES
|
|
44
54
|
|
|
45
55
|
- Follow CLAUDE.md conventions (if present).
|