Skip to content

Consolidate code style into one CODESTYLE.md and govern tasks - #178

Merged
ptr727 merged 5 commits into
developfrom
consolidate-codestyle-govern-tasks
Jun 22, 2026
Merged

Consolidate code style into one CODESTYLE.md and govern tasks#178
ptr727 merged 5 commits into
developfrom
consolidate-codestyle-govern-tasks

Conversation

@ptr727

@ptr727 ptr727 commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Addresses #175 and the related governance the maintainer raised while re-syncing ptr727/Utilities. Docs/config only.

Single consolidated CODESTYLE.md (#175)

PyPiLibrary/CODESTYLE.md is merged into one root CODESTYLE.md structured 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, InternalsVisibleTo names, task labels).

New General-section rules

  • Official-tooling casing.NET, CSharpier, ruff, pyright, uv (no personal variants).
  • Clean-compile verification — each language defines a named build+lint+format+analysis check, carried verbatim; run it after every edit. The task definition is the canonical command/argument spec; running the equivalent native commands is fine only if sequence, arguments, and strictness match exactly (no shortcuts/looser flags).
  • Brownfield + suppression hierarchy — a new port never licenses relaxing analyzer/linter severities or muting diagnostics. Suppress only genuine false-positives, narrowest scope first: in-code annotation on the symbol → owning project's config → root config only if generally applicable. Never #pragma, never a project-wide batch. (.NET and Python mechanics in their sections.)

tasks.json governance + casing

Renamed task labels .Net*.NET* (and launch.json preLaunchTask); 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 Format task (CSharpier → build → --verify-no-changes); bare dotnet format is not sufficient.

Verification

  • markdownlint-cli2 clean on all changed .md; CRLF preserved on every touched file (incl. .json).
  • tasks.json parses as JSONC and .NET Format dependsOn resolves to the renamed labels; no stale .Net labels or PyPiLibrary/CODESTYLE.md links remain repo-wide.
  • All consolidated CODESTYLE.md internal anchors resolve.

Note: the template's .editorconfig analyzer baseline is unchanged; Utilities' local relaxations re-sync separately. Carry contract now adds CODESTYLE.md + .vscode/tasks.json and removes PyPiLibrary/CODESTYLE.md — downstream re-sync heads-ups to follow post-merge.

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>
Copilot AI review requested due to automatic review settings June 22, 2026 15:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.md with a shared General section and droppable language sections.
  • Update carry-contract documentation (AGENTS.md, README.md, .github/copilot-instructions.md) to reference the consolidated CODESTYLE.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.

Comment thread .vscode/tasks.json
Comment thread CODESTYLE.md Outdated
Comment thread README.md Outdated
Comment thread AGENTS.md Outdated
…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>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.

Comment thread CODESTYLE.md Outdated
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>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.

Comment thread CODESTYLE.md Outdated
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>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.

Comment thread CODESTYLE.md Outdated
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>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated no new comments.

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`.
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.

2 participants