commit e65605f012598171af0882d43c7e0a5b71544e46 Author: wehub-resource-sync Date: Mon Jul 13 12:20:01 2026 +0800 chore: import upstream snapshot with attribution diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json new file mode 100644 index 0000000..b1d994e --- /dev/null +++ b/.agents/plugins/marketplace.json @@ -0,0 +1,20 @@ +{ + "name": "compound-engineering-plugin", + "interface": { + "displayName": "Compound Engineering" + }, + "plugins": [ + { + "name": "compound-engineering", + "source": { + "source": "url", + "url": "https://github.com/EveryInc/compound-engineering-plugin.git" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Coding" + } + ] +} diff --git a/.agy/INSTALL.md b/.agy/INSTALL.md new file mode 100644 index 0000000..fc49dff --- /dev/null +++ b/.agy/INSTALL.md @@ -0,0 +1,78 @@ +# Installing Compound Engineering for Antigravity CLI (`agy`) + +Antigravity installs CE as a native plugin bundle. The repository root is the plugin package: `plugin.json` plus the `skills/` directory. The committed `.agy/` subdirectory is a compatibility entry point for local checkouts that prefer an explicit bundle path. + +## One-command install (recommended) + +With [Antigravity CLI](https://antigravity.google) installed: + +```bash +agy plugin install https://github.com/EveryInc/compound-engineering-plugin +``` + +Verify: + +```bash +agy plugin list +agy plugin validate https://github.com/EveryInc/compound-engineering-plugin +``` + +No clone step is required. `agy` stages the plugin under `~/.gemini/antigravity-cli/plugins/compound-engineering/`. + +## Local checkout install + +Clone first when you need a specific branch, tag, or unpublished changes: + +```bash +git clone https://github.com/EveryInc/compound-engineering-plugin +agy plugin install ./compound-engineering-plugin +``` + +Or install the bundled `.agy/` entry point (equivalent manifest via symlink): + +```bash +agy plugin install ./compound-engineering-plugin/.agy +``` + +## Pin a release + +Install from a release tag: + +```bash +git clone --branch compound-engineering-vX.Y.Z --depth 1 \ + https://github.com/EveryInc/compound-engineering-plugin.git +agy plugin install ./compound-engineering-plugin +``` + +Replace `X.Y.Z` with a tag from the [releases page](https://github.com/EveryInc/compound-engineering-plugin/releases). + +## Local development + +From your working copy: + +```bash +agy plugin install "$PWD" +agy plugin validate "$PWD" +``` + +Edit skills under `skills/` and restart `agy` or start a new session to pick up prose changes. + +## Context files + +`agy` reads `GEMINI.md` and `AGENTS.md` as workspace context. Run `agy` from a project that includes those files, or from this checkout when developing CE itself. + +## Uninstall + +```bash +agy plugin uninstall compound-engineering +``` + +## Legacy Gemini CLI import + +If you previously installed CE under Gemini CLI: + +```bash +agy plugin import gemini +``` + +Prefer the native install commands above for new setups. diff --git a/.agy/plugin.json b/.agy/plugin.json new file mode 120000 index 0000000..4d1a686 --- /dev/null +++ b/.agy/plugin.json @@ -0,0 +1 @@ +../plugin.json \ No newline at end of file diff --git a/.agy/skills b/.agy/skills new file mode 120000 index 0000000..42c5394 --- /dev/null +++ b/.agy/skills @@ -0,0 +1 @@ +../skills \ No newline at end of file diff --git a/.claude-plugin/CHANGELOG.md b/.claude-plugin/CHANGELOG.md new file mode 100644 index 0000000..e509e2b --- /dev/null +++ b/.claude-plugin/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +## [1.0.3](https://github.com/EveryInc/compound-engineering-plugin/compare/marketplace-v1.0.2...marketplace-v1.0.3) (2026-06-24) + + +### Bug Fixes + +* **metadata:** align plugin and marketplace metadata ([#987](https://github.com/EveryInc/compound-engineering-plugin/issues/987)) ([f57c682](https://github.com/EveryInc/compound-engineering-plugin/commit/f57c68257cbd792c25ef85047c426329c5c3f848)) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 0000000..1c5d277 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,29 @@ +{ + "name": "compound-engineering-plugin", + "owner": { + "name": "Kieran Klaassen and Trevin Chow" + }, + "metadata": { + "description": "Plugin marketplace for Claude Code and Codex extensions", + "version": "1.0.3" + }, + "plugins": [ + { + "name": "compound-engineering", + "description": "Brainstorm, plan, debug, review, and compound learnings with AI agents", + "author": { + "name": "Kieran Klaassen and Trevin Chow" + }, + "homepage": "https://github.com/EveryInc/compound-engineering-plugin", + "tags": [ + "ai-powered", + "compound-engineering", + "workflow-automation", + "code-review", + "quality", + "knowledge-management" + ], + "source": "./" + } + ] +} diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..4efd8c2 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,20 @@ +{ + "name": "compound-engineering", + "version": "3.19.0", + "description": "Brainstorm, plan, debug, review, and compound learnings with AI agents", + "author": { + "name": "Kieran Klaassen and Trevin Chow" + }, + "homepage": "https://every.to/source-code/my-ai-had-already-fixed-the-code-before-i-saw-it", + "repository": "https://github.com/EveryInc/compound-engineering-plugin", + "license": "MIT", + "keywords": [ + "brainstorming", + "code-review", + "compound-engineering", + "debugging", + "ideation", + "workflows", + "workflow-automation" + ] +} diff --git a/.claude/commands/triage-prs.md b/.claude/commands/triage-prs.md new file mode 100644 index 0000000..45e9717 --- /dev/null +++ b/.claude/commands/triage-prs.md @@ -0,0 +1,193 @@ +--- +name: triage-prs +description: Triage all open PRs with parallel agents, label, group, and review one-by-one +argument-hint: "[optional: repo owner/name or GitHub PRs URL]" +disable-model-invocation: true +allowed-tools: Bash(gh *), Bash(git log *) +--- + +# Triage Open Pull Requests + +Review, label, and act on all open PRs for a repository using parallel review agents. Produces a grouped triage report, applies labels, cross-references with issues, and walks through each PR for merge/comment decisions. + +## Step 0: Detect Repository + +Detect repo context: +- Current repo: !`gh repo view --json nameWithOwner -q .nameWithOwner 2>/dev/null || echo "no repo detected"` +- Current branch: !`git branch --show-current 2>/dev/null` + +If `$ARGUMENTS` contains a GitHub URL or `owner/repo`, use that instead. Confirm the repo with the user if ambiguous. + +## Step 1: Gather Context (Parallel) + +Run these in parallel: + +1. **List all open PRs:** + ```bash + gh pr list --repo OWNER/REPO --state open --limit 50 + ``` + +2. **List all open issues:** + ```bash + gh issue list --repo OWNER/REPO --state open --limit 50 + ``` + +3. **List existing labels:** + ```bash + gh label list --repo OWNER/REPO --limit 50 + ``` + +4. **Check recent merges** (to detect duplicate/superseded PRs): + ```bash + git log --oneline -20 main + ``` + +## Step 2: Batch PRs by Theme + +Group PRs into review batches of 4-6 based on apparent type: + +- **Bug fixes** - titles with `fix`, `bug`, error descriptions +- **Features** - titles with `feat`, `add`, new functionality +- **Documentation** - titles with `docs`, `readme`, terminology +- **Configuration/Setup** - titles with `config`, `setup`, `install` +- **Stale/Old** - PRs older than 30 days + +## Step 3: Parallel Review (Team of Agents) + +Spawn one review agent per batch using the Task tool. Each agent should: + +For each PR in their batch: +1. Run `gh pr view --repo OWNER/REPO --json title,body,files,additions,deletions,author,createdAt` +2. Run `gh pr diff --repo OWNER/REPO ` (pipe to `head -200` for large diffs) +3. Determine: + - **Description:** 1-2 sentence summary of the change + - **Label:** Which existing repo label fits best + - **Action:** merge / request changes / close / needs discussion + - **Related PRs:** Any PRs in this or other batches that touch the same files or feature + - **Quality notes:** Code quality, test coverage, staleness concerns + +Instruct each agent to: +- Flag PRs that touch the same files (potential merge conflicts) +- Flag PRs that duplicate recently merged work +- Flag PRs that are part of a group solving the same problem differently +- Report findings as a markdown table +- Send findings back via message when done + +## Step 4: Cross-Reference Issues + +After all agents report, match issues to PRs: + +- Check if any PR title/body mentions `Fixes #X` or `Closes #X` +- Check if any issue title matches a PR's topic +- Look for duplicate issues (same bug reported twice) + +Build a mapping table: +``` +| Issue | PR | Relationship | +|-------|-----|--------------| +| #158 | #159 | PR fixes issue | +``` + +## Step 5: Identify Themes + +Group all issues into themes (3-6 themes): +- Count issues per theme +- Note which themes have PRs addressing them and which don't +- Flag themes with competing/overlapping PRs + +## Step 6: Compile Triage Report + +Present a single report with: + +1. **Summary stats:** X open PRs, Y open issues, Z themes +2. **PR groups** with recommended actions: + - Group name and related PRs + - Per-PR: #, title, author, description, label, action +3. **Issue-to-PR mapping** +4. **Themes across issues** +5. **Suggested cleanup:** spam issues, duplicates, stale items + +## Step 7: Apply Labels + +After presenting the report, ask user: + +> "Apply these labels to all PRs on GitHub?" + +If yes, run `gh pr edit --repo OWNER/REPO --add-label "