@loomhelm/multi-task-flow 0.2.6 → 0.2.7

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 (93) hide show
  1. package/README.md +3 -3
  2. package/package.json +1 -1
  3. package/toolkit/artifact-manifest.json +330 -26
  4. package/toolkit/package.json +1 -1
  5. package/toolkit/skills/docs-migrate/scripts/_runtime/compatibility_cli.ts +12 -0
  6. package/toolkit/skills/docs-migrate/scripts/_runtime/compatibility_docs.ts +115 -0
  7. package/toolkit/skills/docs-migrate/scripts/_runtime/compatibility_shared.ts +230 -0
  8. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/checks/replay.ts +336 -0
  9. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/git.ts +54 -0
  10. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/hardware_ingest.ts +377 -0
  11. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/hardware_locks.ts +181 -0
  12. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/legacy_spec_id.ts +131 -0
  13. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/migration_common.ts +291 -0
  14. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/next_plan.ts +199 -0
  15. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/next_plan_support.ts +245 -0
  16. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/spec_contract.ts +299 -0
  17. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift.ts +387 -0
  18. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift_helpers.ts +381 -0
  19. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift_legacy.ts +376 -0
  20. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift_paths.ts +3 -0
  21. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift_types.ts +27 -0
  22. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift_validation.ts +251 -0
  23. package/toolkit/skills/docs-migrate/scripts/_runtime/modules/docs/spec_migration.ts +191 -0
  24. package/toolkit/skills/docs-migrate/scripts/gen_legacy_spec_id.ts +1 -1
  25. package/toolkit/skills/docs-migrate/scripts/specs_migrate_guard.ts +1 -1
  26. package/toolkit/skills/find-next-plan/scripts/_runtime/compatibility_cli.ts +12 -0
  27. package/toolkit/skills/find-next-plan/scripts/_runtime/compatibility_docs.ts +115 -0
  28. package/toolkit/skills/find-next-plan/scripts/_runtime/compatibility_shared.ts +230 -0
  29. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/checks/replay.ts +336 -0
  30. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/git.ts +54 -0
  31. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/hardware_ingest.ts +377 -0
  32. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/hardware_locks.ts +181 -0
  33. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/legacy_spec_id.ts +131 -0
  34. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/migration_common.ts +291 -0
  35. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/next_plan.ts +199 -0
  36. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/next_plan_support.ts +245 -0
  37. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/spec_contract.ts +299 -0
  38. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift.ts +387 -0
  39. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift_helpers.ts +381 -0
  40. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift_legacy.ts +376 -0
  41. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift_paths.ts +3 -0
  42. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift_types.ts +27 -0
  43. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift_validation.ts +251 -0
  44. package/toolkit/skills/find-next-plan/scripts/_runtime/modules/docs/spec_migration.ts +191 -0
  45. package/toolkit/skills/find-next-plan/scripts/find_next_plan.ts +1 -1
  46. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/compatibility_cli.ts +12 -0
  47. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/compatibility_docs.ts +115 -0
  48. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/compatibility_shared.ts +230 -0
  49. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/checks/replay.ts +336 -0
  50. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/git.ts +54 -0
  51. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/hardware_ingest.ts +377 -0
  52. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/hardware_locks.ts +181 -0
  53. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/legacy_spec_id.ts +131 -0
  54. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/migration_common.ts +291 -0
  55. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/next_plan.ts +199 -0
  56. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/next_plan_support.ts +245 -0
  57. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_contract.ts +299 -0
  58. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift.ts +387 -0
  59. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift_helpers.ts +381 -0
  60. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift_legacy.ts +376 -0
  61. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift_paths.ts +3 -0
  62. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift_types.ts +27 -0
  63. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift_validation.ts +251 -0
  64. package/toolkit/skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_migration.ts +191 -0
  65. package/toolkit/skills/hardware-doc-ingest/scripts/ingest_mineru_extract.ts +1 -1
  66. package/toolkit/skills/hardware-doc-ingest/scripts/verify_doc_locks.ts +1 -1
  67. package/toolkit/skills/multi-task-flow/dist/app.js +66 -66
  68. package/toolkit/skills/multi-task-flow/lib/view.ts +6 -2
  69. package/toolkit/skills/multi-task-flow/web/app.ts +2 -2
  70. package/toolkit/skills/multi-task-flow/web/graph-layout.ts +3 -3
  71. package/toolkit/skills/source-manifest.json +315 -11
  72. package/toolkit/skills/spec-sync/SKILL.md +1 -1
  73. package/toolkit/skills/spec-sync/scripts/_runtime/compatibility_cli.ts +12 -0
  74. package/toolkit/skills/spec-sync/scripts/_runtime/compatibility_docs.ts +115 -0
  75. package/toolkit/skills/spec-sync/scripts/_runtime/compatibility_shared.ts +230 -0
  76. package/toolkit/skills/spec-sync/scripts/_runtime/modules/checks/replay.ts +336 -0
  77. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/git.ts +54 -0
  78. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/hardware_ingest.ts +377 -0
  79. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/hardware_locks.ts +181 -0
  80. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/legacy_spec_id.ts +131 -0
  81. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/migration_common.ts +291 -0
  82. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/next_plan.ts +199 -0
  83. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/next_plan_support.ts +245 -0
  84. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/spec_contract.ts +299 -0
  85. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/spec_drift.ts +387 -0
  86. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/spec_drift_helpers.ts +381 -0
  87. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/spec_drift_legacy.ts +376 -0
  88. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/spec_drift_paths.ts +3 -0
  89. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/spec_drift_types.ts +27 -0
  90. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/spec_drift_validation.ts +251 -0
  91. package/toolkit/skills/spec-sync/scripts/_runtime/modules/docs/spec_migration.ts +191 -0
  92. package/toolkit/skills/spec-sync/scripts/spec_drift_check.ts +1 -1
  93. package/toolkit/skills/support-manifest.json +77 -1
package/README.md CHANGED
@@ -17,16 +17,16 @@ bunx --bun --package @loomhelm/multi-task-flow@compat-v1 multi-task-flow flow vi
17
17
  可重复的生产安装必须固定 package version;`@compat-v1` 只用于接收同一兼容线内经过门禁的最新版本,`latest` 不构成身份或兼容性证明。运行前置条件是 `bun --version` 返回 `1.4.4`;Bun 由宿主提供,包不会替换或升级它。
18
18
 
19
19
  ```sh
20
- bunx --bun --package @loomhelm/multi-task-flow@0.2.6 multi-task-flow skills list
20
+ bunx --bun --package @loomhelm/multi-task-flow@0.2.7 multi-task-flow skills list
21
21
  bunx --bun --package @loomhelm/multi-task-flow@compat-v1 multi-task-flow skills list
22
- bunx --bun --package @loomhelm/multi-task-flow@0.2.6 multi-task-flow flow view --input - < view-request.json
22
+ bunx --bun --package @loomhelm/multi-task-flow@0.2.7 multi-task-flow flow view --input - < view-request.json
23
23
  ```
24
24
 
25
25
  当前源码投影的内部合同矩阵如下;`source_sha`、`merge_sha`、`build_id` 和 `tarball_digest` 是每个候选构建的独立身份字段,不能由这张静态表推断。
26
26
 
27
27
  | 维度 | 当前值 |
28
28
  | - | - |
29
- | package | `@loomhelm/multi-task-flow@0.2.6` |
29
+ | package | `@loomhelm/multi-task-flow@0.2.7` |
30
30
  | compatibility line | `compat-v1` |
31
31
  | Skill | `2.7.6` |
32
32
  | ledger contract | `3` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loomhelm/multi-task-flow",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "description": "Versioned Bun CLI and complete Multi-task Flow Skill runtime for Loomhelm",
5
5
  "type": "module",
6
6
  "engines": {
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "packageName": "@loomhelm/multi-task-flow",
4
- "packageVersion": "0.2.6",
4
+ "packageVersion": "0.2.7",
5
5
  "compatibilityLine": "compat-v1",
6
6
  "skillVersion": "2.7.6",
7
7
  "sourceCommit": "505961771a0d2496155d23132a8c0bd8beac0a24",
8
- "sourceSha": "9ceb989d06c612c075974a44e603b964befb9e5e",
9
- "mergeSha": "9ceb989d06c612c075974a44e603b964befb9e5e",
10
- "candidateSha": "9ceb989d06c612c075974a44e603b964befb9e5e",
8
+ "sourceSha": "a8468f20f8c70bc46de7c3ef79c456b5aa38fff6",
9
+ "mergeSha": "a8468f20f8c70bc46de7c3ef79c456b5aa38fff6",
10
+ "candidateSha": "a8468f20f8c70bc46de7c3ef79c456b5aa38fff6",
11
11
  "dirty": false,
12
12
  "runtime": "bun@1.4.4",
13
13
  "identity": {
14
14
  "packageName": "@loomhelm/multi-task-flow",
15
- "packageVersion": "0.2.6",
15
+ "packageVersion": "0.2.7",
16
16
  "compatibilityLine": "compat-v1",
17
17
  "skillVersion": "2.7.6",
18
- "sourceSha": "9ceb989d06c612c075974a44e603b964befb9e5e",
19
- "mergeSha": "9ceb989d06c612c075974a44e603b964befb9e5e",
18
+ "sourceSha": "a8468f20f8c70bc46de7c3ef79c456b5aa38fff6",
19
+ "mergeSha": "a8468f20f8c70bc46de7c3ef79c456b5aa38fff6",
20
20
  "dirty": false,
21
21
  "contracts": {
22
22
  "ledgerContract": 3,
@@ -25,13 +25,13 @@
25
25
  "viewerContract": 5,
26
26
  "serviceVersion": "1"
27
27
  },
28
- "tarballDigest": "d5c42b1368edf76483c34789032217e6d8c8db4be9f5570ea1245db220f88748",
29
- "gitTag": "multi-task-flow-v0.2.6",
30
- "buildId": "8a67a108547a509f61c70d6ba598a2fe624a3f2474722ed904bb5ad58a23ae8e"
28
+ "tarballDigest": "21f0168d9f8d3a5c2ab84a6193fa8acb4c90b4d4fc7feeb50482a962e7f32cd1",
29
+ "gitTag": "multi-task-flow-v0.2.7",
30
+ "buildId": "531512d2733e5203f3359400a8a8f01d9b162d419719694f09a5d5eb3f260cd9"
31
31
  },
32
- "buildId": "8a67a108547a509f61c70d6ba598a2fe624a3f2474722ed904bb5ad58a23ae8e",
33
- "tarballDigest": "d5c42b1368edf76483c34789032217e6d8c8db4be9f5570ea1245db220f88748",
34
- "gitTag": "multi-task-flow-v0.2.6",
32
+ "buildId": "531512d2733e5203f3359400a8a8f01d9b162d419719694f09a5d5eb3f260cd9",
33
+ "tarballDigest": "21f0168d9f8d3a5c2ab84a6193fa8acb4c90b4d4fc7feeb50482a962e7f32cd1",
34
+ "gitTag": "multi-task-flow-v0.2.7",
35
35
  "dependenciesBundled": true,
36
36
  "dependencies": [
37
37
  {
@@ -2446,13 +2446,89 @@
2446
2446
  "path": "skills/docs-migrate/references/specs-mode.md",
2447
2447
  "sha256": "20a996a517d14dbc33f1c061f7a37b718fe0ba2e764ff7c2ca617c55f594f71e"
2448
2448
  },
2449
+ {
2450
+ "path": "skills/docs-migrate/scripts/_runtime/compatibility_cli.ts",
2451
+ "sha256": "01ec1aebde5a63a5e0c8d125583bc3ab7e2efa81e36fb6690822dd8f31c244f0"
2452
+ },
2453
+ {
2454
+ "path": "skills/docs-migrate/scripts/_runtime/compatibility_docs.ts",
2455
+ "sha256": "9667a37ae7704fce28b7d967ac671f2d02d39309acad2d906b28849b91fa6420"
2456
+ },
2457
+ {
2458
+ "path": "skills/docs-migrate/scripts/_runtime/compatibility_shared.ts",
2459
+ "sha256": "dac757da193b15f7b8c5c31cae0f44acc5eb370336bcbd31dce3c26b710e39e3"
2460
+ },
2461
+ {
2462
+ "path": "skills/docs-migrate/scripts/_runtime/modules/checks/replay.ts",
2463
+ "sha256": "22905c9504bf3a304618f582ea15ecfae5e9c6e51599d2839d32965e21fadef8"
2464
+ },
2465
+ {
2466
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/git.ts",
2467
+ "sha256": "c9800c610e230f0ab274885e0ee927680d9c2062ec203c556117f06c8e74d0d3"
2468
+ },
2469
+ {
2470
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/hardware_ingest.ts",
2471
+ "sha256": "b84b43ae3c33a8d5e056a92b550769a9347b5c1af631a9ac56c3369e53c671c7"
2472
+ },
2473
+ {
2474
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/hardware_locks.ts",
2475
+ "sha256": "5b9e4211b5c5537a88dc6f06482f6d689e043c642bb676a8c640f3814f164d16"
2476
+ },
2477
+ {
2478
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/legacy_spec_id.ts",
2479
+ "sha256": "04b130ea1d696f8c4f0e77efc7587615a9fcf37ebda86a797035f250b8fde8c2"
2480
+ },
2481
+ {
2482
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/migration_common.ts",
2483
+ "sha256": "db4a608795b98718fc2ca0cc9e326f071cf80c842fee88137227cf2c6a623f21"
2484
+ },
2485
+ {
2486
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/next_plan.ts",
2487
+ "sha256": "e14addce4a45a25bbea58fad9aa5e41c513735130b4df5ba9f37a66176b72337"
2488
+ },
2489
+ {
2490
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/next_plan_support.ts",
2491
+ "sha256": "da64c49f508a31b720d80c84eb1fadf7b7cd51a59e6b25a2d1f9cd222b535f4f"
2492
+ },
2493
+ {
2494
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/spec_contract.ts",
2495
+ "sha256": "1e3cf99cb7bfa63baf8dae3f3d8d37fbf8eee846e8262af61dfbfcdfe1c7c075"
2496
+ },
2497
+ {
2498
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift.ts",
2499
+ "sha256": "74e348ed8e97a77cb3d7e4d3fe4bfffec0f4b29aa49086767c0f3f50a4d29b81"
2500
+ },
2501
+ {
2502
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift_helpers.ts",
2503
+ "sha256": "039f0928fe42365ef380091ca8f5a8c72d5127c23f6870072ad4f2fce7d0b3de"
2504
+ },
2505
+ {
2506
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift_legacy.ts",
2507
+ "sha256": "2dc7e8319afdd2ad50a05d0b8af45f6dfdcee08990bcff06be11098113366e6d"
2508
+ },
2509
+ {
2510
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift_paths.ts",
2511
+ "sha256": "58df37350488de3e85906d22bc461a00de17293f57d73cfc126012df25d0d187"
2512
+ },
2513
+ {
2514
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift_types.ts",
2515
+ "sha256": "d1bd27dd615b78b882a662a5f2366ddaca710ff803e68dd368a1791aaea47189"
2516
+ },
2517
+ {
2518
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/spec_drift_validation.ts",
2519
+ "sha256": "32eaaa686239c47f16f87ae677c8c806cfb43d4763bb5b3f7d48b0e8573823e2"
2520
+ },
2521
+ {
2522
+ "path": "skills/docs-migrate/scripts/_runtime/modules/docs/spec_migration.ts",
2523
+ "sha256": "06094de16ee7fefbd34b2022be16649a98af52347a1dd750f8fbfd27a6ceb4d5"
2524
+ },
2449
2525
  {
2450
2526
  "path": "skills/docs-migrate/scripts/gen_legacy_spec_id.ts",
2451
- "sha256": "c72026d4319fca4f6f27fc396d57702d162642c1b7f9a4a148aefb47ebdb272b"
2527
+ "sha256": "c9d4a1504c7a5094db8363eadb0cf74456956defffa2e399a8c339d88f88f123"
2452
2528
  },
2453
2529
  {
2454
2530
  "path": "skills/docs-migrate/scripts/specs_migrate_guard.ts",
2455
- "sha256": "31f0435d3d2cec6a235aa9b5bcda0db4c6760c5147418a8b648b7fce6baee90d"
2531
+ "sha256": "4d24cc436c53dc31da652298a91acc88eb70d1d10efa6128e3b91d797ee530cf"
2456
2532
  },
2457
2533
  {
2458
2534
  "path": "skills/docs-migrate/scripts/test_gen_legacy_spec_id.ts",
@@ -6934,9 +7010,85 @@
6934
7010
  "path": "skills/find-next-plan/agents/openai.yaml",
6935
7011
  "sha256": "a1499d95abd8447558c535fe5554adcc3c9b988a0a39264a6283d430effe1e94"
6936
7012
  },
7013
+ {
7014
+ "path": "skills/find-next-plan/scripts/_runtime/compatibility_cli.ts",
7015
+ "sha256": "01ec1aebde5a63a5e0c8d125583bc3ab7e2efa81e36fb6690822dd8f31c244f0"
7016
+ },
7017
+ {
7018
+ "path": "skills/find-next-plan/scripts/_runtime/compatibility_docs.ts",
7019
+ "sha256": "9667a37ae7704fce28b7d967ac671f2d02d39309acad2d906b28849b91fa6420"
7020
+ },
7021
+ {
7022
+ "path": "skills/find-next-plan/scripts/_runtime/compatibility_shared.ts",
7023
+ "sha256": "dac757da193b15f7b8c5c31cae0f44acc5eb370336bcbd31dce3c26b710e39e3"
7024
+ },
7025
+ {
7026
+ "path": "skills/find-next-plan/scripts/_runtime/modules/checks/replay.ts",
7027
+ "sha256": "22905c9504bf3a304618f582ea15ecfae5e9c6e51599d2839d32965e21fadef8"
7028
+ },
7029
+ {
7030
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/git.ts",
7031
+ "sha256": "c9800c610e230f0ab274885e0ee927680d9c2062ec203c556117f06c8e74d0d3"
7032
+ },
7033
+ {
7034
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/hardware_ingest.ts",
7035
+ "sha256": "b84b43ae3c33a8d5e056a92b550769a9347b5c1af631a9ac56c3369e53c671c7"
7036
+ },
7037
+ {
7038
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/hardware_locks.ts",
7039
+ "sha256": "5b9e4211b5c5537a88dc6f06482f6d689e043c642bb676a8c640f3814f164d16"
7040
+ },
7041
+ {
7042
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/legacy_spec_id.ts",
7043
+ "sha256": "04b130ea1d696f8c4f0e77efc7587615a9fcf37ebda86a797035f250b8fde8c2"
7044
+ },
7045
+ {
7046
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/migration_common.ts",
7047
+ "sha256": "db4a608795b98718fc2ca0cc9e326f071cf80c842fee88137227cf2c6a623f21"
7048
+ },
7049
+ {
7050
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/next_plan.ts",
7051
+ "sha256": "e14addce4a45a25bbea58fad9aa5e41c513735130b4df5ba9f37a66176b72337"
7052
+ },
7053
+ {
7054
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/next_plan_support.ts",
7055
+ "sha256": "da64c49f508a31b720d80c84eb1fadf7b7cd51a59e6b25a2d1f9cd222b535f4f"
7056
+ },
7057
+ {
7058
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/spec_contract.ts",
7059
+ "sha256": "1e3cf99cb7bfa63baf8dae3f3d8d37fbf8eee846e8262af61dfbfcdfe1c7c075"
7060
+ },
7061
+ {
7062
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift.ts",
7063
+ "sha256": "74e348ed8e97a77cb3d7e4d3fe4bfffec0f4b29aa49086767c0f3f50a4d29b81"
7064
+ },
7065
+ {
7066
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift_helpers.ts",
7067
+ "sha256": "039f0928fe42365ef380091ca8f5a8c72d5127c23f6870072ad4f2fce7d0b3de"
7068
+ },
7069
+ {
7070
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift_legacy.ts",
7071
+ "sha256": "2dc7e8319afdd2ad50a05d0b8af45f6dfdcee08990bcff06be11098113366e6d"
7072
+ },
7073
+ {
7074
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift_paths.ts",
7075
+ "sha256": "58df37350488de3e85906d22bc461a00de17293f57d73cfc126012df25d0d187"
7076
+ },
7077
+ {
7078
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift_types.ts",
7079
+ "sha256": "d1bd27dd615b78b882a662a5f2366ddaca710ff803e68dd368a1791aaea47189"
7080
+ },
7081
+ {
7082
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/spec_drift_validation.ts",
7083
+ "sha256": "32eaaa686239c47f16f87ae677c8c806cfb43d4763bb5b3f7d48b0e8573823e2"
7084
+ },
7085
+ {
7086
+ "path": "skills/find-next-plan/scripts/_runtime/modules/docs/spec_migration.ts",
7087
+ "sha256": "06094de16ee7fefbd34b2022be16649a98af52347a1dd750f8fbfd27a6ceb4d5"
7088
+ },
6937
7089
  {
6938
7090
  "path": "skills/find-next-plan/scripts/find_next_plan.ts",
6939
- "sha256": "158191fed490ba633eb5e6d0b1401f3c76fc715846c0da911063541b89a5cee0"
7091
+ "sha256": "d04443d9d3149edb89df0a5fc4f403d1afcd64e6725c01c921aa439d54daa09b"
6940
7092
  },
6941
7093
  {
6942
7094
  "path": "skills/find-next-plan/scripts/test_find_next_plan.ts",
@@ -7026,13 +7178,89 @@
7026
7178
  "path": "skills/hardware-doc-ingest/references/docs-index-format.md",
7027
7179
  "sha256": "8993fcd6d1474ed20cccfb45622b7dacc9cc6384ad84a84dae9f794981adf26d"
7028
7180
  },
7181
+ {
7182
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/compatibility_cli.ts",
7183
+ "sha256": "01ec1aebde5a63a5e0c8d125583bc3ab7e2efa81e36fb6690822dd8f31c244f0"
7184
+ },
7185
+ {
7186
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/compatibility_docs.ts",
7187
+ "sha256": "9667a37ae7704fce28b7d967ac671f2d02d39309acad2d906b28849b91fa6420"
7188
+ },
7189
+ {
7190
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/compatibility_shared.ts",
7191
+ "sha256": "dac757da193b15f7b8c5c31cae0f44acc5eb370336bcbd31dce3c26b710e39e3"
7192
+ },
7193
+ {
7194
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/checks/replay.ts",
7195
+ "sha256": "22905c9504bf3a304618f582ea15ecfae5e9c6e51599d2839d32965e21fadef8"
7196
+ },
7197
+ {
7198
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/git.ts",
7199
+ "sha256": "c9800c610e230f0ab274885e0ee927680d9c2062ec203c556117f06c8e74d0d3"
7200
+ },
7201
+ {
7202
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/hardware_ingest.ts",
7203
+ "sha256": "b84b43ae3c33a8d5e056a92b550769a9347b5c1af631a9ac56c3369e53c671c7"
7204
+ },
7205
+ {
7206
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/hardware_locks.ts",
7207
+ "sha256": "5b9e4211b5c5537a88dc6f06482f6d689e043c642bb676a8c640f3814f164d16"
7208
+ },
7209
+ {
7210
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/legacy_spec_id.ts",
7211
+ "sha256": "04b130ea1d696f8c4f0e77efc7587615a9fcf37ebda86a797035f250b8fde8c2"
7212
+ },
7213
+ {
7214
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/migration_common.ts",
7215
+ "sha256": "db4a608795b98718fc2ca0cc9e326f071cf80c842fee88137227cf2c6a623f21"
7216
+ },
7217
+ {
7218
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/next_plan.ts",
7219
+ "sha256": "e14addce4a45a25bbea58fad9aa5e41c513735130b4df5ba9f37a66176b72337"
7220
+ },
7221
+ {
7222
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/next_plan_support.ts",
7223
+ "sha256": "da64c49f508a31b720d80c84eb1fadf7b7cd51a59e6b25a2d1f9cd222b535f4f"
7224
+ },
7225
+ {
7226
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_contract.ts",
7227
+ "sha256": "1e3cf99cb7bfa63baf8dae3f3d8d37fbf8eee846e8262af61dfbfcdfe1c7c075"
7228
+ },
7229
+ {
7230
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift.ts",
7231
+ "sha256": "74e348ed8e97a77cb3d7e4d3fe4bfffec0f4b29aa49086767c0f3f50a4d29b81"
7232
+ },
7233
+ {
7234
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift_helpers.ts",
7235
+ "sha256": "039f0928fe42365ef380091ca8f5a8c72d5127c23f6870072ad4f2fce7d0b3de"
7236
+ },
7237
+ {
7238
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift_legacy.ts",
7239
+ "sha256": "2dc7e8319afdd2ad50a05d0b8af45f6dfdcee08990bcff06be11098113366e6d"
7240
+ },
7241
+ {
7242
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift_paths.ts",
7243
+ "sha256": "58df37350488de3e85906d22bc461a00de17293f57d73cfc126012df25d0d187"
7244
+ },
7245
+ {
7246
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift_types.ts",
7247
+ "sha256": "d1bd27dd615b78b882a662a5f2366ddaca710ff803e68dd368a1791aaea47189"
7248
+ },
7249
+ {
7250
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_drift_validation.ts",
7251
+ "sha256": "32eaaa686239c47f16f87ae677c8c806cfb43d4763bb5b3f7d48b0e8573823e2"
7252
+ },
7253
+ {
7254
+ "path": "skills/hardware-doc-ingest/scripts/_runtime/modules/docs/spec_migration.ts",
7255
+ "sha256": "06094de16ee7fefbd34b2022be16649a98af52347a1dd750f8fbfd27a6ceb4d5"
7256
+ },
7029
7257
  {
7030
7258
  "path": "skills/hardware-doc-ingest/scripts/ingest_mineru_extract.ts",
7031
- "sha256": "348f5eccb4c26b2cab90c72d5b1142e47c06594f66037b26e8953423f81de222"
7259
+ "sha256": "adec761af4c672eb765213d6240d7c5a0362a4c3ca6d7e4ad674873ef091309e"
7032
7260
  },
7033
7261
  {
7034
7262
  "path": "skills/hardware-doc-ingest/scripts/verify_doc_locks.ts",
7035
- "sha256": "55ee706f272fc49b0d625354442355321f3610293dcfe8fab699b7484565aa1f"
7263
+ "sha256": "51d59ff3de744de6fe645e3c55d88cf4588df0b7f35d4b106521acb368854edb"
7036
7264
  },
7037
7265
  {
7038
7266
  "path": "skills/implement-only-flow/SKILL.md",
@@ -7076,7 +7304,7 @@
7076
7304
  },
7077
7305
  {
7078
7306
  "path": "skills/multi-task-flow/dist/app.js",
7079
- "sha256": "19e0df436a54c6be7e9a6899b1adc6bcf8d1acef0c80a902397db00ad6269f71"
7307
+ "sha256": "61370d048ecf612ad847cdae28491ff796dc16307a5a60183bc83491aa6c4fc0"
7080
7308
  },
7081
7309
  {
7082
7310
  "path": "skills/multi-task-flow/dist/index.html",
@@ -7400,7 +7628,7 @@
7400
7628
  },
7401
7629
  {
7402
7630
  "path": "skills/multi-task-flow/lib/view.ts",
7403
- "sha256": "be52009ff2efc06399df0363d2797df327191be3f4b1b8c61b71c253c72d4d73"
7631
+ "sha256": "0d53bfde1b57b74b70e683f9d6e601cf57f51cc94e6a65771ef01b241fd9f16f"
7404
7632
  },
7405
7633
  {
7406
7634
  "path": "skills/multi-task-flow/node_modules/zod/LICENSE",
@@ -11148,7 +11376,7 @@
11148
11376
  },
11149
11377
  {
11150
11378
  "path": "skills/multi-task-flow/web/app.ts",
11151
- "sha256": "a3bb5a07419ce78c096b5e55c4b4d28aef2c731b5abc41146fc8a033e993834a"
11379
+ "sha256": "2cca4ae9a88b0045ec11094178cfcb5900fb2e0f106c8ddf3ea1c87edc54f088"
11152
11380
  },
11153
11381
  {
11154
11382
  "path": "skills/multi-task-flow/web/atomic-graph-view.tsx",
@@ -11184,7 +11412,7 @@
11184
11412
  },
11185
11413
  {
11186
11414
  "path": "skills/multi-task-flow/web/graph-layout.ts",
11187
- "sha256": "8531cdaf5f22eb64836ae89274daf62c5f1cab5bdcd85306aab41b20811fb2a6"
11415
+ "sha256": "9ad5f77628c365b9c8a7f6332287fd6d2a37eef48cb3f46b808dcaad5e6c9c3b"
11188
11416
  },
11189
11417
  {
11190
11418
  "path": "skills/multi-task-flow/web/graph-projection.ts",
@@ -11964,23 +12192,99 @@
11964
12192
  },
11965
12193
  {
11966
12194
  "path": "skills/source-manifest.json",
11967
- "sha256": "613c0bfb32640f212dd8369a0527751804090877c45fc9956545f4f259bd4425"
12195
+ "sha256": "2391f32a4c8177470adce6cdadbd6bbb101b3fb47d5bf6044f9f821c14301aae"
11968
12196
  },
11969
12197
  {
11970
12198
  "path": "skills/spec-sync/SKILL.md",
11971
- "sha256": "101142f40a1e7945f9d8422a60be4e159390ec52d958710c8eb823f43adcabfd"
12199
+ "sha256": "61903ef699acec12246e5c728652e69e075672fd25f34f06b076cadcb568f34d"
11972
12200
  },
11973
12201
  {
11974
12202
  "path": "skills/spec-sync/agents/openai.yaml",
11975
12203
  "sha256": "b6ffa8a7550b2fe24a405e582c219fb7be7b1103fd76b4c3044083ebb91e2734"
11976
12204
  },
12205
+ {
12206
+ "path": "skills/spec-sync/scripts/_runtime/compatibility_cli.ts",
12207
+ "sha256": "01ec1aebde5a63a5e0c8d125583bc3ab7e2efa81e36fb6690822dd8f31c244f0"
12208
+ },
12209
+ {
12210
+ "path": "skills/spec-sync/scripts/_runtime/compatibility_docs.ts",
12211
+ "sha256": "9667a37ae7704fce28b7d967ac671f2d02d39309acad2d906b28849b91fa6420"
12212
+ },
12213
+ {
12214
+ "path": "skills/spec-sync/scripts/_runtime/compatibility_shared.ts",
12215
+ "sha256": "dac757da193b15f7b8c5c31cae0f44acc5eb370336bcbd31dce3c26b710e39e3"
12216
+ },
12217
+ {
12218
+ "path": "skills/spec-sync/scripts/_runtime/modules/checks/replay.ts",
12219
+ "sha256": "22905c9504bf3a304618f582ea15ecfae5e9c6e51599d2839d32965e21fadef8"
12220
+ },
12221
+ {
12222
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/git.ts",
12223
+ "sha256": "c9800c610e230f0ab274885e0ee927680d9c2062ec203c556117f06c8e74d0d3"
12224
+ },
12225
+ {
12226
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/hardware_ingest.ts",
12227
+ "sha256": "b84b43ae3c33a8d5e056a92b550769a9347b5c1af631a9ac56c3369e53c671c7"
12228
+ },
12229
+ {
12230
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/hardware_locks.ts",
12231
+ "sha256": "5b9e4211b5c5537a88dc6f06482f6d689e043c642bb676a8c640f3814f164d16"
12232
+ },
12233
+ {
12234
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/legacy_spec_id.ts",
12235
+ "sha256": "04b130ea1d696f8c4f0e77efc7587615a9fcf37ebda86a797035f250b8fde8c2"
12236
+ },
12237
+ {
12238
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/migration_common.ts",
12239
+ "sha256": "db4a608795b98718fc2ca0cc9e326f071cf80c842fee88137227cf2c6a623f21"
12240
+ },
12241
+ {
12242
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/next_plan.ts",
12243
+ "sha256": "e14addce4a45a25bbea58fad9aa5e41c513735130b4df5ba9f37a66176b72337"
12244
+ },
12245
+ {
12246
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/next_plan_support.ts",
12247
+ "sha256": "da64c49f508a31b720d80c84eb1fadf7b7cd51a59e6b25a2d1f9cd222b535f4f"
12248
+ },
12249
+ {
12250
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/spec_contract.ts",
12251
+ "sha256": "1e3cf99cb7bfa63baf8dae3f3d8d37fbf8eee846e8262af61dfbfcdfe1c7c075"
12252
+ },
12253
+ {
12254
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/spec_drift.ts",
12255
+ "sha256": "74e348ed8e97a77cb3d7e4d3fe4bfffec0f4b29aa49086767c0f3f50a4d29b81"
12256
+ },
12257
+ {
12258
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/spec_drift_helpers.ts",
12259
+ "sha256": "039f0928fe42365ef380091ca8f5a8c72d5127c23f6870072ad4f2fce7d0b3de"
12260
+ },
12261
+ {
12262
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/spec_drift_legacy.ts",
12263
+ "sha256": "2dc7e8319afdd2ad50a05d0b8af45f6dfdcee08990bcff06be11098113366e6d"
12264
+ },
12265
+ {
12266
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/spec_drift_paths.ts",
12267
+ "sha256": "58df37350488de3e85906d22bc461a00de17293f57d73cfc126012df25d0d187"
12268
+ },
12269
+ {
12270
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/spec_drift_types.ts",
12271
+ "sha256": "d1bd27dd615b78b882a662a5f2366ddaca710ff803e68dd368a1791aaea47189"
12272
+ },
12273
+ {
12274
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/spec_drift_validation.ts",
12275
+ "sha256": "32eaaa686239c47f16f87ae677c8c806cfb43d4763bb5b3f7d48b0e8573823e2"
12276
+ },
12277
+ {
12278
+ "path": "skills/spec-sync/scripts/_runtime/modules/docs/spec_migration.ts",
12279
+ "sha256": "06094de16ee7fefbd34b2022be16649a98af52347a1dd750f8fbfd27a6ceb4d5"
12280
+ },
11977
12281
  {
11978
12282
  "path": "skills/spec-sync/scripts/spec_drift_check.sh",
11979
12283
  "sha256": "34c64adfa2a4c80201515e282e3f4938e75f81059814ce58885b101722ac8174"
11980
12284
  },
11981
12285
  {
11982
12286
  "path": "skills/spec-sync/scripts/spec_drift_check.ts",
11983
- "sha256": "132e6d35869e25f4f7c1acba2e716483e433b1ac597b7c1e52dd36271e58cb97"
12287
+ "sha256": "d6f381d2f5834350af28e097bc02d608d445a1ea55f384f3ea2037c0f6f115b8"
11984
12288
  },
11985
12289
  {
11986
12290
  "path": "skills/spec-sync/scripts/test_spec_drift_check.ts",
@@ -12016,7 +12320,7 @@
12016
12320
  },
12017
12321
  {
12018
12322
  "path": "skills/support-manifest.json",
12019
- "sha256": "bab89370c2877d854cbff187eb3c96e67f103d182c0cb1e69289c7d4b50203d8"
12323
+ "sha256": "be3e17b0311084e508b199210aa4b5b93eda803ecc684fe4c7cef9098ee6b6e8"
12020
12324
  },
12021
12325
  {
12022
12326
  "path": "skills/topic-spec/SKILL.md",
@@ -2,7 +2,7 @@
2
2
  "private": true,
3
3
  "type": "module",
4
4
  "packageName": "@loomhelm/multi-task-flow",
5
- "packageVersion": "0.2.6",
5
+ "packageVersion": "0.2.7",
6
6
  "compatibilityLine": "compat-v1",
7
7
  "skillVersion": "2.7.6",
8
8
  "repository": {
@@ -0,0 +1,12 @@
1
+ import { basename } from "node:path";
2
+ import { docs } from "./compatibility_docs";
3
+
4
+ export async function runCompatibilityCli(name: string, argv: string[] = process.argv.slice(2)): Promise<number> {
5
+ const smoke = argv.includes("--compatibility-smoke");
6
+ const help = argv.includes("--help") || argv.includes("-h");
7
+ if (help && !smoke) { console.log(`Usage: bun ${name}.ts [options]`); return 0; }
8
+ const result = docs(basename(name).replace(/\.ts$/, ""), argv.filter(value => value !== "--compatibility-smoke"));
9
+ if (smoke && (result === 0 || help)) console.log(`SMOKE dispatched=${basename(name).replace(/\.ts$/, "")}`);
10
+ if (help) { if (result === 0) return 0; console.log(`Usage: bun ${name}.ts [options]`); return 0; }
11
+ return result;
12
+ }
@@ -0,0 +1,115 @@
1
+ import { verifyDocLocks } from "./modules/docs/hardware_locks";
2
+ import { ingestExtract } from "./modules/docs/hardware_ingest";
3
+ import { findNextPlan } from "./modules/docs/next_plan";
4
+ import { generateLegacySpecIds } from "./modules/docs/legacy_spec_id";
5
+ import { parseSpecDriftArgs, runSpecDrift } from "./modules/docs/spec_drift";
6
+ import {
7
+ planSpecsHygiene,
8
+ planSpecsMigration,
9
+ } from "./modules/docs/spec_migration";
10
+ import { json, option, rootFor } from "./compatibility_shared";
11
+
12
+ export function docs(name: string, argv: string[]): number {
13
+ if (name === "verify_doc_locks") {
14
+ const result = verifyDocLocks(rootFor(argv), {
15
+ strictPdf: argv.includes("--strict-pdf"),
16
+ checkPerms: !argv.includes("--no-check-perms"),
17
+ });
18
+ result.lines.forEach((line) => console.log(line));
19
+ return result.exitCode;
20
+ }
21
+ if (name === "find_next_plan") {
22
+ json(findNextPlan(option(argv, "repo", process.cwd())!));
23
+ return 0;
24
+ }
25
+ if (name === "gen_legacy_spec_id") return legacyId(argv);
26
+ if (name === "specs_migrate_guard") return migrateGuard(argv);
27
+ if (name === "spec_drift_check") return drift(argv);
28
+ if (name === "ingest_mineru_extract") return ingest(argv);
29
+ return 2;
30
+ }
31
+
32
+ function legacyId(argv: string[]): number {
33
+ const args: Parameters<typeof generateLegacySpecIds>[0] = {
34
+ repoRoot: option(argv, "repo", process.cwd())!,
35
+ legacyCompat: argv.includes("--legacy-compat"),
36
+ count: Number(option(argv, "count", "1")),
37
+ length: Number(option(argv, "length", "5")),
38
+ };
39
+ const alphabet = option(argv, "alphabet");
40
+ if (alphabet !== undefined) args.alphabet = alphabet;
41
+ const result = generateLegacySpecIds(args);
42
+ process.stdout.write(result.stdout);
43
+ process.stderr.write(result.stderr);
44
+ return result.exitCode;
45
+ }
46
+
47
+ function migrateGuard(argv: string[]): number {
48
+ const repo = option(argv, "repo", process.cwd())!;
49
+ const source = option(argv, "source")!;
50
+ const branch = option(argv, "branch");
51
+ const legacyId = option(argv, "legacy-id");
52
+ const topic = option(argv, "topic");
53
+ const options = {
54
+ ...(branch === undefined ? {} : { branch }),
55
+ ...(legacyId === undefined ? {} : { legacyId }),
56
+ ...(topic === undefined ? {} : { topic }),
57
+ };
58
+ const result =
59
+ option(argv, "mode") === "specs-hygiene"
60
+ ? planSpecsHygiene(repo, source, {
61
+ ...options,
62
+ renameConfirmed: argv.includes("--rename-confirmed"),
63
+ })
64
+ : planSpecsMigration(repo, source, options);
65
+ json(result);
66
+ return result.blocked_reason ? 1 : 0;
67
+ }
68
+
69
+ function drift(argv: string[]): number {
70
+ const parsed = parseSpecDriftArgs(argv);
71
+ if (parsed.error) {
72
+ console.error(parsed.error);
73
+ return 2;
74
+ }
75
+ if (parsed.help) {
76
+ console.log(
77
+ "Usage: spec_drift_check.ts [--base-ref <ref>] [--spec-path <path>]...",
78
+ );
79
+ return 0;
80
+ }
81
+ const result = runSpecDrift(parsed.options);
82
+ json(result);
83
+ return result.exitCode;
84
+ }
85
+
86
+ function ingest(argv: string[]): number {
87
+ try {
88
+ const args: Parameters<typeof ingestExtract>[0] = {
89
+ extractPath: option(argv, "extract-path")!,
90
+ destDir: option(argv, "dest-dir")!,
91
+ slug: option(argv, "slug")!,
92
+ overwrite: argv.includes("--overwrite"),
93
+ addHeader: argv.includes("--add-header"),
94
+ keepMineruJson: argv.includes("--keep-mineru-json"),
95
+ writeLock: !argv.includes("--no-write-lock"),
96
+ lockGenerated: !argv.includes("--writable-generated"),
97
+ createReadme: !argv.includes("--no-readme"),
98
+ };
99
+ for (const [key, flag] of [
100
+ ["docSubdir", "doc-subdir"],
101
+ ["sourceUrl", "source-url"],
102
+ ["docType", "doc-type"],
103
+ ["vendor", "vendor"],
104
+ ["part", "part"],
105
+ ] as const) {
106
+ const value = option(argv, flag);
107
+ if (value !== undefined) args[key] = value;
108
+ }
109
+ ingestExtract(args).lines.forEach((line) => console.log(line));
110
+ return 0;
111
+ } catch (error) {
112
+ console.error(error instanceof Error ? error.message : String(error));
113
+ return 1;
114
+ }
115
+ }