From 53bf373c8b260249a5fcc37172173ebba7ea82ec Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Wed, 1 Jul 2026 11:20:06 +0200 Subject: [PATCH 1/5] Require fully qualified issue and PR references in Issue Format --- src/docs/Ways-of-Working/Issue-Format.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/docs/Ways-of-Working/Issue-Format.md b/src/docs/Ways-of-Working/Issue-Format.md index 678c2ea..1734dec 100644 --- a/src/docs/Ways-of-Working/Issue-Format.md +++ b/src/docs/Ways-of-Working/Issue-Format.md @@ -13,6 +13,7 @@ Every issue in the PSModule organization follows the same structure. The format - **Comments record change history only.** Each description update is accompanied by a comment summarizing what changed and why. - **Tone is impersonal.** No first-person ("I", "my") or second-person ("you", "your") language. Neutral references like "the user", "the developer", or passive constructions. - **External references are hyperlinks.** Every mention of an API, RFC, library, doc, or tool is a clickable `[text](url)` link. No bare URLs. +- **Issue and PR references are fully qualified.** Cross-reference other issues and pull requests with `Owner/Repo#N` (for example `PSModule/GitHub#123`), never the bare `#123` shorthand, so links resolve unambiguously across repositories and in release notes. Outside GitHub — Jira, Confluence, Slack, or any surface without GitHub autolinking — use the full URL (`https://github.com/PSModule/GitHub/issues/123`). - **No duplicates.** Existing issues are searched before creating or restructuring. Duplicates are consolidated or cross-linked. ## Title From 56f95b0a1dd748db55149dd5c40c30f0888f0085 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Wed, 1 Jul 2026 11:20:44 +0200 Subject: [PATCH 2/5] Add full-URL guidance and fully qualified example to PR Format --- src/docs/Ways-of-Working/PR-Format.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/docs/Ways-of-Working/PR-Format.md b/src/docs/Ways-of-Working/PR-Format.md index cd637fe..87c7d7f 100644 --- a/src/docs/Ways-of-Working/PR-Format.md +++ b/src/docs/Ways-of-Working/PR-Format.md @@ -103,7 +103,7 @@ Omit the section entirely if there's nothing noteworthy. ### 4. Related issues -A collapsible `
` block at the very end of the description containing issue links. Always use fully qualified references (`Owner/Repo#N`) so links work across repositories. +A collapsible `
` block at the very end of the description containing issue links. Always use fully qualified references (`Owner/Repo#N`, for example `PSModule/GitHub#123`) — never the bare `#123` shorthand — so links resolve unambiguously across repositories and in release notes. When a reference appears outside GitHub (release announcements, Jira, Slack, external docs), use the full URL (`https://github.com/PSModule/GitHub/issues/123`). ```markdown
@@ -150,7 +150,7 @@ Commands that query a specific repository, enterprise, or release by name now re - `GitHubRepository` class: `CustomProperties` property changed from `[PSCustomObject]` to `[GitHubCustomProperty[]]`. - `Invoke-GitHubGraphQLQuery`: error handling split into partial-success (data + errors → warnings) and full-failure (errors only → terminating error) branches. - Null guards added to `Get-GitHubRepositoryByName`, `Get-GitHubMyRepositoryByName`, and related functions. -- Implementation plan progress: tasks 1–3 in #218 completed; task 4 (integration tests) remains. +- Implementation plan progress: tasks 1–3 in PSModule/GitHub#218 completed; task 4 (integration tests) remains.
Related issues From c990ce12b5bfc0397a94a43668fd52673589ccf4 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Wed, 1 Jul 2026 11:21:09 +0200 Subject: [PATCH 3/5] Use fully qualified issue references in Commit Conventions --- src/docs/Ways-of-Working/Commit-Conventions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/docs/Ways-of-Working/Commit-Conventions.md b/src/docs/Ways-of-Working/Commit-Conventions.md index c55a0f1..335231e 100644 --- a/src/docs/Ways-of-Working/Commit-Conventions.md +++ b/src/docs/Ways-of-Working/Commit-Conventions.md @@ -8,7 +8,7 @@ Commit messages serve two audiences: the engineer reading `git log` six months f 2. **No conventional-commit prefixes.** No `fix:`, `feat:`, `docs:`, `chore:`, `refactor:`, etc. The change type is captured at the PR level — repeating it on every commit adds noise without information. 3. **No generic messages.** `Update for PR`, `WIP`, `fixes`, `more changes` — all forbidden. They erase traceability. 4. **One logical change per commit.** Micro-iterative discipline. If a change touches three unrelated concerns, that's three commits. -5. **Reference issues by number when natural** — but don't force it. `Fixes #N` belongs in the PR description, not every commit message. +5. **Reference issues with the fully qualified `Owner/Repo#N` form when natural** — but don't force it. A closing keyword such as `Fixes Owner/Repo#N` belongs in the PR description, not every commit message. Avoid the bare `#N` shorthand so references stay unambiguous across repositories. ## Examples From 0ec8a09815764cb61d1532148a4ebd8e63708b7b Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Wed, 1 Jul 2026 11:28:30 +0200 Subject: [PATCH 4/5] Scope issue and PR references to local vs remote repositories --- src/docs/Ways-of-Working/Commit-Conventions.md | 2 +- src/docs/Ways-of-Working/Issue-Format.md | 2 +- src/docs/Ways-of-Working/PR-Format.md | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/docs/Ways-of-Working/Commit-Conventions.md b/src/docs/Ways-of-Working/Commit-Conventions.md index 335231e..147eb62 100644 --- a/src/docs/Ways-of-Working/Commit-Conventions.md +++ b/src/docs/Ways-of-Working/Commit-Conventions.md @@ -8,7 +8,7 @@ Commit messages serve two audiences: the engineer reading `git log` six months f 2. **No conventional-commit prefixes.** No `fix:`, `feat:`, `docs:`, `chore:`, `refactor:`, etc. The change type is captured at the PR level — repeating it on every commit adds noise without information. 3. **No generic messages.** `Update for PR`, `WIP`, `fixes`, `more changes` — all forbidden. They erase traceability. 4. **One logical change per commit.** Micro-iterative discipline. If a change touches three unrelated concerns, that's three commits. -5. **Reference issues with the fully qualified `Owner/Repo#N` form when natural** — but don't force it. A closing keyword such as `Fixes Owner/Repo#N` belongs in the PR description, not every commit message. Avoid the bare `#N` shorthand so references stay unambiguous across repositories. +5. **Reference issues scoped to their target when natural** — the `#123` shorthand for the same repository, the fully qualified `Owner/Repo#123` form for another repository. Don't force it; a closing keyword such as `Fixes #123` belongs in the PR description, not every commit message. ## Examples diff --git a/src/docs/Ways-of-Working/Issue-Format.md b/src/docs/Ways-of-Working/Issue-Format.md index 1734dec..3117291 100644 --- a/src/docs/Ways-of-Working/Issue-Format.md +++ b/src/docs/Ways-of-Working/Issue-Format.md @@ -13,7 +13,7 @@ Every issue in the PSModule organization follows the same structure. The format - **Comments record change history only.** Each description update is accompanied by a comment summarizing what changed and why. - **Tone is impersonal.** No first-person ("I", "my") or second-person ("you", "your") language. Neutral references like "the user", "the developer", or passive constructions. - **External references are hyperlinks.** Every mention of an API, RFC, library, doc, or tool is a clickable `[text](url)` link. No bare URLs. -- **Issue and PR references are fully qualified.** Cross-reference other issues and pull requests with `Owner/Repo#N` (for example `PSModule/GitHub#123`), never the bare `#123` shorthand, so links resolve unambiguously across repositories and in release notes. Outside GitHub — Jira, Confluence, Slack, or any surface without GitHub autolinking — use the full URL (`https://github.com/PSModule/GitHub/issues/123`). +- **Issue and PR references are scoped to their target.** Use the `#123` shorthand for an issue or pull request in the same repository, and the fully qualified `Owner/Repo#123` form for one in another repository so the link resolves to the right place. Outside GitHub — Jira, Confluence, Slack, or any surface without GitHub autolinking — use the full URL (`https://github.com/Owner/Repo/issues/123`). - **No duplicates.** Existing issues are searched before creating or restructuring. Duplicates are consolidated or cross-linked. ## Title diff --git a/src/docs/Ways-of-Working/PR-Format.md b/src/docs/Ways-of-Working/PR-Format.md index 87c7d7f..2d03d08 100644 --- a/src/docs/Ways-of-Working/PR-Format.md +++ b/src/docs/Ways-of-Working/PR-Format.md @@ -103,13 +103,13 @@ Omit the section entirely if there's nothing noteworthy. ### 4. Related issues -A collapsible `
` block at the very end of the description containing issue links. Always use fully qualified references (`Owner/Repo#N`, for example `PSModule/GitHub#123`) — never the bare `#123` shorthand — so links resolve unambiguously across repositories and in release notes. When a reference appears outside GitHub (release announcements, Jira, Slack, external docs), use the full URL (`https://github.com/PSModule/GitHub/issues/123`). +A collapsible `
` block at the very end of the description containing issue links. Use the `#123` shorthand for issues in the same repository and the fully qualified `Owner/Repo#123` form for issues in another repository so links resolve to the right place. When a reference appears outside GitHub (release announcements, Jira, Slack, external docs), use the full URL (`https://github.com/Owner/Repo/issues/123`). ```markdown
Related issues -- Fixes PSModule/GitHub#123 +- Fixes #123 - PSModule/Process-PSModule#124
@@ -150,13 +150,13 @@ Commands that query a specific repository, enterprise, or release by name now re - `GitHubRepository` class: `CustomProperties` property changed from `[PSCustomObject]` to `[GitHubCustomProperty[]]`. - `Invoke-GitHubGraphQLQuery`: error handling split into partial-success (data + errors → warnings) and full-failure (errors only → terminating error) branches. - Null guards added to `Get-GitHubRepositoryByName`, `Get-GitHubMyRepositoryByName`, and related functions. -- Implementation plan progress: tasks 1–3 in PSModule/GitHub#218 completed; task 4 (integration tests) remains. +- Implementation plan progress: tasks 1–3 in #218 completed; task 4 (integration tests) remains.
Related issues -- Fixes PSModule/GitHub#218 -- PSModule/GitHub#219 +- Fixes #218 +- #219
```` From 99fba6d8aa05593926a3bc5ce42fbe2bdca67a48 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Wed, 1 Jul 2026 11:31:47 +0200 Subject: [PATCH 5/5] Keep issue and PR references out of commit messages --- src/docs/Ways-of-Working/Commit-Conventions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/docs/Ways-of-Working/Commit-Conventions.md b/src/docs/Ways-of-Working/Commit-Conventions.md index 147eb62..485e452 100644 --- a/src/docs/Ways-of-Working/Commit-Conventions.md +++ b/src/docs/Ways-of-Working/Commit-Conventions.md @@ -8,7 +8,7 @@ Commit messages serve two audiences: the engineer reading `git log` six months f 2. **No conventional-commit prefixes.** No `fix:`, `feat:`, `docs:`, `chore:`, `refactor:`, etc. The change type is captured at the PR level — repeating it on every commit adds noise without information. 3. **No generic messages.** `Update for PR`, `WIP`, `fixes`, `more changes` — all forbidden. They erase traceability. 4. **One logical change per commit.** Micro-iterative discipline. If a change touches three unrelated concerns, that's three commits. -5. **Reference issues scoped to their target when natural** — the `#123` shorthand for the same repository, the fully qualified `Owner/Repo#123` form for another repository. Don't force it; a closing keyword such as `Fixes #123` belongs in the PR description, not every commit message. +5. **Keep issue and pull request references out of commit messages.** Cross-references to issues and pull requests belong in the PR description and in issues — not in commit history. The pull request links the work to its issue (via a closing keyword such as `Fixes #123`); commits describe the change itself. ## Examples