Document the README + HISTORY cspell CI scope in CODESTYLE - #516
Merged
Conversation
Propagate the CODESTYLE "Spelling CI scope" rule from the template (ptr727/ProjectTemplate#302, #303): the CI spell-check gate covers README.md + HISTORY.md, not all markdown, with broad live checking left to the editor extension. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This docs-only PR updates CODESTYLE.md to document the intended scope of the CI spelling (cspell) gate, clarifying that CI enforces spelling for only the most visitor-facing markdown files while broader live spell-checking is handled in-editor.
Changes:
- Add a new Markdown/Spelling guideline describing the CI spelling gate scope (README + HISTORY only).
- Explain why CI intentionally does not gate spelling across all
**/*.mdfiles.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #516 +/- ##
========================================
Coverage 57.28% 57.28%
========================================
Files 15 15
Lines 1386 1386
Branches 89 89
========================================
Hits 794 794
Misses 573 573
Partials 19 19 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Copilot review: the item referenced a Lint: Spelling VS Code task and an AGENTS.md cspell one-liner that exist in the template but not in this repo. Reword generically so the guidance is accurate regardless of which local cspell surfaces a repo actually has. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Aug 30, 2026
Closed
Merged
ptr727
added a commit
that referenced
this pull request
Aug 31, 2026
Promotes the ProjectTemplate resync to `main`. Five pull requests, merged to `develop` in order: #547, #553, #550, #551, #552. **Replaces #555.** That one opened `develop` directly into `main` and went `DIRTY`, which is the spurious EOL-only promotion conflict the fleet's own branching guidance names: `develop` flipped the `.editorconfig` line-ending default to LF and `main` has not caught up, so every renormalized path conflicts whole-file. `develop`'s squash-only ruleset and required linear history forbid resolving on `develop` itself, so the resolution is prepared on this throwaway branch off `main`, exactly as that guidance prescribes. Five files conflicted. Each was checked with the documented test rather than resolved on the shape of the conflict. `CreateMatrix/CreateMatrix.csproj`, `Make/Matrix.json` and `Make/Version.json` are content-identical modulo EOL. `CODESTYLE.md` and `CreateMatrixTests/CreateMatrixTests.csproj` genuinely differ, so each was proved a superset instead: every line present only on `main` is a superseded version, being the `AGENTS.md` routing that `develop` repointed to `GOVERNANCE.md`, the CRLF line-endings item, two list items renumbered when the encoding rule was inserted, and the pre-MTP test packages. **The merged tree is byte-identical to `develop`**, so nothing on `main` survives that `develop` had not already replaced. ## What lands | | | | --- | --- | | **Line endings** | `.gitattributes` becomes `* text=auto eol=lf` and `.editorconfig` declares `end_of_line = lf` on `[*]`, with `*.bat`/`*.cmd` the one CRLF exception. 85 tracked files renormalized. The `CreateMatrix` generator moves with them, or the codegen App would rewrite its own outputs back to CRLF on its next scheduled run. | | **Test runner** | Native Microsoft.Testing.Platform per WORKFLOW.md D1.6, as the hub settled it in ptr727/ProjectTemplate#1111. Unblocks the Dependabot bumps that had been red since xunit.v3 4.0.0 dropped the VSTest bridge. | | **Carried content** | The hub's `.github/skills/` tree (37 files, digest-verified), `host-tools.json`, `CLAUDE.md`, `GOVERNANCE.md`, and the shared lint config. | | **Instruction set** | `AGENTS.md` split onto the router model, from 243 lines to 115, with the repo-specific half moved to new `ARCHITECTURE.md` and `OPERATIONS.md`. `repo-config/` retired. | | **README** | Restructured to the fleet shape, eleven `readme-structure` findings closed, and the 2.15 release documented. | | **Security** | `validate-task.yml` and `test-pull-request.yml` given least privilege. They ran with the repository default, which is `write` on this repo with `can_approve_pull_request_reviews` true, while only ever reading the tree. | ## Reviewing the diff `git diff --ignore-cr-at-eol origin/main origin/develop` reduces the 143-file diff to the substantive changes. Everything else is the CRLF-to-LF renormalization, which is the EOL-only promotion conflict the fleet's own branching guidance names. ## Checks before opening this `main` carries no content `develop` lacks. `git diff --ignore-cr-at-eol origin/develop origin/main` shows 980 lines present only on `main`, and every one is a superseded version of something `develop` deliberately changed: `main`'s CRLF `.editorconfig` pins, its `* -text` `.gitattributes`, its pre-split 243-line `AGENTS.md`, its `AppendLineCrlf` generator, its `set -euo` run blocks. No file has content on `main` that is not either carried forward or intentionally replaced. The three commits labelled main-only were checked individually rather than assumed, since those are the ones the develop-staleness rule exists for: the cspell CI scope from #515/#517 is byte-identical on both branches, `CODESTYLE.md`'s "Spelling CI scope" from #516 is present, and the author-identity rule from #511 is in the carried `GOVERNANCE.md`. The commit counts look alarming and are not: `develop` is 19 ahead and 99 behind, but 70 of those 99 are bot merges that dual-target both branches as separate commits, and most of the rest are `main`'s own promotion merge commits, which never flow back by construction. ## Not in this promotion - **Two `interface` audit findings stay open by decision.** `publish-release.yml` missing job `publish` and `merge-bot-pull-request.yml` missing job `merge-bot` both resolve to adopting hub-hosted task workflows this repo has not adopted, and `spec/divergences.json` states adoption "is a separate, later change per repo". Renaming jobs to satisfy the checker would report conformance without adopting anything. - **The publish chain's workflow permissions**, filed as #554. Least privilege there is not `contents: read`, a wrong scope breaks publishing rather than failing a lint, and it would surface on a weekly scheduled run. - **An inert xUnit sequential collection**, filed as #548. ## Filed upstream Four issues against `ptr727/ProjectTemplate` from work this resync exposed: promotion candidates and two misleading interface findings (#1116, including my own correction retracting six of ten), the MTP zero-tests-locally behaviour (#1122), the version-floor guardrail (#1124), and 18 findings against carried canonical content that cannot be fixed downstream (#1131). ## Owed after merge The GitHub About description still carries the retired tagline. It feeds the Docker Hub short description through the docker-readme task, so that surface disagrees with the README until it is set by hand. `registry/repos.json` declares no `description` for this repo, so the configure script cannot write it. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Reorganized project documentation around NxWitness, including build, distribution, releases, product variants, troubleshooting, and release notes. - Added architecture, governance, operations, and comprehensive development guidance. - **Developer Experience** - Added editor tasks for building, formatting, validation, testing, and linting. - Standardized line endings and formatting across project files. - **CI and Quality** - Improved shell error reporting and workflow permission safety. - Updated coverage generation and test tooling. - Added stricter Markdown and spelling validation. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
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.
Docs-only: append a new "Spelling CI scope" item (item 3) to the Markdown and Spelling list in CODESTYLE.md, documenting that the CI spell-check gate covers README.md + HISTORY.md only while broad live checking is the cspell editor extension's job. Propagates the template rule from ptr727/ProjectTemplate#302 and ptr727/ProjectTemplate#303.
🤖 Generated with Claude Code