@gh-symphony/cli 0.0.20 → 0.0.22

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 (40) hide show
  1. package/README.md +66 -2
  2. package/dist/chunk-2TSM3INR.js +1085 -0
  3. package/dist/chunk-2UW7NQLX.js +684 -0
  4. package/dist/{chunk-MVRF7BES.js → chunk-36KYEDEO.js} +10 -1
  5. package/dist/{chunk-TILHWBP6.js → chunk-C67H3OUL.js} +239 -36
  6. package/dist/{chunk-C7G7RJ4G.js → chunk-DDL4BWSL.js} +1 -1
  7. package/dist/{chunk-XN5ABWZ6.js → chunk-DFLXHNYQ.js} +26 -30
  8. package/dist/{chunk-EKKT5USP.js → chunk-E7HYEEZD.js} +487 -133
  9. package/dist/chunk-EEQQWTXS.js +3257 -0
  10. package/dist/chunk-GDE6FYN4.js +26 -0
  11. package/dist/{chunk-Y6TYJMNT.js → chunk-GSX2FV3M.js} +10 -16
  12. package/dist/{chunk-RN2PACNV.js → chunk-HMLBBZNY.js} +731 -75
  13. package/dist/{chunk-5NV3LSAJ.js → chunk-IWFX2FMA.js} +5 -1
  14. package/dist/{chunk-HZVDTAPS.js → chunk-PUDXVBSN.js} +1549 -1458
  15. package/dist/{chunk-ROGRTUFI.js → chunk-QIRE2VXS.js} +14 -3
  16. package/dist/{chunk-3AWF54PI.js → chunk-ZHOKYUO3.js} +394 -42
  17. package/dist/{config-cmd-DNXNL26Z.js → config-cmd-Z3A7V6NC.js} +1 -1
  18. package/dist/{doctor-IYHCFXOZ.js → doctor-EJUMPBMW.js} +105 -40
  19. package/dist/index.js +112 -24
  20. package/dist/{init-KZT6YNOH.js → init-54HMKNYI.js} +8 -3
  21. package/dist/{logs-6JKKYDGJ.js → logs-GTZ4U5JE.js} +2 -2
  22. package/dist/project-RMYMZSFV.js +25 -0
  23. package/dist/{recover-5KQI7WH5.js → recover-LTLKMTRX.js} +7 -5
  24. package/dist/repo-WI7GF6XQ.js +749 -0
  25. package/dist/{run-ETC5UTRA.js → run-IHN3ZL35.js} +21 -7
  26. package/dist/{setup-VWB7RZUQ.js → setup-TZJSM3QV.js} +53 -14
  27. package/dist/start-RTAHQMR2.js +19 -0
  28. package/dist/status-F4D52OVK.js +12 -0
  29. package/dist/stop-MDKMJPVR.js +10 -0
  30. package/dist/{upgrade-3YNF3VKY.js → upgrade-O33S2SJK.js} +2 -2
  31. package/dist/{version-NUBTTOG7.js → version-CW54Q7BK.js} +1 -1
  32. package/dist/worker-entry.js +848 -693
  33. package/dist/{workflow-TBIFY5MO.js → workflow-L3KT6HB7.js} +177 -11
  34. package/package.json +4 -2
  35. package/dist/chunk-M3IFVLQS.js +0 -1155
  36. package/dist/project-UUVHS3ZR.js +0 -22
  37. package/dist/repo-HDDE7OUI.js +0 -321
  38. package/dist/start-ENFLZUI6.js +0 -16
  39. package/dist/status-QSCFVGRQ.js +0 -11
  40. package/dist/stop-7MFCBQVW.js +0 -9
package/README.md CHANGED
@@ -61,7 +61,7 @@ Navigate to the repository you want to orchestrate, then run:
61
61
  gh-symphony workflow init
62
62
  gh-symphony workflow init --dry-run
63
63
  gh-symphony workflow validate
64
- gh-symphony workflow preview
64
+ gh-symphony workflow preview --issue owner/repo#123
65
65
  ```
66
66
 
67
67
  The interactive wizard will:
@@ -71,6 +71,8 @@ The interactive wizard will:
71
71
  3. Map project status columns to workflow phases (active / wait / terminal)
72
72
  4. Generate `WORKFLOW.md` and supporting files in the repository
73
73
 
74
+ Project discovery is pagination-aware for larger GitHub accounts, so viewer projects plus organization-owned projects are collected across multiple API pages before the selection prompt. If a discovery safety cap is hit, the wizard keeps the partial list and prints a warning.
75
+
74
76
  Token-only interactive setup is supported:
75
77
 
76
78
  ```bash
@@ -83,6 +85,18 @@ whether `WORKFLOW.md`, `.gh-symphony/context.yaml`,
83
85
  `.gh-symphony/reference-workflow.md`, and runtime skill files would be created,
84
86
  updated, or left unchanged, and then exits without modifying the repository.
85
87
 
88
+ The same detected environment data is applied to the generated artifacts, so `WORKFLOW.md`, `.gh-symphony/reference-workflow.md`, and the runtime skill templates already include repository-aware validation guidance for the detected package manager, monorepo layout, and explicit validation commands when they exist.
89
+
90
+ The detector is language-agnostic by default:
91
+
92
+ - Node repositories: JS lockfiles plus `package.json` `test` / `lint` / `build` scripts
93
+ - Python repositories: `uv.lock`, `poetry.lock`, `pyproject.toml`, `pytest.ini`, `requirements*.txt`
94
+ - Go repositories: `go.mod`
95
+ - Rust repositories: `Cargo.toml`
96
+ - Generic runners: `Makefile`, `justfile`
97
+
98
+ Examples of generated validation guidance include `make test`, `just build`, `uv run pytest`, `poetry run pytest`, `go test ./...`, and `cargo test` when those commands are the clearest repository entry points. If the repository exposes conflicting signals, the CLI keeps the generic fallback instead of guessing.
99
+
86
100
  ### Customizing Agent Behavior
87
101
 
88
102
  `gh-symphony workflow init` generates skill files under `.codex/skills/` (or `.claude/skills/` for Claude Code). These skills define how the AI agent handles commits, pushes, pulls, and project status transitions.
@@ -139,6 +153,8 @@ The interactive wizard will:
139
153
  4. Optionally customize advanced settings for repository filtering and workspace root directory
140
154
  5. Write project configuration to `~/.gh-symphony/`
141
155
 
156
+ This wizard uses the same pagination-aware discovery path as `workflow init`, so it can enumerate large personal and organization-backed GitHub accounts more reliably. If the CLI stops at a safety limit, it warns that the visible project list may be incomplete.
157
+
142
158
  Token-only non-interactive setup:
143
159
 
144
160
  ```bash
@@ -156,6 +172,8 @@ export GITHUB_GRAPHQL_TOKEN=ghp_your_classic_token
156
172
  gh-symphony project add
157
173
  ```
158
174
 
175
+ If the selected GitHub Project is brand new and has no linked repositories yet, the setup still succeeds. The completion message reports `0 repositories` and suggests either `gh-symphony repo add <owner/name>` or adding a repo-linked issue to the GitHub Project.
176
+
159
177
  ### Project Management
160
178
 
161
179
  ```bash
@@ -163,16 +181,62 @@ gh-symphony doctor # Validate local prerequisites, auth, confi
163
181
  gh-symphony doctor --fix # Apply safe fixes and guide/launch follow-up recovery commands
164
182
  gh-symphony project list # List all configured projects
165
183
  gh-symphony project remove <id> # Remove a project
184
+ gh-symphony project explain owner/repo#123 # Explain why one issue is not dispatching
185
+ gh-symphony repo add owner/name # Validate and save a repo target manually
166
186
  gh-symphony repo sync # Add newly linked repositories from the GitHub Project
167
187
  gh-symphony repo sync --dry-run # Preview linked repository drift
168
188
  gh-symphony repo sync --prune # Remove local repositories no longer linked
169
189
  ```
170
190
 
191
+ Use `gh-symphony repo add owner/name` as the onboarding safety check when a
192
+ project starts empty or when you want to register a repository before it is
193
+ linked on the GitHub Project board. Successful validation stores the canonical
194
+ clone URL from the GitHub API. If auth is unavailable or the API is offline,
195
+ the CLI still saves the repo with the fallback HTTPS clone URL and prints a
196
+ warning that validation was skipped.
197
+
171
198
  Use `gh-symphony repo sync` when the GitHub Project board has gained or lost
172
199
  linked repositories since the project was first added locally. Default sync is
173
200
  additive; `--prune` switches to strict alignment, and `--json` prints the added,
174
201
  removed, unchanged, and final repository sets.
175
202
 
203
+ For empty projects, use `gh-symphony repo add owner/name` after setup to seed the local repository list without re-running the whole wizard.
204
+
205
+ ### Why Is My Issue Not Running?
206
+
207
+ Use `gh-symphony project explain <owner/repo#number>` before digging through
208
+ logs manually:
209
+
210
+ ```bash
211
+ gh-symphony project explain owner/repo#123
212
+ gh-symphony project explain owner/repo#123 --json
213
+ gh-symphony project explain owner/repo#123 --workflow ./WORKFLOW.md
214
+ ```
215
+
216
+ The command checks project repository linkage, GitHub Project item presence,
217
+ `WORKFLOW.md` active / wait / terminal state mapping, blocker state, existing
218
+ run / retry / convergence ownership, and project or per-state concurrency
219
+ limits.
220
+
221
+ If the project has no previous local run snapshot and the repository path is
222
+ not stored in the managed project config, pass `--workflow` so the command
223
+ does not guess from the current shell directory.
224
+
225
+ ```text
226
+ Issue dispatch explanation: owner/repo#123
227
+ Not dispatchable: Issue has 1 unresolved blocker.
228
+
229
+ Checks:
230
+ ✓ Repository owner/repo is linked to the active managed project.
231
+ ✓ Issue is present in the bound GitHub Project item set.
232
+ ✓ Project state "Todo" maps to an active state in WORKFLOW.md.
233
+ ✗ Issue has 1 unresolved blocker.
234
+ Hint: Move blocker issues to a terminal state or update the blocker relationship in GitHub.
235
+ ```
236
+
237
+ The remediation hints point to existing commands such as `workflow preview`,
238
+ `doctor`, `project status`, and `logs --issue`.
239
+
176
240
  ## 4. Run the Orchestrator
177
241
 
178
242
  ### Foreground
@@ -251,7 +315,7 @@ JSON output includes the resolved auth source as `env` or `gh`.
251
315
  Setup:
252
316
  workflow init Interactive repository setup wizard
253
317
  workflow validate Parse and strictly validate WORKFLOW.md
254
- workflow preview Render the final worker prompt from a sample issue
318
+ workflow preview Render the final worker prompt from a sample or live issue
255
319
  doctor Run diagnostics and optional first-run remediation
256
320
  config show Show current configuration
257
321
  config set Set a configuration value