From 8b27159307aa9899f73b3d0b112cb6e7fbdfd2f9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 10:52:14 +0000 Subject: [PATCH] docs: document input-propagation fail-loud behavior and add Publishing section - Expand the "Input propagation" gotcha in catalog/agent-team/README.md to describe the concrete guard introduced in d688265: unresolved-literal detection, the exact state:blocked + comment written, and manual re-dispatch recovery steps. - Add ## Publishing section to README.md to fix a broken internal link in CONTRIBUTING.md (line 115 has pointed to README.md#publishing since the initial commit, but the section never existed). Co-Authored-By: Claude Sonnet 4.6 --- README.md | 10 ++++++++++ catalog/agent-team/README.md | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e18e51a..deb7094 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,16 @@ catalog/ `.lock.yml` files are marked `linguist-generated` and `merge=ours` in `.gitattributes` to prevent spurious merge conflicts. +## Publishing + +> Maintainers only — requires write access to this repo. + +1. **Bump the version** in `.claude-plugin/plugin.json`. Open a PR, get it merged to `main`. +2. **Create a GitHub release** tagged `vX.Y.Z` matching the new version. The self-hosted marketplace URL (`https://raw.githubusercontent.com/verkyyi/github-agent-runner/main/.claude-plugin/marketplace.json`) always resolves to the latest `main`, so there is no separate marketplace submission step — users who have already added the marketplace get the updated plugin on their next `/plugin update`. +3. **Update external listings** if the plugin description or category changed: + - [claude-plugins.dev](https://claude-plugins.dev) — submit the updated listing via the site's form. + - [ClaudePluginHub](https://claudepluginhub.com) — same. + ## Credits Built on two open-source projects from the [GitHub Next](https://githubnext.com) team: diff --git a/catalog/agent-team/README.md b/catalog/agent-team/README.md index 5490837..ed09b86 100644 --- a/catalog/agent-team/README.md +++ b/catalog/agent-team/README.md @@ -111,7 +111,7 @@ Then apply the OAuth token tweak to each `.lock.yml` per [`skills/install-workfl - **Concurrency**: each workflow uses `concurrency: group: agent-team-issue-${issue_number}` so only one role runs at a time per issue. - **Max iterations**: default 3 (reviewer kickback → implementer). The counter lives on the `iteration` input passed through the dispatch chain, bumped exclusively by the reviewer on kickback. -- **Input propagation**: planner / implementer / reviewer must fail loudly if required `workflow_dispatch` inputs are missing. Do not rely on label search or recent-activity inference as a fallback. +- **Input propagation**: planner / implementer / reviewer fail loudly if required `workflow_dispatch` inputs are missing, whitespace-only, or arrive as unresolved template literals (e.g. `${{ github.event.inputs.issue_number }}`). When the guard triggers: if `issue_number` is available, the agent adds `state:blocked` to the issue and posts `🛑 agent-team: workflow_dispatch inputs were not propagated. Re-dispatch with valid inputs.`; if `issue_number` is itself absent, the agent calls `missing_data` / `report_incomplete` and stops. **Recovery**: open the upstream dispatch step in the Actions tab to find the actual values, then re-dispatch manually — `gh workflow run .lock.yml -f issue_number= -f iteration=`. Never infer missing inputs from labels or recent activity; that masks the root cause. - **Non-UI only**: no screenshot capture. Reviewer validates via tests/CI status + reading the diff. - **Cost**: a single task can easily spend 4× the tokens of a monolithic workflow. Set `timeout-minutes` conservatively and monitor the first few runs. - **No auto-merge**: the reviewer approves but never merges. Humans merge.