@aipper/aiws 0.0.47 → 0.0.48
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/backup.d.ts +1 -1
- package/dist/backup.js.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/change-advice.d.ts +8 -6
- package/dist/commands/change-advice.js +2 -0
- package/dist/commands/change-advice.js.map +1 -1
- package/dist/commands/change-evidence-command.js +2 -0
- package/dist/commands/change-evidence-command.js.map +1 -1
- package/dist/commands/change-evidence-entry.js +1 -0
- package/dist/commands/change-evidence-entry.js.map +1 -1
- package/dist/commands/change-evidence.js +4 -1
- package/dist/commands/change-evidence.js.map +1 -1
- package/dist/commands/change-finish.js +9 -0
- package/dist/commands/change-finish.js.map +1 -1
- package/dist/commands/change-lifecycle-entry.js +2 -0
- package/dist/commands/change-lifecycle-entry.js.map +1 -1
- package/dist/commands/change-lifecycle.js +3 -0
- package/dist/commands/change-lifecycle.js.map +1 -1
- package/dist/commands/change-metrics-command.js +1 -0
- package/dist/commands/change-metrics-command.js.map +1 -1
- package/dist/commands/change-next-command.js +1 -0
- package/dist/commands/change-next-command.js.map +1 -1
- package/dist/commands/change-review-gates.d.ts +5 -1
- package/dist/commands/change-review-gates.js +4 -0
- package/dist/commands/change-review-gates.js.map +1 -1
- package/dist/commands/change-scope-gate.js +1 -0
- package/dist/commands/change-scope-gate.js.map +1 -1
- package/dist/commands/change-start.js +7 -4
- package/dist/commands/change-start.js.map +1 -1
- package/dist/commands/change-state-command.js +1 -0
- package/dist/commands/change-state-command.js.map +1 -1
- package/dist/commands/change-status-command.js +2 -1
- package/dist/commands/change-status-command.js.map +1 -1
- package/dist/commands/change-status-context.js +4 -0
- package/dist/commands/change-status-context.js.map +1 -1
- package/dist/commands/change-utils.js +2 -0
- package/dist/commands/change-utils.js.map +1 -1
- package/dist/commands/change-validate-entry.js +1 -0
- package/dist/commands/change-validate-entry.js.map +1 -1
- package/dist/commands/change-validate.js +1 -0
- package/dist/commands/change-validate.js.map +1 -1
- package/dist/commands/change.d.ts +11 -9
- package/dist/commands/change.js +19 -1
- package/dist/commands/change.js.map +1 -1
- package/dist/commands/dashboard.d.ts +9 -7
- package/dist/commands/dashboard.js +3 -0
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/goal-advance.d.ts +11 -3
- package/dist/commands/goal-advance.js +330 -21
- package/dist/commands/goal-advance.js.map +1 -1
- package/dist/commands/goal-advance.test.d.ts +1 -0
- package/dist/commands/goal-advance.test.js +271 -0
- package/dist/commands/goal-advance.test.js.map +1 -0
- package/dist/commands/goal-help.js +32 -15
- package/dist/commands/goal-help.js.map +1 -1
- package/dist/commands/goal-validate-state.d.ts +59 -1
- package/dist/commands/goal-validate-state.js +310 -4
- package/dist/commands/goal-validate-state.js.map +1 -1
- package/dist/commands/goal-validate.d.ts +5 -0
- package/dist/commands/goal-validate.js +120 -14
- package/dist/commands/goal-validate.js.map +1 -1
- package/dist/commands/hooks-install.js +1 -0
- package/dist/commands/hooks-install.js.map +1 -1
- package/dist/commands/hooks-status.js +1 -0
- package/dist/commands/hooks-status.js.map +1 -1
- package/dist/commands/memory.js +0 -2
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/opencode-auto.js +2 -0
- package/dist/commands/opencode-auto.js.map +1 -1
- package/dist/commands/opencode-status.js +1 -0
- package/dist/commands/opencode-status.js.map +1 -1
- package/dist/commands/opencode-supervise.js +7 -0
- package/dist/commands/opencode-supervise.js.map +1 -1
- package/dist/commands/rollback.js +1 -0
- package/dist/commands/rollback.js.map +1 -1
- package/dist/commands/update.js +2 -1
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.js +3 -0
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/ws-deliver.js +1 -0
- package/dist/commands/ws-deliver.js.map +1 -1
- package/dist/commands/ws-finish.js.map +1 -1
- package/dist/commands/ws-migrate.js +1 -0
- package/dist/commands/ws-migrate.js.map +1 -1
- package/dist/commands/ws-pull.js.map +1 -1
- package/dist/commands/ws-push.js +0 -3
- package/dist/commands/ws-push.js.map +1 -1
- package/dist/commands/ws-submodule-setup.js.map +1 -1
- package/dist/dashboard/app.js +1 -1
- package/dist/dashboard/app.js.map +1 -1
- package/dist/governance.js +5 -0
- package/dist/governance.js.map +1 -1
- package/dist/journal.js +9 -3
- package/dist/journal.js.map +1 -1
- package/dist/json-schema-lite.js +2 -0
- package/dist/json-schema-lite.js.map +1 -1
- package/dist/manifest.d.ts +21 -2
- package/dist/manifest.js +1 -0
- package/dist/manifest.js.map +1 -1
- package/dist/memory-bank/store.js +0 -1
- package/dist/memory-bank/store.js.map +1 -1
- package/dist/opencode-env.js +3 -0
- package/dist/opencode-env.js.map +1 -1
- package/dist/spec.js +7 -0
- package/dist/spec.js.map +1 -1
- package/package.json +4 -3
|
@@ -16,6 +16,298 @@ export const VALID_PHASES = [
|
|
|
16
16
|
"review",
|
|
17
17
|
"finish",
|
|
18
18
|
];
|
|
19
|
+
/**
|
|
20
|
+
* Detect semantic dirty states beyond pure structural validation.
|
|
21
|
+
* Examples: all checkpoints complete but overall status still active;
|
|
22
|
+
* status complete while some phases pending; missing completed_at.
|
|
23
|
+
*/
|
|
24
|
+
export function analyzeGoalDirtyState(state) {
|
|
25
|
+
const reasons = [];
|
|
26
|
+
const details = [];
|
|
27
|
+
const missingPhases = VALID_PHASES.filter((p) => !state.checkpoints[p]);
|
|
28
|
+
if (missingPhases.length > 0) {
|
|
29
|
+
reasons.push("missing_required_checkpoints");
|
|
30
|
+
details.push(`Missing checkpoints: ${missingPhases.join(", ")}`);
|
|
31
|
+
}
|
|
32
|
+
let allComplete = missingPhases.length === 0;
|
|
33
|
+
for (const phase of VALID_PHASES) {
|
|
34
|
+
const cp = state.checkpoints[phase];
|
|
35
|
+
if (!cp || cp.status !== "complete") {
|
|
36
|
+
allComplete = false;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const overall = state.status ?? "active";
|
|
41
|
+
if (allComplete && overall !== "complete" && overall !== "archived") {
|
|
42
|
+
reasons.push("all_checkpoints_complete_status_not_complete");
|
|
43
|
+
details.push(`All phase checkpoints are complete but status is "${overall}" (expected complete)`);
|
|
44
|
+
}
|
|
45
|
+
if (allComplete && overall === "active") {
|
|
46
|
+
// also covered above; if current_phase still set, extra signal
|
|
47
|
+
if (state.current_phase && state.current_phase !== "complete") {
|
|
48
|
+
reasons.push("status_active_current_phase_after_all_complete");
|
|
49
|
+
details.push(`status=active and current_phase="${state.current_phase}" but every checkpoint is complete`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (overall === "complete" || overall === "archived") {
|
|
53
|
+
for (const phase of VALID_PHASES) {
|
|
54
|
+
const cp = state.checkpoints[phase];
|
|
55
|
+
if (cp && cp.status !== "complete") {
|
|
56
|
+
reasons.push("status_complete_with_incomplete_checkpoints");
|
|
57
|
+
details.push(`status=${overall} but phase "${phase}" is ${cp.status}`);
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
for (const phase of VALID_PHASES) {
|
|
63
|
+
const cp = state.checkpoints[phase];
|
|
64
|
+
if (cp && cp.status === "complete" && !cp.completed_at) {
|
|
65
|
+
reasons.push("complete_missing_completed_at");
|
|
66
|
+
details.push(`Phase ${phase} is complete but missing completed_at`);
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// current_phase points at a phase that is complete while later phases pending
|
|
71
|
+
// is normal mid-advance; only flag when current_phase is complete AND all later are also complete
|
|
72
|
+
// or current_phase is unknown — handled structurally.
|
|
73
|
+
// If status active and current_phase is a completed phase with no pending later → dirty
|
|
74
|
+
if (overall === "active" && state.current_phase && state.current_phase !== "complete") {
|
|
75
|
+
const idx = VALID_PHASES.indexOf(state.current_phase);
|
|
76
|
+
if (idx >= 0) {
|
|
77
|
+
const cp = state.checkpoints[state.current_phase];
|
|
78
|
+
if (cp?.status === "complete") {
|
|
79
|
+
const laterPending = VALID_PHASES.slice(idx + 1).some((p) => {
|
|
80
|
+
const c = state.checkpoints[p];
|
|
81
|
+
return !c || c.status !== "complete";
|
|
82
|
+
});
|
|
83
|
+
if (!laterPending && allComplete) {
|
|
84
|
+
// already covered by all_complete cases
|
|
85
|
+
}
|
|
86
|
+
else if (!laterPending && !allComplete) {
|
|
87
|
+
// shouldn't happen if sequence rules hold
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Deduplicate reasons
|
|
93
|
+
const uniqReasons = [...new Set(reasons)];
|
|
94
|
+
return {
|
|
95
|
+
dirty: uniqReasons.length > 0,
|
|
96
|
+
reasons: uniqReasons,
|
|
97
|
+
details,
|
|
98
|
+
healable: uniqReasons.length > 0,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Heal dirty goal state into a legal FSM snapshot.
|
|
103
|
+
* Does not invent progress: only reconciles status/current_phase/completed_at/missing shells.
|
|
104
|
+
* Phase boundary transitions after heal still go through advance.
|
|
105
|
+
*/
|
|
106
|
+
export function healGoalState(state) {
|
|
107
|
+
const dirtyBefore = analyzeGoalDirtyState(state);
|
|
108
|
+
const actions = [];
|
|
109
|
+
const next = {
|
|
110
|
+
...state,
|
|
111
|
+
checkpoints: { ...state.checkpoints },
|
|
112
|
+
};
|
|
113
|
+
// Ensure all required checkpoints exist as pending shells
|
|
114
|
+
for (const phase of VALID_PHASES) {
|
|
115
|
+
if (!next.checkpoints[phase]) {
|
|
116
|
+
next.checkpoints[phase] = {
|
|
117
|
+
status: "pending",
|
|
118
|
+
attempts: 0,
|
|
119
|
+
completed_at: null,
|
|
120
|
+
error: null,
|
|
121
|
+
};
|
|
122
|
+
actions.push(`Created missing checkpoint shell: ${phase}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Fill completed_at on complete phases
|
|
126
|
+
const now = new Date().toISOString();
|
|
127
|
+
for (const phase of VALID_PHASES) {
|
|
128
|
+
const cp = next.checkpoints[phase];
|
|
129
|
+
if (cp.status === "complete" && !cp.completed_at) {
|
|
130
|
+
next.checkpoints[phase] = { ...cp, completed_at: now };
|
|
131
|
+
actions.push(`Set completed_at on phase ${phase}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const allComplete = VALID_PHASES.every((p) => next.checkpoints[p]?.status === "complete");
|
|
135
|
+
// status=complete/archived but incomplete checkpoints → reopen as active at first incomplete
|
|
136
|
+
if ((next.status === "complete" || next.status === "archived") &&
|
|
137
|
+
!allComplete) {
|
|
138
|
+
const firstIncomplete = VALID_PHASES.find((p) => next.checkpoints[p]?.status !== "complete") ??
|
|
139
|
+
VALID_PHASES[0];
|
|
140
|
+
next.status = "active";
|
|
141
|
+
next.current_phase = firstIncomplete;
|
|
142
|
+
// Keep pending/failed as-is (do not force in_progress): advance --heal
|
|
143
|
+
// must not auto-complete a phase that never actually ran.
|
|
144
|
+
const cp = next.checkpoints[firstIncomplete];
|
|
145
|
+
if (cp.status === "failed") {
|
|
146
|
+
next.checkpoints[firstIncomplete] = {
|
|
147
|
+
...cp,
|
|
148
|
+
status: "pending",
|
|
149
|
+
error: null,
|
|
150
|
+
};
|
|
151
|
+
actions.push(`Cleared failed status on phase "${firstIncomplete}" → pending`);
|
|
152
|
+
}
|
|
153
|
+
actions.push(`Reopened status to active at phase "${firstIncomplete}" (was complete with incomplete checkpoints)`);
|
|
154
|
+
}
|
|
155
|
+
// All complete but status still active/paused → mark complete
|
|
156
|
+
if (allComplete && next.status !== "complete" && next.status !== "archived") {
|
|
157
|
+
next.status = "complete";
|
|
158
|
+
next.current_phase = "finish";
|
|
159
|
+
actions.push(`Set status=complete (all checkpoints complete; was "${state.status ?? "undefined"}")`);
|
|
160
|
+
}
|
|
161
|
+
// status active, all complete, current_phase lingering → normalize
|
|
162
|
+
if (allComplete && next.status === "complete") {
|
|
163
|
+
if (next.current_phase && next.current_phase !== "finish" && next.current_phase !== "complete") {
|
|
164
|
+
next.current_phase = "finish";
|
|
165
|
+
actions.push(`Normalized current_phase to finish after heal-complete`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// If active and current_phase is complete with later pending, leave for advance
|
|
169
|
+
// If active and current_phase missing, set to first incomplete
|
|
170
|
+
if (next.status === "active" || !next.status) {
|
|
171
|
+
if (!next.status) {
|
|
172
|
+
next.status = "active";
|
|
173
|
+
actions.push("Defaulted missing status to active");
|
|
174
|
+
}
|
|
175
|
+
const firstIncomplete = VALID_PHASES.find((p) => next.checkpoints[p]?.status !== "complete");
|
|
176
|
+
if (firstIncomplete) {
|
|
177
|
+
if (!next.current_phase || next.current_phase === "complete") {
|
|
178
|
+
next.current_phase = firstIncomplete;
|
|
179
|
+
actions.push(`Set current_phase to first incomplete: ${firstIncomplete}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
next.updated_at = now;
|
|
184
|
+
return {
|
|
185
|
+
healed: actions.length > 0,
|
|
186
|
+
state: next,
|
|
187
|
+
actions,
|
|
188
|
+
dirtyBefore,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Create a minimal valid initial goal state (all pending).
|
|
193
|
+
*/
|
|
194
|
+
export function createInitialGoalState(goalId) {
|
|
195
|
+
const now = new Date().toISOString();
|
|
196
|
+
const checkpoints = {};
|
|
197
|
+
for (const phase of VALID_PHASES) {
|
|
198
|
+
checkpoints[phase] = {
|
|
199
|
+
status: "pending",
|
|
200
|
+
attempts: 0,
|
|
201
|
+
completed_at: null,
|
|
202
|
+
error: null,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
version: "2",
|
|
207
|
+
goal_id: goalId,
|
|
208
|
+
status: "active",
|
|
209
|
+
current_phase: "intake",
|
|
210
|
+
checkpoints,
|
|
211
|
+
created_at: now,
|
|
212
|
+
updated_at: now,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Parse ws_goal.state from goal markdown frontmatter (simple, no full YAML dep).
|
|
217
|
+
*/
|
|
218
|
+
export function parseGoalMarkdownState(mdContent) {
|
|
219
|
+
const fm = mdContent.match(/^---\r?\n([\s\S]*?)\r?\n---/);
|
|
220
|
+
if (!fm)
|
|
221
|
+
return { state: null, iteration: null };
|
|
222
|
+
const body = fm[1] ?? "";
|
|
223
|
+
const stateMatch = body.match(/^\s*state:\s*["']?(\w+)["']?\s*$/m) ||
|
|
224
|
+
body.match(/^\s*ws_goal\.state:\s*["']?(\w+)["']?\s*$/m);
|
|
225
|
+
// nested under ws_goal:
|
|
226
|
+
let state = stateMatch?.[1] ?? null;
|
|
227
|
+
if (!state) {
|
|
228
|
+
const nested = body.match(/ws_goal:\s*\n(?:[ \t]+[^\n]*\n)*?[ \t]+state:\s*["']?(\w+)["']?/);
|
|
229
|
+
state = nested?.[1] ?? null;
|
|
230
|
+
}
|
|
231
|
+
const iterMatch = body.match(/^\s*iteration:\s*(\d+)\s*$/m);
|
|
232
|
+
return {
|
|
233
|
+
state,
|
|
234
|
+
iteration: iterMatch ? Number(iterMatch[1]) : null,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Find goals that have .md with active/paused but no .state.json (migration candidates §7.6).
|
|
239
|
+
*/
|
|
240
|
+
export async function findGoalsNeedingMigration(goalDir) {
|
|
241
|
+
let entries;
|
|
242
|
+
try {
|
|
243
|
+
entries = await fs.readdir(goalDir);
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
return [];
|
|
247
|
+
}
|
|
248
|
+
const out = [];
|
|
249
|
+
for (const entry of entries) {
|
|
250
|
+
if (!entry.endsWith(".md") || entry.startsWith("."))
|
|
251
|
+
continue;
|
|
252
|
+
const goalId = entry.slice(0, -3);
|
|
253
|
+
const statePath = path.join(goalDir, `${goalId}.state.json`);
|
|
254
|
+
if (await pathExists(statePath))
|
|
255
|
+
continue;
|
|
256
|
+
const mdPath = path.join(goalDir, entry);
|
|
257
|
+
try {
|
|
258
|
+
const content = await fs.readFile(mdPath, "utf8");
|
|
259
|
+
const { state } = parseGoalMarkdownState(content);
|
|
260
|
+
if (state === "active" || state === "paused") {
|
|
261
|
+
out.push({ goalId, mdPath, mdState: state });
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
catch {
|
|
265
|
+
// skip unreadable
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return out.sort((a, b) => a.goalId.localeCompare(b.goalId));
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Migrate legacy goal .md → state.json (all checkpoints pending, current_phase null per §7.6).
|
|
272
|
+
*/
|
|
273
|
+
export async function migrateGoalFromMarkdown(goalDir, goalId) {
|
|
274
|
+
const mdPath = path.join(goalDir, `${goalId}.md`);
|
|
275
|
+
const statePath = path.join(goalDir, `${goalId}.state.json`);
|
|
276
|
+
if (await pathExists(statePath)) {
|
|
277
|
+
return {
|
|
278
|
+
ok: false,
|
|
279
|
+
statePath,
|
|
280
|
+
message: `State already exists: ${statePath}`,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
if (!(await pathExists(mdPath))) {
|
|
284
|
+
return {
|
|
285
|
+
ok: false,
|
|
286
|
+
statePath,
|
|
287
|
+
message: `Goal markdown not found: ${mdPath}`,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
const content = await fs.readFile(mdPath, "utf8");
|
|
291
|
+
const { state: mdState } = parseGoalMarkdownState(content);
|
|
292
|
+
if (mdState !== "active" && mdState !== "paused") {
|
|
293
|
+
return {
|
|
294
|
+
ok: false,
|
|
295
|
+
statePath,
|
|
296
|
+
message: `Migration only for active/paused md; found state=${mdState ?? "null"}`,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
const initial = createInitialGoalState(goalId);
|
|
300
|
+
// §7.6: current_phase null means full re-run
|
|
301
|
+
initial.current_phase = undefined;
|
|
302
|
+
initial.status = mdState === "paused" ? "paused" : "active";
|
|
303
|
+
// keep intake as first pending — unset current so advance starts intake
|
|
304
|
+
await writeGoalState(statePath, initial);
|
|
305
|
+
return {
|
|
306
|
+
ok: true,
|
|
307
|
+
statePath,
|
|
308
|
+
message: `Migrated ${goalId} from markdown (status=${initial.status}, all checkpoints pending)`,
|
|
309
|
+
};
|
|
310
|
+
}
|
|
19
311
|
/**
|
|
20
312
|
* Validate a goal state's structural integrity.
|
|
21
313
|
*
|
|
@@ -27,7 +319,8 @@ export const VALID_PHASES = [
|
|
|
27
319
|
* e) Group statuses are valid (pending/in_progress/complete)
|
|
28
320
|
* f) Groups with a `phase` set must have that parent phase complete
|
|
29
321
|
*/
|
|
30
|
-
export function validateGoalState(state) {
|
|
322
|
+
export function validateGoalState(state, options = {}) {
|
|
323
|
+
const includeDirty = options.includeDirty !== false;
|
|
31
324
|
const errors = [];
|
|
32
325
|
const warnings = [];
|
|
33
326
|
// a) All required phase checkpoints exist
|
|
@@ -37,7 +330,7 @@ export function validateGoalState(state) {
|
|
|
37
330
|
errors.push(`Missing required phase checkpoint: ${phase}`);
|
|
38
331
|
continue;
|
|
39
332
|
}
|
|
40
|
-
const validStatuses = new Set(["pending", "in_progress", "complete"]);
|
|
333
|
+
const validStatuses = new Set(["pending", "in_progress", "complete", "failed"]);
|
|
41
334
|
if (!validStatuses.has(cp.status)) {
|
|
42
335
|
errors.push(`Phase ${phase} has invalid status: ${cp.status}`);
|
|
43
336
|
}
|
|
@@ -142,6 +435,19 @@ export function validateGoalState(state) {
|
|
|
142
435
|
!VALID_PHASES.includes(state.current_phase)) {
|
|
143
436
|
warnings.push(`current_phase "${state.current_phase}" is not in the standard phase sequence`);
|
|
144
437
|
}
|
|
438
|
+
// Semantic dirty checks (TOOLING-003D): reject inconsistent FSM snapshots
|
|
439
|
+
if (includeDirty) {
|
|
440
|
+
const dirty = analyzeGoalDirtyState(state);
|
|
441
|
+
if (dirty.dirty) {
|
|
442
|
+
for (const d of dirty.details) {
|
|
443
|
+
if (d.includes("missing completed_at") &&
|
|
444
|
+
errors.some((e) => e.includes("missing completed_at"))) {
|
|
445
|
+
continue;
|
|
446
|
+
}
|
|
447
|
+
errors.push(`Dirty state: ${d}`);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
}
|
|
145
451
|
return { valid: errors.length === 0, errors, warnings };
|
|
146
452
|
}
|
|
147
453
|
/**
|
|
@@ -311,8 +617,8 @@ export const PHASE_GUIDANCE = {
|
|
|
311
617
|
intake: "Run workspace context scan (diff/log/branch/stash), then run the intake workflow: ask clarifying questions to identify scope, boundaries, constraints, and acceptance criteria. Output an intake draft to .aiws/plan/.",
|
|
312
618
|
goal_def: "Define the goal objective: write `.aiws/goals/<goal-id>.md` with target base branch, dependency chain, scope, boundaries, and verification criteria. Create `.aiws/goals/<goal-id>.state.json` with `status=active`.",
|
|
313
619
|
dep_check: "Check upstream dependency chain health: examine each change branch between current and main. Verify artifact completeness (proposal/tasks/design exist), task completion rate, review status (no HIGH blockers), and truth drift (`aiws validate .`).",
|
|
314
|
-
ws_analysis: "Analyze workspace state for conflicts: check dirty files (`git diff --stat`), submodule status, existing change artifacts (`git branch --list 'change/*'`), unpushed commits, stash. Classify each item as HIGH/MED/LOW/NONE. HIGH items
|
|
315
|
-
plan: "Create execution plan: run `aiws change start <goal-id
|
|
620
|
+
ws_analysis: "Analyze workspace state for conflicts: check dirty files (`git diff --stat`), submodule status (`git submodule foreach --quiet 'git status --porcelain'`), existing change artifacts (`git branch --list 'change/*'`), unpushed commits, stash. Classify each item as HIGH/MED/LOW/NONE. HIGH items auto-handle (dirty → stash push --keep-index; submodule dirty → stash in submodule + warn; unpushed → warn-and-continue). Only block if auto-handle fails.",
|
|
621
|
+
plan: "Create execution plan: first ensure clean workspace (stash uncommitted changes with `git stash push --keep-index -m \"ws-goal auto-stash: <goal-id>\"`), then run `aiws change start <goal-id>` to create change branch, then write proposal.md and plan file, then run plan-verify. Do NOT implement code.",
|
|
316
622
|
dev: "Implement the plan: write code per the plan/spec. Verify with `lsp_diagnostics` on changed files. Ensure lints and type checks pass. Do NOT commit or create PR.",
|
|
317
623
|
review: "Review implementation: audit code quality, verify requirements coverage, check for HIGH blockers, validate against acceptance criteria. Produce evidence files (review/review.md, review/findings.csv). Do NOT modify code.",
|
|
318
624
|
finish: "Complete the change: commit changes (follow commit conventions), merge change branch to target, push. Update goal state to `status=complete`.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goal-validate-state.js","sourceRoot":"","sources":["../../src/commands/goal-validate-state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"goal-validate-state.js","sourceRoot":"","sources":["../../src/commands/goal-validate-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,17 @@ export interface GoalValidateStateOptions {
|
|
|
3
3
|
goalDir: string;
|
|
4
4
|
/** Optional goal ID. If omitted, validate all goals */
|
|
5
5
|
goalId?: string;
|
|
6
|
+
/** Heal dirty states in place (sole writer path via writeGoalState) */
|
|
7
|
+
heal?: boolean;
|
|
8
|
+
/** Structured JSON output */
|
|
9
|
+
json?: boolean;
|
|
6
10
|
}
|
|
7
11
|
/**
|
|
8
12
|
* `aiws goal validate-state` command handler.
|
|
9
13
|
*
|
|
10
14
|
* Validates one or all goal state files and reports errors/warnings.
|
|
11
15
|
* Exit code 0 if all valid, 1 if any errors found.
|
|
16
|
+
* With --heal, applies healGoalState and writes (TOOLING-003D).
|
|
12
17
|
*/
|
|
13
18
|
export declare function goalValidateStateCommand(options: GoalValidateStateOptions): Promise<{
|
|
14
19
|
ok: boolean;
|
|
@@ -1,22 +1,48 @@
|
|
|
1
|
-
import { readGoalState, validateGoalState, scanGoalStateFiles, resolveGoalStatePath, } from "./goal-validate-state.js";
|
|
1
|
+
import { readGoalState, writeGoalState, validateGoalState, scanGoalStateFiles, resolveGoalStatePath, analyzeGoalDirtyState, healGoalState, findGoalsNeedingMigration, migrateGoalFromMarkdown, } from "./goal-validate-state.js";
|
|
2
2
|
/**
|
|
3
3
|
* `aiws goal validate-state` command handler.
|
|
4
4
|
*
|
|
5
5
|
* Validates one or all goal state files and reports errors/warnings.
|
|
6
6
|
* Exit code 0 if all valid, 1 if any errors found.
|
|
7
|
+
* With --heal, applies healGoalState and writes (TOOLING-003D).
|
|
7
8
|
*/
|
|
8
9
|
export async function goalValidateStateCommand(options) {
|
|
9
10
|
if (options.goalId) {
|
|
10
|
-
return validateSingleGoal(options.goalDir, options.goalId);
|
|
11
|
+
return validateSingleGoal(options.goalDir, options.goalId, options);
|
|
11
12
|
}
|
|
12
|
-
return validateAllGoals(options.goalDir);
|
|
13
|
+
return validateAllGoals(options.goalDir, options);
|
|
13
14
|
}
|
|
14
|
-
async function validateSingleGoal(goalDir, goalId) {
|
|
15
|
+
async function validateSingleGoal(goalDir, goalId, options) {
|
|
15
16
|
const statePath = await resolveGoalStatePath(goalDir, goalId);
|
|
16
17
|
if (!statePath) {
|
|
18
|
+
if (options.heal) {
|
|
19
|
+
const mig = await migrateGoalFromMarkdown(goalDir, goalId);
|
|
20
|
+
if (mig.ok) {
|
|
21
|
+
return {
|
|
22
|
+
ok: true,
|
|
23
|
+
output: options.json
|
|
24
|
+
? JSON.stringify({
|
|
25
|
+
ok: true,
|
|
26
|
+
goal_id: goalId,
|
|
27
|
+
healed: true,
|
|
28
|
+
message: mig.message,
|
|
29
|
+
sole_writer_note: "Phase transitions after migration must use aiws goal advance",
|
|
30
|
+
}, null, 2)
|
|
31
|
+
: `HEALED (migrate): ${mig.message}`,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
ok: false,
|
|
36
|
+
output: `Goal state file not found for "${goalId}" in ${goalDir}. ${mig.message}`,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
const candidates = await findGoalsNeedingMigration(goalDir);
|
|
40
|
+
const hint = candidates.some((c) => c.goalId === goalId)
|
|
41
|
+
? ` Run: aiws goal validate-state --goal-id ${goalId} --heal (or advance --heal)`
|
|
42
|
+
: "";
|
|
17
43
|
return {
|
|
18
44
|
ok: false,
|
|
19
|
-
output: `Goal state file not found for "${goalId}" in ${goalDir}`,
|
|
45
|
+
output: `Goal state file not found for "${goalId}" in ${goalDir}.${hint}`,
|
|
20
46
|
};
|
|
21
47
|
}
|
|
22
48
|
let state;
|
|
@@ -29,11 +55,56 @@ async function validateSingleGoal(goalDir, goalId) {
|
|
|
29
55
|
output: `Failed to read ${statePath}: ${String(err)}`,
|
|
30
56
|
};
|
|
31
57
|
}
|
|
32
|
-
const
|
|
58
|
+
const structural = validateGoalState(state, { includeDirty: false });
|
|
59
|
+
const dirty = analyzeGoalDirtyState(state);
|
|
60
|
+
let healActions = [];
|
|
61
|
+
if (options.heal && (dirty.dirty || !structural.valid)) {
|
|
62
|
+
const heal = healGoalState(state);
|
|
63
|
+
healActions = heal.actions;
|
|
64
|
+
state = heal.state;
|
|
65
|
+
if (heal.healed) {
|
|
66
|
+
await writeGoalState(statePath, state);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const result = validateGoalState(state, { includeDirty: true });
|
|
70
|
+
const dirtyAfter = analyzeGoalDirtyState(state);
|
|
71
|
+
if (options.json) {
|
|
72
|
+
return {
|
|
73
|
+
ok: result.valid,
|
|
74
|
+
output: JSON.stringify({
|
|
75
|
+
ok: result.valid,
|
|
76
|
+
goal_id: state.goal_id || goalId,
|
|
77
|
+
file: statePath,
|
|
78
|
+
status: result.valid ? "PASS" : "FAIL",
|
|
79
|
+
errors: result.errors,
|
|
80
|
+
warnings: result.warnings,
|
|
81
|
+
dirty: dirtyAfter.dirty,
|
|
82
|
+
dirty_reasons: dirtyAfter.reasons,
|
|
83
|
+
healed: healActions.length > 0,
|
|
84
|
+
heal_actions: healActions,
|
|
85
|
+
sole_writer: "aiws goal advance",
|
|
86
|
+
}, null, 2),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
33
89
|
const lines = [];
|
|
34
90
|
lines.push(`Goal: ${state.goal_id || goalId}`);
|
|
35
91
|
lines.push(` File: ${statePath}`);
|
|
36
92
|
lines.push(` Status: ${result.valid ? "PASS" : "FAIL"}`);
|
|
93
|
+
if (healActions.length > 0) {
|
|
94
|
+
lines.push(` Healed (${healActions.length}):`);
|
|
95
|
+
for (const a of healActions) {
|
|
96
|
+
lines.push(` - ${a}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (dirtyAfter.dirty) {
|
|
100
|
+
lines.push(` Dirty (${dirtyAfter.reasons.join(", ")}):`);
|
|
101
|
+
for (const d of dirtyAfter.details) {
|
|
102
|
+
lines.push(` - ${d}`);
|
|
103
|
+
}
|
|
104
|
+
if (!options.heal) {
|
|
105
|
+
lines.push(` Hint: aiws goal validate-state --goal-id ${goalId} --heal (or advance --heal)`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
37
108
|
if (result.errors.length > 0) {
|
|
38
109
|
lines.push(` Errors (${result.errors.length}):`);
|
|
39
110
|
for (const err of result.errors) {
|
|
@@ -46,19 +117,14 @@ async function validateSingleGoal(goalDir, goalId) {
|
|
|
46
117
|
lines.push(` - ${warn}`);
|
|
47
118
|
}
|
|
48
119
|
}
|
|
120
|
+
lines.push(` Note: phase boundary writes → sole writer \`aiws goal advance\` (do not hand-edit state.json status fields)`);
|
|
49
121
|
return {
|
|
50
122
|
ok: result.valid,
|
|
51
123
|
output: lines.join("\n"),
|
|
52
124
|
};
|
|
53
125
|
}
|
|
54
|
-
async function validateAllGoals(goalDir) {
|
|
126
|
+
async function validateAllGoals(goalDir, options) {
|
|
55
127
|
const files = await scanGoalStateFiles(goalDir);
|
|
56
|
-
if (files.length === 0) {
|
|
57
|
-
return {
|
|
58
|
-
ok: true,
|
|
59
|
-
output: `No goal state files found in ${goalDir}`,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
128
|
const lines = [];
|
|
63
129
|
let hasErrors = false;
|
|
64
130
|
let totalGoals = 0;
|
|
@@ -76,7 +142,19 @@ async function validateAllGoals(goalDir) {
|
|
|
76
142
|
hasErrors = true;
|
|
77
143
|
continue;
|
|
78
144
|
}
|
|
79
|
-
|
|
145
|
+
if (options.heal) {
|
|
146
|
+
const dirty = analyzeGoalDirtyState(state);
|
|
147
|
+
const structural = validateGoalState(state, { includeDirty: false });
|
|
148
|
+
if (dirty.dirty || !structural.valid) {
|
|
149
|
+
const heal = healGoalState(state);
|
|
150
|
+
if (heal.healed) {
|
|
151
|
+
state = heal.state;
|
|
152
|
+
await writeGoalState(file, state);
|
|
153
|
+
lines.push(`[HEAL] ${state.goal_id || file}: ${heal.actions.join("; ")}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
const result = validateGoalState(state, { includeDirty: true });
|
|
80
158
|
const goalLabel = state.goal_id || file;
|
|
81
159
|
if (result.valid) {
|
|
82
160
|
lines.push(`[PASS] ${goalLabel}${result.warnings.length > 0 ? ` (${result.warnings.length} warnings)` : ""}`);
|
|
@@ -91,7 +169,35 @@ async function validateAllGoals(goalDir) {
|
|
|
91
169
|
hasErrors = true;
|
|
92
170
|
}
|
|
93
171
|
}
|
|
172
|
+
// Migration candidates (missing state)
|
|
173
|
+
const candidates = await findGoalsNeedingMigration(goalDir);
|
|
174
|
+
if (candidates.length > 0) {
|
|
175
|
+
lines.push(`\nMigration candidates (active/paused .md without state.json): ${candidates.map((c) => c.goalId).join(", ")}`);
|
|
176
|
+
if (options.heal) {
|
|
177
|
+
for (const c of candidates) {
|
|
178
|
+
const mig = await migrateGoalFromMarkdown(goalDir, c.goalId);
|
|
179
|
+
lines.push(mig.ok ? `[HEAL] ${mig.message}` : `[SKIP] ${mig.message}`);
|
|
180
|
+
if (mig.ok) {
|
|
181
|
+
totalGoals++;
|
|
182
|
+
passed++;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
lines.push(`Hint: aiws goal validate-state --heal (or advance --heal --goal-id <id>)`);
|
|
188
|
+
// missing state for active goals is a soft warning unless --strict; treat as fail if heal not used
|
|
189
|
+
hasErrors = true;
|
|
190
|
+
failed += candidates.length;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (files.length === 0 && candidates.length === 0) {
|
|
194
|
+
return {
|
|
195
|
+
ok: true,
|
|
196
|
+
output: `No goal state files found in ${goalDir}`,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
94
199
|
lines.push(`\nSummary: ${totalGoals} goal(s) — ${passed} passed, ${failed} failed`);
|
|
200
|
+
lines.push("Sole writer for phase transitions: aiws goal advance (not freehand state.json edits)");
|
|
95
201
|
return {
|
|
96
202
|
ok: !hasErrors,
|
|
97
203
|
output: lines.join("\n"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goal-validate.js","sourceRoot":"","sources":["../../src/commands/goal-validate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"goal-validate.js","sourceRoot":"","sources":["../../src/commands/goal-validate.ts"],"names":[],"mappings":"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"}
|