Skip to content

docs(contracts): leave stubs at the moved contracts' old paths - #11069

Merged
kyle-sexton merged 8 commits into
mainfrom
docs/7537-b2-stubs-v2
Oct 30, 2026
Merged

kyle-sexton merged 8 commits into
mainfrom
docs/7537-b2-stubs-v2

Conversation

@kyle-sexton

Copy link
Copy Markdown
Member

Refs: #7537

Summary

Part B2 of the #7537 split, stacked on docs/7537-b1-refs. It cherry-picks #10957's own two commits unchanged. It leaves a stub at each moved contract's old path, so links and readers that still name docs/conventions/<name>/ keep resolving. It also removes the first TEMPORARY (#7537) .lycheeignore entry. It replaces #10957, whose base is the superseded #10952.

Merge order. #10952 is re-split into five stacked layers so each review diff stays under pr-review-main's 300 KB cap (MAX_DIFF_BYTES, measured with #10969's write-diff.py):

  1. M docs/7537-b1-moves: 38 folders' pure moves (collapsed to rename lines) and the TEMPORARY link-check entries.
  2. M2 docs/7537-b1-moves-registered: the 7 folders a registry names by README path, with those registries and the synced copies.
  3. M3 docs/7537-b1-moves-lane: rendered-views and the two lane-source folders, plus every lane-source reference edit.
  4. R docs/7537-b1-refs: the remaining reference rewrites.
  5. B2 docs/7537-b2-stubs-v2: docs(contracts): leave stubs at the moved contracts' old paths #10957's stubs.

Merge in that order: M, M2, M3, R, then B2. Each layer targets the branch below it. main squash-merges, so after a layer lands, retarget the next layer to main and merge main into it; until then its diff still carries the landed layer and is over the cap.

Fix

  • 59 stubs: one README per moved folder (48), plus the 11 old sub-paths that something cites. Each stub points to the file's new home under docs/contracts/<name>/.
  • The no-suite entry for the stub example YAMLs.
  • .lycheeignore: the remaining TEMPORARY (#7537) entry is removed, so the file matches main's again and offline link checking covers the old paths.

Verification

  • The patch equals git diff 003d4eb0b1^ 99a46cf7fb line for line.
  • Review diff as write-diff.py builds it: 96,271 bytes, no line over 1,800 bytes, two lane-source stubs. pr-review-main reviews it once it is retargeted to main; that workflow skips a PR whose base is not main.
  • Without the entry, lychee offline reports no error in a contract file, and the repo checks pass against R. Suite results match layer 3's: the planning/surface modules pass when each runs alone, the vitest suites cannot load under node --test, and the one pre-existing test_reader_findings.py failure remains.

Related

Draft: a stacked layer of the #7537 B1 re-split; it goes through /source-control:pull-request ready in merge order, after the layer below lands and main is merged in.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VQb9Q3ucKDVyHvpcU5cfU8

kyle-sexton and others added 6 commits October 29, 2026 13:11
…acts

Move 38 plugin-author contract folders from docs/conventions to
docs/contracts unchanged, and repoint their em-dash allowlist entries.
Readers already try docs/contracts first. The folders a registry names
by README path, and the two lane-source folders, move in the next parts
of the stack so this change's review diff collapses every move.

The TEMPORARY (#7537) .lycheeignore entries skip local links into the
moved folders until the old-path stubs land, and relative links inside
the moved folders until the later moves and the reference rewrites land.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VQb9Q3ucKDVyHvpcU5cfU8
…tracts

Move seven plugin-author contract folders that a registry names by
README path (enforcement-ladder, hook-observability, hook-precision,
pr-scope-budget, pre-pr-ordering, seam-phrasing, standards) from
docs/conventions to docs/contracts unchanged, and repoint those
registries: the conformance dimension owners, the shared-copies and
cross-plugin source registries, and the em-dash allowlist entries.
Resync the eleven shared copies, which name their canonical source,
with a patch fragment for each of the nine carrying plugins, and point
the standards schema $id at its new path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VQb9Q3ucKDVyHvpcU5cfU8
…s at docs/contracts

Move the last three plugin-author contract folders (rendered-views and
the two lane-source folders, instruction-exception-register and
untrusted-content) from docs/conventions to docs/contracts, and repoint
the contract-clause registry and their em-dash allowlist entries.

Point every lane-source reference at docs/contracts: AGENTS.md,
.claude/code-metrics.yaml, the two .claude/rules files, the untrusted-
content contract's own links, and release-publish-plugins.yml, which
now stages docs/contracts beside docs/conventions. Keeping every lane
source in this one part leaves the main-run review a diff it reads
whole.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VQb9Q3ucKDVyHvpcU5cfU8
Rewrite the in-place references to the moved plugin-author contracts:
links inside the moved contracts themselves, the docs that link them,
and the comments, registries and prompts outside docs that name them.
Drop the TEMPORARY (#7537) .lycheeignore entry for relative links inside
the moved folders, which these rewrites resolve.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VQb9Q3ucKDVyHvpcU5cfU8
Each contract folder moved to docs/contracts/ keeps a README at its old
docs/conventions/<name>/ path that points at the new one and keeps every
section heading, so links from installed plugin versions keep resolving.
The 11 old sub-paths that files under plugins/, lib/, scripts/ or
.github/ cite also get a pointer stub: three sub-docs, six JSON Schemas
that keep their old $id and $ref the new one, and two comment-only
ecosystem-commands example stubs, recorded as no-suite paths.

Refs: #7537

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The old-path stubs now stand at docs/conventions/<name>/, so the
temporary .lycheeignore entry that skipped links into the 48 moved
contract folders is removed and those links are checked again.

Refs: #7537

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kyle-sexton and others added 2 commits October 29, 2026 22:23
…n merge dropped

Merging main (with the squashed #7537 moves) into this branch, which carries
the pre-squash move commits, let rename detection discard the stubs added at
the old docs/conventions paths and the .lycheeignore removal. Reapply the
branch's own two commits so the diff against main is exactly the stub layer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kyle-sexton
kyle-sexton marked this pull request as ready for review October 30, 2026 02:54
@kyle-sexton
kyle-sexton enabled auto-merge October 30, 2026 02:54
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-30T02:58:07.806973Z 03bbc5a Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@kyle-sexton
kyle-sexton added this pull request to the merge queue Oct 30, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 03bbc5a8f6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/melodic-software/claude-code-plugins/blob/main/docs/conventions/standards/standards.schema.json",
"description": "Moved to docs/contracts/standards/standards.schema.json; this schema refers there.",
"$ref": "https://github.com/melodic-software/claude-code-plugins/blob/main/docs/contracts/standards/standards.schema.json"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reference the raw standards schema

When a validator loads this compatibility schema and follows $ref, the github.com/.../blob/... URL serves GitHub’s HTML viewer rather than JSON, so reference resolution fails and consumers using the old path cannot validate their standards config. Point the reference at the raw file, as the other moved schema stubs do, or use a relative reference.

Useful? React with 👍 / 👎.

Merged via the queue into main with commit 2bd8b34 Oct 30, 2026
34 checks passed
@kyle-sexton
kyle-sexton deleted the docs/7537-b2-stubs-v2 branch October 30, 2026 03:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant