guild-cli 0.8.3__tar.gz → 0.8.4__tar.gz

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 (103) hide show
  1. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/assign-to-workforce/SKILL.md +1 -1
  2. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh +1 -1
  3. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/cicd/SKILL.md +42 -42
  4. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/cicd/scripts/pr-status.sh +1 -1
  5. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/cicd/scripts/workflow.sh +29 -29
  6. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/communicate/scripts/templates/skill-new-brief.md +1 -1
  7. {guild_cli-0.8.3 → guild_cli-0.8.4}/.gitignore +3 -1
  8. {guild_cli-0.8.3 → guild_cli-0.8.4}/CHANGELOG.md +25 -2
  9. {guild_cli-0.8.3 → guild_cli-0.8.4}/CLAUDE.md +1 -1
  10. {guild_cli-0.8.3 → guild_cli-0.8.4}/PKG-INFO +1 -1
  11. {guild_cli-0.8.3 → guild_cli-0.8.4}/docs/cutover.md +1 -1
  12. {guild_cli-0.8.3 → guild_cli-0.8.4}/docs/skill-sources.md +4 -4
  13. {guild_cli-0.8.3 → guild_cli-0.8.4}/pyproject.toml +1 -1
  14. {guild_cli-0.8.3 → guild_cli-0.8.4}/uv.lock +1 -1
  15. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/agent-config/SKILL.md +0 -0
  16. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/agent-config/data/backend-fingerprints.yaml +0 -0
  17. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/agent-config/scripts/show.sh +0 -0
  18. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/cicd/scripts/_resolve-nick.sh +0 -0
  19. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/cicd/scripts/portability-lint.sh +0 -0
  20. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/cicd/scripts/pr-reply.sh +0 -0
  21. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/communicate/SKILL.md +0 -0
  22. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/communicate/scripts/fetch-issues.sh +0 -0
  23. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/communicate/scripts/mesh-message.sh +0 -0
  24. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/communicate/scripts/post-comment.sh +0 -0
  25. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/communicate/scripts/post-issue.sh +0 -0
  26. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/communicate/scripts/templates/skill-update-brief.md +0 -0
  27. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/doc-test-alignment/SKILL.md +0 -0
  28. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/doc-test-alignment/scripts/check.sh +0 -0
  29. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/guild/SKILL.md +0 -0
  30. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/guild/scripts/configure-repo.sh +0 -0
  31. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/guild/scripts/create.sh +0 -0
  32. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/guild/scripts/overview.sh +0 -0
  33. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/onboard/SKILL.md +0 -0
  34. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/onboard/scripts/onboard.sh +0 -0
  35. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/pypi-maintainer/SKILL.md +0 -0
  36. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/pypi-maintainer/scripts/switch-source.sh +0 -0
  37. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/run-tests/SKILL.md +0 -0
  38. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/run-tests/scripts/test.sh +0 -0
  39. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/sonarclaude/SKILL.md +0 -0
  40. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/sonarclaude/scripts/sonar.sh +0 -0
  41. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/spec-to-plan/SKILL.md +0 -0
  42. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh +0 -0
  43. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/teach/SKILL.md +0 -0
  44. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/teach/scripts/teach.sh +0 -0
  45. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/think/SKILL.md +0 -0
  46. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/think/scripts/think.sh +0 -0
  47. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/version-bump/SKILL.md +0 -0
  48. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills/version-bump/scripts/bump.py +0 -0
  49. {guild_cli-0.8.3 → guild_cli-0.8.4}/.claude/skills.local.yaml.example +0 -0
  50. {guild_cli-0.8.3 → guild_cli-0.8.4}/.devague/frames/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
  51. {guild_cli-0.8.3 → guild_cli-0.8.4}/.devague/plans/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
  52. {guild_cli-0.8.3 → guild_cli-0.8.4}/.flake8 +0 -0
  53. {guild_cli-0.8.3 → guild_cli-0.8.4}/.github/workflows/publish.yml +0 -0
  54. {guild_cli-0.8.3 → guild_cli-0.8.4}/.github/workflows/tests.yml +0 -0
  55. {guild_cli-0.8.3 → guild_cli-0.8.4}/.markdownlint-cli2.yaml +0 -0
  56. {guild_cli-0.8.3 → guild_cli-0.8.4}/LICENSE +0 -0
  57. {guild_cli-0.8.3 → guild_cli-0.8.4}/README.md +0 -0
  58. {guild_cli-0.8.3 → guild_cli-0.8.4}/culture.yaml +0 -0
  59. {guild_cli-0.8.3 → guild_cli-0.8.4}/docs/plans/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
  60. {guild_cli-0.8.3 → guild_cli-0.8.4}/docs/specs/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
  61. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/__init__.py +0 -0
  62. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/__main__.py +0 -0
  63. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/__init__.py +0 -0
  64. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_commands/__init__.py +0 -0
  65. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_commands/_broadcast.py +0 -0
  66. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_commands/_provision_template.py +0 -0
  67. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_commands/create.py +0 -0
  68. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_commands/explain.py +0 -0
  69. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_commands/learn.py +0 -0
  70. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_commands/onboard.py +0 -0
  71. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_commands/overview.py +0 -0
  72. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_commands/show.py +0 -0
  73. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_commands/teach.py +0 -0
  74. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_commands/whoami.py +0 -0
  75. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_errors.py +0 -0
  76. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_output.py +0 -0
  77. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/cli/_repo.py +0 -0
  78. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/scaffold/__init__.py +0 -0
  79. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/scaffold/instantiate.py +0 -0
  80. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/skills/__init__.py +0 -0
  81. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/skills/identity.py +0 -0
  82. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/skills/ledger.py +0 -0
  83. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/skills/render.py +0 -0
  84. {guild_cli-0.8.3 → guild_cli-0.8.4}/guild/skills/sources.py +0 -0
  85. {guild_cli-0.8.3 → guild_cli-0.8.4}/sonar-project.properties +0 -0
  86. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/__init__.py +0 -0
  87. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_broadcast_post.py +0 -0
  88. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_cli.py +0 -0
  89. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_cli_create.py +0 -0
  90. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_cli_explain.py +0 -0
  91. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_cli_learn.py +0 -0
  92. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_cli_onboard.py +0 -0
  93. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_cli_overview.py +0 -0
  94. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_cli_show.py +0 -0
  95. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_cli_teach.py +0 -0
  96. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_cli_whoami.py +0 -0
  97. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_scaffold_instantiate.py +0 -0
  98. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_skills_convention.py +0 -0
  99. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_skills_identity.py +0 -0
  100. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_skills_ledger.py +0 -0
  101. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_skills_render.py +0 -0
  102. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_skills_sources.py +0 -0
  103. {guild_cli-0.8.3 → guild_cli-0.8.4}/tests/test_version_fallback.py +0 -0
@@ -154,7 +154,7 @@ and their tests pass.
154
154
  ### Human gate 3 — the final PR
155
155
 
156
156
  Once all waves are merged and the full test suite passes, the main agent opens
157
- a PR via the `cicd` skill (`agex pr open`). The human reviews and merges. This
157
+ a PR via the `cicd` skill (`devex pr open`). The human reviews and merges. This
158
158
  is the last and only remaining human gate.
159
159
 
160
160
  ## Hard rules (do not violate)
@@ -73,7 +73,7 @@ you are implementing. Results go to stdout, diagnostics to stderr.
73
73
  Human gates (three only):
74
74
  1. The exported spec (already closed by the /think leg).
75
75
  2. This implementation split plan (go/no-go to assign to workforce).
76
- 3. The final PR (opened by the main agent via `cicd` / `agex pr open`).
76
+ 3. The final PR (opened by the main agent via `cicd` / `devex pr open`).
77
77
 
78
78
  The devague CLI is non-orchestrating (#20): `devague plan waves` describes
79
79
  the graph; the operator performs the fan-out. One worktree per task; TDD
@@ -1,51 +1,51 @@
1
1
  ---
2
2
  name: cicd
3
3
  description: >
4
- guildmaster's CI/CD lane, layered on `agex pr`. Delegates lint / open /
5
- read / reply / delta to agex; adds two extensions — `status`
4
+ guildmaster's CI/CD lane, layered on `devex pr`. Delegates lint / open /
5
+ read / reply / delta to devex; adds two extensions — `status`
6
6
  (SonarCloud quality gate + hotspots + unresolved-thread tally) and
7
7
  `await` (read --wait + status with non-zero exit on Sonar ERROR or
8
8
  unresolved threads). Use when: creating PRs in guildmaster, handling
9
9
  review feedback, polling CI status, or the user says "create PR",
10
10
  "review comments", "address feedback", "resolve threads". Renamed
11
- from `pr-review` in steward 0.7.0; rebased on agex in 0.12.0.
11
+ from `pr-review` in steward 0.7.0; rebased on devex in 0.12.0.
12
12
  ---
13
13
 
14
14
  # CI/CD — guildmaster edition
15
15
 
16
- `agex pr` (in `agentculture/agex-cli`) is the upstream for the
16
+ `devex pr` (in `agentculture/devex`) is the upstream for the
17
17
  five core PR-lifecycle verbs — `lint`, `open`, `read`, `reply`,
18
18
  `delta`. Steward used to vendor parallel scripts for each; in 0.12.0
19
- those vendored copies were dropped in favor of delegating to `agex`.
19
+ those vendored copies were dropped in favor of delegating to `devex`.
20
20
  What's left in this skill is **the steward-specific gating layer**:
21
21
 
22
22
  - `status` — SonarCloud quality gate, OPEN issues, hotspots, deploy
23
23
  preview URL, unresolved-inline-thread tally.
24
- - `await` — composes `agex pr read --wait` with `status` and gates on
24
+ - `await` — composes `devex pr read --wait` with `status` and gates on
25
25
  Sonar `ERROR` / unresolved threads. The single command to run after
26
26
  pushing a fix when you want "wake me when this PR is triage-able."
27
27
 
28
28
  Those two are the steward unique surface today. The `await` combo verb
29
- landed natively in agex
30
- ([agex-cli#41](https://github.com/agentculture/agex-cli/issues/41), now
29
+ landed natively in devex
30
+ ([devex#41](https://github.com/agentculture/devex/issues/41), now
31
31
  closed); the gate extras that aren't yet native — SonarCloud hotspots,
32
32
  deploy-preview URL, an explicit resolved/unresolved thread tally — are
33
33
  tracked upstream in
34
- [agex-cli#52](https://github.com/agentculture/agex-cli/issues/52) and
34
+ [devex#52](https://github.com/agentculture/devex/issues/52) and
35
35
  migrate out of this skill once they land.
36
36
 
37
37
  The workflow is encapsulated in `scripts/workflow.sh` — follow that
38
- (or call `agex pr` directly).
38
+ (or call `devex pr` directly).
39
39
 
40
- ## The agex-cli inversion (upstream-as-consumer)
40
+ ## The devex inversion (upstream-as-consumer)
41
41
 
42
- One consumer is special: **agex-cli itself**, the repo that owns `agex pr`.
42
+ One consumer is special: **devex itself**, the repo that owns `devex pr`.
43
43
  Vendoring this skill there verbatim would re-vendor bash that just wraps the
44
- Python agex-cli already ships, so agex-cli vendors it **adapted-thin**
45
- ([agex-cli#53](https://github.com/agentculture/agex-cli/pull/53)):
44
+ Python devex already ships, so devex vendors it **adapted-thin**
45
+ ([devex#53](https://github.com/agentculture/devex/pull/53)):
46
46
  `workflow.sh` is the only script and it forwards
47
47
  `lint | open | read | reply | delta | await` straight to the native
48
- `agex pr <verb>` — including the native `agex pr await` combo verb (agex-cli
48
+ `devex pr <verb>` — including the native `devex pr await` combo verb (devex
49
49
  0.21.0). The steward `status` / `await` shell extensions and the vendored
50
50
  helpers (`pr-reply.sh`, `_resolve-nick.sh`, `portability-lint.sh`) are all
51
51
  redundant there, each superseded by a native verb. For that one consumer the
@@ -54,23 +54,23 @@ skill collapses to a **pure delegate**.
54
54
  The only gate bits not yet native are SonarCloud **hotspots**, the
55
55
  **deploy-preview URL**, and an explicit **resolved/unresolved thread tally** —
56
56
  tracked upstream in
57
- [agex-cli#52](https://github.com/agentculture/agex-cli/issues/52). Once those
57
+ [devex#52](https://github.com/agentculture/devex/issues/52). Once those
58
58
  land, steward retires `pr-status.sh` too and `workflow.sh status/await`
59
- delegates to native `agex pr` everywhere.
59
+ delegates to native `devex pr` everywhere.
60
60
 
61
- **For broadcasts:** a skill-update brief to agex-cli should expect this thin
61
+ **For broadcasts:** a skill-update brief to devex should expect this thin
62
62
  `workflow.sh`-only shape, not steward's five-file layout. (Ref:
63
63
  [steward#53](https://github.com/agentculture/steward/issues/53).)
64
64
 
65
65
  ## Prerequisites
66
66
 
67
- Hard requirements: `agex` (>=0.1), `gh` (GitHub CLI), `jq`, `bash`,
67
+ Hard requirements: `devex` (>=0.21), `gh` (GitHub CLI), `jq`, `bash`,
68
68
  `python3` (stdlib only), `curl` (used by `pr-status.sh`).
69
69
 
70
- Install agex once:
70
+ Install devex once:
71
71
 
72
72
  ```bash
73
- uv tool install agex-cli # or: pip install --user agex-cli
73
+ uv tool install devex # or: pip install --user devex
74
74
  ```
75
75
 
76
76
  Soft requirement: `PyYAML` is needed **only for suffix mode** of the
@@ -80,7 +80,7 @@ clear install hint when invoked without it.
80
80
 
81
81
  Per-machine paths (sibling-project layout) live in
82
82
  `.claude/skills.local.yaml`; see the committed `.example` for the
83
- schema. `agex pr delta` reads the same file.
83
+ schema. `devex pr delta` reads the same file.
84
84
 
85
85
  ## How to run
86
86
 
@@ -88,16 +88,16 @@ schema. `agex pr delta` reads the same file.
88
88
 
89
89
  | Command | What it does |
90
90
  |---------|--------------|
91
- | `workflow.sh lint` | `agex pr lint --exit-on-violation` — portability + alignment-trigger check. |
92
- | `workflow.sh open [gh-flags]` | `agex pr open --delayed-read`. Creates the PR, then polls 180s for an initial briefing. `--title TITLE` required; body via `--body-file PATH` or stdin. |
93
- | `workflow.sh read [PR] [--wait N]` | `agex pr read`. One-shot briefing (CI checks, SonarCloud gate + new issues, all comments, next-step footer). Pass `--wait N` to poll up to N seconds for required reviewers. |
94
- | `workflow.sh reply <PR>` | `agex pr reply <PR>` — batch JSONL replies (stdin) + thread resolve. agex auto-signs from `culture.yaml`. |
95
- | `workflow.sh delta` | `agex pr delta` — sibling alignment dump. |
91
+ | `workflow.sh lint` | `devex pr lint --exit-on-violation` — portability + alignment-trigger check. |
92
+ | `workflow.sh open [gh-flags]` | `devex pr open --delayed-read`. Creates the PR, then polls 180s for an initial briefing. `--title TITLE` required; body via `--body-file PATH` or stdin. |
93
+ | `workflow.sh read [PR] [--wait N]` | `devex pr read`. One-shot briefing (CI checks, SonarCloud gate + new issues, all comments, next-step footer). Pass `--wait N` to poll up to N seconds for required reviewers. |
94
+ | `workflow.sh reply <PR>` | `devex pr reply <PR>` — batch JSONL replies (stdin) + thread resolve. devex auto-signs from `culture.yaml`. |
95
+ | `workflow.sh delta` | `devex pr delta` — sibling alignment dump. |
96
96
  | `workflow.sh status <PR>` | **Steward extension.** `pr-status.sh` — Sonar gate, OPEN issues, hotspots, unresolved-thread breakdown, deploy preview URL. Authoritative gate for `await`. |
97
- | `workflow.sh await <PR>` | **Steward extension.** `agex pr read --wait` then `status`. Exits non-zero on Sonar ERROR or unresolved threads. Tunables: `STEWARD_PR_AWAIT_WAIT` (default 1800s passed to `--wait`), `STEWARD_PR_AWAIT_SECONDS` (legacy fixed pre-sleep, deprecated). |
97
+ | `workflow.sh await <PR>` | **Steward extension.** `devex pr read --wait` then `status`. Exits non-zero on Sonar ERROR or unresolved threads. Tunables: `STEWARD_PR_AWAIT_WAIT` (default 1800s passed to `--wait`), `STEWARD_PR_AWAIT_SECONDS` (legacy fixed pre-sleep, deprecated). |
98
98
  | `workflow.sh help` | Print the list. |
99
99
 
100
- You can also call `agex pr <verb>` directly — `workflow.sh` is a
100
+ You can also call `devex pr <verb>` directly — `workflow.sh` is a
101
101
  typing-saver around the same verbs. The steward `status` and `await`
102
102
  extensions only have shell entry points.
103
103
 
@@ -108,21 +108,21 @@ and useful when a one-off reply doesn't merit batch JSONL. It is not
108
108
  called by `workflow.sh` anymore. The vendored `portability-lint.sh`
109
109
  is also still shipped — `steward doctor`'s portability check runs it
110
110
  directly against target repos. Both are scheduled for follow-up
111
- migration to agex.
111
+ migration to devex.
112
112
 
113
113
  ## Long waits (background polling)
114
114
 
115
- `agex pr read --wait N` polls in-session for up to N seconds. The
115
+ `devex pr read --wait N` polls in-session for up to N seconds. The
116
116
  Anthropic prompt cache has a 5-minute TTL; sleeping past it burns
117
117
  context every cache miss. Two ways to drive the wait:
118
118
 
119
119
  - **Synchronous** — `workflow.sh await <PR>` after `gh pr create` /
120
120
  `workflow.sh open`. Fine when readiness is expected within ~5
121
121
  minutes.
122
- - **Asynchronous** — for longer waits, run `agex pr read --wait NNN`
122
+ - **Asynchronous** — for longer waits, run `devex pr read --wait NNN`
123
123
  inside a background subagent (Agent tool, `run_in_background: true`)
124
124
  so the main session only pays the cache cost when readiness fires.
125
- The subagent's only job is to invoke `agex pr read --wait` and echo
125
+ The subagent's only job is to invoke `devex pr read --wait` and echo
126
126
  its headline back. The parent triages with `workflow.sh await`
127
127
  when the notification arrives. The user can interrupt with
128
128
  TaskStop.
@@ -130,20 +130,20 @@ context every cache miss. Two ways to drive the wait:
130
130
  This pattern was originally borrowed from sibling repo
131
131
  [`agentculture/cfafi`](https://github.com/agentculture/cfafi)'s `poll`
132
132
  skill. The async guidance is also filed upstream
133
- ([agex-cli#41](https://github.com/agentculture/agex-cli/issues/41)).
133
+ ([devex#41](https://github.com/agentculture/devex/issues/41)).
134
134
 
135
135
  ## Conventions
136
136
 
137
- `agex pr` emits a **"Next step:"** footer at the end of every command
138
- that names the right next verb (the same chain `agex learn cicd`
137
+ `devex pr` emits a **"Next step:"** footer at the end of every command
138
+ that names the right next verb (the same chain `devex learn cicd`
139
139
  documents) — follow that rather than memorizing an order. `workflow.sh
140
140
  help` mirrors the verb table when you need the steward-flavored
141
141
  extensions (`status`, `await`) on top.
142
142
 
143
143
  Branch naming: `fix/<desc>`, `feat/<desc>`, `docs/<desc>`,
144
144
  `skill/<name>`. PR / comment signature: `- <nick> (Claude)`, where
145
- `<nick>` is resolved by `agex` from the agent's own `culture.yaml`
146
- (first agent's `suffix`), falling back to the git-repo basename. agex
145
+ `<nick>` is resolved by `devex` from the agent's own `culture.yaml`
146
+ (first agent's `suffix`), falling back to the git-repo basename. devex
147
147
  auto-appends the signature on `pr open` and `pr reply` only when the
148
148
  body isn't already signed.
149
149
 
@@ -191,17 +191,17 @@ are conditional and currently no-op (greenfield repo):
191
191
 
192
192
  Revisit each line as the corresponding stack element actually lands.
193
193
  A `pr lint --extra=tests,version,markdown` ask is filed upstream
194
- ([agex-cli#41](https://github.com/agentculture/agex-cli/issues/41)).
194
+ ([devex#41](https://github.com/agentculture/devex/issues/41)).
195
195
 
196
196
  ## Reply etiquette
197
197
 
198
- Every comment must get a reply — no silent fixes. `agex pr reply`
198
+ Every comment must get a reply — no silent fixes. `devex pr reply`
199
199
  includes thread-resolve by default. Reference the review-comment IDs
200
200
  in the fix-up commit message.
201
201
 
202
202
  The `status` extension queries SonarCloud directly (it predates the
203
- upstream Sonar integration in `agex pr read`). Both surfaces are
204
- trustworthy — `agex pr read` for display in the briefing, `status` for
203
+ upstream Sonar integration in `devex pr read`). Both surfaces are
204
+ trustworthy — `devex pr read` for display in the briefing, `status` for
205
205
  the gate. Steward isn't yet a registered mesh agent, so the
206
206
  post-merge IRC ping that Culture's `pr-review` includes is still
207
207
  skipped — that returns when Steward joins the mesh.
@@ -160,4 +160,4 @@ if [[ "$INLINE_PENDING" -gt 0 ]]; then
160
160
  fi
161
161
 
162
162
  echo
163
- echo "(For full comment bodies: agex pr read --agent claude-code $PR_NUMBER)"
163
+ echo "(For full comment bodies: devex pr read --agent claude-code $PR_NUMBER)"
@@ -1,25 +1,25 @@
1
1
  #!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
 
4
- # Steward cicd workflow — thin layer over `agex pr` plus two steward
4
+ # Steward cicd workflow — thin layer over `devex pr` plus two steward
5
5
  # extensions (`status`, `await`) for SonarCloud gating and triage flow.
6
6
  #
7
7
  # Subcommands:
8
- # lint `agex pr lint --exit-on-violation`. Same rules
8
+ # lint `devex pr lint --exit-on-violation`. Same rules
9
9
  # steward used to vendor in portability-lint.sh
10
10
  # (which still ships for `steward doctor`).
11
- # open [gh-pr flags] `agex pr open --delayed-read "$@"`. Creates the
11
+ # open [gh-pr flags] `devex pr open --delayed-read "$@"`. Creates the
12
12
  # PR, then polls 180s for an initial briefing.
13
13
  # Body via --body-file PATH or stdin; --title is
14
14
  # required.
15
- # read [PR] [--wait N] `agex pr read "$@"`. One-shot briefing today;
15
+ # read [PR] [--wait N] `devex pr read "$@"`. One-shot briefing today;
16
16
  # pass --wait N to poll for reviewer readiness.
17
17
  # Covers what create-pr-and-wait / pr-comments /
18
18
  # wait-and-check / poll-readiness used to do.
19
- # reply <PR> `agex pr reply <PR>` (JSONL on stdin). agex
19
+ # reply <PR> `devex pr reply <PR>` (JSONL on stdin). devex
20
20
  # auto-signs from culture.yaml; same JSONL
21
21
  # shape as the old pr-batch.sh.
22
- # delta `agex pr delta`. Sibling alignment dump.
22
+ # delta `devex pr delta`. Sibling alignment dump.
23
23
  #
24
24
  # status <PR> Steward extension: pr-status.sh — SonarCloud
25
25
  # gate, OPEN issues, hotspots, unresolved
@@ -38,16 +38,16 @@ set -euo pipefail
38
38
 
39
39
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
40
40
 
41
- # agex's `--agent` flag accepts only claude-code|codex|copilot|acp. The
41
+ # devex's `--agent` flag accepts only claude-code|codex|copilot|acp. The
42
42
  # workspace culture.yaml convention is `backend: claude`, so we always
43
43
  # pass --agent explicitly to insulate steward from that naming gap.
44
- # Override via STEWARD_AGEX_AGENT if you're running under codex/copilot/acp.
45
- AGEX_AGENT="${STEWARD_AGEX_AGENT:-claude-code}"
44
+ # Override via STEWARD_DEVEX_AGENT if you're running under codex/copilot/acp.
45
+ DEVEX_AGENT="${STEWARD_DEVEX_AGENT:-claude-code}"
46
46
 
47
- require_agex() {
48
- if ! command -v agex >/dev/null 2>&1; then
49
- echo "✗ agex not on PATH. Install agex-cli (>=0.1)." >&2
50
- echo " uv tool install agex-cli # or pip install agex-cli" >&2
47
+ require_devex() {
48
+ if ! command -v devex >/dev/null 2>&1; then
49
+ echo "✗ devex not on PATH. Install devex (>=0.21)." >&2
50
+ echo " uv tool install devex # or pip install devex" >&2
51
51
  exit 2
52
52
  fi
53
53
  }
@@ -57,38 +57,38 @@ shift || true
57
57
 
58
58
  case "$cmd" in
59
59
  lint)
60
- require_agex
61
- exec agex pr lint --agent "$AGEX_AGENT" --exit-on-violation "$@"
60
+ require_devex
61
+ exec devex pr lint --agent "$DEVEX_AGENT" --exit-on-violation "$@"
62
62
  ;;
63
63
  open)
64
- require_agex
65
- exec agex pr open --agent "$AGEX_AGENT" --delayed-read "$@"
64
+ require_devex
65
+ exec devex pr open --agent "$DEVEX_AGENT" --delayed-read "$@"
66
66
  ;;
67
67
  read)
68
- require_agex
69
- exec agex pr read --agent "$AGEX_AGENT" "$@"
68
+ require_devex
69
+ exec devex pr read --agent "$DEVEX_AGENT" "$@"
70
70
  ;;
71
71
  reply)
72
- require_agex
72
+ require_devex
73
73
  PR="${1:?Usage: workflow.sh reply <PR> (JSONL on stdin)}"
74
- exec agex pr reply --agent "$AGEX_AGENT" "$PR"
74
+ exec devex pr reply --agent "$DEVEX_AGENT" "$PR"
75
75
  ;;
76
76
  delta)
77
- require_agex
78
- exec agex pr delta --agent "$AGEX_AGENT" "$@"
77
+ require_devex
78
+ exec devex pr delta --agent "$DEVEX_AGENT" "$@"
79
79
  ;;
80
80
  status)
81
81
  PR="${1:?Usage: workflow.sh status <PR>}"
82
82
  exec bash "$SCRIPT_DIR/pr-status.sh" "$PR"
83
83
  ;;
84
84
  await)
85
- require_agex
85
+ require_devex
86
86
  PR="${1:?Usage: workflow.sh await <PR>}"
87
87
 
88
88
  # Legacy fixed-sleep escape hatch.
89
89
  if [ -n "${STEWARD_PR_AWAIT_SECONDS:-}" ]; then
90
90
  echo "warning: STEWARD_PR_AWAIT_SECONDS is deprecated; prefer STEWARD_PR_AWAIT_WAIT." >&2
91
- echo "→ sleeping ${STEWARD_PR_AWAIT_SECONDS}s (legacy fixed-sleep) before agex pr read …" >&2
91
+ echo "→ sleeping ${STEWARD_PR_AWAIT_SECONDS}s (legacy fixed-sleep) before devex pr read …" >&2
92
92
  sleep "$STEWARD_PR_AWAIT_SECONDS"
93
93
  WAIT_ARGS=()
94
94
  else
@@ -96,18 +96,18 @@ case "$cmd" in
96
96
  WAIT_ARGS=(--wait "$WAIT")
97
97
  fi
98
98
 
99
- # 1. agex pr read --wait — readiness loop + briefing.
99
+ # 1. devex pr read --wait — readiness loop + briefing.
100
100
  # Capture rc from the command itself (not from the negated test —
101
101
  # `if ! cmd; then rc=$?` would store the if-test status, always 0
102
102
  # in the failure branch, masking the real exit code).
103
- echo "── agex pr read ──────────────────────────────────────────────────────" >&2
104
- if agex pr read --agent "$AGEX_AGENT" "$PR" "${WAIT_ARGS[@]}"; then
103
+ echo "── devex pr read ──────────────────────────────────────────────────────" >&2
104
+ if devex pr read --agent "$DEVEX_AGENT" "$PR" "${WAIT_ARGS[@]}"; then
105
105
  READ_RC=0
106
106
  else
107
107
  READ_RC=$?
108
108
  fi
109
109
  if [ "$READ_RC" -ne 0 ]; then
110
- echo "✗ agex pr read failed (exit $READ_RC)" >&2
110
+ echo "✗ devex pr read failed (exit $READ_RC)" >&2
111
111
  exit "$READ_RC"
112
112
  fi
113
113
 
@@ -61,7 +61,7 @@ chmod +x .claude/skills/{{SKILL}}/scripts/*.sh 2>/dev/null || true
61
61
  ## Acceptance criteria
62
62
 
63
63
  - `.claude/skills/{{SKILL}}/SKILL.md` is present with frontmatter
64
- `name: {{SKILL}}`. **On the culture/agex backend, also add
64
+ `name: {{SKILL}}`. **On the culture/devex backend, also add
65
65
  `type: command`** — `core.skill_loader` requires all of `name`,
66
66
  `description`, and `type:`, and a SKILL.md lacking `type:` is silently
67
67
  skipped by `backends/claude_code/probe.py`.
@@ -223,5 +223,7 @@ __marimo__/
223
223
  # devague working state (not committed by default)
224
224
  .devague/reviews/
225
225
 
226
- # agex (cicd) per-checkout working dir
226
+ # devex (cicd) per-checkout working dir
227
+ .devex/
228
+ # legacy: devex still writes .agex/ as of 0.28.0
227
229
  .agex/
@@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file.
5
5
  Format follows [Keep a Changelog](https://keepachangelog.com/). This project
6
6
  adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.8.4] - 2026-05-30
9
+
10
+ ### Changed
11
+
12
+ - **Rename the PR-lifecycle CLI `agex` / `agex-cli` → `devex`** (same tool, new
13
+ name; `agentculture/agex-cli` → `agentculture/devex`) across the canonical
14
+ skills and docs guildmaster owns: `CLAUDE.md`, the vendored `cicd`
15
+ (`SKILL.md`, `workflow.sh`, `pr-status.sh`), `communicate`
16
+ (`skill-new-brief.md` template) and `assign-to-workforce` skills,
17
+ `docs/skill-sources.md`, `docs/cutover.md`, and `.gitignore` (now ignores
18
+ both `.devex/` and the still-used `.agex/` — `devex` 0.28.0 still writes its
19
+ per-checkout working dir to `.agex/`). The `cicd` scripts now invoke `devex
20
+ pr` and the internal
21
+ identifiers became `DEVEX_AGENT` / `STEWARD_DEVEX_AGENT` / `require_devex`.
22
+ guildmaster is the canonical owner of `cicd` / `communicate` and the sole
23
+ broadcaster, so the rename originates here; the consumer-side rename already
24
+ landed in `culture-agent-template`. Tracks
25
+ [#48](https://github.com/agentculture/guildmaster/issues/48).
26
+ - Align the documented `devex` version floor to `>=0.21` in the `cicd`
27
+ `SKILL.md` and `workflow.sh` install hint (were `>=0.1`) — the `await`-era
28
+ features need `>=0.21` (installed `devex` is 0.25.0). The `agtag` `>=0.1` floor
29
+ is unrelated and unchanged.
30
+
8
31
  ## [0.8.3] - 2026-05-30
9
32
 
10
33
  ### Added
@@ -117,7 +140,7 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
117
140
  redirects. Updated `docs/skill-sources.md` to record `grant` as the live
118
141
  downstream consumer: renamed `shushu` → `grant` in the `run-tests` and
119
142
  `version-bump` Downstream columns, added `grant` to the `cicd` column with a
120
- "still named `pr-review`" caveat (its copy is the pre-agex `cicd`), and
143
+ "still named `pr-review`" caveat (its copy is the pre-devex `cicd`), and
121
144
  refreshed the maintenance notes (old-skill-dir-name class, the
122
145
  no-`culture.yaml` class — `grant`'s repo has no committed `culture.yaml` yet —
123
146
  and a `shushu` → `grant` rename note mirroring `agentpypi` → `auntiepypi`).
@@ -430,7 +453,7 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
430
453
  ### Changed
431
454
 
432
455
  - The three vendored SKILL.md files carry a `type: command` frontmatter
433
- divergence from their verbatim devague upstream: culture/agex's
456
+ divergence from their verbatim devague upstream: culture/devex's
434
457
  `core.skill_loader` requires `name` + `description` + `type:`, and a type-less
435
458
  SKILL.md is silently skipped by `backends/claude_code/probe.py`. guildmaster
436
459
  declares an agent in `culture.yaml`, so the addition is load-bearing on the
@@ -157,7 +157,7 @@ locally-hosted model via `acp`, the runtime prompt is `AGENTS.md` and
157
157
  ## Finishing a branch: default to a PR
158
158
 
159
159
  When work on a branch is complete and tests pass, **push the branch and open a
160
- Pull Request** via the `cicd` skill (`workflow.sh open` / `agex pr open`) — do
160
+ Pull Request** via the `cicd` skill (`workflow.sh open` / `devex pr open`) — do
161
161
  not pause on an interactive "what next?" menu. This is the integration point for
162
162
  the whole `branch → implement → bump version → PR` workflow, and it overrides
163
163
  the Superpowers `finishing-a-development-branch` skill's default pause.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: guild-cli
3
- Version: 0.8.3
3
+ Version: 0.8.4
4
4
  Summary: guildmaster — an agent and CLI that manages skills for the AgentCulture mesh.
5
5
  Project-URL: Homepage, https://github.com/agentculture/guildmaster
6
6
  Project-URL: Issues, https://github.com/agentculture/guildmaster/issues
@@ -15,7 +15,7 @@ confirmed steward has stopped firing `announce-skill-update` and accepts
15
15
  `teach` / `onboard` as the broadcast role. guildmaster is now the **sole
16
16
  broadcaster**; `--apply` is **live**. First post-cutover broadcast: the
17
17
  2026-05-24 `guild teach` resync to 7 agents (katvan, antoine, appsec, culture,
18
- auntiepypi, agex-cli, devague).
18
+ auntiepypi, devex, devague).
19
19
 
20
20
  > **Records reconciliation (steward side).** steward's [PR #62](https://github.com/agentculture/steward/pull/62)
21
21
  > recorded only a *partial* handoff (devague-trio downstream tracking) and its
@@ -33,8 +33,8 @@ current by `guild overview --scope mesh`.
33
33
  | Skill | Upstream | Downstream copies (known) | Notes |
34
34
  |-------|----------|---------------------------|-------|
35
35
  | `agent-config` | `guildmaster` (`.claude/skills/agent-config/`) | `agenda`, `dominion-breaker`, `convertible`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Inventory variant backing `guild show` ([#12](https://github.com/agentculture/guildmaster/issues/12)); `show.sh` + `data/backend-fingerprints.yaml` vendored verbatim from steward, SKILL.md reframed from alignment-judgment to inventory + `type: command` added. **Forked from steward:** steward retains its own alignment-focused `agent-config` variant; the inventory variant is guildmaster's to supply. |
36
- | `cicd` | `guildmaster` (`.claude/skills/cicd/`) — layered on `agex pr` (in `agentculture/agex-cli`) | `afi-cli`, `agex-cli` (adapted-thin delegate — owns `agex pr`; see [agex-cli#53](https://github.com/agentculture/agex-cli/pull/53)), `agtag`, `antoine`, `appsec`, `auntiepypi`, `cfafi` (still named `pr-review`), `code-lens-cli`, `culture` (still named `pr-review`), `devague`, `katvan`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson`, `grant` (still named `pr-review`), `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Thin delegate to `agex pr` for lint / open / read / reply / delta, plus guildmaster's `status` (SonarCloud quality gate + hotspots + unresolved-thread tally) and `await` (composes `agex pr read --wait` with `status`, non-zero exit on Sonar ERROR / unresolved threads) extensions. **Inverted case:** agex-cli, as the `agex pr` upstream, vendors the skill adapted-thin — a `workflow.sh`-only pure delegate ([agex-cli#53](https://github.com/agentculture/agex-cli/pull/53)). Renamed from `pr-review` in steward 0.7.0; downstream copies may keep the old name on their own cadence. |
37
- | `communicate` | `guildmaster` (`.claude/skills/communicate/`) | `afi-cli`, `agex-cli` (identifier-only — vendored steward 0.11.0; scripts current as of 0.18.0), `agtag`, `antoine`, `appsec`, `auntiepypi`, `code-lens-cli`, `culture` (still named `coordinate`), `devague`, `katvan`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Cross-repo + mesh communication: file issues / hand off briefs to sibling-repo agents (auto-signed), comment on existing issues, fetch issues to inline state into briefs, and send live messages to Culture mesh channels (unsigned — nick is the speaker). Renamed from `coordinate` in steward 0.8.0; absorbed `gh-issues` (as `fetch-issues.sh`) in 0.9.1. Issue I/O backed by `agtag` (>=0.1) since steward 0.11.0 — signature resolves from local `culture.yaml` (override via `--as`). |
36
+ | `cicd` | `guildmaster` (`.claude/skills/cicd/`) — layered on `devex pr` (in `agentculture/devex`) | `afi-cli`, `devex` (adapted-thin delegate — owns `devex pr`; see [devex#53](https://github.com/agentculture/devex/pull/53)), `agtag`, `antoine`, `appsec`, `auntiepypi`, `cfafi` (still named `pr-review`), `code-lens-cli`, `culture` (still named `pr-review`), `devague`, `katvan`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson`, `grant` (still named `pr-review`), `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Thin delegate to `devex pr` for lint / open / read / reply / delta, plus guildmaster's `status` (SonarCloud quality gate + hotspots + unresolved-thread tally) and `await` (composes `devex pr read --wait` with `status`, non-zero exit on Sonar ERROR / unresolved threads) extensions. **Inverted case:** devex, as the `devex pr` upstream, vendors the skill adapted-thin — a `workflow.sh`-only pure delegate ([devex#53](https://github.com/agentculture/devex/pull/53)). Renamed from `pr-review` in steward 0.7.0; downstream copies may keep the old name on their own cadence. |
37
+ | `communicate` | `guildmaster` (`.claude/skills/communicate/`) | `afi-cli`, `devex` (identifier-only — vendored steward 0.11.0; scripts current as of 0.18.0), `agtag`, `antoine`, `appsec`, `auntiepypi`, `code-lens-cli`, `culture` (still named `coordinate`), `devague`, `katvan`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Cross-repo + mesh communication: file issues / hand off briefs to sibling-repo agents (auto-signed), comment on existing issues, fetch issues to inline state into briefs, and send live messages to Culture mesh channels (unsigned — nick is the speaker). Renamed from `coordinate` in steward 0.8.0; absorbed `gh-issues` (as `fetch-issues.sh`) in 0.9.1. Issue I/O backed by `agtag` (>=0.1) since steward 0.11.0 — signature resolves from local `culture.yaml` (override via `--as`). |
38
38
  | `doc-test-alignment` | `guildmaster` (`.claude/skills/doc-test-alignment/`) | `devague`, `lecodeur`, `lepenseur`, `agenda`, `dominion-breaker`, `convertible`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Stub; real implementation TBD. `scripts/check.sh` exits not-yet-implemented today. |
39
39
  | `pypi-maintainer` | `guildmaster` (`.claude/skills/pypi-maintainer/`) | `agtag`, `agenda`, `dominion-breaker`, `convertible`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Switches a PyPI package install between pypi / test-pypi / local. Generalised from the original culture-specific `change-package`. |
40
40
  | `run-tests` | `guildmaster` (`.claude/skills/run-tests/`) | `agtag`, `antoine`, `appsec`, `code-lens-cli`, `culture`, `culture-sonar-cli`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `grant`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Coverage source resolves from `[tool.coverage.run]` in `pyproject.toml`, so the script is portable across siblings without modification. |
@@ -78,7 +78,7 @@ They are the `idea → spec → plan → implement` workflow operators that driv
78
78
 
79
79
  **Divergence from verbatim — `type: command` frontmatter.** devague's upstream
80
80
  SKILL.md files carry only `name` + `description`. The copies here **add
81
- `type: command`**: culture/agex's `core.skill_loader` requires `name`,
81
+ `type: command`**: culture/devex's `core.skill_loader` requires `name`,
82
82
  `description`, **and** `type:`, and a SKILL.md lacking `type:` is *silently
83
83
  skipped* by `backends/claude_code/probe.py`. guildmaster declares an agent in
84
84
  `culture.yaml`, so the addition is load-bearing on the culture backend and
@@ -88,7 +88,7 @@ harmless on `claude-code`. This is the only divergence from upstream.
88
88
  |-------|--------|---------------------------|-------|
89
89
  | `think` | `devague` (`agentculture/devague`, `../devague/.claude/skills/think/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `convertible`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Operator for the **idea→spec** leg (announcement frame → capture/classify claims → interrogate with honesty conditions → park open vagueness → `export` once the frame converges). Renamed from `devague` in devague 0.4.0. **Divergence:** `type: command` added. Runtime dep: `uv tool install devague`. |
90
90
  | `spec-to-plan` | `devague` (`agentculture/devague`, `../devague/.claude/skills/spec-to-plan/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `convertible`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Operator for the **spec→plan** leg (`devague plan ...`): seed from a converged frame, cover every coverage target with acceptance-gated, acyclically-ordered tasks, park unknowns as risks, `export` once the plan converges. New in devague 0.4.0. **Divergence:** `type: command` added. Runtime dep: `uv tool install devague`. |
91
- | `assign-to-workforce` | `devague` (`agentculture/devague`, `../devague/.claude/skills/assign-to-workforce/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `convertible`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Operator for the **implementation** leg: reads `devague plan waves` (read-only) and fans out independent tasks to one agent per task per wave in isolated git worktrees, with main-agent TDD-gated merges. Three human gates: spec / split plan / final PR. The CLI stays non-orchestrating ([devague#20](https://github.com/agentculture/devague/issues/20)). New in devague 0.10.0. **Divergence:** `type: command` added. Runtime deps: `uv tool install devague`, `git worktree`, the vendored `cicd` skill (for gate-3 `agex pr open`). |
91
+ | `assign-to-workforce` | `devague` (`agentculture/devague`, `../devague/.claude/skills/assign-to-workforce/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `convertible`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli` | Operator for the **implementation** leg: reads `devague plan waves` (read-only) and fans out independent tasks to one agent per task per wave in isolated git worktrees, with main-agent TDD-gated merges. Three human gates: spec / split plan / final PR. The CLI stays non-orchestrating ([devague#20](https://github.com/agentculture/devague/issues/20)). New in devague 0.10.0. **Divergence:** `type: command` added. Runtime deps: `uv tool install devague`, `git worktree`, the vendored `cicd` skill (for gate-3 `devex pr open`). |
92
92
 
93
93
  Downstream is empty by design: these are still being introduced to the mesh.
94
94
  `guild teach --new --skill <name> --to <repos>` frames them as *new* skills to
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "guild-cli"
3
- version = "0.8.3"
3
+ version = "0.8.4"
4
4
  description = "guildmaster — an agent and CLI that manages skills for the AgentCulture mesh."
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -179,7 +179,7 @@ wheels = [
179
179
 
180
180
  [[package]]
181
181
  name = "guild-cli"
182
- version = "0.8.3"
182
+ version = "0.8.4"
183
183
  source = { editable = "." }
184
184
  dependencies = [
185
185
  { name = "pyyaml" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes