From d6b52ddbc4f75c9b447aeec6282689b8e24bcfed Mon Sep 17 00:00:00 2001 From: Marius1311 Date: Tue, 13 Oct 2026 17:32:37 +0200 Subject: [PATCH 1/3] Write down the conventions plugins here share One concern per plugin, built on the others through `dependencies`; little always-on context; one project layout (AGENTS.md, .claude/worktrees/); and the repository and release rules, now in one place. Co-Authored-By: Claude Opus 5.5 --- README.md | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d4c5fc8..4b1d30a 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,35 @@ claude plugin install @quadbio Then turn on updates, which are off by default for marketplaces outside Anthropic's: in a session, `/plugin` → Marketplaces → quadbio → Enable auto-update ([docs](https://code.claude.com/docs/en/plugins/install#keep-plugins-updated)). -Each plugin lives in its own repository; this one only lists them. A plugin's README opens with what it does -and its parts, then `Use`, `Install` (pointing here), `Develop`, `Release`. Entries follow each plugin's `main`: a -plugin releases by bumping `version` in its `plugin.json`. +## Conventions + +Plugins here are built to work together. A new plugin, and every change to one, follows these rules; anything they +don't cover is the plugin's own choice. + +**One concern per plugin.** +- A plugin owns one concern, which its name and its row above state. Before writing a new plugin, check whether one + here already owns the concern; if so, extend that one with a pull request. +- A plugin doesn't restate another plugin's rules: its skill lists what other plugins own and defers to them, as + `cell-type-annotation` does for `analysis-workflow`. +- A plugin that needs another to work lists it under `dependencies` in its `plugin.json`, so installing it installs + the other. +- A skill's description covers only its own concern, so it doesn't trigger on another plugin's. + +**Little always-on context.** Rules go in skills, which load on demand. Hooks are for what must hold in every +session, and print little at session start: every installed plugin's output lands in every session. + +**One project layout**, so plugins agree on it: +- a repo's agent instructions live in one `AGENTS.md`, which Claude Code and Codex both read without settings; +- worktrees live in `.claude/worktrees/`, where `claude --worktree` creates them. + +**Repository.** Each plugin lives in its own quadbio repository; this one only lists them. +- Its README opens with what it does and its parts, then `Use`, `Install` (pointing here), `Develop`, `Release`. +- `claude plugin validate .` passes. +- Values that differ between people or labs (paths, groups, hardware) are `userConfig` options, not hard-coded. +- Repositories are public: no absolute paths, usernames, hostnames, private repository names or infrastructure + details. + +**Release.** Entries follow each plugin's `main`: a plugin releases by bumping `version` in its `plugin.json`. + +**Adding a plugin:** open a pull request here that adds its entry to `.claude-plugin/marketplace.json` and its row +above. From a4db3c2fc944672a108bd1f1b596f07feaee5f90 Mon Sep 17 00:00:00 2001 From: Marius1311 Date: Tue, 13 Oct 2026 20:44:41 +0200 Subject: [PATCH 2/3] Conventions: welcome overlapping and alternative plugins Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Cu5AYoH46bk3rW3qivyPZ5 --- README.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4b1d30a..1bf0d63 100644 --- a/README.md +++ b/README.md @@ -24,14 +24,13 @@ Marketplaces → quadbio → Enable auto-update ([docs](https://code.claude.com/ Plugins here are built to work together. A new plugin, and every change to one, follows these rules; anything they don't cover is the plugin's own choice. -**One concern per plugin.** -- A plugin owns one concern, which its name and its row above state. Before writing a new plugin, check whether one - here already owns the concern; if so, extend that one with a pull request. -- A plugin doesn't restate another plugin's rules: its skill lists what other plugins own and defers to them, as - `cell-type-annotation` does for `analysis-workflow`. -- A plugin that needs another to work lists it under `dependencies` in its `plugin.json`, so installing it installs - the other. -- A skill's description covers only its own concern, so it doesn't trigger on another plugin's. +**Overlap and dependencies.** +- Plugins may overlap or offer another way of working, such as an alternative to `euler-hpc` or a plugin that + combines analysis setup with another aim. Its README names the plugins it overlaps with and how it differs, so + users can choose. +- A plugin that builds on another defers to it instead of restating its rules, as `cell-type-annotation` does for + `analysis-workflow`. If it needs the other to work, it lists it under `dependencies` in its `plugin.json`, so + installing it installs the other, and its Develop section says to load both. **Little always-on context.** Rules go in skills, which load on demand. Hooks are for what must hold in every session, and print little at session start: every installed plugin's output lands in every session. From 561ff560c54559eafa81441c765f397f2d15939b Mon Sep 17 00:00:00 2001 From: Marius1311 Date: Tue, 13 Oct 2026 20:49:20 +0200 Subject: [PATCH 3/3] Conventions: list .claude/worktrees/ in .gitignore, here too Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Cu5AYoH46bk3rW3qivyPZ5 --- .gitignore | 1 + README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0f9b906 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.claude/worktrees/ diff --git a/README.md b/README.md index 1bf0d63..071feff 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ session, and print little at session start: every installed plugin's output land **One project layout**, so plugins agree on it: - a repo's agent instructions live in one `AGENTS.md`, which Claude Code and Codex both read without settings; -- worktrees live in `.claude/worktrees/`, where `claude --worktree` creates them. +- worktrees live in `.claude/worktrees/`, where `claude --worktree` creates them, and `.gitignore` lists that folder. **Repository.** Each plugin lives in its own quadbio repository; this one only lists them. - Its README opens with what it does and its parts, then `Use`, `Install` (pointing here), `Develop`, `Release`.