Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 0 additions & 28 deletions .github/workflows/do-not-merge.yml

This file was deleted.

33 changes: 0 additions & 33 deletions .github/workflows/pr-issue-linkage.yml

This file was deleted.

26 changes: 0 additions & 26 deletions .github/workflows/pr-title.yml

This file was deleted.

4 changes: 2 additions & 2 deletions conventions/process/issue-tracker.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Labels follow one grammar across every axis, so a reader parses any label withou

The naming grammar above governs labels only. Issue titles are free text: there is no enforced prefix vocabulary, and titles do not carry a conventional-commit-style tag such as `[CC]` or `feat(scope):`. This is a deliberate choice, not a gap: GitHub's categorization mechanism is structured metadata (org Issue Types, labels, milestones), not title encoding. The type axis lives in native Issue Types (`Bug`, `Feature`, `Task`); the area axis lives in labels. A title prefix would duplicate an axis that already exists elsewhere and drift out of sync with it. Write a plain summary that describes the issue.

**Structured metadata, not title prefixes.** Set the type with `--type` or the issue form's Types field; set area and other axes with labels. PR titles are unchanged, remaining Conventional Commits enforced by the `pr-title` gate, because squash-merge makes the PR title the default-branch subject line. Issue titles and PR titles serve different layers and follow different rules.
**Structured metadata, not title prefixes.** Set the type with `--type` or the issue form's Types field; set area and other axes with labels. PR titles are unchanged, remaining Conventional Commits enforced by the `pr-contract` composite inside the required `ci-status` check, because squash-merge makes the PR title the default-branch subject line. Issue titles and PR titles serve different layers and follow different rules.

**Template-default bracket prefixes are permitted cosmetics.** GitHub's own issue-form examples ship a `title: "[Bug]: "` default prefix. A bracket prefix a form inserts is display-only template text, not a metadata carrier. Do not encode type, area, or status in a title by hand.

Expand Down Expand Up @@ -63,7 +63,7 @@ Reconcile recurring items by a dedicated bare marker label (for example `recurri

## Closing pull requests

A pull request that resolves an issue uses GitHub's native closing keywords, `Closes`, `Fixes`, or `Resolves` followed by the issue number, as the default house style. The keyword is what wires the automatic link and auto-close on merge; a plain-text reference like "see #123" does neither. Every pull request fleet-wide additionally carries `## Summary`, `## Fix`, `## Verification`, and `## Related` sections alongside the native keyword (or the literal `No linked issue` when nothing closes). The practice applies org- and account-wide, not only where a CI gate can check it. The machine-readable list lives in `components/pr-convention-policy/policy.json`. This began as `provisioning`'s stricter convention (decisions log #58/#59); the shared `pr-issue-linkage` gate mechanically enforces it on every requires-ci repository, and repositories without CI follow the same convention unenforced.
A pull request that resolves an issue uses GitHub's native closing keywords, `Closes`, `Fixes`, or `Resolves` followed by the issue number, as the default house style. The keyword is what wires the automatic link and auto-close on merge; a plain-text reference like "see #123" does neither. Every pull request fleet-wide additionally carries `## Summary`, `## Fix`, `## Verification`, and `## Related` sections alongside the native keyword (or the literal `No linked issue` when nothing closes). The practice applies org- and account-wide, not only where a CI gate can check it. The machine-readable list lives in `components/pr-convention-policy/policy.json`. This began as `provisioning`'s stricter convention (decisions log #58/#59); the shared `pr-contract` composite inside each requires-ci repository's `ci-status` check reports it, leaving an advisory comment and the `needs-issue-linkage` label rather than failing the check, and repositories without CI follow the same convention unreported.

## Optional conventions

Expand Down
2 changes: 1 addition & 1 deletion conventions/review/code-quality.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Review owns parameter shape: where a stack toolchain enforces an arity ceiling,
- **Lint exclusions instead of fixes**: default to fixing. Never add a suppression to bypass a pre-existing error; a justified exclusion lives in the tool's config with a recorded reason, never inline as a silencer.
- **Embedded cross-language scripts**: a multi-line script of one language inlined inside another (a shell heredoc of another language, say) belongs in its own co-located file.
- **Self-executing importable modules**: an entry script that other modules import needs a main guard so its CLI body does not run on import.
- **PR-title format**: deterministic; tool-owned by the `pr-title` gate (`ci-workflows/.github/workflows/semantic-pr.yml`, wired into each consumer as `.github/workflows/pr-title.yml`), not review prose. See `../engineering/enforceability-tiers.md`.
- **PR-title format**: deterministic; tool-owned by the `pr-contract` composite (`ci-workflows/.github/actions/pr-contract`, which every consumer pins as a step inside its required `ci-status` job), not review prose. See `../engineering/enforceability-tiers.md`.

## Sources

Expand Down
2 changes: 1 addition & 1 deletion distribution/sync-manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ components:
path-detection-tools:
files:
components/path-detection/machine-path-patterns.sh: tools/shared/path-detection/machine-path-patterns.sh
# Always-loaded PR-body contract rule for every pr-issue-linkage gate caller
# Always-loaded PR-body contract rule for every pr-contract composite caller
# (standards ADR-0008): the one repo-tracked signal that reaches sessions
# with no plugins installed. The source doubles as this repository's own
# live rule (standards is manifest source, not a target); the lockstep
Expand Down