Skip to content

feat: adopt Phase 3 hygiene lanes; add canonical comment-hygiene module - #25

Merged
kyle-sexton merged 1 commit into
mainfrom
feat/phase3-hygiene-adoption
Jun 23, 2026
Merged

feat: adopt Phase 3 hygiene lanes; add canonical comment-hygiene module#25
kyle-sexton merged 1 commit into
mainfrom
feat/phase3-hygiene-adoption

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

Adopts the four ci-workflows Phase 3 cross-cutting hygiene lanes by SHA-pin, and lands the canonical comment-hygiene config module upstream here (standards is the source of truth; ci-workflows holds a vendored byte-identical copy).

Lanes adopted (ci.yml + ci-status aggregator)

Lane Pin Notes
exec-bit da704ff
machine-specific-paths da704ff
eol-renormalize da704ff
comment-hygiene 04a6dac excludes intentionally-bad fixtures + the module; runs the module fixtures test

New module modules/comment-hygiene/

  • comment-hygiene-patterns.sh — the policy library, byte-identical to the ci-workflows vendored copy (lockstep, LF-preserved). Org-default generalized policy.
  • README.md, comment-hygiene.test.sh (shell harness), and fixtures/comment-hygiene/{good,bad} — matching the existing module convention (README + test + fixtures + a module fixtures test step).

exec-bit mode fixes

exec-bit surfaced 15 shebang scripts committed as mode 100644 — Windows core.filemode=false drift. chmod +x brings them to 100755. The harness invokes them via bash, so this is policy compliance, not a behavior change. Fixtures carry no shebang and stay 100644.

Verification (local, Git Bash)

All four lanes pass against the working tree: exec-bit clean after the mode fixes, machine-specific-paths clean, comment-hygiene clean with the exclusion (confirmed the exclusion masks only the bad fixture + module, nothing real), module test green, new files LF, actionlint clean. The comment-hygiene.test.sh carries only an SC1091 info finding — identical to the existing editorconfig.test.sh.

🤖 Generated with Claude Code

Adopts the four ci-workflows Phase 3 cross-cutting hygiene lanes by SHA-pin and
lands the canonical comment-hygiene config module upstream (standards is the
source of truth; ci-workflows holds a vendored byte-identical copy).

Lanes (ci.yml + ci-status aggregator):
- exec-bit, machine-specific-paths, eol-renormalize @ da704ff
- comment-hygiene @ 04a6dac — excludes intentionally-bad fixtures and the module
  (their content references the marker tokens), and runs the module fixtures test

New module modules/comment-hygiene/:
- comment-hygiene-patterns.sh — the policy library, byte-identical to the
  ci-workflows vendored copy (lockstep, LF). Org-default generalized policy.
- README.md, comment-hygiene.test.sh (shell harness), and
  fixtures/comment-hygiene/{good,bad} matching the existing module convention.

exec-bit surfaced 15 shebang scripts committed as mode 100644 (Windows
core.filemode drift); chmod +x brings them to 100755 — the harness invokes them
via `bash`, so this is policy compliance, not a behavior change. Fixtures carry
no shebang and stay 100644.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kyle-sexton
kyle-sexton merged commit 7370b20 into main Jun 23, 2026
31 checks passed
@kyle-sexton
kyle-sexton deleted the feat/phase3-hygiene-adoption branch June 23, 2026 15:32

@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: 8b4f5ad3c4

ℹ️ 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".

violations=$((violations + 1))
continue
fi
done < <(awk '/^[[:space:]]*(\/\/|#)/ { print NR ":" $0 }' <<<"$content")

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 Scan inline comments as well

Because the policy only feeds lines whose first non-space token is # or // into the matcher, deferred-work markers in ordinary trailing comments are silently accepted, e.g. value=1 # TODO: remove workaround in shell/Python/YAML/TOML or const x = 1; // FIXME in JS/TS. The new gate is described as preventing these markers in code comments, so this leaves a common production-comment path unenforced while the fixture test still passes because it only covers full-line comments.

Useful? React with 👍 / 👎.

kyle-sexton added a commit that referenced this pull request Jun 24, 2026
…ncements built (#38)

ci-workflows #25#28 built the action enhancements the first-wave parity-gap lanes needed (editorconfig git-tracked discovery, shellcheck severity, shfmt action, powershell fail-on-no-files + #1708 retry, gitleaks scan-mode + redact, pyright warnings-as-errors toggle). medley consumed them in a second cutover wave (PR #1161): six lanes moved from inline to SHA-pinned references. Mark the enhancements built in plan.md Phase 4; record the second wave in rollout.md. Still deferred: comment-hygiene widening, reference-integrity heading-cite, Pester, skill-governance, typescript, dotnet.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
kyle-sexton added a commit that referenced this pull request Jul 15, 2026
… style (#124)

## Summary

Codifies six open decisions from the org's issue/PR consistency
assessment into `conventions/process/issue-tracker.md`:

- **#9** `entities-governance-doc-topology-reference-style` — abstracts
the personal-vs-org repo-topology prose (no more named
`melodic-software/github-iac` / `kyle-sexton/github-iac` links); points
at `github-iac`'s `GovernedRepositories.cs` as the sole source of truth
for which repositories are governed and how.
- **#23** `entities-closing-keyword-house-style-convention` — codifies
native GitHub closing keywords (`Closes`/`Fixes`/`Resolves` `#N`) as the
default house style, with `provisioning`'s stricter requirement (native
keyword plus a manual `## Related` section, per decisions #58/#59) as
the one named exception.
- **#25** `naming-issue-title-vocabulary-governance` — codifies issue
titles as free text with no enforced prefix vocabulary (no `[CC]`-style
conventional-commit tags), documenting the existing silence as a
deliberate choice.
- **#45** `entities-assignee-claiming-guidance-relevance` — keeps the
existing assignee-plus-lease claiming guidance but marks it explicitly
deferred, with an activation trigger (required reviewers /
multi-maintainer assignment contention).
- **#48** `metadata-codeowners-adoption` — adds a one-line note that
CODEOWNERS adoption is deferred, contingent on decision #11
(`required_approving_review_count` staying at 0 org-wide) — CODEOWNERS
is inert without required reviews.
- **#49** `comments-codify-human-conventions` — codifies three optional
documented conventions: a 🤖 footer marking bot-authored comments, citing
evidence when closing on it, and a 🔒 marker for claimed issues
(explicitly framed as the lightweight interim signal until #45's
mechanism activates).

Decisions Log:
https://claude.ai/code/artifact/232ecdce-8316-4880-8c0a-dc3c7dcf3a63

## Test plan

- [x] `lefthook run pre-commit` — typos, editorconfig, gitleaks,
markdownlint all pass
- [x] Grepped the file for residual `kyle-sexton`/named `github-iac`
repo references — none remain
- [ ] Human review of tone/placement against the rest of the process
conventions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
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