CLAUDE.md · diff
git:20260710.b086992 to git:20260725.7dfa442
25 added, 59 removed. Audit A to A.
# wise-claude
- Cross-harness marketplace for the `wise` copilot — plugins, skills,
- agents, hooks, and workflows for **Claude Code, OpenAI Codex CLI,
- Cursor, Nous Research Hermes Agent, opencode, and Pi**.
+ Claude Code plugin marketplace for the `wise` copilot — flat `/wise-*`
+ skills, a multi-agent workflow engine, an SDLC agent roster, and hooks
+ for everyday git / PR / ticket-planning tasks.
## Structure
- Since **v3.0.0** the repo is organized by harness. `core/` is the
- canonical, harness-neutral source; each `harnesses/<harness>/wise/`
- folder is an independently installable port. Port content is
- **generated** from `core/`, the Claude port's skills, and the inputs
- under `core/ports/` by `scripts/build_ports.py` — the generated output
- stays committed, and CI regenerates and diffs to enforce it.
+ Since **v4.0.0** the repo is Claude Code only. The plugin at
+ `plugins/wise/` is the canonical, hand-edited source of truth — there
+ is no generation step.
```
wise-claude/
├── .claude-plugin/
- │ └── marketplace.json # Claude Code marketplace index → harnesses/claude/wise
- ├── .agents/plugins/
- │ └── marketplace.json # Codex marketplace index → harnesses/codex/wise (added by the Codex port)
- ├── core/ # canonical harness-neutral source (not installable itself)
- │ ├── references/ # shared prose routines
- │ ├── agents/ # SDLC role cards (neutral form)
- │ ├── workflows/ # workflow definitions
- │ ├── scripts/ # the workflow engine (workflows.py) + catalog emitter
- │ └── ports/ # generator inputs (hand-maintained)
- │ ├── profiles/ # one <harness>.yaml per port: tier lists, frontmatter keep-list, …
- │ ├── notes/ # harness-adaptation note templates (+ per-harness overrides)
- │ ├── overlays/ # per-skill find/replace hunks for genuinely divergent prose
- │ └── static/ # byte-copied per-port files (README, manifests, …)
- ├── harnesses/
- │ └── <harness>/wise/ # one port per harness (claude, codex, cursor, hermes, opencode, pi)
- │ ├── skills/ # SKILL.md skills / slash commands (claude = source, others generated)
- │ ├── agents/ # role cards (generated)
- │ ├── workflows/ # workflow defs (generated)
- │ ├── scripts/ # engine (generated)
- │ └── README.md # canonical install instructions for that harness
+ │ └── marketplace.json # Claude Code marketplace index → plugins/wise
+ ├── plugins/
+ │ └── wise/ # the plugin (canonical, hand-edited)
+ │ ├── skills/ # SKILL.md skills / slash commands
+ │ ├── agents/ # SDLC role cards
+ │ ├── workflows/ # workflow definitions
+ │ ├── references/ # shared prose routines
+ │ ├── hooks/ # plugin hooks
+ │ ├── scripts/ # the workflow engine (workflows.py) + shared scripts
+ │ └── tests/ # engine test suite
├── scripts/
- │ ├── validate_repo.py # structural validation
- │ └── build_ports.py # the port generator (regenerate in place, or --check to diff)
- ├── install.sh · justfile # universal installer + task runner
+ │ └── validate_repo.py # structural validation
+ ├── docs/wise/ # workflow engine + authoring reference
+ ├── justfile # task runner (validate / test / check)
├── CLAUDE.md # This file
└── README.md # Repo docs
```
- The Claude Code plugin lives at `harnesses/claude/wise/` (moved from the
- old `plugins/wise/` in v3.0.0 — see the README migration note).
-
## Editing model
- - **Sources of truth**: `core/` (references, workflows, engine, neutral
- agent cards), `harnesses/claude/wise/skills/` (the canonical skills),
- and `core/ports/` (profiles, note templates, overlays, statics).
- Edit these — never a generated file.
- - **Everything else under `harnesses/` is generated and committed.**
- After editing a source, run `python3 scripts/build_ports.py` (or
- `just build`) to regenerate the ports in place — or run `just hooks`
- once to enable the pre-commit hook that regenerates automatically.
- Generated paths are marked `linguist-generated` in `.gitattributes`
- (collapsed in GitHub PR diffs).
- - **CI enforces sync**: `python3 scripts/build_ports.py --check` (or
- `just build-check`) renders to a temp dir and fails on any diff
- between the committed tree and a fresh render.
-
- ## Adding a New Harness Port
-
- 1. Write `core/ports/profiles/<name>.yaml` (tier lists, frontmatter
- keep-list, harness id/name)
- 2. Add any needed overlays under `core/ports/overlays/<name>/` and
- statics under `core/ports/static/<name>/` (README, manifests)
- 3. Add an `install.sh` arm for the harness
- 4. Run `python3 scripts/build_ports.py` to generate the port
+ - **Source of truth**: the plugin at `plugins/wise/`. Edit it directly —
+ nothing in the repo is generated.
+ - **Validate before committing**: `just check` — runs
+ `python3 scripts/validate_repo.py` and
+ `python3 -m pytest plugins/wise/tests -q`.
## Conventions
- - One version source: `harnesses/claude/wise/.claude-plugin/plugin.json`;
- every port + marketplace manifest carries the same version.
+ - One version source: `plugins/wise/.claude-plugin/plugin.json`
- Include a LICENSE file for open-source plugins
- Pin external sources to a commit SHA in marketplace.json