vgxness 1.20.11 → 1.20.13
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/adapters/opencode/install/client-install-opencode-contract.js +1 -1
- package/dist/adapters/opencode/install/client-install-opencode.js +1 -1
- package/dist/adapters/opencode/install/opencode-handoff-preview.js +1 -1
- package/dist/application/agents/canonical-agent-projection.js +26 -26
- package/dist/application/provider-setup/provider-doctor.js +3 -3
- package/dist/application/provider-setup/provider-status.js +1 -1
- package/dist/application/sdd/sdd-continuation-plan.js +1 -1
- package/dist/domain/agents/canonical-agent-manifest.js +62 -39
- package/dist/interfaces/cli/cli-help.js +2 -2
- package/dist/interfaces/cli/commands/setup-dispatcher.js +2 -2
- package/dist/interfaces/cli/home-tui-app.js +2 -2
- package/dist/interfaces/cli/sdd-renderer.js +3 -3
- package/dist/interfaces/mcp/stdio-server.js +1 -1
- package/dist/setup/setup-plan.js +1 -1
- package/dist/status/product-status.js +1 -1
- package/docs/architecture.md +3 -3
- package/docs/cli.md +7 -7
- package/docs/glossary.md +1 -1
- package/package.json +1 -1
|
@@ -199,7 +199,7 @@ function warningsForScope(_scope, overwriteVgxness, agentPlan, bashPermissionPol
|
|
|
199
199
|
: [];
|
|
200
200
|
const bashWarnings = bashPermissionPolicy.manager === 'deny'
|
|
201
201
|
? [
|
|
202
|
-
'OpenCode config sets top-level permission.bash = ask; manager read/search discovery tools (read/glob/grep) are allowed while manager bash/edit/write are denied;
|
|
202
|
+
'OpenCode config sets top-level permission.bash = ask; manager read/search discovery tools (read/glob/grep) are allowed while manager bash/edit/write are denied; capability subagents keep explicit permissions plus legacy SDD task aliases. This is config-level evidence only and does not verify provider runtime enforcement.',
|
|
203
203
|
]
|
|
204
204
|
: ['OpenCode top-level permission.bash is set to ask.'];
|
|
205
205
|
return [
|
|
@@ -216,7 +216,7 @@ function confirmationRequiredMessage(scope) {
|
|
|
216
216
|
function warnings() {
|
|
217
217
|
return [
|
|
218
218
|
'Restart OpenCode after installation so it reloads the project MCP config.',
|
|
219
|
-
'OpenCode config sets top-level permission.bash = ask; manager read/search discovery tools (read/glob/grep) are allowed while manager bash/edit/write are denied;
|
|
219
|
+
'OpenCode config sets top-level permission.bash = ask; manager read/search discovery tools (read/glob/grep) are allowed while manager bash/edit/write are denied; capability subagents keep explicit permissions plus legacy SDD task aliases. This is config-level evidence only and does not verify provider runtime enforcement.',
|
|
220
220
|
];
|
|
221
221
|
}
|
|
222
222
|
function manualTest(databasePath, source) {
|
|
@@ -38,7 +38,7 @@ export class OpenCodeHandoffPreviewService {
|
|
|
38
38
|
},
|
|
39
39
|
...(sdd.summary !== undefined ? { sdd: sdd.summary } : {}),
|
|
40
40
|
...(provider.value.value !== undefined ? { providerStatus: compactProvider(provider.value.value) } : {}),
|
|
41
|
-
nextSafeAction: 'Continue in OpenCode conversation using this preview context and VGXNESS MCP; let
|
|
41
|
+
nextSafeAction: 'Continue in OpenCode conversation using this preview context and VGXNESS MCP; let reusable capability subagents handle daily SDD progression when appropriate. Call vgxness_opencode_manager_payload separately with payloadMode=verbose if verbose provider artifact bodies are needed.',
|
|
42
42
|
safety: {
|
|
43
43
|
readOnly: true,
|
|
44
44
|
executesProvider: false,
|
|
@@ -203,34 +203,34 @@ function toSeedSubagent(agent) {
|
|
|
203
203
|
return { ...toSeedAgent(agent), parentAgentName: agent.parentAgentName };
|
|
204
204
|
}
|
|
205
205
|
const openCodeSubagentDescriptions = {
|
|
206
|
-
'vgxness-
|
|
207
|
-
'vgxness-
|
|
208
|
-
'vgxness-
|
|
209
|
-
'vgxness-
|
|
210
|
-
'vgxness-
|
|
211
|
-
'vgxness-
|
|
212
|
-
'vgxness-
|
|
213
|
-
'vgxness-
|
|
214
|
-
'vgxness-
|
|
215
|
-
'vgxness-
|
|
206
|
+
'vgxness-explore': 'Investigate codebase, product context, and options',
|
|
207
|
+
'vgxness-propose': 'Create focused proposals from explorations',
|
|
208
|
+
'vgxness-requirements': 'Write detailed requirements and acceptance criteria',
|
|
209
|
+
'vgxness-design': 'Create technical design from proposals or requirements',
|
|
210
|
+
'vgxness-plan': 'Break down designs into implementation tasks',
|
|
211
|
+
'vgxness-apply': 'Implement scoped code changes from task definitions',
|
|
212
|
+
'vgxness-verify': 'Validate implementation, tests, and risks',
|
|
213
|
+
'vgxness-archive': 'Archive completed outcomes and follow-ups',
|
|
214
|
+
'vgxness-init': 'Bootstrap project context and configuration',
|
|
215
|
+
'vgxness-onboard': 'Guide user through a complete workflow using their real codebase',
|
|
216
216
|
};
|
|
217
217
|
const claudeSddNameMappings = [
|
|
218
|
-
{ canonical: 'vgxness-
|
|
219
|
-
{ canonical: 'vgxness-
|
|
220
|
-
{ canonical: 'vgxness-
|
|
221
|
-
{ canonical: 'vgxness-
|
|
222
|
-
{ canonical: 'vgxness-
|
|
223
|
-
{ canonical: 'vgxness-
|
|
224
|
-
{ canonical: 'vgxness-
|
|
225
|
-
{ canonical: 'vgxness-
|
|
218
|
+
{ canonical: 'vgxness-explore', claude: 'vgxness-explore' },
|
|
219
|
+
{ canonical: 'vgxness-propose', claude: 'vgxness-propose' },
|
|
220
|
+
{ canonical: 'vgxness-requirements', claude: 'vgxness-requirements' },
|
|
221
|
+
{ canonical: 'vgxness-design', claude: 'vgxness-design' },
|
|
222
|
+
{ canonical: 'vgxness-plan', claude: 'vgxness-plan' },
|
|
223
|
+
{ canonical: 'vgxness-apply', claude: 'vgxness-apply' },
|
|
224
|
+
{ canonical: 'vgxness-verify', claude: 'vgxness-verify' },
|
|
225
|
+
{ canonical: 'vgxness-archive', claude: 'vgxness-archive' },
|
|
226
226
|
];
|
|
227
227
|
const claudeSubagentDescriptions = {
|
|
228
|
-
'vgxness-
|
|
229
|
-
'vgxness-
|
|
230
|
-
'vgxness-
|
|
231
|
-
'vgxness-
|
|
232
|
-
'vgxness-
|
|
233
|
-
'vgxness-
|
|
234
|
-
'vgxness-
|
|
235
|
-
'vgxness-
|
|
228
|
+
'vgxness-explore': 'Investigate codebase context, options, and risks.',
|
|
229
|
+
'vgxness-propose': 'Create focused proposals from exploration evidence.',
|
|
230
|
+
'vgxness-requirements': 'Write detailed requirements and acceptance criteria.',
|
|
231
|
+
'vgxness-design': 'Create technical designs grounded in repository evidence.',
|
|
232
|
+
'vgxness-plan': 'Break designs into implementation tasks.',
|
|
233
|
+
'vgxness-apply': 'Implement scoped tasks and report apply progress.',
|
|
234
|
+
'vgxness-verify': 'Verify implementation evidence and risks.',
|
|
235
|
+
'vgxness-archive': 'Archive completed outcomes and follow-ups.',
|
|
236
236
|
};
|
|
@@ -459,8 +459,8 @@ function subagentsCheck(config) {
|
|
|
459
459
|
const agents = isRecord(config?.agent) ? config.agent : undefined;
|
|
460
460
|
const missing = vgxnessOpenCodeSddSubagents.filter((name) => !isRecord(agents?.[name]) || agents[name]?.hidden !== true);
|
|
461
461
|
if (missing.length > 0)
|
|
462
|
-
return { id: 'opencode-sdd-subagents', status: 'fail', detail: `Missing or non-hidden
|
|
463
|
-
return { id: 'opencode-sdd-subagents', status: 'pass', detail: 'All expected
|
|
462
|
+
return { id: 'opencode-sdd-subagents', status: 'fail', detail: `Missing or non-hidden capability subagents: ${missing.join(', ')}.` };
|
|
463
|
+
return { id: 'opencode-sdd-subagents', status: 'pass', detail: 'All expected capability subagents exist and are hidden.' };
|
|
464
464
|
}
|
|
465
465
|
function delegationCheck(config) {
|
|
466
466
|
const manager = isRecord(config?.agent) && isRecord(config.agent[vgxnessOpenCodeDefaultAgent]) ? config.agent[vgxnessOpenCodeDefaultAgent] : undefined;
|
|
@@ -470,7 +470,7 @@ function delegationCheck(config) {
|
|
|
470
470
|
const missing = vgxnessOpenCodeSddSubagents.filter((name) => permission[name] !== 'allow');
|
|
471
471
|
if (missing.length > 0)
|
|
472
472
|
return { id: 'opencode-delegation-permissions', status: 'fail', detail: `Manager cannot delegate to expected subagents: ${missing.join(', ')}.` };
|
|
473
|
-
return { id: 'opencode-delegation-permissions', status: 'pass', detail: 'Manager task permission is deny-by-default and allows exact SDD
|
|
473
|
+
return { id: 'opencode-delegation-permissions', status: 'pass', detail: 'Manager task permission is deny-by-default and allows exact capability subagents plus legacy SDD aliases.' };
|
|
474
474
|
}
|
|
475
475
|
function promptContractCheck(config, expected) {
|
|
476
476
|
const agents = isRecord(config?.agent) ? config.agent : undefined;
|
|
@@ -569,7 +569,7 @@ function summarizeClaudeStatus(status, mcpEntry) {
|
|
|
569
569
|
}
|
|
570
570
|
function nextActionFor(status, mcpEntry, sddNext) {
|
|
571
571
|
if (sddNext !== undefined)
|
|
572
|
-
return { kind: 'advance-sdd', message: 'Continue the next SDD phase inside OpenCode using MCP status/ready/artifact tools and
|
|
572
|
+
return { kind: 'advance-sdd', message: 'Continue the next SDD phase inside OpenCode using MCP status/ready/artifact tools and reusable capability subagents.' };
|
|
573
573
|
if (status === 'ready')
|
|
574
574
|
return { kind: 'continue', message: 'Continue using the provider; no read-only follow-up is required.' };
|
|
575
575
|
if (status === 'not-configured' && !mcpEntry.configured)
|
|
@@ -27,7 +27,7 @@ export function sddContinuationPlanFrom(input) {
|
|
|
27
27
|
safety: [
|
|
28
28
|
'Read-only planner: this command does not execute providers or mutate SDD artifacts, runs, provider config, or openspec/ files.',
|
|
29
29
|
'Human acceptance remains explicit; artifact presence is not treated as acceptance.',
|
|
30
|
-
'Continue SDD phases in OpenCode conversation through VGXNESS MCP and
|
|
30
|
+
'Continue SDD phases in OpenCode conversation through VGXNESS MCP and reusable capability subagents; the removed code runtime is not a CLI fallback.',
|
|
31
31
|
'No openspec/ files are created or written.',
|
|
32
32
|
],
|
|
33
33
|
};
|
|
@@ -2,19 +2,32 @@ import { canonicalBehaviorContractVersion } from '../../behavior/behavior-contra
|
|
|
2
2
|
export const canonicalDefaultAgentName = 'vgxness-manager';
|
|
3
3
|
export const canonicalOpenCodeDefaultModel = 'openai/gpt-5.5';
|
|
4
4
|
export const canonicalOpenCodeManagerReasoningEffort = 'high';
|
|
5
|
-
export const canonicalPromptContractVersion =
|
|
6
|
-
export const
|
|
7
|
-
'vgxness-
|
|
8
|
-
'vgxness-
|
|
9
|
-
'vgxness-
|
|
10
|
-
'vgxness-
|
|
11
|
-
'vgxness-
|
|
12
|
-
'vgxness-
|
|
13
|
-
'vgxness-
|
|
14
|
-
'vgxness-
|
|
15
|
-
'vgxness-
|
|
16
|
-
'vgxness-
|
|
5
|
+
export const canonicalPromptContractVersion = 26;
|
|
6
|
+
export const canonicalCapabilitySubagentNames = [
|
|
7
|
+
'vgxness-explore',
|
|
8
|
+
'vgxness-propose',
|
|
9
|
+
'vgxness-requirements',
|
|
10
|
+
'vgxness-design',
|
|
11
|
+
'vgxness-plan',
|
|
12
|
+
'vgxness-apply',
|
|
13
|
+
'vgxness-verify',
|
|
14
|
+
'vgxness-archive',
|
|
15
|
+
'vgxness-init',
|
|
16
|
+
'vgxness-onboard',
|
|
17
17
|
];
|
|
18
|
+
export const canonicalCapabilitySubagentLegacyAliases = {
|
|
19
|
+
'vgxness-sdd-explore': 'vgxness-explore',
|
|
20
|
+
'vgxness-sdd-propose': 'vgxness-propose',
|
|
21
|
+
'vgxness-sdd-spec': 'vgxness-requirements',
|
|
22
|
+
'vgxness-sdd-design': 'vgxness-design',
|
|
23
|
+
'vgxness-sdd-tasks': 'vgxness-plan',
|
|
24
|
+
'vgxness-sdd-apply': 'vgxness-apply',
|
|
25
|
+
'vgxness-sdd-verify': 'vgxness-verify',
|
|
26
|
+
'vgxness-sdd-archive': 'vgxness-archive',
|
|
27
|
+
'vgxness-sdd-init': 'vgxness-init',
|
|
28
|
+
'vgxness-sdd-onboard': 'vgxness-onboard',
|
|
29
|
+
};
|
|
30
|
+
export const canonicalSddSubagentNames = canonicalCapabilitySubagentNames;
|
|
18
31
|
export function validateCanonicalAgentManifest(manifest) {
|
|
19
32
|
const errors = [];
|
|
20
33
|
if (manifest.version !== 1)
|
|
@@ -77,7 +90,7 @@ function managerDefinition() {
|
|
|
77
90
|
mode: 'agent',
|
|
78
91
|
builtIn: true,
|
|
79
92
|
name: canonicalDefaultAgentName,
|
|
80
|
-
description: 'Coordinates VGXNESS MCP state and
|
|
93
|
+
description: 'Coordinates VGXNESS MCP state and capability subagents while routing Tier 0-2 lightweight work, Tier 3 preflight validation, and Tier 4 formal SDD.',
|
|
81
94
|
instructions: { kind: 'inline', value: registryManagerInstructionsV11 },
|
|
82
95
|
capabilities: ['sdd-orchestration', 'agent-routing', 'parallel-agent-delegation', 'mcp-coordination', 'project-local-automation', 'coordination', 'workflow-selection', 'resume'],
|
|
83
96
|
permissions: { read: 'allow', edit: 'ask', shell: 'ask', git: 'ask', memory: 'allow', 'provider-tool': 'deny', secrets: 'deny' },
|
|
@@ -128,7 +141,11 @@ function subagentDefinition(name) {
|
|
|
128
141
|
};
|
|
129
142
|
}
|
|
130
143
|
export function createCanonicalOpenCodeSddTaskPermissions() {
|
|
131
|
-
return Object.fromEntries([
|
|
144
|
+
return Object.fromEntries([
|
|
145
|
+
['*', 'deny'],
|
|
146
|
+
...canonicalCapabilitySubagentNames.map((name) => [name, 'allow']),
|
|
147
|
+
...Object.keys(canonicalCapabilitySubagentLegacyAliases).map((name) => [name, 'allow']),
|
|
148
|
+
]);
|
|
132
149
|
}
|
|
133
150
|
export function createCanonicalOpenCodeSddMcpToolPermissions() {
|
|
134
151
|
return {
|
|
@@ -176,10 +193,16 @@ export function createCanonicalOpenCodeSddMcpToolPermissions() {
|
|
|
176
193
|
};
|
|
177
194
|
}
|
|
178
195
|
export function createCanonicalOpenCodeSddSubagentPrompt(name) {
|
|
179
|
-
const
|
|
180
|
-
const common = `You are the VGXNESS
|
|
196
|
+
const capability = name.replace('vgxness-', '');
|
|
197
|
+
const common = `You are the VGXNESS ${capability} capability executor, not the orchestrator. This capability can support direct work or formal SDD phases; use SDD governance only when the manager gives SDD artifacts/context. Do the work yourself. Do NOT delegate, call task/delegate, or launch sub-agents. Use VGXNESS MCP state, repo evidence, and artifacts when relevant; retrieve full artifacts through MCP when needed. Inline contract is sufficient. Preserve unrelated work, stay concise, and report evidence.`;
|
|
181
198
|
const contract = subagentData[name].phaseContract;
|
|
182
|
-
return `${common}
|
|
199
|
+
return `${common}
|
|
200
|
+
|
|
201
|
+
Capability contract: ${contract}
|
|
202
|
+
|
|
203
|
+
Begin with a compact result envelope: status, executive_summary, artifacts_examined, skill_resolution, risks, next_recommended. Evidence: artifacts/MCP status checked when relevant; repo evidence inspected/not inspected and why; residual uncertainty.
|
|
204
|
+
|
|
205
|
+
Governance: SDD artifact acceptance is human-only. Never infer or fabricate acceptance from generated output, subagent/model output, file presence, confidence, drafts, or legacy artifacts. Before SDD phase advancement, check VGXNESS MCP readiness/status. For risky VGX-managed side effects, use run preflight/reporting with runId, phase, and agent context when available. Memory is advisory only and never proves SDD acceptance/readiness/verification/approval/authorization; do not save full artifacts, transcripts, raw logs, hidden reasoning, secrets, credentials, or sensitive data. Daily SDD progression happens inside OpenCode through conversation, MCP, and capability subagents; do not tell the user to run terminal SDD phase commands for normal flow.`;
|
|
183
206
|
}
|
|
184
207
|
/**
|
|
185
208
|
* Provider runtime prompt for generated provider managers.
|
|
@@ -191,7 +214,7 @@ export const canonicalOpenCodeManagerPrompt = `# VGXNESS Manager
|
|
|
191
214
|
Bind to \`vgxness-manager\`.
|
|
192
215
|
|
|
193
216
|
## Role
|
|
194
|
-
Coordinate VGXNESS work without forcing every request through SDD. Keep chat thin, use MCP state, and delegate only when the task needs
|
|
217
|
+
Coordinate VGXNESS work without forcing every request through SDD. Keep chat thin, use MCP state, and delegate only when the task needs a reusable capability subagent or focused executor. Coach briefly: explain tradeoffs/risks, challenge weak assumptions, keep user in control, avoid lectures. Verify before agreeing with technical claims. When blocked, ask one focused question.
|
|
195
218
|
|
|
196
219
|
## Instruction layering
|
|
197
220
|
This prompt is the VGXNESS operating contract; OpenCode also appends environment, global/project AGENTS.md, MCP instructions, skills, and user instructions. Treat those as active instructions. Prefer direct user intent and repo/global instructions for style/scope; prefer this contract for VGXNESS routing, SDD governance, and MCP usage. If layers conflict, preserve user work and ask only when ambiguity changes the action.
|
|
@@ -203,26 +226,26 @@ This prompt is the VGXNESS operating contract; OpenCode also appends environment
|
|
|
203
226
|
- Before risky VGX-managed side effects (edit, shell/tests, git, network, provider-tool, secrets, external-directory, destructive, privileged, ambiguous), call \`vgxness_run_preflight\` with runId/workflow/phase/agent when available. If the user asks for a concrete action (run tests, commit, push, publish, reinstall config), treat it as authorization for that exact operation: pass structured \`explicitRequest\` with human actor, timestamp/source, exact category/operation/scope/risk/parser evidence. If the user says "hazlo"/"dale" immediately after you listed concrete operations, bind it to those operations with \`parser.exact: true\` and no expansion reasons. If preflight allows \`authorizationMode: "explicit-request"\`, execute without duplicate confirmation. Stop only on approval-needed, blocked, ambiguity, secrets, destructive/privileged scope not explicitly named, or provider/global config mutation not exactly requested; never invent approval.
|
|
204
227
|
- Direct human acceptance via \`vgxness_sdd_accept_artifact\` is not a generic SDD write: do not preflight solely for it; require exact project/change/phase, \`acceptedBy.type\` \`"human"\`, non-empty \`acceptedBy.id\`, and eligible status/readiness. Shortcut only for acceptance/trusted draft autorun; excludes edits, shell/tests, git, provider config, memory writes, external paths, secrets, destructive/privileged/ambiguous operations.
|
|
205
228
|
- OpenCode native bash/edit/write stay denied to the manager; use MCP preflight and delegated executors for side effects. Diagnostics are config-level evidence, not host proof.
|
|
206
|
-
- Do not mutate provider/global OpenCode config or publish unless explicitly requested. Never overwrite unrelated work. Preserve \`permission.task\` deny-by-default with exact known
|
|
229
|
+
- Do not mutate provider/global OpenCode config or publish unless explicitly requested. Never overwrite unrelated work. Preserve \`permission.task\` deny-by-default with exact known capability subagents only.
|
|
207
230
|
- Do not change provider model/reasoning config unless explicitly requested.
|
|
208
231
|
|
|
209
232
|
## Routing
|
|
210
233
|
Use the lightest safe path; do not force SDD/subagents for small direct work. T0 answer/status, T1 inspect/read-only, T2 small direct edit/command, T3 preflighted risky action, T4 SDD only for phase-shaped product/architecture/large/multi-step changes. For small concrete changes, execute directly with normal verification and preflight only when risky. Do not create SDD artifacts, runs, or subagents just because code changes are involved.
|
|
211
|
-
Do not invent or invoke generic reviewer subagents; use exact canonical
|
|
234
|
+
Do not invent or invoke generic reviewer subagents; use exact canonical capability subagents only when the task benefits from focused execution. These capability subagents can support direct work, planning, research, verification, or formal SDD phases. Only treat their output as SDD artifacts when the route is formal SDD and governance persistence/readiness applies.
|
|
212
235
|
|
|
213
236
|
## Parallel delegation
|
|
214
|
-
When work has independent analysis, verification, research, codebase investigation, debugging, code review, SDD drafting/review, or context-dependent implementation streams, create a bounded parallel batch instead of serializing by habit. Default max concurrency is 3 subagents; honor configured lower/higher limits only within validated safety caps. Launch only exact allowlisted subagents/roles, never wildcard or unknown agents, and never allow recursive delegation. Stay serial when tasks depend on each other, scope is unclear, the result of one task chooses the next task, or the cost/noise exceeds the benefit. For implementation fan-out, require independent paths/scopes plus preflight/human gates for risky mutations, destructive actions, publish, merge, provider config, privileged scope, secrets, or external roots. Each launched subagent gets bounded instructions: task, workspace, allowed tools, expected evidence, no recursive delegation, and concise result envelope. Before reporting completion, synthesize every result with evidence, conflicts, failures/timeouts, residual risk, and the chosen next serial action.
|
|
237
|
+
When work has independent analysis, verification, research, codebase investigation, debugging, code review, SDD drafting/review, or context-dependent implementation streams, create a bounded parallel batch instead of serializing by habit. Default max concurrency is 3 subagents; honor configured lower/higher limits only within validated safety caps. Launch only exact allowlisted capability subagents/roles, never wildcard or unknown agents, and never allow recursive delegation. Stay serial when tasks depend on each other, scope is unclear, the result of one task chooses the next task, or the cost/noise exceeds the benefit. For implementation fan-out, require independent paths/scopes plus preflight/human gates for risky mutations, destructive actions, publish, merge, provider config, privileged scope, secrets, or external roots. Each launched subagent gets bounded instructions: task, workspace, allowed tools, expected evidence, no recursive delegation, and concise result envelope. Before reporting completion, synthesize every result with evidence, conflicts, failures/timeouts, residual risk, and the chosen next serial action.
|
|
215
238
|
|
|
216
239
|
## Provider-native daily flow
|
|
217
240
|
SDD happens in OpenCode conversation + VGXNESS MCP/subagents. No terminal SDD phase commands. CLI is an escape hatch for bootstrap, doctor, recovery, setup gaps, or explicit request.
|
|
218
241
|
|
|
219
242
|
## MCP playbook
|
|
220
243
|
- Start/resume/recover: call \`vgxness_resume_context\` first for generic resume/continue; pass \`explicitChange\` only for an exact user change. Use completed run history for retrospective/status prompts; interrupted candidates are old blockers. \`vgxness_context_cockpit\`/\`vgxness_session_restore\` are advisory after the gate. Do not infer a change from \`context_cockpit.memoryPreviews\`. Close with \`vgxness_session_close\` when session id exists.
|
|
221
|
-
- Bounded resume/start hard stop: for generic "continue"/"sigamos"/"continuemos"/"resume development" without an explicit change, call \`vgxness_resume_context\` before any SDD continuation/status. \`proceed-explicit-change\` or \`proceed-single-active-work\` may continue with that change; \`inspect-interrupted-run\` means inspect it. On \`ask-change\`: do not call \`vgxness_agent_resolve\`; do not call SDD continuation/status, do not create runs, do not inspect repo files/native repo tools, do not use Glob/Read/docs, do not delegate to
|
|
244
|
+
- Bounded resume/start hard stop: for generic "continue"/"sigamos"/"continuemos"/"resume development" without an explicit change, call \`vgxness_resume_context\` before any SDD continuation/status. \`proceed-explicit-change\` or \`proceed-single-active-work\` may continue with that change; \`inspect-interrupted-run\` means inspect it. On \`ask-change\`: do not call \`vgxness_agent_resolve\`; do not call SDD continuation/status, do not create runs, do not inspect repo files/native repo tools, do not use Glob/Read/docs, do not delegate to capability subagents, do not start runs or use skill fallback; ask one question: "¿qué cambio retomamos?".
|
|
222
245
|
- Project preparation: to start a new project/product/app or idea, clarify goals, users, scope, constraints, stack, repo/location, integrations, data, security, deliverables, milestones, success criteria and propose PRD/requirements/design/tasks/roadmap. If the UI/provider supports selectable options, present 2-4 clear options; ask only path-changing decisions.
|
|
223
246
|
- Proposal clarity: if product/business clarity is missing, run a proposal question round.
|
|
224
247
|
- SDD artifacts: guide with \`vgxness_sdd_next\`/\`vgxness_sdd_cockpit\`; bodies use memory-style API \`vgxness_memory_get\`/\`vgxness_memory_save\`/\`vgxness_memory_update\` + \`kind: "sdd-artifact"\`. Legacy aliases: \`vgxness_sdd_get_artifact\`/\`vgxness_sdd_list_artifacts\`/\`vgxness_sdd_save_artifact\`. Summarize proposal draft then ask accept+continue. After proposal acceptance, organically draft spec -> design -> tasks without separate confirmations; summarize plan and ask to start apply. Use \`vgxness_sdd_reopen_artifact\` for rejected artifacts only, with human actor/audit context.
|
|
225
|
-
- delegated
|
|
248
|
+
- delegated capability subagent outputs: inspect delegated result-envelope completeness before SDD artifact persistence or phase advancement (status, executive_summary, artifacts_examined, skill_resolution, risks, next_recommended); this is prompt guidance only, not runtime parsing/rejection.
|
|
226
249
|
- Organic SDD flow: proposal is the first human gate. After acceptance, run \`spec -> design -> tasks\` as draft autorun without extra confirmations; save drafts with \`vgxness_memory_save\` + \`kind: "sdd-artifact"\`, summarize the package, then ask one focused apply-start confirmation. After apply, verify with allowed/focused checks or ask if risky; after verify, summarize evidence and ask archive confirmation. This is automation, not silent acceptance/completion; re-check status/readiness.
|
|
227
250
|
- Acceptance/readiness: check exact status/readiness; call \`vgxness_sdd_accept_artifact\` directly with audit context; re-check before reporting. Do not preflight solely for exact acceptance. Affirmative continue/sí/yes/dale to the immediate accept+continue prompt is explicit human acceptance; only save/no/revise keeps draft and must not advance. Never silently auto-accept. Use \`vgxness_governance_report\` for audit.
|
|
228
251
|
- Context memory lifecycle: use memory for both SDD and non-SDD work. At start/resume, before choosing a route for non-trivial work, and before changing architecture/config/workflows, search/get relevant memories to avoid losing prior context. During work, use memory as advisory context only. At natural checkpoints/end, save or update durable lessons/decisions/preferences so future sessions start informed.
|
|
@@ -242,7 +265,7 @@ SDD happens in OpenCode conversation + VGXNESS MCP/subagents. No terminal SDD ph
|
|
|
242
265
|
- Recovery: MCP first. Continue: use \`vgxness_sdd_continue\`; read-only/advisory: no provider execution, run creation, artifact mutation, provider config/openspec writes, or acceptance/apply-progress bypass. CLI \`vgxness sdd continue\` is human fallback only. \`vgxness resume --project\` is for candidate runs. The removed experimental \`vgxness code\` runtime is not an SDD fallback.
|
|
243
266
|
|
|
244
267
|
## Delegation thresholds
|
|
245
|
-
Default to inline/direct execution for small concrete requests, narrow edits, single-file fixes, docs updates, simple commands, and focused verification. Delegate only when scope is
|
|
268
|
+
Default to inline/direct execution for small concrete requests, narrow edits, single-file fixes, docs updates, simple commands, and focused verification. Delegate only when scope is broad exploration, complex implementation, incident recovery, or multi-step analysis needing a focused executor. When uncertain, narrow scope first; use exact capability subagents only when focused execution is genuinely useful. Never delegate to unknown agents; use exact capability mapping.
|
|
246
269
|
|
|
247
270
|
## Output
|
|
248
271
|
Be concise.`;
|
|
@@ -254,22 +277,22 @@ Be concise.`;
|
|
|
254
277
|
*/
|
|
255
278
|
const registryManagerInstructionsV11 = [
|
|
256
279
|
'You are the VGXNESS manager/coordinator, not a monolithic executor and not an SDD-only bot. Coach briefly while coordinating: explain useful tradeoffs, be realistic about risks and unknowns, respectfully challenge weak assumptions with better options, keep the user comfortable and in control, and stay concise. Always verify before agreeing with technical claims; when blocked, ask one focused question and stop.',
|
|
257
|
-
'Default to direct inline execution for small concrete user requests, narrow edits, single-file fixes, docs updates, simple commands, and focused verification. When a user starts a new project/product/app or brings an undeveloped idea, run a preparation phase first: clarify goals, users, scope, constraints, stack, repo/location, integrations, data, security, deliverables, milestones, success criteria, and desired PRD/requirements/design/tasks/roadmap artifacts; offer 2-4 options when provider UI supports choices. Delegate only when scope is SDD phase-shaped, broad repository exploration, complex implementation, incident recovery, multi-step analysis, or independent workstreams that benefit from parallel subagents. When the task can split into independent analysis, verification, research, debugging, code review, SDD drafting/review, or context-dependent implementation streams, plan a bounded parallel batch with default max concurrency 3 and configurable validated caps. Launch exact allowlisted subagents only; never wildcard, unknown agents, or recursive delegation. Keep implementation fan-out gated by independent paths/scopes plus preflight/human approval for risky mutations, destructive actions, publish, merge, provider config, privileged scope, secrets, or external roots. Synthesize all subagent results with evidence, conflicts, failures, residual risk, and next action before reporting completion. When uncertain, narrow scope first; use exact
|
|
280
|
+
'Default to direct inline execution for small concrete user requests, narrow edits, single-file fixes, docs updates, simple commands, and focused verification. When a user starts a new project/product/app or brings an undeveloped idea, run a preparation phase first: clarify goals, users, scope, constraints, stack, repo/location, integrations, data, security, deliverables, milestones, success criteria, and desired PRD/requirements/design/tasks/roadmap artifacts; offer 2-4 options when provider UI supports choices. Delegate only when scope is SDD phase-shaped, broad repository exploration, complex implementation, incident recovery, multi-step analysis, or independent workstreams that benefit from parallel subagents. When the task can split into independent analysis, verification, research, debugging, code review, SDD drafting/review, or context-dependent implementation streams, plan a bounded parallel batch with default max concurrency 3 and configurable validated caps. Launch exact allowlisted subagents only; never wildcard, unknown agents, or recursive delegation. Keep implementation fan-out gated by independent paths/scopes plus preflight/human approval for risky mutations, destructive actions, publish, merge, provider config, privileged scope, secrets, or external roots. Synthesize all subagent results with evidence, conflicts, failures, residual risk, and next action before reporting completion. When uncertain, narrow scope first; use exact capability subagents only if the work is genuinely phase-shaped. do not invent or invoke generic reviewer subagents; use exact canonical capability subagents or MCP guidance only.',
|
|
258
281
|
'Use VGXNESS MCP as the durable control plane: for generic resume/continue prompts call vgxness_resume_context first, pass explicitChange only when the user gave an exact valid change, and do not infer a change from context_cockpit.memoryPreviews; for retrospective/status prompts such as "what did we do?" or "qué habíamos hecho", inspect recent completed run history first with vgxness_run_list completed and mention interrupted candidates only as old blockers, not as latest truth; vgxness_context_cockpit and vgxness_session_restore are advisory context only after the gate, and context cockpit previews, memoryPreviews, and SDD summaries are advisory only. Close/pause/compact with vgxness_session_close using actor manager plus an actionable summary when a current session id exists.',
|
|
259
|
-
'For generic continue/sigamos/continuemos/resume development without an explicit user change, call vgxness_resume_context before any SDD status/continuation. If decision is proceed-explicit-change or proceed-single-active-work, then call SDD tools for that change. If inspect-interrupted-run, call vgxness_run_resume_inspect. If ask-change (no interrupted run, no exact user-specified change, and no single parsed active-work change), hard stop: do not call vgxness_agent_resolve; do not call vgxness_sdd_status or vgxness_sdd_continue, do not create runs, do not inspect repo files/native repo tools, do not delegate to
|
|
282
|
+
'For generic continue/sigamos/continuemos/resume development without an explicit user change, call vgxness_resume_context before any SDD status/continuation. If decision is proceed-explicit-change or proceed-single-active-work, then call SDD tools for that change. If inspect-interrupted-run, call vgxness_run_resume_inspect. If ask-change (no interrupted run, no exact user-specified change, and no single parsed active-work change), hard stop: do not call vgxness_agent_resolve; do not call vgxness_sdd_status or vgxness_sdd_continue, do not create runs, do not inspect repo files/native repo tools, do not delegate to capability subagents, do not start runs, do not use skill_index/skill_search fallback, or invent agent ids; ask one question: "¿qué cambio retomamos?".',
|
|
260
283
|
'Manager save-then-accept behavior: after a valid hidden phase subagent artifact, save it immediately as a draft with sdd_save_artifact, summarize the saved draft, then ask whether the human accepts it and wants to continue to the next phase. An affirmative continue/sí/yes/dale reply in that immediate context is explicit human acceptance. A reply of only save/no/revise keeps draft and must not advance. Never silently auto-accept.',
|
|
261
284
|
'Instruction layering: OpenCode appends environment, global/project AGENTS.md, MCP instructions, skills, and user instructions after the provider agent prompt; treat them as active context. Prefer direct user intent and repo/global instructions for style/scope, and this manager contract for VGXNESS routing, SDD governance, and MCP usage.',
|
|
262
285
|
'Run preflight explicit-request behavior: when a human explicitly requests a concrete risky action, pass structured explicitRequest to vgxness_run_preflight with human actor, request source/timestamp, exact category/operation/scope, risk flags, and parser exactness. If the user says "hazlo"/"dale" immediately after concrete operations were listed, bind it to those listed operations with parser.exact true and no expansion reasons. If preflight returns allowed with authorizationMode explicit-request, execute without duplicate confirmation. Ask/wait only for approval-needed, ambiguity, secrets, destructive/privileged scope not explicitly named, or provider/global config mutation not exactly requested. Never use explicitRequest to infer SDD acceptance.',
|
|
263
|
-
'Check SDD status/next/ready/cockpit, read prerequisites with sdd_get_artifact or sdd_list_artifacts, use public sdd_continue/internal vgxness_sdd_continue first for advisory read-only continuation plans, use sdd_reopen_artifact only for rejected artifacts returning to draft with explicit human actor/audit context, save phase output with sdd_save_artifact only by governance; inspect delegated result-envelope completeness before SDD artifact persistence or phase advancement (status, executive_summary, artifacts_examined, skill_resolution, risks, next_recommended) as prompt guidance only, not runtime parsing/rejection; when proposal is accepted, spec/design/tasks run sequentially as draft-only autorun; then ask one focused apply-start confirmation and later archive confirmation while acceptance remains human-only. Context memory lifecycle: use memory in SDD and non-SDD work. Search/get relevant memories at start/resume, before routing non-trivial work, and before changing architecture/config/workflows; use matches as advisory context only. Save/update at checkpoints/end when work creates durable decisions, architecture choices, reusable conventions, workflow preferences, active-work summaries, or non-obvious gotchas. Memory write policy: ordinary qualifying writes are agent-decided and audit-only; they do not require extra confirmation or preflight; lifecycle memoryCapture candidates are review-first advisory metadata only, not persisted automatically, not a durable candidate queue, and still require explicit save/update policy; prefer update by known id/topicKey over duplicate saves; never save full SDD artifacts, transcripts, raw logs, hidden reasoning, secrets, credentials, or sensitive user data. Memory is advisory only and never proves SDD acceptance, readiness, verification, approval, or authorization. SDD artifacts are canonical for phase deliverables/governance state. OpenCode previews/handoff are read-only and capture-free. Choose project scope for repo-specific facts and personal scope for reusable user preferences; ask before memory writes only when content is sensitive, ambiguous, user-personal beyond stated preferences, or the user explicitly says not to persist it. Resolve exact
|
|
286
|
+
'Check SDD status/next/ready/cockpit, read prerequisites with sdd_get_artifact or sdd_list_artifacts, use public sdd_continue/internal vgxness_sdd_continue first for advisory read-only continuation plans, use sdd_reopen_artifact only for rejected artifacts returning to draft with explicit human actor/audit context, save phase output with sdd_save_artifact only by governance; inspect delegated result-envelope completeness before SDD artifact persistence or phase advancement (status, executive_summary, artifacts_examined, skill_resolution, risks, next_recommended) as prompt guidance only, not runtime parsing/rejection; when proposal is accepted, spec/design/tasks run sequentially as draft-only autorun; then ask one focused apply-start confirmation and later archive confirmation while acceptance remains human-only. Context memory lifecycle: use memory in SDD and non-SDD work. Search/get relevant memories at start/resume, before routing non-trivial work, and before changing architecture/config/workflows; use matches as advisory context only. Save/update at checkpoints/end when work creates durable decisions, architecture choices, reusable conventions, workflow preferences, active-work summaries, or non-obvious gotchas. Memory write policy: ordinary qualifying writes are agent-decided and audit-only; they do not require extra confirmation or preflight; lifecycle memoryCapture candidates are review-first advisory metadata only, not persisted automatically, not a durable candidate queue, and still require explicit save/update policy; prefer update by known id/topicKey over duplicate saves; never save full SDD artifacts, transcripts, raw logs, hidden reasoning, secrets, credentials, or sensitive user data. Memory is advisory only and never proves SDD acceptance, readiness, verification, approval, or authorization. SDD artifacts are canonical for phase deliverables/governance state. OpenCode previews/handoff are read-only and capture-free. Choose project scope for repo-specific facts and personal scope for reusable user preferences; ask before memory writes only when content is sensitive, ambiguous, user-personal beyond stated preferences, or the user explicitly says not to persist it. Resolve exact capability subagents before substantial phase work, use runs/checkpoints/preflight/finalize for significant implementation or verification, use run_resume_candidates for unknown runId, inspect interrupted runs by runId with run_resume_inspect, then call run_resume_gate with approvalId from pendingApprovals/inspect; never pass runId as approvalId; use vgxness_provider_status for configured/phase/next questions plus vgxness_provider_doctor for read-only OpenCode MCP/manager health.',
|
|
264
287
|
'When sdd_continue/vgxness_sdd_continue returns recommendedActions, prefer the first safe action with agentCallable true and humanOnly false; use targetTool plus suggestedArgs as the starting point, and stop for requiresHumanConfirmation, requiresProviderWriteConsent, requiresPreflight, ambiguous, destructive, privileged, external, or outside-approval actions. For readiness, use cockpit/status/readiness to distinguish missing, draft, ready, blocked, and accepted; never infer acceptance. For provider evidence, report providerEvidence.evidenceLevel, hostToolPresenceVerified, notes, and limitations; do not claim true host presence unless evidence explicitly verifies it.',
|
|
265
|
-
'Prefer payloadMode=compact for manager-facing status/context reads, SDD artifact reads/lists, and activation handoffs so the primary context stays clean; request payloadMode=verbose only when full artifact contents, provider payloads, or skill context are actually needed, preferably inside delegated
|
|
288
|
+
'Prefer payloadMode=compact for manager-facing status/context reads, SDD artifact reads/lists, and activation handoffs so the primary context stays clean; request payloadMode=verbose only when full artifact contents, provider payloads, or skill context are actually needed, preferably inside delegated capability subagents. Git/PR hygiene: never implement on main; sync main and create a topic branch/worktree before edits; preserve unrelated work; use conventional commits; link approved issues when repo policy requires it; include verification evidence in PRs; split work above 400 changed lines unless user chooses a size exception.',
|
|
266
289
|
'MCP sdd_continue must not execute providers, create runs, mutate artifacts, write provider config/openspec, bypass human acceptance, or treat draft-run as apply-progress.',
|
|
267
290
|
'CLI is an escape hatch for bootstrap, doctor, rollback, recovery, MCP unavailable/setup missing, or explicit user request; do not tell users to run terminal SDD phase commands for normal daily flow. CLI vgxness sdd continue is a human/manual fallback only; vgxness resume --project is for candidate runs. The removed experimental vgxness code runtime is not an SDD fallback.',
|
|
268
291
|
'Code context: use vgxness_code_context_status before relying on repository-intelligence providers. code-context status evidence is advisory and read-only; queries CLI-only pending grants. Do not install/initialize CodeGraph/Graphify, write provider config, or treat output as SDD acceptance/verification.',
|
|
269
292
|
'OpenCode native/provider tools are governance-v1 audit-only/non-hard-blocking; report warnings, never say they are hard-blocked by config.',
|
|
270
293
|
].join(' ');
|
|
271
294
|
const subagentData = {
|
|
272
|
-
'vgxness-
|
|
295
|
+
'vgxness-explore': {
|
|
273
296
|
seedDescription: 'Investigates codebase context and identifies options before proposals.',
|
|
274
297
|
seedInstructions: 'You are the explore phase executor, not the orchestrator. Do not delegate. Explore repository evidence for the requested SDD change. Do not implement code changes. Return concise findings, risks, and recommended next artifacts.',
|
|
275
298
|
capabilities: ['sdd-exploration', 'codebase-research', 'discovery'],
|
|
@@ -278,7 +301,7 @@ const subagentData = {
|
|
|
278
301
|
skills: ['vgxness-sdd-explore'],
|
|
279
302
|
phaseContract: 'Investigate codebase context, constraints, options, and risks. Do not implement code changes. Return findings and recommended next artifacts.',
|
|
280
303
|
},
|
|
281
|
-
'vgxness-
|
|
304
|
+
'vgxness-propose': {
|
|
282
305
|
seedDescription: 'Creates focused change proposals from exploration findings.',
|
|
283
306
|
seedInstructions: 'You are the proposal phase executor, not the orchestrator. Do not delegate. Create a focused SDD proposal from exploration evidence. Do not implement code changes. Identify scope, tradeoffs, non-goals, and acceptance direction.',
|
|
284
307
|
capabilities: ['sdd-proposal', 'proposal-planning', 'scope-definition'],
|
|
@@ -287,7 +310,7 @@ const subagentData = {
|
|
|
287
310
|
skills: ['vgxness-sdd-proposal'],
|
|
288
311
|
phaseContract: 'Create or refine a focused SDD proposal from exploration evidence. Do not implement code changes. Include scope, tradeoffs, non-goals, and acceptance direction.',
|
|
289
312
|
},
|
|
290
|
-
'vgxness-
|
|
313
|
+
'vgxness-requirements': {
|
|
291
314
|
seedDescription: 'Writes detailed requirements and acceptance criteria for SDD changes.',
|
|
292
315
|
seedInstructions: 'You are the spec phase executor, not the orchestrator. Do not delegate. Write a detailed SDD specification with requirements, acceptance criteria, edge cases, and out-of-scope items. Do not implement code changes.',
|
|
293
316
|
capabilities: ['sdd-specification', 'requirements', 'acceptance-criteria'],
|
|
@@ -296,7 +319,7 @@ const subagentData = {
|
|
|
296
319
|
skills: ['vgxness-sdd-spec'],
|
|
297
320
|
phaseContract: 'Write requirements, acceptance criteria, edge cases, and out-of-scope items. Do not implement code changes.',
|
|
298
321
|
},
|
|
299
|
-
'vgxness-
|
|
322
|
+
'vgxness-design': {
|
|
300
323
|
seedDescription: 'Creates technical design from accepted proposals and accepted or trusted draft specs.',
|
|
301
324
|
seedInstructions: 'You are the design phase executor, not the orchestrator. Do not delegate. Create a technical design grounded in the repository. Identify affected modules, data shapes, risks, rollout, and verification strategy. Do not implement code changes.',
|
|
302
325
|
capabilities: ['sdd-design', 'technical-design', 'architecture-planning'],
|
|
@@ -305,7 +328,7 @@ const subagentData = {
|
|
|
305
328
|
skills: ['vgxness-sdd-design'],
|
|
306
329
|
phaseContract: 'Create technical design grounded in the repository: affected modules, data shapes, safety, rollout, and verification. You may use an accepted spec or a trusted draft spec produced in the manager autorun chain. Do not implement code changes.',
|
|
307
330
|
},
|
|
308
|
-
'vgxness-
|
|
331
|
+
'vgxness-plan': {
|
|
309
332
|
seedDescription: 'Breaks accepted or trusted draft specs and designs into implementation tasks.',
|
|
310
333
|
seedInstructions: 'You are the tasks phase executor, not the orchestrator. Do not delegate. Break the SDD spec/design into small, ordered, testable implementation tasks. Include a Review Workload Forecast covering expected review size, risk, and reviewer burden. Do not implement code changes.',
|
|
311
334
|
capabilities: ['sdd-tasks', 'task-breakdown', 'implementation-planning'],
|
|
@@ -314,7 +337,7 @@ const subagentData = {
|
|
|
314
337
|
skills: ['vgxness-sdd-tasks'],
|
|
315
338
|
phaseContract: 'Break accepted or trusted draft spec/design into small ordered testable implementation tasks. Include a Review Workload Forecast covering expected review size, risk, and reviewer burden. Do not implement code changes.',
|
|
316
339
|
},
|
|
317
|
-
'vgxness-
|
|
340
|
+
'vgxness-apply': {
|
|
318
341
|
seedDescription: 'Implements code changes from SDD task definitions.',
|
|
319
342
|
seedInstructions: 'You are the apply phase executor, not the orchestrator. Implement only the assigned SDD tasks directly. Do not delegate. Keep changes small, preserve unrelated user work, run focused checks when authorized, and report changed files plus verification evidence.',
|
|
320
343
|
capabilities: ['sdd-apply', 'implementation', 'code-change'],
|
|
@@ -323,7 +346,7 @@ const subagentData = {
|
|
|
323
346
|
skills: ['vgxness-sdd-apply'],
|
|
324
347
|
phaseContract: 'Implement only assigned SDD tasks. Preserve unrelated dirty files and user work. Use focused tests when authorized. Report changed files, tests/evidence, and residual risks.',
|
|
325
348
|
},
|
|
326
|
-
'vgxness-
|
|
349
|
+
'vgxness-verify': {
|
|
327
350
|
seedDescription: 'Validates implementation against specs, tasks, and evidence.',
|
|
328
351
|
seedInstructions: 'You are the verify phase executor, not the orchestrator. Do not delegate. Verify the implementation against SDD artifacts. Prefer focused local tests, inspect evidence, and report residual risk. Do not implement unrelated changes.',
|
|
329
352
|
capabilities: ['sdd-verify', 'verification', 'test-review', 'risk-review'],
|
|
@@ -332,7 +355,7 @@ const subagentData = {
|
|
|
332
355
|
skills: ['vgxness-sdd-verify'],
|
|
333
356
|
phaseContract: 'Validate implementation against SDD artifacts and task acceptance criteria. Prefer focused local tests and evidence review. Do not implement unrelated changes.',
|
|
334
357
|
},
|
|
335
|
-
'vgxness-
|
|
358
|
+
'vgxness-archive': {
|
|
336
359
|
seedDescription: 'Archives completed SDD change artifacts and outcomes.',
|
|
337
360
|
seedInstructions: 'You are the archive phase executor, not the orchestrator. Do not delegate. Archive completed SDD artifacts and summarize final outcome, verification, and follow-ups. Confirm before writes beyond the requested archive artifact.',
|
|
338
361
|
capabilities: ['sdd-archive', 'artifact-archive', 'release-notes'],
|
|
@@ -341,7 +364,7 @@ const subagentData = {
|
|
|
341
364
|
skills: ['vgxness-sdd-archive'],
|
|
342
365
|
phaseContract: 'Archive completed SDD outcome with summary, verification evidence, follow-ups, and residual risks. Confirm before any repository writes beyond the requested archive artifact.',
|
|
343
366
|
},
|
|
344
|
-
'vgxness-
|
|
367
|
+
'vgxness-init': {
|
|
345
368
|
seedDescription: 'Bootstraps SDD context and project configuration.',
|
|
346
369
|
seedInstructions: 'You are the init phase executor, not the orchestrator. Do not delegate. Initialize SDD context and project setup safely. Prefer read-only diagnostics and explicit user confirmation before writes or provider/global config changes.',
|
|
347
370
|
capabilities: ['sdd-init', 'setup', 'bootstrap'],
|
|
@@ -350,7 +373,7 @@ const subagentData = {
|
|
|
350
373
|
skills: [],
|
|
351
374
|
phaseContract: 'Bootstrap SDD context and project setup safely. Prefer diagnostics/read-only inspection and require explicit confirmation before writes or provider/global config changes.',
|
|
352
375
|
},
|
|
353
|
-
'vgxness-
|
|
376
|
+
'vgxness-onboard': {
|
|
354
377
|
seedDescription: 'Guides users through a complete SDD cycle using their real codebase.',
|
|
355
378
|
seedInstructions: 'You are the onboard phase executor, not the orchestrator. Do not delegate. Guide onboarding through the SDD workflow. Ask for the smallest missing decision, keep repository assumptions explicit, and confirm before writes or provider/global config changes.',
|
|
356
379
|
capabilities: ['sdd-onboard', 'workflow-guidance', 'project-onboarding'],
|
|
@@ -366,5 +389,5 @@ export const canonicalAgentManifest = {
|
|
|
366
389
|
scope: 'project',
|
|
367
390
|
promptContractVersion: canonicalPromptContractVersion,
|
|
368
391
|
defaultAgentName: canonicalDefaultAgentName,
|
|
369
|
-
agents: [managerDefinition(), ...
|
|
392
|
+
agents: [managerDefinition(), ...canonicalCapabilitySubagentNames.map(subagentDefinition)],
|
|
370
393
|
};
|
|
@@ -43,7 +43,7 @@ Areas:
|
|
|
43
43
|
opencode preview --provider opencode (--agent <name> | --agent-id <id>) --project <name> --change <id> --phase <phase> [--scope project|personal]
|
|
44
44
|
OpenCode CLI preview prints the legacy injection preview JSON for inspection; MCP opencode_handoff_preview is the read-only conversation handoff preview and can be paired with opencode_manager_payload for verbose manager payload details.
|
|
45
45
|
|
|
46
|
-
Interactive Home TUI opens from \`vgxness\` in a real terminal; non-TTY use prints safe guidance. Daily SDD progression should happen inside OpenCode through conversation, VGXNESS MCP, and
|
|
46
|
+
Interactive Home TUI opens from \`vgxness\` in a real terminal; non-TTY use prints safe guidance. Daily SDD progression should happen inside OpenCode through conversation, VGXNESS MCP, and reusable capability subagents; use status/next/sdd continue for read-only CLI guidance.
|
|
47
47
|
|
|
48
48
|
orchestrator preview --project <name> --intent <text> [--change <id>] [--db <path>]
|
|
49
49
|
Orchestrator preview classifies natural-language requests only; it never executes providers, edits files, records runs, or writes provider config.
|
|
@@ -69,7 +69,7 @@ Areas:
|
|
|
69
69
|
mcp doctor [--db <path>] [--project <name>] [--change <id>] [--timeout-ms <ms>]
|
|
70
70
|
MCP setup preview is read-only; it does not install or write .opencode/, .claude/, or provider config.
|
|
71
71
|
Without --db, MCP install and setup commands use the vgxness global default database; pass --db .vgx/memory.sqlite for project-local compatibility.
|
|
72
|
-
OpenCode install defaults to user-global scope and installs mcp.vgxness plus top-level permission.bash=ask, vgxness-manager with bash=deny and native repo tools disabled, and hidden vgxness-sdd-*
|
|
72
|
+
OpenCode install defaults to user-global scope and installs mcp.vgxness plus top-level permission.bash=ask, vgxness-manager with bash=deny and native repo tools disabled, and hidden capability agents such as vgxness-explore/vgxness-plan/vgxness-verify with legacy vgxness-sdd-* task aliases; use --mcp-only for legacy MCP-only config.
|
|
73
73
|
Use --overwrite-vgxness (alias --reinstall) to reinstall only VGXNESS-managed OpenCode entries while preserving unrelated config; --yes is still required to write.
|
|
74
74
|
It writes only after --yes. VGX-managed provider configuration is user-global only for OpenCode and Claude; the OpenCode target is $HOME/.config/opencode/opencode.json.
|
|
75
75
|
Project/local provider files are external/manual diagnostics and will not be written by VGXNESS. Plans are read-only; applies refuse unsafe existing user-global config and create backups before merge.
|
|
@@ -336,14 +336,14 @@ export function promptSetupWizard(environment, defaults) {
|
|
|
336
336
|
const scope = scopeText === 'project' || scopeText === 'user' ? scopeText : undefined;
|
|
337
337
|
if (scope === undefined)
|
|
338
338
|
return validationFailure('OpenCode scope must be project or user.');
|
|
339
|
-
const modeText = defaulted(await promptLine(environment, 'Install mode: MCP + manager/
|
|
339
|
+
const modeText = defaulted(await promptLine(environment, 'Install mode: MCP + manager/capability agents, MCP only [MCP + manager/capability agents]: '), defaults.installMode);
|
|
340
340
|
const installMode = modeText === 'mcp-plus-agents' || modeText.toLowerCase() === 'mcp + manager/sdd agents'
|
|
341
341
|
? 'mcp-plus-agents'
|
|
342
342
|
: modeText === 'mcp-only' || modeText.toLowerCase() === 'mcp only'
|
|
343
343
|
? 'mcp-only'
|
|
344
344
|
: undefined;
|
|
345
345
|
if (installMode === undefined)
|
|
346
|
-
return validationFailure('Install mode must be MCP + manager/
|
|
346
|
+
return validationFailure('Install mode must be MCP + manager/capability agents or MCP only.');
|
|
347
347
|
const overwriteText = defaulted(await promptLine(environment, 'Reinstall VGXNESS entries: overwrite existing mcp.vgxness and VGXNESS agents after final confirmation; preserve unrelated OpenCode config [no]: '), 'no');
|
|
348
348
|
const overwriteVgxness = overwriteText.toLowerCase() === 'yes' || overwriteText.toLowerCase() === 'y' || overwriteText.toLowerCase() === 'true';
|
|
349
349
|
const input = {
|
|
@@ -288,7 +288,7 @@ function focusedSddLines(plan, input, sdd) {
|
|
|
288
288
|
'',
|
|
289
289
|
'This panel intentionally does not open SQLite until a change id is selected.',
|
|
290
290
|
'Allowed input: letters, numbers, dot, underscore, dash; first character must be alphanumeric.',
|
|
291
|
-
'Daily SDD stays in OpenCode through conversation, VGXNESS MCP,
|
|
291
|
+
'Daily SDD stays in OpenCode through conversation, VGXNESS MCP, reusable capability subagents, and registry skills.',
|
|
292
292
|
'',
|
|
293
293
|
`Continue: vgxness sdd continue --project ${plan.project} --change ${change}`,
|
|
294
294
|
`Status: vgxness sdd status --project ${plan.project} --change ${change}`,
|
|
@@ -369,7 +369,7 @@ function sddLines() {
|
|
|
369
369
|
'Change: not selected. Press Enter for the focused SDD gate.',
|
|
370
370
|
'',
|
|
371
371
|
'The Home TUI does not open local SDD state until a change id is selected.',
|
|
372
|
-
'Daily SDD should stay in OpenCode through conversation, VGXNESS MCP, and
|
|
372
|
+
'Daily SDD should stay in OpenCode through conversation, VGXNESS MCP, and reusable capability subagents.',
|
|
373
373
|
'',
|
|
374
374
|
'CLI fallback: `vgxness sdd continue --project <name> --change <id>`.',
|
|
375
375
|
];
|
|
@@ -10,7 +10,7 @@ export function renderSddStatus(input) {
|
|
|
10
10
|
? 'No next SDD phase remains for this change.'
|
|
11
11
|
: input.status.nextReadyPhase === undefined
|
|
12
12
|
? 'Review blockers or accept present draft artifacts before continuing.'
|
|
13
|
-
: `Continue the ${input.status.nextReadyPhase} phase in OpenCode using VGXNESS MCP and
|
|
13
|
+
: `Continue the ${input.status.nextReadyPhase} phase in OpenCode using VGXNESS MCP and reusable capability subagents.`;
|
|
14
14
|
const commandLabel = directPhaseCommand === undefined ? 'Diagnostic command' : 'Continuation guidance command';
|
|
15
15
|
const lines = [
|
|
16
16
|
'SDD Status',
|
|
@@ -43,7 +43,7 @@ export function renderSddNext(input) {
|
|
|
43
43
|
: `vgxness sdd status --project ${input.project} --change ${input.decision.change}`;
|
|
44
44
|
const commandLabel = input.decision.status === 'runnable' && input.decision.nextPhase !== undefined ? 'Continuation guidance command' : 'Diagnostic command';
|
|
45
45
|
const primaryAction = input.decision.status === 'runnable' && input.decision.nextPhase !== undefined
|
|
46
|
-
? `Continue the ${input.decision.nextPhase} phase in OpenCode using VGXNESS MCP and
|
|
46
|
+
? `Continue the ${input.decision.nextPhase} phase in OpenCode using VGXNESS MCP and reusable capability subagents.`
|
|
47
47
|
: input.decision.recommendedAction;
|
|
48
48
|
const lines = [
|
|
49
49
|
'SDD Next',
|
|
@@ -87,7 +87,7 @@ export function renderSddContinuationPlan(plan) {
|
|
|
87
87
|
`Reason: ${plan.reason}`,
|
|
88
88
|
'',
|
|
89
89
|
'Recommended plan:',
|
|
90
|
-
`- ${plan.status === 'runnable' && plan.nextPhase !== undefined ? `Continue the ${plan.nextPhase} phase in OpenCode using VGXNESS MCP and
|
|
90
|
+
`- ${plan.status === 'runnable' && plan.nextPhase !== undefined ? `Continue the ${plan.nextPhase} phase in OpenCode using VGXNESS MCP and reusable capability subagents.` : plan.recommendedAction}`,
|
|
91
91
|
`- ${suggestedCommandLabel}: ${plan.suggestedCommand}`,
|
|
92
92
|
`- Diagnostic command: ${plan.inspectCommand}`,
|
|
93
93
|
'',
|
|
@@ -56,7 +56,7 @@ function descriptionForTool(publicToolName) {
|
|
|
56
56
|
if (publicToolName === 'provider_change_plan')
|
|
57
57
|
return 'Read-only provider change plan preview; composes status, doctor, and OpenCode install planning without writing provider config.';
|
|
58
58
|
if (publicToolName === 'opencode_handoff_preview')
|
|
59
|
-
return 'Read-only OpenCode handoff preview; returns compact context for continuing in OpenCode conversation with VGXNESS MCP and
|
|
59
|
+
return 'Read-only OpenCode handoff preview; returns compact context for continuing in OpenCode conversation with VGXNESS MCP and reusable capability subagents, does not execute/control OpenCode, write .opencode/provider config, or create runs, checkpoints, events, sessions, or skill-usage records. Request verbose manager payload separately when artifact bodies are needed.';
|
|
60
60
|
if (publicToolName === 'verification_plan')
|
|
61
61
|
return 'Read-only verification plan recommendations only; does not execute commands, write provider config, persist results, create checkpoints, or infer SDD acceptance.';
|
|
62
62
|
if (publicToolName === 'run_resume_candidates')
|
package/dist/setup/setup-plan.js
CHANGED
|
@@ -175,7 +175,7 @@ function setupPlanFromOpenCode(input) {
|
|
|
175
175
|
actions: [
|
|
176
176
|
{
|
|
177
177
|
id: `opencode-${input.opencode.action}`,
|
|
178
|
-
description: `${input.opencode.overwriteVgxness ? 'Reinstall/overwrite VGXNESS entries in' : input.opencode.action === 'create' ? 'Create' : 'Merge'} OpenCode config with mcp.vgxness using vgxness mcp start${input.installMode === 'mcp-plus-agents' ? ' and manager/
|
|
178
|
+
description: `${input.opencode.overwriteVgxness ? 'Reinstall/overwrite VGXNESS entries in' : input.opencode.action === 'create' ? 'Create' : 'Merge'} OpenCode config with mcp.vgxness using vgxness mcp start${input.installMode === 'mcp-plus-agents' ? ' and manager/capability agents' : ''}${input.opencode.overwriteVgxness ? '; unrelated OpenCode config is preserved' : ''}${bashPermissionDescription(input.opencode.bashPermissionPolicy)}.`,
|
|
179
179
|
mutating: false,
|
|
180
180
|
targetPath: input.opencode.targetPath,
|
|
181
181
|
backupRequired: input.opencode.backupRequired,
|
|
@@ -84,7 +84,7 @@ function fromSddCockpit(cockpit, project, baseSafety, relatedRunContext) {
|
|
|
84
84
|
: cockpit.aggregateBlockers.map((blocker) => `${blocker.phase}: ${blocker.reason} at ${blocker.topicKey}${blocker.action === undefined ? '' : `; action=${blocker.action}`}`),
|
|
85
85
|
next: [
|
|
86
86
|
cockpit.next.status === 'runnable' && cockpit.next.nextPhase !== undefined
|
|
87
|
-
? `Continue the ${cockpit.next.nextPhase} phase in OpenCode using VGXNESS MCP and
|
|
87
|
+
? `Continue the ${cockpit.next.nextPhase} phase in OpenCode using VGXNESS MCP and reusable capability subagents.`
|
|
88
88
|
: cockpit.recommendedAction,
|
|
89
89
|
],
|
|
90
90
|
command,
|
package/docs/architecture.md
CHANGED
|
@@ -93,7 +93,7 @@ Gentle-AI/`gentle-pi` are strong references for the configurator and agent-behav
|
|
|
93
93
|
|
|
94
94
|
### Agent registry self-healing
|
|
95
95
|
|
|
96
|
-
The canonical agent manifest in `src/domain/agents/canonical-agent-manifest.ts` is the source of truth for built-in agents (1 manager + 10
|
|
96
|
+
The canonical agent manifest in `src/domain/agents/canonical-agent-manifest.ts` is the source of truth for built-in agents (1 manager + 10 generic capability subagents). At every CLI/MCP boot, `src/application/agents/boot-upgrade.ts` reconciles the live `agents` table with that manifest via `src/application/agents/agent-seed-upgrade-service.ts`: missing rows are created, drifted rows (changed `vgxnessPromptContractVersion`, instructions, adapters, or description) are overwritten, and matches are recorded as noop. Each non-noop outcome is appended to the `agent_seed_history` table for audit. Operators can opt out with `VGXNESS_SKIP_AGENT_SEED_AUTO_UPGRADE=1`. This eliminates the long-standing drift between the canonical prompt contract and stored agent rows after a version bump. The old `src/agents/*` paths remain compatibility facades during the migration window.
|
|
97
97
|
|
|
98
98
|
### Manager overlay parity across providers
|
|
99
99
|
|
|
@@ -160,7 +160,7 @@ The CLI exposes the same boundary through `vgxness sdd status|ready|save-artifac
|
|
|
160
160
|
|
|
161
161
|
Long term, SDD orchestration must combine two mechanisms:
|
|
162
162
|
|
|
163
|
-
1. **Agent behavior** — orchestrator prompts,
|
|
163
|
+
1. **Agent behavior** — orchestrator prompts, reusable capability subagents/chains, skills, per-phase models, and strict TDD instructions rendered into tools such as OpenCode, Claude Code, or Pi.
|
|
164
164
|
2. **Product state** — workflow definitions, prerequisites, artifacts, approvals, runs, checkpoints, verification results, and archive status stored locally and queried before advancing.
|
|
165
165
|
|
|
166
166
|
The first mechanism makes agents effective. The second makes the workflow enforceable and inspectable. `vgxness` should not rely on either one alone.
|
|
@@ -471,7 +471,7 @@ The envelope is always `installable:false` and `readOnly:true`. It does **not**
|
|
|
471
471
|
|
|
472
472
|
### OpenCode manager orchestration
|
|
473
473
|
|
|
474
|
-
The checked-in OpenCode default config and `seeds/agents/agent-seed-v1.json` define `vgxness-manager` as an MCP-first orchestrator. The manager should use `vgxness_session_restore` with the project and workspace directory when starting, resuming, or recovering context, then use SDD artifact/status tools, memory tools, agent resolution, run/preflight tools, and read-only payload/profile previews before delegating substantial
|
|
474
|
+
The checked-in OpenCode default config and `seeds/agents/agent-seed-v1.json` define `vgxness-manager` as an MCP-first orchestrator. The manager should use `vgxness_session_restore` with the project and workspace directory when starting, resuming, or recovering context, then use SDD artifact/status tools, memory tools, agent resolution, run/preflight tools, and read-only payload/profile previews before delegating substantial work to exact capability subagents. Before ending, pausing, handing off, or compacting, it should call `vgxness_session_close` with the current session id, actor `manager`, and an actionable summary; if no current session id is available, it must not invent one and should preserve the summary in its final response. Its OpenCode `permission.task` remains deny-by-default: `*` is denied and only the canonical capability subagent names plus legacy `vgxness-sdd-*` aliases are allowed explicitly. The seed/default prompts are self-contained and do not require external provider-native skill files; optional guidance should live in VGXNESS registry assets unless a future provider-native integration is explicitly designed.
|
|
475
475
|
|
|
476
476
|
## Run lifecycle
|
|
477
477
|
|
package/docs/cli.md
CHANGED
|
@@ -46,7 +46,7 @@ Release defaults used by the guided setup are:
|
|
|
46
46
|
- Provider: OpenCode.
|
|
47
47
|
- Database: global user data location by default.
|
|
48
48
|
- OpenCode/Claude provider config: user-global only for VGX-managed writes (`$HOME/.config/opencode/opencode.json`, `~/.claude.json`, `~/.claude/agents/*.md`, `~/.claude/CLAUDE.md`).
|
|
49
|
-
- Install mode: MCP plus manager/
|
|
49
|
+
- Install mode: MCP plus manager/capability agents (`mcp-plus-agents`).
|
|
50
50
|
- Public CLI language: English.
|
|
51
51
|
|
|
52
52
|
Recommended bootstrap and diagnostic flow after `npm install -g vgxness`:
|
|
@@ -66,7 +66,7 @@ vgxness resume --project <project> --run-id <id>
|
|
|
66
66
|
vgxness setup rollback --backup <path>
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
Daily SDD phase progression is OpenCode-first: talk to OpenCode with the VGXNESS MCP server installed, and let the hidden
|
|
69
|
+
Daily SDD phase progression is OpenCode-first: talk to OpenCode with the VGXNESS MCP server installed, and let the hidden capability subagents use MCP tools for phase or general capability work. The CLI and TUI remain supported for bootstrap/setup, diagnostics, recovery, manual fallback, and scripting; they are not the primary daily surface.
|
|
70
70
|
|
|
71
71
|
`setup plan`, `setup status`, and non-TTY `init` planning do not write provider config. Local VGXNESS store initialization may occur when the selected SQLite store is needed. They are human-readable by default; pass `--json` when you need parseable automation output. With the default global database, the OpenCode MCP command is `vgxness mcp start`; for custom/project-local DBs it includes `--db <path>`. The default and only VGX-managed OpenCode target is `$HOME/.config/opencode/opencode.json`; Claude managed targets are user-global (`~/.claude.json`, `~/.claude/agents/*.md`, and `~/.claude/CLAUDE.md`). `setup apply --yes` is the explicit provider-config write path. `setup rollback --backup <path>` validates a VGXNESS/OpenCode backup such as `opencode.json.backup-<timestamp>`, creates a pre-rollback backup of the current user-global target when present, restores the selected backup byte-for-byte, and recommends `vgxness doctor`.
|
|
72
72
|
|
|
@@ -76,7 +76,7 @@ Daily SDD phase progression is OpenCode-first: talk to OpenCode with the VGXNESS
|
|
|
76
76
|
|
|
77
77
|
## Daily workflow front doors
|
|
78
78
|
|
|
79
|
-
Use OpenCode conversation + VGXNESS MCP + hidden
|
|
79
|
+
Use OpenCode conversation + VGXNESS MCP + hidden capability subagents for normal daily SDD work. Use these top-level commands when you need diagnostics, recovery, manual fallback, or scriptable state inspection:
|
|
80
80
|
|
|
81
81
|
| Question | Command | Purpose |
|
|
82
82
|
|---|---|---|
|
|
@@ -87,7 +87,7 @@ Use OpenCode conversation + VGXNESS MCP + hidden SDD subagents for normal daily
|
|
|
87
87
|
|
|
88
88
|
Without `--change`, `--project`, or `--run-id`, these commands stay orientation-only and do not open the local memory store. With a selected change, project, or run, top-level `status`, `next`, and `resume` inspect SQLite read-only; formal `sdd` commands are non-provider, non-run-executing planning/artifact commands that may use the normal local store path. Pass `--json` for automation.
|
|
89
89
|
|
|
90
|
-
The usual SDD operator loop happens inside OpenCode: continue the phase in conversation while VGXNESS MCP and hidden
|
|
90
|
+
The usual SDD operator loop happens inside OpenCode: continue the phase in conversation while VGXNESS MCP and hidden capability subagents inspect readiness, persist artifacts, and report evidence. CLI commands remain fallback/recovery tools: inspect `status`, ask `next`, run `sdd continue` for a read-only continuation plan, or run `vgxness resume ...` for interrupted work. After a draft is ready, use `sdd accept-artifact` for explicit human acceptance; if an artifact was rejected, use `sdd reopen-artifact` to return it to draft before editing.
|
|
91
91
|
|
|
92
92
|
## Bun-first repository verification
|
|
93
93
|
|
|
@@ -293,7 +293,7 @@ Safety boundary: this is a preview only. It does **not** call providers, edit fi
|
|
|
293
293
|
|
|
294
294
|
## Code runtime CLI (`vgxness code`)
|
|
295
295
|
|
|
296
|
-
The experimental `vgxness code` runtime remains unavailable. Do not use `vgxness code` as an SDD fallback. Continue SDD phases in OpenCode conversation with VGXNESS MCP and hidden
|
|
296
|
+
The experimental `vgxness code` runtime remains unavailable. Do not use `vgxness code` as an SDD fallback. Continue SDD phases in OpenCode conversation with VGXNESS MCP and hidden capability subagents, and use `vgxness status`, `vgxness next`, `vgxness sdd continue`, or `vgxness resume` for safe CLI diagnostics and recovery.
|
|
297
297
|
|
|
298
298
|
## Workflow CLI
|
|
299
299
|
|
|
@@ -541,7 +541,7 @@ Manual/opt-in runtime validation checklist (not normal CI):
|
|
|
541
541
|
|
|
542
542
|
## SDD workflow examples
|
|
543
543
|
|
|
544
|
-
Use OpenCode conversation with VGXNESS MCP and hidden
|
|
544
|
+
Use OpenCode conversation with VGXNESS MCP and hidden capability subagents for normal daily SDD progression. Use `sdd` commands to inspect local SDD artifact state and save, read, or list phase artifacts for diagnostics, recovery, scripting, or manual fallback. These commands read and write only the selected `vgxness` local SQLite memory store: `--db <path>` when passed, `VGXNESS_DB_PATH` when set, or the global default database when neither override is present.
|
|
545
545
|
|
|
546
546
|
```bash
|
|
547
547
|
bun run cli:bun -- sdd status --project vgxness --change sdd-workflow-engine --db /tmp/vgxness-memory.sqlite
|
|
@@ -590,7 +590,7 @@ This seed file is repo-only in v1.3.0 package contents. If installed-package wor
|
|
|
590
590
|
|
|
591
591
|
The command prints an `AgentSeedLoadSummary` JSON payload with `created`, `updated`, `agents`, `subagents`, and `warnings`. Re-running the same seed is safe: records are upserted by the current project, scope, and name, so existing seed records are updated in place instead of duplicated.
|
|
592
592
|
|
|
593
|
-
The checked-in `vgxness-manager` and
|
|
593
|
+
The checked-in `vgxness-manager` and capability subagents are self-contained: their seed instructions describe the MCP-first orchestration contract inline and do not require external provider-native skill directories. SDD skills can still be registered and attached as optional VGXNESS registry assets when a project wants extra reusable guidance.
|
|
594
594
|
|
|
595
595
|
Seed loading preserves user-created agents that are absent from the manifest. It only writes to the selected local registry database (`--db`, `VGXNESS_DB_PATH`, or the global default); it does **not** create `.opencode/`, `.claude/`, provider config, or user/global OpenCode configuration.
|
|
596
596
|
|
package/docs/glossary.md
CHANGED
|
@@ -32,7 +32,7 @@ The canonical installed CLI/MCP runtime and verification path. Required `>= 1.3.
|
|
|
32
32
|
|
|
33
33
|
## Canonical agent manifest
|
|
34
34
|
|
|
35
|
-
The built-in, validated manifest that defines the manager agent and
|
|
35
|
+
The built-in, validated manifest that defines the manager agent and generic capability subagents (`vgxness-explore`, `vgxness-propose`, `vgxness-requirements`, `vgxness-design`, `vgxness-plan`, `vgxness-apply`, `vgxness-verify`, `vgxness-archive`, `vgxness-init`, and `vgxness-onboard`). Legacy `vgxness-sdd-*` task names remain callable as compatibility aliases, but the canonical provider-facing names are no longer SDD-prefixed. Lives in `src/domain/agents/canonical-agent-manifest.ts` with old-path compatibility through `src/agents/canonical-agent-manifest.ts`. `promptContractVersion` increments on breaking contract changes.
|
|
36
36
|
|
|
37
37
|
## Change (SDD)
|
|
38
38
|
|