Consolidate code style into one CODESTYLE.md and govern tasks - #178
Merged
Conversation
Surfaced re-syncing ptr727/Utilities; addresses the CODESTYLE carry-contract gaps in #175 plus related governance the maintainer raised. - Merge PyPiLibrary/CODESTYLE.md into a single root CODESTYLE.md structured as General -> .NET -> Python, with each language section droppable (the .editorconfig [*.cs] boundary model). Resolves the #175 ambiguity: CODESTYLE.md is now a verbatim-carry artifact with marked adapt-zones (project-folder list, InternalsVisibleTo names, task labels) and load-bearing repo-root placement. - Add cross-cutting rules in the General section: official-tooling casing; a per-language "clean-compile" verification (named tasks/commands, carried verbatim, canonical command+arg spec, run after every edit, native commands OK if they match exactly); and a suppression scope hierarchy where brownfield is never a license to relax severities (annotation on symbol -> owning project's config -> root only if generally applicable; never #pragma, never batch). - Govern .vscode/tasks.json: rename labels .Net* -> .NET* (official casing), update launch.json preLaunchTask, mark the .NET clean-compile group carried verbatim vs convenience/project-specific tasks. The .NET clean-compile is the .NET Format task (CSharpier -> build -> verify); bare dotnet format is not sufficient. - Wire the carry contract and pointers through AGENTS.md, README, and .github/copilot-instructions.md; fold the two style-guide links into one. Closes #175 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the repository's governance docs/config to make CODESTYLE.md a single consolidated style guide (General + droppable .NET/Python sections), removes the now-redundant PyPiLibrary/CODESTYLE.md, and updates the derived-repo carry contract and VS Code task naming to use official .NET casing.
Changes:
- Consolidate Python and .NET style guidance into a single repo-root
CODESTYLE.mdwith a shared General section and droppable language sections. - Update carry-contract documentation (
AGENTS.md,README.md,.github/copilot-instructions.md) to reference the consolidatedCODESTYLE.md. - Rename VS Code task labels and launch preLaunchTask references from
.Net*to.NET*and document task governance.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates template adoption checklist to include CODESTYLE.md and clean-compile governance. |
| PyPiLibrary/CODESTYLE.md | Removes the standalone Python style guide (content moved to root CODESTYLE.md). |
| CODESTYLE.md | Consolidates style guidance into General + droppable .NET/Python sections and adds new governance rules. |
| AGENTS.md | Updates style-guide references and expands the verbatim-carry contract to include CODESTYLE.md (and clean-compile governance). |
| .vscode/tasks.json | Renames .Net* tasks to .NET* and adds governance comments for clean-compile tasks. |
| .vscode/launch.json | Updates preLaunchTask labels to .NET Build. |
| .github/copilot-instructions.md | Updates style-guide pointers to reference consolidated CODESTYLE.md. |
| .editorconfig | Adds guidance comments aligning suppressions with the new CODESTYLE suppression hierarchy. |
…mmands PR #178 review: - Add dependsOrder: sequence to the .NET Format task so CSharpier -> build run in order, not in parallel (a race, and it contradicted the documented chain). - Align CODESTYLE.md's native command sequence with the actual task arguments (csharpier --log-level=debug, build --verbosity=diagnostic). - Clarify the AGENTS.md/README carry contract: clean-compile is carried as VS Code tasks where the template ships them (the .NET group), otherwise as the documented commands (Python), so it no longer implies every language has tasks. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PR #178 review: the General spelling rule said "US or UK English," which contradicts the repo-wide US-English convention in AGENTS.md. Align to US English and defer to AGENTS.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PR #178 review: "use via the run_task tool" named an agent-specific tool that isn't a standard VS Code concept and isn't defined elsewhere. Point to VS Code's task runner (Terminal -> Run Task) or an agent's task-running tool instead. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PR #178 review: the inline native command sequence kept partially diverging from the .vscode/tasks.json task definitions (path arg, verbosity). Point to tasks.json as the canonical command spec and describe the chain at a high level instead of duplicating a CLI that can drift. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jun 22, 2026
Closed
Closed
ptr727
added a commit
that referenced
this pull request
Jun 22, 2026
… quota (#180) Promote accumulated `develop` work to `main` so derived repos can re-sync from `main` (the stable ref) rather than tracking `develop`. Docs / CI / config only — no `version.json` bump (no functional change). ## Notable contents - **Consolidate code style + carry contract** (#178, closes #175): one root `CODESTYLE.md` (General → .NET → Python, droppable sections); `PyPiLibrary/CODESTYLE.md` removed; `CODESTYLE.md` + `.vscode/tasks.json` added to the verbatim-carry list; official-tooling casing (`.Net*` → `.NET*`); clean-compile rule; brownfield/suppression scope hierarchy; `dependsOrder: sequence` on the `.NET Format` task. - **Clarify project-rule home + harden Copilot runbook** (#173): project conventions/API contracts live in `AGENTS.md`, not `.github/copilot-instructions.md`; a no-inline-comment review is a clean pass; poll for the auto-review before self-triggering. - **Cut Actions artifact-storage quota usage** (#179): PR smoke builds no longer upload artifacts nothing consumes. - Plus prior develop work: docs/comment cleanup (#167), `check-upstream-version-task` structured multi-key state (#169) + CRLF state file (#172), `publish-docker-readme-task`, and routine codegen updates. ## Notes - develop → main is **merge-commit only** (preserves develop's commit list as a second-parent reference on `main`). - Merging closes #173 and #175 (their `Closes` keywords reach the default branch). - After merge, the downstream re-sync issues (each updated with the current state) can point at `main`.
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.
Addresses #175 and the related governance the maintainer raised while re-syncing
ptr727/Utilities. Docs/config only.Single consolidated CODESTYLE.md (#175)
PyPiLibrary/CODESTYLE.mdis merged into one rootCODESTYLE.mdstructured General → .NET → Python, each language section droppable like.editorconfig's[*.cs]boundary. This resolves #175's ambiguity: CODESTYLE.md is now a verbatim-carry artifact (added to the list in AGENTS.md + README) with load-bearing repo-root placement and clearly marked adapt-zones (project-folder list,InternalsVisibleTonames, task labels).New General-section rules
.NET,CSharpier,ruff,pyright,uv(no personal variants).#pragma, never a project-wide batch. (.NET and Python mechanics in their sections.)tasks.json governance + casing
Renamed task labels
.Net*→.NET*(andlaunch.jsonpreLaunchTask); marked the .NET clean-compile group (.NET Build/CSharpier Format/.NET Format) as carried-verbatim vs convenience/project-specific tasks. The .NET clean-compile is the.NET Formattask (CSharpier → build →--verify-no-changes); baredotnet formatis not sufficient.Verification
.md; CRLF preserved on every touched file (incl..json).tasks.jsonparses as JSONC and.NET FormatdependsOnresolves to the renamed labels; no stale.Netlabels orPyPiLibrary/CODESTYLE.mdlinks remain repo-wide.Note: the template's
.editorconfiganalyzer baseline is unchanged; Utilities' local relaxations re-sync separately. Carry contract now addsCODESTYLE.md+.vscode/tasks.jsonand removesPyPiLibrary/CODESTYLE.md— downstream re-sync heads-ups to follow post-merge.