agentsys 5.0.1 → 5.0.3

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 (185) hide show
  1. package/.claude-plugin/marketplace.json +13 -13
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +10 -0
  4. package/README.md +1 -0
  5. package/adapters/codex/skills/consult/SKILL.md +2 -2
  6. package/adapters/opencode/agents/consult-agent.md +1 -1
  7. package/adapters/opencode/commands/consult.md +2 -2
  8. package/adapters/opencode/skills/agnix/SKILL.md +1 -1
  9. package/adapters/opencode/skills/consult/SKILL.md +22 -6
  10. package/adapters/opencode/skills/deslop/SKILL.md +1 -1
  11. package/adapters/opencode/skills/discover-tasks/SKILL.md +1 -1
  12. package/adapters/opencode/skills/drift-analysis/SKILL.md +1 -1
  13. package/adapters/opencode/skills/enhance-agent-prompts/SKILL.md +1 -1
  14. package/adapters/opencode/skills/enhance-claude-memory/SKILL.md +1 -1
  15. package/adapters/opencode/skills/enhance-cross-file/SKILL.md +1 -1
  16. package/adapters/opencode/skills/enhance-docs/SKILL.md +1 -1
  17. package/adapters/opencode/skills/enhance-hooks/SKILL.md +1 -1
  18. package/adapters/opencode/skills/enhance-orchestrator/SKILL.md +1 -1
  19. package/adapters/opencode/skills/enhance-plugins/SKILL.md +1 -1
  20. package/adapters/opencode/skills/enhance-prompts/SKILL.md +1 -1
  21. package/adapters/opencode/skills/enhance-skills/SKILL.md +1 -1
  22. package/adapters/opencode/skills/learn/SKILL.md +1 -1
  23. package/adapters/opencode/skills/perf-analyzer/SKILL.md +1 -1
  24. package/adapters/opencode/skills/perf-baseline-manager/SKILL.md +1 -1
  25. package/adapters/opencode/skills/perf-benchmarker/SKILL.md +1 -1
  26. package/adapters/opencode/skills/perf-code-paths/SKILL.md +1 -1
  27. package/adapters/opencode/skills/perf-investigation-logger/SKILL.md +1 -1
  28. package/adapters/opencode/skills/perf-profiler/SKILL.md +1 -1
  29. package/adapters/opencode/skills/perf-theory-gatherer/SKILL.md +1 -1
  30. package/adapters/opencode/skills/perf-theory-tester/SKILL.md +1 -1
  31. package/adapters/opencode/skills/sync-docs/SKILL.md +1 -1
  32. package/adapters/opencode/skills/validate-delivery/SKILL.md +1 -1
  33. package/bin/cli.js +25 -6
  34. package/bin/dev-cli.js +16 -6
  35. package/lib/collectors/github.js +76 -12
  36. package/lib/perf/benchmark-runner.js +11 -6
  37. package/lib/perf/investigation-state.js +12 -13
  38. package/lib/perf/profiling-runner.js +23 -4
  39. package/lib/repo-map/concurrency.js +29 -0
  40. package/lib/repo-map/runner.js +218 -19
  41. package/lib/repo-map/updater.js +115 -27
  42. package/lib/state/workflow-state.js +31 -30
  43. package/lib/utils/command-parser.js +0 -0
  44. package/lib/utils/state-helpers.js +61 -0
  45. package/package.json +1 -1
  46. package/plugins/agnix/.claude-plugin/plugin.json +1 -1
  47. package/plugins/agnix/skills/agnix/SKILL.md +1 -1
  48. package/plugins/audit-project/.claude-plugin/plugin.json +1 -1
  49. package/plugins/audit-project/lib/collectors/github.js +76 -12
  50. package/plugins/audit-project/lib/perf/benchmark-runner.js +11 -6
  51. package/plugins/audit-project/lib/perf/investigation-state.js +12 -13
  52. package/plugins/audit-project/lib/perf/profiling-runner.js +23 -4
  53. package/plugins/audit-project/lib/repo-map/concurrency.js +29 -0
  54. package/plugins/audit-project/lib/repo-map/runner.js +218 -19
  55. package/plugins/audit-project/lib/repo-map/updater.js +115 -27
  56. package/plugins/audit-project/lib/state/workflow-state.js +31 -30
  57. package/plugins/audit-project/lib/utils/command-parser.js +0 -0
  58. package/plugins/audit-project/lib/utils/state-helpers.js +61 -0
  59. package/plugins/consult/.claude-plugin/plugin.json +1 -1
  60. package/plugins/consult/agents/consult-agent.md +1 -1
  61. package/plugins/consult/commands/consult.md +2 -2
  62. package/plugins/consult/skills/consult/SKILL.md +22 -6
  63. package/plugins/deslop/.claude-plugin/plugin.json +1 -1
  64. package/plugins/deslop/lib/collectors/github.js +76 -12
  65. package/plugins/deslop/lib/perf/benchmark-runner.js +11 -6
  66. package/plugins/deslop/lib/perf/investigation-state.js +12 -13
  67. package/plugins/deslop/lib/perf/profiling-runner.js +23 -4
  68. package/plugins/deslop/lib/repo-map/concurrency.js +29 -0
  69. package/plugins/deslop/lib/repo-map/runner.js +218 -19
  70. package/plugins/deslop/lib/repo-map/updater.js +115 -27
  71. package/plugins/deslop/lib/state/workflow-state.js +31 -30
  72. package/plugins/deslop/lib/utils/command-parser.js +0 -0
  73. package/plugins/deslop/lib/utils/state-helpers.js +61 -0
  74. package/plugins/deslop/skills/deslop/SKILL.md +1 -1
  75. package/plugins/drift-detect/.claude-plugin/plugin.json +1 -1
  76. package/plugins/drift-detect/lib/collectors/github.js +76 -12
  77. package/plugins/drift-detect/lib/perf/benchmark-runner.js +11 -6
  78. package/plugins/drift-detect/lib/perf/investigation-state.js +12 -13
  79. package/plugins/drift-detect/lib/perf/profiling-runner.js +23 -4
  80. package/plugins/drift-detect/lib/repo-map/concurrency.js +29 -0
  81. package/plugins/drift-detect/lib/repo-map/runner.js +218 -19
  82. package/plugins/drift-detect/lib/repo-map/updater.js +115 -27
  83. package/plugins/drift-detect/lib/state/workflow-state.js +31 -30
  84. package/plugins/drift-detect/lib/utils/command-parser.js +0 -0
  85. package/plugins/drift-detect/lib/utils/state-helpers.js +61 -0
  86. package/plugins/drift-detect/skills/drift-analysis/SKILL.md +1 -1
  87. package/plugins/enhance/.claude-plugin/plugin.json +1 -1
  88. package/plugins/enhance/lib/collectors/github.js +76 -12
  89. package/plugins/enhance/lib/perf/benchmark-runner.js +11 -6
  90. package/plugins/enhance/lib/perf/investigation-state.js +12 -13
  91. package/plugins/enhance/lib/perf/profiling-runner.js +23 -4
  92. package/plugins/enhance/lib/repo-map/concurrency.js +29 -0
  93. package/plugins/enhance/lib/repo-map/runner.js +218 -19
  94. package/plugins/enhance/lib/repo-map/updater.js +115 -27
  95. package/plugins/enhance/lib/state/workflow-state.js +31 -30
  96. package/plugins/enhance/lib/utils/command-parser.js +0 -0
  97. package/plugins/enhance/lib/utils/state-helpers.js +61 -0
  98. package/plugins/enhance/skills/enhance-agent-prompts/SKILL.md +1 -1
  99. package/plugins/enhance/skills/enhance-claude-memory/SKILL.md +1 -1
  100. package/plugins/enhance/skills/enhance-cross-file/SKILL.md +1 -1
  101. package/plugins/enhance/skills/enhance-docs/SKILL.md +1 -1
  102. package/plugins/enhance/skills/enhance-hooks/SKILL.md +1 -1
  103. package/plugins/enhance/skills/enhance-orchestrator/SKILL.md +1 -1
  104. package/plugins/enhance/skills/enhance-plugins/SKILL.md +1 -1
  105. package/plugins/enhance/skills/enhance-prompts/SKILL.md +1 -1
  106. package/plugins/enhance/skills/enhance-skills/SKILL.md +1 -1
  107. package/plugins/learn/.claude-plugin/plugin.json +1 -1
  108. package/plugins/learn/lib/collectors/github.js +76 -12
  109. package/plugins/learn/lib/perf/benchmark-runner.js +11 -6
  110. package/plugins/learn/lib/perf/investigation-state.js +12 -13
  111. package/plugins/learn/lib/perf/profiling-runner.js +23 -4
  112. package/plugins/learn/lib/repo-map/concurrency.js +29 -0
  113. package/plugins/learn/lib/repo-map/runner.js +218 -19
  114. package/plugins/learn/lib/repo-map/updater.js +115 -27
  115. package/plugins/learn/lib/state/workflow-state.js +31 -30
  116. package/plugins/learn/lib/utils/command-parser.js +0 -0
  117. package/plugins/learn/lib/utils/state-helpers.js +61 -0
  118. package/plugins/learn/skills/learn/SKILL.md +1 -1
  119. package/plugins/next-task/.claude-plugin/plugin.json +1 -1
  120. package/plugins/next-task/lib/collectors/github.js +76 -12
  121. package/plugins/next-task/lib/perf/benchmark-runner.js +11 -6
  122. package/plugins/next-task/lib/perf/investigation-state.js +12 -13
  123. package/plugins/next-task/lib/perf/profiling-runner.js +23 -4
  124. package/plugins/next-task/lib/repo-map/concurrency.js +29 -0
  125. package/plugins/next-task/lib/repo-map/runner.js +218 -19
  126. package/plugins/next-task/lib/repo-map/updater.js +115 -27
  127. package/plugins/next-task/lib/state/workflow-state.js +31 -30
  128. package/plugins/next-task/lib/utils/command-parser.js +0 -0
  129. package/plugins/next-task/lib/utils/state-helpers.js +61 -0
  130. package/plugins/next-task/skills/discover-tasks/SKILL.md +1 -1
  131. package/plugins/next-task/skills/validate-delivery/SKILL.md +1 -1
  132. package/plugins/perf/.claude-plugin/plugin.json +1 -1
  133. package/plugins/perf/lib/collectors/github.js +76 -12
  134. package/plugins/perf/lib/perf/benchmark-runner.js +11 -6
  135. package/plugins/perf/lib/perf/investigation-state.js +12 -13
  136. package/plugins/perf/lib/perf/profiling-runner.js +23 -4
  137. package/plugins/perf/lib/repo-map/concurrency.js +29 -0
  138. package/plugins/perf/lib/repo-map/runner.js +218 -19
  139. package/plugins/perf/lib/repo-map/updater.js +115 -27
  140. package/plugins/perf/lib/state/workflow-state.js +31 -30
  141. package/plugins/perf/lib/utils/command-parser.js +0 -0
  142. package/plugins/perf/lib/utils/state-helpers.js +61 -0
  143. package/plugins/perf/skills/perf-analyzer/SKILL.md +1 -1
  144. package/plugins/perf/skills/perf-baseline-manager/SKILL.md +1 -1
  145. package/plugins/perf/skills/perf-benchmarker/SKILL.md +1 -1
  146. package/plugins/perf/skills/perf-code-paths/SKILL.md +1 -1
  147. package/plugins/perf/skills/perf-investigation-logger/SKILL.md +1 -1
  148. package/plugins/perf/skills/perf-profiler/SKILL.md +1 -1
  149. package/plugins/perf/skills/perf-theory-gatherer/SKILL.md +1 -1
  150. package/plugins/perf/skills/perf-theory-tester/SKILL.md +1 -1
  151. package/plugins/repo-map/.claude-plugin/plugin.json +1 -1
  152. package/plugins/repo-map/lib/collectors/github.js +76 -12
  153. package/plugins/repo-map/lib/perf/benchmark-runner.js +11 -6
  154. package/plugins/repo-map/lib/perf/investigation-state.js +12 -13
  155. package/plugins/repo-map/lib/perf/profiling-runner.js +23 -4
  156. package/plugins/repo-map/lib/repo-map/concurrency.js +29 -0
  157. package/plugins/repo-map/lib/repo-map/runner.js +218 -19
  158. package/plugins/repo-map/lib/repo-map/updater.js +115 -27
  159. package/plugins/repo-map/lib/state/workflow-state.js +31 -30
  160. package/plugins/repo-map/lib/utils/command-parser.js +0 -0
  161. package/plugins/repo-map/lib/utils/state-helpers.js +61 -0
  162. package/plugins/ship/.claude-plugin/plugin.json +1 -1
  163. package/plugins/ship/lib/collectors/github.js +76 -12
  164. package/plugins/ship/lib/perf/benchmark-runner.js +11 -6
  165. package/plugins/ship/lib/perf/investigation-state.js +12 -13
  166. package/plugins/ship/lib/perf/profiling-runner.js +23 -4
  167. package/plugins/ship/lib/repo-map/concurrency.js +29 -0
  168. package/plugins/ship/lib/repo-map/runner.js +218 -19
  169. package/plugins/ship/lib/repo-map/updater.js +115 -27
  170. package/plugins/ship/lib/state/workflow-state.js +31 -30
  171. package/plugins/ship/lib/utils/command-parser.js +0 -0
  172. package/plugins/ship/lib/utils/state-helpers.js +61 -0
  173. package/plugins/sync-docs/.claude-plugin/plugin.json +1 -1
  174. package/plugins/sync-docs/lib/collectors/github.js +76 -12
  175. package/plugins/sync-docs/lib/perf/benchmark-runner.js +11 -6
  176. package/plugins/sync-docs/lib/perf/investigation-state.js +12 -13
  177. package/plugins/sync-docs/lib/perf/profiling-runner.js +23 -4
  178. package/plugins/sync-docs/lib/repo-map/concurrency.js +29 -0
  179. package/plugins/sync-docs/lib/repo-map/runner.js +218 -19
  180. package/plugins/sync-docs/lib/repo-map/updater.js +115 -27
  181. package/plugins/sync-docs/lib/state/workflow-state.js +31 -30
  182. package/plugins/sync-docs/lib/utils/command-parser.js +0 -0
  183. package/plugins/sync-docs/lib/utils/state-helpers.js +61 -0
  184. package/plugins/sync-docs/skills/sync-docs/SKILL.md +1 -1
  185. package/site/content.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentsys",
3
3
  "description": "12 specialized plugins for AI workflow automation - task orchestration, PR workflow, slop detection, code review, drift detection, enhancement analysis, documentation sync, repo mapping, perf investigations, topic research, agent config linting, and cross-tool AI consultation",
4
- "version": "5.0.1",
4
+ "version": "5.0.3",
5
5
  "owner": {
6
6
  "name": "Avi Fenesh",
7
7
  "url": "https://github.com/avifenesh"
@@ -26,84 +26,84 @@
26
26
  "name": "next-task",
27
27
  "source": "./plugins/next-task",
28
28
  "description": "Master workflow orchestrator: autonomous workflow with model optimization (opus/sonnet/haiku), two-file state management, workflow enforcement gates, 14 specialist agents",
29
- "version": "5.0.1",
29
+ "version": "5.0.3",
30
30
  "category": "productivity"
31
31
  },
32
32
  {
33
33
  "name": "ship",
34
34
  "source": "./plugins/ship",
35
35
  "description": "Complete PR workflow: commit to production, skips review when called from next-task, removes task from registry on cleanup, automatic rollback",
36
- "version": "5.0.1",
36
+ "version": "5.0.3",
37
37
  "category": "deployment"
38
38
  },
39
39
  {
40
40
  "name": "deslop",
41
41
  "source": "./plugins/deslop",
42
42
  "description": "3-phase AI slop detection: regex patterns (HIGH), multi-pass analyzers (MEDIUM), CLI tools (LOW)",
43
- "version": "5.0.1",
43
+ "version": "5.0.3",
44
44
  "category": "development"
45
45
  },
46
46
  {
47
47
  "name": "audit-project",
48
48
  "source": "./plugins/audit-project",
49
49
  "description": "Multi-agent iterative code review until zero issues remain",
50
- "version": "5.0.1",
50
+ "version": "5.0.3",
51
51
  "category": "development"
52
52
  },
53
53
  {
54
54
  "name": "drift-detect",
55
55
  "source": "./plugins/drift-detect",
56
56
  "description": "Deep repository analysis to realign project plans with code reality - detects drift, gaps, and creates prioritized reconstruction plans",
57
- "version": "5.0.1",
57
+ "version": "5.0.3",
58
58
  "category": "productivity"
59
59
  },
60
60
  {
61
61
  "name": "enhance",
62
62
  "source": "./plugins/enhance",
63
63
  "description": "Master enhancement orchestrator: parallel analyzer execution for plugins, agents, docs, CLAUDE.md, and prompts with unified reporting",
64
- "version": "5.0.1",
64
+ "version": "5.0.3",
65
65
  "category": "development"
66
66
  },
67
67
  {
68
68
  "name": "sync-docs",
69
69
  "source": "./plugins/sync-docs",
70
70
  "description": "Standalone documentation sync: find outdated refs, update CHANGELOG, flag stale examples based on code changes",
71
- "version": "5.0.1",
71
+ "version": "5.0.3",
72
72
  "category": "development"
73
73
  },
74
74
  {
75
75
  "name": "repo-map",
76
76
  "source": "./plugins/repo-map",
77
77
  "description": "AST-based repository map generation using ast-grep with incremental updates for faster drift analysis",
78
- "version": "5.0.1",
78
+ "version": "5.0.3",
79
79
  "category": "development"
80
80
  },
81
81
  {
82
82
  "name": "perf",
83
83
  "source": "./plugins/perf",
84
84
  "description": "Rigorous performance investigation workflow with baselines, profiling, hypotheses, and evidence-backed decisions",
85
- "version": "5.0.1",
85
+ "version": "5.0.3",
86
86
  "category": "development"
87
87
  },
88
88
  {
89
89
  "name": "learn",
90
90
  "source": "./plugins/learn",
91
91
  "description": "Research topics online and create comprehensive learning guides with RAG-optimized indexes",
92
- "version": "5.0.1",
92
+ "version": "5.0.3",
93
93
  "category": "productivity"
94
94
  },
95
95
  {
96
96
  "name": "agnix",
97
97
  "source": "./plugins/agnix",
98
98
  "description": "Lint agent configuration files (SKILL.md, CLAUDE.md, hooks, MCP) against 155 rules across 10+ AI tools",
99
- "version": "5.0.1",
99
+ "version": "5.0.3",
100
100
  "category": "development"
101
101
  },
102
102
  {
103
103
  "name": "consult",
104
104
  "source": "./plugins/consult",
105
105
  "description": "Cross-tool AI consultation: get second opinions from Gemini CLI, Codex CLI, Claude Code, OpenCode, or Copilot CLI with model and thinking effort control",
106
- "version": "5.0.1",
106
+ "version": "5.0.3",
107
107
  "category": "productivity"
108
108
  }
109
109
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentsys",
3
- "version": "5.0.1",
3
+ "version": "5.0.3",
4
4
  "description": "Professional-grade slash commands for Claude Code with cross-platform support",
5
5
  "keywords": [
6
6
  "workflow",
package/CHANGELOG.md CHANGED
@@ -9,6 +9,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [5.0.3] - 2026-02-17
13
+
14
+ ### Fixed
15
+ - **Consult: Codex command corrected to `codex exec`** - Codex CLI uses `codex exec` for non-interactive mode (not `-q` flag). Non-interactive resume uses `codex exec resume SESSION_ID "prompt" --json`. All four tools (Claude, Gemini, Codex, OpenCode) now have correct native session resume support.
16
+
17
+ ## [5.0.2] - 2026-02-17
18
+
19
+ ### Fixed
20
+ - **Consult: Codex and OpenCode marked as continuable** - Both tools support session resume but were incorrectly marked as non-continuable. OpenCode supports `--session SESSION_ID` and `--continue` flags in non-interactive mode.
21
+
12
22
  ## [5.0.1] - 2026-02-14
13
23
 
14
24
  ### Fixed
package/README.md CHANGED
@@ -17,6 +17,7 @@
17
17
  <a href="https://github.com/avifenesh/agentsys/stargazers"><img src="https://img.shields.io/github/stars/avifenesh/agentsys?style=social" alt="GitHub stars"></a>
18
18
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
19
19
  <a href="https://avifenesh.github.io/agentsys/"><img src="https://img.shields.io/badge/Website-AgentSys-blue?style=flat&logo=github" alt="Website"></a>
20
+ <a href="https://github.com/hesreallyhim/awesome-claude-code"><img src="https://awesome.re/mentioned-badge.svg" alt="Mentioned in Awesome Claude Code"></a>
20
21
  </p>
21
22
 
22
23
  <p align="center">
@@ -209,9 +209,9 @@ The results of the consultation are:
209
209
  {response}
210
210
  ```
211
211
 
212
- For continuable tools (Claude/Gemini), also display: `Session: {session_id} - use /consult --continue to resume`
212
+ For continuable tools (Claude, Gemini, Codex, OpenCode), display: `Session: {session_id} - use /consult --continue to resume`
213
213
 
214
- Save session state for continuable tools (Claude, Gemini) to `{AI_STATE_DIR}/consult/last-session.json`.
214
+ Save session state for continuable tools (Claude, Gemini, Codex, OpenCode) to `{AI_STATE_DIR}/consult/last-session.json`.
215
215
 
216
216
  Platform state directory:
217
217
  - Claude Code: `.claude/`
@@ -75,7 +75,7 @@ The results of the consultation are:
75
75
  {response}
76
76
  ```
77
77
 
78
- Set `continuable: true` only for Claude and Gemini (tools with session resumption support).
78
+ Set `continuable: true` for Claude, Gemini, Codex, and OpenCode (tools with session resume support). Only Copilot is non-continuable. Each tool uses a different resume mechanism: Claude/Gemini use `--resume`, Codex uses `codex exec resume`, OpenCode uses `--session`/`--continue`.
79
79
 
80
80
  ### 5. Save Session State
81
81
 
@@ -216,9 +216,9 @@ The results of the consultation are:
216
216
  {response}
217
217
  ```
218
218
 
219
- For continuable tools (Claude/Gemini), also display: `Session: {session_id} - use /consult --continue to resume`
219
+ For continuable tools (Claude, Gemini, Codex, OpenCode), display: `Session: {session_id} - use /consult --continue to resume`
220
220
 
221
- Save session state for continuable tools (Claude, Gemini) to `{AI_STATE_DIR}/consult/last-session.json`.
221
+ Save session state for continuable tools (Claude, Gemini, Codex, OpenCode) to `{AI_STATE_DIR}/consult/last-session.json`.
222
222
 
223
223
  Platform state directory:
224
224
  - Claude Code: `.opencode/`
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: agnix
4
4
  description: "Use when user asks to 'lint agent configs', 'validate skills', 'check CLAUDE.md', 'validate hooks', 'lint MCP'. Validates agent configuration files against 155 rules across 10+ AI tools."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[path] [--fix] [--strict] [--target=claude-code|cursor|codex]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: consult
4
4
  description: "Cross-tool AI consultation. Use when user asks to 'consult gemini', 'ask codex', 'get second opinion', 'cross-check with claude', 'consult another AI', 'ask opencode', 'copilot opinion', or wants a second opinion from a different AI tool."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[question] [--tool] [--effort] [--model] [--context] [--continue]"
7
7
  ---
8
8
 
@@ -82,9 +82,13 @@ Models: gemini-2.5-flash, gemini-2.5-pro, gemini-3-flash-preview, gemini-3-pro-p
82
82
  ### Codex
83
83
 
84
84
  ```
85
- Command: codex -q "QUESTION" --json -m "MODEL" -a suggest -c model_reasoning_effort="LEVEL"
85
+ Command: codex exec "QUESTION" --json -m "MODEL" -a suggest -c model_reasoning_effort="LEVEL"
86
+ Session resume: codex exec resume SESSION_ID "QUESTION" --json
87
+ Session resume (latest): codex exec resume --last "QUESTION" --json
86
88
  ```
87
89
 
90
+ Note: `codex exec` is the non-interactive/headless mode. There is no `-q` flag. The TUI mode is `codex` (no subcommand).
91
+
88
92
  Models: gpt-5.1-codex-mini, gpt-5-codex, gpt-5.1-codex, gpt-5.2-codex, gpt-5.3-codex, gpt-5.1-codex-max
89
93
 
90
94
  | Effort | Model | Reasoning |
@@ -95,12 +99,14 @@ Models: gpt-5.1-codex-mini, gpt-5-codex, gpt-5.1-codex, gpt-5.2-codex, gpt-5.3-c
95
99
  | max | gpt-5.3-codex | xhigh |
96
100
 
97
101
  **Parse output**: `JSON.parse(stdout).message` or raw text
98
- **Continuable**: No
102
+ **Session ID**: Codex prints a resume hint at session end (e.g., `codex resume SESSION_ID`). Extract the session ID from stdout or from `JSON.parse(stdout).session_id` if available.
103
+ **Continuable**: Yes. Sessions are stored as JSONL rollout files at `~/.codex/sessions/`. Non-interactive resume uses `codex exec resume SESSION_ID "follow-up prompt" --json`. Use `--last` instead of a session ID to resume the most recent session.
99
104
 
100
105
  ### OpenCode
101
106
 
102
107
  ```
103
108
  Command: opencode run "QUESTION" --format json --model "MODEL" --variant "VARIANT"
109
+ Session resume: opencode run "QUESTION" --format json --model "MODEL" --variant "VARIANT" --continue (most recent) or --session "SESSION_ID"
104
110
  With thinking: add --thinking flag
105
111
  ```
106
112
 
@@ -114,7 +120,8 @@ Models: 75+ via providers (format: provider/model). Top picks: claude-sonnet-4-5
114
120
  | max | (user-selected or default) | high + --thinking |
115
121
 
116
122
  **Parse output**: Parse JSON events from stdout, extract final text response
117
- **Continuable**: No
123
+ **Session ID**: Extract from JSON output if available, or use `--continue` to auto-resume the most recent session.
124
+ **Continuable**: Yes (via `--continue` or `--session`). Sessions are stored in a SQLite database in the OpenCode data directory. Use `--session SESSION_ID` for a specific session, or `--continue` for the most recent.
118
125
 
119
126
  ### Copilot
120
127
 
@@ -156,7 +163,10 @@ If `--model` is specified, use it directly. Otherwise, use the effort-based mode
156
163
 
157
164
  Use the command template from the provider's configuration section. Substitute QUESTION, MODEL, TURNS, LEVEL, and VARIANT with resolved values.
158
165
 
159
- If continuing a session (Claude or Gemini): append `--resume SESSION_ID`.
166
+ If continuing a session:
167
+ - **Claude or Gemini**: append `--resume SESSION_ID` to the command.
168
+ - **Codex**: use `codex exec resume SESSION_ID "QUESTION" --json` instead of the standard command. Use `--last` instead of a session ID for the most recent session.
169
+ - **OpenCode**: append `--session SESSION_ID` to the command. If no session_id is saved, use `--continue` instead (resumes most recent session).
160
170
  If OpenCode at max effort: append `--thinking`.
161
171
 
162
172
  ### Step 3: Context Packaging
@@ -181,9 +191,15 @@ User-provided question text MUST NOT be interpolated into shell command strings.
181
191
  | Provider | Safe command pattern |
182
192
  |----------|---------------------|
183
193
  | Claude | `claude -p - --output-format json --model "MODEL" --max-turns TURNS --allowedTools "Read,Glob,Grep" < "{AI_STATE_DIR}/consult/question.tmp"` |
194
+ | Claude (resume) | `claude -p - --output-format json --model "MODEL" --max-turns TURNS --allowedTools "Read,Glob,Grep" --resume "SESSION_ID" < "{AI_STATE_DIR}/consult/question.tmp"` |
184
195
  | Gemini | `gemini -p - --output-format json -m "MODEL" < "{AI_STATE_DIR}/consult/question.tmp"` |
185
- | Codex | `codex -q "$(cat "{AI_STATE_DIR}/consult/question.tmp")" --json -m "MODEL" -a suggest` (Codex lacks stdin mode -- cat reads from platform-controlled path, not user input) |
196
+ | Gemini (resume) | `gemini -p - --output-format json -m "MODEL" --resume "SESSION_ID" < "{AI_STATE_DIR}/consult/question.tmp"` |
197
+ | Codex | `codex exec "$(cat "{AI_STATE_DIR}/consult/question.tmp")" --json -m "MODEL" -a suggest` (Codex exec lacks stdin mode -- cat reads from platform-controlled path, not user input) |
198
+ | Codex (resume) | `codex exec resume SESSION_ID "$(cat "{AI_STATE_DIR}/consult/question.tmp")" --json -m "MODEL"` |
199
+ | Codex (resume latest) | `codex exec resume --last "$(cat "{AI_STATE_DIR}/consult/question.tmp")" --json -m "MODEL"` |
186
200
  | OpenCode | `opencode run - --format json --model "MODEL" --variant "VARIANT" < "{AI_STATE_DIR}/consult/question.tmp"` |
201
+ | OpenCode (resume by ID) | `opencode run - --format json --model "MODEL" --variant "VARIANT" --session "SESSION_ID" < "{AI_STATE_DIR}/consult/question.tmp"` |
202
+ | OpenCode (resume latest) | `opencode run - --format json --model "MODEL" --variant "VARIANT" --continue < "{AI_STATE_DIR}/consult/question.tmp"` |
187
203
  | Copilot | `copilot -p - < "{AI_STATE_DIR}/consult/question.tmp"` |
188
204
 
189
205
  3. **Delete the temp file** after the command completes (success or failure). Always clean up to prevent accumulation.
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: deslop
4
4
  description: "Use when user wants to clean AI slop from code. Use for cleanup, remove debug statements, find ghost code, repo hygiene."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[report|apply] [--scope=all|diff|path] [--thoroughness=quick|normal|deep]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: discover-tasks
4
4
  description: "Use when user asks to \"discover tasks\", \"find next task\", or \"prioritize issues\". Discovers and ranks tasks from GitHub, GitLab, local files, and custom sources."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  ---
7
7
 
8
8
  # discover-tasks
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: drift-analysis
4
4
  description: Use when the user asks about plan drift, reality check, comparing docs to code, project state analysis, roadmap alignment, implementation gaps, or needs guidance on identifying discrepancies between documented plans and actual implementation state.
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  ---
7
7
 
8
8
  # Drift Analysis
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: enhance-agent-prompts
4
4
  description: "Use when improving agent prompts, frontmatter, and tool restrictions."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[path] [--fix] [--verbose]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: enhance-claude-memory
4
4
  description: "Use when improving CLAUDE.md or AGENTS.md project memory files."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  ---
7
7
 
8
8
  > **OpenCode Note**: Invoke agents using `@agent-name` syntax.
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: enhance-cross-file
4
4
  description: "Use when checking cross-file consistency: tools vs frontmatter, agent references, duplicate rules, contradictions."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[path]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: enhance-docs
4
4
  description: "Use when improving documentation structure, accuracy, and RAG readiness."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[path] [--fix] [--ai]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: enhance-hooks
4
4
  description: "Use when reviewing hooks for safety, timeouts, and correct frontmatter."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[path] [--fix]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: enhance-orchestrator
4
4
  description: "Use when coordinating multiple enhancers for /enhance command. Runs analyzers in parallel and produces unified report."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[path] [--apply] [--focus=TYPE]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: enhance-plugins
4
4
  description: "Use when analyzing plugin structures, MCP tools, and plugin security patterns."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[path] [--fix]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: enhance-prompts
4
4
  description: "Use when improving general prompts for structure, examples, and constraints."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[path] [--fix]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: enhance-skills
4
4
  description: "Use when reviewing SKILL.md files for structure and trigger quality."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[path] [--fix]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: learn
4
4
  description: "Research any topic online and create learning guides. Use when user asks to 'learn about', 'research topic', 'create learning guide', 'build knowledge base', or 'study subject'."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[topic] [--depth=brief|medium|deep]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: perf-analyzer
4
4
  description: "Use when synthesizing perf findings into evidence-backed recommendations and decisions."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  ---
7
7
 
8
8
  # perf-analyzer
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: perf-baseline-manager
4
4
  description: "Use when managing perf baselines, consolidating results, or comparing versions. Ensures one baseline JSON per version."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  ---
7
7
 
8
8
  # perf-baseline-manager
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: perf-benchmarker
4
4
  description: "Use when running performance benchmarks, establishing baselines, or validating regressions with sequential runs. Enforces 60s minimum runs (30s only for binary search) and no parallel benchmarks."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[command] [duration]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: perf-code-paths
4
4
  description: "Use when mapping code paths, entrypoints, and likely hot files before profiling."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  ---
7
7
 
8
8
  # perf-code-paths
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: perf-investigation-logger
4
4
  description: "Use when appending structured perf investigation notes and evidence."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  ---
7
7
 
8
8
  # perf-investigation-logger
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: perf-profiler
4
4
  description: "Use when profiling CPU/memory hot paths, generating flame graphs, or capturing JFR/perf evidence."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[tool] [command]"
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: perf-theory-gatherer
4
4
  description: "Use when generating performance hypotheses backed by git history and code evidence."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  ---
7
7
 
8
8
  # perf-theory-gatherer
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: perf-theory-tester
4
4
  description: "Use when running controlled perf experiments to validate hypotheses."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  ---
7
7
 
8
8
  # perf-theory-tester
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: sync-docs
4
4
  description: "Sync documentation with code. Use when user asks to update docs, check docs, fix stale documentation, update changelog, or after code changes."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  argument-hint: "[report|apply] [--scope=all|recent|before-pr] [--include-undocumented]"
7
7
  allowed-tools: Bash(git:*), Read, Grep, Glob
8
8
  ---
@@ -2,7 +2,7 @@
2
2
  ---
3
3
  name: validate-delivery
4
4
  description: "Use when user asks to \"validate delivery\", \"check readiness\", or \"verify completion\". Runs tests, build, and requirement checks with pass/fail instructions."
5
- version: 5.0.1
5
+ version: 5.0.3
6
6
  ---
7
7
 
8
8
  # validate-delivery
package/bin/cli.js CHANGED
@@ -214,6 +214,7 @@ function installForClaude() {
214
214
 
215
215
  // Discover plugins from filesystem convention
216
216
  const plugins = discovery.discoverPlugins(PACKAGE_DIR);
217
+ const failedPlugins = [];
217
218
  for (const plugin of plugins) {
218
219
  // Validate plugin name before shell use (prevents injection)
219
220
  if (!/^[a-z0-9][a-z0-9-]*$/.test(plugin)) continue;
@@ -232,11 +233,17 @@ function installForClaude() {
232
233
  try {
233
234
  execSync(`claude plugin update ${plugin}@agentsys`, { stdio: 'pipe' });
234
235
  } catch {
235
- // Ignore if update also fails
236
+ failedPlugins.push(plugin);
236
237
  }
237
238
  }
238
239
  }
239
240
 
241
+ if (failedPlugins.length > 0) {
242
+ console.log(`\n[ERROR] Failed to install/update ${failedPlugins.length} plugin(s): ${failedPlugins.join(', ')}`);
243
+ console.log('Retry with: /plugin install <plugin>@agentsys');
244
+ return false;
245
+ }
246
+
240
247
  console.log('\n[OK] Claude Code installation complete!\n');
241
248
  console.log('Commands: ' + plugins.map(p => '/' + p).join(', '));
242
249
  return true;
@@ -696,24 +703,36 @@ async function main() {
696
703
  }
697
704
 
698
705
  // Install for each platform
706
+ const failedPlatforms = [];
699
707
  for (const platform of selected) {
700
708
  switch (platform) {
701
709
  case 'claude':
702
- if (args.development) {
703
- installForClaudeDevelopment();
710
+ if (args.development && !installForClaudeDevelopment()) {
711
+ failedPlatforms.push('claude');
704
712
  } else {
705
- installForClaude();
713
+ if (!args.development && !installForClaude()) {
714
+ failedPlatforms.push('claude');
715
+ }
706
716
  }
707
717
  break;
708
718
  case 'opencode':
709
- installForOpenCode(installDir, { stripModels: args.stripModels });
719
+ if (!installForOpenCode(installDir, { stripModels: args.stripModels })) {
720
+ failedPlatforms.push('opencode');
721
+ }
710
722
  break;
711
723
  case 'codex':
712
- installForCodex(installDir);
724
+ if (!installForCodex(installDir)) {
725
+ failedPlatforms.push('codex');
726
+ }
713
727
  break;
714
728
  }
715
729
  }
716
730
 
731
+ if (failedPlatforms.length > 0) {
732
+ console.log(`\n[ERROR] Installation failed for: ${failedPlatforms.join(', ')}`);
733
+ process.exitCode = 1;
734
+ }
735
+
717
736
  console.log('─'.repeat(45));
718
737
  if (installDir) {
719
738
  console.log(`\nInstallation directory: ${installDir}`);
package/bin/dev-cli.js CHANGED
@@ -13,7 +13,8 @@
13
13
  */
14
14
 
15
15
  const path = require('path');
16
- const { execSync } = require('child_process');
16
+ const { execSync, spawnSync } = require('child_process');
17
+ const { resolveExecutableForPlatform } = require('../lib/utils/command-parser');
17
18
 
18
19
  const VERSION = require('../package.json').version;
19
20
  const ROOT_DIR = path.join(__dirname, '..');
@@ -293,13 +294,22 @@ const COMMANDS = {
293
294
  description: 'Run test suite',
294
295
  handler: (args) => {
295
296
  try {
296
- const cmd = ['npm', 'test'];
297
+ const cmdArgs = ['test'];
297
298
  if (args.length > 0) {
298
- cmd.push('--');
299
- cmd.push(...args);
299
+ cmdArgs.push('--');
300
+ cmdArgs.push(...args);
300
301
  }
301
- execSync(cmd.join(' '), { cwd: ROOT_DIR, stdio: 'inherit' });
302
- return 0;
302
+ const npmExecutable = resolveExecutableForPlatform('npm');
303
+ const result = spawnSync(npmExecutable, cmdArgs, {
304
+ cwd: ROOT_DIR,
305
+ stdio: 'inherit',
306
+ shell: false,
307
+ windowsHide: true
308
+ });
309
+ if (result.error) {
310
+ throw result.error;
311
+ }
312
+ return typeof result.status === 'number' ? result.status : 1;
303
313
  } catch (err) {
304
314
  return err.status || 1;
305
315
  }