From 35aba7af350e9b27697c60c87385ee230de8ebdf Mon Sep 17 00:00:00 2001 From: 1fanwang <1fannnw@gmail.com> Date: Tue, 30 Jun 2026 16:52:14 -0700 Subject: [PATCH] feat: add GitHub Copilot CLI install support Copilot CLI discovers skills under .github/skills/ and installs plugins from a .github/plugin/marketplace.json manifest. Neither existed here, so the skill could only be added to Copilot CLI by hand. Add both Copilot manifests plus a .github/skills/humanizer/SKILL.md symlink to the root SKILL.md, so the same skill is exposed to Copilot CLI without a second copy that could drift. Document the Copilot CLI install path in the README and extend the AGENTS.md version-bump contract to cover the new plugin manifest. --- .github/plugin/marketplace.json | 18 ++++++++++++++++++ .github/plugin/plugin.json | 14 ++++++++++++++ .github/skills/humanizer/SKILL.md | 1 + AGENTS.md | 5 ++++- README.md | 17 +++++++++++++++++ 5 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 .github/plugin/marketplace.json create mode 100644 .github/plugin/plugin.json create mode 120000 .github/skills/humanizer/SKILL.md diff --git a/.github/plugin/marketplace.json b/.github/plugin/marketplace.json new file mode 100644 index 00000000..04eed98d --- /dev/null +++ b/.github/plugin/marketplace.json @@ -0,0 +1,18 @@ +{ + "name": "humanizer", + "description": "The humanizer skill, installable as a GitHub Copilot CLI plugin.", + "owner": { + "name": "blader", + "url": "https://github.com/blader" + }, + "plugins": [ + { + "name": "humanizer", + "description": "Remove signs of AI-generated writing from text, making it sound more natural and human. Based on Wikipedia's \"Signs of AI writing\" guide.", + "source": "./", + "category": "writing", + "tags": ["writing", "editing", "ai-detection", "humanize", "prose", "style"], + "skills": ".github/skills" + } + ] +} diff --git a/.github/plugin/plugin.json b/.github/plugin/plugin.json new file mode 100644 index 00000000..740f91b6 --- /dev/null +++ b/.github/plugin/plugin.json @@ -0,0 +1,14 @@ +{ + "name": "humanizer", + "description": "Remove signs of AI-generated writing from text, making it sound more natural and human. Based on Wikipedia's \"Signs of AI writing\" guide.", + "version": "2.8.2", + "author": { + "name": "blader", + "url": "https://github.com/blader" + }, + "homepage": "https://github.com/blader/humanizer", + "repository": "https://github.com/blader/humanizer", + "license": "MIT", + "keywords": ["writing", "editing", "ai-detection", "humanize", "prose", "style"], + "skills": ".github/skills" +} diff --git a/.github/skills/humanizer/SKILL.md b/.github/skills/humanizer/SKILL.md new file mode 120000 index 00000000..779c737d --- /dev/null +++ b/.github/skills/humanizer/SKILL.md @@ -0,0 +1 @@ +../../../SKILL.md \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index 60d7bdb0..f6f08197 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -12,13 +12,16 @@ A portable agent skill implemented entirely as Markdown. The runtime artifact is - `README.md` — for humans: installation, usage, a summary table of the patterns, and a version history. - `.claude-plugin/plugin.json` — optional Claude Code plugin manifest. - `.claude-plugin/marketplace.json` — optional single-repo marketplace entry so `/plugin marketplace add blader/humanizer` works. +- `.github/plugin/plugin.json` — optional GitHub Copilot CLI plugin manifest. +- `.github/plugin/marketplace.json` — optional single-repo marketplace entry so `/plugin marketplace add blader/humanizer` works in Copilot CLI. +- `.github/skills/humanizer/SKILL.md` — symlink to the root `SKILL.md`. Copilot CLI discovers skills under `.github/skills/`, so this exposes the skill there without a second copy; the symlink keeps `SKILL.md` the single source of truth. Leave it as a symlink (don't replace it with a copy). ## The maintenance contract `SKILL.md` and `README.md` must stay in sync. When you change behavior or content: - **Patterns:** the skill currently defines **33 numbered patterns**. If you add, remove, or renumber any, update the README pattern table, its "N Patterns Detected" heading, and every cross-reference in the same change. Keep numbering stable unless you are deliberately renumbering. -- **Version:** `SKILL.md` frontmatter has a `version:` field, `README.md` has a "Version History" section, and `.claude-plugin/plugin.json` has a `version` field. Bump them together so package metadata matches the skill. (`marketplace.json` intentionally omits a version so `plugin.json` stays the package source of truth.) +- **Version:** `SKILL.md` frontmatter has a `version:` field, `README.md` has a "Version History" section, and both `.claude-plugin/plugin.json` and `.github/plugin/plugin.json` have a `version` field. Bump them together so package metadata matches the skill. (Both `marketplace.json` files intentionally omit a version so the `plugin.json` files stay the package source of truth.) - **Compatibility:** keep install and usage language harness-neutral. The skill should work in any agent harness that can load Markdown skill instructions; Claude Code, OpenCode, Codex, and other harnesses are examples, not limits. - **Non-obvious fixes:** if you change the prompt to handle a tricky failure mode (a repeated mis-edit, an unexpected tone shift), add a short note to the README version history explaining what was fixed and why. diff --git a/README.md b/README.md index 50f44d94..f91c6566 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,23 @@ Claude Code users can also install Humanizer as a plugin: The skill is then invoked as `/humanizer:humanizer`. +### GitHub Copilot CLI + +GitHub Copilot CLI users can install Humanizer as a plugin: + +``` +/plugin marketplace add blader/humanizer +/plugin install humanizer@humanizer +``` + +Or add just the skill, without the plugin wrapper: + +``` +/skills add https://github.com/blader/humanizer +``` + +Either way, `/skills list` shows `humanizer` once it is installed. Copilot loads the skill automatically when you ask it to humanize text, and you can also request it by name. + ### Manual Any agent harness can use the skill directly because the runtime artifact is `SKILL.md`. Install it wherever your harness expects skill directories, or copy `SKILL.md` into an existing skill folder.