From 20e104efadd1fea62552bcc29ea3559fd41f9502 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 11:36:06 +0000 Subject: [PATCH] docs: fix stale CONTRIBUTING.md and add missing Publishing section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace "no automated test harness" claim with accurate description of the three-tier test suite and a quick-start command table - Correct workflow count from "seven" to "six" and name each workflow explicitly to distinguish gh-aw-managed from standard YAML - Add README.md#publishing section (maintainer steps for bumping version, tagging, release, and updating plugin registries) — previously linked from CONTRIBUTING.md but absent Co-Authored-By: Claude Sonnet 4.6 --- CONTRIBUTING.md | 17 +++++++++++++++-- README.md | 8 ++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1c2721e..3634dd3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -74,7 +74,20 @@ Edit the relevant `SKILL.md` or data file. Test by running the skill locally wit ## Testing -There is no automated test harness for skills — they are instruction sets interpreted by Claude Code, not code with unit tests. The validation steps are: +The repo ships a three-tier test suite. See [`tests/README.md`](tests/README.md) for the full breakdown. Before opening a PR, run the fast tiers at minimum: + +```bash +./tests/run-tests.sh # tier 1 + tier 2 (~4–5 min) +./tests/run-tests.sh --verbose # with per-assertion output +``` + +| Tier | What it tests | Speed | +|---|---|---| +| 2 | `test-invariants.sh` — grep/filesystem invariants; no Claude invocation | <1s | +| 1 | `test-*.sh` — Claude headless invocations that verify each skill's instructions are coherent | ~4–5 min total | +| 3 | `test-e2e*.sh` — real pipeline runs against the live playground; run manually before releases | 5–35 min | + +Additional manual checks: 1. **Load the plugin**: `claude --plugin-dir .` — confirm no startup errors. 2. **Run the skill manually**: invoke `/discover-workflows` or `/install-workflow` and walk through the flow. @@ -85,7 +98,7 @@ Never test by committing untested changes to `main`. The installed workflows run ## Workflow files -The `.github/workflows/` directory contains seven dogfooded workflows. These are managed by `gh aw` — do not edit `.lock.yml` files by hand except to apply the OAuth tweak described in [skills/install-workflow/auth.md](skills/install-workflow/auth.md). +The `.github/workflows/` directory contains six workflows. Three are agentic workflows managed by `gh aw` (`daily-repo-status`, `update-docs`, `weekly-research`) — do not edit their `.lock.yml` files by hand except to apply the OAuth tweak described in [skills/install-workflow/auth.md](skills/install-workflow/auth.md). The other three (`agentics-maintenance`, `ci-tests`, `copilot-setup-steps`) are standard GitHub Actions YAML. If a workflow `.md` source needs changing: diff --git a/README.md b/README.md index e18e51a..d7a922e 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,14 @@ catalog/ `.lock.yml` files are marked `linguist-generated` and `merge=ours` in `.gitattributes` to prevent spurious merge conflicts. +## Publishing (maintainers only) + +1. Bump `version` in `.claude-plugin/plugin.json` and `.claude-plugin/marketplace.json` (semver). +2. Commit, push, and tag: `git tag v && git push origin v`. +3. Create a GitHub release from the tag: `gh release create v --generate-notes`. +4. The self-hosted marketplace listing at `https://raw.githubusercontent.com/verkyyi/github-agent-runner/main/.claude-plugin/marketplace.json` updates automatically on push — no extra step needed for users who pin to `main`. +5. Submit to the plugin registries where the plugin is listed ([claude-plugins.dev](https://claude-plugins.dev), [ClaudePluginHub](https://claudepluginhub.com)) per each registry's update/submission flow. + ## Credits Built on two open-source projects from the [GitHub Next](https://githubnext.com) team: