guild-cli 0.23.1__tar.gz → 0.24.0__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 (129) hide show
  1. {guild_cli-0.23.1 → guild_cli-0.24.0}/CHANGELOG.md +58 -0
  2. {guild_cli-0.23.1 → guild_cli-0.24.0}/PKG-INFO +1 -1
  3. {guild_cli-0.23.1 → guild_cli-0.24.0}/docs/skill-sources.md +22 -13
  4. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_commands/_provision_template.py +34 -5
  5. {guild_cli-0.23.1 → guild_cli-0.24.0}/pyproject.toml +1 -1
  6. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_cli_create.py +77 -3
  7. {guild_cli-0.23.1 → guild_cli-0.24.0}/uv.lock +1 -1
  8. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/agent-config/SKILL.md +0 -0
  9. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/agent-config/data/backend-fingerprints.yaml +0 -0
  10. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/agent-config/scripts/show.sh +0 -0
  11. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/ask-colleague/SKILL.md +0 -0
  12. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/ask-colleague/prompts/explore.md +0 -0
  13. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/ask-colleague/prompts/review.md +0 -0
  14. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/ask-colleague/prompts/write.md +0 -0
  15. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/ask-colleague/scripts/ask-colleague.sh +0 -0
  16. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/assign-to-workforce/SKILL.md +0 -0
  17. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh +0 -0
  18. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/challenge/SKILL.md +0 -0
  19. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/challenge/scripts/challenge.sh +0 -0
  20. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/cicd/SKILL.md +0 -0
  21. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/cicd/scripts/_resolve-nick.sh +0 -0
  22. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/cicd/scripts/portability-lint.sh +0 -0
  23. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/cicd/scripts/pr-reply.sh +0 -0
  24. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/cicd/scripts/pr-status.sh +0 -0
  25. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/cicd/scripts/workflow.sh +0 -0
  26. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/communicate/SKILL.md +0 -0
  27. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/communicate/scripts/fetch-issues.sh +0 -0
  28. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/communicate/scripts/mesh-message.sh +0 -0
  29. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/communicate/scripts/post-comment.sh +0 -0
  30. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/communicate/scripts/post-issue.sh +0 -0
  31. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/communicate/scripts/templates/skill-new-brief.md +0 -0
  32. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/communicate/scripts/templates/skill-update-brief.md +0 -0
  33. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/deviate/SKILL.md +0 -0
  34. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/deviate/scripts/deviate.sh +0 -0
  35. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/doc-test-alignment/SKILL.md +0 -0
  36. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/doc-test-alignment/scripts/check.sh +0 -0
  37. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/guild/SKILL.md +0 -0
  38. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/guild/scripts/configure-repo.sh +0 -0
  39. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/guild/scripts/create.sh +0 -0
  40. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/guild/scripts/overview.sh +0 -0
  41. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/onboard/SKILL.md +0 -0
  42. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/onboard/scripts/onboard.sh +0 -0
  43. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/outsource/SKILL.md +0 -0
  44. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/outsource/prompts/explore.md +0 -0
  45. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/outsource/prompts/review.md +0 -0
  46. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/outsource/prompts/write.md +0 -0
  47. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/outsource/scripts/outsource.sh +0 -0
  48. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/pypi-maintainer/SKILL.md +0 -0
  49. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/pypi-maintainer/scripts/switch-source.sh +0 -0
  50. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/recall/SKILL.md +0 -0
  51. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/recall/scripts/recall.sh +0 -0
  52. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/remember/SKILL.md +0 -0
  53. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/remember/scripts/remember.sh +0 -0
  54. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/run-tests/SKILL.md +0 -0
  55. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/run-tests/scripts/test.sh +0 -0
  56. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/scope/SKILL.md +0 -0
  57. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/scope/scripts/scope.sh +0 -0
  58. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/sonarclaude/SKILL.md +0 -0
  59. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/sonarclaude/scripts/sonar.sh +0 -0
  60. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/spec-to-plan/SKILL.md +0 -0
  61. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh +0 -0
  62. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/summarize-delivery/SKILL.md +0 -0
  63. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/summarize-delivery/scripts/summarize-delivery.sh +0 -0
  64. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/teach/SKILL.md +0 -0
  65. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/teach/scripts/teach.sh +0 -0
  66. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/think/SKILL.md +0 -0
  67. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/think/scripts/think.sh +0 -0
  68. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/version-bump/SKILL.md +0 -0
  69. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills/version-bump/scripts/bump.py +0 -0
  70. {guild_cli-0.23.1 → guild_cli-0.24.0}/.claude/skills.local.yaml.example +0 -0
  71. {guild_cli-0.23.1 → guild_cli-0.24.0}/.devague/frames/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
  72. {guild_cli-0.23.1 → guild_cli-0.24.0}/.devague/plans/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
  73. {guild_cli-0.23.1 → guild_cli-0.24.0}/.eidetic/memory/default__public.jsonl +0 -0
  74. {guild_cli-0.23.1 → guild_cli-0.24.0}/.eidetic/memory/guildmaster__public.jsonl +0 -0
  75. {guild_cli-0.23.1 → guild_cli-0.24.0}/.flake8 +0 -0
  76. {guild_cli-0.23.1 → guild_cli-0.24.0}/.github/workflows/publish.yml +0 -0
  77. {guild_cli-0.23.1 → guild_cli-0.24.0}/.github/workflows/tests.yml +0 -0
  78. {guild_cli-0.23.1 → guild_cli-0.24.0}/.gitignore +0 -0
  79. {guild_cli-0.23.1 → guild_cli-0.24.0}/.markdownlint-cli2.yaml +0 -0
  80. {guild_cli-0.23.1 → guild_cli-0.24.0}/CLAUDE.md +0 -0
  81. {guild_cli-0.23.1 → guild_cli-0.24.0}/LICENSE +0 -0
  82. {guild_cli-0.23.1 → guild_cli-0.24.0}/README.md +0 -0
  83. {guild_cli-0.23.1 → guild_cli-0.24.0}/culture.yaml +0 -0
  84. {guild_cli-0.23.1 → guild_cli-0.24.0}/docs/cutover.md +0 -0
  85. {guild_cli-0.23.1 → guild_cli-0.24.0}/docs/onboarding/reachy-mini-mcp.json +0 -0
  86. {guild_cli-0.23.1 → guild_cli-0.24.0}/docs/plans/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
  87. {guild_cli-0.23.1 → guild_cli-0.24.0}/docs/specs/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
  88. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/__init__.py +0 -0
  89. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/__main__.py +0 -0
  90. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/__init__.py +0 -0
  91. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_commands/__init__.py +0 -0
  92. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_commands/_broadcast.py +0 -0
  93. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_commands/create.py +0 -0
  94. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_commands/explain.py +0 -0
  95. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_commands/learn.py +0 -0
  96. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_commands/onboard.py +0 -0
  97. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_commands/overview.py +0 -0
  98. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_commands/show.py +0 -0
  99. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_commands/teach.py +0 -0
  100. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_commands/whoami.py +0 -0
  101. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_errors.py +0 -0
  102. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_output.py +0 -0
  103. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/cli/_repo.py +0 -0
  104. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/scaffold/__init__.py +0 -0
  105. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/scaffold/instantiate.py +0 -0
  106. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/skills/__init__.py +0 -0
  107. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/skills/identity.py +0 -0
  108. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/skills/ledger.py +0 -0
  109. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/skills/render.py +0 -0
  110. {guild_cli-0.23.1 → guild_cli-0.24.0}/guild/skills/sources.py +0 -0
  111. {guild_cli-0.23.1 → guild_cli-0.24.0}/sonar-project.properties +0 -0
  112. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/__init__.py +0 -0
  113. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_broadcast_post.py +0 -0
  114. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_cli.py +0 -0
  115. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_cli_explain.py +0 -0
  116. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_cli_learn.py +0 -0
  117. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_cli_onboard.py +0 -0
  118. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_cli_overview.py +0 -0
  119. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_cli_show.py +0 -0
  120. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_cli_teach.py +0 -0
  121. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_cli_whoami.py +0 -0
  122. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_configure_repo_sonar.py +0 -0
  123. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_scaffold_instantiate.py +0 -0
  124. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_skills_convention.py +0 -0
  125. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_skills_identity.py +0 -0
  126. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_skills_ledger.py +0 -0
  127. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_skills_render.py +0 -0
  128. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_skills_sources.py +0 -0
  129. {guild_cli-0.23.1 → guild_cli-0.24.0}/tests/test_version_fallback.py +0 -0
@@ -5,6 +5,64 @@ 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.24.0] - 2026-09-05
9
+
10
+ ### Added
11
+
12
+ - **Provisioned `jetson`** (public) via `guild create --apply --public` — a
13
+ **verified, sourced knowledge base of NVIDIA Jetson devices**, distinct from
14
+ the per-board ops siblings (`jetson-orin-cli`, `jetson-thor-cli`), the model
15
+ arena (`jetson-arena`), and the Discord knowledge fetcher
16
+ (`jetson-ai-lab-cli`). Its lane is *what is true about Jetson hardware,
17
+ software, and ecosystem, with a citation for every claim and an honest record
18
+ of what is unknown* — surfaced three ways from one data core: a Python CLI, an
19
+ MCP server, and a multilingual static site at `jetson.culture.dev`
20
+ (Node/React, diagram- and code-heavy, minimal prose). Plain rename: repo
21
+ token, command, import package, and PyPI dist are all `jetson`. Registered as
22
+ a downstream consumer of the full canonical kit (13 rows).
23
+
24
+ ### Changed
25
+
26
+ - **`guild create` preflight is now rename-redirect aware.** `gh repo view`
27
+ follows GitHub's redirect from a repository's former name to its current one,
28
+ so a name freed by `gh repo rename` still looked occupied and `create --apply`
29
+ refused it. The existence check now asks for `--json nameWithOwner` and only
30
+ refuses when the resolved name *matches* the requested one; a mismatch means a
31
+ stale redirect and the name is genuinely free (creating there retires the
32
+ redirect, which is the intended outcome). Unparseable or fieldless `gh` output
33
+ is treated conservatively as "occupied", so an ambiguous answer still refuses.
34
+ New helper `_is_rename_redirect` in
35
+ `guild/cli/_commands/_provision_template.py`.
36
+ - **Ledger: `jetson` → `jetson-cli` across every downstream row.** The edge-AI
37
+ ops agent previously registered as `jetson` was renamed on GitHub to
38
+ `agentculture/jetson-cli`; all 11 rows were rewritten to match and a dated
39
+ rename note was added to `docs/skill-sources.md`, so the two `jetson*`
40
+ consumers stay distinct.
41
+
42
+ ### Fixed
43
+
44
+ ## [0.23.2] - 2026-09-05
45
+
46
+ ### Added
47
+
48
+ - **Provisioned `associate`** (public) via `guild create --apply --public` —
49
+ a **non-coding agent harness**: a fast, reliable worker for read, summarize,
50
+ and find work across local files and the web. Modelled on the **Pi** harness
51
+ (the minimal, lazy-loading-skill harness by Armin Ronacher and Mario Zechner)
52
+ and merged from **colleague**'s base tool surface, initially backed by
53
+ **NVIDIA Nemotron 3.5 Lightning** (30B-A3B hybrid Mamba-2/MoE, tuned for
54
+ execution-layer work: tool chaining, summarization, classification).
55
+ Its lane: take the non-coding tool work off `colleague` so colleague can
56
+ focus on **coding and thinking** — the same split that produced
57
+ [`shell-cli`](https://github.com/agentculture/shell-cli), one layer up.
58
+ Plain rename (repo token `associate`): console command `associate`, import
59
+ package `associate`, dist `associate` — no `--command` / `--pkg` / `--dist`
60
+ override, so the transform is the byte-identical rename path.
61
+ Genesis CI green on both `Tests` and `Publish to PyPI`; `associate` 0.7.0 is
62
+ live on PyPI. Build brief filed as `associate#1`.
63
+ - Registered `associate` as a downstream consumer across the canonical skill
64
+ rows in `docs/skill-sources.md`.
65
+
8
66
  ## [0.23.1] - 2026-08-30
9
67
 
10
68
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: guild-cli
3
- Version: 0.23.1
3
+ Version: 0.24.0
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
@@ -22,6 +22,15 @@ Each consumer owns its copy and may diverge; nothing reaches across skill
22
22
  boundaries at runtime. When upstream changes, downstream copies do **not**
23
23
  auto-update — re-sync explicitly from the cited source.
24
24
 
25
+ > **Rename, 2026-09-05:** the edge-AI *ops* agent formerly registered here as
26
+ > `jetson` was renamed on GitHub to
27
+ > [`agentculture/jetson-cli`](https://github.com/agentculture/jetson-cli), and
28
+ > every downstream row below was rewritten `jetson` → `jetson-cli` to match. The
29
+ > freed name now belongs to a **different** agent —
30
+ > [`agentculture/jetson`](https://github.com/agentculture/jetson), the verified
31
+ > Jetson knowledge base (CLI + MCP + multilingual site) — registered in the same
32
+ > pass. The two are distinct consumers; do not merge their rows.
33
+
25
34
  ## Canonical supplied skills (upstream = `guildmaster`)
26
35
 
27
36
  These are the cross-sibling skills guildmaster owns and broadcasts. Source of
@@ -32,14 +41,14 @@ current by `guild overview --scope mesh`.
32
41
 
33
42
  | Skill | Upstream | Downstream copies (known) | Notes |
34
43
  |-------|----------|---------------------------|-------|
35
- | `agent-config` | `guildmaster` (`.claude/skills/agent-config/`) | `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | 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 `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`, `colleague`, `jetson`, `grant` (still named `pr-review`), `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | 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`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | 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
- | `doc-test-alignment` | `guildmaster` (`.claude/skills/doc-test-alignment/`) | `devague`, `lecodeur`, `lepenseur`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | Stub; real implementation TBD. `scripts/check.sh` exits not-yet-implemented today. |
39
- | `pypi-maintainer` | `guildmaster` (`.claude/skills/pypi-maintainer/`) | `agtag`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | Switches a PyPI package install between pypi / test-pypi / local. Generalised from the original culture-specific `change-package`. `org` is intentionally not a consumer — it ships no PyPI distribution (site repo). |
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`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | Coverage source resolves from `[tool.coverage.run]` in `pyproject.toml`, so the script is portable across siblings without modification. |
41
- | `sonarclaude` | `guildmaster` (`.claude/skills/sonarclaude/`) | `antoine`, `appsec`, `code-lens-cli`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | SonarCloud API client. Project key resolves from `$SONAR_PROJECT` or `--project KEY`. |
42
- | `version-bump` | `guildmaster` (`.claude/skills/version-bump/`) | `afi-cli`, `agtag`, `antoine`, `appsec`, `auntiepypi`, `cfafi`, `code-lens-cli`, `culture`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `grant`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | Pure Python, prepends a Keep-a-Changelog entry; no per-repo customization needed. |
44
+ | `agent-config` | `guildmaster` (`.claude/skills/agent-config/`) | `agenda`, `dominion-breaker`, `colleague`, `jetson-cli`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | 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. |
45
+ | `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`, `colleague`, `jetson-cli`, `grant` (still named `pr-review`), `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | 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. |
46
+ | `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`, `colleague`, `jetson-cli`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | 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`). |
47
+ | `doc-test-alignment` | `guildmaster` (`.claude/skills/doc-test-alignment/`) | `devague`, `lecodeur`, `lepenseur`, `agenda`, `dominion-breaker`, `colleague`, `jetson-cli`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | Stub; real implementation TBD. `scripts/check.sh` exits not-yet-implemented today. |
48
+ | `pypi-maintainer` | `guildmaster` (`.claude/skills/pypi-maintainer/`) | `agtag`, `agenda`, `dominion-breaker`, `colleague`, `jetson-cli`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | Switches a PyPI package install between pypi / test-pypi / local. Generalised from the original culture-specific `change-package`. `org` is intentionally not a consumer — it ships no PyPI distribution (site repo). |
49
+ | `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`, `colleague`, `jetson-cli`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | Coverage source resolves from `[tool.coverage.run]` in `pyproject.toml`, so the script is portable across siblings without modification. |
50
+ | `sonarclaude` | `guildmaster` (`.claude/skills/sonarclaude/`) | `antoine`, `appsec`, `code-lens-cli`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson-cli`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | SonarCloud API client. Project key resolves from `$SONAR_PROJECT` or `--project KEY`. |
51
+ | `version-bump` | `guildmaster` (`.claude/skills/version-bump/`) | `afi-cli`, `agtag`, `antoine`, `appsec`, `auntiepypi`, `cfafi`, `code-lens-cli`, `culture`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `grant`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson-cli`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | Pure Python, prepends a Keep-a-Changelog entry; no per-repo customization needed. |
43
52
 
44
53
  > **How the downstream column is maintained.** The "Downstream copies (known)"
45
54
  > entries are kept in sync with guildmaster's own drift detector:
@@ -99,9 +108,9 @@ harmless on `claude-code`. This is the only divergence from upstream.
99
108
 
100
109
  | Skill | Origin | Downstream copies (known) | Notes |
101
110
  |-------|--------|---------------------------|-------|
102
- | `think` | `devague` (`agentculture/devague`, `../devague/.claude/skills/think/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | 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`. |
103
- | `spec-to-plan` | `devague` (`agentculture/devague`, `../devague/.claude/skills/spec-to-plan/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | 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`. |
104
- | `assign-to-workforce` | `devague` (`agentculture/devague`, `../devague/.claude/skills/assign-to-workforce/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | 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`). |
111
+ | `think` | `devague` (`agentculture/devague`, `../devague/.claude/skills/think/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson-cli`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | 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`. |
112
+ | `spec-to-plan` | `devague` (`agentculture/devague`, `../devague/.claude/skills/spec-to-plan/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson-cli`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | 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`. |
113
+ | `assign-to-workforce` | `devague` (`agentculture/devague`, `../devague/.claude/skills/assign-to-workforce/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson-cli`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | 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`). |
105
114
 
106
115
  Downstream is empty by design: these are still being introduced to the mesh.
107
116
  `guild teach --new --skill <name> --to <repos>` frames them as *new* skills to
@@ -167,8 +176,8 @@ the CLI, the wrappers exit with a clear install hint rather than crashing.
167
176
 
168
177
  | Skill | Origin | Downstream copies (known) | Notes |
169
178
  |-------|--------|---------------------------|-------|
170
- | `ask-colleague` | `colleague` (`agentculture/colleague`, `../colleague/.claude/skills/ask-colleague/`) | `agentculture-cli`, `agentfront`, `agentirc`, `agent-lifecycle`, `amazing-hand-cli`, `arm101-cli`, `callsmith`, `climate-cli`, `cloudai-cli`, `coherence-cli`, `culture`, `culture-agent-template`, `culture-core`, `culture-guide`, `culture-nodes`, `culture-tools`, `data-refinery-cli`, `devex`, `dgx-spark-cli`, `discord-bot-cli`, `drone-cli`, `ec2bedrock-cli`, `ec2-cli`, `eidetic-cli`, `embeddings-cli`, `embodiment`, `events-cli`, `evidence-cli`, `face-cli`, `face-recognition-cli`, `fleet-cli`, `french-cli`, `harmonics-cli`, `headspace-cli`, `intern-cli`, `jetson-ai-lab-cli`, `jetson-arena`, `jetson-orin-cli`, `jetson-thor-cli`, `knowledgebase-cli`, `league-of-agents`, `league-of-agents-platform`, `learn-cli`, `lobes-cli`, `media-cli`, `model-gear`, `mysight-cli`, `operator-cli`, `org`, `prove-cli`, `qodo-cli`, `reachy-lobes`, `reachy-mini-cli`, `reduce-cli`, `refactor-cli`, `refactoring-cli`, `reterminal-cli`, `rigor-cli`, `rollout-cli`, `sensibo-cli`, `shell-cli`, `spanish-cli`, `steward`, `storybook-cli`, `tensor-cli`, `webcam-cli`, `webglass-cli`, `workledger-cli`, `zehut`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | Successor to `outsource`; the one to broadcast to new consumers. Verbs `explore` / `review` / `write` / `feedback` / `plan` / `resume` / `monitor` / `guide` / `stop` / `clean`. **Divergence: none — vendored byte-verbatim** (all 5 files match upstream @ 1.63.1). Also ships in `culture-agent-template`, so template clones get it at genesis. Runtime dep: `uv tool install colleague-cli` + a reachable engine. Downstream column surveyed off local workspace checkouts, so it reflects what is vendored locally, not a live GitHub poll. |
171
- | `outsource` | `colleague` (`agentculture/colleague`, `../colleague/.claude/skills/outsource/`) | — (broadcast pending; [`culture-agent-template#8`](https://github.com/agentculture/culture-agent-template/issues/8) proposes adding it to the clone template), `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent` | **Legacy — superseded by `ask-colleague`** (retirement pending). First-party colleague skill: hand a scoped task to a *different* engine/mind. Verbs `explore` / `review` / `write`. **Divergence:** Provenance paragraph reframed for re-broadcast (above); `type: command` already present upstream. Runtime dep: `uv tool install colleague-cli` + a reachable engine. |
179
+ | `ask-colleague` | `colleague` (`agentculture/colleague`, `../colleague/.claude/skills/ask-colleague/`) | `agentculture-cli`, `agentfront`, `agentirc`, `agent-lifecycle`, `amazing-hand-cli`, `arm101-cli`, `callsmith`, `climate-cli`, `cloudai-cli`, `coherence-cli`, `culture`, `culture-agent-template`, `culture-core`, `culture-guide`, `culture-nodes`, `culture-tools`, `data-refinery-cli`, `devex`, `dgx-spark-cli`, `discord-bot-cli`, `drone-cli`, `ec2bedrock-cli`, `ec2-cli`, `eidetic-cli`, `embeddings-cli`, `embodiment`, `events-cli`, `evidence-cli`, `face-cli`, `face-recognition-cli`, `fleet-cli`, `french-cli`, `harmonics-cli`, `headspace-cli`, `intern-cli`, `jetson-ai-lab-cli`, `jetson-arena`, `jetson-orin-cli`, `jetson-thor-cli`, `knowledgebase-cli`, `league-of-agents`, `league-of-agents-platform`, `learn-cli`, `lobes-cli`, `media-cli`, `model-gear`, `mysight-cli`, `operator-cli`, `org`, `prove-cli`, `qodo-cli`, `reachy-lobes`, `reachy-mini-cli`, `reduce-cli`, `refactor-cli`, `refactoring-cli`, `reterminal-cli`, `rigor-cli`, `rollout-cli`, `sensibo-cli`, `shell-cli`, `spanish-cli`, `steward`, `storybook-cli`, `tensor-cli`, `webcam-cli`, `webglass-cli`, `workledger-cli`, `zehut`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | Successor to `outsource`; the one to broadcast to new consumers. Verbs `explore` / `review` / `write` / `feedback` / `plan` / `resume` / `monitor` / `guide` / `stop` / `clean`. **Divergence: none — vendored byte-verbatim** (all 5 files match upstream @ 1.63.1). Also ships in `culture-agent-template`, so template clones get it at genesis. Runtime dep: `uv tool install colleague-cli` + a reachable engine. Downstream column surveyed off local workspace checkouts, so it reflects what is vendored locally, not a live GitHub poll. |
180
+ | `outsource` | `colleague` (`agentculture/colleague`, `../colleague/.claude/skills/outsource/`) | — (broadcast pending; [`culture-agent-template#8`](https://github.com/agentculture/culture-agent-template/issues/8) proposes adding it to the clone template), `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli`, `headspace-cli`, `embodiment`, `refactoring-cli`, `rigor-cli`, `workledger-cli`, `culture-nodes`, `protocols-cli`, `edge-ai-lab`, `neurosymbolic-system`, `microduck-cli`, `notion-agent`, `associate`, `jetson` | **Legacy — superseded by `ask-colleague`** (retirement pending). First-party colleague skill: hand a scoped task to a *different* engine/mind. Verbs `explore` / `review` / `write`. **Divergence:** Provenance paragraph reframed for re-broadcast (above); `type: command` already present upstream. Runtime dep: `uv tool install colleague-cli` + a reachable engine. |
172
181
 
173
182
  `guild teach --new --skill ask-colleague --to <repos>` frames `ask-colleague` as
174
183
  a *new* skill when broadcasting to a consumer that does not yet hold it; use
@@ -13,7 +13,7 @@ credentials required in tests/CI.
13
13
  Sequence (``--apply``)
14
14
  ----------------------
15
15
  0. ``gh auth status`` (preflight: a gh login exists)
16
- 1. ``gh repo view <agent>`` (preflight: repo must NOT exist)
16
+ 1. ``gh repo view <agent> --json nameWithOwner`` (preflight: repo must NOT exist)
17
17
  2. ``gh repo create <agent>`` (template instantiation)
18
18
  `` --template <template>``
19
19
  `` --private`` / ``--public`` (visibility; --private by default)
@@ -31,7 +31,7 @@ Preflight guard
31
31
  ---------------
32
32
  :func:`preflight` refuses with NO partial work when:
33
33
  - ``gh auth status`` fails (no gh login),
34
- - ``gh repo view <agent>`` succeeds (repo already exists), or
34
+ - ``gh repo view <agent>`` resolves to *that same* repo (it already exists), or
35
35
  - the local clone destination is already non-empty.
36
36
 
37
37
  After a preflight failure the world is left exactly as found.
@@ -39,6 +39,7 @@ After a preflight failure the world is left exactly as found.
39
39
 
40
40
  from __future__ import annotations
41
41
 
42
+ import json
42
43
  import shutil
43
44
  import subprocess # nosec B404 — argv lists only; never shell=True
44
45
  import time
@@ -127,6 +128,27 @@ def _dest_is_unusable(path: Path) -> bool:
127
128
  return any(path.iterdir()) # a non-empty directory
128
129
 
129
130
 
131
+ def _is_rename_redirect(agent: str, view_stdout: str) -> bool:
132
+ """True iff ``gh repo view <agent>`` resolved to a *different* repo.
133
+
134
+ GitHub keeps a redirect from a repository's former name to its current one,
135
+ and ``gh repo view`` follows it — so a name freed by a rename still looks
136
+ occupied to a naive returncode check. When the resolved ``nameWithOwner``
137
+ differs from *agent*, the requested name is genuinely free and creating a
138
+ repo there simply retires the stale redirect.
139
+
140
+ Unparseable or fieldless output is treated as **not** a redirect, so an
141
+ ambiguous answer keeps the conservative "repo exists" refusal.
142
+ """
143
+ try:
144
+ resolved = json.loads(view_stdout or "").get("nameWithOwner")
145
+ except (ValueError, AttributeError):
146
+ return False
147
+ if not isinstance(resolved, str) or not resolved:
148
+ return False
149
+ return resolved.casefold() != agent.casefold()
150
+
151
+
130
152
  def _check(result: RunResult, message: str, code: int) -> None:
131
153
  """Raise a typed :class:`GuildError` if *result* indicates failure."""
132
154
  if result.returncode != 0:
@@ -153,7 +175,9 @@ def preflight(
153
175
  Checks, in order (short-circuits on first failure):
154
176
 
155
177
  1. **auth** — ``gh auth status`` must succeed.
156
- 2. **existence** — ``gh repo view <agent>`` must FAIL (repo must not exist).
178
+ 2. **existence** — ``gh repo view <agent> --json nameWithOwner`` must either
179
+ fail, or resolve to a *different* repo (a stale rename redirect — the
180
+ requested name is free). An exact ``nameWithOwner`` match is a refusal.
157
181
  3. **local boundary** — *clone_dest* must be absent or empty.
158
182
 
159
183
  Raises
@@ -177,8 +201,13 @@ def preflight(
177
201
  )
178
202
 
179
203
  # 2. existence — repo must NOT already exist.
180
- view = runner(["gh", "repo", "view", agent])
181
- if view.returncode == 0:
204
+ # `gh repo view` FOLLOWS GitHub's rename redirect, so a name freed by a
205
+ # rename still resolves (successfully) to the *renamed* repo. Compare the
206
+ # resolved `nameWithOwner` against what was asked for: only an exact match
207
+ # means the name is taken. GitHub lets you create a new repo at the old
208
+ # name — doing so retires the redirect, which is the intended outcome here.
209
+ view = runner(["gh", "repo", "view", agent, "--json", "nameWithOwner"])
210
+ if view.returncode == 0 and not _is_rename_redirect(agent, view.stdout):
182
211
  raise GuildError(
183
212
  code=EXIT_USER_ERROR,
184
213
  message=f"repo {agent} already exists on GitHub",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "guild-cli"
3
- version = "0.23.1"
3
+ version = "0.24.0"
4
4
  description = "guildmaster — an agent and CLI that manages skills for the AgentCulture mesh."
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -318,12 +318,20 @@ class _FakeRunner:
318
318
  """Records every command issued, returns configurable per-command results."""
319
319
 
320
320
  def __init__(
321
- self, *, repo_exists: bool = False, auth_ok: bool = True, configure_stderr: str = ""
321
+ self,
322
+ *,
323
+ repo_exists: bool = False,
324
+ auth_ok: bool = True,
325
+ configure_stderr: str = "",
326
+ repo_view_name: str | None = None,
322
327
  ):
323
328
  self.calls: list[tuple[list[str], dict]] = []
324
329
  self._repo_exists = repo_exists
325
330
  self._auth_ok = auth_ok
326
331
  self._configure_stderr = configure_stderr
332
+ # What `gh repo view` resolves to. None => echo back what was asked for
333
+ # (a real hit); a different name models GitHub's rename redirect.
334
+ self._repo_view_name = repo_view_name
327
335
 
328
336
  def __call__(self, cmd: list[str], *, cwd: str | None = None) -> RunResult:
329
337
  self.calls.append((list(cmd), {"cwd": cwd}))
@@ -333,9 +341,12 @@ class _FakeRunner:
333
341
  if argv[:3] == ["gh", "auth", "status"]:
334
342
  return RunResult(returncode=0 if self._auth_ok else 1)
335
343
 
336
- # gh repo view
344
+ # gh repo view <agent> --json nameWithOwner
337
345
  if argv[:3] == ["gh", "repo", "view"]:
338
- return RunResult(returncode=0 if self._repo_exists else 1)
346
+ if not self._repo_exists:
347
+ return RunResult(returncode=1)
348
+ resolved = self._repo_view_name or argv[3]
349
+ return RunResult(returncode=0, stdout=json.dumps({"nameWithOwner": resolved}))
339
350
 
340
351
  # gh api repos/<agent>/commits — the template-populate poll.
341
352
  if argv[:2] == ["gh", "api"] and len(argv) > 2 and argv[2].endswith("/commits"):
@@ -1074,3 +1085,66 @@ def test_create_apply_full_split_clone(tmp_path, monkeypatch):
1074
1085
  assert "reachy-cli==${DEV_VERSION}" in wf # publish pin = dist
1075
1086
  # Repo identity stays the repo token.
1076
1087
  assert "suffix: reachy-mini-cli" in (clone_dest / "culture.yaml").read_text()
1088
+
1089
+
1090
+ # ---------------------------------------------------------------------------
1091
+ # Rename-redirect preflight — a name freed by `gh repo rename` is still free
1092
+ # ---------------------------------------------------------------------------
1093
+
1094
+
1095
+ def test_is_rename_redirect_detects_resolved_mismatch():
1096
+ from guild.cli._commands._provision_template import _is_rename_redirect
1097
+
1098
+ # `gh repo view agentculture/jetson` follows the redirect to jetson-cli:
1099
+ # the requested name is free.
1100
+ assert _is_rename_redirect(
1101
+ "agentculture/jetson", json.dumps({"nameWithOwner": "agentculture/jetson-cli"})
1102
+ )
1103
+ # Case-insensitive: GitHub names are case-preserving but not case-sensitive.
1104
+ assert not _is_rename_redirect(
1105
+ "agentculture/Jetson", json.dumps({"nameWithOwner": "agentculture/jetson"})
1106
+ )
1107
+ # An exact hit is a genuinely occupied name.
1108
+ assert not _is_rename_redirect(
1109
+ "agentculture/jetson", json.dumps({"nameWithOwner": "agentculture/jetson"})
1110
+ )
1111
+
1112
+
1113
+ def test_is_rename_redirect_is_conservative_on_bad_output():
1114
+ from guild.cli._commands._provision_template import _is_rename_redirect
1115
+
1116
+ # Anything unparseable or fieldless keeps the "repo exists" refusal.
1117
+ for stdout in ("", "not json", "null", "{}", json.dumps({"nameWithOwner": ""})):
1118
+ assert not _is_rename_redirect("agentculture/jetson", stdout)
1119
+
1120
+
1121
+ def test_create_apply_proceeds_through_a_rename_redirect(tmp_path, monkeypatch, capsys):
1122
+ """A name freed by a rename must not be mistaken for an occupied one."""
1123
+ root = _seed(tmp_path)
1124
+ workspace = tmp_path / "ws"
1125
+ workspace.mkdir()
1126
+ monkeypatch.chdir(root)
1127
+
1128
+ # `gh repo view agentculture/newsib` succeeds but resolves elsewhere.
1129
+ runner = _FakeRunner(repo_exists=True, repo_view_name="agentculture/newsib-cli")
1130
+ import guild.cli._commands._provision_template as _prov
1131
+
1132
+ monkeypatch.setattr(_prov, "default_runner", runner)
1133
+
1134
+ rc = main(
1135
+ [
1136
+ "create",
1137
+ "--agent",
1138
+ "newsib",
1139
+ "--desc",
1140
+ "Freed by a rename.",
1141
+ "--workspace-root",
1142
+ str(workspace),
1143
+ "--apply",
1144
+ ]
1145
+ )
1146
+ assert rc == 0
1147
+
1148
+ issued = [" ".join(str(a) for a in c[0]) for c in runner.calls]
1149
+ assert any("gh repo view agentculture/newsib --json nameWithOwner" in c for c in issued)
1150
+ assert any("gh repo create" in c for c in issued)
@@ -179,7 +179,7 @@ wheels = [
179
179
 
180
180
  [[package]]
181
181
  name = "guild-cli"
182
- version = "0.23.1"
182
+ version = "0.24.0"
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
File without changes
File without changes