@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.
- package/README.md +66 -2
- package/dist/chunk-2TSM3INR.js +1085 -0
- package/dist/chunk-2UW7NQLX.js +684 -0
- package/dist/{chunk-MVRF7BES.js → chunk-36KYEDEO.js} +10 -1
- package/dist/{chunk-TILHWBP6.js → chunk-C67H3OUL.js} +239 -36
- package/dist/{chunk-C7G7RJ4G.js → chunk-DDL4BWSL.js} +1 -1
- package/dist/{chunk-XN5ABWZ6.js → chunk-DFLXHNYQ.js} +26 -30
- package/dist/{chunk-EKKT5USP.js → chunk-E7HYEEZD.js} +487 -133
- package/dist/chunk-EEQQWTXS.js +3257 -0
- package/dist/chunk-GDE6FYN4.js +26 -0
- package/dist/{chunk-Y6TYJMNT.js → chunk-GSX2FV3M.js} +10 -16
- package/dist/{chunk-RN2PACNV.js → chunk-HMLBBZNY.js} +731 -75
- package/dist/{chunk-5NV3LSAJ.js → chunk-IWFX2FMA.js} +5 -1
- package/dist/{chunk-HZVDTAPS.js → chunk-PUDXVBSN.js} +1549 -1458
- package/dist/{chunk-ROGRTUFI.js → chunk-QIRE2VXS.js} +14 -3
- package/dist/{chunk-3AWF54PI.js → chunk-ZHOKYUO3.js} +394 -42
- package/dist/{config-cmd-DNXNL26Z.js → config-cmd-Z3A7V6NC.js} +1 -1
- package/dist/{doctor-IYHCFXOZ.js → doctor-EJUMPBMW.js} +105 -40
- package/dist/index.js +112 -24
- package/dist/{init-KZT6YNOH.js → init-54HMKNYI.js} +8 -3
- package/dist/{logs-6JKKYDGJ.js → logs-GTZ4U5JE.js} +2 -2
- package/dist/project-RMYMZSFV.js +25 -0
- package/dist/{recover-5KQI7WH5.js → recover-LTLKMTRX.js} +7 -5
- package/dist/repo-WI7GF6XQ.js +749 -0
- package/dist/{run-ETC5UTRA.js → run-IHN3ZL35.js} +21 -7
- package/dist/{setup-VWB7RZUQ.js → setup-TZJSM3QV.js} +53 -14
- package/dist/start-RTAHQMR2.js +19 -0
- package/dist/status-F4D52OVK.js +12 -0
- package/dist/stop-MDKMJPVR.js +10 -0
- package/dist/{upgrade-3YNF3VKY.js → upgrade-O33S2SJK.js} +2 -2
- package/dist/{version-NUBTTOG7.js → version-CW54Q7BK.js} +1 -1
- package/dist/worker-entry.js +848 -693
- package/dist/{workflow-TBIFY5MO.js → workflow-L3KT6HB7.js} +177 -11
- package/package.json +4 -2
- package/dist/chunk-M3IFVLQS.js +0 -1155
- package/dist/project-UUVHS3ZR.js +0 -22
- package/dist/repo-HDDE7OUI.js +0 -321
- package/dist/start-ENFLZUI6.js +0 -16
- package/dist/status-QSCFVGRQ.js +0 -11
- 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
|