@selesai/code 0.3.9 → 0.4.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/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +4 -4
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts +4 -2
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +13 -25
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/core/agent-session.d.ts +22 -5
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +130 -49
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +13 -5
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/cache-stats.d.ts +49 -0
- package/dist/core/cache-stats.d.ts.map +1 -0
- package/dist/core/cache-stats.js +101 -0
- package/dist/core/cache-stats.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +1 -2
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +56 -81
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +10 -0
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +5 -3
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +38 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +41 -12
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js +28 -1
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +3 -6
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-registry.d.ts +4 -6
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +34 -8
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +10 -0
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +15 -18
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-manager.d.ts +4 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +68 -26
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js +0 -10
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/resource-loader.d.ts +2 -2
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +8 -7
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +8 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +21 -2
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +104 -72
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +14 -3
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +29 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts +1 -0
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +3 -3
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/timings.d.ts +4 -2
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +24 -14
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +20 -5
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +2 -2
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +12 -25
- package/dist/core/tools/read.js.map +1 -1
- package/dist/defaults/models.json +2 -3
- package/dist/extensions/caveman/index.js +16 -1
- package/dist/extensions/caveman/test/extension.test.js +7 -4
- package/dist/extensions/caveman/test/helpers.test.js +12 -1
- package/dist/extensions/context-compaction-reminder.test.ts +82 -0
- package/dist/extensions/context-compaction-reminder.ts +28 -0
- package/dist/extensions/handoff-new.test.ts +2 -13
- package/dist/extensions/handoff-new.ts +16 -25
- package/dist/extensions/package.json +1 -0
- package/dist/extensions/pi-subagents/agents/architect.md +25 -173
- package/dist/extensions/pi-subagents/agents/builder.md +16 -105
- package/dist/extensions/pi-subagents/agents/commentator.md +19 -116
- package/dist/extensions/pi-subagents/agents/explorer.md +13 -33
- package/dist/extensions/pi-subagents/agents/recapper.md +19 -11
- package/dist/extensions/pi-subagents/agents/researcher.md +10 -33
- package/dist/extensions/question/constants.ts +0 -7
- package/dist/extensions/question/index.ts +11 -108
- package/dist/extensions/question/schemas.ts +1 -26
- package/dist/extensions/question/shortcuts.ts +5 -14
- package/dist/extensions/question/tests/question-list.test.ts +8 -0
- package/dist/extensions/question/tests/ui-protocol.test.ts +1 -7
- package/dist/extensions/question/tui-adapter.ts +3 -20
- package/dist/extensions/question/types.ts +0 -6
- package/dist/extensions/question/ui-protocol.ts +2 -17
- package/dist/extensions/workflow/adapter.ts +384 -124
- package/dist/extensions/workflow/extension.ts +2 -1
- package/dist/extensions/workflow/modes/prototype.ts +6 -6
- package/dist/extensions/workflow/modes/quick.ts +6 -6
- package/dist/extensions/workflow/modes/task.ts +79 -0
- package/dist/extensions/workflow/run-state.ts +124 -0
- package/dist/extensions/workflow/state-machine.ts +4 -8
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +2 -2
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +17 -4
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +3 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +23 -15
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts +34 -3
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +280 -25
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/custom-entry.d.ts +19 -0
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-entry.js +52 -0
- package/dist/modes/interactive/components/custom-entry.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +3 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +12 -3
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +4 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +1 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +3 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +17 -6
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +25 -2
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts +28 -0
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
- package/dist/modes/interactive/components/status-indicator.js +60 -0
- package/dist/modes/interactive/components/status-indicator.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +2 -1
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +6 -2
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +19 -6
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +21 -10
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +417 -196
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/dark.json +1 -0
- package/dist/modes/interactive/theme/light.json +1 -0
- package/dist/modes/interactive/theme/theme-schema.json +6 -2
- package/dist/modes/interactive/theme/theme.d.ts +3 -2
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +10 -3
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +1 -1
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +21 -6
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +17 -3
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +20 -1
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +26 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.d.ts +2 -2
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +71 -17
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/rpc-entry.d.ts +3 -0
- package/dist/rpc-entry.d.ts.map +1 -0
- package/dist/rpc-entry.js +10 -0
- package/dist/rpc-entry.js.map +1 -0
- package/dist/skills/workflow-creation/SKILL.md +72 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +1 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/image-convert.d.ts +1 -0
- package/dist/utils/image-convert.d.ts.map +1 -1
- package/dist/utils/image-convert.js +21 -15
- package/dist/utils/image-convert.js.map +1 -1
- package/dist/utils/image-process.d.ts +18 -0
- package/dist/utils/image-process.d.ts.map +1 -0
- package/dist/utils/image-process.js +83 -0
- package/dist/utils/image-process.js.map +1 -0
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js +41 -0
- package/dist/utils/mime.js.map +1 -1
- package/docs/workflows.md +40 -6
- package/package.json +8 -5
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* /handoff-new — generate a handoff prompt and open a clean new session with
|
|
3
|
-
* that content as the
|
|
3
|
+
* that content as the first unsent prompt (editor text, not hidden system
|
|
4
4
|
* prompt). Sibling of examples/extensions/handoff.ts, adapted to this repo's
|
|
5
5
|
* import conventions and reduced to the one thing that ships.
|
|
6
6
|
*
|
|
7
7
|
* Usage:
|
|
8
8
|
* /handoff-new continue implementing the workflow fix
|
|
9
|
-
* /handover-new ship plan 2
|
|
10
9
|
*
|
|
11
|
-
* If no goal argument is given, a default goal is used. The
|
|
12
|
-
*
|
|
10
|
+
* If no goal argument is given, a default goal is used. The new session opens
|
|
11
|
+
* with the generated text in its editor; the user can change it before submit.
|
|
13
12
|
*/
|
|
14
13
|
|
|
15
14
|
import type { AgentMessage } from "@earendil-works/pi-agent-core";
|
|
@@ -17,14 +16,15 @@ import { complete, type Context } from "@earendil-works/pi-ai/compat";
|
|
|
17
16
|
import type { ExtensionAPI, ExtensionCommandContext, SessionEntry } from "@selesai/code";
|
|
18
17
|
import { BorderedLoader, convertToLlm, serializeConversation } from "@selesai/code";
|
|
19
18
|
|
|
20
|
-
const SYSTEM_PROMPT = `
|
|
19
|
+
const SYSTEM_PROMPT = `Write a handoff document summarising the current conversation so a fresh agent can continue the work. Save to the temporary directory of the user's OS - not the current workspace.
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
2. Lists any relevant files that were discussed or modified
|
|
24
|
-
3. Clearly states the next task based on the user's goal
|
|
25
|
-
4. Is self-contained - the new thread should be able to proceed without the old conversation
|
|
21
|
+
Include a "suggested skills" section in the document, which suggests skills that the agent should invoke.
|
|
26
22
|
|
|
27
|
-
|
|
23
|
+
Do not duplicate content already captured in other artifacts (PRDs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
|
|
24
|
+
|
|
25
|
+
Redact any sensitive information, such as API keys, passwords, or personally identifiable information.
|
|
26
|
+
|
|
27
|
+
If the user passed arguments, treat them as a description of what the next session will focus on and tailor the doc accordingly.`;
|
|
28
28
|
|
|
29
29
|
export const DEFAULT_GOAL = "Continue the previous session from this handoff.";
|
|
30
30
|
|
|
@@ -85,13 +85,10 @@ export function buildAiContext(conversationText: string, goal: string): Context
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
export default function (pi: ExtensionAPI) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
handler: handoffNew,
|
|
93
|
-
});
|
|
94
|
-
}
|
|
88
|
+
pi.registerCommand("handoff-new", {
|
|
89
|
+
description: "Generate a handoff prompt and open a clean new session with it as the first draft",
|
|
90
|
+
handler: handoffNew,
|
|
91
|
+
});
|
|
95
92
|
}
|
|
96
93
|
|
|
97
94
|
async function handoffNew(args: string, ctx: ExtensionCommandContext) {
|
|
@@ -151,17 +148,11 @@ async function handoffNew(args: string, ctx: ExtensionCommandContext) {
|
|
|
151
148
|
return;
|
|
152
149
|
}
|
|
153
150
|
|
|
154
|
-
|
|
155
|
-
if (editedPrompt === undefined) {
|
|
156
|
-
ctx.ui.notify("Cancelled", "info");
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
// Editor text, NOT a hidden system prompt: the user reviews and submits.
|
|
151
|
+
// Editor text, NOT a hidden system prompt: the user can edit before submit.
|
|
161
152
|
const newSessionResult = await ctx.newSession({
|
|
162
153
|
parentSession: currentSessionFile,
|
|
163
154
|
withSession: async (replacementCtx) => {
|
|
164
|
-
replacementCtx.ui.setEditorText(
|
|
155
|
+
replacementCtx.ui.setEditorText(result);
|
|
165
156
|
replacementCtx.ui.notify("Handoff ready. Submit when ready.", "info");
|
|
166
157
|
},
|
|
167
158
|
});
|
|
@@ -1,188 +1,40 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: architect
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
output: plan.md
|
|
12
|
-
defaultReads: context.md
|
|
13
|
-
defaultContext: fork
|
|
3
|
+
description: Creates implementation plans from context and requirements
|
|
4
|
+
tools: read, grep, find, ls
|
|
5
|
+
systemPromptMode: replace
|
|
6
|
+
inheritProjectContext: true
|
|
7
|
+
inheritSkills: false
|
|
8
|
+
skill: ponytail
|
|
9
|
+
output: plan.md
|
|
10
|
+
defaultContext: fork
|
|
14
11
|
---
|
|
15
12
|
|
|
16
|
-
You are a planning subagent.
|
|
17
|
-
|
|
18
|
-
Your job is to turn requirements and code context into a concrete implementation plan. Do not make code changes. Read, analyze, and write the plan only.
|
|
13
|
+
You are a planning subagent. Turn the supplied requirements and code context into a concrete implementation plan. Do not edit project files and do not delegate to other subagents; inspect the code yourself.
|
|
19
14
|
|
|
20
15
|
Working rules:
|
|
21
|
-
- Read
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
- If the task is underspecified, surface the ambiguity in the plan instead of guessing.
|
|
16
|
+
- Read supplied artifacts and relevant code before planning. Follow callers and tests when needed.
|
|
17
|
+
- Name exact files, symbols, and validation commands whenever evidence permits.
|
|
18
|
+
- Prefer the smallest maintainable change. Reuse existing code and avoid speculative abstractions or dependencies.
|
|
19
|
+
- Surface unresolved requirements or risks instead of inventing product decisions.
|
|
20
|
+
- The configured output artifact is allowed; do not write any other file.
|
|
27
21
|
|
|
28
|
-
Output
|
|
22
|
+
Output:
|
|
29
23
|
|
|
30
24
|
# Implementation Plan
|
|
31
25
|
|
|
32
26
|
## Goal
|
|
33
27
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- Limited context window
|
|
37
|
-
- No project knowledge
|
|
38
|
-
- No memory of previous conversation
|
|
39
|
-
- Weak architectural understanding
|
|
40
|
-
- No ability to infer missing steps
|
|
41
|
-
|
|
42
|
-
Assume the executor only knows what is written in the plan.
|
|
43
|
-
|
|
44
|
-
# Core Principles
|
|
45
|
-
|
|
46
|
-
## Discovery First
|
|
47
|
-
|
|
48
|
-
Never assume:
|
|
49
|
-
|
|
50
|
-
- File names
|
|
51
|
-
- File locations
|
|
52
|
-
- Ownership of behavior
|
|
53
|
-
- Existing abstractions
|
|
54
|
-
- Existing utilities
|
|
55
|
-
|
|
56
|
-
If the code has not been inspected, the plan must begin with discovery.
|
|
57
|
-
You research the codebase (using explorer agent) → clarify with the user (using questions tool) → capture findings and decisions into a comprehensive plan. This iterative approach catches edge cases and non-obvious requirements BEFORE implementation begins.
|
|
58
|
-
|
|
59
|
-
## Simplicity First
|
|
60
|
-
|
|
61
|
-
Prefer the smallest maintainable solution that satisfies the requirement.
|
|
62
|
-
|
|
63
|
-
Avoid:
|
|
64
|
-
|
|
65
|
-
- New abstractions
|
|
66
|
-
- New services
|
|
67
|
-
- New dependencies
|
|
68
|
-
- Large refactors
|
|
69
|
-
- Generic frameworks
|
|
70
|
-
- Future-proofing for hypothetical requirements
|
|
71
|
-
|
|
72
|
-
Choose the lowest-complexity solution that works.
|
|
73
|
-
|
|
74
|
-
## Reuse Before Build
|
|
75
|
-
|
|
76
|
-
Before creating anything new (use explorer agent):
|
|
77
|
-
|
|
78
|
-
- Search for existing implementations
|
|
79
|
-
- Search for existing utilities
|
|
80
|
-
- Search for existing patterns
|
|
81
|
-
- Search for existing tests
|
|
82
|
-
|
|
83
|
-
Reuse existing code when reasonable.
|
|
84
|
-
|
|
85
|
-
Do not duplicate behavior unless duplication is clearly preferable.
|
|
86
|
-
|
|
87
|
-
## Scope Discipline
|
|
88
|
-
|
|
89
|
-
Only modify code required for the task.
|
|
90
|
-
|
|
91
|
-
Allowed:
|
|
92
|
-
|
|
93
|
-
- Small cleanup in touched files
|
|
94
|
-
- Remove unused imports
|
|
95
|
-
- Remove obvious dead code
|
|
96
|
-
- Improve nearby naming
|
|
97
|
-
|
|
98
|
-
Not allowed:
|
|
99
|
-
|
|
100
|
-
- Unrelated refactors
|
|
101
|
-
- Architecture changes
|
|
102
|
-
- Broad cleanup efforts
|
|
103
|
-
- Dependency migrations
|
|
104
|
-
|
|
105
|
-
# Task Structure
|
|
106
|
-
|
|
107
|
-
Every implementation task must contain:
|
|
108
|
-
|
|
109
|
-
## 1. Discovery
|
|
110
|
-
|
|
111
|
-
Describe:
|
|
112
|
-
|
|
113
|
-
- What to search for
|
|
114
|
-
- Where to search
|
|
115
|
-
- How to identify relevant code
|
|
116
|
-
|
|
117
|
-
Example:
|
|
118
|
-
|
|
119
|
-
Search for:
|
|
120
|
-
|
|
121
|
-
- Authorization
|
|
122
|
-
- Bearer
|
|
123
|
-
- Interceptor
|
|
124
|
-
- Refresh token
|
|
125
|
-
|
|
126
|
-
Inspect matching files and identify where authentication headers are attached.
|
|
127
|
-
|
|
128
|
-
## 2. Identification
|
|
129
|
-
|
|
130
|
-
Describe:
|
|
131
|
-
|
|
132
|
-
- Exact file(s) to modify
|
|
133
|
-
- Why those files own the behavior
|
|
134
|
-
- Why other files should not be modified
|
|
135
|
-
|
|
136
|
-
## 3. Change
|
|
137
|
-
|
|
138
|
-
Describe:
|
|
139
|
-
|
|
140
|
-
- Exact modification required
|
|
141
|
-
- Functions/classes affected
|
|
142
|
-
- Existing code to reuse
|
|
143
|
-
- New code to add
|
|
144
|
-
- Code explicitly not to add
|
|
145
|
-
|
|
146
|
-
The executor should know exactly what to implement.
|
|
147
|
-
|
|
148
|
-
## 4. Verification
|
|
149
|
-
|
|
150
|
-
Include:
|
|
151
|
-
|
|
152
|
-
### Success Cases
|
|
153
|
-
|
|
154
|
-
Expected working behavior.
|
|
155
|
-
|
|
156
|
-
### Failure Cases
|
|
157
|
-
|
|
158
|
-
Expected error behavior.
|
|
159
|
-
|
|
160
|
-
### Regression Checks
|
|
161
|
-
|
|
162
|
-
Existing behavior that must remain unchanged.
|
|
163
|
-
|
|
164
|
-
# Granularity Rule
|
|
165
|
-
|
|
166
|
-
A task is too large if it can be split into smaller independently verifiable work.
|
|
167
|
-
|
|
168
|
-
Keep decomposing until each task:
|
|
169
|
-
|
|
170
|
-
- Has one objective
|
|
171
|
-
- Has clear ownership
|
|
172
|
-
- Can be implemented independently
|
|
173
|
-
- Can be verified independently
|
|
174
|
-
|
|
175
|
-
Prefer 5 small tasks over 1 large task.
|
|
28
|
+
## Findings
|
|
29
|
+
- Relevant files, existing behavior, and constraints.
|
|
176
30
|
|
|
177
|
-
|
|
31
|
+
## Steps
|
|
32
|
+
1. Exact file and change.
|
|
33
|
+
2. Exact file and change.
|
|
178
34
|
|
|
179
|
-
|
|
35
|
+
## Verification
|
|
36
|
+
- Success cases
|
|
37
|
+
- Failure/regression cases
|
|
38
|
+
- Commands or manual checks
|
|
180
39
|
|
|
181
|
-
|
|
182
|
-
- Ownership is justified
|
|
183
|
-
- Solution is the simplest acceptable approach
|
|
184
|
-
- Existing code is reused when possible
|
|
185
|
-
- No unnecessary abstractions are introduced
|
|
186
|
-
- Scope remains limited
|
|
187
|
-
- Verification is included
|
|
188
|
-
- Every step is executable without additional assumptions
|
|
40
|
+
## Risks / Open Questions
|
|
@@ -1,120 +1,31 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: builder
|
|
3
|
-
|
|
3
|
+
description: Implementation agent for normal task handoffs
|
|
4
4
|
thinking: high
|
|
5
|
-
description: Implementation agent for normal tasks handoffs
|
|
6
5
|
systemPromptMode: replace
|
|
7
6
|
tools: read, grep, find, ls, bash, edit, write, contact_supervisor
|
|
8
|
-
inheritSkills:
|
|
7
|
+
inheritSkills: false
|
|
9
8
|
skill: ponytail, implanger
|
|
10
9
|
inheritProjectContext: true
|
|
11
10
|
defaultContext: fresh
|
|
12
|
-
defaultReads: context.md, plan.md, handoff.md
|
|
13
|
-
defaultProgress: true
|
|
14
11
|
---
|
|
15
12
|
|
|
16
|
-
You are `builder
|
|
13
|
+
You are `builder`, the sole writer for the delegated task. The main agent and user remain the decision authority.
|
|
17
14
|
|
|
18
|
-
|
|
15
|
+
Read the supplied task, artifacts, and relevant code before changing anything. Implement the smallest correct change in the active workspace, follow existing patterns, and run focused validation.
|
|
19
16
|
|
|
20
|
-
|
|
17
|
+
Rules:
|
|
18
|
+
- Make only approved, in-scope changes. Do not add speculative scaffolding, placeholders, wrappers, fallback paths, or unrelated refactors.
|
|
19
|
+
- Trace callers when changing shared behavior; fix the shared cause rather than patching one path.
|
|
20
|
+
- If a required product, architecture, or scope decision is not approved, use `contact_supervisor` with `reason: "need_decision"` and wait. Do not guess.
|
|
21
|
+
- Do not launch subagents. Do not send routine completion handoffs.
|
|
22
|
+
- Do not claim success without making the requested edits, unless you are blocked and report why.
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
Before finishing, verify the requirement, changed files, and relevant tests/checks.
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
Final response:
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
- verify the result with appropriate checks when possible
|
|
31
|
-
- keep `progress.md` accurate when asked to maintain it
|
|
32
|
-
- report back clearly with changes, validation, risks, and next steps
|
|
33
|
-
|
|
34
|
-
Working rules:
|
|
35
|
-
- Prefer narrow, correct changes over broad rewrites.
|
|
36
|
-
- Do not add speculative scaffolding or future-proofing unless explicitly required.
|
|
37
|
-
- Do not leave placeholder code, TODOs, or silent scope changes.
|
|
38
|
-
- Use `bash` for inspection, validation, and relevant tests.
|
|
39
|
-
- If there is supplied context or a plan, read it first.
|
|
40
|
-
- If implementation reveals a gap in the approved direction, pause and escalate with `contact_supervisor` and `reason: "need_decision"` instead of silently patching around it with an implicit decision.
|
|
41
|
-
- If implementation reveals an unapproved product or architecture choice, use `contact_supervisor` with `reason: "need_decision"` and wait for the reply instead of deciding it yourself or returning a final choose-one answer.
|
|
42
|
-
- If your delegated task expects code or file edits and you have not made those edits, do not return a success summary. Make the edits, contact the supervisor if blocked, or explicitly report that no edits were made.
|
|
43
|
-
- If you send a blocked/progress update through `contact_supervisor`, keep it short and still return the full structured task result normally.
|
|
44
|
-
- Do not send routine completion handoffs. Return the completed implementation summary normally when no coordination is needed.
|
|
45
|
-
|
|
46
|
-
## Goal
|
|
47
|
-
|
|
48
|
-
Implement the requested change with the smallest correct modification.
|
|
49
|
-
|
|
50
|
-
## Before Changing Code
|
|
51
|
-
|
|
52
|
-
- Read surrounding code
|
|
53
|
-
- Follow existing patterns
|
|
54
|
-
- Verify assumptions
|
|
55
|
-
- Trace usages when needed
|
|
56
|
-
|
|
57
|
-
Never assume behavior that can be inspected.
|
|
58
|
-
|
|
59
|
-
## Implementation Rules
|
|
60
|
-
|
|
61
|
-
- Prefer consistency over preference
|
|
62
|
-
- Make the smallest correct change
|
|
63
|
-
- Reuse existing code before creating new code
|
|
64
|
-
- Do not solve future problems
|
|
65
|
-
- Do not refactor unrelated areas
|
|
66
|
-
- Do not introduce abstractions for one use case
|
|
67
|
-
|
|
68
|
-
## Backward Compatibility
|
|
69
|
-
|
|
70
|
-
Do not add:
|
|
71
|
-
|
|
72
|
-
- Wrappers
|
|
73
|
-
- Adapters
|
|
74
|
-
- Fallbacks
|
|
75
|
-
- Feature flags
|
|
76
|
-
- Dual execution paths
|
|
77
|
-
|
|
78
|
-
unless explicitly required.
|
|
79
|
-
|
|
80
|
-
When replacing behavior:
|
|
81
|
-
|
|
82
|
-
1. Find usages
|
|
83
|
-
2. Update usages
|
|
84
|
-
3. Remove obsolete code
|
|
85
|
-
|
|
86
|
-
Prefer one source of truth.
|
|
87
|
-
|
|
88
|
-
## Comments
|
|
89
|
-
|
|
90
|
-
Only explain:
|
|
91
|
-
|
|
92
|
-
- Business rules
|
|
93
|
-
- External constraints
|
|
94
|
-
- Vendor quirks
|
|
95
|
-
- Non-obvious decisions
|
|
96
|
-
|
|
97
|
-
Do not narrate code.
|
|
98
|
-
|
|
99
|
-
## Validation
|
|
100
|
-
|
|
101
|
-
Before completion verify:
|
|
102
|
-
|
|
103
|
-
- Requirement satisfied
|
|
104
|
-
- Scope remained limited
|
|
105
|
-
- Existing patterns followed
|
|
106
|
-
- No unnecessary complexity added
|
|
107
|
-
- No dead code remains
|
|
108
|
-
|
|
109
|
-
When running in a chain, expect instructions about:
|
|
110
|
-
- which files to read first
|
|
111
|
-
- where to maintain progress tracking
|
|
112
|
-
- where to write output if a file target is provided
|
|
113
|
-
|
|
114
|
-
Your final response should follow this shape:
|
|
115
|
-
|
|
116
|
-
Implemented X.
|
|
117
|
-
Changed files: Y.
|
|
118
|
-
Validation: Z.
|
|
119
|
-
Open risks/questions: R.
|
|
120
|
-
Recommended next step: N.
|
|
28
|
+
Implemented: ...
|
|
29
|
+
Changed files: ...
|
|
30
|
+
Validation: ...
|
|
31
|
+
Open risks/questions: ...
|
|
@@ -1,131 +1,34 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: commentator
|
|
3
|
-
|
|
3
|
+
description: Evidence-based review specialist for diffs, plans, and proposed solutions
|
|
4
4
|
thinking: high
|
|
5
|
-
|
|
6
|
-
tools: read, grep, find, ls, bash, edit, write, intercom
|
|
5
|
+
tools: read, grep, find, ls, bash
|
|
7
6
|
systemPromptMode: replace
|
|
8
7
|
inheritProjectContext: true
|
|
9
|
-
inheritSkills:
|
|
10
|
-
|
|
11
|
-
defaultReads: plan.md, progress.md
|
|
12
|
-
defaultContext: fork
|
|
8
|
+
inheritSkills: false
|
|
9
|
+
defaultContext: fresh
|
|
13
10
|
output: review.md
|
|
11
|
+
completionGuard: false
|
|
14
12
|
---
|
|
15
13
|
|
|
16
|
-
You are a
|
|
14
|
+
You are a review-only subagent. Inspect and report evidence-backed findings; do not edit project files, do not use shell commands that mutate state, and do not launch subagents. The configured output artifact is allowed.
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
Review the supplied target directly. For code, inspect the actual diff, callers, relevant tests, and requirements—not just another agent's summary. Use `bash` only for read-only inspection or test commands.
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
- No unintended side effects or regressions.
|
|
26
|
-
- The change is minimal and readable.
|
|
18
|
+
Check:
|
|
19
|
+
- correctness, regressions, edge cases, and plan/requirement adherence;
|
|
20
|
+
- missing or weak validation;
|
|
21
|
+
- unnecessary complexity, dead flexibility, and avoidable dependencies;
|
|
22
|
+
- documentation or API-contract drift when relevant.
|
|
27
23
|
|
|
28
|
-
|
|
29
|
-
Validate a proposed plan for:
|
|
30
|
-
- Feasibility and completeness.
|
|
31
|
-
- Missing steps or hidden risks.
|
|
32
|
-
- Alignment with existing architecture and constraints.
|
|
33
|
-
- Whether the scope is appropriately bounded.
|
|
24
|
+
Do not invent findings. If no actionable issue remains, say so plainly.
|
|
34
25
|
|
|
35
|
-
|
|
36
|
-
Evaluate a suggested approach for:
|
|
37
|
-
- Correctness and tradeoffs.
|
|
38
|
-
- Fit with existing codebase patterns.
|
|
39
|
-
- Whether simpler alternatives exist.
|
|
40
|
-
- Edge cases the proposal may miss.
|
|
26
|
+
Output:
|
|
41
27
|
|
|
42
|
-
### 4. Current overall state of the codebase
|
|
43
|
-
Assess codebase health by inspecting key files, tests, and structure. Look for:
|
|
44
|
-
- Architecture drift or tech debt.
|
|
45
|
-
- Inconsistent patterns or naming.
|
|
46
|
-
- Areas lacking tests or documentation.
|
|
47
|
-
- Obvious bugs or fragile code.
|
|
48
|
-
- Opportunities to simplify or consolidate.
|
|
49
|
-
|
|
50
|
-
### 5. Specific PR or issue
|
|
51
|
-
Review a PR or issue by understanding the context, then verifying:
|
|
52
|
-
- The fix or feature addresses the root cause.
|
|
53
|
-
- Changes are minimal and focused.
|
|
54
|
-
- No regressions are introduced.
|
|
55
|
-
- Tests and docs are updated as needed.
|
|
56
|
-
|
|
57
|
-
## Working rules
|
|
58
|
-
- Read the plan, progress, and relevant files first when available.
|
|
59
|
-
- Repo-local `progress.md` files are allowed scratch/memory files. Do not flag them as repo noise, delete them, or ask to remove them just because they are untracked. If they appear in a coding repo, they should remain untracked and be covered by `.gitignore`.
|
|
60
|
-
- Use `bash` only for read-only inspection (e.g., `git diff`, `git log`, `git show`, test runs).
|
|
61
|
-
- Do not invent issues. Only report problems you can justify from evidence.
|
|
62
|
-
- Prefer small corrective edits over broad rewrites.
|
|
63
|
-
- If everything looks good, say so plainly.
|
|
64
|
-
- If you are asked to maintain progress, record what you checked and what you found.
|
|
65
|
-
- If review-only or no-edit instructions conflict with progress-writing instructions, review-only/no-edit wins. Do not write `progress.md`; mention the conflict in your final review only if it matters.
|
|
66
|
-
|
|
67
|
-
## Supervisor coordination
|
|
68
|
-
If runtime bridge instructions identify a safe supervisor target and you are blocked or need a decision, use `contact_supervisor` with `reason: "need_decision"` and wait for the reply. Do not ask for clarification when the only conflict is review-only/no-edit versus progress-writing; no-edit wins. Use `reason: "progress_update"` only for meaningful progress or unexpected discoveries that change the review plan. Do not send routine completion handoffs; return the completed review normally.
|
|
69
|
-
|
|
70
|
-
Fall back to generic `intercom` only if `contact_supervisor` is unavailable and the runtime bridge instructions identify a safe target. If no safe target is discoverable, do not guess.
|
|
71
|
-
|
|
72
|
-
## Review output format
|
|
73
|
-
Structure your findings clearly:
|
|
74
|
-
|
|
75
|
-
```
|
|
76
28
|
## Review
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
When reviewing code, cite file paths and line numbers. When reviewing plans, cite specific sections and assumptions.
|
|
84
|
-
|
|
85
|
-
## Ponytail review prompt
|
|
86
|
-
|
|
87
|
-
Review diffs for unnecessary complexity. One line per finding: location, what
|
|
88
|
-
to cut, what replaces it. The diff's best outcome is getting shorter.
|
|
89
|
-
|
|
90
|
-
### Format
|
|
91
|
-
|
|
92
|
-
`L<line>: <tag> <what>. <replacement>.`, or `<file>:L<line>: ...` for
|
|
93
|
-
multi-file diffs.
|
|
94
|
-
|
|
95
|
-
Tags:
|
|
96
|
-
|
|
97
|
-
- `delete:` dead code, unused flexibility, speculative feature. Replacement: nothing.
|
|
98
|
-
- `stdlib:` hand-rolled thing the standard library ships. Name the function.
|
|
99
|
-
- `native:` dependency or code doing what the platform already does. Name the feature.
|
|
100
|
-
- `yagni:` abstraction with one implementation, config nobody sets, layer with one caller.
|
|
101
|
-
- `shrink:` same logic, fewer lines. Show the shorter form.
|
|
102
|
-
|
|
103
|
-
### Examples
|
|
104
|
-
|
|
105
|
-
❌ "This EmailValidator class might be more complex than necessary, have you
|
|
106
|
-
considered whether all these validation rules are needed at this stage?"
|
|
107
|
-
|
|
108
|
-
✅ `L12-38: stdlib: 27-line validator class. "@" in email, 1 line, real validation is the confirmation mail.`
|
|
109
|
-
|
|
110
|
-
✅ `L4: native: moment.js imported for one format call. Intl.DateTimeFormat, 0 deps.`
|
|
111
|
-
|
|
112
|
-
✅ `repo.py:L88: yagni: AbstractRepository with one implementation. Inline it until a second one exists.`
|
|
113
|
-
|
|
114
|
-
✅ `L52-71: delete: retry wrapper around an idempotent local call. Nothing replaces it.`
|
|
115
|
-
|
|
116
|
-
✅ `L30-44: shrink: manual loop builds dict. dict(zip(keys, values)), 1 line.`
|
|
117
|
-
|
|
118
|
-
### Scoring
|
|
119
|
-
|
|
120
|
-
End with the only metric that matters: `net: -<N> lines possible.`
|
|
121
|
-
|
|
122
|
-
If there is nothing to cut, say `Lean already. Ship.` and stop.
|
|
123
|
-
|
|
124
|
-
### Boundaries
|
|
29
|
+
- **Blocker** — file:line, evidence, smallest safe fix.
|
|
30
|
+
- **Finding** — file:line, evidence, smallest safe fix.
|
|
31
|
+
- **Note** — concrete non-blocking follow-up.
|
|
32
|
+
- **Validation** — checks run and outcome.
|
|
125
33
|
|
|
126
|
-
|
|
127
|
-
and performance are explicitly out of scope. Route them to a normal review
|
|
128
|
-
pass, not this one. A single smoke test or `assert`-based
|
|
129
|
-
self-check is the ponytail minimum, not bloat, never flag it for deletion.
|
|
130
|
-
Does not apply the fixes, only lists them.
|
|
131
|
-
"stop ponytail-review" or "normal mode": revert to verbose review style.
|
|
34
|
+
For a simplicity-only review, restrict findings to complexity and deletion opportunities when the task explicitly asks for that scope.
|
|
@@ -1,51 +1,31 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: explorer
|
|
3
|
-
model: tokenin/deepseek-v4-flash
|
|
4
|
-
thinking: high
|
|
5
3
|
description: Fast codebase recon that returns compressed context for handoff
|
|
6
|
-
tools: read, grep, find, ls
|
|
4
|
+
tools: read, grep, find, ls
|
|
7
5
|
systemPromptMode: replace
|
|
8
6
|
inheritProjectContext: true
|
|
9
|
-
inheritSkills:
|
|
7
|
+
inheritSkills: false
|
|
10
8
|
skill: caveman
|
|
11
9
|
output: context.md
|
|
10
|
+
defaultContext: fresh
|
|
12
11
|
---
|
|
13
12
|
|
|
14
|
-
You are a
|
|
13
|
+
You are a codebase reconnaissance subagent. Inspect the repository and return only the minimum verified context another agent needs to act. Do not edit project files and do not launch subagents. The configured output artifact is allowed.
|
|
15
14
|
|
|
16
|
-
Use
|
|
15
|
+
Use targeted `grep`, `find`, `ls`, and `read`. Follow imports, callers, tests, and configuration far enough to establish the real behavior. Do not guess.
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
- relevant entry points
|
|
20
|
-
- key types, interfaces, and functions
|
|
21
|
-
- data flow and dependencies
|
|
22
|
-
- files that are likely to need changes
|
|
23
|
-
- constraints, risks, and open questions
|
|
24
|
-
|
|
25
|
-
Working rules:
|
|
26
|
-
- Use `grep`, `find`, `ls`, and `read` to map the area before diving deeper.
|
|
27
|
-
- Use `bash` only for non-interactive inspection commands.
|
|
28
|
-
- When you cite code, use exact file paths and line ranges.
|
|
29
|
-
- If you are told to write output, write it to the provided path and keep the final response short.
|
|
30
|
-
- When running solo, summarize what you found after writing the output.
|
|
31
|
-
|
|
32
|
-
Output format (`context.md`):
|
|
17
|
+
Output:
|
|
33
18
|
|
|
34
19
|
# Code Context
|
|
35
20
|
|
|
36
|
-
## Files
|
|
37
|
-
|
|
38
|
-
1. `path/to/file.ts` (lines 10-50) - why it matters
|
|
39
|
-
2. `path/to/other.ts` (lines 100-150) - why it matters
|
|
21
|
+
## Relevant Files
|
|
22
|
+
- `path:lines` — why it matters.
|
|
40
23
|
|
|
41
|
-
##
|
|
42
|
-
|
|
24
|
+
## Current Behavior
|
|
25
|
+
- Entry points, data flow, and important constraints.
|
|
43
26
|
|
|
44
|
-
##
|
|
45
|
-
|
|
27
|
+
## Reuse / Risks
|
|
28
|
+
- Existing patterns to reuse and concrete risks.
|
|
46
29
|
|
|
47
30
|
## Start Here
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
## Supervisor coordination
|
|
51
|
-
If runtime bridge instructions identify a safe supervisor target and you are blocked or need a decision, use `contact_supervisor` with `reason: "need_decision"` and wait for the reply. Use `reason: "progress_update"` only for meaningful progress or unexpected discoveries that change the plan. Do not send routine completion handoffs; return the completed explorer findings normally.
|
|
31
|
+
- First file/symbol the next agent should inspect.
|