guild-cli 0.26.21__tar.gz → 0.26.23__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 (151) hide show
  1. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/version-bump/SKILL.md +15 -3
  2. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/version-bump/scripts/bump.py +117 -23
  3. {guild_cli-0.26.21 → guild_cli-0.26.23}/CHANGELOG.md +30 -0
  4. {guild_cli-0.26.21 → guild_cli-0.26.23}/PKG-INFO +1 -1
  5. {guild_cli-0.26.21 → guild_cli-0.26.23}/docs/skill-sources.md +17 -17
  6. {guild_cli-0.26.21 → guild_cli-0.26.23}/pyproject.toml +1 -1
  7. guild_cli-0.26.23/tests/test_version_bump_script.py +224 -0
  8. {guild_cli-0.26.21 → guild_cli-0.26.23}/uv.lock +1 -1
  9. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/agent-config/SKILL.md +0 -0
  10. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/agent-config/data/backend-fingerprints.yaml +0 -0
  11. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/agent-config/scripts/show.sh +0 -0
  12. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/ask-colleague/SKILL.md +0 -0
  13. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/ask-colleague/prompts/explore.md +0 -0
  14. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/ask-colleague/prompts/review.md +0 -0
  15. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/ask-colleague/prompts/write.md +0 -0
  16. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/ask-colleague/scripts/ask-colleague.sh +0 -0
  17. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/assign-to-workforce/SKILL.md +0 -0
  18. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh +0 -0
  19. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/challenge/SKILL.md +0 -0
  20. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/challenge/scripts/challenge.sh +0 -0
  21. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/cicd/SKILL.md +0 -0
  22. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/cicd/scripts/_resolve-nick.sh +0 -0
  23. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/cicd/scripts/portability-lint.sh +0 -0
  24. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/cicd/scripts/pr-reply.sh +0 -0
  25. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/cicd/scripts/pr-status.sh +0 -0
  26. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/cicd/scripts/workflow.sh +0 -0
  27. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/communicate/SKILL.md +0 -0
  28. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/communicate/scripts/fetch-issues.sh +0 -0
  29. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/communicate/scripts/mesh-message.sh +0 -0
  30. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/communicate/scripts/post-comment.sh +0 -0
  31. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/communicate/scripts/post-issue.sh +0 -0
  32. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/communicate/scripts/templates/skill-new-brief.md +0 -0
  33. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/communicate/scripts/templates/skill-update-brief.md +0 -0
  34. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/deviate/SKILL.md +0 -0
  35. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/deviate/scripts/deviate.sh +0 -0
  36. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/doc-test-alignment/SKILL.md +0 -0
  37. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/doc-test-alignment/scripts/check.sh +0 -0
  38. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/guild/SKILL.md +0 -0
  39. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/guild/scripts/configure-repo.sh +0 -0
  40. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/guild/scripts/create.sh +0 -0
  41. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/guild/scripts/overview.sh +0 -0
  42. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/onboard/SKILL.md +0 -0
  43. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/onboard/scripts/onboard.sh +0 -0
  44. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/outsource/SKILL.md +0 -0
  45. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/outsource/prompts/explore.md +0 -0
  46. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/outsource/prompts/review.md +0 -0
  47. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/outsource/prompts/write.md +0 -0
  48. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/outsource/scripts/outsource.sh +0 -0
  49. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/pypi-maintainer/SKILL.md +0 -0
  50. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/pypi-maintainer/scripts/switch-source.sh +0 -0
  51. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/recall/SKILL.md +0 -0
  52. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/recall/scripts/recall.sh +0 -0
  53. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/remember/SKILL.md +0 -0
  54. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/remember/scripts/remember.sh +0 -0
  55. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/run-tests/SKILL.md +0 -0
  56. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/run-tests/scripts/test.sh +0 -0
  57. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/scope/SKILL.md +0 -0
  58. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/scope/scripts/scope.sh +0 -0
  59. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/sonarclaude/SKILL.md +0 -0
  60. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/sonarclaude/scripts/sonar.sh +0 -0
  61. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/spec-to-plan/SKILL.md +0 -0
  62. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh +0 -0
  63. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/summarize-delivery/SKILL.md +0 -0
  64. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/summarize-delivery/scripts/summarize-delivery.sh +0 -0
  65. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/teach/SKILL.md +0 -0
  66. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/teach/scripts/teach.sh +0 -0
  67. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/think/SKILL.md +0 -0
  68. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/think/scripts/think.sh +0 -0
  69. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/validate-delivery/SKILL.md +0 -0
  70. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills/validate-delivery/scripts/validate-delivery.sh +0 -0
  71. {guild_cli-0.26.21 → guild_cli-0.26.23}/.claude/skills.local.yaml.example +0 -0
  72. {guild_cli-0.26.21 → guild_cli-0.26.23}/.devague/current +0 -0
  73. {guild_cli-0.26.21 → guild_cli-0.26.23}/.devague/current_plan +0 -0
  74. {guild_cli-0.26.21 → guild_cli-0.26.23}/.devague/deliveries/template-supports-four-harnesses.json +0 -0
  75. {guild_cli-0.26.21 → guild_cli-0.26.23}/.devague/frames/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
  76. {guild_cli-0.26.21 → guild_cli-0.26.23}/.devague/frames/template-supports-four-harnesses.json +0 -0
  77. {guild_cli-0.26.21 → guild_cli-0.26.23}/.devague/plans/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
  78. {guild_cli-0.26.21 → guild_cli-0.26.23}/.devague/plans/template-supports-four-harnesses.json +0 -0
  79. {guild_cli-0.26.21 → guild_cli-0.26.23}/.eidetic/memory/culture-agent-template__public.jsonl +0 -0
  80. {guild_cli-0.26.21 → guild_cli-0.26.23}/.eidetic/memory/default__public.jsonl +0 -0
  81. {guild_cli-0.26.21 → guild_cli-0.26.23}/.eidetic/memory/guildmaster__public.jsonl +0 -0
  82. {guild_cli-0.26.21 → guild_cli-0.26.23}/.flake8 +0 -0
  83. {guild_cli-0.26.21 → guild_cli-0.26.23}/.github/workflows/publish.yml +0 -0
  84. {guild_cli-0.26.21 → guild_cli-0.26.23}/.github/workflows/tests.yml +0 -0
  85. {guild_cli-0.26.21 → guild_cli-0.26.23}/.gitignore +0 -0
  86. {guild_cli-0.26.21 → guild_cli-0.26.23}/.markdownlint-cli2.yaml +0 -0
  87. {guild_cli-0.26.21 → guild_cli-0.26.23}/AGENTS.override.md +0 -0
  88. {guild_cli-0.26.21 → guild_cli-0.26.23}/CLAUDE.md +0 -0
  89. {guild_cli-0.26.21 → guild_cli-0.26.23}/LICENSE +0 -0
  90. {guild_cli-0.26.21 → guild_cli-0.26.23}/QWEN.md +0 -0
  91. {guild_cli-0.26.21 → guild_cli-0.26.23}/README.md +0 -0
  92. {guild_cli-0.26.21 → guild_cli-0.26.23}/culture.yaml +0 -0
  93. {guild_cli-0.26.21 → guild_cli-0.26.23}/docs/cutover.md +0 -0
  94. {guild_cli-0.26.21 → guild_cli-0.26.23}/docs/deliveries/2026-09-05-template-supports-four-harnesses.md +0 -0
  95. {guild_cli-0.26.21 → guild_cli-0.26.23}/docs/onboarding/reachy-mini-mcp.json +0 -0
  96. {guild_cli-0.26.21 → guild_cli-0.26.23}/docs/plans/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
  97. {guild_cli-0.26.21 → guild_cli-0.26.23}/docs/plans/2026-09-05-template-supports-four-harnesses-split.md +0 -0
  98. {guild_cli-0.26.21 → guild_cli-0.26.23}/docs/plans/2026-09-05-template-supports-four-harnesses.md +0 -0
  99. {guild_cli-0.26.21 → guild_cli-0.26.23}/docs/specs/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
  100. {guild_cli-0.26.21 → guild_cli-0.26.23}/docs/specs/2026-09-05-template-supports-four-harnesses.md +0 -0
  101. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/__init__.py +0 -0
  102. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/__main__.py +0 -0
  103. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/__init__.py +0 -0
  104. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/__init__.py +0 -0
  105. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/_broadcast.py +0 -0
  106. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/_provision_template.py +0 -0
  107. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/create.py +0 -0
  108. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/explain.py +0 -0
  109. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/harness.py +0 -0
  110. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/learn.py +0 -0
  111. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/onboard.py +0 -0
  112. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/overview.py +0 -0
  113. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/show.py +0 -0
  114. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/teach.py +0 -0
  115. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_commands/whoami.py +0 -0
  116. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_errors.py +0 -0
  117. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_output.py +0 -0
  118. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/cli/_repo.py +0 -0
  119. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/scaffold/__init__.py +0 -0
  120. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/scaffold/harness.py +0 -0
  121. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/scaffold/harness_use.py +0 -0
  122. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/scaffold/instantiate.py +0 -0
  123. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/skills/__init__.py +0 -0
  124. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/skills/identity.py +0 -0
  125. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/skills/ledger.py +0 -0
  126. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/skills/render.py +0 -0
  127. {guild_cli-0.26.21 → guild_cli-0.26.23}/guild/skills/sources.py +0 -0
  128. {guild_cli-0.26.21 → guild_cli-0.26.23}/sonar-project.properties +0 -0
  129. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/__init__.py +0 -0
  130. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_broadcast_post.py +0 -0
  131. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_cli.py +0 -0
  132. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_cli_create.py +0 -0
  133. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_cli_explain.py +0 -0
  134. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_cli_harness.py +0 -0
  135. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_cli_learn.py +0 -0
  136. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_cli_onboard.py +0 -0
  137. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_cli_overview.py +0 -0
  138. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_cli_show.py +0 -0
  139. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_cli_teach.py +0 -0
  140. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_cli_whoami.py +0 -0
  141. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_configure_repo_sonar.py +0 -0
  142. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_create_gate.py +0 -0
  143. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_scaffold_harness.py +0 -0
  144. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_scaffold_harness_use.py +0 -0
  145. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_scaffold_instantiate.py +0 -0
  146. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_skills_convention.py +0 -0
  147. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_skills_identity.py +0 -0
  148. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_skills_ledger.py +0 -0
  149. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_skills_render.py +0 -0
  150. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_skills_sources.py +0 -0
  151. {guild_cli-0.26.21 → guild_cli-0.26.23}/tests/test_version_fallback.py +0 -0
@@ -24,8 +24,10 @@ Run from the repo root.
24
24
  echo '{"added":["New X"],"changed":["Refactored Y"],"fixed":["Bug in Z"]}' \
25
25
  | python3 .claude/skills/version-bump/scripts/bump.py minor
26
26
 
27
- # Without changelog content (inserts empty ### Added/Changed/Fixed stubs):
28
- python3 .claude/skills/version-bump/scripts/bump.py patch
27
+ # Without changelog content (inserts empty ### Added/Changed/Fixed stubs).
28
+ # From scripts, daemons and agent harnesses, pass --no-stdin so the bump
29
+ # never waits on a stdin it was handed but nobody writes to:
30
+ python3 .claude/skills/version-bump/scripts/bump.py patch --no-stdin
29
31
 
30
32
  # Check current version without bumping:
31
33
  python3 .claude/skills/version-bump/scripts/bump.py show
@@ -44,6 +46,12 @@ python3 .claude/skills/version-bump/scripts/bump.py show
44
46
 
45
47
  Pass via stdin. All fields are optional — only non-empty sections are rendered.
46
48
 
49
+ Stdin is read until it closes, however slowly the JSON arrives. If it stays
50
+ open with no new input for `BUMP_STDIN_IDLE_SECONDS` (default 5), the bump
51
+ stops with an error and changes nothing, instead of hanging or dropping your
52
+ entries. `--no-stdin` (or `BUMP_NO_STDIN=1`) skips stdin and writes the empty
53
+ stub.
54
+
47
55
  ```json
48
56
  {
49
57
  "added": ["List of new features"],
@@ -57,7 +65,11 @@ Pass via stdin. All fields are optional — only non-empty sections are rendered
57
65
  - `pyproject.toml` — the `version = "x.y.z"` field (single source of truth;
58
66
  `steward/__init__.py` reads it via `importlib.metadata`, so there's no
59
67
  separate `__version__` literal to keep in sync).
60
- - `CHANGELOG.md` — inserts a new `## [x.y.z] - YYYY-MM-DD` entry at the top.
68
+ - `CHANGELOG.md` — inserts a new `## [x.y.z] - YYYY-MM-DD` entry above the
69
+ first `## [` release heading (headings inside fenced code blocks don't
70
+ count). A leading `## [Unreleased]` section stays on top, untouched; its
71
+ content is never moved into the release for you. A CHANGELOG with no release
72
+ heading yet gets the entry after its Unreleased section, or at the end.
61
73
 
62
74
  The script does the rest. Pick a bump type from the diff (patch for fixes,
63
75
  minor for new features, major for breaking changes), summarize the diff into
@@ -11,6 +11,7 @@ Usage:
11
11
  bump.py minor # 0.1.0 -> 0.2.0
12
12
  bump.py patch # 0.1.0 -> 0.1.1
13
13
  bump.py show # print current version
14
+ bump.py patch --no-stdin # don't read stdin; insert the empty stub
14
15
 
15
16
  Changelog entries are passed via stdin as a JSON object:
16
17
  {
@@ -19,11 +20,22 @@ Changelog entries are passed via stdin as a JSON object:
19
20
  "fixed": ["WHO reply index bug"]
20
21
  }
21
22
 
22
- If no stdin is provided, an empty stub is inserted.
23
+ If stdin is a terminal or empty, or --no-stdin (or BUMP_NO_STDIN=1) is given,
24
+ an empty stub is inserted. Stdin is read until it closes; if it stays open
25
+ with no new input for BUMP_STDIN_IDLE_SECONDS (default 5), the bump stops with
26
+ an error and changes nothing, rather than hanging or dropping entries.
27
+
28
+ The new section goes above the first ``## [`` release heading, ignoring
29
+ headings inside fenced code blocks. A leading ``## [Unreleased]`` section stays
30
+ on top, untouched; a CHANGELOG with no release heading yet gets the section
31
+ after its Unreleased section, or at the end.
23
32
  """
24
33
 
25
34
  import json
35
+ import math
36
+ import os
26
37
  import re
38
+ import select
27
39
  import sys
28
40
  from datetime import date
29
41
  from pathlib import Path
@@ -78,17 +90,70 @@ def write_version(path: Path, old: str, new: str) -> None:
78
90
  path.write_text(updated)
79
91
 
80
92
 
81
- def read_changelog_entries() -> dict:
93
+ STDIN_IDLE_SECONDS_DEFAULT = 5.0
94
+
95
+
96
+ def _env_flag(name: str) -> bool:
97
+ return os.environ.get(name, "").strip().lower() in ("1", "true", "yes")
98
+
99
+
100
+ def _stdin_idle_seconds() -> float:
101
+ raw = os.environ.get("BUMP_STDIN_IDLE_SECONDS")
102
+ if raw is None:
103
+ return STDIN_IDLE_SECONDS_DEFAULT
104
+ try:
105
+ value = float(raw)
106
+ except ValueError:
107
+ value = 0.0
108
+ if not math.isfinite(value) or value <= 0:
109
+ print(
110
+ f"ERROR: BUMP_STDIN_IDLE_SECONDS must be a positive number, got {raw!r}",
111
+ file=sys.stderr,
112
+ )
113
+ sys.exit(1)
114
+ return value
115
+
116
+
117
+ def _read_stdin_until_eof(idle: float) -> str | None:
118
+ """Read stdin to EOF; None if it stays open with no new input for ``idle`` s."""
119
+ fd = sys.stdin.fileno()
120
+ chunks = []
121
+ while True:
122
+ try:
123
+ ready, _, _ = select.select([fd], [], [], idle)
124
+ except (OSError, ValueError):
125
+ return sys.stdin.read() # select() can't poll this stdin (e.g. Windows): read as before
126
+ if not ready:
127
+ return None
128
+ chunk = os.read(fd, 65536)
129
+ if not chunk:
130
+ return b"".join(chunks).decode()
131
+ chunks.append(chunk)
132
+
133
+
134
+ def read_changelog_entries(no_stdin: bool = False) -> dict:
82
135
  """Read changelog entries from stdin as JSON."""
83
- if sys.stdin.isatty():
136
+ if no_stdin or sys.stdin is None or sys.stdin.isatty():
137
+ return {}
138
+ idle = _stdin_idle_seconds()
139
+ raw = _read_stdin_until_eof(idle)
140
+ if raw is None:
141
+ print(
142
+ f"ERROR: stdin stayed open with no input for {idle:g}s and never closed; nothing "
143
+ "was changed. Pipe the changelog JSON (echo '{...}' | bump.py patch), or pass "
144
+ "--no-stdin (or set BUMP_NO_STDIN=1) for an empty stub.",
145
+ file=sys.stderr,
146
+ )
147
+ sys.exit(1)
148
+ raw = raw.strip()
149
+ if not raw:
84
150
  return {}
85
151
  try:
86
- raw = sys.stdin.read().strip()
87
- if not raw:
88
- return {}
89
152
  return json.loads(raw)
90
153
  except (json.JSONDecodeError, ValueError):
91
- print("WARNING: could not parse changelog JSON from stdin, using empty stub", file=sys.stderr)
154
+ print(
155
+ "WARNING: could not parse changelog JSON from stdin, using empty stub", file=sys.stderr
156
+ )
92
157
  return {}
93
158
 
94
159
 
@@ -116,6 +181,32 @@ def format_changelog_section(new: str, entries: dict) -> str:
116
181
  return "".join(chunks)
117
182
 
118
183
 
184
+ def _section_headings(lines: list[str]) -> list[tuple[int, str]]:
185
+ """``## `` headings outside fenced code blocks, as (line index, line)."""
186
+ headings, fenced = [], False
187
+ for i, line in enumerate(lines):
188
+ if line.lstrip().startswith(("```", "~~~")):
189
+ fenced = not fenced
190
+ elif not fenced and line.startswith("## "):
191
+ headings.append((i, line))
192
+ return headings
193
+
194
+
195
+ def _insertion_index(lines: list[str]) -> int:
196
+ """Line index for the new section: above the first ``## [`` release heading
197
+ that isn't Unreleased, so a leading Unreleased section stays on top; after
198
+ an Unreleased-only section, or at the end of a file with neither."""
199
+ headings = _section_headings(lines)
200
+ unreleased = re.compile(r"^## \[Unreleased\]", re.IGNORECASE)
201
+ releases = [i for i, line in headings if line.startswith("## [") and not unreleased.match(line)]
202
+ if releases:
203
+ return releases[0]
204
+ after = [i for i, line in headings if unreleased.match(line)]
205
+ if after:
206
+ return next((i for i, _ in headings if i > after[0]), len(lines))
207
+ return len(lines)
208
+
209
+
119
210
  def update_changelog(project_root: Path, new: str, entries: dict) -> None:
120
211
  """Insert a new changelog entry into CHANGELOG.md."""
121
212
  changelog = project_root / "CHANGELOG.md"
@@ -123,24 +214,25 @@ def update_changelog(project_root: Path, new: str, entries: dict) -> None:
123
214
  print("No CHANGELOG.md found — skipping")
124
215
  return
125
216
 
126
- text = changelog.read_text()
217
+ lines = changelog.read_text().splitlines(keepends=True)
218
+ idx = _insertion_index(lines)
219
+ before, after = "".join(lines[:idx]), "".join(lines[idx:])
127
220
  new_entry = format_changelog_section(new, entries)
128
-
129
- marker = "## ["
130
- idx = text.find(marker)
131
- if idx > 0:
132
- changelog.write_text(text[:idx] + new_entry + text[idx:])
133
- print(f"Updated CHANGELOG.md with [{new}]")
134
- else:
135
- print("WARNING: could not find insertion point in CHANGELOG.md", file=sys.stderr)
221
+ if not after: # appending at the end of the file
222
+ before = before.rstrip("\n") + "\n\n" if before.strip() else ""
223
+ new_entry = new_entry.rstrip("\n") + "\n"
224
+ changelog.write_text(before + new_entry + after)
225
+ print(f"Updated CHANGELOG.md with [{new}]")
136
226
 
137
227
 
138
228
  def main():
139
- if len(sys.argv) < 2 or sys.argv[1] in ("-h", "--help"):
229
+ args = [a for a in sys.argv[1:] if a != "--no-stdin"]
230
+ no_stdin = len(args) < len(sys.argv) - 1 or _env_flag("BUMP_NO_STDIN")
231
+ if not args or args[0] in ("-h", "--help"):
140
232
  print(__doc__.strip())
141
233
  sys.exit(0)
142
234
 
143
- part = sys.argv[1].lower()
235
+ part = args[0].lower()
144
236
  path = find_pyproject()
145
237
  current = read_version(path)
146
238
 
@@ -149,7 +241,7 @@ def main():
149
241
  sys.exit(0)
150
242
 
151
243
  # Read changelog entries before bumping
152
- entries = read_changelog_entries()
244
+ entries = read_changelog_entries(no_stdin)
153
245
 
154
246
  new = bump(current, part)
155
247
  write_version(path, current, new)
@@ -162,10 +254,12 @@ def main():
162
254
  if init.exists():
163
255
  init_text = init.read_text()
164
256
  if f'__version__ = "{current}"' in init_text:
165
- init.write_text(init_text.replace(
166
- f'__version__ = "{current}"',
167
- f'__version__ = "{new}"',
168
- ))
257
+ init.write_text(
258
+ init_text.replace(
259
+ f'__version__ = "{current}"',
260
+ f'__version__ = "{new}"',
261
+ )
262
+ )
169
263
  print(f"Updated {init.relative_to(path.parent)}")
170
264
 
171
265
  # Update changelog
@@ -5,6 +5,36 @@ 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.26.23] - 2026-10-30
9
+
10
+ ### Added
11
+
12
+ - `version-bump`: `--no-stdin` (or `BUMP_NO_STDIN=1`) skips reading stdin and writes the empty changelog stub, for scripts, daemons and agent harnesses that hand the script a stdin nobody writes to. `BUMP_STDIN_IDLE_SECONDS` (default 5) sets how long stdin may stay silent before the bump gives up.
13
+
14
+ ### Fixed
15
+
16
+ - `version-bump`: `bump.py` no longer hangs on a stdin that stays open, whether it sends nothing or only part of the JSON. Stdin is read until it closes, however slowly the JSON arrives; if it goes silent for `BUMP_STDIN_IDLE_SECONDS` first, the bump stops with an error and changes nothing, instead of hanging or silently dropping the entries. Piped JSON (`echo … | bump.py patch`) works as before.
17
+ - `version-bump`: the new `CHANGELOG.md` section goes above the first `## [` release heading, ignoring headings inside fenced code blocks. A leading `## [Unreleased]` section now stays on top, untouched; before, the release was inserted above it. A file whose first line is a `## [` heading is updated instead of refused (culture's vendored copy already did this), and a CHANGELOG with no release heading gets the section appended instead of a warning.
18
+
19
+ ## [0.26.22] - 2026-10-24
20
+
21
+ ### Added
22
+
23
+ - Registered `culture-library` as a downstream consumer in
24
+ `docs/skill-sources.md` for the 17 ledgered skills its clone vendors (not the
25
+ legacy `outsource` row, see #125). `agentculture/culture-library` was
26
+ provisioned **public** with `guild create --agent agentculture/culture-library
27
+ --public` as a plain rename: command `culture-library`, import package
28
+ `culture_library`, PyPI distribution `culture-library`. It is a library of
29
+ the operator's own content and media (recordings, books, newspapers,
30
+ articles, EPUBs, PDFs, docs and more), to be published at
31
+ `library.culture.dev`. Two known failures hit on the way: the template copy
32
+ missed the 60 s populate budget (the copy landed about 50 s later and the run
33
+ was resumed with the two finished `gh` calls stubbed), and the 15-char token
34
+ tripped the #122 short-token `black` collapse. The remaining steps (gate
35
+ re-run, genesis commit, push, `configure-repo.sh`, ledger write) were
36
+ finished by hand.
37
+
8
38
  ## [0.26.21] - 2026-10-23
9
39
 
10
40
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: guild-cli
3
- Version: 0.26.21
3
+ Version: 0.26.23
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
@@ -41,14 +41,14 @@ current by `guild overview --scope mesh`.
41
41
 
42
42
  | Skill | Upstream | Downstream copies (known) | Notes |
43
43
  |-------|----------|---------------------------|-------|
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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | Switches a PyPI package install between pypi / test-pypi / local. Generalised from the original culture-specific `change-package`. `org` and `mjolnir-agent` are intentionally not consumers — neither ships a PyPI distribution (`org` is a site repo; `mjolnir-agent` maintains `thor-arena/mjolnir` and runs repo-local). |
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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | Switches a PyPI package install between pypi / test-pypi / local. Generalised from the original culture-specific `change-package`. `org` and `mjolnir-agent` are intentionally not consumers — neither ships a PyPI distribution (`org` is a site repo; `mjolnir-agent` maintains `thor-arena/mjolnir` and runs repo-local). |
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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | 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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | Pure Python, prepends a Keep-a-Changelog entry; no per-repo customization needed. |
52
52
 
53
53
  > **How the downstream column is maintained.** The "Downstream copies (known)"
54
54
  > entries are kept in sync with guildmaster's own drift detector:
@@ -125,14 +125,14 @@ five wrapper scripts are additions, not edits.
125
125
 
126
126
  | Skill | Origin | Downstream copies (known) | Notes |
127
127
  |-------|--------|---------------------------|-------|
128
- | `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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | 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:** none — verbatim from upstream. Runtime dep: `uv tool install devague`. |
129
- | `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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | 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:** none — verbatim from upstream. Runtime dep: `uv tool install devague`. |
130
- | `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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | 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:** none — verbatim from upstream. Runtime deps: `uv tool install devague`, `git worktree`, the vendored `cicd` skill (for gate-3 `devex pr open`). |
131
- | `scope` | `devague` (`agentculture/devague`, `../devague/.claude/skills/scope/`) | `colleague`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `discord-bot-cli`, `eidetic-cli`, `prove-cli`, `rollout-cli`, `data-refinery-cli`, `webglass-cli`, `org`, `sensibo-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`, `culture-agent-template`, `devague`, `lobes-cli`, `reachy_nova`, `reterminal-cli`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | Operator for the optional **idea→scope** leg that precedes /think: survey the surfaces an idea touches (code, docs, skills, CI, sibling repos) and seed the coming Announcement Frame with boundary / non-goal / assumption claims that cite what was actually explored. Fans out to read-only exploration subagents at 5+ candidate surfaces; subagents explore and report, only the main agent runs a `devague` move. **Divergence:** none in `SKILL.md` (verbatim); guildmaster adds `scripts/scope.sh`, a wrapper upstream does not ship (see above). Runtime dep: `uv tool install devague`. |
132
- | `challenge` | `devague` (`agentculture/devague`, `../devague/.claude/skills/challenge/`) | `colleague`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `discord-bot-cli`, `eidetic-cli`, `prove-cli`, `rollout-cli`, `data-refinery-cli`, `webglass-cli`, `org`, `sensibo-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`, `culture-agent-template`, `devague`, `lobes-cli`, `reachy_nova`, `reterminal-cli`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | Operator for the risk-scaled **blind-spot pass** between /think and /spec-to-plan: pressure-test a converged, exported frame through structured lenses and route every finding back through the existing deterministic moves as proposed-only content the human adjudicates. A clean pass records the lenses/surfaces examined and residual uncertainty — never a claim that no unknown unknowns remain. **Divergence:** none in `SKILL.md` (verbatim); guildmaster adds `scripts/challenge.sh`, a wrapper upstream does not ship (see above). Runtime dep: `uv tool install devague`. |
133
- | `deviate` | `devague` (`agentculture/devague`, `../devague/.claude/skills/deviate/`) | `colleague`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `discord-bot-cli`, `eidetic-cli`, `prove-cli`, `rollout-cli`, `data-refinery-cli`, `webglass-cli`, `org`, `sensibo-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`, `culture-agent-template`, `devague`, `lobes-cli`, `reachy_nova`, `reterminal-cli`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | Operator for **in-flight plan divergence**: stop an assign-to-workforce run the moment execution must diverge from the confirmed plan, get explicit human approval, and record it as a first-class, append-only deviation record (`devague deviate`) before resuming — never fold a deviation silently into drift after the fact. **Divergence:** none in `SKILL.md` (verbatim); guildmaster adds `scripts/deviate.sh`, a wrapper upstream does not ship (see above). Runtime dep: `uv tool install devague`. |
134
- | `validate-delivery` | `devague` (`agentculture/devague`, `../devague/.claude/skills/validate-delivery/`) | `colleague`, `jetson-ai-lab-cli`, `discord-bot-cli`, `sensibo-cli`, `culture-nodes`, `microduck-cli`, `associate`, `devague`, `lobes-cli`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | Operator for the **validation** leg, between /assign-to-workforce and /summarize-delivery: the agent runs the confirmed plan's behavioral tests itself, then files obligations, evidence, and behavioral deltas (`devague oblige` / `evidence` / `delta` / `summary`). **Record-only** — the CLI never runs a test ([devague#20](https://github.com/agentculture/devague/issues/20)) and a failing or partial outcome is never suppressed. New to guildmaster in this re-sync; nine downstream copies already ran ahead of it. **Divergence:** none in `SKILL.md` (verbatim); guildmaster adds `scripts/validate-delivery.sh`, a wrapper upstream does not ship (see above). Runtime dep: `uv tool install devague`. |
135
- | `summarize-delivery` | `devague` (`agentculture/devague`, `../devague/.claude/skills/summarize-delivery/`) | `colleague`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `discord-bot-cli`, `eidetic-cli`, `prove-cli`, `rollout-cli`, `data-refinery-cli`, `webglass-cli`, `org`, `sensibo-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`, `culture-agent-template`, `devague`, `lobes-cli`, `reachy_nova`, `reterminal-cli`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | Operator for the **closeout** leg: turn what actually happened into an accountability artifact — planned vs. actual delivery, mid-work decisions, plan drift, evidence-backed delivery claims, and remaining work. Runs on complete, partial, **and failed** runs; failure is reported faithfully, never smoothed over. **Divergence:** none in `SKILL.md` (verbatim); guildmaster adds `scripts/summarize-delivery.sh`, a wrapper upstream does not ship (see above). Runtime dep: `uv tool install devague`. |
128
+ | `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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | 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:** none — verbatim from upstream. Runtime dep: `uv tool install devague`. |
129
+ | `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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | 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:** none — verbatim from upstream. Runtime dep: `uv tool install devague`. |
130
+ | `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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | 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:** none — verbatim from upstream. Runtime deps: `uv tool install devague`, `git worktree`, the vendored `cicd` skill (for gate-3 `devex pr open`). |
131
+ | `scope` | `devague` (`agentculture/devague`, `../devague/.claude/skills/scope/`) | `colleague`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `discord-bot-cli`, `eidetic-cli`, `prove-cli`, `rollout-cli`, `data-refinery-cli`, `webglass-cli`, `org`, `sensibo-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`, `culture-agent-template`, `devague`, `lobes-cli`, `reachy_nova`, `reterminal-cli`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | Operator for the optional **idea→scope** leg that precedes /think: survey the surfaces an idea touches (code, docs, skills, CI, sibling repos) and seed the coming Announcement Frame with boundary / non-goal / assumption claims that cite what was actually explored. Fans out to read-only exploration subagents at 5+ candidate surfaces; subagents explore and report, only the main agent runs a `devague` move. **Divergence:** none in `SKILL.md` (verbatim); guildmaster adds `scripts/scope.sh`, a wrapper upstream does not ship (see above). Runtime dep: `uv tool install devague`. |
132
+ | `challenge` | `devague` (`agentculture/devague`, `../devague/.claude/skills/challenge/`) | `colleague`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `discord-bot-cli`, `eidetic-cli`, `prove-cli`, `rollout-cli`, `data-refinery-cli`, `webglass-cli`, `org`, `sensibo-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`, `culture-agent-template`, `devague`, `lobes-cli`, `reachy_nova`, `reterminal-cli`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | Operator for the risk-scaled **blind-spot pass** between /think and /spec-to-plan: pressure-test a converged, exported frame through structured lenses and route every finding back through the existing deterministic moves as proposed-only content the human adjudicates. A clean pass records the lenses/surfaces examined and residual uncertainty — never a claim that no unknown unknowns remain. **Divergence:** none in `SKILL.md` (verbatim); guildmaster adds `scripts/challenge.sh`, a wrapper upstream does not ship (see above). Runtime dep: `uv tool install devague`. |
133
+ | `deviate` | `devague` (`agentculture/devague`, `../devague/.claude/skills/deviate/`) | `colleague`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `discord-bot-cli`, `eidetic-cli`, `prove-cli`, `rollout-cli`, `data-refinery-cli`, `webglass-cli`, `org`, `sensibo-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`, `culture-agent-template`, `devague`, `lobes-cli`, `reachy_nova`, `reterminal-cli`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | Operator for **in-flight plan divergence**: stop an assign-to-workforce run the moment execution must diverge from the confirmed plan, get explicit human approval, and record it as a first-class, append-only deviation record (`devague deviate`) before resuming — never fold a deviation silently into drift after the fact. **Divergence:** none in `SKILL.md` (verbatim); guildmaster adds `scripts/deviate.sh`, a wrapper upstream does not ship (see above). Runtime dep: `uv tool install devague`. |
134
+ | `validate-delivery` | `devague` (`agentculture/devague`, `../devague/.claude/skills/validate-delivery/`) | `colleague`, `jetson-ai-lab-cli`, `discord-bot-cli`, `sensibo-cli`, `culture-nodes`, `microduck-cli`, `associate`, `devague`, `lobes-cli`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | Operator for the **validation** leg, between /assign-to-workforce and /summarize-delivery: the agent runs the confirmed plan's behavioral tests itself, then files obligations, evidence, and behavioral deltas (`devague oblige` / `evidence` / `delta` / `summary`). **Record-only** — the CLI never runs a test ([devague#20](https://github.com/agentculture/devague/issues/20)) and a failing or partial outcome is never suppressed. New to guildmaster in this re-sync; nine downstream copies already ran ahead of it. **Divergence:** none in `SKILL.md` (verbatim); guildmaster adds `scripts/validate-delivery.sh`, a wrapper upstream does not ship (see above). Runtime dep: `uv tool install devague`. |
135
+ | `summarize-delivery` | `devague` (`agentculture/devague`, `../devague/.claude/skills/summarize-delivery/`) | `colleague`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `discord-bot-cli`, `eidetic-cli`, `prove-cli`, `rollout-cli`, `data-refinery-cli`, `webglass-cli`, `org`, `sensibo-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`, `culture-agent-template`, `devague`, `lobes-cli`, `reachy_nova`, `reterminal-cli`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | Operator for the **closeout** leg: turn what actually happened into an accountability artifact — planned vs. actual delivery, mid-work decisions, plan drift, evidence-backed delivery claims, and remaining work. Runs on complete, partial, **and failed** runs; failure is reported faithfully, never smoothed over. **Divergence:** none in `SKILL.md` (verbatim); guildmaster adds `scripts/summarize-delivery.sh`, a wrapper upstream does not ship (see above). Runtime dep: `uv tool install devague`. |
136
136
 
137
137
  The `think` / `spec-to-plan` / `assign-to-workforce` trio was registered here
138
138
  first; the other five were vendored into guildmaster without ledger rows and are
@@ -204,7 +204,7 @@ the CLI, the wrappers exit with a clear install hint rather than crashing.
204
204
 
205
205
  | Skill | Origin | Downstream copies (known) | Notes |
206
206
  |-------|--------|---------------------------|-------|
207
- | `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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor` | 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. |
207
+ | `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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `substack-cli`, `xitter`, `nvsh`, `innereye`, `shabbos-goy`, `jev-factory`, `jetson-containers-agent`, `jetsonrun`, `culture-rules`, `xteink`, `ebooks-cli`, `culture-rules-tester`, `pocketsync`, `mjolnir-agent`, `govee-cli`, `cultureos`, `culture-chat`, `heat-governor`, `culture-library` | 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. |
208
208
  | `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`, `agentsgit`, `microphone-cli`, `embeddings-lens`, `culture-rules-tester` | **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. |
209
209
 
210
210
  `guild teach --new --skill ask-colleague --to <repos>` frames `ask-colleague` as
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "guild-cli"
3
- version = "0.26.21"
3
+ version = "0.26.23"
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"