gsd-pi 2.78.1-dev.eccf86e27 → 2.79.0-dev.579e14e9b
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 +94 -47
- package/dist/resources/.managed-resources-content-hash +1 -1
- package/dist/resources/extensions/gsd/auto-prompts.js +52 -29
- package/dist/resources/extensions/gsd/auto-recovery.js +18 -3
- package/dist/resources/extensions/gsd/bootstrap/exec-tools.js +2 -2
- package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +33 -37
- package/dist/resources/extensions/gsd/commands/context.js +1 -1
- package/dist/resources/extensions/gsd/preferences-types.js +20 -2
- package/dist/resources/extensions/gsd/preferences-validation.js +3 -3
- package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +41 -2
- package/dist/resources/extensions/gsd/unit-context-composer.js +32 -0
- package/dist/resources/extensions/gsd/unit-context-manifest.js +21 -0
- package/dist/tsconfig.extensions.tsbuildinfo +1 -1
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +10 -10
- package/dist/web/standalone/.next/build-manifest.json +2 -2
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- package/dist/web/standalone/.next/required-server-files.json +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +10 -10
- package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/web/standalone/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/.next/server/pages/500.html +1 -1
- package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
- package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
- package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
- package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/LICENSE +191 -0
- package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
- package/dist/web/standalone/server.js +1 -1
- package/package.json +1 -1
- package/packages/daemon/package.json +2 -2
- package/packages/mcp-server/dist/workflow-tools.d.ts +1 -1
- package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
- package/packages/mcp-server/dist/workflow-tools.js +53 -0
- package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
- package/packages/mcp-server/package.json +2 -2
- package/packages/mcp-server/src/workflow-tools.test.ts +116 -0
- package/packages/mcp-server/src/workflow-tools.ts +81 -0
- package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
- package/packages/native/package.json +1 -1
- package/packages/pi-agent-core/package.json +1 -1
- package/packages/pi-ai/package.json +1 -1
- package/packages/pi-coding-agent/package.json +1 -1
- package/packages/pi-tui/package.json +1 -1
- package/packages/rpc-client/package.json +1 -1
- package/pkg/package.json +1 -1
- package/src/resources/extensions/gsd/auto-prompts.ts +106 -28
- package/src/resources/extensions/gsd/auto-recovery.ts +17 -3
- package/src/resources/extensions/gsd/bootstrap/exec-tools.ts +2 -2
- package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +38 -38
- package/src/resources/extensions/gsd/commands/context.ts +1 -1
- package/src/resources/extensions/gsd/preferences-types.ts +23 -4
- package/src/resources/extensions/gsd/preferences-validation.ts +3 -3
- package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +68 -1
- package/src/resources/extensions/gsd/tests/bootstrap-derive-state-db-open.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/current-directory-root-homedir-fallback.test.ts +63 -0
- package/src/resources/extensions/gsd/tests/guided-flow-prompt-consolidation.test.ts +14 -0
- package/src/resources/extensions/gsd/tests/parallel-skill-prompt-integration.test.ts +8 -0
- package/src/resources/extensions/gsd/tests/pre-exec-gate-loop.test.ts +3 -0
- package/src/resources/extensions/gsd/tests/register-hooks-compaction-checkpoint.test.ts +85 -0
- package/src/resources/extensions/gsd/tests/run-uat-composer.test.ts +2 -0
- package/src/resources/extensions/gsd/tests/subagent-model-dispatch.test.ts +59 -0
- package/src/resources/extensions/gsd/tests/unit-context-composer.test.ts +38 -0
- package/src/resources/extensions/gsd/tests/unit-context-manifest.test.ts +32 -0
- package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +100 -0
- package/src/resources/extensions/gsd/tests/worktree-path-injection.test.ts +3 -0
- package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +41 -1
- package/src/resources/extensions/gsd/unit-context-composer.ts +49 -0
- package/src/resources/extensions/gsd/unit-context-manifest.ts +34 -0
- /package/dist/web/standalone/.next/static/{Y5UeGFkXTYM9WIQOWHkot → X6D0ObmOxuQCMG5piZpbE}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{Y5UeGFkXTYM9WIQOWHkot → X6D0ObmOxuQCMG5piZpbE}/_ssgManifest.js +0 -0
|
@@ -3,6 +3,7 @@ import { sanitizeCompleteMilestoneParams } from "../bootstrap/sanitize-complete-
|
|
|
3
3
|
import { loadWriteGateSnapshot, shouldBlockContextArtifactSaveInSnapshot, shouldBlockRootArtifactSaveInSnapshot } from "../bootstrap/write-gate.js";
|
|
4
4
|
import {
|
|
5
5
|
getActiveRequirements,
|
|
6
|
+
insertMilestone,
|
|
6
7
|
getMilestone,
|
|
7
8
|
getSliceStatusSummary,
|
|
8
9
|
getSliceTaskCounts,
|
|
@@ -31,6 +32,7 @@ import { handleValidateMilestone } from "./validate-milestone.js";
|
|
|
31
32
|
import { logError, logWarning } from "../workflow-logger.js";
|
|
32
33
|
import { invalidateStateCache } from "../state.js";
|
|
33
34
|
import { loadEffectiveGSDPreferences } from "../preferences.js";
|
|
35
|
+
import { parseProject } from "../schemas/parsers.js";
|
|
34
36
|
|
|
35
37
|
export const SUPPORTED_SUMMARY_ARTIFACT_TYPES = [
|
|
36
38
|
"SUMMARY",
|
|
@@ -71,6 +73,20 @@ export interface SummarySaveParams {
|
|
|
71
73
|
content: string;
|
|
72
74
|
}
|
|
73
75
|
|
|
76
|
+
function registerProjectMilestoneSequence(content: string): string[] {
|
|
77
|
+
const parsed = parseProject(content);
|
|
78
|
+
const registered: string[] = [];
|
|
79
|
+
for (const milestone of parsed.milestones) {
|
|
80
|
+
insertMilestone({
|
|
81
|
+
id: milestone.id,
|
|
82
|
+
title: milestone.title,
|
|
83
|
+
status: milestone.done ? "complete" : "queued",
|
|
84
|
+
});
|
|
85
|
+
registered.push(milestone.id);
|
|
86
|
+
}
|
|
87
|
+
return registered;
|
|
88
|
+
}
|
|
89
|
+
|
|
74
90
|
export async function executeSummarySave(
|
|
75
91
|
params: SummarySaveParams,
|
|
76
92
|
basePath: string = process.cwd(),
|
|
@@ -173,6 +189,23 @@ export async function executeSummarySave(
|
|
|
173
189
|
basePath,
|
|
174
190
|
);
|
|
175
191
|
|
|
192
|
+
let registeredMilestones: string[] = [];
|
|
193
|
+
let registrationWarning: string | undefined;
|
|
194
|
+
if (params.artifact_type === "PROJECT") {
|
|
195
|
+
try {
|
|
196
|
+
registeredMilestones = registerProjectMilestoneSequence(contentToSave);
|
|
197
|
+
if (registeredMilestones.length > 0) invalidateStateCache();
|
|
198
|
+
} catch (err) {
|
|
199
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
200
|
+
registrationWarning = `PROJECT artifact saved, but milestone registration failed: ${msg}`;
|
|
201
|
+
logWarning("tool", registrationWarning, {
|
|
202
|
+
tool: "gsd_summary_save",
|
|
203
|
+
error: String(err),
|
|
204
|
+
stack: err instanceof Error ? err.stack ?? "" : "",
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
176
209
|
if (params.artifact_type === "CONTEXT" && !params.task_id) {
|
|
177
210
|
try {
|
|
178
211
|
const draftFile = params.slice_id
|
|
@@ -186,7 +219,14 @@ export async function executeSummarySave(
|
|
|
186
219
|
|
|
187
220
|
return {
|
|
188
221
|
content: [{ type: "text", text: `Saved ${params.artifact_type} artifact to ${relativePath}` }],
|
|
189
|
-
details: {
|
|
222
|
+
details: {
|
|
223
|
+
operation: "save_summary",
|
|
224
|
+
path: relativePath,
|
|
225
|
+
artifact_type: params.artifact_type,
|
|
226
|
+
content_source: contentSource,
|
|
227
|
+
...(registeredMilestones.length > 0 ? { registeredMilestones } : {}),
|
|
228
|
+
...(registrationWarning ? { warning: registrationWarning } : {}),
|
|
229
|
+
},
|
|
190
230
|
};
|
|
191
231
|
} catch (err) {
|
|
192
232
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -42,6 +42,7 @@ import {
|
|
|
42
42
|
type BaseResolverContext,
|
|
43
43
|
type ComputedArtifactId,
|
|
44
44
|
type ComputedArtifactRegistry,
|
|
45
|
+
type ContextModePolicy,
|
|
45
46
|
type UnitContextManifest,
|
|
46
47
|
} from "./unit-context-manifest.js";
|
|
47
48
|
|
|
@@ -92,6 +93,54 @@ export function manifestBudgetChars(unitType: string): number | null {
|
|
|
92
93
|
return manifest ? manifest.maxSystemPromptChars : null;
|
|
93
94
|
}
|
|
94
95
|
|
|
96
|
+
// ─── Context Mode lane guidance ──────────────────────────────────────────
|
|
97
|
+
|
|
98
|
+
export type ContextModeRenderMode = "standalone" | "nested";
|
|
99
|
+
|
|
100
|
+
export interface ComposeContextModeInstructionOptions {
|
|
101
|
+
readonly enabled: boolean;
|
|
102
|
+
readonly renderMode: ContextModeRenderMode;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const CONTEXT_MODE_LANE_LABELS: Record<Exclude<ContextModePolicy, "none">, string> = {
|
|
106
|
+
interview: "interview",
|
|
107
|
+
research: "research",
|
|
108
|
+
planning: "planning",
|
|
109
|
+
execution: "execution",
|
|
110
|
+
verification: "verification",
|
|
111
|
+
orchestration: "orchestration",
|
|
112
|
+
docs: "documentation",
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
const CONTEXT_MODE_GUIDANCE =
|
|
116
|
+
"Use `gsd_exec` for noisy scans, builds, and tests so full output stays out of prompt context; call `gsd_exec_search` before repeating prior runs; call `gsd_resume` after compaction or resume to recover stored execution context.";
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Render the Context Mode instruction lane for a unit type. Unknown unit
|
|
120
|
+
* types, disabled config, and explicit `contextMode: "none"` all omit the
|
|
121
|
+
* block so callers can prefix this safely without extra branching.
|
|
122
|
+
*/
|
|
123
|
+
export function composeContextModeInstructions(
|
|
124
|
+
unitType: string,
|
|
125
|
+
opts: ComposeContextModeInstructionOptions,
|
|
126
|
+
): string {
|
|
127
|
+
if (!opts.enabled) return "";
|
|
128
|
+
const manifest = resolveManifest(unitType);
|
|
129
|
+
if (!manifest || manifest.contextMode === "none") return "";
|
|
130
|
+
|
|
131
|
+
const lane = CONTEXT_MODE_LANE_LABELS[manifest.contextMode];
|
|
132
|
+
if (opts.renderMode === "nested") {
|
|
133
|
+
return `Context Mode (${lane} lane): ${CONTEXT_MODE_GUIDANCE}`;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return [
|
|
137
|
+
"## Context Mode",
|
|
138
|
+
"",
|
|
139
|
+
`Lane: **${lane} lane**.`,
|
|
140
|
+
CONTEXT_MODE_GUIDANCE,
|
|
141
|
+
].join("\n");
|
|
142
|
+
}
|
|
143
|
+
|
|
95
144
|
// ─── v2 surface (#4924) ───────────────────────────────────────────────────
|
|
96
145
|
|
|
97
146
|
/**
|
|
@@ -90,6 +90,17 @@ export type MemoryPolicy = "none" | "critical-only" | "prompt-relevant";
|
|
|
90
90
|
/** Preferences block policy. */
|
|
91
91
|
export type PreferencesPolicy = "none" | "active-only" | "full";
|
|
92
92
|
|
|
93
|
+
/** Context Mode lane guidance policy for each auto-mode unit. */
|
|
94
|
+
export type ContextModePolicy =
|
|
95
|
+
| "none"
|
|
96
|
+
| "interview"
|
|
97
|
+
| "research"
|
|
98
|
+
| "planning"
|
|
99
|
+
| "execution"
|
|
100
|
+
| "verification"
|
|
101
|
+
| "orchestration"
|
|
102
|
+
| "docs";
|
|
103
|
+
|
|
93
104
|
/**
|
|
94
105
|
* Tool-access policy per unit type (#4934).
|
|
95
106
|
*
|
|
@@ -220,6 +231,8 @@ export interface UnitContextManifest {
|
|
|
220
231
|
readonly codebaseMap: boolean;
|
|
221
232
|
/** Preferences block policy. */
|
|
222
233
|
readonly preferences: PreferencesPolicy;
|
|
234
|
+
/** Context Mode guidance lane. */
|
|
235
|
+
readonly contextMode: ContextModePolicy;
|
|
223
236
|
/**
|
|
224
237
|
* Tool-access policy (#4934). Runtime enforcement covers path-scoped write
|
|
225
238
|
* blocking, subagent denial, and bash allowlisting for active auto-mode
|
|
@@ -343,6 +356,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
343
356
|
memory: "prompt-relevant",
|
|
344
357
|
codebaseMap: true,
|
|
345
358
|
preferences: "active-only",
|
|
359
|
+
contextMode: "research",
|
|
346
360
|
tools: TOOLS_PLANNING,
|
|
347
361
|
artifacts: {
|
|
348
362
|
// Phase 3 migration (#4782): matches today's actual
|
|
@@ -359,6 +373,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
359
373
|
memory: "prompt-relevant",
|
|
360
374
|
codebaseMap: true,
|
|
361
375
|
preferences: "active-only",
|
|
376
|
+
contextMode: "planning",
|
|
362
377
|
tools: TOOLS_PLANNING,
|
|
363
378
|
artifacts: {
|
|
364
379
|
inline: ["project", "requirements", "decisions", "milestone-research", "templates"],
|
|
@@ -373,6 +388,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
373
388
|
memory: "prompt-relevant",
|
|
374
389
|
codebaseMap: true,
|
|
375
390
|
preferences: "active-only",
|
|
391
|
+
contextMode: "interview",
|
|
376
392
|
tools: TOOLS_PLANNING,
|
|
377
393
|
artifacts: {
|
|
378
394
|
inline: ["project", "requirements", "decisions", "milestone-context", "templates"],
|
|
@@ -387,6 +403,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
387
403
|
memory: "prompt-relevant",
|
|
388
404
|
codebaseMap: false,
|
|
389
405
|
preferences: "active-only",
|
|
406
|
+
contextMode: "verification",
|
|
390
407
|
// planning-dispatch: validation is a verification-fan-out unit. It reads
|
|
391
408
|
// the milestone surface and dispatches reviewer/security/tester subagents
|
|
392
409
|
// to report findings without touching user source. Mirrors
|
|
@@ -405,6 +422,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
405
422
|
memory: "prompt-relevant",
|
|
406
423
|
codebaseMap: false,
|
|
407
424
|
preferences: "active-only",
|
|
425
|
+
contextMode: "verification",
|
|
408
426
|
// planning-dispatch: completion is a high-leverage place to fan out to
|
|
409
427
|
// reviewer / security / tester subagents. They read the diff and report
|
|
410
428
|
// findings; they do not write user source. Write isolation to .gsd/ is
|
|
@@ -428,6 +446,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
428
446
|
memory: "prompt-relevant",
|
|
429
447
|
codebaseMap: true,
|
|
430
448
|
preferences: "active-only",
|
|
449
|
+
contextMode: "research",
|
|
431
450
|
tools: TOOLS_PLANNING,
|
|
432
451
|
artifacts: {
|
|
433
452
|
inline: ["roadmap", "milestone-research", "dependency-summaries", "templates"],
|
|
@@ -442,6 +461,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
442
461
|
memory: "prompt-relevant",
|
|
443
462
|
codebaseMap: true,
|
|
444
463
|
preferences: "active-only",
|
|
464
|
+
contextMode: "planning",
|
|
445
465
|
// planning-dispatch: allows subagent dispatch so the planner can fan out
|
|
446
466
|
// to scout for codebase recon and to planner/decompose-style specialists
|
|
447
467
|
// for sub-decomposition. Write-isolation to .gsd/ is preserved.
|
|
@@ -459,6 +479,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
459
479
|
memory: "prompt-relevant",
|
|
460
480
|
codebaseMap: true,
|
|
461
481
|
preferences: "active-only",
|
|
482
|
+
contextMode: "planning",
|
|
462
483
|
// See plan-slice — same rationale: dispatch to scout/planner-style
|
|
463
484
|
// specialists during refinement is materially better than re-doing recon
|
|
464
485
|
// inline.
|
|
@@ -476,6 +497,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
476
497
|
memory: "prompt-relevant",
|
|
477
498
|
codebaseMap: true,
|
|
478
499
|
preferences: "active-only",
|
|
500
|
+
contextMode: "planning",
|
|
479
501
|
tools: TOOLS_PLANNING,
|
|
480
502
|
artifacts: {
|
|
481
503
|
inline: ["slice-plan", "slice-research", "dependency-summaries", "prior-task-summaries", "templates"],
|
|
@@ -490,6 +512,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
490
512
|
memory: "prompt-relevant",
|
|
491
513
|
codebaseMap: false,
|
|
492
514
|
preferences: "active-only",
|
|
515
|
+
contextMode: "verification",
|
|
493
516
|
// See complete-milestone — same rationale: dispatch to reviewer / security /
|
|
494
517
|
// tester subagents to fan out review work without bloating this unit's
|
|
495
518
|
// context.
|
|
@@ -511,6 +534,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
511
534
|
memory: "critical-only",
|
|
512
535
|
codebaseMap: false,
|
|
513
536
|
preferences: "none",
|
|
537
|
+
contextMode: "planning",
|
|
514
538
|
tools: TOOLS_PLANNING,
|
|
515
539
|
artifacts: {
|
|
516
540
|
// Phase 2 pilot (#4782): manifest now matches today's actual
|
|
@@ -530,6 +554,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
530
554
|
memory: "prompt-relevant",
|
|
531
555
|
codebaseMap: true,
|
|
532
556
|
preferences: "active-only",
|
|
557
|
+
contextMode: "execution",
|
|
533
558
|
tools: TOOLS_ALL,
|
|
534
559
|
artifacts: {
|
|
535
560
|
inline: ["task-plan", "slice-plan", "prior-task-summaries", "templates"],
|
|
@@ -544,6 +569,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
544
569
|
memory: "prompt-relevant",
|
|
545
570
|
codebaseMap: true,
|
|
546
571
|
preferences: "active-only",
|
|
572
|
+
contextMode: "execution",
|
|
547
573
|
tools: TOOLS_ALL,
|
|
548
574
|
artifacts: {
|
|
549
575
|
inline: ["slice-plan", "prior-task-summaries", "templates"],
|
|
@@ -560,6 +586,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
560
586
|
memory: "critical-only",
|
|
561
587
|
codebaseMap: false,
|
|
562
588
|
preferences: "active-only",
|
|
589
|
+
contextMode: "verification",
|
|
563
590
|
tools: TOOLS_PLANNING,
|
|
564
591
|
artifacts: {
|
|
565
592
|
// Phase 3 migration (#4782): manifest matches today's actual
|
|
@@ -578,6 +605,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
578
605
|
memory: "critical-only",
|
|
579
606
|
codebaseMap: false,
|
|
580
607
|
preferences: "active-only",
|
|
608
|
+
contextMode: "verification",
|
|
581
609
|
tools: TOOLS_PLANNING,
|
|
582
610
|
artifacts: {
|
|
583
611
|
inline: ["slice-plan", "prior-task-summaries"],
|
|
@@ -592,6 +620,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
592
620
|
memory: "prompt-relevant",
|
|
593
621
|
codebaseMap: true,
|
|
594
622
|
preferences: "active-only",
|
|
623
|
+
contextMode: "docs",
|
|
595
624
|
tools: TOOLS_DOCS,
|
|
596
625
|
artifacts: {
|
|
597
626
|
inline: ["project", "requirements", "decisions", "templates"],
|
|
@@ -611,6 +640,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
611
640
|
memory: "none",
|
|
612
641
|
codebaseMap: false,
|
|
613
642
|
preferences: "none",
|
|
643
|
+
contextMode: "none",
|
|
614
644
|
tools: TOOLS_PLANNING,
|
|
615
645
|
artifacts: {
|
|
616
646
|
inline: [],
|
|
@@ -628,6 +658,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
628
658
|
memory: "prompt-relevant",
|
|
629
659
|
codebaseMap: true,
|
|
630
660
|
preferences: "active-only",
|
|
661
|
+
contextMode: "interview",
|
|
631
662
|
tools: TOOLS_PLANNING,
|
|
632
663
|
artifacts: {
|
|
633
664
|
inline: ["templates"],
|
|
@@ -644,6 +675,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
644
675
|
memory: "prompt-relevant",
|
|
645
676
|
codebaseMap: true,
|
|
646
677
|
preferences: "active-only",
|
|
678
|
+
contextMode: "interview",
|
|
647
679
|
tools: TOOLS_PLANNING,
|
|
648
680
|
artifacts: {
|
|
649
681
|
inline: ["project", "templates"],
|
|
@@ -660,6 +692,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
660
692
|
memory: "none",
|
|
661
693
|
codebaseMap: false,
|
|
662
694
|
preferences: "none",
|
|
695
|
+
contextMode: "none",
|
|
663
696
|
tools: TOOLS_PLANNING,
|
|
664
697
|
artifacts: {
|
|
665
698
|
inline: [],
|
|
@@ -678,6 +711,7 @@ export const UNIT_MANIFESTS: Record<UnitType, UnitContextManifest> = {
|
|
|
678
711
|
memory: "prompt-relevant",
|
|
679
712
|
codebaseMap: true,
|
|
680
713
|
preferences: "active-only",
|
|
714
|
+
contextMode: "research",
|
|
681
715
|
tools: { mode: "planning-dispatch", allowedSubagents: ["scout"] },
|
|
682
716
|
artifacts: {
|
|
683
717
|
inline: ["project", "requirements", "templates"],
|
|
File without changes
|
|
File without changes
|