Skip to content

docs(issue-tracker): codify closing-keyword, title, and comment house style - #124

Merged
kyle-sexton merged 2 commits into
mainfrom
docs/issue-tracker-house-style-decisions
Jul 15, 2026
Merged

docs(issue-tracker): codify closing-keyword, title, and comment house style#124
kyle-sexton merged 2 commits into
mainfrom
docs/issue-tracker-house-style-decisions

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

Summary

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

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

Test plan

  • lefthook run pre-commit — typos, editorconfig, gitleaks, markdownlint all pass
  • 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

… style

Closes six open decisions from the org's issue/PR consistency assessment:
abstracts the personal-vs-org repo topology to point at github-iac's
GovernedRepositories.cs instead of naming specific repos, codifies native
GitHub closing keywords as the default with provisioning's stricter
exception, documents issue titles as free text with no enforced prefix
vocabulary, marks assignee-plus-lease claiming as explicitly deferred with
an activation trigger, notes CODEOWNERS adoption as deferred while
required_approving_review_count stays 0, and codifies the 🤖/citation/🔒
conventions as optional documented patterns.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@claude

claude Bot commented Jul 15, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 0s —— View job


I'll analyze this and get back to you.

@kyle-sexton
kyle-sexton marked this pull request as ready for review July 15, 2026 18:08
@claude

claude Bot commented Jul 15, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 0s —— View job


I'll analyze this and get back to you.

@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: cede416034

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

Comment thread conventions/process/issue-tracker.md Outdated
The deferral rationale claimed a CODEOWNERS file is inert without
required reviews. GitHub auto-requests review from matching owners
independently of branch-protection enforcement; requiring code-owner
approval before merge is a separate, optional setting. Adoption stays
deferred because a single-maintainer org has no second owner for the
auto-request to route to, not because the file would have no effect.
@claude

claude Bot commented Jul 15, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 0s —— View job


I'll analyze this and get back to you.

@kyle-sexton
kyle-sexton merged commit 4d41bd9 into main Jul 15, 2026
39 checks passed
@kyle-sexton
kyle-sexton deleted the docs/issue-tracker-house-style-decisions branch July 15, 2026 20:02
kyle-sexton added a commit that referenced this pull request Jul 16, 2026
…racts

Register runner-input contracts for the link-check and Pulumi version-drift
reusables so strict private consumers can route these privileged scheduled
maintenance lanes through the governed selector instead of a fixed hosted
image. Each names an exact allowedCallerPermissions of contents:read plus
issues:write -- the narrow write-capable caller token its rolling
tracking-issue lane needs -- honored only while genuinely selector-routed;
the reusables' own permissions are unchanged.

Wave 2 of the private-repo hosted-floor elimination
(melodic-software/github-iac#78), consuming the reusable-source runner inputs
added in ci-workflows PR #124.

The contract SHAs are a `feedface...` placeholder pending that PR's
squash-merge. Finalize by replacing that value in policy.json, the
runner-policy test constant, and the README review note with the merged
main commit SHA (all three reusables share it).

standards-sync is intentionally deferred: its App-token caller is read-only,
so runner-input's write-requiring allowedCallerPermissions waiver does not fit
cleanly, and its registration awaits a contract-model decision.
hostedExceptionReasons is unchanged; enum-tightening remains the separate last
wave.

Update the runner-policy golden fixture to assert both new contracts and
adjust the README review note and fixed-hosted list.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3QehVwmWzkBLpKokNCkkt
kyle-sexton added a commit that referenced this pull request Jul 16, 2026
Replace the `feedface...` placeholder with ci-workflows PR #124's squash-merge
commit 3dfb18452a8c6059a22e62456390d84feb10b42f, which carries the governed
runner input for all three reusables, in policy.json (both contract keys), the
runner-policy golden-fixture constant, and the README review note. The
registered link-check and pulumi-version-drift-check runner-input contracts now
pin the reviewed reusable source.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3QehVwmWzkBLpKokNCkkt
kyle-sexton added a commit that referenced this pull request Jul 16, 2026
…racts (#156)

## Summary

Register `runner-input` contracts in
`components/runner-policy/policy.json` for two floor-conversion
reusables, both pinning ci-workflows PR #124's squash-merge commit
`3dfb18452a8c6059a22e62456390d84feb10b42f` (the reviewed source that
carries the governed `runner` input):

- `link-check.yml` — `allowedInputs: ["runner", "args"]`,
`allowedCallerPermissions: {contents: read, issues: write}`.
- `pulumi-version-drift-check.yml` — `allowedInputs: ["runner"]`,
`allowedCallerPermissions: {contents: read, issues: write}`.

Each carries `allowedCallerPermissions` because its rolling
tracking-issue lane writes issues through the caller `GITHUB_TOKEN`; the
waiver is honored only while the call is genuinely selector-routed, and
the reusables' own permissions are unchanged. This also corrects the
now-false README claim that the Pulumi version-drift monitor "remains
fixed to explicit GitHub-hosted images," adds a review note for both
contracts, and extends the runner-policy golden fixture
(`runner-policy.test.mjs`) to assert them. `hostedExceptionReasons` is
**unchanged** — enum-tightening is the separate last wave and must not
land before every consumer has dropped its floor exceptions.

## Why

Wave 2 of the private-repo hosted-floor elimination
(melodic-software/github-iac#78, decision of record 2026-07-16).
ci-workflows PR #124 (Wave 1) added the governed `runner` input to these
reusables' source; this PR registers the reviewed contracts so each
private consumer (Wave 3) can add a `select-runner` job, route the
reusable to the fleet, and drop its `hosted-control-plane` /
`privileged-control-plane` exception. `policy.json` is the upstream
source of truth synced to five consumers, so the contract belongs here.

## Deferred — standards-sync

The third floor-conversion reusable, `standards-sync.yml`, is
**intentionally not registered here.** Its caller `GITHUB_TOKEN` is
read-only (`sync.yml` declares `permissions: contents: read`; all writes
go through a minted App token), but a `runner-input` contract that
passes secrets must carry `allowedCallerPermissions`, which the
validator requires to include at least one `write`
(`runner-policy.mjs:186-198`). There is no honest caller write to
declare, so registering it would bake a least-privilege inaccuracy into
the managed contract. This is a contract-model gap (the secrets waiver
is coupled to a write requirement) routed to the runner-policy component
owner for a "reviewed secrets + read-only caller" contract shape;
`standards-sync` keeps its hosted-only contract until that lands.

## Test plan

- [x] `npm run test:runner-policy` — passing with two new golden
assertions on the registered contracts: 143/143 on this branch base, and
146/146 verified against a local rebase onto current `main` (post #155
review-tier admission, #153 dependabot-policy component).
- [x] `npm run lint:runner-policy`
(`GITHUB_REPOSITORY=melodic-software/standards`) — `Runner policy
passed` on both the branch base and the current-`main` rebase (the #155
validator).
- [x] biome, markdownlint — clean (pre-commit).
- [x] Merge SHA finalized to `3dfb184…` (PR #124 squash-merge) across
`policy.json` (both contract keys), the golden-fixture constant, and the
README review note.

## Related

No linked standards issue. Cross-repo references:

- Wave 2 of melodic-software/github-iac#78 (private-repo hosted-floor
elimination epic).
- Depends on melodic-software/ci-workflows#124 (merged) — source of the
pinned reusable SHA.

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

https://claude.ai/code/session_01K3QehVwmWzkBLpKokNCkkt

---------

Co-authored-by: Claude Fable 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