feat(agency): centralize Claude Code plugin and self-contained marketplace#1102
feat(agency): centralize Claude Code plugin and self-contained marketplace#1102Copilot wants to merge 8 commits into
Conversation
bb5fc49 to
d63fe2e
Compare
|
/rust-review |
|
✅ Rust PR Reviewer completed successfully! |
🔍 Rust PR ReviewSummary: Looks good overall — clean architecture and solid error handling. One concrete bug in the CLI help text. Findings🐛 Bugs / Logic Issues
|
Address Rust PR Reviewer feedback on #1102: - `--agency` help text said `.github/ado-aw` (stale); the scaffold writes to `agency/plugins/ado-aw` plus repo-root marketplace catalogs. - Extend test_init_agency_matches_canonical_source to verify all 13 embedded plugin files byte-for-byte (was 9), covering the previously-unchecked update/debug/manage-lifecycle/audit-build skills. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
…place
Promote the embedded `--agency` templates into a live, checked-in plugin at
`agency/plugins/ado-aw/` as the single source of truth, and implement the full
Agency marketplace spec: plugin.json, .mcp.json wiring the read-only
`ado-aw mcp-author` server, agency.json governance (external `source` pointer,
org-only identity, no PII), README, an agents/ado-aw.md dispatcher, six
skills/*/SKILL.md playbooks, and scripts/doctor.{sh,ps1} prerequisite checks.
Make the repository itself an installable marketplace: add repo-root catalogs
`.claude-plugin/marketplace.json` (Claude) and `.github/plugin/marketplace.json`
(Copilot) that list the plugin via `source: "./agency/plugins/ado-aw"`, so
`/plugin marketplace add <repo>` detects it. `ado-aw init --agency` scaffolds the
plugin under `agency/plugins/ado-aw/` plus those root catalogs.
Align terminology on the canonical brand "Azure DevOps Agentic Workflows": the
authored markdown spec is an "agentic workflow"; "pipeline" is reserved for the
compiled ADO execution artifact. Swept the init-generated output, root catalogs,
README, AGENTS.md title/prose, and user-facing CLI help strings.
Versions stay lock-step with the compiler via release-please `extra-files`: the
plugin manifest, both root catalogs (metadata + plugin entry), and the pinned
prompt URLs in the agent + create/update/debug skills bump on each release.
`init` embeds the canonical files via include_str! and writes them verbatim; the
duplicate src/data/agency-plugin tree is removed. Parity tests assert the
scaffold matches the canonical source byte-for-byte. .gitattributes forces LF
under agency/plugins/** and the root catalogs.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Address Rust PR Reviewer feedback on #1102: - `--agency` help text said `.github/ado-aw` (stale); the scaffold writes to `agency/plugins/ado-aw` plus repo-root marketplace catalogs. - Extend test_init_agency_matches_canonical_source to verify all 13 embedded plugin files byte-for-byte (was 9), covering the previously-unchecked update/debug/manage-lifecycle/audit-build skills. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add docs/agency-plugin.md (canonical layout, skills, mcp-author wiring, self-contained root marketplace catalogs, init --agency scaffolding, release-please version-locking, shared-marketplace listing) and index it from AGENTS.md, matching the repo's one-page-per-concept docs convention. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The 0.37.0->0.38.0 release landed on main while this PR was open, bumping Cargo.toml but not the not-yet-merged plugin files. Resync the literal versions (plugin.json, both root catalogs, and the pinned prompt URLs in the agent + create/update/debug skills) so the plugin matches the compiler. release-please extra-files keeps them in lock-step on future releases. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1e0fcf3 to
d4b2219
Compare
|
/rust-review |
|
✅ Rust PR Reviewer completed successfully! |
🔍 Rust PR ReviewSummary: Looks good overall — clean design, solid tests — but there's one user-visible bug to fix before merging. Findings🐛 Bugs / Logic Issues
|
Round 2 review (run 28016634353) on #1102: - doctor.sh not executable: scaffolded copies (tokio::fs::write) and the checked-in file (git 100644) were non-exec, so `./scripts/doctor.sh` would fail with Permission denied. Mark the canonical file 100755 and document the cross-platform-safe `bash ./scripts/doctor.sh` invocation in the plugin README + dispatcher agent. - tests/init_tests.rs: restore the truncated first line of the test_init_force_flag_is_advertised_in_help doc comment. - src/init.rs: replace the silent `if let Some(parent)` skip with an explicit parent-directory resolution + error, so a missing parent fails loudly. - release-please: track the checked-in .github/agents/ado-aw.agent.md for version bumps (add x-release-please-version markers to src/data/init-agent.md prompt URLs + list it in extra-files) so it no longer drifts on each release. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/rust-review |
|
✅ Rust PR Reviewer completed successfully! |
🔍 Rust PR ReviewSummary: Mostly looks good — one real bug, one minor suggestion. Findings🐛 Bugs / Logic Issues
|
…ion tracking Follow-up to the Rust PR review on #1102: - src/init.rs: after writing each plugin file, set mode 0755 on `.sh` files (`#[cfg(unix)]`, mirroring src/compile/common.rs) so the scaffolded doctor.sh is executable and the documented `./scripts/doctor.sh` works — `tokio::fs::write` otherwise leaves it 0644. - tests/init_tests.rs: add a `#[cfg(unix)]` assertion that the scaffolded doctor.sh carries the executable bit, guarding this going forward. - docs/agency-plugin.md: add a maintainer note spelling out that the compile-and-validate/manage-lifecycle/audit-build skills are intentionally omitted from release-please `extra-files`, and that adding a version-pinned URL to any of them requires both an x-release-please-version marker and an extra-files entry. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
What & why
ado-aw init --agencypreviously emitted a duplicated, hard-to-test plugintemplate tree (
src/data/agency-plugin/) into.github/ado-aw, and the resultwas not detectable by the Agency marketplace. This PR centralizes the plugin as
a checked-in single source of truth, makes the repo itself an installable
marketplace, implements the full Agency plugin spec, and aligns terminology on
the canonical brand Azure DevOps Agentic Workflows.
Key changes
agency/plugins/ado-aw/(single source of truth):.claude-plugin/plugin.json,.mcp.json(wires the read-onlyado-aw mcp-authorserver),agency.json(governance + externalsourcepointer, org-only identity, no PII),
README.md, anagents/ado-aw.mddispatcher, six
skills/*/SKILL.mdplaybooks (create/update/debug-workflow,compile-and-validate, manage-lifecycle, audit-build), and
scripts/doctor.{sh,ps1}prerequisite checks..claude-plugin/marketplace.json(Claude) and.github/plugin/marketplace.json(Copilot) list the plugin via
source: "./agency/plugins/ado-aw", so/plugin marketplace add <repo>detects it.--agency:initnow embeds the canonical files viainclude_str!and writes them verbatim (plugin under
agency/plugins/ado-aw/+ rootcatalogs); the duplicate
src/data/agency-plugin/tree is removed.extra-files: plugin manifest,both root catalogs (metadata + plugin entry), and the pinned prompt URLs in the
agent + create/update/debug skills bump on every release.
spec is an agentic workflow; pipeline = the compiled ADO execution
artifact) across init-generated output, root catalogs, README, AGENTS.md, and
user-facing CLI help.
Tests
init --agencyoutput matches the canonical sourcebyte-for-byte; root-catalog existence +
sourceassertions; updated agent-titleassertions.
cargo build, fullcargo test(2063 lib + integration, 0 failed),cargo clippy --all-targets --all-features, andshellcheck doctor.shall green.Follow-up (separate)
To list in the shared Agency marketplace, add a one-line
extPluginSourcesentryto
agency-microsoft/playground'smarketplace-config.json:"https://github.com/githubnext/ado-aw.git": ["agency/plugins/ado-aw"].