@prd-improve/cli 1.2.0 → 1.6.0

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.
Files changed (72) hide show
  1. package/dist/changelog.d.ts +13 -7
  2. package/dist/changelog.js +12 -15
  3. package/dist/changelog.js.map +1 -1
  4. package/dist/cli.js +44 -7
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/_prdSource.d.ts +35 -0
  7. package/dist/commands/_prdSource.js +110 -0
  8. package/dist/commands/_prdSource.js.map +1 -0
  9. package/dist/commands/closeout.d.ts +2 -0
  10. package/dist/commands/closeout.js +60 -12
  11. package/dist/commands/closeout.js.map +1 -1
  12. package/dist/commands/context.js +11 -117
  13. package/dist/commands/context.js.map +1 -1
  14. package/dist/commands/export.d.ts +8 -0
  15. package/dist/commands/export.js +179 -0
  16. package/dist/commands/export.js.map +1 -0
  17. package/dist/commands/freeze.d.ts +2 -0
  18. package/dist/commands/freeze.js +63 -13
  19. package/dist/commands/freeze.js.map +1 -1
  20. package/dist/commands/init.js +3 -2
  21. package/dist/commands/init.js.map +1 -1
  22. package/dist/commands/migrate-yaml.js +6 -0
  23. package/dist/commands/migrate-yaml.js.map +1 -1
  24. package/dist/commands/reopen.d.ts +4 -0
  25. package/dist/commands/reopen.js +76 -0
  26. package/dist/commands/reopen.js.map +1 -0
  27. package/dist/commands/resolve.d.ts +8 -0
  28. package/dist/commands/resolve.js +127 -0
  29. package/dist/commands/resolve.js.map +1 -0
  30. package/dist/commands/skill.d.ts +4 -0
  31. package/dist/commands/skill.js +16 -1
  32. package/dist/commands/skill.js.map +1 -1
  33. package/dist/commands/validate.d.ts +2 -0
  34. package/dist/commands/validate.js +4 -2
  35. package/dist/commands/validate.js.map +1 -1
  36. package/dist/i18n/en.js +45 -1
  37. package/dist/i18n/en.js.map +1 -1
  38. package/dist/i18n/help.en.d.ts +22 -0
  39. package/dist/i18n/help.en.js +22 -0
  40. package/dist/i18n/help.en.js.map +1 -1
  41. package/dist/i18n/help.zh.d.ts +22 -0
  42. package/dist/i18n/help.zh.js +22 -0
  43. package/dist/i18n/help.zh.js.map +1 -1
  44. package/dist/i18n/helpGroups.js +1 -1
  45. package/dist/i18n/helpGroups.js.map +1 -1
  46. package/dist/i18n/peekLang.d.ts +1 -0
  47. package/dist/i18n/peekLang.js +19 -0
  48. package/dist/i18n/peekLang.js.map +1 -1
  49. package/dist/i18n/zh.d.ts +112 -1
  50. package/dist/i18n/zh.js +45 -1
  51. package/dist/i18n/zh.js.map +1 -1
  52. package/dist/renderer/context-md.d.ts +13 -2
  53. package/dist/renderer/context-md.js +12 -12
  54. package/dist/renderer/context-md.js.map +1 -1
  55. package/dist/renderer/spec-md.d.ts +19 -0
  56. package/dist/renderer/spec-md.js +206 -0
  57. package/dist/renderer/spec-md.js.map +1 -0
  58. package/dist/schema/prd.js +15 -0
  59. package/dist/schema/prd.js.map +1 -1
  60. package/dist/skill/prd-improve-forge/SKILL.md +94 -7
  61. package/dist/skill/prd-improve-forge/checklists/batch-import.md +1 -0
  62. package/dist/skill/prd-improve-forge/checklists/dimensions/integration-seam.md +131 -0
  63. package/dist/skill/prd-improve-forge/checklists/dimensions/state-machine-counter.md +130 -0
  64. package/dist/skill/prd-improve-forge/examples/import-history-prds.prd.yaml +6 -1
  65. package/dist/skill/prd-improve-forge/templates/prd.yaml +8 -7
  66. package/dist/workspace.d.ts +8 -1
  67. package/dist/workspace.js +12 -1
  68. package/dist/workspace.js.map +1 -1
  69. package/dist/yamlPatch.d.ts +5 -0
  70. package/dist/yamlPatch.js +16 -4
  71. package/dist/yamlPatch.js.map +1 -1
  72. package/package.json +1 -1
package/dist/yamlPatch.js CHANGED
@@ -6,6 +6,8 @@
6
6
  * 解析失败返回 ok:false,调用方决定降级或阻断。
7
7
  * 值一律写成双引号 scalar:裸 `2026-06-12` 会被下游 yaml 解析成 Date
8
8
  * 导致 zod "Expected string, received date";引号化与 fixture/模板风格一致。
9
+ * v1.22 起支持 style:'block'(resolve 决议长文本);eemeli 对不可块标量表示值(控制符等)自动降级 quoted
10
+ * v1.23 起支持 op:'delete'(eemeli deleteIn):叶子不存在幂等返回 ok:true,中间路径缺失归并 ok:false
9
11
  */
10
12
  import { parseDocument, Scalar, isScalar } from "yaml";
11
13
  export function patchYamlText(text, edits) {
@@ -20,16 +22,26 @@ export function patchYamlText(text, edits) {
20
22
  return { ok: false, error: doc.errors.map((e) => e.message).join("; ") };
21
23
  }
22
24
  for (const e of edits) {
25
+ if (e.op === "delete") {
26
+ try {
27
+ doc.deleteIn(e.path);
28
+ }
29
+ catch (err) {
30
+ return { ok: false, error: err.message };
31
+ }
32
+ continue;
33
+ }
34
+ const scalarType = e.style === "block" ? Scalar.BLOCK_LITERAL : Scalar.QUOTE_DOUBLE;
23
35
  const existing = doc.getIn(e.path, true);
24
36
  if (isScalar(existing)) {
25
- // 既有 scalar 就地改值(保行内注释),并强制双引号样式
37
+ // 既有 scalar 就地改值(保行内注释),按 style 选型
26
38
  existing.value = e.value;
27
- existing.type = Scalar.QUOTE_DOUBLE;
39
+ existing.type = scalarType;
28
40
  }
29
41
  else {
30
- // 新叶子:预建双引号 scalar 再 setIn(setIn 裸值会存原始 JS 值,绕过样式控制)
42
+ // 新叶子:预建 scalar 再 setIn(setIn 裸值会存原始 JS 值,绕过样式控制)
31
43
  const node = doc.createNode(e.value);
32
- node.type = Scalar.QUOTE_DOUBLE;
44
+ node.type = scalarType;
33
45
  doc.setIn(e.path, node);
34
46
  }
35
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"yamlPatch.js","sourceRoot":"","sources":["../src/yamlPatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAOvD,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,KAAiB;IAEjB,IAAI,GAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3E,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,iCAAiC;YACjC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YACzB,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,qDAAqD;YACrD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAW,CAAC;YAC/C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"yamlPatch.js","sourceRoot":"","sources":["../src/yamlPatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAYvD,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,KAAiB;IAEjB,IAAI,GAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3E,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;YACtD,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACpF,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,mCAAmC;YACnC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YACzB,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,kDAAkD;YAClD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAW,CAAC;YAC/C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACzC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prd-improve/cli",
3
- "version": "1.2.0",
3
+ "version": "1.6.0",
4
4
  "description": "PRD Improve CLI - validate / freeze / context for .prd/features/*.yaml",
5
5
  "license": "MIT",
6
6
  "type": "module",