chore: release v4.0.0 — flatten plugins under plugins/, split docs and changelog - #76
Merged
Merged
Conversation
The repo root held 23 `ceh-*` directories alongside six markdown files. Both are now one level down or one file smaller. Plugins move to `plugins/ceh-*` — flat, with no tier subdirectories. Grouping by tier (cross-cutting / use-case / stack) was considered and rejected: the tier axis has already been re-cut once, and encoding it in filesystem paths makes the next re-categorization a 23-`source` edit instead of one table row in CLAUDE.md. All 23 directories move as pure git renames. Repo-relative paths are rewritten; plugin-internal runtime paths are not. `ceh-fabled/skills/fabled/references/` and `ceh-git-workflow/release` resolve against the installed plugin root or are `plugin/skill` references, so they stay as they are. Paths in `.agents_workspace/` are left alone — they record what was true when written. CHANGELOG.md splits at v3.0.0, the reorganisation that introduced the current use-case axis. Entries below that line describe plugins that no longer exist under those names, which makes them history in a stronger sense than age alone. CHANGELOG.md keeps v3.0.0+ (3129 -> 2503 lines) and links forward; CHANGELOG-ARCHIVE.md holds v1.0.0-v2.8.0. All 93 version entries and their bodies are preserved. Six plugin READMEs carried manual-install snippets the move invalidated; fixing them changed plugin content, so each takes a PATCH bump in both plugin.json and marketplace.json. Decision logged as entry 77. `python tools/validate-plugins/validate.py` green. BREAKING CHANGE: plugin source paths move from `./ceh-<name>` to `./plugins/ceh-<name>`. Marketplace-name installs are unaffected. Anyone whose `settings.json` points at a plugin path must update it — README and the six plugin READMEs document the new paths. Generated with [Claude Code](https://claude.com/claude-code) by CEH
Three maintainer-facing files leave the repo root: `CROSS_REFERENCES.md`, `TESTING_WORKFLOW.md`, and the changelog archive. Root now holds four files — `README.md`, `LICENSE.md`, `CLAUDE.md`, `CHANGELOG.md` — each pinned there by tooling rather than habit: GitHub rendering and licence detection, Claude Code auto-loading `CLAUDE.md` only from the project root, and release-flow targeting `CHANGELOG.md` at the root path. `CHANGELOG-ARCHIVE.md` becomes `docs/CHANGELOG-v1-v2.md`. The archive spans v1.0.0 to v2.8.0, so the name states its range; the next split extends the pattern as `CHANGELOG-v3-v4.md` rather than accumulating "-ARCHIVE" suffixes that stop distinguishing anything once there are two of them. Inbound references updated in CLAUDE.md, README.md, the repo-local add-plugin-component skill, and four plugin READMEs; those four take PATCH bumps. Historical mentions inside CHANGELOG.md and the archive are left alone — they record the paths as they were. Decision logged as entry 78. `python tools/validate-plugins/validate.py` green. Generated with [Claude Code](https://claude.com/claude-code) by CEH
Repo layout release: plugins move under `plugins/`, maintainer docs move to `docs/`, and the changelog splits at v3.0.0. Nine plugins take PATCH bumps for documentation path fixes; no skill, agent, hook, or script changed. - Bump: MAJOR — plugin source paths move from `./ceh-<name>` to `./plugins/ceh-<name>`, breaking installs that point `settings.json` at a plugin path. Marketplace-name installs are unaffected. The CLAUDE.md repo-tag rule covers only "MINOR for new skills/agents, PATCH for content-only" and does not contemplate a layout break, so the level was chosen to match the BREAKING CHANGE footer already on 4fb15dc. - Manifests: no repo-level version field exists — the repo tag is git-only. Nine plugin manifests moved in the two preceding commits: ceh-advisor 1.0.5, ceh-dev-tools 1.2.3, ceh-orchestration 1.0.6, ceh-plan-build-review 1.1.3, ceh-python-library 1.2.4, ceh-release-flow 1.1.10, ceh-scaffolding 1.0.4, ceh-testing 1.0.4, ceh-usability-audit 1.0.2. - Docs: CHANGELOG.md gains the v4.0.0 entry with its Plugin versions table; CLAUDE.md's Structure tree gains the missing `docs/` row; README needed no further change — its manual-install paths and the TESTING_WORKFLOW.md link were corrected in the two preceding commits. Generated with [Claude Code](https://claude.com/claude-code) by CEH
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Repo layout release,
v3.29.4→v4.0.0.ceh-*plugin directories move toplugins/ceh-*, flat, no tier subfolders.CROSS_REFERENCES.md,TESTING_WORKFLOW.md, and the pre-v3 changelog move todocs/.CHANGELOG.mdsplits at v3.0.0; the archive isdocs/CHANGELOG-v1-v2.md.Why
The root held 23 plugin directories plus six markdown files. Four of those files are pinned to the
root by tooling (GitHub readme rendering and licence detection, Claude Code auto-loading
CLAUDE.mdonly from the project root, release skills targetingCHANGELOG.mdat the root path);the other two were there by habit, and the changelog archive made a third.
plugins/is deliberately flat. Grouping by the CLAUDE.md tier table was considered and rejected —that axis has already been re-cut once, and encoding it in paths turns the next re-categorization
into a 23-
sourceedit instead of one table row.How
Path rewrites separated three kinds of similar-looking string: repo-relative paths gained the
prefix; plugin-internal runtime paths (
ceh-fabled/skills/fabled/references/) resolve against theinstalled plugin root and did not;
plugin/skillreferences (ceh-ops/deploy) name a skill, not afile. Paths recorded in
.agents_workspace/and past changelog entries are left as written.Decisions logged as
.agents_workspace/DECISION_LOG.mdentries 77 and 78.Testing
python tools/validate-plugins/validate.pygreen after each step.the READMEs with path fixes and their
plugin.jsonbumps.HEAD:CHANGELOG.md: all 93 version entries and theirbodies preserved across the split, the only difference being the one
---separator at the cut.Breaking change
Plugin source paths move from
./ceh-<name>to./plugins/ceh-<name>. Installs by marketplacename are unaffected. Anyone pointing
settings.jsonat a plugin path must update it;README.mdand the six plugin READMEs documenting manual installation show the new paths.
Generated with Claude Code by CEH