guild-cli 0.20.2__tar.gz → 0.21.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.eidetic/memory/guildmaster__public.jsonl +2 -2
- {guild_cli-0.20.2 → guild_cli-0.21.0}/CHANGELOG.md +120 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/PKG-INFO +1 -1
- {guild_cli-0.20.2 → guild_cli-0.21.0}/docs/skill-sources.md +12 -12
- {guild_cli-0.20.2 → guild_cli-0.21.0}/pyproject.toml +1 -1
- {guild_cli-0.20.2 → guild_cli-0.21.0}/uv.lock +1 -1
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/agent-config/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/agent-config/data/backend-fingerprints.yaml +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/agent-config/scripts/show.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/ask-colleague/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/ask-colleague/prompts/explore.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/ask-colleague/prompts/review.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/ask-colleague/prompts/write.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/ask-colleague/scripts/ask-colleague.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/assign-to-workforce/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/challenge/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/challenge/scripts/challenge.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/cicd/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/cicd/scripts/_resolve-nick.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/cicd/scripts/portability-lint.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/cicd/scripts/pr-reply.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/cicd/scripts/pr-status.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/cicd/scripts/workflow.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/communicate/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/communicate/scripts/fetch-issues.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/communicate/scripts/mesh-message.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/communicate/scripts/post-comment.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/communicate/scripts/post-issue.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/communicate/scripts/templates/skill-new-brief.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/communicate/scripts/templates/skill-update-brief.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/deviate/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/deviate/scripts/deviate.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/doc-test-alignment/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/doc-test-alignment/scripts/check.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/guild/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/guild/scripts/configure-repo.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/guild/scripts/create.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/guild/scripts/overview.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/onboard/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/onboard/scripts/onboard.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/outsource/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/outsource/prompts/explore.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/outsource/prompts/review.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/outsource/prompts/write.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/outsource/scripts/outsource.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/pypi-maintainer/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/pypi-maintainer/scripts/switch-source.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/recall/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/recall/scripts/recall.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/remember/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/remember/scripts/remember.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/run-tests/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/run-tests/scripts/test.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/scope/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/scope/scripts/scope.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/sonarclaude/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/sonarclaude/scripts/sonar.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/spec-to-plan/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/summarize-delivery/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/summarize-delivery/scripts/summarize-delivery.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/teach/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/teach/scripts/teach.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/think/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/think/scripts/think.sh +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/version-bump/SKILL.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/version-bump/scripts/bump.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills.local.yaml.example +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.devague/frames/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.devague/plans/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.eidetic/memory/default__public.jsonl +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.flake8 +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.github/workflows/publish.yml +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.github/workflows/tests.yml +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.gitignore +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/.markdownlint-cli2.yaml +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/CLAUDE.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/LICENSE +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/README.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/culture.yaml +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/docs/cutover.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/docs/onboarding/reachy-mini-mcp.json +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/docs/plans/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/docs/specs/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/__init__.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/__main__.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/__init__.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_commands/__init__.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_commands/_broadcast.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_commands/_provision_template.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_commands/create.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_commands/explain.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_commands/learn.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_commands/onboard.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_commands/overview.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_commands/show.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_commands/teach.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_commands/whoami.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_errors.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_output.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/cli/_repo.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/scaffold/__init__.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/scaffold/instantiate.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/skills/__init__.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/skills/identity.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/skills/ledger.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/skills/render.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/guild/skills/sources.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/sonar-project.properties +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/__init__.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_broadcast_post.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_cli.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_cli_create.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_cli_explain.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_cli_learn.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_cli_onboard.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_cli_overview.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_cli_show.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_cli_teach.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_cli_whoami.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_configure_repo_sonar.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_scaffold_instantiate.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_skills_convention.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_skills_identity.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_skills_ledger.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_skills_render.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_skills_sources.py +0 -0
- {guild_cli-0.20.2 → guild_cli-0.21.0}/tests/test_version_fallback.py +0 -0
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
{"id": "org-created-private-2026-07-10", "hash": "aa3a32ca4e097147695076329d3b04b616826cf5eb5aa6a203b91556e80b7ead", "content": "2026-07-10: guild create --apply provisioned PRIVATE agentculture/org \u2014 the AgentCulture org site: source of the web presence published to AgentCulture.org, REPLACING the deleted landing-page repo (deleted outright, never registered in the ledger, no redirect, no surviving local checkout \u2014 no content migration, the site starts fresh). Identifiers: command = pkg = dist = repo token org, backend claude. FIRST no-PyPI sibling: the user asked for no PyPI package, and guild create has no flag for it, so the PyPI lane was stripped post-create as operator-side provisioning (NOT product hand-building): deleted publish.yml, dropped the vendored pypi-maintainer skill + its row in org docs/skill-sources.md, reworded README baseline bullet + version-check comment; org is intentionally excluded from guildmaster pypi-maintainer ledger row WITH an explicit note so the gap reads as intent. TWO OPERATIONAL FACTS: (1) the genesis push fires one doomed Publish-to-PyPI run before you can strip it \u2014 completed red before it could be cancelled, one-time and harmless; (2) main-requires-PR ruleset is active on private repos (paid plan), so the post-create fix could NOT be pushed to main directly \u2014 it needed branch + version bump (org 0.4.0\u21920.4.1) + PR: landed as org#1 (merged), which also means the build brief landed at org#2 (same slot-shift as league-of-agents). Ledger registration = guildmaster PR #88 (v0.19.2, PATCH). Owed: /init, backend reconcile (template culture.yaml ships backend colleague vs seed prose claude), site stack + IA proposal on org#2, deploy workflow (Pages/S3/Cloudflare \u2014 private repo, public site) + operator-owned DNS cutover for AgentCulture.org. Repo-shape precedent for the brief = culture-tools (CLI + site dir in one repo).", "scope": {"name": "guildmaster", "visibility": "public"}, "metadata": {"type": "project", "record_metadata": {"scope": "guildmaster", "repo": "guildmaster", "agent": "org", "pr": 88, "date": "2026-07-10"}, "created": "2026-07-10T15:08:06.175651+00:00", "last_recall": "2026-07-23T15:07:45.685204+00:00", "recall_count": 4, "links": ["league-of-agents-platform-created-2026-07-10", "guild-create-desc-350-char-limit"], "supersedes": null, "lifecycle": "active", "added_by": null}}
|
|
4
4
|
{"id": "guild-create-seeds-sonar-token-2026-07-10", "hash": "0cefcc3f176f52199c30273f51cbc74271e20c6921caa45115b41e2ffe87c1b6", "content": "Fixed 2026-07-10, guildmaster PR #89 (v0.19.3). guild create's configure-repo.sh step 4 used to create the new sibling's SONAR_TOKEN repo secret EMPTY. The culture-agent-template tests.yml gates its SonarCloud step on env.SONAR_TOKEN != '', so an empty secret means SonarCloud NEVER runs on that repo, silently \u2014 and the operator had been pasting the token into each new repo's GitHub UI by hand. The fix: step 4 now seeds the secret from the operator's own exported $SONAR_TOKEN, passed on STDIN not argv (the process table is world-readable). When $SONAR_TOKEN is unset it still writes the empty placeholder but WARNS to stderr with the exact gh secret set command to fix it. An already-present secret is NEVER clobbered (the value in GitHub wins); a whitespace-only token is treated as absent. Test: tests/test_configure_repo_sonar.py runs the REAL configure-repo.sh in --apply against a fake gh on PATH (no network) covering seed-from-env, empty+warn, never-clobber, whitespace-as-absent. Reusable pattern for testing shell scripts guildmaster ships: fake gh echoes benign responses for api and secret list and logs secret set stdin; make api .../rulesets echo the ruleset name so the script's already-present branch skips the heredoc create. GOTCHA for backfilling live repos: because the fix (correctly) never clobbers an existing secret, re-running configure-repo.sh does NOT fix a repo that already has the empty placeholder \u2014 that needs a direct 'printf %s \"$SONAR_TOKEN\" | gh secret set SONAR_TOKEN --repo <r>' override. league-of-agents-platform and org (created 2026-07-10) still carry empty secrets. Distinct still-OPEN sibling bug in the same area: cicd's pr-status.sh reads SonarCloud ANONYMOUSLY (no Authorization header, no curl -f), so for PRIVATE projects it gets HTTP 404 and reports 'Quality Gate UNKNOWN, 0 issues, 0 hotspots' \u2014 a false clean \u2014 and workflow.sh await only greps for the literal 'Quality Gate ERROR', so a missing/unreadable gate reads as PASS. Not fixed yet (operator chose the create-flow fix, option B).", "scope": {"name": "guildmaster", "visibility": "public"}, "metadata": {"type": "project", "record_metadata": {"scope": "guildmaster", "repo": "guildmaster", "pr": 89, "date": "2026-07-10"}, "created": "2026-07-10T15:49:28.579056+00:00", "last_recall": "2026-07-23T15:07:45.685204+00:00", "recall_count": 4, "links": ["league-of-agents-platform-created-2026-07-10"], "supersedes": null, "lifecycle": "active", "added_by": null}}
|
|
5
5
|
{"id": "learn-cli-created-2026-07-10", "hash": "0256e26f7cfa603ba14d7ec8339d4a1187ac9e533af001818b7902d63dee04d8", "content": "2026-07-10: guild create --apply provisioned public agentculture/learn-cli \u2014 the mesh's LEARNING FRONT: a CLI (command learn), an MCP server, and a web site over one product, where humans AND agents learn a subject step by step. It does NOT tutor; it fronts per-subject tutor CLIs \u2014 the same host-don't-reimplement shape league-of-agents-platform has with the arena runtime. Identifiers: command learn, import package learn, dist learn-cli (= repo token, no --dist override), backend claude, public, full 14-skill kit. First two subjects: french-cli (command french) and spanish-cli (command spanish) \u2014 public backend:colleague private-language-tutor CLIs (track progress, overview, advice, read stories, learn & practice written+spoken online from your phone), both already full-kit consumers. Not language-limited: culture-guide (PRIVATE \u2014 learn core AI concepts, build your first agents, create useful CLIs, adopt agent-first development patterns, i.e. learning to lead teams of agents) is the worked non-language subject the operator named. Design spine in build brief learn-cli#1: the SUBJECT-PLUGIN CONTRACT is the central design (define once so a third subject is a registration not a fork); the three faces (CLI/MCP/HTTP) should be agentfront surfaces derived from one registry so they cannot drift; cross-subject learner state = one profile/login spanning subjects. Parallel worth remembering: katvan aggregates sibling DOCS onto culture.dev, learn-cli aggregates sibling TUTORS onto a learning site. Ledger registration = guildmaster PR #90 (v0.19.4, PATCH). CLEAN GENESIS \u2014 first sibling created since the SONAR_TOKEN seeding fix (PR #89): the SONAR_TOKEN secret was seeded from the operator env at create time so SonarCloud RAN on the genesis commit (no manual paste), and genesis CI was fully green (lint/test/publish). The explain_self catalog-key bug that needed a follow-up on league-of-agents-platform did NOT fire here \u2014 KEY LESSON: it fires only when the command differs from the import PACKAGE (underscore form), e.g. league-site vs league_site, NOT when command differs from the repo token; here command==package==learn so the catalog root already resolves under the command name. learn-cli 0.4.0 PUBLISHED to production PyPI on the genesis push because a Trusted Publisher for the name was already registered, so no Trusted Publisher is owed (unusual for a new sibling); every push to main publishes so bump the version every PR. Owed: /init, backend reconcile (culture.yaml declares backend colleague with AGENTS.colleague.md while the CLAUDE.md seed prose may still say claude; both subject siblings run colleague). Open decisions parked in the brief: hosting (league-of-agents-platform/org/culture-tools precedents), model access (cloudai-cli/ec2bedrock-cli), progress storage (eidetic-cli/data-refinery-cli), and a culture.dev cross-link via katvan if it gets a public domain.", "scope": {"name": "guildmaster", "visibility": "public"}, "metadata": {"type": "project", "record_metadata": {"scope": "guildmaster", "repo": "guildmaster", "agent": "learn-cli", "pr": 90, "date": "2026-07-10"}, "created": "2026-07-10T16:31:19.593705+00:00", "last_recall": "2026-07-23T15:07:45.685204+00:00", "recall_count": 4, "links": ["league-of-agents-platform-created-2026-07-10", "guild-create-seeds-sonar-token-2026-07-10"], "supersedes": null, "lifecycle": "active", "added_by": null}}
|
|
6
|
-
{"id": "sensibo-cli-created-public-2026-07-14", "hash": "ff78fd4ce2bb64b6cd1e1f67add5a36d95e2ae81da5504a9abc2b6e92205b53f", "content": "2026-07-14: guild create --apply provisioned PUBLIC agentculture/sensibo-cli \u2014 an agent + CLI for Sensibo smart-AC control at home. Three pillars from the operator: (1) control the AC, (2) collect every sensor reading LOCALLY, (3) set up automated conditions that drive the AC. Identity: repo token sensibo-cli, console command sensibo, import package sensibo, dist sensibo-cli on PyPI, backend claude. Ledger registration + the #87 catalog-alias fix shipped together as guildmaster PR #92 (v0.19.6, PATCH). CLEAN GENESIS: Sonar ran, Tests green, teken cli doctor --strict 26/26, 0.4.0 auto-published to PyPI (Trusted Publisher pre-registered). GOTCHA (benign, expected): the genesis push shows a FAILED Publish run alongside the successful one \u2014 the failure is on GitHub's own Initial commit (443ac83), which is still literally culture-agent-template, so it tries to publish the template dist. Not our clone; ignore it. Build brief = sensibo-cli#1, which deliberately parks TWO honest unknowns rather than guessing: (a) LOCALLY IS UNVERIFIED \u2014 Sensibo devices are cloud-connected and the documented surface is the cloud REST API (/api/v2 + account API key); if no LAN protocol exists, the honest design is poll-cloud + persist-to-a-local-store, and the README must NOT imply a local protocol it does not have; (b) Sensibo ALREADY ships Climate React (server-side threshold automation) + schedules, so the CLI must be explicit about which conditions run in the cloud vs which need the local daemon alive \u2014 a rule that silently dies when a laptop sleeps is worse than no rule. Safety constraint: this drives real compressors, so hysteresis / minimum-off-time to prevent short-cycling is a requirement, not a nicety. Unofficial community tool; Sensibo is a trademark of Sensibo Ltd (qodo-cli is the disclaimer precedent). Owed: /init in the new repo, backend reconcile.", "scope": {"name": "guildmaster", "visibility": "public"}, "metadata": {"type": "note", "record_metadata": {"scope": "guildmaster", "repo": "guildmaster", "tool": "guild create", "agent": "sensibo-cli", "pr": 92, "issue": 1, "date": "2026-07-14", "visibility_note": "public sibling"}, "created": "2026-07-14T13:01:42.860309+00:00", "last_recall": "2026-07-
|
|
6
|
+
{"id": "sensibo-cli-created-public-2026-07-14", "hash": "ff78fd4ce2bb64b6cd1e1f67add5a36d95e2ae81da5504a9abc2b6e92205b53f", "content": "2026-07-14: guild create --apply provisioned PUBLIC agentculture/sensibo-cli \u2014 an agent + CLI for Sensibo smart-AC control at home. Three pillars from the operator: (1) control the AC, (2) collect every sensor reading LOCALLY, (3) set up automated conditions that drive the AC. Identity: repo token sensibo-cli, console command sensibo, import package sensibo, dist sensibo-cli on PyPI, backend claude. Ledger registration + the #87 catalog-alias fix shipped together as guildmaster PR #92 (v0.19.6, PATCH). CLEAN GENESIS: Sonar ran, Tests green, teken cli doctor --strict 26/26, 0.4.0 auto-published to PyPI (Trusted Publisher pre-registered). GOTCHA (benign, expected): the genesis push shows a FAILED Publish run alongside the successful one \u2014 the failure is on GitHub's own Initial commit (443ac83), which is still literally culture-agent-template, so it tries to publish the template dist. Not our clone; ignore it. Build brief = sensibo-cli#1, which deliberately parks TWO honest unknowns rather than guessing: (a) LOCALLY IS UNVERIFIED \u2014 Sensibo devices are cloud-connected and the documented surface is the cloud REST API (/api/v2 + account API key); if no LAN protocol exists, the honest design is poll-cloud + persist-to-a-local-store, and the README must NOT imply a local protocol it does not have; (b) Sensibo ALREADY ships Climate React (server-side threshold automation) + schedules, so the CLI must be explicit about which conditions run in the cloud vs which need the local daemon alive \u2014 a rule that silently dies when a laptop sleeps is worse than no rule. Safety constraint: this drives real compressors, so hysteresis / minimum-off-time to prevent short-cycling is a requirement, not a nicety. Unofficial community tool; Sensibo is a trademark of Sensibo Ltd (qodo-cli is the disclaimer precedent). Owed: /init in the new repo, backend reconcile.", "scope": {"name": "guildmaster", "visibility": "public"}, "metadata": {"type": "note", "record_metadata": {"scope": "guildmaster", "repo": "guildmaster", "tool": "guild create", "agent": "sensibo-cli", "pr": 92, "issue": 1, "date": "2026-07-14", "visibility_note": "public sibling"}, "created": "2026-07-14T13:01:42.860309+00:00", "last_recall": "2026-07-24T14:35:38.384147+00:00", "recall_count": 3, "links": ["guild-create-explain-catalog-alias-fix-2026-07-14", "guild-create-desc-350-char-limit"], "supersedes": null, "lifecycle": "active", "added_by": null}}
|
|
7
7
|
{"id": "guild-create-explain-catalog-alias-fix-2026-07-14", "hash": "a58f29317f035d52c7e8640976124cd1d8101bc189ed8be987c6d143f71ff6a9", "content": "FIXED 2026-07-14 (guildmaster 0.19.6, PR #92) \u2014 guildmaster issue #87 item 4, the explain-catalog root alias, THE consequential guild create gotcha. THE BUG: culture-agent-template keys its explain catalog root by the REPO TOKEN \u2014 (\"<repo-token>\",): _ROOT in <pkg>/explain/catalog.py \u2014 because the global rename is all that normally touches it. But the clone's own lint gate, `teken cli doctor --strict`, runs its explain_self check as `<console-script> explain <console-script>`. When --command is retargeted away from the repo token, that lookup has NO catalog entry, explain exits 1, and the genesis Tests run lands RED. SIX siblings carried the identical alias, hand-added after the fact: reachy-mini-cli, discord-bot-cli, jetson-ai-lab-cli, dgx-spark-cli, unsloth-cli, league-of-agents-platform. KEY CORRECTION to the earlier learn-cli memory, which claimed the trigger was command != pkg (underscore form): WRONG. The trigger is command != REPO TOKEN. learn-cli passed CI by ACCIDENT, not by rule \u2014 the template ships a real `learn` VERB, so (\"learn\",) already existed as a catalog key and `learn explain learn` resolved to the VERB's docs instead of the root. Verified empirically by running teken cli doctor --strict against the learn-cli checkout. THE FIX: guild/scaffold/instantiate.py::_alias_explain_root, called from _retarget_command (which now takes pkg). It inserts (\"<command>\",): _ROOT immediately after the repo-token line, reusing whatever symbol that line binds. TWO GUARDS: (1) skip when (\"<command>\",) is ALREADY a catalog key \u2014 a command can legitimately collide with a real verb (the learn case), and a duplicate dict key would silently SHADOW that verb's own docs; (2) only called when command != repo_token, so the byte-identical plain-rename guarantee holds. Degrades to a no-op if the catalog or anchor line is absent. The dry-run plan now lists the alias as an explicit step, so it is visible before --apply. FIRST CLEAN RESULT: sensibo-cli (command sensibo, token sensibo-cli) is the first command-retargeted clone to pass its own CI unpatched \u2014 26/26 strict checks including `PASS explain_self: explain sensibo produced 932 chars`. NOTE the other #87 items are still OPEN: --desc >350 chars kills gh repo create; repo token >22 chars overflows flake8 E501; a bare URL in --desc trips MD034. The durable fix for all of them remains a post-transform CI gate.", "scope": {"name": "guildmaster", "visibility": "public"}, "metadata": {"type": "gotcha", "record_metadata": {"scope": "guildmaster", "repo": "guildmaster", "tool": "guild create", "issue": 87, "pr": 92, "version": "0.19.6", "date": "2026-07-14"}, "created": "2026-07-14T13:01:59.652794+00:00", "last_recall": "2026-07-22T04:23:06.521693+00:00", "recall_count": 2, "links": ["sensibo-cli-created-public-2026-07-14", "guild-create-desc-350-char-limit", "learn-cli-created-public"], "supersedes": null, "lifecycle": "active", "added_by": null}}
|
|
8
|
-
{"id": "shell-cli-created-public", "hash": "f08e967ec5bf17f97343b8e4fc669c6060355a42765319980d6cc09600882a72", "content": "2026-07-18: guild create --apply provisioned PUBLIC agentculture/shell-cli \u2014 the agent + CLI that OWNS THE FILE-AND-SHELL TOOL SURFACE for AI coding agents, extracted out of colleague so the safe-execution layer is written once and imported, not reimplemented per host. Identity: repo token shell-cli, console command shell, import package shell, dist shell-cli (= repo token, no --dist override), public, backend claude(seed)/colleague(template culture.yaml). CLEAN GREEN GENESIS: Tests + Publish both success on the scaffold commit; SONAR_TOKEN seeded non-empty from operator env; shell-cli AUTO-PUBLISHED to production PyPI (Trusted Publisher pre-registered, HTTP 200) so NO Trusted Publisher owed. The #87/#92 explain-catalog root alias FIRED (command shell != repo token shell-cli) \u2014 catalog.py:122 got (\"shell\",): _ROOT so `shell explain shell` resolves and teken explain_self passed. SEAM EVIDENCE (surveyed live, not guessed): colleague/tools.py (1360 lines) declares its tool schemas flat; SIX are extractable \u2014 read_file, view_media, write_file, edit_file, list_dir, run_command (handlers ToolExecutor._read_file.._run_command, tools.py:813-1050) \u2014 vs colleague-specific culture/devague/subagent/subagents/memory/run_tests/check_test_integrity/finish/deepthink. TWO OPERATOR DECISIONS taken via AskUserQuestion, both recorded in brief shell-cli#1: (1) DEP POSTURE = pure-stdlib core + allow-list it as colleague's SECOND sanctioned base dep. This matters because colleague pins dependencies = [\"agentfront>=0.20.0\"] EXACTLY and tests/test_zero_deps.py is a GUARD TEST asserting that list is exactly that \u2014 so a naive `pip install shell-cli` into colleague FAILS CI. agentfront was allow-listed precisely because its core is pure-stdlib; shell-cli must clear the same bar. VERIFIED the extracted code already meets it: policy.py imports only hashlib/hmac/json/shlex/dataclasses/pathlib; tools.py only json/os/shlex/subprocess/sys/dataclasses/pathlib/typing. (2) EXTRACT SCOPE = EVERYTHING INCLUDING THE APPROVAL POLICY, not just primitives \u2014 _safe_path (root-escape refusal, tools.py:730), _refuse_clone_write (read-only clone tree, tools.py:737), _truncate (tools.py:724), _number_lines (tools.py:599), plus colleague/policy.py (400 lines: frozen Verdict, Policy.check_run_command at policy.py:205, check_file, file_checksum/verify_checksum, _first_token, policy-file loading). Rationale: primitives WITHOUT the safety model = thin wrapper with no value. colleague gates ONLY run_command (loop.py:895-903); all other tools pass through. REAL WORK IS DECOUPLING NOT COPYING \u2014 the files are stdlib-clean but NOT import-clean: tools.py does `from colleague import culture, devague, media, memory, testintegrity` (NOTE: **media** is imported for view_media, which IS an extracted tool \u2014 so media either travels or view_media stays; parked as an open question), and policy.py does `from colleague.configdir import resolve_file` + `from colleague.layers import sanitize_model`. ToolExecutor is ONE class mixing both halves so extraction = splitting it; encouragingly its constructor is already injection-shaped (spawn/batch_spawn/deepthink callables + allowlist, tools.py:669-723), so the natural shape is shell-cli owning a base executor and colleague extending it. CRITICAL POSTURE TO PRESERVE \u2014 GUARD, NOT SANDBOX: colleague's own comments are candid that the clone-exec guard is a best-effort substring/shlex check, bypassable by sh -c, pipelines, variable expansion and here-docs (\"a guard, not a sandbox\"; \"document rather than overclaim\"). A package NAMED shell-cli whose headline is safe execution will be READ as offering a sandbox \u2014 the brief explicitly forbids the extraction from silently upgrading that claim, and requires a stated threat model (protects against careless/accidental model behaviour, NOT adversarial). Real isolation (namespaces/containers/seccomp) is separately-scoped future work. Migration rule in the brief: colleague's change is COLLEAGUE'S TO MAKE \u2014 shell-cli PROPOSES via an issue, does not push. Ledger registration = guildmaster PR #98 (v0.19.10, PATCH), based on MAIN (not stacked \u2014 all prior ledger PRs #95/#96/#97 had merged, so the stacked-PR CI-skip gotcha did NOT apply; all checks ran and passed). Owed on the new repo: /init (CLAUDE.md still self-init seed), backend reconcile (culture.yaml backend colleague vs seed prose claude). Housekeeping: two git stashes hold pre-create memory-counter runtime churn (now stale \u2014 origin/main's ff-merge already moved those files).\n", "scope": {"name": "guildmaster", "visibility": "public"}, "metadata": {"type": "decision", "record_metadata": {"scope": "guildmaster", "repo": "guildmaster", "tool": "guild create", "agent": "shell-cli", "pr": 98, "issue": 1, "date": "2026-07-18", "visibility_note": "public sibling"}, "created": "2026-07-18T16:29:46.055321+00:00", "last_recall": "2026-07-
|
|
8
|
+
{"id": "shell-cli-created-public", "hash": "f08e967ec5bf17f97343b8e4fc669c6060355a42765319980d6cc09600882a72", "content": "2026-07-18: guild create --apply provisioned PUBLIC agentculture/shell-cli \u2014 the agent + CLI that OWNS THE FILE-AND-SHELL TOOL SURFACE for AI coding agents, extracted out of colleague so the safe-execution layer is written once and imported, not reimplemented per host. Identity: repo token shell-cli, console command shell, import package shell, dist shell-cli (= repo token, no --dist override), public, backend claude(seed)/colleague(template culture.yaml). CLEAN GREEN GENESIS: Tests + Publish both success on the scaffold commit; SONAR_TOKEN seeded non-empty from operator env; shell-cli AUTO-PUBLISHED to production PyPI (Trusted Publisher pre-registered, HTTP 200) so NO Trusted Publisher owed. The #87/#92 explain-catalog root alias FIRED (command shell != repo token shell-cli) \u2014 catalog.py:122 got (\"shell\",): _ROOT so `shell explain shell` resolves and teken explain_self passed. SEAM EVIDENCE (surveyed live, not guessed): colleague/tools.py (1360 lines) declares its tool schemas flat; SIX are extractable \u2014 read_file, view_media, write_file, edit_file, list_dir, run_command (handlers ToolExecutor._read_file.._run_command, tools.py:813-1050) \u2014 vs colleague-specific culture/devague/subagent/subagents/memory/run_tests/check_test_integrity/finish/deepthink. TWO OPERATOR DECISIONS taken via AskUserQuestion, both recorded in brief shell-cli#1: (1) DEP POSTURE = pure-stdlib core + allow-list it as colleague's SECOND sanctioned base dep. This matters because colleague pins dependencies = [\"agentfront>=0.20.0\"] EXACTLY and tests/test_zero_deps.py is a GUARD TEST asserting that list is exactly that \u2014 so a naive `pip install shell-cli` into colleague FAILS CI. agentfront was allow-listed precisely because its core is pure-stdlib; shell-cli must clear the same bar. VERIFIED the extracted code already meets it: policy.py imports only hashlib/hmac/json/shlex/dataclasses/pathlib; tools.py only json/os/shlex/subprocess/sys/dataclasses/pathlib/typing. (2) EXTRACT SCOPE = EVERYTHING INCLUDING THE APPROVAL POLICY, not just primitives \u2014 _safe_path (root-escape refusal, tools.py:730), _refuse_clone_write (read-only clone tree, tools.py:737), _truncate (tools.py:724), _number_lines (tools.py:599), plus colleague/policy.py (400 lines: frozen Verdict, Policy.check_run_command at policy.py:205, check_file, file_checksum/verify_checksum, _first_token, policy-file loading). Rationale: primitives WITHOUT the safety model = thin wrapper with no value. colleague gates ONLY run_command (loop.py:895-903); all other tools pass through. REAL WORK IS DECOUPLING NOT COPYING \u2014 the files are stdlib-clean but NOT import-clean: tools.py does `from colleague import culture, devague, media, memory, testintegrity` (NOTE: **media** is imported for view_media, which IS an extracted tool \u2014 so media either travels or view_media stays; parked as an open question), and policy.py does `from colleague.configdir import resolve_file` + `from colleague.layers import sanitize_model`. ToolExecutor is ONE class mixing both halves so extraction = splitting it; encouragingly its constructor is already injection-shaped (spawn/batch_spawn/deepthink callables + allowlist, tools.py:669-723), so the natural shape is shell-cli owning a base executor and colleague extending it. CRITICAL POSTURE TO PRESERVE \u2014 GUARD, NOT SANDBOX: colleague's own comments are candid that the clone-exec guard is a best-effort substring/shlex check, bypassable by sh -c, pipelines, variable expansion and here-docs (\"a guard, not a sandbox\"; \"document rather than overclaim\"). A package NAMED shell-cli whose headline is safe execution will be READ as offering a sandbox \u2014 the brief explicitly forbids the extraction from silently upgrading that claim, and requires a stated threat model (protects against careless/accidental model behaviour, NOT adversarial). Real isolation (namespaces/containers/seccomp) is separately-scoped future work. Migration rule in the brief: colleague's change is COLLEAGUE'S TO MAKE \u2014 shell-cli PROPOSES via an issue, does not push. Ledger registration = guildmaster PR #98 (v0.19.10, PATCH), based on MAIN (not stacked \u2014 all prior ledger PRs #95/#96/#97 had merged, so the stacked-PR CI-skip gotcha did NOT apply; all checks ran and passed). Owed on the new repo: /init (CLAUDE.md still self-init seed), backend reconcile (culture.yaml backend colleague vs seed prose claude). Housekeeping: two git stashes hold pre-create memory-counter runtime churn (now stale \u2014 origin/main's ff-merge already moved those files).\n", "scope": {"name": "guildmaster", "visibility": "public"}, "metadata": {"type": "decision", "record_metadata": {"scope": "guildmaster", "repo": "guildmaster", "tool": "guild create", "agent": "shell-cli", "pr": 98, "issue": 1, "date": "2026-07-18", "visibility_note": "public sibling"}, "created": "2026-07-18T16:29:46.055321+00:00", "last_recall": "2026-07-24T14:35:38.384147+00:00", "recall_count": 2, "links": [], "supersedes": null, "lifecycle": "active", "added_by": null}}
|
|
9
9
|
{"id": "guildmaster-embeddings-cli-created-public-2026-07-20", "hash": "6118037bcba38be5ace7c2e7367870cc391d6617a747bd5660f835d39d9f34d9", "content": "2026-07-20: guild create --apply provisioned PUBLIC agentculture/embeddings-cli \u2014 an agent + CLI that MAPS THE GEOMETRY OF MEANING produced by embedding models. Core reframe: study an embedding SPACE AS A SYSTEM, not individual vectors. A single embedding is near-uninterpretable (dimensions rarely map to clean human concepts); the space has measurable structure \u2014 semantic regions/clusters, neighborhoods and boundaries, recurring directions of meaning, dense/sparse/ambiguous areas, gaps, and differences between models/datasets/domains/versions. Moves the question from 'which documents are closest to this query?' to 'what kind of world does this embedding model create?'. Sketched verbs: survey corpus.jsonl / regions / neighbors <text> / directions discover / gaps / compare model-a model-b / map --html. Explicit NON-goal: assigning human-readable meaning to every dimension (unstable and misleading). SECOND ROLE: the deterministic tool surface for a SURVEYOR AGENT that runs experiments against the space (sample concepts, find clusters, PROPOSE region names, TEST names against independent examples, discover candidate directions, MEASURE whether they generalize, record evidence). Division of labor is the whole design: prose from the agent, numbers from the CLI, every claim traceable to a re-runnable command. Output artifact = an ATLAS (datasets+models used, representative points, hierarchical region maps, discovered directions, cluster/boundary evidence, coverage+density, model comparisons, known limitations) \u2014 the Atlas is NOT the space, it is an evidence-backed INTERPRETATION of it, and that distinction must be load-bearing in the data model. IDENTITY: repo token embeddings-cli, console command embeddings, import package embeddings, dist embeddings-cli (= repo token, no --dist override needed \u2014 operator confirmed mid-turn 'pypi project is embeddings-cli'), public, backend claude(seed)/colleague(template culture.yaml), 18-skill kit. CLEAN GREEN GENESIS: Tests + Publish both success on the scaffold commit; SONAR_TOKEN seeded non-empty from operator env; embeddings-cli 0.6.0 AUTO-PUBLISHED to production PyPI (Trusted Publisher pre-registered) so NO Trusted Publisher owed. The #87/#92 explain-catalog root alias FIRED (command embeddings != repo token embeddings-cli) \u2014 catalog.py:122 got (\"embeddings\",): _ROOT. THREE LOAD-BEARING DESIGN CONSTRAINTS parked in brief embeddings-cli#1 rather than guessed: (1) `gaps` IS THE RISKIEST VERB \u2014 a sparse area in a SURVEYED CORPUS is a gap in the CORPUS, not necessarily in what the model can represent; conflating them is the most damaging claim this tool could make, since 'the model has a blind spot here' is exactly what readers act on. Defensible version PROBES the region with generated/held-out inputs rather than inferring absence from silence. (2) `compare model-a model-b` HAS NO SHARED COORDINATE FRAME \u2014 different dimensionalities/scales, and cosine values from two models are not on the same ruler; comparison must be RELATIONAL (k-NN set overlap / rank correlation, CKA/RSA on a shared probe set, or explicit Procrustes alignment whose RESIDUAL is reported). Never emit a cross-model number that quietly assumes a shared frame. (3) PROJECTIONS AND CLUSTERINGS ARE PARAMETER-DEPENDENT ARTIFACTS \u2014 UMAP/t-SNE and k-means/HDBSCAN produce structures that look meaningful and shift with params/seeds; since the CLI is the REPRODUCIBLE half of the Surveyor loop, every measurement records seed+params and structural claims carry a stability measure (survives resampling / different seed / different algorithm). A region that exists only at one parameter setting is a finding about the parameters. OTHER PARKED UNKNOWNS: which backends ship first (model-gear's local embed gear at localhost:8002, Qwen/Qwen3-Embedding-0.6B \u2014 already eidetic recall's default \u2014 is the zero-cost start, making `compare` cheap; API providers add cost/rate-limits to an inherently BULK-embedding tool, so an on-disk cache keyed by (model, text-hash) is probably not optional); Atlas storage format + whether `map --html` should CONSUME storybook-cli rather than build a bespoke renderer (league-of-agents' single-file HTML replay is the other precedent); whether 'Surveyor' becomes the agent identity in culture.yaml or stays a role description. LANE BOUNDARIES stated in the brief: eidetic-cli owns the memory store and already does vector recall (--mode approximate, SAME embed gear) \u2014 embeddings-cli must NOT become a vector DB or retrieval engine; it is plausibly eidetic's EVALUATOR ('does the store's embedding model actually distinguish what recall needs distinguished?' = a good first real-world study). data-refinery-cli owns data quality in storage/retrieval (coverage is arguably a data-quality signal \u2014 state the boundary). model-gear hosts models, consume don't reimplement serving. coherence-cli owns info-quality JUDGMENT; measurement here, judgment there. Ledger registration = guildmaster PR #99 (v0.19.11, PATCH), based on MAIN not stacked (all prior ledger PRs merged), so all checks ran. Build brief = embeddings-cli#1 (no pre-seeded issue, so the brief landed as #1). Owed on the new repo: /init (CLAUDE.md still the self-init seed), backend reconcile (culture.yaml colleague vs seed prose claude).", "scope": {"name": "guildmaster", "visibility": "public"}, "metadata": {"type": "note", "record_metadata": {"scope": "guildmaster", "repo": "guildmaster", "tool": "guild create", "agent": "embeddings-cli", "pr": 99, "issue": 1, "version": "0.19.11", "date": "2026-07-20", "visibility_note": "public sibling"}, "created": "2026-07-20T06:05:11.999700+00:00", "last_recall": null, "recall_count": 0, "links": [], "supersedes": null, "lifecycle": "active", "added_by": null}}
|
|
10
10
|
{"id": "evidence-cli-created-public-2026-07-22", "hash": "e95e644b88ece26c6cfe0e9835c61db18025b7774a76c42098777899acef691d", "content": "2026-07-22: `guild create --apply` provisioned PUBLIC agentculture/evidence-cli. Identifiers: command `evidence`, import package `evidence`, dist `evidence-cli` (= repo token, no --dist override), visibility public. WHAT IT IS: documents the EVIDENCE TRAIL behind a piece of work \u2014 request -> spec -> plan -> docs/code -> validations -> grade \u2014 and GRADES that trail across parameters into a final score. THE LOAD-BEARING HONESTY CONSTRAINT parked in brief #1: a high evidence grade means the trail is COMPLETE AND TRACEABLE, NOT that the work is CORRECT. Conflating them is how the tool does harm (teams produce paperwork to raise the number), so the constraint is on the OUTPUT CONTRACT wording, not a README disclaimer \u2014 'evidence completeness' is honest, 'quality score' is not. Same shape as embeddings-cli's corpus-gap != model-gap constraint. THREE MORE PARKED DESIGN QUESTIONS: (1) HARVESTER (find the trail from git/PRs/.devague frames/CI \u2014 zero friction, inferred links can be wrong) vs LEDGER (work declares evidence as it happens \u2014 accurate but needs adoption); likely MVP is harvest + operator attach, with inferred links MARKED as inferred. (2) ABSENT vs INAPPLICABLE evidence: 'no spec found' conflates no-spec-written, spec-exists-elsewhere, and didn't-need-one; needs SCOPE CALIBRATION (typo fix vs subsystem rewrite can't share a rubric) plus a first-class N/A distinct from missing. (3) The rubric must be DATA not code, VERSIONED (scores comparable only within a rubric version), decomposable, each sub-score CITING its artifact, and deterministic-or-disclosed. Candidate axes: completeness, traceability, specificity, validation strength, drift \u2014 the last two carry the real signal and are hardest. LANE BOUNDARIES: devague's summarize-delivery = planned-vs-actual for ONE workforce run (evidence-cli is any work item + grades); prove-cli = formal argument; coherence-cli = information quality; sonarclaude/qodo-cli/appsec = code quality; steward = AGENT alignment (evidence-cli grades a DELIVERY). REAL ADJACENCY TO RESOLVE EARLY: storybook-cli RENDERS what an agent did, evidence-cli ASSESSES it \u2014 clean composition is evidence produces the structured assessment and storybook renders it; settle before both grow a reporting surface. GENESIS: fully green (Tests + Publish), published 0.6.1 to production PyPI on the genesis push so NO Trusted Publisher is owed. It is a command-retargeted clone (`evidence` != repo token `evidence-cli`) so the explain-catalog root alias FIRED and it passed `teken cli doctor --strict` UNPATCHED \u2014 confirming the PR #92 fix. Ledger registration = guildmaster PR #100 (v0.20.0, MINOR per the multi-agent batch precedent), based on main, not stacked. Owed: /init, backend reconcile (template culture.yaml ships backend colleague + model pin while the CLAUDE.md seed says claude; both CLAUDE.md and AGENTS.colleague.md are on disk).", "scope": {"name": "guildmaster", "visibility": "public"}, "metadata": {"type": "project", "record_metadata": {"scope": "guildmaster", "repo": "guildmaster", "agent": "evidence-cli", "pr": 100, "date": "2026-07-22"}, "created": "2026-07-22T04:34:01.558357+00:00", "last_recall": null, "recall_count": 0, "links": ["callsmith-created-public-2026-07-22", "guild-create-explain-catalog-alias-fix-2026-07-14"], "supersedes": null, "lifecycle": "active", "added_by": null}}
|
|
11
11
|
{"id": "callsmith-created-public-2026-07-22", "hash": "326a0ec438854ee654d99f04281468376557e828e0fea02b34627420e5ae42d6", "content": "2026-07-22: `guild create --apply` provisioned PUBLIC agentculture/callsmith. Identifiers: command = import package = dist = repo token `callsmith` \u2014 a PLAIN RENAME, so the clone is byte-identical to a no-override instantiation. WHAT IT IS: manages the LIFECYCLE OF INVOCATION MODELS. An invocation model = a small checkpoint finetuned to do exactly one thing: turn natural language into the correct invocation of ONE SPECIFIC CLI. Five-verb spine proposed in brief #1: forge (finetune) -> publish (Hugging Face) -> resolve (find the right model for this CLI+version) -> fetch (download/cache) -> invoke (text in, actual intended command out). Name is the thesis: a smith that forges callers. BASE MODEL VERIFIED (web-checked, not assumed): FunctionGemma is REAL \u2014 google/functiongemma-270m-it on HF, a Gemma 3 270M variant finetuned for function calling; text-only, 32k context, Gemma's 256k vocab explicitly optimized for JSON structures; Google positions it as 'a strong base for further training into custom, fast, private, local agents', i.e. callsmith is on the PAVED PATH. Finetuning supported via HF Transformers, UNSLOTH, Keras, NVIDIA NeMo; serving via LiteRT-LM, vLLM, MLX, llama.cpp, Ollama, Vertex AI, LM Studio. THE BIGGEST DESIGN CALL (brief #1): FunctionGemma natively emits STRUCTURED FUNCTION CALLS, not shell text, while the ask is 'the actual intended command text'. STRONG RECOMMENDATION: model emits a structured call against a SCHEMA, callsmith RENDERS the command string DETERMINISTICALLY \u2014 never have the 270M model emit raw shell text. Then an unknown verb/flag is a STRUCTURAL error you can detect rather than a plausible-looking wrong string, quoting/ordering bugs vanish into deterministic code, and you can validate against the real grammar before emitting. Plays directly to the JSON-friendly 256k vocab. CORPUS INSIGHT (the crux): hand-labelling (text -> invocation) pairs per CLI does not scale. But every AgentCulture sibling ships a MACHINE-READABLE self-description (explain catalog + argparse tree, enforced by `teken cli doctor --strict`) \u2014 so callsmith should ship a CORPUS GENERATOR: walk the target CLI's verb/flag surface, have a larger model paraphrase the NL side while the INVOCATION side stays ground truth derived from the actual grammar. Labels correct by construction. PARKED HONESTY CONSTRAINTS: (1) callsmith EMITS, it must NOT EXECUTE \u2014 execution is shell-cli's lane (confinement + approval policy + gated run_command); an invocation model is a hallucination-capable component producing executable text, so growing a --run flag would route around a safety boundary the mesh already built. (2) Evaluate on 'does it parse against the real grammar and pick the right verb/args', NEVER BLEU/exact-match \u2014 a textually-close command can be catastrophically wrong. (3) MODELS GO STALE SILENTLY: a model forged against guild 0.19 confidently emits flags 0.20 removed, so published models must declare CLI + version range and `resolve` must key on (CLI, version) and refuse/warn on mismatch. (4) Publishing a model PUBLISHES AN INTERFACE \u2014 a model finetuned on a private sibling's help text leaks that CLI's surface, so HF visibility must be explicit and default safe. (5) Gemma Terms of Use follow the derivative (pass terms downstream, state base model in the card) \u2014 get it right in `publish` from day one. (6) State the payoff: local 270M = near-zero cost/latency, so latency + cost + accuracy vs an HONEST BASELINE (frontier model given the CLI's --help in context) belong in acceptance criteria from the start \u2014 be able to discover early that it ISN'T worth it. LANE BOUNDARIES: DELEGATE forge to unsloth-cli (command `sloth`) rather than reimplement LoRA plumbing \u2014 Unsloth is an officially supported FunctionGemma finetuning path, so reimplementing is the obvious wrong turn. intern-cli is the ADJACENCY TO CONFIRM (both are small-local-model agents; intern wraps one small LM as a general embeddable agent, callsmith produces MANY narrow per-CLI models whose output is a command). model-gear/cloudai-cli/ec2bedrock-cli = serving general models; teken/agentfront = the self-description contract callsmith CONSUMES as corpus ground truth; embeddings-cli = possible ally if `resolve` becomes semantic. DEPENDENCY POSTURE: the template's runtime package has NO third-party deps; torch/transformers/unsloth are heavy, so put them behind OPTIONAL EXTRAS \u2014 a caller who only wants resolve+invoke against a cached model must not install a training stack. GENESIS: fully green (Tests + Publish), published 0.6.1 to production PyPI on the genesis push so NO Trusted Publisher is owed. Ledger registration = guildmaster PR #100 (v0.20.0, MINOR), based on main, not stacked. Owed: /init, backend reconcile (culture.yaml ships backend colleague + model pin vs the claude seed prose).", "scope": {"name": "guildmaster", "visibility": "public"}, "metadata": {"type": "project", "record_metadata": {"scope": "guildmaster", "repo": "guildmaster", "agent": "callsmith", "pr": 100, "date": "2026-07-22"}, "created": "2026-07-22T04:34:01.560508+00:00", "last_recall": null, "recall_count": 0, "links": ["evidence-cli-created-public-2026-07-22", "intern-cli-created-public-2026-07-17"], "supersedes": null, "lifecycle": "active", "added_by": null}}
|
|
@@ -5,6 +5,126 @@ 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.21.0] - 2026-07-24
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Ledger:** registered `face-recognition-cli` (public) as a downstream
|
|
13
|
+
consumer of the canonical skill set. Provisioned via `guild create --apply`
|
|
14
|
+
from `culture-agent-template`: repo/agent token `face-recognition-cli`,
|
|
15
|
+
command `face-recognition`, import package `face_recognition_cli`, dist
|
|
16
|
+
`face-recognition-cli`, public, backend as scaffolded. face-recognition-cli
|
|
17
|
+
owns **face identity** for the mesh — detect faces, collect embeddings per
|
|
18
|
+
identity, and manage them by generated id and human name, with enroll, match,
|
|
19
|
+
list, forget-one, and a **forget-all** bulk verb.
|
|
20
|
+
|
|
21
|
+
Its engine is **extracted from `reachy-mini-cli`**, not adopted from PyPI.
|
|
22
|
+
The operator's brief named the `face-recognition` PyPI distribution "as does
|
|
23
|
+
reachy-mini-cli", but reachy-mini-cli does **not** use that (dlib-based)
|
|
24
|
+
package: it runs OpenCV **YuNet + SFace** (`reachy/vision/face.py`, cited
|
|
25
|
+
from `reachy_nova`, behind its `[vision]` extra) and already carries a
|
|
26
|
+
per-identity store in `reachy/vision/face_store.py` — `enroll`, generated
|
|
27
|
+
id, name, `match`, `forget`, `list_faces`, plus a temporary/permanent tier
|
|
28
|
+
split. Adopting dlib instead would have put enrolled faces in a different
|
|
29
|
+
embedding space and invalidated them. On that evidence the operator chose
|
|
30
|
+
**extraction**: this sibling takes over the YuNet+SFace engine and the store,
|
|
31
|
+
adds the missing bulk delete, and `reachy-mini-cli` drops its copy and
|
|
32
|
+
depends on the sibling. A **cpu/gpu compute-class split** (`[cpu]` for the
|
|
33
|
+
Raspberry-Pi-class robot box, `[gpu]` for DGX Spark / Jetson) is in scope,
|
|
34
|
+
under the invariant that both paths run the **same ONNX models** so the
|
|
35
|
+
embedding space — and therefore every enrolled face — stays portable across
|
|
36
|
+
hardware.
|
|
37
|
+
|
|
38
|
+
The import package is **decoupled** from the command (`--pkg
|
|
39
|
+
face_recognition_cli` against command `face-recognition`), following the
|
|
40
|
+
`media-cli`, `webcam-cli`, and `discord-bot-cli` precedent: the default
|
|
41
|
+
underscore form would have been `face_recognition`, which is the import name
|
|
42
|
+
of the `face-recognition` PyPI distribution — squatting it would shadow that
|
|
43
|
+
package for anyone who later installs it. Command differs from the repo
|
|
44
|
+
token, so the explain-catalog root alias fired:
|
|
45
|
+
`("face-recognition",): _ROOT` is present and
|
|
46
|
+
`face-recognition explain face-recognition` resolves, keeping
|
|
47
|
+
`teken cli doctor --strict` green at 26/26.
|
|
48
|
+
|
|
49
|
+
- **Ledger:** registered `face-cli` (public) as a downstream consumer of the
|
|
50
|
+
canonical skill set. Provisioned via `guild create --apply` from
|
|
51
|
+
`culture-agent-template`: repo/agent token `face-cli`, command `face`,
|
|
52
|
+
import package `face_cli`, dist `face-cli`, public, backend as scaffolded.
|
|
53
|
+
face-cli is a **face simulation** — a synthetic face that reads as
|
|
54
|
+
three-dimensional on a flat 2D screen and can direct its gaze in any
|
|
55
|
+
direction, rendered in the **browser** per the operator's decision (a local
|
|
56
|
+
web page over canvas/WebGL: no display server, reachable over the network,
|
|
57
|
+
and screenshottable in CI). It is the *expressive output* counterpart to
|
|
58
|
+
face-recognition-cli's *perceptual input*; the two share a subject and
|
|
59
|
+
nothing else.
|
|
60
|
+
|
|
61
|
+
The import package is **decoupled** from the command (`--pkg face_cli`
|
|
62
|
+
against command `face`) for the same squatting reason as its sibling: the
|
|
63
|
+
default underscore form would have been `face`, which is a real published
|
|
64
|
+
PyPI distribution (a `glom` dependency). Command differs from the repo token,
|
|
65
|
+
so the explain-catalog root alias fired: `("face",): _ROOT` is present and
|
|
66
|
+
`face explain face` resolves, keeping `teken cli doctor --strict` green at
|
|
67
|
+
26/26.
|
|
68
|
+
|
|
69
|
+
Both siblings ended green: 22 scaffold tests pass in each clone, `teken cli
|
|
70
|
+
doctor --strict` is 26/26 exit 0, Tests and Publish were both green on each
|
|
71
|
+
scaffold commit, `SONAR_TOKEN` was seeded from the operator's exported token,
|
|
72
|
+
and the `Protect main` ruleset is active on both.
|
|
73
|
+
|
|
74
|
+
`face-recognition-cli` needed a **resume**, though: GitHub's asynchronous
|
|
75
|
+
template copy did not land within `_wait_for_template`'s 60 s budget (30
|
|
76
|
+
attempts × 2 s), so `guild create --apply` aborted with "template content did
|
|
77
|
+
not populate". The abort was clean — repo created but empty, no clone, no
|
|
78
|
+
ledger write — and the copy completed a few minutes later. Because `guild
|
|
79
|
+
create` has no resume flag and `gh` here lacks the `delete_repo` scope, the
|
|
80
|
+
remaining steps (clone → transform → commit → push → `configure-repo.sh` →
|
|
81
|
+
ledger) were replayed through `_provision_template.apply` itself with only
|
|
82
|
+
the two already-completed runner calls stubbed (`gh repo view`'s
|
|
83
|
+
absence probe, `gh repo create`). Worth a follow-up upstream: either a longer
|
|
84
|
+
/ adaptive populate wait, or a `--resume` that skips creation when the target
|
|
85
|
+
repo already exists and is empty.
|
|
86
|
+
|
|
87
|
+
### Changed
|
|
88
|
+
|
|
89
|
+
### Fixed
|
|
90
|
+
|
|
91
|
+
## [0.20.3] - 2026-07-24
|
|
92
|
+
|
|
93
|
+
### Added
|
|
94
|
+
|
|
95
|
+
- **Ledger:** registered `media-cli` (public) as a downstream consumer of the
|
|
96
|
+
canonical skill set. Provisioned via `guild create --apply` from
|
|
97
|
+
`culture-agent-template`: repo/agent token `media-cli`, command `media`,
|
|
98
|
+
import package `media_cli`, dist `media-cli`, public, backend as scaffolded.
|
|
99
|
+
media-cli owns the local **media I/O device plane** — one inventory, one
|
|
100
|
+
stable identity scheme, and one routing/arbitration surface across every
|
|
101
|
+
attached media device (cameras, microphones, speakers, and other optional
|
|
102
|
+
inputs). Per the operator's decision it **composes** `webcam-cli` rather than
|
|
103
|
+
absorbing it: webcam-cli keeps camera and microphone *capture* as its own
|
|
104
|
+
lane, while media-cli adds the output side (speakers and audio sinks) and
|
|
105
|
+
additional optional inputs. The import package is **decoupled** from the
|
|
106
|
+
command (`--pkg media_cli` against command `media`), following the
|
|
107
|
+
`webcam-cli` and `discord-bot-cli` precedent — the short command stays
|
|
108
|
+
ergonomic while the package avoids squatting a generic `media` top-level
|
|
109
|
+
import (`colleague` already carries an internal `media` module). Command
|
|
110
|
+
(`media`) differs from the repo token, so the explain-catalog root alias
|
|
111
|
+
fired: `("media",): _ROOT` is present and `media explain media` resolves,
|
|
112
|
+
keeping `teken cli doctor --strict` green at 26/26.
|
|
113
|
+
|
|
114
|
+
Genesis was clean: the clone's 22 scaffold tests pass, Tests and Publish were
|
|
115
|
+
both green on the scaffold commit, `SONAR_TOKEN` was seeded from the
|
|
116
|
+
operator's exported value, and the `Protect main` ruleset is active. Build
|
|
117
|
+
brief filed as `agentculture/media-cli#1`, grounded in a live survey of the
|
|
118
|
+
operator's workstation — including direct evidence that both `/dev/videoN`
|
|
119
|
+
and ALSA card indices are unstable (they swapped independently across a
|
|
120
|
+
reboot, 29 hours after the `webcam-cli` survey, with no hardware change),
|
|
121
|
+
that raw ALSA over-counts outputs the same way `/dev/video*` over-counts
|
|
122
|
+
cameras, and that ALSA and PipeWire disagree about which devices exist. The
|
|
123
|
+
brief parks the two genuine unknowns rather than guessing them: how media-cli
|
|
124
|
+
depends on `webcam-cli` (which is still an unimplemented scaffold, so the
|
|
125
|
+
API does not exist yet), and exactly where the audio-output seam with
|
|
126
|
+
`harmonics-cli` falls.
|
|
127
|
+
|
|
8
128
|
## [0.20.2] - 2026-07-24
|
|
9
129
|
|
|
10
130
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: guild-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.21.0
|
|
4
4
|
Summary: guildmaster — an agent and CLI that manages skills for the AgentCulture mesh.
|
|
5
5
|
Project-URL: Homepage, https://github.com/agentculture/guildmaster
|
|
6
6
|
Project-URL: Issues, https://github.com/agentculture/guildmaster/issues
|
|
@@ -32,14 +32,14 @@ current by `guild overview --scope mesh`.
|
|
|
32
32
|
|
|
33
33
|
| Skill | Upstream | Downstream copies (known) | Notes |
|
|
34
34
|
|-------|----------|---------------------------|-------|
|
|
35
|
-
| `agent-config` | `guildmaster` (`.claude/skills/agent-config/`) | `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli` | Inventory variant backing `guild show` ([#12](https://github.com/agentculture/guildmaster/issues/12)); `show.sh` + `data/backend-fingerprints.yaml` vendored verbatim from steward, SKILL.md reframed from alignment-judgment to inventory + `type: command` added. **Forked from steward:** steward retains its own alignment-focused `agent-config` variant; the inventory variant is guildmaster's to supply. |
|
|
36
|
-
| `cicd` | `guildmaster` (`.claude/skills/cicd/`) — layered on `devex pr` (in `agentculture/devex`) | `afi-cli`, `devex` (adapted-thin delegate — owns `devex pr`; see [devex#53](https://github.com/agentculture/devex/pull/53)), `agtag`, `antoine`, `appsec`, `auntiepypi`, `cfafi` (still named `pr-review`), `code-lens-cli`, `culture` (still named `pr-review`), `devague`, `katvan`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `grant` (still named `pr-review`), `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli` | Thin delegate to `devex pr` for lint / open / read / reply / delta, plus guildmaster's `status` (SonarCloud quality gate + hotspots + unresolved-thread tally) and `await` (composes `devex pr read --wait` with `status`, non-zero exit on Sonar ERROR / unresolved threads) extensions. **Inverted case:** devex, as the `devex pr` upstream, vendors the skill adapted-thin — a `workflow.sh`-only pure delegate ([devex#53](https://github.com/agentculture/devex/pull/53)). Renamed from `pr-review` in steward 0.7.0; downstream copies may keep the old name on their own cadence. |
|
|
37
|
-
| `communicate` | `guildmaster` (`.claude/skills/communicate/`) | `afi-cli`, `devex` (identifier-only — vendored steward 0.11.0; scripts current as of 0.18.0), `agtag`, `antoine`, `appsec`, `auntiepypi`, `code-lens-cli`, `culture` (still named `coordinate`), `devague`, `katvan`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli` | Cross-repo + mesh communication: file issues / hand off briefs to sibling-repo agents (auto-signed), comment on existing issues, fetch issues to inline state into briefs, and send live messages to Culture mesh channels (unsigned — nick is the speaker). Renamed from `coordinate` in steward 0.8.0; absorbed `gh-issues` (as `fetch-issues.sh`) in 0.9.1. Issue I/O backed by `agtag` (>=0.1) since steward 0.11.0 — signature resolves from local `culture.yaml` (override via `--as`). |
|
|
38
|
-
| `doc-test-alignment` | `guildmaster` (`.claude/skills/doc-test-alignment/`) | `devague`, `lecodeur`, `lepenseur`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli` | Stub; real implementation TBD. `scripts/check.sh` exits not-yet-implemented today. |
|
|
39
|
-
| `pypi-maintainer` | `guildmaster` (`.claude/skills/pypi-maintainer/`) | `agtag`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli` | Switches a PyPI package install between pypi / test-pypi / local. Generalised from the original culture-specific `change-package`. `org` is intentionally not a consumer — it ships no PyPI distribution (site repo). |
|
|
40
|
-
| `run-tests` | `guildmaster` (`.claude/skills/run-tests/`) | `agtag`, `antoine`, `appsec`, `code-lens-cli`, `culture`, `culture-sonar-cli`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `grant`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli` | Coverage source resolves from `[tool.coverage.run]` in `pyproject.toml`, so the script is portable across siblings without modification. |
|
|
41
|
-
| `sonarclaude` | `guildmaster` (`.claude/skills/sonarclaude/`) | `antoine`, `appsec`, `code-lens-cli`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli` | SonarCloud API client. Project key resolves from `$SONAR_PROJECT` or `--project KEY`. |
|
|
42
|
-
| `version-bump` | `guildmaster` (`.claude/skills/version-bump/`) | `afi-cli`, `agtag`, `antoine`, `appsec`, `auntiepypi`, `cfafi`, `code-lens-cli`, `culture`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `grant`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli` | Pure Python, prepends a Keep-a-Changelog entry; no per-repo customization needed. |
|
|
35
|
+
| `agent-config` | `guildmaster` (`.claude/skills/agent-config/`) | `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli` | Inventory variant backing `guild show` ([#12](https://github.com/agentculture/guildmaster/issues/12)); `show.sh` + `data/backend-fingerprints.yaml` vendored verbatim from steward, SKILL.md reframed from alignment-judgment to inventory + `type: command` added. **Forked from steward:** steward retains its own alignment-focused `agent-config` variant; the inventory variant is guildmaster's to supply. |
|
|
36
|
+
| `cicd` | `guildmaster` (`.claude/skills/cicd/`) — layered on `devex pr` (in `agentculture/devex`) | `afi-cli`, `devex` (adapted-thin delegate — owns `devex pr`; see [devex#53](https://github.com/agentculture/devex/pull/53)), `agtag`, `antoine`, `appsec`, `auntiepypi`, `cfafi` (still named `pr-review`), `code-lens-cli`, `culture` (still named `pr-review`), `devague`, `katvan`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `grant` (still named `pr-review`), `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli` | Thin delegate to `devex pr` for lint / open / read / reply / delta, plus guildmaster's `status` (SonarCloud quality gate + hotspots + unresolved-thread tally) and `await` (composes `devex pr read --wait` with `status`, non-zero exit on Sonar ERROR / unresolved threads) extensions. **Inverted case:** devex, as the `devex pr` upstream, vendors the skill adapted-thin — a `workflow.sh`-only pure delegate ([devex#53](https://github.com/agentculture/devex/pull/53)). Renamed from `pr-review` in steward 0.7.0; downstream copies may keep the old name on their own cadence. |
|
|
37
|
+
| `communicate` | `guildmaster` (`.claude/skills/communicate/`) | `afi-cli`, `devex` (identifier-only — vendored steward 0.11.0; scripts current as of 0.18.0), `agtag`, `antoine`, `appsec`, `auntiepypi`, `code-lens-cli`, `culture` (still named `coordinate`), `devague`, `katvan`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli` | Cross-repo + mesh communication: file issues / hand off briefs to sibling-repo agents (auto-signed), comment on existing issues, fetch issues to inline state into briefs, and send live messages to Culture mesh channels (unsigned — nick is the speaker). Renamed from `coordinate` in steward 0.8.0; absorbed `gh-issues` (as `fetch-issues.sh`) in 0.9.1. Issue I/O backed by `agtag` (>=0.1) since steward 0.11.0 — signature resolves from local `culture.yaml` (override via `--as`). |
|
|
38
|
+
| `doc-test-alignment` | `guildmaster` (`.claude/skills/doc-test-alignment/`) | `devague`, `lecodeur`, `lepenseur`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli` | Stub; real implementation TBD. `scripts/check.sh` exits not-yet-implemented today. |
|
|
39
|
+
| `pypi-maintainer` | `guildmaster` (`.claude/skills/pypi-maintainer/`) | `agtag`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli` | Switches a PyPI package install between pypi / test-pypi / local. Generalised from the original culture-specific `change-package`. `org` is intentionally not a consumer — it ships no PyPI distribution (site repo). |
|
|
40
|
+
| `run-tests` | `guildmaster` (`.claude/skills/run-tests/`) | `agtag`, `antoine`, `appsec`, `code-lens-cli`, `culture`, `culture-sonar-cli`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `grant`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli` | Coverage source resolves from `[tool.coverage.run]` in `pyproject.toml`, so the script is portable across siblings without modification. |
|
|
41
|
+
| `sonarclaude` | `guildmaster` (`.claude/skills/sonarclaude/`) | `antoine`, `appsec`, `code-lens-cli`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli` | SonarCloud API client. Project key resolves from `$SONAR_PROJECT` or `--project KEY`. |
|
|
42
|
+
| `version-bump` | `guildmaster` (`.claude/skills/version-bump/`) | `afi-cli`, `agtag`, `antoine`, `appsec`, `auntiepypi`, `cfafi`, `code-lens-cli`, `culture`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `grant`, `telek`, `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli` | Pure Python, prepends a Keep-a-Changelog entry; no per-repo customization needed. |
|
|
43
43
|
|
|
44
44
|
> **How the downstream column is maintained.** The "Downstream copies (known)"
|
|
45
45
|
> entries are kept in sync with guildmaster's own drift detector:
|
|
@@ -86,9 +86,9 @@ harmless on `claude-code`. This is the only divergence from upstream.
|
|
|
86
86
|
|
|
87
87
|
| Skill | Origin | Downstream copies (known) | Notes |
|
|
88
88
|
|-------|--------|---------------------------|-------|
|
|
89
|
-
| `think` | `devague` (`agentculture/devague`, `../devague/.claude/skills/think/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli` | Operator for the **idea→spec** leg (announcement frame → capture/classify claims → interrogate with honesty conditions → park open vagueness → `export` once the frame converges). Renamed from `devague` in devague 0.4.0. **Divergence:** `type: command` added. Runtime dep: `uv tool install devague`. |
|
|
90
|
-
| `spec-to-plan` | `devague` (`agentculture/devague`, `../devague/.claude/skills/spec-to-plan/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli` | Operator for the **spec→plan** leg (`devague plan ...`): seed from a converged frame, cover every coverage target with acceptance-gated, acyclically-ordered tasks, park unknowns as risks, `export` once the plan converges. New in devague 0.4.0. **Divergence:** `type: command` added. Runtime dep: `uv tool install devague`. |
|
|
91
|
-
| `assign-to-workforce` | `devague` (`agentculture/devague`, `../devague/.claude/skills/assign-to-workforce/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli` | Operator for the **implementation** leg: reads `devague plan waves` (read-only) and fans out independent tasks to one agent per task per wave in isolated git worktrees, with main-agent TDD-gated merges. Three human gates: spec / split plan / final PR. The CLI stays non-orchestrating ([devague#20](https://github.com/agentculture/devague/issues/20)). New in devague 0.10.0. **Divergence:** `type: command` added. Runtime deps: `uv tool install devague`, `git worktree`, the vendored `cicd` skill (for gate-3 `devex pr open`). |
|
|
89
|
+
| `think` | `devague` (`agentculture/devague`, `../devague/.claude/skills/think/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli` | Operator for the **idea→spec** leg (announcement frame → capture/classify claims → interrogate with honesty conditions → park open vagueness → `export` once the frame converges). Renamed from `devague` in devague 0.4.0. **Divergence:** `type: command` added. Runtime dep: `uv tool install devague`. |
|
|
90
|
+
| `spec-to-plan` | `devague` (`agentculture/devague`, `../devague/.claude/skills/spec-to-plan/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli` | Operator for the **spec→plan** leg (`devague plan ...`): seed from a converged frame, cover every coverage target with acceptance-gated, acyclically-ordered tasks, park unknowns as risks, `export` once the plan converges. New in devague 0.4.0. **Divergence:** `type: command` added. Runtime dep: `uv tool install devague`. |
|
|
91
|
+
| `assign-to-workforce` | `devague` (`agentculture/devague`, `../devague/.claude/skills/assign-to-workforce/`) | — (broadcast pending), `agenda`, `dominion-breaker`, `colleague`, `jetson`, `reachy-mini-cli`, `jetson-ai-lab-cli`, `dgx-spark-cli`, `unsloth-cli`, `discord-bot-cli`, `arxivist`, `rtx-spark-cli`, `reachy-mini-mcp`, `tensor-cli`, `climate-cli`, `eidetic-cli`, `prove-cli`, `reduce-cli`, `refactor-cli`, `rollout-cli`, `coherence-cli`, `agent-lifecycle`, `reterminal`, `operator-cli`, `culture-core`, `ec2-cli`, `qodo-cli`, `knowledgebase-cli`, `cloudai-cli`, `ec2bedrock-cli`, `arm101-cli`, `amazing-hand-cli`, `agentculture-cli`, `data-refinery-cli`, `culture-tools`, `webglass-cli`, `jetson-orin-cli`, `jetson-thor-cli`, `drone-cli`, `fleet-cli`, `league-of-agents`, `harmonics-cli`, `french-cli`, `spanish-cli`, `league-of-agents-platform`, `org`, `learn-cli`, `jetson-arena`, `sensibo-cli`, `intern-cli`, `reachy-lobes`, `storybook-cli`, `shell-cli`, `embeddings-cli`, `evidence-cli`, `callsmith`, `events-cli`, `webcam-cli`, `media-cli`, `face-cli`, `face-recognition-cli` | Operator for the **implementation** leg: reads `devague plan waves` (read-only) and fans out independent tasks to one agent per task per wave in isolated git worktrees, with main-agent TDD-gated merges. Three human gates: spec / split plan / final PR. The CLI stays non-orchestrating ([devague#20](https://github.com/agentculture/devague/issues/20)). New in devague 0.10.0. **Divergence:** `type: command` added. Runtime deps: `uv tool install devague`, `git worktree`, the vendored `cicd` skill (for gate-3 `devex pr open`). |
|
|
92
92
|
|
|
93
93
|
Downstream is empty by design: these are still being introduced to the mesh.
|
|
94
94
|
`guild teach --new --skill <name> --to <repos>` frames them as *new* skills to
|
|
@@ -136,7 +136,7 @@ the CLI, the wrapper exits with a clear install hint rather than crashing.
|
|
|
136
136
|
|
|
137
137
|
| Skill | Origin | Downstream copies (known) | Notes |
|
|
138
138
|
|-------|--------|---------------------------|-------|
|
|
139
|
-
| `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` | 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. |
|
|
139
|
+
| `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` | 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. |
|
|
140
140
|
|
|
141
141
|
Downstream is empty by design — guildmaster is the first holder outside
|
|
142
142
|
colleague. `guild teach --new --skill outsource --to <repos>` frames it as a
|
|
File without changes
|
{guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/agent-config/data/backend-fingerprints.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{guild_cli-0.20.2 → guild_cli-0.21.0}/.claude/skills/pypi-maintainer/scripts/switch-source.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|