gm-skill 2.0.1644 → 2.0.1645

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-plugkit",
3
- "version": "2.0.1644",
3
+ "version": "2.0.1645",
4
4
  "description": "Bootstrap and daemon-spawn tool for gm plugkit binary. Downloads the correct platform binary, verifies SHA256, and starts the spool watcher daemon. Includes plugkit-wasm-wrapper for WASM-based spool watching.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -1 +1 @@
1
- 0.1.702
1
+ 0.1.703
package/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.1644",
3
+ "version": "2.0.1645",
4
4
  "description": "Spool-dispatch orchestration engine with unified state machine, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
@@ -320,9 +320,14 @@ function checkDispatchGates(sessionId, operation, extra) {
320
320
  const residuals = [];
321
321
  if (fs.existsSync(prdPath)) {
322
322
  try {
323
- const statuses = yamlStatusValues(fs.readFileSync(prdPath, 'utf8'));
324
- if (statuses.includes('pending') || statuses.includes('in_progress')) {
325
- residuals.push('PRD has open items -- resolve or name-and-stop before declaring done');
323
+ const raw = fs.readFileSync(prdPath, 'utf8');
324
+ if (raw.trim().length === 0) {
325
+ residuals.push('prd.yml is empty/truncated -- cannot confirm PRD is actually done; restore from git or re-scope before declaring done');
326
+ } else {
327
+ const statuses = yamlStatusValues(raw);
328
+ if (statuses.includes('pending') || statuses.includes('in_progress')) {
329
+ residuals.push('PRD has open items -- resolve or name-and-stop before declaring done');
330
+ }
326
331
  }
327
332
  } catch (e) {
328
333
  residuals.push(`prd.yml unreadable (${e.message}) -- cannot verify PRD state`);
@@ -330,9 +335,14 @@ function checkDispatchGates(sessionId, operation, extra) {
330
335
  }
331
336
  if (fs.existsSync(mutsPath)) {
332
337
  try {
333
- const statuses = yamlStatusValues(fs.readFileSync(mutsPath, 'utf8'));
334
- if (statuses.includes('unknown')) {
335
- residuals.push('unresolved mutables present -- resolve with witness_evidence before declaring done');
338
+ const raw = fs.readFileSync(mutsPath, 'utf8');
339
+ if (raw.trim().length === 0) {
340
+ residuals.push('mutables.yml is empty/truncated -- cannot confirm mutables are actually resolved; restore from git or re-scope before declaring done');
341
+ } else {
342
+ const statuses = yamlStatusValues(raw);
343
+ if (statuses.includes('unknown')) {
344
+ residuals.push('unresolved mutables present -- resolve with witness_evidence before declaring done');
345
+ }
336
346
  }
337
347
  } catch (e) {
338
348
  residuals.push(`mutables.yml unreadable (${e.message}) -- cannot verify mutable state`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-skill",
3
- "version": "2.0.1644",
3
+ "version": "2.0.1645",
4
4
  "description": "Canonical universal harness — AI-native software engineering via skill-driven orchestration; bootstraps plugkit for task execution and session isolation. Install in any AI coding agent host.",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",