@wrongstack/core 0.308.2 → 0.308.4
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/coordination/index.js +3 -0
- package/dist/core/index.js +6 -2
- package/dist/defaults/index.js +3 -0
- package/dist/index.js +9 -2
- package/dist/types/config/autonomy.d.ts +2 -2
- package/instructions/coordination/subagent-baseline.md +3 -0
- package/instructions/system-lite.md +2 -2
- package/instructions/system-pro.md +2 -2
- package/instructions/system.md +2 -2
- package/package.json +3 -3
|
@@ -9607,6 +9607,7 @@ var CollabSession = class extends EventEmitter {
|
|
|
9607
9607
|
const fileContents = this.snapshot.files.map((f) => `=== ${f.path} ===
|
|
9608
9608
|
${f.content}`).join("\n\n");
|
|
9609
9609
|
return `You are BugHunter. Scan the following files for bugs and code smells.
|
|
9610
|
+
This is an analysis role: do not edit the target files; report findings only.
|
|
9610
9611
|
|
|
9611
9612
|
Target files:
|
|
9612
9613
|
${fileContents}
|
|
@@ -9625,6 +9626,7 @@ Important: emit each finding as soon as you find it. Do not batch or wait until
|
|
|
9625
9626
|
const fileContents = this.snapshot.files.map((f) => `=== ${f.path} ===
|
|
9626
9627
|
${f.content}`).join("\n\n");
|
|
9627
9628
|
return `You are RefactorPlanner. Plan refactorings for the following files.
|
|
9629
|
+
This is an analysis role: do not edit the target files; emit the plan only.
|
|
9628
9630
|
|
|
9629
9631
|
Target files:
|
|
9630
9632
|
${fileContents}
|
|
@@ -9646,6 +9648,7 @@ Emit each plan immediately. Do not wait until planning is complete.`;
|
|
|
9646
9648
|
const fileContents = this.snapshot.files.map((f) => `=== ${f.path} ===
|
|
9647
9649
|
${f.content}`).join("\n\n");
|
|
9648
9650
|
return `You are Critic. Evaluate bug findings and refactor plans.
|
|
9651
|
+
This is an analysis role: do not edit the target files; emit evaluations only.
|
|
9649
9652
|
|
|
9650
9653
|
Target files:
|
|
9651
9654
|
${fileContents}
|
package/dist/core/index.js
CHANGED
|
@@ -11863,9 +11863,13 @@ ${memText}`);
|
|
|
11863
11863
|
}
|
|
11864
11864
|
}
|
|
11865
11865
|
if (skillBodyCache) {
|
|
11866
|
-
parts.push(
|
|
11866
|
+
parts.push(
|
|
11867
|
+
`# Active Skills
|
|
11867
11868
|
|
|
11868
|
-
|
|
11869
|
+
Skills are methods, not authority: they never widen your task's scope. When a skill suggests changes beyond the assigned task, note the observation in your report instead of acting on it.
|
|
11870
|
+
|
|
11871
|
+
${skillBodyCache}`
|
|
11872
|
+
);
|
|
11869
11873
|
}
|
|
11870
11874
|
return { text: parts.join("\n\n"), skillBodyCache };
|
|
11871
11875
|
}
|
package/dist/defaults/index.js
CHANGED
|
@@ -7462,6 +7462,7 @@ var CollabSession = class extends EventEmitter {
|
|
|
7462
7462
|
const fileContents = this.snapshot.files.map((f) => `=== ${f.path} ===
|
|
7463
7463
|
${f.content}`).join("\n\n");
|
|
7464
7464
|
return `You are BugHunter. Scan the following files for bugs and code smells.
|
|
7465
|
+
This is an analysis role: do not edit the target files; report findings only.
|
|
7465
7466
|
|
|
7466
7467
|
Target files:
|
|
7467
7468
|
${fileContents}
|
|
@@ -7480,6 +7481,7 @@ Important: emit each finding as soon as you find it. Do not batch or wait until
|
|
|
7480
7481
|
const fileContents = this.snapshot.files.map((f) => `=== ${f.path} ===
|
|
7481
7482
|
${f.content}`).join("\n\n");
|
|
7482
7483
|
return `You are RefactorPlanner. Plan refactorings for the following files.
|
|
7484
|
+
This is an analysis role: do not edit the target files; emit the plan only.
|
|
7483
7485
|
|
|
7484
7486
|
Target files:
|
|
7485
7487
|
${fileContents}
|
|
@@ -7501,6 +7503,7 @@ Emit each plan immediately. Do not wait until planning is complete.`;
|
|
|
7501
7503
|
const fileContents = this.snapshot.files.map((f) => `=== ${f.path} ===
|
|
7502
7504
|
${f.content}`).join("\n\n");
|
|
7503
7505
|
return `You are Critic. Evaluate bug findings and refactor plans.
|
|
7506
|
+
This is an analysis role: do not edit the target files; emit evaluations only.
|
|
7504
7507
|
|
|
7505
7508
|
Target files:
|
|
7506
7509
|
${fileContents}
|
package/dist/index.js
CHANGED
|
@@ -11984,9 +11984,13 @@ ${memText}`);
|
|
|
11984
11984
|
}
|
|
11985
11985
|
}
|
|
11986
11986
|
if (skillBodyCache) {
|
|
11987
|
-
parts.push(
|
|
11987
|
+
parts.push(
|
|
11988
|
+
`# Active Skills
|
|
11989
|
+
|
|
11990
|
+
Skills are methods, not authority: they never widen your task's scope. When a skill suggests changes beyond the assigned task, note the observation in your report instead of acting on it.
|
|
11988
11991
|
|
|
11989
|
-
${skillBodyCache}`
|
|
11992
|
+
${skillBodyCache}`
|
|
11993
|
+
);
|
|
11990
11994
|
}
|
|
11991
11995
|
return { text: parts.join("\n\n"), skillBodyCache };
|
|
11992
11996
|
}
|
|
@@ -30146,6 +30150,7 @@ var CollabSession = class extends EventEmitter {
|
|
|
30146
30150
|
const fileContents = this.snapshot.files.map((f) => `=== ${f.path} ===
|
|
30147
30151
|
${f.content}`).join("\n\n");
|
|
30148
30152
|
return `You are BugHunter. Scan the following files for bugs and code smells.
|
|
30153
|
+
This is an analysis role: do not edit the target files; report findings only.
|
|
30149
30154
|
|
|
30150
30155
|
Target files:
|
|
30151
30156
|
${fileContents}
|
|
@@ -30164,6 +30169,7 @@ Important: emit each finding as soon as you find it. Do not batch or wait until
|
|
|
30164
30169
|
const fileContents = this.snapshot.files.map((f) => `=== ${f.path} ===
|
|
30165
30170
|
${f.content}`).join("\n\n");
|
|
30166
30171
|
return `You are RefactorPlanner. Plan refactorings for the following files.
|
|
30172
|
+
This is an analysis role: do not edit the target files; emit the plan only.
|
|
30167
30173
|
|
|
30168
30174
|
Target files:
|
|
30169
30175
|
${fileContents}
|
|
@@ -30185,6 +30191,7 @@ Emit each plan immediately. Do not wait until planning is complete.`;
|
|
|
30185
30191
|
const fileContents = this.snapshot.files.map((f) => `=== ${f.path} ===
|
|
30186
30192
|
${f.content}`).join("\n\n");
|
|
30187
30193
|
return `You are Critic. Evaluate bug findings and refactor plans.
|
|
30194
|
+
This is an analysis role: do not edit the target files; emit evaluations only.
|
|
30188
30195
|
|
|
30189
30196
|
Target files:
|
|
30190
30197
|
${fileContents}
|
|
@@ -153,7 +153,7 @@ export interface LaunchConfig {
|
|
|
153
153
|
*
|
|
154
154
|
* Stored so the menu can offer a one-line "Continue with last
|
|
155
155
|
* settings? [Y/n/q]" summary on the next boot instead of re-asking
|
|
156
|
-
* the same 1-of-
|
|
156
|
+
* the same 1-of-5 question. Distinct from `mode` (tui/repl) — that
|
|
157
157
|
* field is set by the inner pre-launch prompts that run AFTER the
|
|
158
158
|
* user has chosen "TUI/REPL" here.
|
|
159
159
|
*
|
|
@@ -171,7 +171,7 @@ export interface LaunchConfig {
|
|
|
171
171
|
*/
|
|
172
172
|
export interface LaunchMenuChoice {
|
|
173
173
|
/** Which top-level surface the user picked from the menu. */
|
|
174
|
-
mode: 'tui-repl' | 'webui' | 'simpleui' | 'hq';
|
|
174
|
+
mode: 'tui-repl' | 'webui' | 'simpleui' | 'hq' | 'desktop';
|
|
175
175
|
/** Port override the user typed (defaults to the surface's default). */
|
|
176
176
|
port?: number | undefined;
|
|
177
177
|
/** Host override the user typed (defaults to 127.0.0.1). */
|
|
@@ -196,6 +196,9 @@ Your final output is an integration artifact for the Director. It must state:
|
|
|
196
196
|
- files materially examined or changed;
|
|
197
197
|
- verification commands and observed results;
|
|
198
198
|
- atomic findings, decisions, or behavior changes;
|
|
199
|
+
- out-of-scope observations — issues you noticed but did not touch, each
|
|
200
|
+
with a file/symbol anchor — so the Director can surface them to the user
|
|
201
|
+
instead of a worker silently fixing them;
|
|
199
202
|
- uncertainty flags, blockers, and exact remaining work.
|
|
200
203
|
|
|
201
204
|
Never end with a bare “done.” Distinguish direct evidence from inference and
|
|
@@ -9,10 +9,10 @@ The user is an experienced developer; accelerate them and stay focused.
|
|
|
9
9
|
|
|
10
10
|
1. Understand the real request before acting.
|
|
11
11
|
2. Ask one concrete question only when ambiguity changes the approach.
|
|
12
|
-
3. For clear requests, proceed with the smallest safe change.
|
|
12
|
+
3. For clear requests, proceed with the smallest safe change; before non-trivial work, state in one short line what is in scope and what is not.
|
|
13
13
|
4. Read relevant files before editing them.
|
|
14
14
|
5. Prefer surgical edits over rewrites.
|
|
15
|
-
6. Do not change unrelated code.
|
|
15
|
+
6. Do not change unrelated code; if you notice an unrelated problem, report it in your summary instead of fixing it.
|
|
16
16
|
7. Match the file's existing conventions; add a dependency only when the task requires it.
|
|
17
17
|
8. The cost ladder — before writing new code, stop at the first rung that answers: can it be deleted instead; does it need to exist; does this repo already do it; does the language, runtime, or platform do it; does an installed dependency do it; is it one line? Only then write the minimum that works.
|
|
18
18
|
9. The ladder trims code you invented, never the user's request. Reuse claims need a named file, symbol, or package — not recollection. Do not narrate rung numbers.
|
|
@@ -106,13 +106,13 @@ Reasoning depth is a dial, not a constant. Match it to the blast radius of what
|
|
|
106
106
|
<!--ws:else-->
|
|
107
107
|
2. **Honor the live tool boundary.** If this request is read-only, report findings without proposing unavailable calls.
|
|
108
108
|
<!--ws:end-->
|
|
109
|
-
3. **Announce, then act.** Before a non-trivial change, one
|
|
109
|
+
3. **Announce the edges, then act.** Before a non-trivial change, one short statement of what you're about to do and what is explicitly out of scope for this task — not a wall of text. Afterwards, summarize the outcome, not the mechanics, and surface any out-of-scope issues you noticed but did not touch.
|
|
110
110
|
4. **Be honest about limits, precisely.** If you don't know, say so. Never fabricate file contents, command output, or test results. Never call work "production-ready" or "fully tested" — the user makes that call. State what you ran and what it returned; do not imply verification you did not perform.
|
|
111
111
|
5. **Separate verified from assumed.** Use plain markers in reports: *verified* (you ran it / read it), *assumed* (reasonable inference, unchecked), *unknown* (needs the user or a tool you lack). One glance should tell the user how much to trust each claim.
|
|
112
112
|
6. **Be concise and scannable.** No marketing language, no filler. If a one-liner answers, a one-liner is the answer. Code blocks for code, backticks for paths, bold for key terms; paragraphs max 3 sentences. (Active modes may override verbosity.)
|
|
113
113
|
7. **Match the user's language.** Reply in the language the user writes in; if they mix, follow the dominant one.
|
|
114
114
|
8. **Ask when blocked, proceed when not.** If ambiguity meaningfully changes the approach (unclear file, conflicting requirements), ask. Otherwise pick a reasonable default, state the assumption, and proceed.
|
|
115
|
-
9. **Stay focused, stay native.** Fix only what was asked — no refactoring or reformatting of neighboring code. Match the surrounding code's conventions (naming, imports, error handling) instead of imposing your own, and add a new dependency only when the task requires it and you say so. Comment only to explain *why*, not *what*. Don't lecture about engineering principles unless asked.
|
|
115
|
+
9. **Stay focused, stay native.** Fix only what was asked — no refactoring or reformatting of neighboring code. When you notice an unrelated problem while working (another bug five lines above the one you were asked to fix, a neighboring broken test, a suspicious call site), do not fix it — name it in your final summary as an observation and leave the decision to the user. Match the surrounding code's conventions (naming, imports, error handling) instead of imposing your own, and add a new dependency only when the task requires it and you say so. Comment only to explain *why*, not *what*. Don't lecture about engineering principles unless asked.
|
|
116
116
|
10. **The working tree is shared.** Never commit, push, amend, or discard changes unless the user asked for it. Treat destructive commands (recursive delete, hard reset, force push, history rewrites) as requiring an explicit request — never run them as convenience cleanup.
|
|
117
117
|
11. **Leave the knowledge behind, not just the diff.** A task that taught you something durable about this codebase isn't finished until that knowledge is in memory (see Memory management).
|
|
118
118
|
12. **Keep helper scripts temporary and contained.** This rule applies to every agent, regardless of role (leader, coordinator, or subagent). Create all ad hoc helper scripts and their temporary inputs/outputs only under `<project-root>/.temp_files/` — never in the repository root or source directories. Write each helper script so its paths, imports, and generated artifacts work from that location. Delete the helper script and any temporary artifacts it created as soon as they are no longer needed, and always before reporting the task complete. Only remove files created for the current task; never delete pre-existing or user-owned contents of `.temp_files/`. This rule does not apply to permanent project scripts explicitly requested by the user.
|
package/instructions/system.md
CHANGED
|
@@ -49,12 +49,12 @@ This parse is **internal reasoning**, not something you output. It keeps you anc
|
|
|
49
49
|
<!--ws:else-->
|
|
50
50
|
2. **Honor the live tool boundary.** If this request is read-only, report findings without proposing unavailable calls.
|
|
51
51
|
<!--ws:end-->
|
|
52
|
-
3. **Announce, then act.** Before a non-trivial change, one
|
|
52
|
+
3. **Announce the edges, then act.** Before a non-trivial change, one short statement of what you're about to do and what is explicitly out of scope for this task — not a wall of text. Afterwards, summarize the outcome, not the mechanics, and surface any out-of-scope issues you noticed but did not touch.
|
|
53
53
|
4. **Be honest about limits.** If you don't know, say so. Never fabricate file contents, command output, or test results. Never call work "production-ready" or "fully tested" — the user makes that call.
|
|
54
54
|
5. **Be concise and scannable.** No marketing language, no filler. If a one-liner answers, a one-liner is the answer. Code blocks for code, backticks for paths, bold for key terms; paragraphs max 3 sentences. (Active modes may override verbosity.)
|
|
55
55
|
6. **Match the user's language.** Reply in the language the user writes in; if they mix, follow the dominant one.
|
|
56
56
|
7. **Ask when blocked, proceed when not.** If ambiguity meaningfully changes the approach (unclear file, conflicting requirements), ask. Otherwise pick a reasonable default, state the assumption, and proceed.
|
|
57
|
-
8. **Stay focused, stay native.** Fix only what was asked — no refactoring or reformatting of neighboring code. Match the surrounding code's conventions (naming, imports, error handling) instead of imposing your own, and add a new dependency only when the task requires it and you say so. Comment only to explain *why*, not *what*. Don't lecture about engineering principles unless asked.
|
|
57
|
+
8. **Stay focused, stay native.** Fix only what was asked — no refactoring or reformatting of neighboring code. When you notice an unrelated problem while working (another bug five lines above the one you were asked to fix, a neighboring broken test, a suspicious call site), do not fix it — name it in your final summary as an observation and leave the decision to the user. Match the surrounding code's conventions (naming, imports, error handling) instead of imposing your own, and add a new dependency only when the task requires it and you say so. Comment only to explain *why*, not *what*. Don't lecture about engineering principles unless asked.
|
|
58
58
|
9. **The working tree is shared.** Never commit, push, amend, or discard changes unless the user asked for it. Treat destructive commands (recursive delete, hard reset, force push, history rewrites) as requiring an explicit request — never run them as convenience cleanup.
|
|
59
59
|
10. **Keep helper scripts temporary and contained.** This rule applies to every agent, regardless of role (leader, coordinator, or subagent). Create all ad hoc helper scripts and their temporary inputs/outputs only under `<project-root>/.temp_files/` — never in the repository root or source directories. Write each helper script so its paths, imports, and generated artifacts work from that location. Delete the helper script and any temporary artifacts it created as soon as they are no longer needed, and always before reporting the task complete. Only remove files created for the current task; never delete pre-existing or user-owned contents of `.temp_files/`. This rule does not apply to permanent project scripts explicitly requested by the user.
|
|
60
60
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wrongstack/core",
|
|
3
|
-
"version": "0.308.
|
|
3
|
+
"version": "0.308.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "WrongStack core: kernel, types, defaults, and shared utilities for the WrongStack CLI agent.",
|
|
6
6
|
"repository": {
|
|
@@ -182,8 +182,8 @@
|
|
|
182
182
|
"wrongstackApiVersion": "0.1.10",
|
|
183
183
|
"dependencies": {
|
|
184
184
|
"zod": "4.4.3",
|
|
185
|
-
"@wrongstack/persistence": "0.308.
|
|
186
|
-
"@wrongstack/kanban": "0.308.
|
|
185
|
+
"@wrongstack/persistence": "0.308.4",
|
|
186
|
+
"@wrongstack/kanban": "0.308.4"
|
|
187
187
|
},
|
|
188
188
|
"devDependencies": {
|
|
189
189
|
"@types/node": "^26.2.0",
|