Skip to content

CODESTYLE.md Mandates Python for Every Program While the Hub Itself Ships Nine PowerShell Ones #1153

Description

@ptr727

Three defects in CODESTYLE.md's language coverage, grouped because settling the first decides the other two. Surfaced by the canonical-content review pass on the PR for #1075/#1120, which reads each unit whole as a carrier does. Deferred out of that PR because the first is a scope decision rather than a text fix.

CODESTYLE.md is carried at intent, whole file.

1. "Everything else is Python" is falsified by the authoring repo

CODESTYLE.md "Shell" states:

Bash, and only where a program cannot be Python: a bootstrap that installs the interpreter cannot be written in it, and a host tool that must run before a development toolchain exists cannot depend on one. Everything else is Python, with a test under the scripts tree's tests/ directory.

The hub tracks nine PowerShell programs, none of them Bash and none of them Python:

$ git ls-files '*.ps1' | head
host-setup/bootstrap.ps1
host-setup/menu.ps1
host-setup/windows/install-tools.ps1
scripts/skills_install.ps1

The fleet lint gate explicitly provides for them: GOVERNANCE.md "Running the Linters Locally" says "for a repo that carries .ps1 files, PSScriptAnalyzer", and PSScriptAnalyzerSettings.psd1 sits at the repo root. CODESTYLE.md has no PowerShell section, so an agent asked to change a Windows host-setup script reads this sentence as forbidding the language the file is already written in, and the doc offers no section to route to instead.

The decision this needs: does CODESTYLE.md grow a PowerShell section (paired with a powershell-codestyle Skill, per the pattern the other three language sections follow), or does the Shell section's sentence narrow to say what it actually means about Bash-versus-Python without claiming to cover every language?

2. "Shell" carries no scope note where ".NET" and "Python" both do

.NET and Python each open with an italic scope note:

This section applies only to the .NET side. A repo with no .NET projects still carries it (the file is carried whole) and ignores it.

Shell has none. A reader who has only that section, in a repo that ships no shell scripts, reads an unscoped fleet mandate about which language every program must be written in, with nothing saying the section is ignorable. Whether it gets the note depends on what item 1 decides the section claims.

3. cspell and CSpell in the same file, against the file's own rule

CODESTYLE.md "General" opens with "Use each tool's official casing in task labels, docs, and prose", then writes the tool two ways:

Location Form
General, the doc-lint set cspell
Markdown and Spelling CSpell

A reader applying the unit's own rule to a new task label has the file itself as evidence for both. Measured across the tree, 75 occurrences are lowercase and 9 capitalized, so most of the lowercase ones are the cspell.json filename and CLI invocations, which are correctly lowercase, and settling the prose form is a sweep rather than a one-line edit. The doc-lint list also reads consistently at present, since markdownlint and editorconfig-checker beside it are lowercase too.

Provenance

Canonical-content review pass against CODESTYLE.md "General" and "Shell", run on the branch for #1075/#1120/#1114/#1119/#1129/#1078. Items 1 and 3 verified against the tree directly.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    decisionNeeds the maintainer's decision before it can be worked

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions