From b6a6009291ea97385e6872346b2f728e3835a6e3 Mon Sep 17 00:00:00 2001 From: Bram Date: Fri, 25 Sep 2026 10:17:23 +0200 Subject: [PATCH 1/2] feat(skills): keep Codex PStack out of Claude skill mirror --- CHANGELOG.md | 3 +++ README.md | 2 ++ scripts/sync-skills | 26 ++++++++++++++++++++ skills/.codex-only | 56 ++++++++++++++++++++++++++++++++++++++++++++ tests/sync-skills.sh | 18 ++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 skills/.codex-only diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fbab54..3444736 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ summary: Timeline of guardrail helper changes mirrored from Sweetistics and rela # Changelog +## 2026-09-25: PStack split into Codex and Claude halves +- Stopped mirroring the 57 Codex-tuned PStack skills listed in `skills/.codex-only` into `~/.claude/skills`; `sync-skills` prunes its own links there and keeps them for `~/.agents` and `~/.codex`. Claude Code now gets PStack from the `pstack` plugin in the new private [BramVR/claude-pstack](https://github.com/BramVR/claude-pstack) fork of `michael-denyer/pstack-claude`, with Codex-parity model roles (Fable judgment, Opus code, Sonnet scouts) and an opt-in routing hook. + ## 2026-09-23: Opus design and review roles - Use Opus 5.5 for Interrogate at xhigh and optional Claude Autoreview at high; add it to Arena’s cross-judge pool at high, with Claude CLI routing and a 2.1.280 minimum-version check. - Replace Architect’s Astra low candidate with Opus 5.5 high through `claude -p`; retain GPT-6 Sol high, Fable 5.1 high, and the three-candidate requirement. diff --git a/README.md b/README.md index 2e982c4..d7d9d51 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,8 @@ It writes one flat per-skill symlink to each supported discovery root: `~/.agents/skills` must be a real directory, not a whole-directory symlink. +PStack split: skills here are the Codex-tuned PStack. Names in `skills/.codex-only` skip `~/.claude/skills` (owned links there are pruned); Claude Code gets Claude-tuned copies from the `pstack` plugin in [BramVR/claude-pstack](https://github.com/BramVR/claude-pstack) (`claude plugin marketplace add BramVR/claude-pstack`, `claude plugin install pstack@pstack-claude`). Update the list when either side adds or drops a PStack skill. + Sources, in collision priority order: `agent-scripts/skills` > `~/Projects/manager/skills` (if present) > codex-local extras in `~/.codex/skills` > claude-local extras in `~/.claude/skills`. `~/.agents/skills` is a mirror destination only. Repo-owned skills resolve to their own repo, e.g. `gog -> ~/Projects/gogcli/.agents/skills/gog`. Broken links are pruned always. Generated links are tracked in `~/.agents/.sync-skills-v1.tsv` and pruned when their source disappears; non-colliding foreign links are left alone. Matching pre-existing links are not automatically claimed when the state file is first created. diff --git a/scripts/sync-skills b/scripts/sync-skills index 95b6d95..9a08eac 100755 --- a/scripts/sync-skills +++ b/scripts/sync-skills @@ -9,6 +9,8 @@ # Bram's setup is documented as per-skill links too, so no whole-root symlink # is created (see README: "Do not replace this with a broad ... symlink"). # Sources: agent-scripts > manager > codex-local > claude-local. +# skills/.codex-only names agent-scripts skills kept out of ~/.claude/skills +# (Claude gets its own copies from the pstack plugin). # ~/.agents/skills is destination-only. # # Usage: sync-skills [-n|--dry-run] [--no-instructions] @@ -175,6 +177,23 @@ claim() { # claim