Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 3 additions & 9 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "beyond10x",
"name": "b10x",
"interface": {
"displayName": "Beyond10x"
},
Expand Down Expand Up @@ -41,22 +41,16 @@
"category": "Productivity"
},
{
"name": "workspace-hygiene",
"name": "connectors",
"source": {
"source": "local",
"path": "./plugins/workspace-hygiene"
"path": "./plugins/connectors"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "connectors",
"source": { "source": "local", "path": "./plugins/connectors" },
"policy": { "installation": "AVAILABLE", "authentication": "ON_INSTALL" },
"category": "Productivity"
}
]
}
25 changes: 18 additions & 7 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
{
"name": "beyond10x",
"owner": { "name": "beyond10x" },
"name": "b10x",
"owner": {
"name": "beyond10x"
},
"metadata": {
"description": "Beyond10x agent plugins: the plugins this repository carries, and product plugins pinned at their own releases."
},
"plugins": [
{
"name": "beyond10x",
Expand All @@ -17,15 +22,21 @@
"source": "./plugins/aep-drive",
"description": "Coordinate AEP development waves, story scoping, implementation, and adversarial review."
},
{
"name": "workspace-hygiene",
"source": "./plugins/workspace-hygiene",
"description": "Manage isolated Git worktrees with explicit ownership and safe cleanup proof."
},
{
"name": "connectors",
"source": "./plugins/connectors",
"description": "Set up, inspect, and invoke governed integrations through the connectors CLI."
},
{
"name": "worktree",
"source": {
"source": "git-subdir",
"url": "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/beyond10x/worktree.git",
"path": "plugins/worktree",
"ref": "0.6.0",
"sha": "3d4954b7f0cde907a5b8a27a6c3d095368d4a1cf"
},
"description": "Manage isolated Git worktrees with explicit ownership and safe cleanup proof, released with the worktree binary."
}
]
}
1 change: 1 addition & 0 deletions .engineering/planning/journal.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -180,3 +180,4 @@
{"entity":"story","version":1,"id":"shared-docs-toolchain","revision":1,"type":"aep.entity.create/v1","from_state":null,"to_state":"draft","changed":{"body":"## Outcome\n\nUse the reviewed shared documentation runtime for this repository's passive source bundle producer as part of the coordinated Mandate contract viewer publication.\n\n## Acceptance\n\nThe Atlas-generated producer caller pins Docs System commit 1d4c0262911761118ffdd7037890f541a0688714. Source allowlists, credential-free execution and repository-owned validation remain intact. Atlas reconciliation reports no caller drift. Required source and common checks pass on the exact published commit, and its passive producer yields a valid immutable source bundle.\n\n## Scope\n\n.github/workflows/b10x-docs-bundle.yml and this planning record. The coordinating authority is the shared documentation rollout; this repository's product/runtime contracts do not change.\n","title":"Align the passive producer with the shared contract viewer runtime"},"args":{"command":"create-entity","data":{"body":"## Outcome\n\nUse the reviewed shared documentation runtime for this repository's passive source bundle producer as part of the coordinated Mandate contract viewer publication.\n\n## Acceptance\n\nThe Atlas-generated producer caller pins Docs System commit 1d4c0262911761118ffdd7037890f541a0688714. Source allowlists, credential-free execution and repository-owned validation remain intact. Atlas reconciliation reports no caller drift. Required source and common checks pass on the exact published commit, and its passive producer yields a valid immutable source bundle.\n\n## Scope\n\n.github/workflows/b10x-docs-bundle.yml and this planning record. The coordinating authority is the shared documentation rollout; this repository's product/runtime contracts do not change.\n","status":"draft","title":"Align the passive producer with the shared contract viewer runtime"},"entity_type":"aep.story/v1","locator":"ep://planning/store/story/shared-docs-toolchain"},"payload":{"actor":"agent:mandate-docs-toolchain","at":1789627861573,"causation":"cmd-new-story-shared-docs-toolchain","change":{"change":"created","status":"draft"},"correlation":"protocol-artifact-new","event_id":"story:shared-docs-toolchain@1#0~db0fa97c13705108","executor":null,"recorded_at":"2026-09-17T06:51:01Z"}}
{"entity":"story","version":1,"id":"shared-docs-toolchain","revision":2,"type":"aep.entity.update/v1","from_state":"draft","to_state":"draft","changed":{"scope":[{"confidence":"cited","path":".github/workflows/b10x-docs-bundle.yml"}]},"args":{"changes":{"scope":[{"confidence":"cited","path":".github/workflows/b10x-docs-bundle.yml"}]},"command":"update-entity","target":"01MEM0000000000000067"},"payload":{"actor":"agent:mandate-docs-toolchain","at":1789627861652,"causation":"cmd-protocol-artifact-scope-story-shared-docs-toolchain-1789627861652","change":{"change":"body_replaced"},"correlation":"protocol-artifact-scope","event_id":"story:shared-docs-toolchain@2#0~27ac65189db9b60f","executor":null,"recorded_at":"2026-09-17T06:51:01Z"}}
{"entity":"story","version":1,"id":"retire-ess-specify","revision":1,"type":"aep.entity.create/v1","from_state":null,"to_state":"draft","changed":{"body":"# Retire `ess-specify`; spec-driven work routes to the ESS repository's own plugin\n\n## Why\n\nESS now ships its agent plugin from `beyond10x/ess` (`plugins/ess/`, marketplace `ess`), at the\nsame version as the `ess` binary, and the binary prints the same skills through `ess skill`. The\ncopy here released on its own cadence and drifted: `0.9.2` told adopters to install ESS `0.22.1`\nwhile ESS was at `0.29.0`.\n\n## Acceptance\n\n`plugins/ess-specify` and its marketplace entries are gone; `task check` prints\n`valid: marketplace beyond10x, 5 focused plugin(s)`; `ess-specify` is a retired name the gate\nrefuses in authored files; the `beyond10x` front door and the install guide send spec-driven work to\nthe ESS marketplace and `ess skill`.\n\n## Scope\n\n- `plugins/ess-specify/**` (deleted), `.claude-plugin/marketplace.json`, `.agents/plugins/marketplace.json`\n- `crates/agentplugins-check/src/{main.rs,evals.rs}`\n- `evals/ess-specify-new-entity/**` (deleted), `evals/golden-path-end-to-end/**`, `evals/README.md`\n- `plugins/beyond10x/skills/beyond10x/**`, `plugins/aep-plan/skills/planning/SKILL.md`\n- `README.md`, `website/**`, `CHANGELOG.md`\n\n## Not in scope\n\n- An eval case for the ESS plugin. ESS runs no eval corpus; the dropped case is not re-homed.\n","title":"Retire ess-specify; spec-driven work routes to the ESS repository's own plugin"},"args":{"command":"create-entity","data":{"body":"# Retire `ess-specify`; spec-driven work routes to the ESS repository's own plugin\n\n## Why\n\nESS now ships its agent plugin from `beyond10x/ess` (`plugins/ess/`, marketplace `ess`), at the\nsame version as the `ess` binary, and the binary prints the same skills through `ess skill`. The\ncopy here released on its own cadence and drifted: `0.9.2` told adopters to install ESS `0.22.1`\nwhile ESS was at `0.29.0`.\n\n## Acceptance\n\n`plugins/ess-specify` and its marketplace entries are gone; `task check` prints\n`valid: marketplace beyond10x, 5 focused plugin(s)`; `ess-specify` is a retired name the gate\nrefuses in authored files; the `beyond10x` front door and the install guide send spec-driven work to\nthe ESS marketplace and `ess skill`.\n\n## Scope\n\n- `plugins/ess-specify/**` (deleted), `.claude-plugin/marketplace.json`, `.agents/plugins/marketplace.json`\n- `crates/agentplugins-check/src/{main.rs,evals.rs}`\n- `evals/ess-specify-new-entity/**` (deleted), `evals/golden-path-end-to-end/**`, `evals/README.md`\n- `plugins/beyond10x/skills/beyond10x/**`, `plugins/aep-plan/skills/planning/SKILL.md`\n- `README.md`, `website/**`, `CHANGELOG.md`\n\n## Not in scope\n\n- An eval case for the ESS plugin. ESS runs no eval corpus; the dropped case is not re-homed.\n","status":"draft","title":"Retire ess-specify; spec-driven work routes to the ESS repository's own plugin"},"entity_type":"aep.story/v1","locator":"ep://planning/store/story/retire-ess-specify"},"payload":{"actor":"human:timo","at":1790167587226,"causation":"cmd-new-story-retire-ess-specify","change":{"change":"created","status":"draft"},"correlation":"protocol-artifact-new","event_id":"story:retire-ess-specify@1#0~73af7ee8bf239901","executor":null,"recorded_at":"2026-09-23T12:46:27Z"}}
{"args":{"command":"create-entity","data":{"body":"# Story: the b10x catalog lists worktree by pin, not by copy\n\n## Goal\nThe marketplace is renamed `b10x` and lists the `worktree` plugin as a `git-subdir` entry pinned\nto a Worktree release tag and its full commit, replacing the `workspace-hygiene` copy. The copy\nhere shipped on this repository's cadence: `workspace-hygiene` 0.10.0 lacked the\n`patch-equivalent` recovery-proof guidance that Worktree 0.5.0 generates.\n\n## Acceptance\n`task check` refuses a `worktree` entry that is not a `git-subdir` at\n`https://github.com/beyond10x/worktree.git` path `plugins/worktree` with a bare release tag and a\n40-hex commit; `agentplugins-check remote` refuses a commit that is not the tag's, manifests at\nthat commit that declare another version, and a tag that is not Worktree's newest release, and\nruns on every pull request, `main` push and daily.\n\n## Scope\n- `.claude-plugin/marketplace.json`, `.agents/plugins/marketplace.json`\n- `crates/agentplugins-check/src/{main,remote,evals}.rs`, `.github/workflows/remote-plugins.yml`\n- `plugins/workspace-hygiene/` (removed), routing skill, wave skill, README, AGENTS.md, website\n","status":"draft","summary":"Rename the marketplace to b10x and replace the workspace-hygiene copy with a git-subdir entry pinned to a Worktree release, checked offline for shape and online for tag, commit, version and recency.","title":"The b10x catalog lists worktree by pin, not by copy"},"entity_type":"aep.story/v1","locator":"ep://planning/store/story/worktree-plugin-by-pin"},"changed":{"body":"# Story: the b10x catalog lists worktree by pin, not by copy\n\n## Goal\nThe marketplace is renamed `b10x` and lists the `worktree` plugin as a `git-subdir` entry pinned\nto a Worktree release tag and its full commit, replacing the `workspace-hygiene` copy. The copy\nhere shipped on this repository's cadence: `workspace-hygiene` 0.10.0 lacked the\n`patch-equivalent` recovery-proof guidance that Worktree 0.5.0 generates.\n\n## Acceptance\n`task check` refuses a `worktree` entry that is not a `git-subdir` at\n`https://github.com/beyond10x/worktree.git` path `plugins/worktree` with a bare release tag and a\n40-hex commit; `agentplugins-check remote` refuses a commit that is not the tag's, manifests at\nthat commit that declare another version, and a tag that is not Worktree's newest release, and\nruns on every pull request, `main` push and daily.\n\n## Scope\n- `.claude-plugin/marketplace.json`, `.agents/plugins/marketplace.json`\n- `crates/agentplugins-check/src/{main,remote,evals}.rs`, `.github/workflows/remote-plugins.yml`\n- `plugins/workspace-hygiene/` (removed), routing skill, wave skill, README, AGENTS.md, website\n","summary":"Rename the marketplace to b10x and replace the workspace-hygiene copy with a git-subdir entry pinned to a Worktree release, checked offline for shape and online for tag, commit, version and recency.","title":"The b10x catalog lists worktree by pin, not by copy"},"entity":"story","entry_hash":"374497c1e8d86a98c468032fcf4dc86351e5711b2375b32c0d1438b3a61734b5","from_state":null,"id":"worktree-plugin-by-pin","parent_hash":"0e5fd9db0bb58243744cd0404562223549dc236f614221abf79f8add2fd9a4ac","payload":{"actor":"human:timo","at":1790247637626,"causation":"cmd-new-story-worktree-plugin-by-pin","change":{"change":"created","status":"draft"},"correlation":"protocol-artifact-new","event_id":"story:worktree-plugin-by-pin@1#0~a2165dda3a96e504","executor":null,"recorded_at":"2026-09-24T11:00:37Z"},"revision":1,"to_state":"draft","type":"aep.entity.create/v1","version":1}
28 changes: 28 additions & 0 deletions .engineering/planning/story/worktree-plugin-by-pin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
format: aep.planning-md/1
id: story:worktree-plugin-by-pin
kind: story
status: draft
title: The b10x catalog lists worktree by pin, not by copy
summary: Rename the marketplace to b10x and replace the workspace-hygiene copy with a git-subdir entry pinned to a Worktree release, checked offline for shape and online for tag, commit, version and recency.
revision: 1
---
# Story: the b10x catalog lists worktree by pin, not by copy

## Goal
The marketplace is renamed `b10x` and lists the `worktree` plugin as a `git-subdir` entry pinned
to a Worktree release tag and its full commit, replacing the `workspace-hygiene` copy. The copy
here shipped on this repository's cadence: `workspace-hygiene` 0.10.0 lacked the
`patch-equivalent` recovery-proof guidance that Worktree 0.5.0 generates.

## Acceptance
`task check` refuses a `worktree` entry that is not a `git-subdir` at
`https://github.com/beyond10x/worktree.git` path `plugins/worktree` with a bare release tag and a
40-hex commit; `agentplugins-check remote` refuses a commit that is not the tag's, manifests at
that commit that declare another version, and a tag that is not Worktree's newest release, and
runs on every pull request, `main` push and daily.

## Scope
- `.claude-plugin/marketplace.json`, `.agents/plugins/marketplace.json`
- `crates/agentplugins-check/src/{main,remote,evals}.rs`, `.github/workflows/remote-plugins.yml`
- `plugins/workspace-hygiene/` (removed), routing skill, wave skill, README, AGENTS.md, website
24 changes: 24 additions & 0 deletions .github/workflows/remote-plugins.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Remote plugins

on:
push:
branches: [main]
pull_request:
schedule:
- cron: '17 5 * * *'
workflow_dispatch:

permissions:
contents: read

jobs:
pins:
name: Remote plugin pins
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2
- name: Verify every remote plugin pin against its repository
run: cargo run --quiet --locked --bin agentplugins-check -- remote
8 changes: 7 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,13 @@

## Invariants

- Marketplace identity is `beyond10x` in every marketplace format.
- Marketplace identity is `b10x` in every marketplace format.
- A product that ships its own plugin keeps it in its own repository at the binary's version. The
Claude Code marketplace lists it as a `git-subdir` entry pinned by release tag and full commit
(`crates/agentplugins-check/src/remote.rs` `REMOTE`), never as a copy. `agentplugins-check remote`
(network) refuses a pin that is not the tag's commit, whose manifests declare another version, or
that is not the newest release; the product's release procedure opens the bot pull request that
moves the pin.
- Keep exactly the focused plugin boundaries described in `README.md`. The `beyond10x` front door
may route to specialists and teach portable plugin authoring, but it must not absorb their
workflows or become a mixed catch-all.
Expand Down
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
# Changelog

## [0.11.0] — 2026-09-24

- **Breaking:** the marketplace identity is `b10x` in both formats. Installs name plugins as
`<plugin>@b10x`. A registration made from an earlier release is named `beyond10x`: remove its
plugins and run `/plugin marketplace remove beyond10x` (Claude Code) or
`codex plugin marketplace remove beyond10x` (Codex), then register this release.
- **Breaking:** `workspace-hygiene` is retired. Worktree ships its own plugin, `worktree`, from the
`beyond10x/worktree` repository at the version of the `worktree` binary, and the skill
`workspace-hygiene:worktree` becomes `worktree:worktree`. The copy here released on its own
cadence and had drifted: `workspace-hygiene` 0.10.0 lacked the patch-equivalent recovery-proof
guidance Worktree 0.5.0 generates.
- The Claude Code marketplace lists `worktree` as a `git-subdir` entry pinned to Worktree `0.6.0`
and its full commit, carrying no copy. Codex reads `worktree@worktree` from the worktree
repository's own marketplace.
- `agentplugins-check` checks the entry's shape offline. The new `agentplugins-check remote`
refuses a commit that is not the tag's, manifests at that commit that declare another version,
and a tag that is not the newest Worktree release; `.github/workflows/remote-plugins.yml` runs it
on every pull request, `main` push and daily. `workspace-hygiene` joins the retired names.
- The routing skill, the wave skill, README, install guide and website point at `worktree`; the
eval corpus names 4 of 7 skills. Eval checker tests that used `workspace-hygiene` as a fixture
use `connectors`.

## [0.10.0] — 2026-09-23

- **Breaking:** `ess-specify` is retired from this marketplace. ESS now ships its own plugin, `ess`,
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ resolver = "2"
members = ["crates/agentplugins-check"]

[workspace.package]
version = "0.10.0"
version = "0.11.0"
edition = "2021"
rust-version = "1.85"
license = "Apache-2.0"
Expand Down
Loading
Loading