docs: visible version + reconstructed CHANGELOG#21
Conversation
Adds a single-line "Version: 1.14.0 · CHANGELOG · Marketplace" header right after the H1 so the current version is visible without opening package.json / plugin.json / marketplace.json. Closes the gap where the README had no version surface at all. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Adds a Keep-a-Changelog v1.1.0 file covering 1.1.0 → 1.14.0, reconstructed from `git log` and merged-PR history (no git tags existed at write time). Each entry links its source PR by number. Reconstruction notes (also embedded in the file): - Versions were derived from the package.json value committed at each merge — not from inferred SemVer bumps. - Version 1.13.0 is intentionally skipped; no commit ever carried that number (package.json jumped 1.12.0 → 1.14.0 directly). - A handful of PRs landed without bumping the package version (notably PR #14 design-system rules on the 1.5.0 line, PR #12 premortem on the 1.4.0 line). They are documented under the version line they shipped on rather than promoted to their own entry. - Reference-link footer at bottom assumes git tags will be created post-merge by the maintainer. Until then the compare/... and releases/tag/... URLs will 404. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Before this commit the three version manifests had drifted apart on origin/main: - package.json: 1.12.0 - plugin.json: 1.11.0 - marketplace.json: 1.12.0 (top-level + nested plugins[0].version) CHANGELOG.md (added in the previous commit) declares 1.14.0 as the current release line, so the three manifests are pulled forward to match. The corresponding 1.14.0 functional work (atomic-design enforcement hooks, schemas/, references/, /atomic-rules-init command) ships in a separate PR; this PR only synchronises the version metadata so the manifests stop disagreeing with each other. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Greptile SummaryThis PR introduces a reconstructed
Confidence Score: 3/5The docs and manifest changes are internally consistent, but all four manifests claim 1.14.0 while none of the 1.14.0 features exist in the repository at this commit. The CHANGELOG's 1.14.0 entry documents four concrete artifacts — two hook scripts, a schema file, and a slash command — that are not present anywhere in the repository. Merging before the companion functional PR creates a published package that self-describes features that do not exist. All three manifest files and CHANGELOG.md carry the 1.14.0 version that outpaces the actual codebase; merge ordering relative to the companion functional PR is critical.
|
| Filename | Overview |
|---|---|
| CHANGELOG.md | New file reconstructing full release history 1.1.0–1.14.0; the 1.14.0 entry documents uncommitted features and contains a non-standard ### Skipped sub-heading. |
| README.md | Adds version badge line with CHANGELOG link; the [Marketplace] hyperlink resolves to the GitHub repo rather than the Claude Code marketplace. |
| package.json | Version bumped 1.12.0 → 1.14.0 pre-emptively before the corresponding functional changes are committed. |
| .claude-plugin/plugin.json | Version bumped 1.11.0 → 1.14.0 to align with package.json; same pre-emptive bump concern applies. |
| .claude-plugin/marketplace.json | Both top-level and nested plugin version entries bumped 1.12.0 → 1.14.0; same pre-emptive bump concern. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["This PR #21\n(docs + manifest bump)"] --> B["All manifests → 1.14.0\nREADME version line\nCHANGELOG.md created"]
B --> C{"Companion functional\nPR merged?"}
C -- "Yes" --> D["✅ 1.14.0 features present"]
C -- "No / delayed" --> E["⚠️ Repo claims 1.14.0\nbut features don't exist"]
style E fill:#ffd6d6,stroke:#c00
style D fill:#d6ffd6,stroke:#060
Prompt To Fix All With AI
Fix the following 3 code review issues. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 3
CHANGELOG.md:21-38
**Version 1.14.0 entry documents uncommitted features**
All four manifests are bumped to `1.14.0` in this PR, but every functional artifact the CHANGELOG attributes to that version — `hooks/atomic/pre-atomic.sh`, `hooks/atomic/post-atomic-drift.sh`, `schemas/atomic-design-rules.schema.json`, and the `/make-no-mistakes:atomic-rules-init` command — does not exist in the repository at this commit. Anyone who installs from `main` after this merges will receive a package that self-identifies as `1.14.0` but is missing all of its advertised features, and the `package.json` `files` array entry for `schemas/` will silently ship an empty directory. A safer sequencing: keep all manifests at `1.12.0` here and do the version bump in the companion functional PR, or convert the `1.14.0` entry to `[Unreleased]` and promote it only when the functional PR lands.
### Issue 2 of 3
CHANGELOG.md:51-52
**`### Skipped` is not a valid Keep a Changelog sub-heading type**
The Keep a Changelog spec (v1.1.0, which this file claims to follow) defines exactly six section types: Added, Changed, Deprecated, Removed, Fixed, Security. `### Skipped` is non-standard and may confuse changelog parsers. The information is already in the reconstruction note at the top of the file, so this sub-section is redundant.
```suggestion
<!-- 1.13.0 was intentionally skipped — no commit ever carried that number. See the reconstruction note at the top of this file. -->
```
### Issue 3 of 3
README.md:3
**`[Marketplace]` link resolves to the GitHub repo, not the Claude Code marketplace**
The label implies a marketplace listing URL but the href is the GitHub repository page. If a dedicated marketplace URL exists, use it; otherwise renaming to `[Repository]` avoids misleading readers.
```suggestion
**Version: 1.14.0** · [CHANGELOG](./CHANGELOG.md) · [Repository](https://github.com/DojoCodingLabs/make-no-mistakes-toolkit)
```
Reviews (1): Last reviewed commit: "chore: align package.json + plugin.json ..." | Re-trigger Greptile
| ## [1.14.0] - 2026-05-14 | ||
|
|
||
| ### Added | ||
| - Atomic-design enforcement hooks: `hooks/atomic/pre-atomic.sh`, | ||
| `hooks/atomic/post-atomic-drift.sh` — per-repo PreToolUse + PostToolUse | ||
| enforcement to prevent atomic-design ownership drift across pillars | ||
| (DOJ-4064 Cure 4b, cross-repo cure). | ||
| - Schema: `schemas/atomic-design-rules.schema.json`. | ||
| - Slash command: `/make-no-mistakes:atomic-rules-init` for bootstrapping | ||
| atomic-design rules in a target repo. | ||
| - New keywords on `plugin.json` + `marketplace.json`: `atomic-design`, | ||
| `ownership-enforcement`. | ||
|
|
||
| ### Changed | ||
| - `package.json` `files` array now ships `schemas/` and `references/` so the | ||
| hooks framework has everything it needs at install time. | ||
| - Bumped `plugin.json` 1.11.0 → 1.14.0 and `marketplace.json` 1.12.0 → 1.14.0 | ||
| to align with `package.json` (pre-existing drift between the three manifests). |
There was a problem hiding this comment.
Version 1.14.0 entry documents uncommitted features
All four manifests are bumped to 1.14.0 in this PR, but every functional artifact the CHANGELOG attributes to that version — hooks/atomic/pre-atomic.sh, hooks/atomic/post-atomic-drift.sh, schemas/atomic-design-rules.schema.json, and the /make-no-mistakes:atomic-rules-init command — does not exist in the repository at this commit. Anyone who installs from main after this merges will receive a package that self-identifies as 1.14.0 but is missing all of its advertised features, and the package.json files array entry for schemas/ will silently ship an empty directory. A safer sequencing: keep all manifests at 1.12.0 here and do the version bump in the companion functional PR, or convert the 1.14.0 entry to [Unreleased] and promote it only when the functional PR lands.
Prompt To Fix With AI
This is a comment left during a code review.
Path: CHANGELOG.md
Line: 21-38
Comment:
**Version 1.14.0 entry documents uncommitted features**
All four manifests are bumped to `1.14.0` in this PR, but every functional artifact the CHANGELOG attributes to that version — `hooks/atomic/pre-atomic.sh`, `hooks/atomic/post-atomic-drift.sh`, `schemas/atomic-design-rules.schema.json`, and the `/make-no-mistakes:atomic-rules-init` command — does not exist in the repository at this commit. Anyone who installs from `main` after this merges will receive a package that self-identifies as `1.14.0` but is missing all of its advertised features, and the `package.json` `files` array entry for `schemas/` will silently ship an empty directory. A safer sequencing: keep all manifests at `1.12.0` here and do the version bump in the companion functional PR, or convert the `1.14.0` entry to `[Unreleased]` and promote it only when the functional PR lands.
How can I resolve this? If you propose a fix, please make it concise.| ### Skipped | ||
| - `1.13.0` — intentionally skipped, no commit ever carried this number. |
There was a problem hiding this comment.
### Skipped is not a valid Keep a Changelog sub-heading type
The Keep a Changelog spec (v1.1.0, which this file claims to follow) defines exactly six section types: Added, Changed, Deprecated, Removed, Fixed, Security. ### Skipped is non-standard and may confuse changelog parsers. The information is already in the reconstruction note at the top of the file, so this sub-section is redundant.
| ### Skipped | |
| - `1.13.0` — intentionally skipped, no commit ever carried this number. | |
| <!-- 1.13.0 was intentionally skipped — no commit ever carried that number. See the reconstruction note at the top of this file. --> |
Prompt To Fix With AI
This is a comment left during a code review.
Path: CHANGELOG.md
Line: 51-52
Comment:
**`### Skipped` is not a valid Keep a Changelog sub-heading type**
The Keep a Changelog spec (v1.1.0, which this file claims to follow) defines exactly six section types: Added, Changed, Deprecated, Removed, Fixed, Security. `### Skipped` is non-standard and may confuse changelog parsers. The information is already in the reconstruction note at the top of the file, so this sub-section is redundant.
```suggestion
<!-- 1.13.0 was intentionally skipped — no commit ever carried that number. See the reconstruction note at the top of this file. -->
```
How can I resolve this? If you propose a fix, please make it concise.| @@ -1,5 +1,7 @@ | |||
| # make-no-mistakes | |||
|
|
|||
| **Version: 1.14.0** · [CHANGELOG](./CHANGELOG.md) · [Marketplace](https://github.com/DojoCodingLabs/make-no-mistakes-toolkit) | |||
There was a problem hiding this comment.
[Marketplace] link resolves to the GitHub repo, not the Claude Code marketplace
The label implies a marketplace listing URL but the href is the GitHub repository page. If a dedicated marketplace URL exists, use it; otherwise renaming to [Repository] avoids misleading readers.
| **Version: 1.14.0** · [CHANGELOG](./CHANGELOG.md) · [Marketplace](https://github.com/DojoCodingLabs/make-no-mistakes-toolkit) | |
| **Version: 1.14.0** · [CHANGELOG](./CHANGELOG.md) · [Repository](https://github.com/DojoCodingLabs/make-no-mistakes-toolkit) |
Prompt To Fix With AI
This is a comment left during a code review.
Path: README.md
Line: 3
Comment:
**`[Marketplace]` link resolves to the GitHub repo, not the Claude Code marketplace**
The label implies a marketplace listing URL but the href is the GitHub repository page. If a dedicated marketplace URL exists, use it; otherwise renaming to `[Repository]` avoids misleading readers.
```suggestion
**Version: 1.14.0** · [CHANGELOG](./CHANGELOG.md) · [Repository](https://github.com/DojoCodingLabs/make-no-mistakes-toolkit)
```
How can I resolve this? If you propose a fix, please make it concise.Warns when a version manifest (package.json, plugin.json, marketplace.json, or their .claude-plugin/ namespaced variants) is being bumped without a parallel update to README.md + CHANGELOG.md. This closes the gap PR #21 exposed: the toolkit shipped 1.1.0 -> 1.14.0 with no visible version surface (no README line, no CHANGELOG, no git tags). Without an enforcement rule, the same drift will reappear on the next bump. Pattern (DOJ-4064 three-layer drift thesis, Cure 4 - PreToolUse hooks): - Triggers on Write/Edit/MultiEdit to package.json, plugin.json, marketplace.json, .claude-plugin/plugin.json, .claude-plugin/marketplace.json - Detects new `"version": "X.Y.Z"` field in the written content / new_string - Warns the agent to update README.md "Version:" line + CHANGELOG.md entry in the same change - Tier 2 (warn, non-blocking) - hook cannot see other files in the diff, so it nudges rather than enforces - Bypass marker: version-readme-changelog-sync Sister enforcement (defense-in-depth): the dojo-os repo ships its own PostToolUse hook (.claude/hooks/post-write-version-readme-sync.sh) that catches the same drift locally even when the toolkit isn't installed. 11 new tests, all pass. Total rules: 32 (was 31). Created by Claude Code on behalf of @andres. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…e-in-depth ↔ dojo-os) (#22) * feat(rules): add warn-version-readme-changelog-sync Tier 2 rule Warns when a version manifest (package.json, plugin.json, marketplace.json, or their .claude-plugin/ namespaced variants) is being bumped without a parallel update to README.md + CHANGELOG.md. This closes the gap PR #21 exposed: the toolkit shipped 1.1.0 -> 1.14.0 with no visible version surface (no README line, no CHANGELOG, no git tags). Without an enforcement rule, the same drift will reappear on the next bump. Pattern (DOJ-4064 three-layer drift thesis, Cure 4 - PreToolUse hooks): - Triggers on Write/Edit/MultiEdit to package.json, plugin.json, marketplace.json, .claude-plugin/plugin.json, .claude-plugin/marketplace.json - Detects new `"version": "X.Y.Z"` field in the written content / new_string - Warns the agent to update README.md "Version:" line + CHANGELOG.md entry in the same change - Tier 2 (warn, non-blocking) - hook cannot see other files in the diff, so it nudges rather than enforces - Bypass marker: version-readme-changelog-sync Sister enforcement (defense-in-depth): the dojo-os repo ships its own PostToolUse hook (.claude/hooks/post-write-version-readme-sync.sh) that catches the same drift locally even when the toolkit isn't installed. 11 new tests, all pass. Total rules: 32 (was 31). Created by Claude Code on behalf of @andres. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: bump to 1.15.0 across manifests + README Coordinated bump across the four version surfaces: - package.json 1.14.0 -> 1.15.0 - .claude-plugin/plugin.json 1.14.0 -> 1.15.0 - .claude-plugin/marketplace.json 1.14.0 -> 1.15.0 (top + nested) - README.md "Version: ..." line 1.14.0 -> 1.15.0 This is the first bump that dogfoods the warn-version-readme-changelog-sync rule shipped in the prior commit on this branch: every manifest write would now warn about the README/CHANGELOG update requirement. README is being updated in this same commit; CHANGELOG entry follows in the next commit. Created by Claude Code on behalf of @andres. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(changelog): add 1.15.0 entry (dogfooding the new rule) Adds the 1.15.0 section to CHANGELOG.md immediately above the existing 1.14.0 entry, documenting: - The new warn-version-readme-changelog-sync Tier 2 rule (32 rules total) - The defense-in-depth pattern (toolkit + dojo-os parallel PRs) - The dogfooding observation: this release ships via the rule it adds This is the third atomic commit of the PR: 1. feat(rules): add the rule (commit 5dd0a67) 2. chore: bump to 1.15.0 across manifests + README (commit c9469f0) 3. docs(changelog): add 1.15.0 entry (this commit) Together they demonstrate the full discipline the rule enforces: manifest + README + CHANGELOG all updated in lockstep within the same PR. Created by Claude Code on behalf of @andres. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Gap this closes
The repo had no visible version anywhere a user would look:
README.md— no version line, no badge, no CHANGELOG link.CHANGELOG.md— did not exist.git tag— empty, nov*tags have ever been pushed.And the three version manifests had drifted on
origin/main:package.json1.12.01.14.0.claude-plugin/plugin.json1.11.01.14.0.claude-plugin/marketplace.json(top + nested)1.12.01.14.0This PR is pure docs + version metadata. No
.ts, no.sh, norules.yamlcontent is touched.What ships
Version: 1.14.0 · CHANGELOG · Marketplaceright after the H1 so the current version is one glance away.CHANGELOG.md— full Keep a Changelog reconstruction from 1.1.0 (initial release) through 1.14.0 (this release line). Each entry links its source PR by number.package.json,.claude-plugin/plugin.json, and.claude-plugin/marketplace.jsonall pulled forward to1.14.0so they stop disagreeing.Reconstruction approach
No tags existed, so every version was derived from the package.json value committed at the merge commit of each PR (cross-checked against
gh pr list --state merged):Inferences flagged in the file
gh pr view 10/gh pr view 11both return GraphQL NotFound).Follow-ups (not in this PR)
v1.1.0→v1.14.0so thereleases/tag/v*andcompare/v1.X...v1.YURLs in CHANGELOG.md resolve.## [Unreleased]and the version bump promotes that section to a dated heading.scripts/bump-version.shhelper that updates all three manifests + the README version line + promotes the Unreleased entry in one shot. Deferred from this PR to keep scope minimal.Hard constraints honoured
.ts, no.sh, norules.yamlcontent).git logare documented.DO NOT MERGE
Andrés will review and merge.
Created by Claude Code on behalf of @andres.