guild-cli 0.7.1__tar.gz → 0.7.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. {guild_cli-0.7.1 → guild_cli-0.7.3}/CHANGELOG.md +40 -0
  2. {guild_cli-0.7.1 → guild_cli-0.7.3}/PKG-INFO +1 -1
  3. {guild_cli-0.7.1 → guild_cli-0.7.3}/docs/skill-sources.md +14 -8
  4. {guild_cli-0.7.1 → guild_cli-0.7.3}/pyproject.toml +8 -1
  5. {guild_cli-0.7.1 → guild_cli-0.7.3}/uv.lock +1 -1
  6. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/agent-config/SKILL.md +0 -0
  7. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/agent-config/data/backend-fingerprints.yaml +0 -0
  8. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/agent-config/scripts/show.sh +0 -0
  9. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/assign-to-workforce/SKILL.md +0 -0
  10. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh +0 -0
  11. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/cicd/SKILL.md +0 -0
  12. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/cicd/scripts/_resolve-nick.sh +0 -0
  13. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/cicd/scripts/portability-lint.sh +0 -0
  14. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/cicd/scripts/pr-reply.sh +0 -0
  15. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/cicd/scripts/pr-status.sh +0 -0
  16. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/cicd/scripts/workflow.sh +0 -0
  17. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/communicate/SKILL.md +0 -0
  18. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/communicate/scripts/fetch-issues.sh +0 -0
  19. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/communicate/scripts/mesh-message.sh +0 -0
  20. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/communicate/scripts/post-comment.sh +0 -0
  21. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/communicate/scripts/post-issue.sh +0 -0
  22. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/communicate/scripts/templates/skill-new-brief.md +0 -0
  23. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/communicate/scripts/templates/skill-update-brief.md +0 -0
  24. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/doc-test-alignment/SKILL.md +0 -0
  25. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/doc-test-alignment/scripts/check.sh +0 -0
  26. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/guild/SKILL.md +0 -0
  27. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/guild/scripts/configure-repo.sh +0 -0
  28. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/guild/scripts/create.sh +0 -0
  29. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/guild/scripts/overview.sh +0 -0
  30. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/onboard/SKILL.md +0 -0
  31. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/onboard/scripts/onboard.sh +0 -0
  32. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/pypi-maintainer/SKILL.md +0 -0
  33. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/pypi-maintainer/scripts/switch-source.sh +0 -0
  34. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/run-tests/SKILL.md +0 -0
  35. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/run-tests/scripts/test.sh +0 -0
  36. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/sonarclaude/SKILL.md +0 -0
  37. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/sonarclaude/scripts/sonar.sh +0 -0
  38. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/spec-to-plan/SKILL.md +0 -0
  39. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh +0 -0
  40. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/teach/SKILL.md +0 -0
  41. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/teach/scripts/teach.sh +0 -0
  42. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/think/SKILL.md +0 -0
  43. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/think/scripts/think.sh +0 -0
  44. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/version-bump/SKILL.md +0 -0
  45. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills/version-bump/scripts/bump.py +0 -0
  46. {guild_cli-0.7.1 → guild_cli-0.7.3}/.claude/skills.local.yaml.example +0 -0
  47. {guild_cli-0.7.1 → guild_cli-0.7.3}/.devague/frames/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
  48. {guild_cli-0.7.1 → guild_cli-0.7.3}/.devague/plans/guildmaster-ships-teach-and-onboard-two-agent-firs.json +0 -0
  49. {guild_cli-0.7.1 → guild_cli-0.7.3}/.flake8 +0 -0
  50. {guild_cli-0.7.1 → guild_cli-0.7.3}/.github/workflows/publish.yml +0 -0
  51. {guild_cli-0.7.1 → guild_cli-0.7.3}/.github/workflows/tests.yml +0 -0
  52. {guild_cli-0.7.1 → guild_cli-0.7.3}/.gitignore +0 -0
  53. {guild_cli-0.7.1 → guild_cli-0.7.3}/.markdownlint-cli2.yaml +0 -0
  54. {guild_cli-0.7.1 → guild_cli-0.7.3}/CLAUDE.md +0 -0
  55. {guild_cli-0.7.1 → guild_cli-0.7.3}/LICENSE +0 -0
  56. {guild_cli-0.7.1 → guild_cli-0.7.3}/README.md +0 -0
  57. {guild_cli-0.7.1 → guild_cli-0.7.3}/culture.yaml +0 -0
  58. {guild_cli-0.7.1 → guild_cli-0.7.3}/docs/cutover.md +0 -0
  59. {guild_cli-0.7.1 → guild_cli-0.7.3}/docs/plans/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
  60. {guild_cli-0.7.1 → guild_cli-0.7.3}/docs/specs/2026-05-24-guildmaster-ships-teach-and-onboard-two-agent-firs.md +0 -0
  61. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/__init__.py +0 -0
  62. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/__main__.py +0 -0
  63. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/__init__.py +0 -0
  64. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_commands/__init__.py +0 -0
  65. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_commands/_broadcast.py +0 -0
  66. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_commands/_provision_template.py +0 -0
  67. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_commands/create.py +0 -0
  68. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_commands/explain.py +0 -0
  69. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_commands/learn.py +0 -0
  70. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_commands/onboard.py +0 -0
  71. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_commands/overview.py +0 -0
  72. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_commands/show.py +0 -0
  73. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_commands/teach.py +0 -0
  74. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_commands/whoami.py +0 -0
  75. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_errors.py +0 -0
  76. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_output.py +0 -0
  77. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/cli/_repo.py +0 -0
  78. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/scaffold/__init__.py +0 -0
  79. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/scaffold/instantiate.py +0 -0
  80. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/skills/__init__.py +0 -0
  81. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/skills/identity.py +0 -0
  82. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/skills/ledger.py +0 -0
  83. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/skills/render.py +0 -0
  84. {guild_cli-0.7.1 → guild_cli-0.7.3}/guild/skills/sources.py +0 -0
  85. {guild_cli-0.7.1 → guild_cli-0.7.3}/sonar-project.properties +0 -0
  86. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/__init__.py +0 -0
  87. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_broadcast_post.py +0 -0
  88. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_cli.py +0 -0
  89. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_cli_create.py +0 -0
  90. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_cli_explain.py +0 -0
  91. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_cli_learn.py +0 -0
  92. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_cli_onboard.py +0 -0
  93. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_cli_overview.py +0 -0
  94. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_cli_show.py +0 -0
  95. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_cli_teach.py +0 -0
  96. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_cli_whoami.py +0 -0
  97. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_scaffold_instantiate.py +0 -0
  98. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_skills_convention.py +0 -0
  99. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_skills_identity.py +0 -0
  100. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_skills_ledger.py +0 -0
  101. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_skills_render.py +0 -0
  102. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_skills_sources.py +0 -0
  103. {guild_cli-0.7.1 → guild_cli-0.7.3}/tests/test_version_fallback.py +0 -0
@@ -5,6 +5,46 @@ 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.7.3] - 2026-05-29
9
+
10
+ ### Added
11
+
12
+ ### Changed
13
+
14
+ ### Fixed
15
+
16
+ - **CI: make SonarCloud coverage import install-mode-independent.** Added
17
+ `relative_files = true` to `[tool.coverage.run]` so `coverage.xml` records
18
+ repo-relative paths (`<source>guild</source>` + `cli/foo.py`) that the Sonar
19
+ scanner can match against `sonar.sources=guild`. Previously coverage recorded
20
+ the absolute, machine-specific package path (`/…/guildmaster/guild`); it
21
+ mapped only because `guild` is installed editable in CI — a non-editable or
22
+ `.venv` install would have silently yielded "0.0% Coverage on New Code".
23
+ Mirrors the CI-based SonarCloud setup proven in the sibling `devex` repo.
24
+
25
+ ## [0.7.2] - 2026-05-29
26
+
27
+ ### Added
28
+
29
+ ### Changed
30
+
31
+ - **Ledger: `shushu` → `grant` rename.** `agentculture/shushu` was renamed to
32
+ `agentculture/grant` ("agent-first secrets manager") on GitHub; the old name
33
+ redirects. Updated `docs/skill-sources.md` to record `grant` as the live
34
+ downstream consumer: renamed `shushu` → `grant` in the `run-tests` and
35
+ `version-bump` Downstream columns, added `grant` to the `cicd` column with a
36
+ "still named `pr-review`" caveat (its copy is the pre-agex `cicd`), and
37
+ refreshed the maintenance notes (old-skill-dir-name class, the
38
+ no-`culture.yaml` class — `grant`'s repo has no committed `culture.yaml` yet —
39
+ and a `shushu` → `grant` rename note mirroring `agentpypi` → `auntiepypi`).
40
+ Brings `guild teach`/`overview` framing onto the current name. Pairs with
41
+ [grant#18](https://github.com/agentculture/grant/issues/18), the
42
+ `guild teach --all --to grant` issue that brings `grant` to the full canonical
43
+ kit (3 resyncs — `cicd`/`run-tests`/`version-bump` — plus 8 new skills); the
44
+ remaining 8 register as downstream once `grant` applies the resync.
45
+
46
+ ### Fixed
47
+
8
48
  ## [0.7.1] - 2026-05-29
9
49
 
10
50
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: guild-cli
3
- Version: 0.7.1
3
+ Version: 0.7.3
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
@@ -33,13 +33,13 @@ current by `guild overview --scope mesh`.
33
33
  | Skill | Upstream | Downstream copies (known) | Notes |
34
34
  |-------|----------|---------------------------|-------|
35
35
  | `agent-config` | `guildmaster` (`.claude/skills/agent-config/`) | `agenda`, `dominion-breaker`, `convertible`, `jetson` | Inventory variant backing `guild show` ([#12](https://github.com/agentculture/guildmaster/issues/12)); `show.sh` + `data/backend-fingerprints.yaml` vendored verbatim from steward, SKILL.md reframed from alignment-judgment to inventory + `type: command` added. **Forked from steward:** steward retains its own alignment-focused `agent-config` variant; the inventory variant is guildmaster's to supply. |
36
- | `cicd` | `guildmaster` (`.claude/skills/cicd/`) — layered on `agex pr` (in `agentculture/agex-cli`) | `afi-cli`, `agex-cli` (adapted-thin delegate — owns `agex pr`; see [agex-cli#53](https://github.com/agentculture/agex-cli/pull/53)), `agtag`, `antoine`, `appsec`, `auntiepypi`, `cfafi` (still named `pr-review`), `code-lens-cli`, `culture` (still named `pr-review`), `devague`, `katvan`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson` | Thin delegate to `agex pr` for lint / open / read / reply / delta, plus guildmaster's `status` (SonarCloud quality gate + hotspots + unresolved-thread tally) and `await` (composes `agex pr read --wait` with `status`, non-zero exit on Sonar ERROR / unresolved threads) extensions. **Inverted case:** agex-cli, as the `agex pr` upstream, vendors the skill adapted-thin — a `workflow.sh`-only pure delegate ([agex-cli#53](https://github.com/agentculture/agex-cli/pull/53)). Renamed from `pr-review` in steward 0.7.0; downstream copies may keep the old name on their own cadence. |
36
+ | `cicd` | `guildmaster` (`.claude/skills/cicd/`) — layered on `agex pr` (in `agentculture/agex-cli`) | `afi-cli`, `agex-cli` (adapted-thin delegate — owns `agex pr`; see [agex-cli#53](https://github.com/agentculture/agex-cli/pull/53)), `agtag`, `antoine`, `appsec`, `auntiepypi`, `cfafi` (still named `pr-review`), `code-lens-cli`, `culture` (still named `pr-review`), `devague`, `katvan`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson`, `grant` (still named `pr-review`) | Thin delegate to `agex pr` for lint / open / read / reply / delta, plus guildmaster's `status` (SonarCloud quality gate + hotspots + unresolved-thread tally) and `await` (composes `agex pr read --wait` with `status`, non-zero exit on Sonar ERROR / unresolved threads) extensions. **Inverted case:** agex-cli, as the `agex pr` upstream, vendors the skill adapted-thin — a `workflow.sh`-only pure delegate ([agex-cli#53](https://github.com/agentculture/agex-cli/pull/53)). Renamed from `pr-review` in steward 0.7.0; downstream copies may keep the old name on their own cadence. |
37
37
  | `communicate` | `guildmaster` (`.claude/skills/communicate/`) | `afi-cli`, `agex-cli` (identifier-only — vendored steward 0.11.0; scripts current as of 0.18.0), `agtag`, `antoine`, `appsec`, `auntiepypi`, `code-lens-cli`, `culture` (still named `coordinate`), `devague`, `katvan`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson` | Cross-repo + mesh communication: file issues / hand off briefs to sibling-repo agents (auto-signed), comment on existing issues, fetch issues to inline state into briefs, and send live messages to Culture mesh channels (unsigned — nick is the speaker). Renamed from `coordinate` in steward 0.8.0; absorbed `gh-issues` (as `fetch-issues.sh`) in 0.9.1. Issue I/O backed by `agtag` (>=0.1) since steward 0.11.0 — signature resolves from local `culture.yaml` (override via `--as`). |
38
38
  | `doc-test-alignment` | `guildmaster` (`.claude/skills/doc-test-alignment/`) | `devague`, `lecodeur`, `lepenseur`, `agenda`, `dominion-breaker`, `convertible`, `jetson` | Stub; real implementation TBD. `scripts/check.sh` exits not-yet-implemented today. |
39
39
  | `pypi-maintainer` | `guildmaster` (`.claude/skills/pypi-maintainer/`) | `agtag`, `agenda`, `dominion-breaker`, `convertible`, `jetson` | Switches a PyPI package install between pypi / test-pypi / local. Generalised from the original culture-specific `change-package`. |
40
- | `run-tests` | `guildmaster` (`.claude/skills/run-tests/`) | `agtag`, `antoine`, `appsec`, `code-lens-cli`, `culture`, `culture-sonar-cli`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `shushu`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson` | Coverage source resolves from `[tool.coverage.run]` in `pyproject.toml`, so the script is portable across siblings without modification. |
40
+ | `run-tests` | `guildmaster` (`.claude/skills/run-tests/`) | `agtag`, `antoine`, `appsec`, `code-lens-cli`, `culture`, `culture-sonar-cli`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `grant`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson` | Coverage source resolves from `[tool.coverage.run]` in `pyproject.toml`, so the script is portable across siblings without modification. |
41
41
  | `sonarclaude` | `guildmaster` (`.claude/skills/sonarclaude/`) | `antoine`, `appsec`, `code-lens-cli`, `devague`, `lecodeur`, `lepenseur`, `seer-cli`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson` | 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`, `shushu`, `telek`, `agenda`, `dominion-breaker`, `convertible`, `jetson` | Pure Python, prepends a Keep-a-Changelog entry; no per-repo customization needed. |
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`, `convertible`, `jetson` | 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:
@@ -49,14 +49,20 @@ current by `guild overview --scope mesh`.
49
49
  > (deliberate follow-up, not oversight):
50
50
  >
51
51
  > - **No `culture.yaml`** (invisible to the detector): `tipalti`,
52
- > `cultureagent`, `cultureflare`, `irc-lens`, `agentirc`, `zehut`.
52
+ > `cultureagent`, `cultureflare`, `irc-lens`, `agentirc`, `zehut`, `grant`
53
+ > (renamed from `shushu`; the repo has no committed `culture.yaml` yet, so
54
+ > `--scope mesh` cannot see it until one is added).
53
55
  > - **Old skill-dir name** (`pr-review` / `coordinate`, which the detector
54
- > doesn't canonicalize): `daria`, `shushu`, `culture-sonar-cli` vendor `cicd`
55
- > under `pr-review`. `cfafi` / `culture` are already listed with a "still
56
- > named `pr-review`/`coordinate`" note.
56
+ > doesn't canonicalize): `daria`, `culture-sonar-cli` vendor `cicd`
57
+ > under `pr-review`. `cfafi` / `culture` / `grant` are already listed with a
58
+ > "still named `pr-review`/`coordinate`" note.
57
59
  >
58
60
  > `agentpypi` was **renamed to `auntiepypi`** on GitHub (the old name redirects);
59
- > `auntiepypi` is the live consumer recorded above.
61
+ > `auntiepypi` is the live consumer recorded above. Likewise `shushu` was
62
+ > **renamed to `grant`** on GitHub (the old name redirects); `grant` is the live
63
+ > consumer recorded above. guildmaster is bringing `grant` to the full canonical
64
+ > kit (`guild teach --all --to grant`); the remaining canonical skills register
65
+ > as downstream once `grant` applies the resync issue.
60
66
 
61
67
  ## Inbound workflow skills (origin = `devague`, re-broadcast by `guildmaster`)
62
68
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "guild-cli"
3
- version = "0.7.1"
3
+ version = "0.7.3"
4
4
  description = "guildmaster — an agent and CLI that manages skills for the AgentCulture mesh."
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -45,6 +45,13 @@ dev = [
45
45
  [tool.coverage.run]
46
46
  source = ["guild"]
47
47
  omit = ["guild/__pycache__/*"]
48
+ # Emit repo-relative paths in coverage.xml so SonarCloud maps them onto
49
+ # sonar.sources=guild. Without this, coverage records absolute (or .venv)
50
+ # file paths that the scanner can't match against the indexed sources, so the
51
+ # import silently yields "0.0% Coverage on New Code" even when tests cover the
52
+ # change. (Today the editable install masks this; relative_files makes it
53
+ # install-mode-independent.) Mirrors devex's CI-based SonarCloud setup.
54
+ relative_files = true
48
55
 
49
56
  [tool.coverage.report]
50
57
  fail_under = 60
@@ -179,7 +179,7 @@ wheels = [
179
179
 
180
180
  [[package]]
181
181
  name = "guild-cli"
182
- version = "0.7.1"
182
+ version = "0.7.3"
183
183
  source = { editable = "." }
184
184
  dependencies = [
185
185
  { name = "pyyaml" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes