@rulemetric/cli 0.4.0 → 0.5.1

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 (157) hide show
  1. package/dist/base-command.js +5 -5
  2. package/dist/chunk-346TGPVR.js +309 -0
  3. package/dist/chunk-346TGPVR.js.map +7 -0
  4. package/dist/{chunk-2AM54TUK.js → chunk-4UJATBTG.js} +2 -2
  5. package/dist/{chunk-2WWGG2A5.js → chunk-54IODRPZ.js} +16 -15
  6. package/dist/chunk-54IODRPZ.js.map +7 -0
  7. package/dist/{chunk-BD7CY42U.js → chunk-7DRLX3DN.js} +3 -3
  8. package/dist/{chunk-JX5UI6RW.js → chunk-AUUHXCJU.js} +2 -2
  9. package/dist/{chunk-S56LOTGQ.js → chunk-CB43W53J.js} +5 -5
  10. package/dist/{chunk-EHABPBGH.js → chunk-CCSR73HF.js} +2 -2
  11. package/dist/{chunk-EHZJ6OXD.js → chunk-CGUV6TUA.js} +2 -2
  12. package/dist/{chunk-EJOI2ZGU.js → chunk-CWFVBGX2.js} +8 -12
  13. package/dist/chunk-CWFVBGX2.js.map +7 -0
  14. package/dist/{chunk-42A3HEEH.js → chunk-F5DPTXRC.js} +30 -2
  15. package/dist/{chunk-42A3HEEH.js.map → chunk-F5DPTXRC.js.map} +3 -3
  16. package/dist/{chunk-YEBBX4HQ.js → chunk-I4GHR6CY.js} +2 -2
  17. package/dist/{chunk-XMWHTOCC.js → chunk-IKEI4KNV.js} +2 -2
  18. package/dist/{chunk-CROYS75W.js → chunk-LJ5OT5XN.js} +4 -4
  19. package/dist/{chunk-UF73WX2J.js → chunk-OAQG5WBV.js} +2 -2
  20. package/dist/{chunk-QJXAULRC.js → chunk-OKCFYPIQ.js} +2 -2
  21. package/dist/{chunk-MTLAIJED.js → chunk-OWUS3HMA.js} +2 -2
  22. package/dist/{chunk-YBNW7ARH.js → chunk-PHIAFGQ2.js} +2 -2
  23. package/dist/{chunk-OGVORIFM.js → chunk-R56PH7YE.js} +11 -3
  24. package/dist/chunk-R56PH7YE.js.map +7 -0
  25. package/dist/{chunk-CLC7ZFH2.js → chunk-RYMK7FQL.js} +2 -2
  26. package/dist/{chunk-IWYCRLEK.js → chunk-TDTHAOXO.js} +2 -2
  27. package/dist/{chunk-PQU7GZ7A.js → chunk-TJ2M5QVL.js} +2 -2
  28. package/dist/{chunk-C7SRRSPA.js → chunk-VBOTWXJW.js} +2 -2
  29. package/dist/{chunk-KZRFUXGF.js → chunk-W2YERO7E.js} +27 -2
  30. package/dist/chunk-W2YERO7E.js.map +7 -0
  31. package/dist/commands/antigravity/backfill.js +6 -6
  32. package/dist/commands/auth/create-key.js +5 -5
  33. package/dist/commands/auth/login.js +5 -5
  34. package/dist/commands/auth/logout.js +5 -5
  35. package/dist/commands/auth/revoke-key.js +5 -5
  36. package/dist/commands/auth/status.js +5 -5
  37. package/dist/commands/catalog/index.js +5 -5
  38. package/dist/commands/catalog/recommend.js +5 -5
  39. package/dist/commands/convert.js +5 -5
  40. package/dist/commands/converters.js +5 -5
  41. package/dist/commands/crons/list.js +5 -5
  42. package/dist/commands/crons/run.js +5 -5
  43. package/dist/commands/dashboard.js +5 -5
  44. package/dist/commands/eval-targets/create.js +5 -5
  45. package/dist/commands/eval-targets/list.js +5 -5
  46. package/dist/commands/evals/agent.js +20 -19
  47. package/dist/commands/evals/agent.js.map +2 -2
  48. package/dist/commands/evals/benchmark.js +6 -6
  49. package/dist/commands/evals/compare.js +5 -5
  50. package/dist/commands/evals/create.js +5 -5
  51. package/dist/commands/evals/optimize-description.js +5 -5
  52. package/dist/commands/evals/optimize.js +5 -5
  53. package/dist/commands/evals/run.js +5 -5
  54. package/dist/commands/gateway/ensure.js +5 -5
  55. package/dist/commands/hooks/install.js +5 -5
  56. package/dist/commands/hooks/run.js +5 -5
  57. package/dist/commands/hooks/uninstall.js +5 -5
  58. package/dist/commands/import.js +5 -5
  59. package/dist/commands/instructions/create.js +5 -5
  60. package/dist/commands/instructions/delete.js +5 -5
  61. package/dist/commands/instructions/fork.js +5 -5
  62. package/dist/commands/instructions/get.js +5 -5
  63. package/dist/commands/instructions/list.js +5 -5
  64. package/dist/commands/instructions/promote.js +5 -5
  65. package/dist/commands/instructions/pull.js +5 -5
  66. package/dist/commands/instructions/upstream.js +5 -5
  67. package/dist/commands/instructions/versions.js +5 -5
  68. package/dist/commands/launcher.js +5 -5
  69. package/dist/commands/org/current.js +5 -5
  70. package/dist/commands/org/list.js +5 -5
  71. package/dist/commands/org/switch.js +5 -5
  72. package/dist/commands/packs/add-instruction.js +5 -5
  73. package/dist/commands/packs/apply.js +5 -5
  74. package/dist/commands/packs/create.js +5 -5
  75. package/dist/commands/packs/fork.js +5 -5
  76. package/dist/commands/packs/get.js +5 -5
  77. package/dist/commands/packs/list.js +5 -5
  78. package/dist/commands/packs/remove-instruction.js +5 -5
  79. package/dist/commands/proxy/env.js +5 -5
  80. package/dist/commands/proxy/logs.js +5 -5
  81. package/dist/commands/proxy/restart.js +5 -5
  82. package/dist/commands/proxy/setup.js +5 -5
  83. package/dist/commands/proxy/start.js +5 -5
  84. package/dist/commands/proxy/status.js +5 -5
  85. package/dist/commands/proxy/stop.js +5 -5
  86. package/dist/commands/research/backfill.js +6 -6
  87. package/dist/commands/research/tail-transcript.js +6 -6
  88. package/dist/commands/service/install.js +5 -5
  89. package/dist/commands/service/status.js +5 -5
  90. package/dist/commands/service/uninstall.js +5 -5
  91. package/dist/commands/sessions/analyze.js +5 -5
  92. package/dist/commands/sessions/end.js +5 -5
  93. package/dist/commands/sessions/import.js +5 -5
  94. package/dist/commands/sessions/list.js +5 -5
  95. package/dist/commands/sessions/start.js +5 -5
  96. package/dist/commands/setup.js +146 -0
  97. package/dist/commands/setup.js.map +7 -0
  98. package/dist/commands/signals/report.js +5 -5
  99. package/dist/commands/skills/export-approved.js +5 -5
  100. package/dist/commands/skills/install.js +5 -5
  101. package/dist/commands/skills/list.js +5 -5
  102. package/dist/commands/skills/publish.js +5 -5
  103. package/dist/commands/skills/search.js +5 -5
  104. package/dist/commands/skills/update.js +5 -5
  105. package/dist/commands/suggestions/accept.js +5 -5
  106. package/dist/commands/suggestions/dismiss.js +5 -5
  107. package/dist/commands/suggestions/list.js +5 -5
  108. package/dist/commands/suggestions/refresh.js +5 -5
  109. package/dist/dashboard/Dashboard.js +11 -11
  110. package/dist/dashboard/launcher/LauncherOverlay.js +3 -3
  111. package/dist/lib/active-org-refresh.js +3 -3
  112. package/dist/lib/agent-loop.js +15 -15
  113. package/dist/lib/antigravity-transcript.js +3 -3
  114. package/dist/lib/api-client.js +2 -2
  115. package/dist/lib/auth.js +5 -1
  116. package/dist/lib/eval-benchmark.js +3 -3
  117. package/dist/lib/eval-conversation-handler.js +3 -3
  118. package/dist/lib/handlers/cron-close-stale-sessions.js +2 -2
  119. package/dist/lib/handlers/cron-data-integrity-audit.js +2 -2
  120. package/dist/lib/handlers/cron-suggest-instructions.js +3 -3
  121. package/dist/lib/handlers/process-announcement.js +2 -2
  122. package/dist/lib/handlers/process-changelog.js +2 -2
  123. package/dist/lib/handlers/process-conversation.js +4 -4
  124. package/dist/lib/handlers/process-eval.js +3 -3
  125. package/dist/lib/handlers/process-insights.js +3 -3
  126. package/dist/lib/handlers/process-launch.js +3 -3
  127. package/dist/lib/handlers/process-run-cleanup.js +2 -2
  128. package/dist/lib/handlers/process-session-goal.js +2 -2
  129. package/dist/lib/manual-tasks.js +5 -5
  130. package/dist/lib/research-client.js +3 -3
  131. package/dist/lib/setup-steps.js +26 -0
  132. package/dist/lib/setup-steps.js.map +7 -0
  133. package/dist/lib/terminal-target-heartbeat.js +3 -3
  134. package/dist/lib/version-check.js +3 -1
  135. package/oclif.manifest.json +1033 -972
  136. package/package.json +4 -4
  137. package/dist/chunk-2WWGG2A5.js.map +0 -7
  138. package/dist/chunk-EJOI2ZGU.js.map +0 -7
  139. package/dist/chunk-KZRFUXGF.js.map +0 -7
  140. package/dist/chunk-OGVORIFM.js.map +0 -7
  141. /package/dist/{chunk-2AM54TUK.js.map → chunk-4UJATBTG.js.map} +0 -0
  142. /package/dist/{chunk-BD7CY42U.js.map → chunk-7DRLX3DN.js.map} +0 -0
  143. /package/dist/{chunk-JX5UI6RW.js.map → chunk-AUUHXCJU.js.map} +0 -0
  144. /package/dist/{chunk-S56LOTGQ.js.map → chunk-CB43W53J.js.map} +0 -0
  145. /package/dist/{chunk-EHABPBGH.js.map → chunk-CCSR73HF.js.map} +0 -0
  146. /package/dist/{chunk-EHZJ6OXD.js.map → chunk-CGUV6TUA.js.map} +0 -0
  147. /package/dist/{chunk-YEBBX4HQ.js.map → chunk-I4GHR6CY.js.map} +0 -0
  148. /package/dist/{chunk-XMWHTOCC.js.map → chunk-IKEI4KNV.js.map} +0 -0
  149. /package/dist/{chunk-CROYS75W.js.map → chunk-LJ5OT5XN.js.map} +0 -0
  150. /package/dist/{chunk-UF73WX2J.js.map → chunk-OAQG5WBV.js.map} +0 -0
  151. /package/dist/{chunk-QJXAULRC.js.map → chunk-OKCFYPIQ.js.map} +0 -0
  152. /package/dist/{chunk-MTLAIJED.js.map → chunk-OWUS3HMA.js.map} +0 -0
  153. /package/dist/{chunk-YBNW7ARH.js.map → chunk-PHIAFGQ2.js.map} +0 -0
  154. /package/dist/{chunk-CLC7ZFH2.js.map → chunk-RYMK7FQL.js.map} +0 -0
  155. /package/dist/{chunk-IWYCRLEK.js.map → chunk-TDTHAOXO.js.map} +0 -0
  156. /package/dist/{chunk-PQU7GZ7A.js.map → chunk-TJ2M5QVL.js.map} +0 -0
  157. /package/dist/{chunk-C7SRRSPA.js.map → chunk-VBOTWXJW.js.map} +0 -0
@@ -311,6 +311,67 @@
311
311
  "launcher.js"
312
312
  ]
313
313
  },
314
+ "setup": {
315
+ "aliases": [],
316
+ "args": {
317
+ "target": {
318
+ "description": "\"plan\" or a step id (install, auth, hooks, worker)",
319
+ "name": "target",
320
+ "required": false
321
+ }
322
+ },
323
+ "description": "Agentic, transparent setup: plan / show diffs / apply the four core onboarding steps",
324
+ "examples": [
325
+ "<%= config.bin %> setup # interactive walk (TTY)",
326
+ "<%= config.bin %> setup plan # read-only: every remaining artifact + diff",
327
+ "<%= config.bin %> setup hooks --show # print one step's diff",
328
+ "<%= config.bin %> setup hooks --apply # apply one step",
329
+ "<%= config.bin %> setup --json # machine-readable status (exit 0 iff complete)"
330
+ ],
331
+ "flags": {
332
+ "api-url": {
333
+ "description": "Override API base URL",
334
+ "env": "RULEMETRIC_API_URL",
335
+ "hidden": true,
336
+ "name": "api-url",
337
+ "hasDynamicHelp": false,
338
+ "multiple": false,
339
+ "type": "option"
340
+ },
341
+ "json": {
342
+ "description": "Machine-readable output",
343
+ "name": "json",
344
+ "allowNo": false,
345
+ "type": "boolean"
346
+ },
347
+ "show": {
348
+ "description": "Print the step diff (read-only)",
349
+ "name": "show",
350
+ "allowNo": false,
351
+ "type": "boolean"
352
+ },
353
+ "apply": {
354
+ "description": "Apply the step",
355
+ "name": "apply",
356
+ "allowNo": false,
357
+ "type": "boolean"
358
+ }
359
+ },
360
+ "hasDynamicHelp": false,
361
+ "hiddenAliases": [],
362
+ "id": "setup",
363
+ "pluginAlias": "@rulemetric/cli",
364
+ "pluginName": "@rulemetric/cli",
365
+ "pluginType": "core",
366
+ "strict": true,
367
+ "enableJsonFlag": false,
368
+ "isESM": true,
369
+ "relativePath": [
370
+ "dist",
371
+ "commands",
372
+ "setup.js"
373
+ ]
374
+ },
314
375
  "antigravity:backfill": {
315
376
  "aliases": [],
316
377
  "args": {
@@ -1629,12 +1690,18 @@
1629
1690
  "uninstall.js"
1630
1691
  ]
1631
1692
  },
1632
- "org:current": {
1693
+ "instructions:create": {
1633
1694
  "aliases": [],
1634
- "args": {},
1635
- "description": "Show the current active organization",
1695
+ "args": {
1696
+ "file": {
1697
+ "description": "Path to markdown file",
1698
+ "name": "file"
1699
+ }
1700
+ },
1701
+ "description": "Create a new instruction",
1636
1702
  "examples": [
1637
- "<%= config.bin %> org current"
1703
+ "<%= config.bin %> instructions create ./my-instruction.md --name \"My Rules\"",
1704
+ "<%= config.bin %> instructions create ./rules.md -n \"Rules\" -s project"
1638
1705
  ],
1639
1706
  "flags": {
1640
1707
  "api-url": {
@@ -1645,37 +1712,51 @@
1645
1712
  "hasDynamicHelp": false,
1646
1713
  "multiple": false,
1647
1714
  "type": "option"
1648
- }
1649
- },
1650
- "hasDynamicHelp": false,
1651
- "hiddenAliases": [],
1652
- "id": "org:current",
1653
- "pluginAlias": "@rulemetric/cli",
1654
- "pluginName": "@rulemetric/cli",
1655
- "pluginType": "core",
1656
- "strict": true,
1657
- "enableJsonFlag": false,
1658
- "isESM": true,
1659
- "relativePath": [
1660
- "dist",
1661
- "commands",
1662
- "org",
1663
- "current.js"
1664
- ]
1665
- },
1666
- "org:list": {
1667
- "aliases": [],
1668
- "args": {},
1669
- "description": "List organizations the current user is a member of",
1670
- "examples": [
1671
- "<%= config.bin %> org list"
1672
- ],
1673
- "flags": {
1674
- "api-url": {
1675
- "description": "Override API base URL",
1676
- "env": "RULEMETRIC_API_URL",
1677
- "hidden": true,
1678
- "name": "api-url",
1715
+ },
1716
+ "name": {
1717
+ "char": "n",
1718
+ "description": "Instruction name",
1719
+ "name": "name",
1720
+ "required": true,
1721
+ "hasDynamicHelp": false,
1722
+ "multiple": false,
1723
+ "type": "option"
1724
+ },
1725
+ "description": {
1726
+ "char": "d",
1727
+ "description": "Instruction description",
1728
+ "name": "description",
1729
+ "required": true,
1730
+ "hasDynamicHelp": false,
1731
+ "multiple": false,
1732
+ "type": "option"
1733
+ },
1734
+ "scope": {
1735
+ "char": "s",
1736
+ "description": "Instruction scope",
1737
+ "name": "scope",
1738
+ "default": "personal",
1739
+ "hasDynamicHelp": false,
1740
+ "multiple": false,
1741
+ "options": [
1742
+ "org",
1743
+ "team",
1744
+ "project",
1745
+ "personal"
1746
+ ],
1747
+ "type": "option"
1748
+ },
1749
+ "scope-ref": {
1750
+ "description": "Scope reference UUID",
1751
+ "name": "scope-ref",
1752
+ "hasDynamicHelp": false,
1753
+ "multiple": false,
1754
+ "type": "option"
1755
+ },
1756
+ "tags": {
1757
+ "char": "t",
1758
+ "description": "Comma-separated tags",
1759
+ "name": "tags",
1679
1760
  "hasDynamicHelp": false,
1680
1761
  "multiple": false,
1681
1762
  "type": "option"
@@ -1683,7 +1764,7 @@
1683
1764
  },
1684
1765
  "hasDynamicHelp": false,
1685
1766
  "hiddenAliases": [],
1686
- "id": "org:list",
1767
+ "id": "instructions:create",
1687
1768
  "pluginAlias": "@rulemetric/cli",
1688
1769
  "pluginName": "@rulemetric/cli",
1689
1770
  "pluginType": "core",
@@ -1693,23 +1774,23 @@
1693
1774
  "relativePath": [
1694
1775
  "dist",
1695
1776
  "commands",
1696
- "org",
1697
- "list.js"
1777
+ "instructions",
1778
+ "create.js"
1698
1779
  ]
1699
1780
  },
1700
- "org:switch": {
1781
+ "instructions:delete": {
1701
1782
  "aliases": [],
1702
1783
  "args": {
1703
- "slug": {
1704
- "description": "Organization slug to switch to",
1705
- "name": "slug",
1706
- "required": false
1784
+ "id": {
1785
+ "description": "Instruction ID",
1786
+ "name": "id",
1787
+ "required": true
1707
1788
  }
1708
1789
  },
1709
- "description": "Switch the active organization",
1790
+ "description": "Delete (archive) an instruction",
1710
1791
  "examples": [
1711
- "<%= config.bin %> org switch acme",
1712
- "<%= config.bin %> org switch --clear"
1792
+ "<%= config.bin %> instructions delete <id>",
1793
+ "<%= config.bin %> instructions delete <id> --force"
1713
1794
  ],
1714
1795
  "flags": {
1715
1796
  "api-url": {
@@ -1721,16 +1802,17 @@
1721
1802
  "multiple": false,
1722
1803
  "type": "option"
1723
1804
  },
1724
- "clear": {
1725
- "description": "Clear the active organization (personal mode)",
1726
- "name": "clear",
1805
+ "force": {
1806
+ "char": "f",
1807
+ "description": "Skip confirmation prompt",
1808
+ "name": "force",
1727
1809
  "allowNo": false,
1728
1810
  "type": "boolean"
1729
1811
  }
1730
1812
  },
1731
1813
  "hasDynamicHelp": false,
1732
1814
  "hiddenAliases": [],
1733
- "id": "org:switch",
1815
+ "id": "instructions:delete",
1734
1816
  "pluginAlias": "@rulemetric/cli",
1735
1817
  "pluginName": "@rulemetric/cli",
1736
1818
  "pluginType": "core",
@@ -1740,27 +1822,22 @@
1740
1822
  "relativePath": [
1741
1823
  "dist",
1742
1824
  "commands",
1743
- "org",
1744
- "switch.js"
1825
+ "instructions",
1826
+ "delete.js"
1745
1827
  ]
1746
1828
  },
1747
- "packs:add-instruction": {
1829
+ "instructions:fork": {
1748
1830
  "aliases": [],
1749
1831
  "args": {
1750
- "packId": {
1751
- "description": "Pack ID",
1752
- "name": "packId",
1753
- "required": true
1754
- },
1755
- "instructionId": {
1756
- "description": "Instruction ID",
1757
- "name": "instructionId",
1832
+ "id": {
1833
+ "description": "ID of the instruction to fork",
1834
+ "name": "id",
1758
1835
  "required": true
1759
1836
  }
1760
1837
  },
1761
- "description": "Add an instruction to a pack",
1838
+ "description": "Fork an instruction to your personal scope",
1762
1839
  "examples": [
1763
- "<%= config.bin %> packs add-instruction <pack-id> <instruction-id>"
1840
+ "<%= config.bin %> instructions fork <instruction-id>"
1764
1841
  ],
1765
1842
  "flags": {
1766
1843
  "api-url": {
@@ -1775,7 +1852,7 @@
1775
1852
  },
1776
1853
  "hasDynamicHelp": false,
1777
1854
  "hiddenAliases": [],
1778
- "id": "packs:add-instruction",
1855
+ "id": "instructions:fork",
1779
1856
  "pluginAlias": "@rulemetric/cli",
1780
1857
  "pluginName": "@rulemetric/cli",
1781
1858
  "pluginType": "core",
@@ -1785,24 +1862,32 @@
1785
1862
  "relativePath": [
1786
1863
  "dist",
1787
1864
  "commands",
1788
- "packs",
1789
- "add-instruction.js"
1865
+ "instructions",
1866
+ "fork.js"
1790
1867
  ]
1791
1868
  },
1792
- "packs:apply": {
1869
+ "instructions:get": {
1793
1870
  "aliases": [],
1794
1871
  "args": {
1795
1872
  "id": {
1796
- "description": "Pack ID",
1873
+ "description": "Instruction ID",
1797
1874
  "name": "id",
1798
1875
  "required": true
1799
1876
  }
1800
1877
  },
1801
- "description": "Apply a pack to a project (bulk-link all instructions)",
1878
+ "description": "Get an instruction by ID",
1802
1879
  "examples": [
1803
- "<%= config.bin %> packs apply <pack-id> --project <project-id>"
1880
+ "<%= config.bin %> instructions get <id>",
1881
+ "<%= config.bin %> instructions get <id> --format raw"
1804
1882
  ],
1805
1883
  "flags": {
1884
+ "json": {
1885
+ "description": "Format output as json.",
1886
+ "helpGroup": "GLOBAL",
1887
+ "name": "json",
1888
+ "allowNo": false,
1889
+ "type": "boolean"
1890
+ },
1806
1891
  "api-url": {
1807
1892
  "description": "Override API base URL",
1808
1893
  "env": "RULEMETRIC_API_URL",
@@ -1812,40 +1897,53 @@
1812
1897
  "multiple": false,
1813
1898
  "type": "option"
1814
1899
  },
1815
- "project": {
1816
- "char": "p",
1817
- "description": "Project ID",
1818
- "name": "project",
1819
- "required": true,
1900
+ "format": {
1901
+ "char": "f",
1902
+ "description": "Output format",
1903
+ "name": "format",
1904
+ "default": "yaml",
1820
1905
  "hasDynamicHelp": false,
1821
1906
  "multiple": false,
1907
+ "options": [
1908
+ "yaml",
1909
+ "json",
1910
+ "raw"
1911
+ ],
1822
1912
  "type": "option"
1823
1913
  }
1824
1914
  },
1825
1915
  "hasDynamicHelp": false,
1826
1916
  "hiddenAliases": [],
1827
- "id": "packs:apply",
1917
+ "id": "instructions:get",
1828
1918
  "pluginAlias": "@rulemetric/cli",
1829
1919
  "pluginName": "@rulemetric/cli",
1830
1920
  "pluginType": "core",
1831
1921
  "strict": true,
1832
- "enableJsonFlag": false,
1922
+ "enableJsonFlag": true,
1833
1923
  "isESM": true,
1834
1924
  "relativePath": [
1835
1925
  "dist",
1836
1926
  "commands",
1837
- "packs",
1838
- "apply.js"
1927
+ "instructions",
1928
+ "get.js"
1839
1929
  ]
1840
1930
  },
1841
- "packs:create": {
1931
+ "instructions:list": {
1842
1932
  "aliases": [],
1843
1933
  "args": {},
1844
- "description": "Create a new instruction pack",
1934
+ "description": "List your instructions",
1845
1935
  "examples": [
1846
- "<%= config.bin %> packs create --name \"Security Pack\" --description \"Security-focused instructions\""
1936
+ "<%= config.bin %> instructions list",
1937
+ "<%= config.bin %> instructions list --json"
1847
1938
  ],
1848
1939
  "flags": {
1940
+ "json": {
1941
+ "description": "Format output as json.",
1942
+ "helpGroup": "GLOBAL",
1943
+ "name": "json",
1944
+ "allowNo": false,
1945
+ "type": "boolean"
1946
+ },
1849
1947
  "api-url": {
1850
1948
  "description": "Override API base URL",
1851
1949
  "env": "RULEMETRIC_API_URL",
@@ -1855,42 +1953,76 @@
1855
1953
  "multiple": false,
1856
1954
  "type": "option"
1857
1955
  },
1858
- "name": {
1859
- "char": "n",
1860
- "description": "Pack name",
1861
- "name": "name",
1862
- "required": true,
1956
+ "format": {
1957
+ "char": "f",
1958
+ "description": "Output format",
1959
+ "name": "format",
1960
+ "default": "table",
1863
1961
  "hasDynamicHelp": false,
1864
1962
  "multiple": false,
1865
- "type": "option"
1866
- },
1867
- "description": {
1868
- "char": "d",
1869
- "description": "Pack description",
1870
- "name": "description",
1871
- "required": true,
1963
+ "options": [
1964
+ "table",
1965
+ "json"
1966
+ ],
1967
+ "type": "option"
1968
+ }
1969
+ },
1970
+ "hasDynamicHelp": false,
1971
+ "hiddenAliases": [],
1972
+ "id": "instructions:list",
1973
+ "pluginAlias": "@rulemetric/cli",
1974
+ "pluginName": "@rulemetric/cli",
1975
+ "pluginType": "core",
1976
+ "strict": true,
1977
+ "enableJsonFlag": true,
1978
+ "isESM": true,
1979
+ "relativePath": [
1980
+ "dist",
1981
+ "commands",
1982
+ "instructions",
1983
+ "list.js"
1984
+ ]
1985
+ },
1986
+ "instructions:promote": {
1987
+ "aliases": [],
1988
+ "args": {
1989
+ "id": {
1990
+ "description": "ID of the instruction to promote",
1991
+ "name": "id",
1992
+ "required": true
1993
+ }
1994
+ },
1995
+ "description": "Promote an instruction to a higher scope (personal → team → org)",
1996
+ "examples": [
1997
+ "<%= config.bin %> instructions promote <id> --scope team --ref <team-id>",
1998
+ "<%= config.bin %> instructions promote <id> --scope org --ref <org-id>"
1999
+ ],
2000
+ "flags": {
2001
+ "api-url": {
2002
+ "description": "Override API base URL",
2003
+ "env": "RULEMETRIC_API_URL",
2004
+ "hidden": true,
2005
+ "name": "api-url",
1872
2006
  "hasDynamicHelp": false,
1873
2007
  "multiple": false,
1874
2008
  "type": "option"
1875
2009
  },
1876
2010
  "scope": {
1877
- "char": "s",
1878
- "description": "Pack scope",
2011
+ "description": "Target scope",
1879
2012
  "name": "scope",
1880
- "default": "personal",
2013
+ "required": true,
1881
2014
  "hasDynamicHelp": false,
1882
2015
  "multiple": false,
1883
2016
  "options": [
1884
- "org",
1885
2017
  "team",
1886
- "personal"
2018
+ "org"
1887
2019
  ],
1888
2020
  "type": "option"
1889
2021
  },
1890
- "tags": {
1891
- "char": "t",
1892
- "description": "Comma-separated tags",
1893
- "name": "tags",
2022
+ "ref": {
2023
+ "description": "Target scope ref (team or org ID)",
2024
+ "name": "ref",
2025
+ "required": true,
1894
2026
  "hasDynamicHelp": false,
1895
2027
  "multiple": false,
1896
2028
  "type": "option"
@@ -1898,7 +2030,7 @@
1898
2030
  },
1899
2031
  "hasDynamicHelp": false,
1900
2032
  "hiddenAliases": [],
1901
- "id": "packs:create",
2033
+ "id": "instructions:promote",
1902
2034
  "pluginAlias": "@rulemetric/cli",
1903
2035
  "pluginName": "@rulemetric/cli",
1904
2036
  "pluginType": "core",
@@ -1908,23 +2040,20 @@
1908
2040
  "relativePath": [
1909
2041
  "dist",
1910
2042
  "commands",
1911
- "packs",
1912
- "create.js"
2043
+ "instructions",
2044
+ "promote.js"
1913
2045
  ]
1914
2046
  },
1915
- "packs:fork": {
2047
+ "instructions:pull": {
1916
2048
  "aliases": [],
1917
2049
  "args": {
1918
2050
  "id": {
1919
- "description": "ID of the pack to fork",
2051
+ "description": "ID of the forked instruction",
1920
2052
  "name": "id",
1921
2053
  "required": true
1922
2054
  }
1923
2055
  },
1924
- "description": "Fork a pack to your personal scope",
1925
- "examples": [
1926
- "<%= config.bin %> packs fork <pack-id>"
1927
- ],
2056
+ "description": "Pull upstream changes into a forked instruction",
1928
2057
  "flags": {
1929
2058
  "api-url": {
1930
2059
  "description": "Override API base URL",
@@ -1938,7 +2067,7 @@
1938
2067
  },
1939
2068
  "hasDynamicHelp": false,
1940
2069
  "hiddenAliases": [],
1941
- "id": "packs:fork",
2070
+ "id": "instructions:pull",
1942
2071
  "pluginAlias": "@rulemetric/cli",
1943
2072
  "pluginName": "@rulemetric/cli",
1944
2073
  "pluginType": "core",
@@ -1948,23 +2077,20 @@
1948
2077
  "relativePath": [
1949
2078
  "dist",
1950
2079
  "commands",
1951
- "packs",
1952
- "fork.js"
2080
+ "instructions",
2081
+ "pull.js"
1953
2082
  ]
1954
2083
  },
1955
- "packs:get": {
2084
+ "instructions:upstream": {
1956
2085
  "aliases": [],
1957
2086
  "args": {
1958
2087
  "id": {
1959
- "description": "Pack ID",
2088
+ "description": "ID of the forked instruction",
1960
2089
  "name": "id",
1961
2090
  "required": true
1962
2091
  }
1963
2092
  },
1964
- "description": "Get pack detail with instruction list",
1965
- "examples": [
1966
- "<%= config.bin %> packs get <pack-id>"
1967
- ],
2093
+ "description": "Check if a forked instruction has upstream updates",
1968
2094
  "flags": {
1969
2095
  "api-url": {
1970
2096
  "description": "Override API base URL",
@@ -1978,7 +2104,7 @@
1978
2104
  },
1979
2105
  "hasDynamicHelp": false,
1980
2106
  "hiddenAliases": [],
1981
- "id": "packs:get",
2107
+ "id": "instructions:upstream",
1982
2108
  "pluginAlias": "@rulemetric/cli",
1983
2109
  "pluginName": "@rulemetric/cli",
1984
2110
  "pluginType": "core",
@@ -1988,17 +2114,22 @@
1988
2114
  "relativePath": [
1989
2115
  "dist",
1990
2116
  "commands",
1991
- "packs",
1992
- "get.js"
2117
+ "instructions",
2118
+ "upstream.js"
1993
2119
  ]
1994
2120
  },
1995
- "packs:list": {
2121
+ "instructions:versions": {
1996
2122
  "aliases": [],
1997
- "args": {},
1998
- "description": "List your instruction packs",
2123
+ "args": {
2124
+ "id": {
2125
+ "description": "Instruction ID",
2126
+ "name": "id",
2127
+ "required": true
2128
+ }
2129
+ },
2130
+ "description": "List version history for an instruction",
1999
2131
  "examples": [
2000
- "<%= config.bin %> packs list",
2001
- "<%= config.bin %> packs list --json"
2132
+ "<%= config.bin %> instructions versions <id>"
2002
2133
  ],
2003
2134
  "flags": {
2004
2135
  "json": {
@@ -2016,24 +2147,11 @@
2016
2147
  "hasDynamicHelp": false,
2017
2148
  "multiple": false,
2018
2149
  "type": "option"
2019
- },
2020
- "format": {
2021
- "char": "f",
2022
- "description": "Output format",
2023
- "name": "format",
2024
- "default": "table",
2025
- "hasDynamicHelp": false,
2026
- "multiple": false,
2027
- "options": [
2028
- "table",
2029
- "json"
2030
- ],
2031
- "type": "option"
2032
2150
  }
2033
2151
  },
2034
2152
  "hasDynamicHelp": false,
2035
2153
  "hiddenAliases": [],
2036
- "id": "packs:list",
2154
+ "id": "instructions:versions",
2037
2155
  "pluginAlias": "@rulemetric/cli",
2038
2156
  "pluginName": "@rulemetric/cli",
2039
2157
  "pluginType": "core",
@@ -2043,27 +2161,16 @@
2043
2161
  "relativePath": [
2044
2162
  "dist",
2045
2163
  "commands",
2046
- "packs",
2047
- "list.js"
2164
+ "instructions",
2165
+ "versions.js"
2048
2166
  ]
2049
2167
  },
2050
- "packs:remove-instruction": {
2168
+ "org:current": {
2051
2169
  "aliases": [],
2052
- "args": {
2053
- "packId": {
2054
- "description": "Pack ID",
2055
- "name": "packId",
2056
- "required": true
2057
- },
2058
- "instructionId": {
2059
- "description": "Instruction ID",
2060
- "name": "instructionId",
2061
- "required": true
2062
- }
2063
- },
2064
- "description": "Remove an instruction from a pack",
2170
+ "args": {},
2171
+ "description": "Show the current active organization",
2065
2172
  "examples": [
2066
- "<%= config.bin %> packs remove-instruction <pack-id> <instruction-id>"
2173
+ "<%= config.bin %> org current"
2067
2174
  ],
2068
2175
  "flags": {
2069
2176
  "api-url": {
@@ -2078,7 +2185,7 @@
2078
2185
  },
2079
2186
  "hasDynamicHelp": false,
2080
2187
  "hiddenAliases": [],
2081
- "id": "packs:remove-instruction",
2188
+ "id": "org:current",
2082
2189
  "pluginAlias": "@rulemetric/cli",
2083
2190
  "pluginName": "@rulemetric/cli",
2084
2191
  "pluginType": "core",
@@ -2088,19 +2195,16 @@
2088
2195
  "relativePath": [
2089
2196
  "dist",
2090
2197
  "commands",
2091
- "packs",
2092
- "remove-instruction.js"
2198
+ "org",
2199
+ "current.js"
2093
2200
  ]
2094
2201
  },
2095
- "proxy:env": {
2202
+ "org:list": {
2096
2203
  "aliases": [],
2097
2204
  "args": {},
2098
- "description": "Print shell env vars to route any client through the RuleMetric proxy",
2205
+ "description": "List organizations the current user is a member of",
2099
2206
  "examples": [
2100
- "<%= config.bin %> proxy env",
2101
- "<%= config.bin %> proxy env --shell fish",
2102
- "eval \"$(rulemetric proxy env)\"",
2103
- "rulemetric proxy env --python"
2207
+ "<%= config.bin %> org list"
2104
2208
  ],
2105
2209
  "flags": {
2106
2210
  "api-url": {
@@ -2111,49 +2215,11 @@
2111
2215
  "hasDynamicHelp": false,
2112
2216
  "multiple": false,
2113
2217
  "type": "option"
2114
- },
2115
- "shell": {
2116
- "char": "s",
2117
- "description": "Shell format (posix, fish, powershell)",
2118
- "name": "shell",
2119
- "default": "posix",
2120
- "hasDynamicHelp": false,
2121
- "multiple": false,
2122
- "options": [
2123
- "posix",
2124
- "fish",
2125
- "powershell"
2126
- ],
2127
- "type": "option"
2128
- },
2129
- "python": {
2130
- "description": "Include Python-specific env vars (REQUESTS_CA_BUNDLE, SSL_CERT_FILE)",
2131
- "name": "python",
2132
- "allowNo": false,
2133
- "type": "boolean"
2134
- },
2135
- "node": {
2136
- "description": "Include Node.js-specific env vars (NODE_EXTRA_CA_CERTS)",
2137
- "name": "node",
2138
- "allowNo": false,
2139
- "type": "boolean"
2140
- },
2141
- "all": {
2142
- "description": "Include env vars for all runtimes",
2143
- "name": "all",
2144
- "allowNo": false,
2145
- "type": "boolean"
2146
- },
2147
- "vscode": {
2148
- "description": "Output VS Code settings.json snippet for Copilot proxy",
2149
- "name": "vscode",
2150
- "allowNo": false,
2151
- "type": "boolean"
2152
2218
  }
2153
2219
  },
2154
2220
  "hasDynamicHelp": false,
2155
2221
  "hiddenAliases": [],
2156
- "id": "proxy:env",
2222
+ "id": "org:list",
2157
2223
  "pluginAlias": "@rulemetric/cli",
2158
2224
  "pluginName": "@rulemetric/cli",
2159
2225
  "pluginType": "core",
@@ -2163,18 +2229,23 @@
2163
2229
  "relativePath": [
2164
2230
  "dist",
2165
2231
  "commands",
2166
- "proxy",
2167
- "env.js"
2232
+ "org",
2233
+ "list.js"
2168
2234
  ]
2169
2235
  },
2170
- "proxy:logs": {
2236
+ "org:switch": {
2171
2237
  "aliases": [],
2172
- "args": {},
2173
- "description": "View context capture proxy logs",
2238
+ "args": {
2239
+ "slug": {
2240
+ "description": "Organization slug to switch to",
2241
+ "name": "slug",
2242
+ "required": false
2243
+ }
2244
+ },
2245
+ "description": "Switch the active organization",
2174
2246
  "examples": [
2175
- "<%= config.bin %> proxy logs",
2176
- "<%= config.bin %> proxy logs --follow",
2177
- "<%= config.bin %> proxy logs --lines 50"
2247
+ "<%= config.bin %> org switch acme",
2248
+ "<%= config.bin %> org switch --clear"
2178
2249
  ],
2179
2250
  "flags": {
2180
2251
  "api-url": {
@@ -2186,26 +2257,16 @@
2186
2257
  "multiple": false,
2187
2258
  "type": "option"
2188
2259
  },
2189
- "follow": {
2190
- "char": "f",
2191
- "description": "Follow log output (like tail -f)",
2192
- "name": "follow",
2260
+ "clear": {
2261
+ "description": "Clear the active organization (personal mode)",
2262
+ "name": "clear",
2193
2263
  "allowNo": false,
2194
2264
  "type": "boolean"
2195
- },
2196
- "lines": {
2197
- "char": "n",
2198
- "description": "Number of lines to show",
2199
- "name": "lines",
2200
- "default": 30,
2201
- "hasDynamicHelp": false,
2202
- "multiple": false,
2203
- "type": "option"
2204
2265
  }
2205
2266
  },
2206
2267
  "hasDynamicHelp": false,
2207
2268
  "hiddenAliases": [],
2208
- "id": "proxy:logs",
2269
+ "id": "org:switch",
2209
2270
  "pluginAlias": "@rulemetric/cli",
2210
2271
  "pluginName": "@rulemetric/cli",
2211
2272
  "pluginType": "core",
@@ -2215,16 +2276,27 @@
2215
2276
  "relativePath": [
2216
2277
  "dist",
2217
2278
  "commands",
2218
- "proxy",
2219
- "logs.js"
2279
+ "org",
2280
+ "switch.js"
2220
2281
  ]
2221
2282
  },
2222
- "proxy:restart": {
2283
+ "packs:add-instruction": {
2223
2284
  "aliases": [],
2224
- "args": {},
2225
- "description": "Restart the context capture proxy (stop + start)",
2226
- "examples": [
2227
- "<%= config.bin %> proxy restart"
2285
+ "args": {
2286
+ "packId": {
2287
+ "description": "Pack ID",
2288
+ "name": "packId",
2289
+ "required": true
2290
+ },
2291
+ "instructionId": {
2292
+ "description": "Instruction ID",
2293
+ "name": "instructionId",
2294
+ "required": true
2295
+ }
2296
+ },
2297
+ "description": "Add an instruction to a pack",
2298
+ "examples": [
2299
+ "<%= config.bin %> packs add-instruction <pack-id> <instruction-id>"
2228
2300
  ],
2229
2301
  "flags": {
2230
2302
  "api-url": {
@@ -2235,26 +2307,11 @@
2235
2307
  "hasDynamicHelp": false,
2236
2308
  "multiple": false,
2237
2309
  "type": "option"
2238
- },
2239
- "port": {
2240
- "char": "p",
2241
- "description": "Proxy listen port",
2242
- "name": "port",
2243
- "hasDynamicHelp": false,
2244
- "multiple": false,
2245
- "type": "option"
2246
- },
2247
- "docker": {
2248
- "char": "d",
2249
- "description": "Run in Docker mode",
2250
- "name": "docker",
2251
- "allowNo": false,
2252
- "type": "boolean"
2253
2310
  }
2254
2311
  },
2255
2312
  "hasDynamicHelp": false,
2256
2313
  "hiddenAliases": [],
2257
- "id": "proxy:restart",
2314
+ "id": "packs:add-instruction",
2258
2315
  "pluginAlias": "@rulemetric/cli",
2259
2316
  "pluginName": "@rulemetric/cli",
2260
2317
  "pluginType": "core",
@@ -2264,18 +2321,22 @@
2264
2321
  "relativePath": [
2265
2322
  "dist",
2266
2323
  "commands",
2267
- "proxy",
2268
- "restart.js"
2324
+ "packs",
2325
+ "add-instruction.js"
2269
2326
  ]
2270
2327
  },
2271
- "proxy:setup": {
2328
+ "packs:apply": {
2272
2329
  "aliases": [],
2273
- "args": {},
2274
- "description": "Set up context capture proxy (installs mitmproxy, configures shell)",
2330
+ "args": {
2331
+ "id": {
2332
+ "description": "Pack ID",
2333
+ "name": "id",
2334
+ "required": true
2335
+ }
2336
+ },
2337
+ "description": "Apply a pack to a project (bulk-link all instructions)",
2275
2338
  "examples": [
2276
- "<%= config.bin %> proxy setup",
2277
- "<%= config.bin %> proxy setup --shell zsh",
2278
- "<%= config.bin %> proxy setup --check"
2339
+ "<%= config.bin %> packs apply <pack-id> --project <project-id>"
2279
2340
  ],
2280
2341
  "flags": {
2281
2342
  "api-url": {
@@ -2287,38 +2348,19 @@
2287
2348
  "multiple": false,
2288
2349
  "type": "option"
2289
2350
  },
2290
- "shell": {
2291
- "description": "Shell to configure (auto-detected if omitted)",
2292
- "name": "shell",
2293
- "hasDynamicHelp": false,
2294
- "multiple": false,
2295
- "options": [
2296
- "zsh",
2297
- "bash",
2298
- "fish",
2299
- "powershell"
2300
- ],
2301
- "type": "option"
2302
- },
2303
- "port": {
2351
+ "project": {
2304
2352
  "char": "p",
2305
- "description": "Proxy listen port",
2306
- "name": "port",
2307
- "default": 8787,
2353
+ "description": "Project ID",
2354
+ "name": "project",
2355
+ "required": true,
2308
2356
  "hasDynamicHelp": false,
2309
2357
  "multiple": false,
2310
2358
  "type": "option"
2311
- },
2312
- "check": {
2313
- "description": "Only check prerequisites, do not install anything",
2314
- "name": "check",
2315
- "allowNo": false,
2316
- "type": "boolean"
2317
2359
  }
2318
2360
  },
2319
2361
  "hasDynamicHelp": false,
2320
2362
  "hiddenAliases": [],
2321
- "id": "proxy:setup",
2363
+ "id": "packs:apply",
2322
2364
  "pluginAlias": "@rulemetric/cli",
2323
2365
  "pluginName": "@rulemetric/cli",
2324
2366
  "pluginType": "core",
@@ -2328,19 +2370,16 @@
2328
2370
  "relativePath": [
2329
2371
  "dist",
2330
2372
  "commands",
2331
- "proxy",
2332
- "setup.js"
2373
+ "packs",
2374
+ "apply.js"
2333
2375
  ]
2334
2376
  },
2335
- "proxy:start": {
2377
+ "packs:create": {
2336
2378
  "aliases": [],
2337
2379
  "args": {},
2338
- "description": "Start context capture proxy",
2380
+ "description": "Create a new instruction pack",
2339
2381
  "examples": [
2340
- "<%= config.bin %> proxy start",
2341
- "<%= config.bin %> proxy start --docker",
2342
- "<%= config.bin %> proxy start --port 9090",
2343
- "<%= config.bin %> proxy start --web"
2382
+ "<%= config.bin %> packs create --name \"Security Pack\" --description \"Security-focused instructions\""
2344
2383
  ],
2345
2384
  "flags": {
2346
2385
  "api-url": {
@@ -2352,44 +2391,50 @@
2352
2391
  "multiple": false,
2353
2392
  "type": "option"
2354
2393
  },
2355
- "port": {
2356
- "char": "p",
2357
- "description": "Proxy listen port",
2358
- "name": "port",
2359
- "default": 8788,
2394
+ "name": {
2395
+ "char": "n",
2396
+ "description": "Pack name",
2397
+ "name": "name",
2398
+ "required": true,
2360
2399
  "hasDynamicHelp": false,
2361
2400
  "multiple": false,
2362
2401
  "type": "option"
2363
2402
  },
2364
- "docker": {
2403
+ "description": {
2365
2404
  "char": "d",
2366
- "description": "Run proxy in Docker (no local mitmproxy needed)",
2367
- "name": "docker",
2368
- "allowNo": false,
2369
- "type": "boolean"
2370
- },
2371
- "web": {
2372
- "description": "Launch mitmweb debug UI instead of mitmdump (local mode only)",
2373
- "name": "web",
2374
- "allowNo": false,
2375
- "type": "boolean"
2405
+ "description": "Pack description",
2406
+ "name": "description",
2407
+ "required": true,
2408
+ "hasDynamicHelp": false,
2409
+ "multiple": false,
2410
+ "type": "option"
2376
2411
  },
2377
- "skip-checks": {
2378
- "description": "Skip prerequisite checks",
2379
- "name": "skip-checks",
2380
- "allowNo": false,
2381
- "type": "boolean"
2412
+ "scope": {
2413
+ "char": "s",
2414
+ "description": "Pack scope",
2415
+ "name": "scope",
2416
+ "default": "personal",
2417
+ "hasDynamicHelp": false,
2418
+ "multiple": false,
2419
+ "options": [
2420
+ "org",
2421
+ "team",
2422
+ "personal"
2423
+ ],
2424
+ "type": "option"
2382
2425
  },
2383
- "build": {
2384
- "description": "Force rebuild Docker image",
2385
- "name": "build",
2386
- "allowNo": false,
2387
- "type": "boolean"
2426
+ "tags": {
2427
+ "char": "t",
2428
+ "description": "Comma-separated tags",
2429
+ "name": "tags",
2430
+ "hasDynamicHelp": false,
2431
+ "multiple": false,
2432
+ "type": "option"
2388
2433
  }
2389
2434
  },
2390
2435
  "hasDynamicHelp": false,
2391
2436
  "hiddenAliases": [],
2392
- "id": "proxy:start",
2437
+ "id": "packs:create",
2393
2438
  "pluginAlias": "@rulemetric/cli",
2394
2439
  "pluginName": "@rulemetric/cli",
2395
2440
  "pluginType": "core",
@@ -2399,16 +2444,22 @@
2399
2444
  "relativePath": [
2400
2445
  "dist",
2401
2446
  "commands",
2402
- "proxy",
2403
- "start.js"
2447
+ "packs",
2448
+ "create.js"
2404
2449
  ]
2405
2450
  },
2406
- "proxy:status": {
2451
+ "packs:fork": {
2407
2452
  "aliases": [],
2408
- "args": {},
2409
- "description": "Check gateway and context capture proxy status",
2453
+ "args": {
2454
+ "id": {
2455
+ "description": "ID of the pack to fork",
2456
+ "name": "id",
2457
+ "required": true
2458
+ }
2459
+ },
2460
+ "description": "Fork a pack to your personal scope",
2410
2461
  "examples": [
2411
- "<%= config.bin %> proxy status"
2462
+ "<%= config.bin %> packs fork <pack-id>"
2412
2463
  ],
2413
2464
  "flags": {
2414
2465
  "api-url": {
@@ -2423,7 +2474,7 @@
2423
2474
  },
2424
2475
  "hasDynamicHelp": false,
2425
2476
  "hiddenAliases": [],
2426
- "id": "proxy:status",
2477
+ "id": "packs:fork",
2427
2478
  "pluginAlias": "@rulemetric/cli",
2428
2479
  "pluginName": "@rulemetric/cli",
2429
2480
  "pluginType": "core",
@@ -2433,16 +2484,22 @@
2433
2484
  "relativePath": [
2434
2485
  "dist",
2435
2486
  "commands",
2436
- "proxy",
2437
- "status.js"
2487
+ "packs",
2488
+ "fork.js"
2438
2489
  ]
2439
2490
  },
2440
- "proxy:stop": {
2491
+ "packs:get": {
2441
2492
  "aliases": [],
2442
- "args": {},
2443
- "description": "Stop the context capture proxy",
2493
+ "args": {
2494
+ "id": {
2495
+ "description": "Pack ID",
2496
+ "name": "id",
2497
+ "required": true
2498
+ }
2499
+ },
2500
+ "description": "Get pack detail with instruction list",
2444
2501
  "examples": [
2445
- "<%= config.bin %> proxy stop"
2502
+ "<%= config.bin %> packs get <pack-id>"
2446
2503
  ],
2447
2504
  "flags": {
2448
2505
  "api-url": {
@@ -2457,7 +2514,7 @@
2457
2514
  },
2458
2515
  "hasDynamicHelp": false,
2459
2516
  "hiddenAliases": [],
2460
- "id": "proxy:stop",
2517
+ "id": "packs:get",
2461
2518
  "pluginAlias": "@rulemetric/cli",
2462
2519
  "pluginName": "@rulemetric/cli",
2463
2520
  "pluginType": "core",
@@ -2467,19 +2524,26 @@
2467
2524
  "relativePath": [
2468
2525
  "dist",
2469
2526
  "commands",
2470
- "proxy",
2471
- "stop.js"
2527
+ "packs",
2528
+ "get.js"
2472
2529
  ]
2473
2530
  },
2474
- "research:backfill": {
2531
+ "packs:list": {
2475
2532
  "aliases": [],
2476
2533
  "args": {},
2477
- "description": "Scan every ~/.claude/projects transcript for past rate-limit (429) events and POST them as observations. Opt-in seed for the usage-research dataset — forward-only tail is the default capture path.",
2534
+ "description": "List your instruction packs",
2478
2535
  "examples": [
2479
- "<%= config.bin %> research backfill",
2480
- "<%= config.bin %> research backfill --claude-dir /custom/.claude --dry-run"
2536
+ "<%= config.bin %> packs list",
2537
+ "<%= config.bin %> packs list --json"
2481
2538
  ],
2482
2539
  "flags": {
2540
+ "json": {
2541
+ "description": "Format output as json.",
2542
+ "helpGroup": "GLOBAL",
2543
+ "name": "json",
2544
+ "allowNo": false,
2545
+ "type": "boolean"
2546
+ },
2483
2547
  "api-url": {
2484
2548
  "description": "Override API base URL",
2485
2549
  "env": "RULEMETRIC_API_URL",
@@ -2489,48 +2553,55 @@
2489
2553
  "multiple": false,
2490
2554
  "type": "option"
2491
2555
  },
2492
- "claude-dir": {
2493
- "description": "Override the Claude Code projects directory",
2494
- "name": "claude-dir",
2495
- "default": "/home/runner/.claude",
2556
+ "format": {
2557
+ "char": "f",
2558
+ "description": "Output format",
2559
+ "name": "format",
2560
+ "default": "table",
2496
2561
  "hasDynamicHelp": false,
2497
2562
  "multiple": false,
2563
+ "options": [
2564
+ "table",
2565
+ "json"
2566
+ ],
2498
2567
  "type": "option"
2499
- },
2500
- "dry-run": {
2501
- "description": "Print observation count without POSTing",
2502
- "name": "dry-run",
2503
- "allowNo": false,
2504
- "type": "boolean"
2505
2568
  }
2506
2569
  },
2507
2570
  "hasDynamicHelp": false,
2508
2571
  "hiddenAliases": [],
2509
- "id": "research:backfill",
2572
+ "id": "packs:list",
2510
2573
  "pluginAlias": "@rulemetric/cli",
2511
2574
  "pluginName": "@rulemetric/cli",
2512
2575
  "pluginType": "core",
2513
2576
  "strict": true,
2514
- "enableJsonFlag": false,
2577
+ "enableJsonFlag": true,
2515
2578
  "isESM": true,
2516
2579
  "relativePath": [
2517
2580
  "dist",
2518
2581
  "commands",
2519
- "research",
2520
- "backfill.js"
2582
+ "packs",
2583
+ "list.js"
2521
2584
  ]
2522
2585
  },
2523
- "research:tail-transcript": {
2586
+ "packs:remove-instruction": {
2524
2587
  "aliases": [],
2525
2588
  "args": {
2526
- "transcript": {
2527
- "description": "Absolute path to a Claude Code .jsonl transcript",
2528
- "name": "transcript",
2589
+ "packId": {
2590
+ "description": "Pack ID",
2591
+ "name": "packId",
2592
+ "required": true
2593
+ },
2594
+ "instructionId": {
2595
+ "description": "Instruction ID",
2596
+ "name": "instructionId",
2529
2597
  "required": true
2530
2598
  }
2531
2599
  },
2532
- "description": "Read new lines from a Claude Code transcript since the last cached offset, POST any 429 events, and persist the new offset. Invoked by the session-end hook — safe to re-run.",
2533
- "flags": {
2600
+ "description": "Remove an instruction from a pack",
2601
+ "examples": [
2602
+ "<%= config.bin %> packs remove-instruction <pack-id> <instruction-id>"
2603
+ ],
2604
+ "flags": {
2534
2605
  "api-url": {
2535
2606
  "description": "Override API base URL",
2536
2607
  "env": "RULEMETRIC_API_URL",
@@ -2539,18 +2610,11 @@
2539
2610
  "hasDynamicHelp": false,
2540
2611
  "multiple": false,
2541
2612
  "type": "option"
2542
- },
2543
- "no-post": {
2544
- "description": "Parse and advance the offset without POSTing (debug)",
2545
- "name": "no-post",
2546
- "allowNo": false,
2547
- "type": "boolean"
2548
2613
  }
2549
2614
  },
2550
2615
  "hasDynamicHelp": false,
2551
- "hidden": true,
2552
2616
  "hiddenAliases": [],
2553
- "id": "research:tail-transcript",
2617
+ "id": "packs:remove-instruction",
2554
2618
  "pluginAlias": "@rulemetric/cli",
2555
2619
  "pluginName": "@rulemetric/cli",
2556
2620
  "pluginType": "core",
@@ -2560,20 +2624,19 @@
2560
2624
  "relativePath": [
2561
2625
  "dist",
2562
2626
  "commands",
2563
- "research",
2564
- "tail-transcript.js"
2627
+ "packs",
2628
+ "remove-instruction.js"
2565
2629
  ]
2566
2630
  },
2567
- "service:install": {
2631
+ "proxy:env": {
2568
2632
  "aliases": [],
2569
2633
  "args": {},
2570
- "description": "Install RuleMetric services. Default (in a repo checkout): API + worker + gateway + capture proxy as launchd agents. With --worker-only: just the job worker, targeting the globally-installed CLI — no repo, no build (works from `npm i -g @rulemetric/cli`, macOS launchd or Linux systemd).",
2634
+ "description": "Print shell env vars to route any client through the RuleMetric proxy",
2571
2635
  "examples": [
2572
- "<%= config.bin %> service install",
2573
- "<%= config.bin %> service install --port 3000",
2574
- "<%= config.bin %> service install --skip-build",
2575
- "<%= config.bin %> service install --no-proxy",
2576
- "<%= config.bin %> service install --worker-only"
2636
+ "<%= config.bin %> proxy env",
2637
+ "<%= config.bin %> proxy env --shell fish",
2638
+ "eval \"$(rulemetric proxy env)\"",
2639
+ "rulemetric proxy env --python"
2577
2640
  ],
2578
2641
  "flags": {
2579
2642
  "api-url": {
@@ -2585,44 +2648,48 @@
2585
2648
  "multiple": false,
2586
2649
  "type": "option"
2587
2650
  },
2588
- "port": {
2589
- "char": "p",
2590
- "description": "API server port",
2591
- "name": "port",
2592
- "default": 3000,
2651
+ "shell": {
2652
+ "char": "s",
2653
+ "description": "Shell format (posix, fish, powershell)",
2654
+ "name": "shell",
2655
+ "default": "posix",
2593
2656
  "hasDynamicHelp": false,
2594
2657
  "multiple": false,
2658
+ "options": [
2659
+ "posix",
2660
+ "fish",
2661
+ "powershell"
2662
+ ],
2595
2663
  "type": "option"
2596
2664
  },
2597
- "force": {
2598
- "char": "f",
2599
- "description": "Overwrite existing service configuration and reclaim conflicting ports",
2600
- "name": "force",
2665
+ "python": {
2666
+ "description": "Include Python-specific env vars (REQUESTS_CA_BUNDLE, SSL_CERT_FILE)",
2667
+ "name": "python",
2601
2668
  "allowNo": false,
2602
2669
  "type": "boolean"
2603
2670
  },
2604
- "skip-build": {
2605
- "description": "Skip the pre-install workspace build (API/web/cli dist must already exist)",
2606
- "name": "skip-build",
2671
+ "node": {
2672
+ "description": "Include Node.js-specific env vars (NODE_EXTRA_CA_CERTS)",
2673
+ "name": "node",
2607
2674
  "allowNo": false,
2608
2675
  "type": "boolean"
2609
2676
  },
2610
- "no-proxy": {
2611
- "description": "Skip gateway + mitmproxy plists (just install API + worker)",
2612
- "name": "no-proxy",
2677
+ "all": {
2678
+ "description": "Include env vars for all runtimes",
2679
+ "name": "all",
2613
2680
  "allowNo": false,
2614
2681
  "type": "boolean"
2615
2682
  },
2616
- "worker-only": {
2617
- "description": "Install ONLY the job worker as a persistent service, targeting the globally-installed CLI (no repo checkout, no build, no API/gateway/proxy). Sources auth from ~/.config/rulemetric/env. macOS (launchd) + Linux (systemd --user).",
2618
- "name": "worker-only",
2683
+ "vscode": {
2684
+ "description": "Output VS Code settings.json snippet for Copilot proxy",
2685
+ "name": "vscode",
2619
2686
  "allowNo": false,
2620
2687
  "type": "boolean"
2621
2688
  }
2622
2689
  },
2623
2690
  "hasDynamicHelp": false,
2624
2691
  "hiddenAliases": [],
2625
- "id": "service:install",
2692
+ "id": "proxy:env",
2626
2693
  "pluginAlias": "@rulemetric/cli",
2627
2694
  "pluginName": "@rulemetric/cli",
2628
2695
  "pluginType": "core",
@@ -2632,14 +2699,19 @@
2632
2699
  "relativePath": [
2633
2700
  "dist",
2634
2701
  "commands",
2635
- "service",
2636
- "install.js"
2702
+ "proxy",
2703
+ "env.js"
2637
2704
  ]
2638
2705
  },
2639
- "service:status": {
2706
+ "proxy:logs": {
2640
2707
  "aliases": [],
2641
2708
  "args": {},
2642
- "description": "Check the status of all RuleMetric launchd services",
2709
+ "description": "View context capture proxy logs",
2710
+ "examples": [
2711
+ "<%= config.bin %> proxy logs",
2712
+ "<%= config.bin %> proxy logs --follow",
2713
+ "<%= config.bin %> proxy logs --lines 50"
2714
+ ],
2643
2715
  "flags": {
2644
2716
  "api-url": {
2645
2717
  "description": "Override API base URL",
@@ -2649,11 +2721,27 @@
2649
2721
  "hasDynamicHelp": false,
2650
2722
  "multiple": false,
2651
2723
  "type": "option"
2724
+ },
2725
+ "follow": {
2726
+ "char": "f",
2727
+ "description": "Follow log output (like tail -f)",
2728
+ "name": "follow",
2729
+ "allowNo": false,
2730
+ "type": "boolean"
2731
+ },
2732
+ "lines": {
2733
+ "char": "n",
2734
+ "description": "Number of lines to show",
2735
+ "name": "lines",
2736
+ "default": 30,
2737
+ "hasDynamicHelp": false,
2738
+ "multiple": false,
2739
+ "type": "option"
2652
2740
  }
2653
2741
  },
2654
2742
  "hasDynamicHelp": false,
2655
2743
  "hiddenAliases": [],
2656
- "id": "service:status",
2744
+ "id": "proxy:logs",
2657
2745
  "pluginAlias": "@rulemetric/cli",
2658
2746
  "pluginName": "@rulemetric/cli",
2659
2747
  "pluginType": "core",
@@ -2663,14 +2751,17 @@
2663
2751
  "relativePath": [
2664
2752
  "dist",
2665
2753
  "commands",
2666
- "service",
2667
- "status.js"
2754
+ "proxy",
2755
+ "logs.js"
2668
2756
  ]
2669
2757
  },
2670
- "service:uninstall": {
2758
+ "proxy:restart": {
2671
2759
  "aliases": [],
2672
2760
  "args": {},
2673
- "description": "Remove RuleMetric services (macOS launchd: API/worker/gateway/proxy; Linux: the --worker-only systemd unit)",
2761
+ "description": "Restart the context capture proxy (stop + start)",
2762
+ "examples": [
2763
+ "<%= config.bin %> proxy restart"
2764
+ ],
2674
2765
  "flags": {
2675
2766
  "api-url": {
2676
2767
  "description": "Override API base URL",
@@ -2680,11 +2771,26 @@
2680
2771
  "hasDynamicHelp": false,
2681
2772
  "multiple": false,
2682
2773
  "type": "option"
2774
+ },
2775
+ "port": {
2776
+ "char": "p",
2777
+ "description": "Proxy listen port",
2778
+ "name": "port",
2779
+ "hasDynamicHelp": false,
2780
+ "multiple": false,
2781
+ "type": "option"
2782
+ },
2783
+ "docker": {
2784
+ "char": "d",
2785
+ "description": "Run in Docker mode",
2786
+ "name": "docker",
2787
+ "allowNo": false,
2788
+ "type": "boolean"
2683
2789
  }
2684
2790
  },
2685
2791
  "hasDynamicHelp": false,
2686
2792
  "hiddenAliases": [],
2687
- "id": "service:uninstall",
2793
+ "id": "proxy:restart",
2688
2794
  "pluginAlias": "@rulemetric/cli",
2689
2795
  "pluginName": "@rulemetric/cli",
2690
2796
  "pluginType": "core",
@@ -2694,22 +2800,18 @@
2694
2800
  "relativePath": [
2695
2801
  "dist",
2696
2802
  "commands",
2697
- "service",
2698
- "uninstall.js"
2803
+ "proxy",
2804
+ "restart.js"
2699
2805
  ]
2700
2806
  },
2701
- "sessions:analyze": {
2807
+ "proxy:setup": {
2702
2808
  "aliases": [],
2703
- "args": {
2704
- "id": {
2705
- "description": "Session ID",
2706
- "name": "id",
2707
- "required": true
2708
- }
2709
- },
2710
- "description": "Trigger AI analysis on a session",
2809
+ "args": {},
2810
+ "description": "Set up context capture proxy (installs mitmproxy, configures shell)",
2711
2811
  "examples": [
2712
- "<%= config.bin %> sessions analyze <session-id>"
2812
+ "<%= config.bin %> proxy setup",
2813
+ "<%= config.bin %> proxy setup --shell zsh",
2814
+ "<%= config.bin %> proxy setup --check"
2713
2815
  ],
2714
2816
  "flags": {
2715
2817
  "api-url": {
@@ -2720,11 +2822,39 @@
2720
2822
  "hasDynamicHelp": false,
2721
2823
  "multiple": false,
2722
2824
  "type": "option"
2825
+ },
2826
+ "shell": {
2827
+ "description": "Shell to configure (auto-detected if omitted)",
2828
+ "name": "shell",
2829
+ "hasDynamicHelp": false,
2830
+ "multiple": false,
2831
+ "options": [
2832
+ "zsh",
2833
+ "bash",
2834
+ "fish",
2835
+ "powershell"
2836
+ ],
2837
+ "type": "option"
2838
+ },
2839
+ "port": {
2840
+ "char": "p",
2841
+ "description": "Proxy listen port",
2842
+ "name": "port",
2843
+ "default": 8787,
2844
+ "hasDynamicHelp": false,
2845
+ "multiple": false,
2846
+ "type": "option"
2847
+ },
2848
+ "check": {
2849
+ "description": "Only check prerequisites, do not install anything",
2850
+ "name": "check",
2851
+ "allowNo": false,
2852
+ "type": "boolean"
2723
2853
  }
2724
2854
  },
2725
2855
  "hasDynamicHelp": false,
2726
2856
  "hiddenAliases": [],
2727
- "id": "sessions:analyze",
2857
+ "id": "proxy:setup",
2728
2858
  "pluginAlias": "@rulemetric/cli",
2729
2859
  "pluginName": "@rulemetric/cli",
2730
2860
  "pluginType": "core",
@@ -2734,16 +2864,19 @@
2734
2864
  "relativePath": [
2735
2865
  "dist",
2736
2866
  "commands",
2737
- "sessions",
2738
- "analyze.js"
2867
+ "proxy",
2868
+ "setup.js"
2739
2869
  ]
2740
2870
  },
2741
- "sessions:end": {
2871
+ "proxy:start": {
2742
2872
  "aliases": [],
2743
2873
  "args": {},
2744
- "description": "End the active capture session",
2874
+ "description": "Start context capture proxy",
2745
2875
  "examples": [
2746
- "<%= config.bin %> sessions end"
2876
+ "<%= config.bin %> proxy start",
2877
+ "<%= config.bin %> proxy start --docker",
2878
+ "<%= config.bin %> proxy start --port 9090",
2879
+ "<%= config.bin %> proxy start --web"
2747
2880
  ],
2748
2881
  "flags": {
2749
2882
  "api-url": {
@@ -2754,11 +2887,45 @@
2754
2887
  "hasDynamicHelp": false,
2755
2888
  "multiple": false,
2756
2889
  "type": "option"
2890
+ },
2891
+ "port": {
2892
+ "char": "p",
2893
+ "description": "Proxy listen port",
2894
+ "name": "port",
2895
+ "default": 8788,
2896
+ "hasDynamicHelp": false,
2897
+ "multiple": false,
2898
+ "type": "option"
2899
+ },
2900
+ "docker": {
2901
+ "char": "d",
2902
+ "description": "Run proxy in Docker (no local mitmproxy needed)",
2903
+ "name": "docker",
2904
+ "allowNo": false,
2905
+ "type": "boolean"
2906
+ },
2907
+ "web": {
2908
+ "description": "Launch mitmweb debug UI instead of mitmdump (local mode only)",
2909
+ "name": "web",
2910
+ "allowNo": false,
2911
+ "type": "boolean"
2912
+ },
2913
+ "skip-checks": {
2914
+ "description": "Skip prerequisite checks",
2915
+ "name": "skip-checks",
2916
+ "allowNo": false,
2917
+ "type": "boolean"
2918
+ },
2919
+ "build": {
2920
+ "description": "Force rebuild Docker image",
2921
+ "name": "build",
2922
+ "allowNo": false,
2923
+ "type": "boolean"
2757
2924
  }
2758
2925
  },
2759
2926
  "hasDynamicHelp": false,
2760
2927
  "hiddenAliases": [],
2761
- "id": "sessions:end",
2928
+ "id": "proxy:start",
2762
2929
  "pluginAlias": "@rulemetric/cli",
2763
2930
  "pluginName": "@rulemetric/cli",
2764
2931
  "pluginType": "core",
@@ -2768,23 +2935,16 @@
2768
2935
  "relativePath": [
2769
2936
  "dist",
2770
2937
  "commands",
2771
- "sessions",
2772
- "end.js"
2938
+ "proxy",
2939
+ "start.js"
2773
2940
  ]
2774
2941
  },
2775
- "sessions:import": {
2942
+ "proxy:status": {
2776
2943
  "aliases": [],
2777
- "args": {
2778
- "path": {
2779
- "description": "Path to session file",
2780
- "name": "path",
2781
- "required": true
2782
- }
2783
- },
2784
- "description": "Import a session file (JSONL, JSON)",
2944
+ "args": {},
2945
+ "description": "Check gateway and context capture proxy status",
2785
2946
  "examples": [
2786
- "<%= config.bin %> sessions import ~/.claude/projects/my-project/session-abc.jsonl",
2787
- "<%= config.bin %> sessions import ./copilot-export.json --tool vscode_copilot"
2947
+ "<%= config.bin %> proxy status"
2788
2948
  ],
2789
2949
  "flags": {
2790
2950
  "api-url": {
@@ -2795,18 +2955,11 @@
2795
2955
  "hasDynamicHelp": false,
2796
2956
  "multiple": false,
2797
2957
  "type": "option"
2798
- },
2799
- "tool": {
2800
- "description": "Override tool detection (claude_code, cursor, vscode_copilot)",
2801
- "name": "tool",
2802
- "hasDynamicHelp": false,
2803
- "multiple": false,
2804
- "type": "option"
2805
2958
  }
2806
2959
  },
2807
2960
  "hasDynamicHelp": false,
2808
2961
  "hiddenAliases": [],
2809
- "id": "sessions:import",
2962
+ "id": "proxy:status",
2810
2963
  "pluginAlias": "@rulemetric/cli",
2811
2964
  "pluginName": "@rulemetric/cli",
2812
2965
  "pluginType": "core",
@@ -2816,17 +2969,16 @@
2816
2969
  "relativePath": [
2817
2970
  "dist",
2818
2971
  "commands",
2819
- "sessions",
2820
- "import.js"
2972
+ "proxy",
2973
+ "status.js"
2821
2974
  ]
2822
2975
  },
2823
- "sessions:list": {
2976
+ "proxy:stop": {
2824
2977
  "aliases": [],
2825
2978
  "args": {},
2826
- "description": "List captured sessions",
2979
+ "description": "Stop the context capture proxy",
2827
2980
  "examples": [
2828
- "<%= config.bin %> sessions list",
2829
- "<%= config.bin %> sessions list --tool claude_code"
2981
+ "<%= config.bin %> proxy stop"
2830
2982
  ],
2831
2983
  "flags": {
2832
2984
  "api-url": {
@@ -2837,26 +2989,11 @@
2837
2989
  "hasDynamicHelp": false,
2838
2990
  "multiple": false,
2839
2991
  "type": "option"
2840
- },
2841
- "tool": {
2842
- "description": "Filter by tool (claude_code, cursor, vscode_copilot)",
2843
- "name": "tool",
2844
- "hasDynamicHelp": false,
2845
- "multiple": false,
2846
- "type": "option"
2847
- },
2848
- "limit": {
2849
- "description": "Max results",
2850
- "name": "limit",
2851
- "default": 20,
2852
- "hasDynamicHelp": false,
2853
- "multiple": false,
2854
- "type": "option"
2855
2992
  }
2856
2993
  },
2857
2994
  "hasDynamicHelp": false,
2858
2995
  "hiddenAliases": [],
2859
- "id": "sessions:list",
2996
+ "id": "proxy:stop",
2860
2997
  "pluginAlias": "@rulemetric/cli",
2861
2998
  "pluginName": "@rulemetric/cli",
2862
2999
  "pluginType": "core",
@@ -2866,18 +3003,17 @@
2866
3003
  "relativePath": [
2867
3004
  "dist",
2868
3005
  "commands",
2869
- "sessions",
2870
- "list.js"
3006
+ "proxy",
3007
+ "stop.js"
2871
3008
  ]
2872
3009
  },
2873
- "sessions:start": {
3010
+ "research:backfill": {
2874
3011
  "aliases": [],
2875
3012
  "args": {},
2876
- "description": "Start a capture session for any LLM provider (Cortex, Groq, etc.)",
3013
+ "description": "Scan every ~/.claude/projects transcript for past rate-limit (429) events and POST them as observations. Opt-in seed for the usage-research dataset — forward-only tail is the default capture path.",
2877
3014
  "examples": [
2878
- "<%= config.bin %> sessions start --tool cortex",
2879
- "<%= config.bin %> sessions start --tool groq --project-dir /path/to/project",
2880
- "eval \"$(rulemetric proxy env --python)\" && rulemetric sessions start --tool cortex"
3015
+ "<%= config.bin %> research backfill",
3016
+ "<%= config.bin %> research backfill --claude-dir /custom/.claude --dry-run"
2881
3017
  ],
2882
3018
  "flags": {
2883
3019
  "api-url": {
@@ -2889,27 +3025,24 @@
2889
3025
  "multiple": false,
2890
3026
  "type": "option"
2891
3027
  },
2892
- "tool": {
2893
- "char": "t",
2894
- "description": "LLM provider or tool name (e.g., cortex, groq, deepseek, custom_app)",
2895
- "name": "tool",
2896
- "required": true,
3028
+ "claude-dir": {
3029
+ "description": "Override the Claude Code projects directory",
3030
+ "name": "claude-dir",
3031
+ "default": "/home/runner/.claude",
2897
3032
  "hasDynamicHelp": false,
2898
3033
  "multiple": false,
2899
3034
  "type": "option"
2900
3035
  },
2901
- "project-dir": {
2902
- "char": "d",
2903
- "description": "Project directory (defaults to cwd)",
2904
- "name": "project-dir",
2905
- "hasDynamicHelp": false,
2906
- "multiple": false,
2907
- "type": "option"
3036
+ "dry-run": {
3037
+ "description": "Print observation count without POSTing",
3038
+ "name": "dry-run",
3039
+ "allowNo": false,
3040
+ "type": "boolean"
2908
3041
  }
2909
3042
  },
2910
3043
  "hasDynamicHelp": false,
2911
3044
  "hiddenAliases": [],
2912
- "id": "sessions:start",
3045
+ "id": "research:backfill",
2913
3046
  "pluginAlias": "@rulemetric/cli",
2914
3047
  "pluginName": "@rulemetric/cli",
2915
3048
  "pluginType": "core",
@@ -2919,14 +3052,20 @@
2919
3052
  "relativePath": [
2920
3053
  "dist",
2921
3054
  "commands",
2922
- "sessions",
2923
- "start.js"
3055
+ "research",
3056
+ "backfill.js"
2924
3057
  ]
2925
3058
  },
2926
- "signals:report": {
3059
+ "research:tail-transcript": {
2927
3060
  "aliases": [],
2928
- "args": {},
2929
- "description": "Report filesystem-detected languages for the current project to the server.",
3061
+ "args": {
3062
+ "transcript": {
3063
+ "description": "Absolute path to a Claude Code .jsonl transcript",
3064
+ "name": "transcript",
3065
+ "required": true
3066
+ }
3067
+ },
3068
+ "description": "Read new lines from a Claude Code transcript since the last cached offset, POST any 429 events, and persist the new offset. Invoked by the session-end hook — safe to re-run.",
2930
3069
  "flags": {
2931
3070
  "api-url": {
2932
3071
  "description": "Override API base URL",
@@ -2937,18 +3076,17 @@
2937
3076
  "multiple": false,
2938
3077
  "type": "option"
2939
3078
  },
2940
- "cwd": {
2941
- "description": "Project path to inspect (defaults to process.cwd())",
2942
- "name": "cwd",
2943
- "hasDynamicHelp": false,
2944
- "multiple": false,
2945
- "type": "option"
3079
+ "no-post": {
3080
+ "description": "Parse and advance the offset without POSTing (debug)",
3081
+ "name": "no-post",
3082
+ "allowNo": false,
3083
+ "type": "boolean"
2946
3084
  }
2947
3085
  },
2948
3086
  "hasDynamicHelp": false,
2949
3087
  "hidden": true,
2950
3088
  "hiddenAliases": [],
2951
- "id": "signals:report",
3089
+ "id": "research:tail-transcript",
2952
3090
  "pluginAlias": "@rulemetric/cli",
2953
3091
  "pluginName": "@rulemetric/cli",
2954
3092
  "pluginType": "core",
@@ -2958,17 +3096,20 @@
2958
3096
  "relativePath": [
2959
3097
  "dist",
2960
3098
  "commands",
2961
- "signals",
2962
- "report.js"
3099
+ "research",
3100
+ "tail-transcript.js"
2963
3101
  ]
2964
3102
  },
2965
- "skills:export-approved": {
3103
+ "service:install": {
2966
3104
  "aliases": [],
2967
3105
  "args": {},
2968
- "description": "Export approved community submissions as community-skills.json for registry merge",
3106
+ "description": "Install RuleMetric services. Default (in a repo checkout): API + worker + gateway + capture proxy as launchd agents. With --worker-only: just the job worker, targeting the globally-installed CLI — no repo, no build (works from `npm i -g @rulemetric/cli`, macOS launchd or Linux systemd).",
2969
3107
  "examples": [
2970
- "<%= config.bin %> skills export-approved",
2971
- "<%= config.bin %> skills export-approved --output ./community-skills.json"
3108
+ "<%= config.bin %> service install",
3109
+ "<%= config.bin %> service install --port 3000",
3110
+ "<%= config.bin %> service install --skip-build",
3111
+ "<%= config.bin %> service install --no-proxy",
3112
+ "<%= config.bin %> service install --worker-only"
2972
3113
  ],
2973
3114
  "flags": {
2974
3115
  "api-url": {
@@ -2980,18 +3121,44 @@
2980
3121
  "multiple": false,
2981
3122
  "type": "option"
2982
3123
  },
2983
- "output": {
2984
- "description": "Output file path",
2985
- "name": "output",
2986
- "default": "packages/skills-registry/community-skills.json",
3124
+ "port": {
3125
+ "char": "p",
3126
+ "description": "API server port",
3127
+ "name": "port",
3128
+ "default": 3000,
2987
3129
  "hasDynamicHelp": false,
2988
3130
  "multiple": false,
2989
3131
  "type": "option"
3132
+ },
3133
+ "force": {
3134
+ "char": "f",
3135
+ "description": "Overwrite existing service configuration and reclaim conflicting ports",
3136
+ "name": "force",
3137
+ "allowNo": false,
3138
+ "type": "boolean"
3139
+ },
3140
+ "skip-build": {
3141
+ "description": "Skip the pre-install workspace build (API/web/cli dist must already exist)",
3142
+ "name": "skip-build",
3143
+ "allowNo": false,
3144
+ "type": "boolean"
3145
+ },
3146
+ "no-proxy": {
3147
+ "description": "Skip gateway + mitmproxy plists (just install API + worker)",
3148
+ "name": "no-proxy",
3149
+ "allowNo": false,
3150
+ "type": "boolean"
3151
+ },
3152
+ "worker-only": {
3153
+ "description": "Install ONLY the job worker as a persistent service, targeting the globally-installed CLI (no repo checkout, no build, no API/gateway/proxy). Sources auth from ~/.config/rulemetric/env. macOS (launchd) + Linux (systemd --user).",
3154
+ "name": "worker-only",
3155
+ "allowNo": false,
3156
+ "type": "boolean"
2990
3157
  }
2991
3158
  },
2992
3159
  "hasDynamicHelp": false,
2993
3160
  "hiddenAliases": [],
2994
- "id": "skills:export-approved",
3161
+ "id": "service:install",
2995
3162
  "pluginAlias": "@rulemetric/cli",
2996
3163
  "pluginName": "@rulemetric/cli",
2997
3164
  "pluginType": "core",
@@ -3001,25 +3168,14 @@
3001
3168
  "relativePath": [
3002
3169
  "dist",
3003
3170
  "commands",
3004
- "skills",
3005
- "export-approved.js"
3171
+ "service",
3172
+ "install.js"
3006
3173
  ]
3007
3174
  },
3008
- "skills:install": {
3175
+ "service:status": {
3009
3176
  "aliases": [],
3010
- "args": {
3011
- "id": {
3012
- "description": "Skill ID to install",
3013
- "name": "id",
3014
- "required": true
3015
- }
3016
- },
3017
- "description": "Install a skill from the registry into your project",
3018
- "examples": [
3019
- "<%= config.bin %> skills install tdd-workflow",
3020
- "<%= config.bin %> skills install tdd-workflow --tool cursor",
3021
- "<%= config.bin %> skills install tdd-workflow --preview"
3022
- ],
3177
+ "args": {},
3178
+ "description": "Check the status of all RuleMetric launchd services",
3023
3179
  "flags": {
3024
3180
  "api-url": {
3025
3181
  "description": "Override API base URL",
@@ -3029,37 +3185,11 @@
3029
3185
  "hasDynamicHelp": false,
3030
3186
  "multiple": false,
3031
3187
  "type": "option"
3032
- },
3033
- "tool": {
3034
- "description": "Target tool format",
3035
- "name": "tool",
3036
- "hasDynamicHelp": false,
3037
- "multiple": false,
3038
- "options": [
3039
- "claude_code",
3040
- "cursor",
3041
- "copilot"
3042
- ],
3043
- "type": "option"
3044
- },
3045
- "preview": {
3046
- "description": "Preview content without writing",
3047
- "name": "preview",
3048
- "allowNo": false,
3049
- "type": "boolean"
3050
- },
3051
- "dir": {
3052
- "description": "Project directory",
3053
- "name": "dir",
3054
- "default": ".",
3055
- "hasDynamicHelp": false,
3056
- "multiple": false,
3057
- "type": "option"
3058
3188
  }
3059
3189
  },
3060
3190
  "hasDynamicHelp": false,
3061
3191
  "hiddenAliases": [],
3062
- "id": "skills:install",
3192
+ "id": "service:status",
3063
3193
  "pluginAlias": "@rulemetric/cli",
3064
3194
  "pluginName": "@rulemetric/cli",
3065
3195
  "pluginType": "core",
@@ -3069,18 +3199,14 @@
3069
3199
  "relativePath": [
3070
3200
  "dist",
3071
3201
  "commands",
3072
- "skills",
3073
- "install.js"
3202
+ "service",
3203
+ "status.js"
3074
3204
  ]
3075
3205
  },
3076
- "skills:list": {
3206
+ "service:uninstall": {
3077
3207
  "aliases": [],
3078
3208
  "args": {},
3079
- "description": "List skills in the registry",
3080
- "examples": [
3081
- "<%= config.bin %> skills list",
3082
- "<%= config.bin %> skills list --stats"
3083
- ],
3209
+ "description": "Remove RuleMetric services (macOS launchd: API/worker/gateway/proxy; Linux: the --worker-only systemd unit)",
3084
3210
  "flags": {
3085
3211
  "api-url": {
3086
3212
  "description": "Override API base URL",
@@ -3090,25 +3216,11 @@
3090
3216
  "hasDynamicHelp": false,
3091
3217
  "multiple": false,
3092
3218
  "type": "option"
3093
- },
3094
- "stats": {
3095
- "description": "Show registry statistics",
3096
- "name": "stats",
3097
- "allowNo": false,
3098
- "type": "boolean"
3099
- },
3100
- "limit": {
3101
- "description": "Max skills to show",
3102
- "name": "limit",
3103
- "default": 30,
3104
- "hasDynamicHelp": false,
3105
- "multiple": false,
3106
- "type": "option"
3107
3219
  }
3108
3220
  },
3109
3221
  "hasDynamicHelp": false,
3110
3222
  "hiddenAliases": [],
3111
- "id": "skills:list",
3223
+ "id": "service:uninstall",
3112
3224
  "pluginAlias": "@rulemetric/cli",
3113
3225
  "pluginName": "@rulemetric/cli",
3114
3226
  "pluginType": "core",
@@ -3118,23 +3230,22 @@
3118
3230
  "relativePath": [
3119
3231
  "dist",
3120
3232
  "commands",
3121
- "skills",
3122
- "list.js"
3233
+ "service",
3234
+ "uninstall.js"
3123
3235
  ]
3124
3236
  },
3125
- "skills:publish": {
3237
+ "sessions:analyze": {
3126
3238
  "aliases": [],
3127
3239
  "args": {
3128
- "file": {
3129
- "description": "Path to skill file (.md)",
3130
- "name": "file",
3240
+ "id": {
3241
+ "description": "Session ID",
3242
+ "name": "id",
3131
3243
  "required": true
3132
3244
  }
3133
3245
  },
3134
- "description": "Submit a skill file to the RuleMetric skills registry",
3246
+ "description": "Trigger AI analysis on a session",
3135
3247
  "examples": [
3136
- "<%= config.bin %> skills publish ./my-skill.md",
3137
- "<%= config.bin %> skills publish ./my-skill.md --category workflow --tool claude_code"
3248
+ "<%= config.bin %> sessions analyze <session-id>"
3138
3249
  ],
3139
3250
  "flags": {
3140
3251
  "api-url": {
@@ -3145,69 +3256,11 @@
3145
3256
  "hasDynamicHelp": false,
3146
3257
  "multiple": false,
3147
3258
  "type": "option"
3148
- },
3149
- "name": {
3150
- "description": "Skill name (defaults to filename)",
3151
- "name": "name",
3152
- "hasDynamicHelp": false,
3153
- "multiple": false,
3154
- "type": "option"
3155
- },
3156
- "description": {
3157
- "description": "One-line description",
3158
- "name": "description",
3159
- "hasDynamicHelp": false,
3160
- "multiple": false,
3161
- "type": "option"
3162
- },
3163
- "category": {
3164
- "description": "Skill category",
3165
- "name": "category",
3166
- "default": "other",
3167
- "hasDynamicHelp": false,
3168
- "multiple": false,
3169
- "options": [
3170
- "workflow",
3171
- "language",
3172
- "framework",
3173
- "tool",
3174
- "security",
3175
- "testing",
3176
- "architecture",
3177
- "devops",
3178
- "documentation",
3179
- "performance",
3180
- "other"
3181
- ],
3182
- "type": "option"
3183
- },
3184
- "tool": {
3185
- "description": "Primary tool this skill targets",
3186
- "name": "tool",
3187
- "default": "universal",
3188
- "hasDynamicHelp": false,
3189
- "multiple": false,
3190
- "options": [
3191
- "claude_code",
3192
- "cursor",
3193
- "copilot",
3194
- "windsurf",
3195
- "universal"
3196
- ],
3197
- "type": "option"
3198
- },
3199
- "tags": {
3200
- "description": "Comma-separated tags",
3201
- "name": "tags",
3202
- "default": "",
3203
- "hasDynamicHelp": false,
3204
- "multiple": false,
3205
- "type": "option"
3206
3259
  }
3207
3260
  },
3208
3261
  "hasDynamicHelp": false,
3209
3262
  "hiddenAliases": [],
3210
- "id": "skills:publish",
3263
+ "id": "sessions:analyze",
3211
3264
  "pluginAlias": "@rulemetric/cli",
3212
3265
  "pluginName": "@rulemetric/cli",
3213
3266
  "pluginType": "core",
@@ -3217,24 +3270,16 @@
3217
3270
  "relativePath": [
3218
3271
  "dist",
3219
3272
  "commands",
3220
- "skills",
3221
- "publish.js"
3273
+ "sessions",
3274
+ "analyze.js"
3222
3275
  ]
3223
3276
  },
3224
- "skills:search": {
3277
+ "sessions:end": {
3225
3278
  "aliases": [],
3226
- "args": {
3227
- "query": {
3228
- "description": "Search term",
3229
- "name": "query",
3230
- "required": false
3231
- }
3232
- },
3233
- "description": "Search the community skills registry",
3279
+ "args": {},
3280
+ "description": "End the active capture session",
3234
3281
  "examples": [
3235
- "<%= config.bin %> skills search \"tdd\"",
3236
- "<%= config.bin %> skills search --tool cursor --category testing",
3237
- "<%= config.bin %> skills search --language python"
3282
+ "<%= config.bin %> sessions end"
3238
3283
  ],
3239
3284
  "flags": {
3240
3285
  "api-url": {
@@ -3245,67 +3290,11 @@
3245
3290
  "hasDynamicHelp": false,
3246
3291
  "multiple": false,
3247
3292
  "type": "option"
3248
- },
3249
- "tool": {
3250
- "description": "Filter by tool",
3251
- "name": "tool",
3252
- "hasDynamicHelp": false,
3253
- "multiple": false,
3254
- "options": [
3255
- "claude_code",
3256
- "cursor",
3257
- "copilot",
3258
- "windsurf",
3259
- "cline",
3260
- "universal"
3261
- ],
3262
- "type": "option"
3263
- },
3264
- "category": {
3265
- "description": "Filter by category",
3266
- "name": "category",
3267
- "hasDynamicHelp": false,
3268
- "multiple": false,
3269
- "options": [
3270
- "workflow",
3271
- "language",
3272
- "framework",
3273
- "tool",
3274
- "security",
3275
- "testing",
3276
- "architecture",
3277
- "devops",
3278
- "documentation",
3279
- "performance"
3280
- ],
3281
- "type": "option"
3282
- },
3283
- "language": {
3284
- "description": "Filter by programming language",
3285
- "name": "language",
3286
- "hasDynamicHelp": false,
3287
- "multiple": false,
3288
- "type": "option"
3289
- },
3290
- "framework": {
3291
- "description": "Filter by framework",
3292
- "name": "framework",
3293
- "hasDynamicHelp": false,
3294
- "multiple": false,
3295
- "type": "option"
3296
- },
3297
- "limit": {
3298
- "description": "Max results",
3299
- "name": "limit",
3300
- "default": 20,
3301
- "hasDynamicHelp": false,
3302
- "multiple": false,
3303
- "type": "option"
3304
3293
  }
3305
3294
  },
3306
3295
  "hasDynamicHelp": false,
3307
3296
  "hiddenAliases": [],
3308
- "id": "skills:search",
3297
+ "id": "sessions:end",
3309
3298
  "pluginAlias": "@rulemetric/cli",
3310
3299
  "pluginName": "@rulemetric/cli",
3311
3300
  "pluginType": "core",
@@ -3315,17 +3304,23 @@
3315
3304
  "relativePath": [
3316
3305
  "dist",
3317
3306
  "commands",
3318
- "skills",
3319
- "search.js"
3307
+ "sessions",
3308
+ "end.js"
3320
3309
  ]
3321
3310
  },
3322
- "skills:update": {
3311
+ "sessions:import": {
3323
3312
  "aliases": [],
3324
- "args": {},
3325
- "description": "Fetch latest skills from GitHub sources and update local registry",
3313
+ "args": {
3314
+ "path": {
3315
+ "description": "Path to session file",
3316
+ "name": "path",
3317
+ "required": true
3318
+ }
3319
+ },
3320
+ "description": "Import a session file (JSONL, JSON)",
3326
3321
  "examples": [
3327
- "<%= config.bin %> skills update",
3328
- "<%= config.bin %> skills update --all"
3322
+ "<%= config.bin %> sessions import ~/.claude/projects/my-project/session-abc.jsonl",
3323
+ "<%= config.bin %> sessions import ./copilot-export.json --tool vscode_copilot"
3329
3324
  ],
3330
3325
  "flags": {
3331
3326
  "api-url": {
@@ -3337,16 +3332,17 @@
3337
3332
  "multiple": false,
3338
3333
  "type": "option"
3339
3334
  },
3340
- "all": {
3341
- "description": "Include Tier 2 (niche) sources",
3342
- "name": "all",
3343
- "allowNo": false,
3344
- "type": "boolean"
3335
+ "tool": {
3336
+ "description": "Override tool detection (claude_code, cursor, vscode_copilot)",
3337
+ "name": "tool",
3338
+ "hasDynamicHelp": false,
3339
+ "multiple": false,
3340
+ "type": "option"
3345
3341
  }
3346
3342
  },
3347
3343
  "hasDynamicHelp": false,
3348
3344
  "hiddenAliases": [],
3349
- "id": "skills:update",
3345
+ "id": "sessions:import",
3350
3346
  "pluginAlias": "@rulemetric/cli",
3351
3347
  "pluginName": "@rulemetric/cli",
3352
3348
  "pluginType": "core",
@@ -3356,22 +3352,17 @@
3356
3352
  "relativePath": [
3357
3353
  "dist",
3358
3354
  "commands",
3359
- "skills",
3360
- "update.js"
3355
+ "sessions",
3356
+ "import.js"
3361
3357
  ]
3362
3358
  },
3363
- "suggestions:accept": {
3359
+ "sessions:list": {
3364
3360
  "aliases": [],
3365
- "args": {
3366
- "id": {
3367
- "description": "Suggestion UUID from `suggestions list`",
3368
- "name": "id",
3369
- "required": true
3370
- }
3371
- },
3372
- "description": "Accept a suggestion and append the instruction to CLAUDE.md",
3361
+ "args": {},
3362
+ "description": "List captured sessions",
3373
3363
  "examples": [
3374
- "<%= config.bin %> suggestions accept <id>"
3364
+ "<%= config.bin %> sessions list",
3365
+ "<%= config.bin %> sessions list --tool claude_code"
3375
3366
  ],
3376
3367
  "flags": {
3377
3368
  "api-url": {
@@ -3382,11 +3373,26 @@
3382
3373
  "hasDynamicHelp": false,
3383
3374
  "multiple": false,
3384
3375
  "type": "option"
3376
+ },
3377
+ "tool": {
3378
+ "description": "Filter by tool (claude_code, cursor, vscode_copilot)",
3379
+ "name": "tool",
3380
+ "hasDynamicHelp": false,
3381
+ "multiple": false,
3382
+ "type": "option"
3383
+ },
3384
+ "limit": {
3385
+ "description": "Max results",
3386
+ "name": "limit",
3387
+ "default": 20,
3388
+ "hasDynamicHelp": false,
3389
+ "multiple": false,
3390
+ "type": "option"
3385
3391
  }
3386
3392
  },
3387
3393
  "hasDynamicHelp": false,
3388
3394
  "hiddenAliases": [],
3389
- "id": "suggestions:accept",
3395
+ "id": "sessions:list",
3390
3396
  "pluginAlias": "@rulemetric/cli",
3391
3397
  "pluginName": "@rulemetric/cli",
3392
3398
  "pluginType": "core",
@@ -3396,22 +3402,18 @@
3396
3402
  "relativePath": [
3397
3403
  "dist",
3398
3404
  "commands",
3399
- "suggestions",
3400
- "accept.js"
3405
+ "sessions",
3406
+ "list.js"
3401
3407
  ]
3402
3408
  },
3403
- "suggestions:dismiss": {
3409
+ "sessions:start": {
3404
3410
  "aliases": [],
3405
- "args": {
3406
- "id": {
3407
- "description": "Suggestion UUID from `suggestions list`",
3408
- "name": "id",
3409
- "required": true
3410
- }
3411
- },
3412
- "description": "Dismiss a suggestion so it will not re-surface for 30 days",
3411
+ "args": {},
3412
+ "description": "Start a capture session for any LLM provider (Cortex, Groq, etc.)",
3413
3413
  "examples": [
3414
- "<%= config.bin %> suggestions dismiss <id>"
3414
+ "<%= config.bin %> sessions start --tool cortex",
3415
+ "<%= config.bin %> sessions start --tool groq --project-dir /path/to/project",
3416
+ "eval \"$(rulemetric proxy env --python)\" && rulemetric sessions start --tool cortex"
3415
3417
  ],
3416
3418
  "flags": {
3417
3419
  "api-url": {
@@ -3422,11 +3424,28 @@
3422
3424
  "hasDynamicHelp": false,
3423
3425
  "multiple": false,
3424
3426
  "type": "option"
3427
+ },
3428
+ "tool": {
3429
+ "char": "t",
3430
+ "description": "LLM provider or tool name (e.g., cortex, groq, deepseek, custom_app)",
3431
+ "name": "tool",
3432
+ "required": true,
3433
+ "hasDynamicHelp": false,
3434
+ "multiple": false,
3435
+ "type": "option"
3436
+ },
3437
+ "project-dir": {
3438
+ "char": "d",
3439
+ "description": "Project directory (defaults to cwd)",
3440
+ "name": "project-dir",
3441
+ "hasDynamicHelp": false,
3442
+ "multiple": false,
3443
+ "type": "option"
3425
3444
  }
3426
3445
  },
3427
3446
  "hasDynamicHelp": false,
3428
3447
  "hiddenAliases": [],
3429
- "id": "suggestions:dismiss",
3448
+ "id": "sessions:start",
3430
3449
  "pluginAlias": "@rulemetric/cli",
3431
3450
  "pluginName": "@rulemetric/cli",
3432
3451
  "pluginType": "core",
@@ -3436,18 +3455,14 @@
3436
3455
  "relativePath": [
3437
3456
  "dist",
3438
3457
  "commands",
3439
- "suggestions",
3440
- "dismiss.js"
3458
+ "sessions",
3459
+ "start.js"
3441
3460
  ]
3442
3461
  },
3443
- "suggestions:list": {
3462
+ "signals:report": {
3444
3463
  "aliases": [],
3445
3464
  "args": {},
3446
- "description": "List instruction suggestions for a project",
3447
- "examples": [
3448
- "<%= config.bin %> suggestions list",
3449
- "<%= config.bin %> suggestions list --project /path/to/project"
3450
- ],
3465
+ "description": "Report filesystem-detected languages for the current project to the server.",
3451
3466
  "flags": {
3452
3467
  "api-url": {
3453
3468
  "description": "Override API base URL",
@@ -3458,18 +3473,18 @@
3458
3473
  "multiple": false,
3459
3474
  "type": "option"
3460
3475
  },
3461
- "project": {
3462
- "char": "p",
3463
- "description": "Project path (defaults to current directory)",
3464
- "name": "project",
3476
+ "cwd": {
3477
+ "description": "Project path to inspect (defaults to process.cwd())",
3478
+ "name": "cwd",
3465
3479
  "hasDynamicHelp": false,
3466
3480
  "multiple": false,
3467
3481
  "type": "option"
3468
3482
  }
3469
3483
  },
3470
3484
  "hasDynamicHelp": false,
3485
+ "hidden": true,
3471
3486
  "hiddenAliases": [],
3472
- "id": "suggestions:list",
3487
+ "id": "signals:report",
3473
3488
  "pluginAlias": "@rulemetric/cli",
3474
3489
  "pluginName": "@rulemetric/cli",
3475
3490
  "pluginType": "core",
@@ -3479,16 +3494,17 @@
3479
3494
  "relativePath": [
3480
3495
  "dist",
3481
3496
  "commands",
3482
- "suggestions",
3483
- "list.js"
3497
+ "signals",
3498
+ "report.js"
3484
3499
  ]
3485
3500
  },
3486
- "suggestions:refresh": {
3501
+ "skills:export-approved": {
3487
3502
  "aliases": [],
3488
3503
  "args": {},
3489
- "description": "Information about refreshing instruction suggestions",
3504
+ "description": "Export approved community submissions as community-skills.json for registry merge",
3490
3505
  "examples": [
3491
- "<%= config.bin %> suggestions refresh"
3506
+ "<%= config.bin %> skills export-approved",
3507
+ "<%= config.bin %> skills export-approved --output ./community-skills.json"
3492
3508
  ],
3493
3509
  "flags": {
3494
3510
  "api-url": {
@@ -3499,11 +3515,19 @@
3499
3515
  "hasDynamicHelp": false,
3500
3516
  "multiple": false,
3501
3517
  "type": "option"
3518
+ },
3519
+ "output": {
3520
+ "description": "Output file path",
3521
+ "name": "output",
3522
+ "default": "packages/skills-registry/community-skills.json",
3523
+ "hasDynamicHelp": false,
3524
+ "multiple": false,
3525
+ "type": "option"
3502
3526
  }
3503
3527
  },
3504
3528
  "hasDynamicHelp": false,
3505
3529
  "hiddenAliases": [],
3506
- "id": "suggestions:refresh",
3530
+ "id": "skills:export-approved",
3507
3531
  "pluginAlias": "@rulemetric/cli",
3508
3532
  "pluginName": "@rulemetric/cli",
3509
3533
  "pluginType": "core",
@@ -3513,22 +3537,24 @@
3513
3537
  "relativePath": [
3514
3538
  "dist",
3515
3539
  "commands",
3516
- "suggestions",
3517
- "refresh.js"
3540
+ "skills",
3541
+ "export-approved.js"
3518
3542
  ]
3519
3543
  },
3520
- "instructions:create": {
3544
+ "skills:install": {
3521
3545
  "aliases": [],
3522
3546
  "args": {
3523
- "file": {
3524
- "description": "Path to markdown file",
3525
- "name": "file"
3547
+ "id": {
3548
+ "description": "Skill ID to install",
3549
+ "name": "id",
3550
+ "required": true
3526
3551
  }
3527
3552
  },
3528
- "description": "Create a new instruction",
3553
+ "description": "Install a skill from the registry into your project",
3529
3554
  "examples": [
3530
- "<%= config.bin %> instructions create ./my-instruction.md --name \"My Rules\"",
3531
- "<%= config.bin %> instructions create ./rules.md -n \"Rules\" -s project"
3555
+ "<%= config.bin %> skills install tdd-workflow",
3556
+ "<%= config.bin %> skills install tdd-workflow --tool cursor",
3557
+ "<%= config.bin %> skills install tdd-workflow --preview"
3532
3558
  ],
3533
3559
  "flags": {
3534
3560
  "api-url": {
@@ -3540,50 +3566,28 @@
3540
3566
  "multiple": false,
3541
3567
  "type": "option"
3542
3568
  },
3543
- "name": {
3544
- "char": "n",
3545
- "description": "Instruction name",
3546
- "name": "name",
3547
- "required": true,
3548
- "hasDynamicHelp": false,
3549
- "multiple": false,
3550
- "type": "option"
3551
- },
3552
- "description": {
3553
- "char": "d",
3554
- "description": "Instruction description",
3555
- "name": "description",
3556
- "required": true,
3557
- "hasDynamicHelp": false,
3558
- "multiple": false,
3559
- "type": "option"
3560
- },
3561
- "scope": {
3562
- "char": "s",
3563
- "description": "Instruction scope",
3564
- "name": "scope",
3565
- "default": "personal",
3569
+ "tool": {
3570
+ "description": "Target tool format",
3571
+ "name": "tool",
3566
3572
  "hasDynamicHelp": false,
3567
3573
  "multiple": false,
3568
3574
  "options": [
3569
- "org",
3570
- "team",
3571
- "project",
3572
- "personal"
3575
+ "claude_code",
3576
+ "cursor",
3577
+ "copilot"
3573
3578
  ],
3574
3579
  "type": "option"
3575
3580
  },
3576
- "scope-ref": {
3577
- "description": "Scope reference UUID",
3578
- "name": "scope-ref",
3579
- "hasDynamicHelp": false,
3580
- "multiple": false,
3581
- "type": "option"
3581
+ "preview": {
3582
+ "description": "Preview content without writing",
3583
+ "name": "preview",
3584
+ "allowNo": false,
3585
+ "type": "boolean"
3582
3586
  },
3583
- "tags": {
3584
- "char": "t",
3585
- "description": "Comma-separated tags",
3586
- "name": "tags",
3587
+ "dir": {
3588
+ "description": "Project directory",
3589
+ "name": "dir",
3590
+ "default": ".",
3587
3591
  "hasDynamicHelp": false,
3588
3592
  "multiple": false,
3589
3593
  "type": "option"
@@ -3591,7 +3595,7 @@
3591
3595
  },
3592
3596
  "hasDynamicHelp": false,
3593
3597
  "hiddenAliases": [],
3594
- "id": "instructions:create",
3598
+ "id": "skills:install",
3595
3599
  "pluginAlias": "@rulemetric/cli",
3596
3600
  "pluginName": "@rulemetric/cli",
3597
3601
  "pluginType": "core",
@@ -3601,23 +3605,17 @@
3601
3605
  "relativePath": [
3602
3606
  "dist",
3603
3607
  "commands",
3604
- "instructions",
3605
- "create.js"
3608
+ "skills",
3609
+ "install.js"
3606
3610
  ]
3607
3611
  },
3608
- "instructions:delete": {
3612
+ "skills:list": {
3609
3613
  "aliases": [],
3610
- "args": {
3611
- "id": {
3612
- "description": "Instruction ID",
3613
- "name": "id",
3614
- "required": true
3615
- }
3616
- },
3617
- "description": "Delete (archive) an instruction",
3614
+ "args": {},
3615
+ "description": "List skills in the registry",
3618
3616
  "examples": [
3619
- "<%= config.bin %> instructions delete <id>",
3620
- "<%= config.bin %> instructions delete <id> --force"
3617
+ "<%= config.bin %> skills list",
3618
+ "<%= config.bin %> skills list --stats"
3621
3619
  ],
3622
3620
  "flags": {
3623
3621
  "api-url": {
@@ -3629,17 +3627,24 @@
3629
3627
  "multiple": false,
3630
3628
  "type": "option"
3631
3629
  },
3632
- "force": {
3633
- "char": "f",
3634
- "description": "Skip confirmation prompt",
3635
- "name": "force",
3630
+ "stats": {
3631
+ "description": "Show registry statistics",
3632
+ "name": "stats",
3636
3633
  "allowNo": false,
3637
3634
  "type": "boolean"
3635
+ },
3636
+ "limit": {
3637
+ "description": "Max skills to show",
3638
+ "name": "limit",
3639
+ "default": 30,
3640
+ "hasDynamicHelp": false,
3641
+ "multiple": false,
3642
+ "type": "option"
3638
3643
  }
3639
3644
  },
3640
3645
  "hasDynamicHelp": false,
3641
3646
  "hiddenAliases": [],
3642
- "id": "instructions:delete",
3647
+ "id": "skills:list",
3643
3648
  "pluginAlias": "@rulemetric/cli",
3644
3649
  "pluginName": "@rulemetric/cli",
3645
3650
  "pluginType": "core",
@@ -3649,22 +3654,23 @@
3649
3654
  "relativePath": [
3650
3655
  "dist",
3651
3656
  "commands",
3652
- "instructions",
3653
- "delete.js"
3657
+ "skills",
3658
+ "list.js"
3654
3659
  ]
3655
3660
  },
3656
- "instructions:fork": {
3661
+ "skills:publish": {
3657
3662
  "aliases": [],
3658
3663
  "args": {
3659
- "id": {
3660
- "description": "ID of the instruction to fork",
3661
- "name": "id",
3664
+ "file": {
3665
+ "description": "Path to skill file (.md)",
3666
+ "name": "file",
3662
3667
  "required": true
3663
3668
  }
3664
3669
  },
3665
- "description": "Fork an instruction to your personal scope",
3670
+ "description": "Submit a skill file to the RuleMetric skills registry",
3666
3671
  "examples": [
3667
- "<%= config.bin %> instructions fork <instruction-id>"
3672
+ "<%= config.bin %> skills publish ./my-skill.md",
3673
+ "<%= config.bin %> skills publish ./my-skill.md --category workflow --tool claude_code"
3668
3674
  ],
3669
3675
  "flags": {
3670
3676
  "api-url": {
@@ -3675,11 +3681,69 @@
3675
3681
  "hasDynamicHelp": false,
3676
3682
  "multiple": false,
3677
3683
  "type": "option"
3684
+ },
3685
+ "name": {
3686
+ "description": "Skill name (defaults to filename)",
3687
+ "name": "name",
3688
+ "hasDynamicHelp": false,
3689
+ "multiple": false,
3690
+ "type": "option"
3691
+ },
3692
+ "description": {
3693
+ "description": "One-line description",
3694
+ "name": "description",
3695
+ "hasDynamicHelp": false,
3696
+ "multiple": false,
3697
+ "type": "option"
3698
+ },
3699
+ "category": {
3700
+ "description": "Skill category",
3701
+ "name": "category",
3702
+ "default": "other",
3703
+ "hasDynamicHelp": false,
3704
+ "multiple": false,
3705
+ "options": [
3706
+ "workflow",
3707
+ "language",
3708
+ "framework",
3709
+ "tool",
3710
+ "security",
3711
+ "testing",
3712
+ "architecture",
3713
+ "devops",
3714
+ "documentation",
3715
+ "performance",
3716
+ "other"
3717
+ ],
3718
+ "type": "option"
3719
+ },
3720
+ "tool": {
3721
+ "description": "Primary tool this skill targets",
3722
+ "name": "tool",
3723
+ "default": "universal",
3724
+ "hasDynamicHelp": false,
3725
+ "multiple": false,
3726
+ "options": [
3727
+ "claude_code",
3728
+ "cursor",
3729
+ "copilot",
3730
+ "windsurf",
3731
+ "universal"
3732
+ ],
3733
+ "type": "option"
3734
+ },
3735
+ "tags": {
3736
+ "description": "Comma-separated tags",
3737
+ "name": "tags",
3738
+ "default": "",
3739
+ "hasDynamicHelp": false,
3740
+ "multiple": false,
3741
+ "type": "option"
3678
3742
  }
3679
3743
  },
3680
3744
  "hasDynamicHelp": false,
3681
3745
  "hiddenAliases": [],
3682
- "id": "instructions:fork",
3746
+ "id": "skills:publish",
3683
3747
  "pluginAlias": "@rulemetric/cli",
3684
3748
  "pluginName": "@rulemetric/cli",
3685
3749
  "pluginType": "core",
@@ -3689,32 +3753,26 @@
3689
3753
  "relativePath": [
3690
3754
  "dist",
3691
3755
  "commands",
3692
- "instructions",
3693
- "fork.js"
3756
+ "skills",
3757
+ "publish.js"
3694
3758
  ]
3695
3759
  },
3696
- "instructions:get": {
3760
+ "skills:search": {
3697
3761
  "aliases": [],
3698
3762
  "args": {
3699
- "id": {
3700
- "description": "Instruction ID",
3701
- "name": "id",
3702
- "required": true
3763
+ "query": {
3764
+ "description": "Search term",
3765
+ "name": "query",
3766
+ "required": false
3703
3767
  }
3704
3768
  },
3705
- "description": "Get an instruction by ID",
3769
+ "description": "Search the community skills registry",
3706
3770
  "examples": [
3707
- "<%= config.bin %> instructions get <id>",
3708
- "<%= config.bin %> instructions get <id> --format raw"
3771
+ "<%= config.bin %> skills search \"tdd\"",
3772
+ "<%= config.bin %> skills search --tool cursor --category testing",
3773
+ "<%= config.bin %> skills search --language python"
3709
3774
  ],
3710
3775
  "flags": {
3711
- "json": {
3712
- "description": "Format output as json.",
3713
- "helpGroup": "GLOBAL",
3714
- "name": "json",
3715
- "allowNo": false,
3716
- "type": "boolean"
3717
- },
3718
3776
  "api-url": {
3719
3777
  "description": "Override API base URL",
3720
3778
  "env": "RULEMETRIC_API_URL",
@@ -3724,53 +3782,88 @@
3724
3782
  "multiple": false,
3725
3783
  "type": "option"
3726
3784
  },
3727
- "format": {
3728
- "char": "f",
3729
- "description": "Output format",
3730
- "name": "format",
3731
- "default": "yaml",
3785
+ "tool": {
3786
+ "description": "Filter by tool",
3787
+ "name": "tool",
3732
3788
  "hasDynamicHelp": false,
3733
3789
  "multiple": false,
3734
3790
  "options": [
3735
- "yaml",
3736
- "json",
3737
- "raw"
3791
+ "claude_code",
3792
+ "cursor",
3793
+ "copilot",
3794
+ "windsurf",
3795
+ "cline",
3796
+ "universal"
3797
+ ],
3798
+ "type": "option"
3799
+ },
3800
+ "category": {
3801
+ "description": "Filter by category",
3802
+ "name": "category",
3803
+ "hasDynamicHelp": false,
3804
+ "multiple": false,
3805
+ "options": [
3806
+ "workflow",
3807
+ "language",
3808
+ "framework",
3809
+ "tool",
3810
+ "security",
3811
+ "testing",
3812
+ "architecture",
3813
+ "devops",
3814
+ "documentation",
3815
+ "performance"
3738
3816
  ],
3739
3817
  "type": "option"
3818
+ },
3819
+ "language": {
3820
+ "description": "Filter by programming language",
3821
+ "name": "language",
3822
+ "hasDynamicHelp": false,
3823
+ "multiple": false,
3824
+ "type": "option"
3825
+ },
3826
+ "framework": {
3827
+ "description": "Filter by framework",
3828
+ "name": "framework",
3829
+ "hasDynamicHelp": false,
3830
+ "multiple": false,
3831
+ "type": "option"
3832
+ },
3833
+ "limit": {
3834
+ "description": "Max results",
3835
+ "name": "limit",
3836
+ "default": 20,
3837
+ "hasDynamicHelp": false,
3838
+ "multiple": false,
3839
+ "type": "option"
3740
3840
  }
3741
3841
  },
3742
3842
  "hasDynamicHelp": false,
3743
3843
  "hiddenAliases": [],
3744
- "id": "instructions:get",
3844
+ "id": "skills:search",
3745
3845
  "pluginAlias": "@rulemetric/cli",
3746
3846
  "pluginName": "@rulemetric/cli",
3747
3847
  "pluginType": "core",
3748
3848
  "strict": true,
3749
- "enableJsonFlag": true,
3849
+ "enableJsonFlag": false,
3750
3850
  "isESM": true,
3751
3851
  "relativePath": [
3752
3852
  "dist",
3753
3853
  "commands",
3754
- "instructions",
3755
- "get.js"
3854
+ "skills",
3855
+ "search.js"
3756
3856
  ]
3757
3857
  },
3758
- "instructions:list": {
3858
+ "skills:update": {
3759
3859
  "aliases": [],
3760
3860
  "args": {},
3761
- "description": "List your instructions",
3861
+ "description": "Fetch latest skills from GitHub sources and update local registry",
3762
3862
  "examples": [
3763
- "<%= config.bin %> instructions list",
3764
- "<%= config.bin %> instructions list --json"
3863
+ "<%= config.bin %> skills update",
3864
+ "<%= config.bin %> skills update --all"
3765
3865
  ],
3766
3866
  "flags": {
3767
- "json": {
3768
- "description": "Format output as json.",
3769
- "helpGroup": "GLOBAL",
3770
- "name": "json",
3771
- "allowNo": false,
3772
- "type": "boolean"
3773
- },
3774
3867
  "api-url": {
3775
3868
  "description": "Override API base URL",
3776
3869
  "env": "RULEMETRIC_API_URL",
@@ -3780,49 +3873,41 @@
3780
3873
  "multiple": false,
3781
3874
  "type": "option"
3782
3875
  },
3783
- "format": {
3784
- "char": "f",
3785
- "description": "Output format",
3786
- "name": "format",
3787
- "default": "table",
3788
- "hasDynamicHelp": false,
3789
- "multiple": false,
3790
- "options": [
3791
- "table",
3792
- "json"
3793
- ],
3794
- "type": "option"
3876
+ "all": {
3877
+ "description": "Include Tier 2 (niche) sources",
3878
+ "name": "all",
3879
+ "allowNo": false,
3880
+ "type": "boolean"
3795
3881
  }
3796
3882
  },
3797
3883
  "hasDynamicHelp": false,
3798
3884
  "hiddenAliases": [],
3799
- "id": "instructions:list",
3885
+ "id": "skills:update",
3800
3886
  "pluginAlias": "@rulemetric/cli",
3801
3887
  "pluginName": "@rulemetric/cli",
3802
3888
  "pluginType": "core",
3803
3889
  "strict": true,
3804
- "enableJsonFlag": true,
3890
+ "enableJsonFlag": false,
3805
3891
  "isESM": true,
3806
3892
  "relativePath": [
3807
3893
  "dist",
3808
3894
  "commands",
3809
- "instructions",
3810
- "list.js"
3895
+ "skills",
3896
+ "update.js"
3811
3897
  ]
3812
3898
  },
3813
- "instructions:promote": {
3899
+ "suggestions:accept": {
3814
3900
  "aliases": [],
3815
3901
  "args": {
3816
3902
  "id": {
3817
- "description": "ID of the instruction to promote",
3903
+ "description": "Suggestion UUID from `suggestions list`",
3818
3904
  "name": "id",
3819
3905
  "required": true
3820
3906
  }
3821
3907
  },
3822
- "description": "Promote an instruction to a higher scope (personal team org)",
3908
+ "description": "Accept a suggestion and append the instruction to CLAUDE.md",
3823
3909
  "examples": [
3824
- "<%= config.bin %> instructions promote <id> --scope team --ref <team-id>",
3825
- "<%= config.bin %> instructions promote <id> --scope org --ref <org-id>"
3910
+ "<%= config.bin %> suggestions accept <id>"
3826
3911
  ],
3827
3912
  "flags": {
3828
3913
  "api-url": {
@@ -3833,31 +3918,11 @@
3833
3918
  "hasDynamicHelp": false,
3834
3919
  "multiple": false,
3835
3920
  "type": "option"
3836
- },
3837
- "scope": {
3838
- "description": "Target scope",
3839
- "name": "scope",
3840
- "required": true,
3841
- "hasDynamicHelp": false,
3842
- "multiple": false,
3843
- "options": [
3844
- "team",
3845
- "org"
3846
- ],
3847
- "type": "option"
3848
- },
3849
- "ref": {
3850
- "description": "Target scope ref (team or org ID)",
3851
- "name": "ref",
3852
- "required": true,
3853
- "hasDynamicHelp": false,
3854
- "multiple": false,
3855
- "type": "option"
3856
3921
  }
3857
3922
  },
3858
3923
  "hasDynamicHelp": false,
3859
3924
  "hiddenAliases": [],
3860
- "id": "instructions:promote",
3925
+ "id": "suggestions:accept",
3861
3926
  "pluginAlias": "@rulemetric/cli",
3862
3927
  "pluginName": "@rulemetric/cli",
3863
3928
  "pluginType": "core",
@@ -3867,20 +3932,23 @@
3867
3932
  "relativePath": [
3868
3933
  "dist",
3869
3934
  "commands",
3870
- "instructions",
3871
- "promote.js"
3935
+ "suggestions",
3936
+ "accept.js"
3872
3937
  ]
3873
3938
  },
3874
- "instructions:pull": {
3939
+ "suggestions:dismiss": {
3875
3940
  "aliases": [],
3876
3941
  "args": {
3877
3942
  "id": {
3878
- "description": "ID of the forked instruction",
3943
+ "description": "Suggestion UUID from `suggestions list`",
3879
3944
  "name": "id",
3880
3945
  "required": true
3881
3946
  }
3882
3947
  },
3883
- "description": "Pull upstream changes into a forked instruction",
3948
+ "description": "Dismiss a suggestion so it will not re-surface for 30 days",
3949
+ "examples": [
3950
+ "<%= config.bin %> suggestions dismiss <id>"
3951
+ ],
3884
3952
  "flags": {
3885
3953
  "api-url": {
3886
3954
  "description": "Override API base URL",
@@ -3894,7 +3962,7 @@
3894
3962
  },
3895
3963
  "hasDynamicHelp": false,
3896
3964
  "hiddenAliases": [],
3897
- "id": "instructions:pull",
3965
+ "id": "suggestions:dismiss",
3898
3966
  "pluginAlias": "@rulemetric/cli",
3899
3967
  "pluginName": "@rulemetric/cli",
3900
3968
  "pluginType": "core",
@@ -3904,20 +3972,18 @@
3904
3972
  "relativePath": [
3905
3973
  "dist",
3906
3974
  "commands",
3907
- "instructions",
3908
- "pull.js"
3975
+ "suggestions",
3976
+ "dismiss.js"
3909
3977
  ]
3910
3978
  },
3911
- "instructions:upstream": {
3979
+ "suggestions:list": {
3912
3980
  "aliases": [],
3913
- "args": {
3914
- "id": {
3915
- "description": "ID of the forked instruction",
3916
- "name": "id",
3917
- "required": true
3918
- }
3919
- },
3920
- "description": "Check if a forked instruction has upstream updates",
3981
+ "args": {},
3982
+ "description": "List instruction suggestions for a project",
3983
+ "examples": [
3984
+ "<%= config.bin %> suggestions list",
3985
+ "<%= config.bin %> suggestions list --project /path/to/project"
3986
+ ],
3921
3987
  "flags": {
3922
3988
  "api-url": {
3923
3989
  "description": "Override API base URL",
@@ -3927,11 +3993,19 @@
3927
3993
  "hasDynamicHelp": false,
3928
3994
  "multiple": false,
3929
3995
  "type": "option"
3996
+ },
3997
+ "project": {
3998
+ "char": "p",
3999
+ "description": "Project path (defaults to current directory)",
4000
+ "name": "project",
4001
+ "hasDynamicHelp": false,
4002
+ "multiple": false,
4003
+ "type": "option"
3930
4004
  }
3931
4005
  },
3932
4006
  "hasDynamicHelp": false,
3933
4007
  "hiddenAliases": [],
3934
- "id": "instructions:upstream",
4008
+ "id": "suggestions:list",
3935
4009
  "pluginAlias": "@rulemetric/cli",
3936
4010
  "pluginName": "@rulemetric/cli",
3937
4011
  "pluginType": "core",
@@ -3941,31 +4015,18 @@
3941
4015
  "relativePath": [
3942
4016
  "dist",
3943
4017
  "commands",
3944
- "instructions",
3945
- "upstream.js"
4018
+ "suggestions",
4019
+ "list.js"
3946
4020
  ]
3947
4021
  },
3948
- "instructions:versions": {
4022
+ "suggestions:refresh": {
3949
4023
  "aliases": [],
3950
- "args": {
3951
- "id": {
3952
- "description": "Instruction ID",
3953
- "name": "id",
3954
- "required": true
3955
- }
3956
- },
3957
- "description": "List version history for an instruction",
4024
+ "args": {},
4025
+ "description": "Information about refreshing instruction suggestions",
3958
4026
  "examples": [
3959
- "<%= config.bin %> instructions versions <id>"
4027
+ "<%= config.bin %> suggestions refresh"
3960
4028
  ],
3961
4029
  "flags": {
3962
- "json": {
3963
- "description": "Format output as json.",
3964
- "helpGroup": "GLOBAL",
3965
- "name": "json",
3966
- "allowNo": false,
3967
- "type": "boolean"
3968
- },
3969
4030
  "api-url": {
3970
4031
  "description": "Override API base URL",
3971
4032
  "env": "RULEMETRIC_API_URL",
@@ -3978,20 +4039,20 @@
3978
4039
  },
3979
4040
  "hasDynamicHelp": false,
3980
4041
  "hiddenAliases": [],
3981
- "id": "instructions:versions",
4042
+ "id": "suggestions:refresh",
3982
4043
  "pluginAlias": "@rulemetric/cli",
3983
4044
  "pluginName": "@rulemetric/cli",
3984
4045
  "pluginType": "core",
3985
4046
  "strict": true,
3986
- "enableJsonFlag": true,
4047
+ "enableJsonFlag": false,
3987
4048
  "isESM": true,
3988
4049
  "relativePath": [
3989
4050
  "dist",
3990
4051
  "commands",
3991
- "instructions",
3992
- "versions.js"
4052
+ "suggestions",
4053
+ "refresh.js"
3993
4054
  ]
3994
4055
  }
3995
4056
  },
3996
- "version": "0.4.0"
4057
+ "version": "0.5.1"
3997
4058
  }