Skip to content

docs(foundation): domain branching workflow and CODEOWNERS - #308

Open
YosefHayim wants to merge 2 commits into
mainfrom
docs/foundation/branching-workflow
Open

docs(foundation): domain branching workflow and CODEOWNERS#308
YosefHayim wants to merge 2 commits into
mainfrom
docs/foundation/branching-workflow

Conversation

@YosefHayim

@YosefHayim YosefHayim commented Aug 4, 2026

Copy link
Copy Markdown
Owner

User description

Summary

  • Adds BRANCHING.md: no direct commits to main, feat|fix|…/<domain>/<slug> names, domain:* labels, epic rules, and the experimental layered-history lab refs.
  • Points AGENTS.md, CONTRIBUTING.md, and CLAUDE.md at that workflow.
  • Adds .github/CODEOWNERS with path → domain map (maintainer: @YosefHayim).
  • Creates GitHub domain:* labels (already on the repo).

Test plan

  • Docs-only change
  • Confirm labels appear on this PR
  • Optional: enable “Require review from Code Owners” when ready

CodeAnt-AI Description

Establish a domain-based branching and review workflow

What Changed

  • Documents that all work must use pull requests instead of direct commits to main, with one reviewable intent per branch.
  • Adds required branch naming, domain:* labeling, validation, review, and post-merge branch cleanup rules.
  • Defines domain ownership across the repository and adds CODEOWNERS routing for those paths.
  • Updates contributor and agent guidance to link to and follow the new workflow, including temporary epic and experimental history rules.

Impact

✅ Fewer unreviewed changes to main
✅ Clearer ownership for pull request reviews
✅ More consistent branch and PR organization

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.


Summary by cubic

Adds BRANCHING.md and .github/CODEOWNERS to formalize a domain-based branching workflow and route reviews by path. Updates AGENTS.md, CONTRIBUTING.md, and CLAUDE.md to point to the new process. No runtime changes.

  • Migration
    • Use branches like feat|fix|refactor|chore|docs/<domain>/<slug>; never commit to main; delete branches after merge.
    • Label PRs with domain:<name> and keep the gate green (pnpm typecheck && pnpm lint && pnpm lint:style && pnpm docs:check && pnpm test && pnpm build).
    • CODEOWNERS routes reviews by domain paths (default @YosefHayim); consider enabling “Require review from Code Owners”.

Written for commit bb99acb. Summary will update on new commits.

Review in cubic

Why: Keep main shippable by routing all work through domain-named PRs with labels.
What: BRANCHING.md, AGENTS/CONTRIBUTING/CLAUDE pointers, .github/CODEOWNERS path map.
Impact: Process only; no runtime change. Domain GitHub labels are created on the remote.
@YosefHayim YosefHayim added domain:foundation Shared kernel: tooling, services, types, style domain:docs Documentation-only changes labels Aug 4, 2026
@changeset-bot

changeset-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: bb99acb

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@codeant-ai

codeant-ai Bot commented Aug 4, 2026

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Reviewed your PR ef3cbc6 Aug 04, 2026 · 10:21 10:22

@codeant-ai

codeant-ai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label Aug 4, 2026
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@YosefHayim, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 58 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 44dbf02e-8b5a-4e6d-909c-e879cd7136f7

📥 Commits

Reviewing files that changed from the base of the PR and between a57cdb1 and bb99acb.

📒 Files selected for processing (5)
  • .github/CODEOWNERS
  • AGENTS.md
  • BRANCHING.md
  • CLAUDE.md
  • CONTRIBUTING.md
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/foundation/branching-workflow

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Why: Claude-facing doc index should list the branching workflow.
What: Add BRANCHING.md row to the CLAUDE.md doc family table.
Impact: Docs only.
@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Docs: add domain branching workflow and CODEOWNERS routing

📝 Documentation ⚙️ Configuration changes 🕐 10-20 Minutes

Grey Divider

AI Description

• Document domain-based branching, PR labeling, and “keep main shippable” rules.
• Add CODEOWNERS path→domain routing to request the right reviewer.
• Link existing contributor/agent docs to the new BRANCHING.md workflow.
Diagram

graph TD
  C([Contributor]) --> B["BRANCHING.md"] --> PR["GitHub PR"] --> M([Maintainer])
  PR --> L{{"domain:* label"}}
  PR --> CO[".github/CODEOWNERS"] --> M

  subgraph Legend
    direction LR
    _p([Person]) ~~~ _d["Document / file"] ~~~ _x{{"Rule / label"}}
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Enforce workflow via branch protection + required CODEOWNERS review
  • ➕ Prevents direct pushes to main without relying on convention
  • ➕ Ensures CODEOWNERS routing is actually applied (when enabled)
  • ➕ Reduces policy drift over time
  • ➖ Can slow down early-stage iteration until ownership is fully stable
  • ➖ Requires repo admin changes and occasional maintenance
2. Automate domain labeling (GitHub Action: path-based labeler)
  • ➕ Labels stay consistent with touched paths
  • ➕ Less manual work for authors/reviewers
  • ➕ Avoids missed/incorrect domain labels
  • ➖ Labeling by paths can be noisy for cross-cutting refactors
  • ➖ Adds CI/config surface area to maintain
3. Use per-domain OWNERS files instead of a central CODEOWNERS map
  • ➕ Ownership stays closer to the code it governs
  • ➕ Easier to delegate as domains mature
  • ➖ More files to manage and keep consistent
  • ➖ Still needs clear top-level rules for cross-domain changes

Recommendation: The PR’s approach (single BRANCHING.md + centralized CODEOWNERS + doc pointers) is a good low-friction baseline for establishing the workflow. Consider a follow-up to (1) enable branch protection against direct pushes to main and (2) optionally add path-based auto-labeling once domains and folder boundaries prove stable.

Files changed (4) +179 / -4

Documentation (3) +110 / -4
AGENTS.mdAdd branching/PR rules section and link to BRANCHING.md +7/-1

Add branching/PR rules section and link to BRANCHING.md

• Extends the agent/contributor rules with a concise branching and PR workflow summary (no direct commits to main, domain branch naming, domain labels). Links readers to BRANCHING.md for the full policy and CODEOWNERS mapping.

AGENTS.md

BRANCHING.mdDocument domain branching workflow, labels, and epic/lab guidance +96/-0

Document domain branching workflow, labels, and epic/lab guidance

• Adds the canonical branching workflow doc: branch naming conventions, required domain labels, keeping the quality gate green, and branch deletion after merge. Also documents optional epic branches and an experimental layered-history reference branch with explicit non-merge guidance.

BRANCHING.md

CONTRIBUTING.mdPoint PR guidance at BRANCHING.md and add short-form rules +7/-3

Point PR guidance at BRANCHING.md and add short-form rules

• Replaces the minimal PR guidance with a pointer to BRANCHING.md and a short checklist covering main protection, domain branch naming, required domain labels, and intent-focused PR scope. Adds reminders to split mixed work and delete branches after merge.

CONTRIBUTING.md

Other (1) +69 / -0
CODEOWNERSAdd CODEOWNERS path→domain routing map +69/-0

Add CODEOWNERS path→domain routing map

• Introduces a CODEOWNERS file that assigns default ownership to @YosefHayim and maps key repository paths to domain blocks for review routing. This sets the foundation for enabling “Require review from Code Owners” later.

.github/CODEOWNERS

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (0) 📜 Skill insights (0)

Context used
✅ Compliance rules (platform): 47 rules

Grey Divider


Remediation recommended

1. Branch prefixes inconsistent 🐞 Bug ⚙ Maintainability
Description
AGENTS.md and CONTRIBUTING.md summarize branch naming as
feat|fix|refactor|chore|docs/<domain>/<slug>, but BRANCHING.md also allows test/ and ci/
prefixes. Contributors following the short versions may incorrectly conclude test/* and ci/*
branches are disallowed.
Code

CONTRIBUTING.md[R89-92]

+Full branching rules live in [`BRANCHING.md`](./BRANCHING.md). Short version:
+
+- **Do not push commits to `main`.** Branch off `main` as `feat|fix|refactor|chore|docs/<domain>/<slug>`.
+- Label the PR with the matching `domain:*` label (see BRANCHING.md).
Evidence
The short-form guidance added to CONTRIBUTING/AGENTS lists only five prefixes, while BRANCHING.md
explicitly enumerates additional valid prefixes (test/ and ci/), creating contradictory
instructions.

CONTRIBUTING.md[87-93]
AGENTS.md[7-11]
BRANCHING.md[14-24]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The abbreviated branch naming guidance in `AGENTS.md` and `CONTRIBUTING.md` omits valid prefixes (`test/`, `ci/`) that are listed in `BRANCHING.md`, creating conflicting workflow documentation.

## Issue Context
`BRANCHING.md` is positioned as the source of truth, but the short versions should either (a) include the full prefix list, or (b) explicitly state they are examples and defer to `BRANCHING.md` for the canonical list.

## Fix Focus Areas
- CONTRIBUTING.md[87-93]
- AGENTS.md[7-11]
- BRANCHING.md[14-24]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. ReleaseTrain path typo 🐞 Bug ≡ Correctness
Description
BRANCHING.md’s domain table lists releaseTrain/ without the src/core/ prefix used elsewhere, but
the actual folder is src/core/releaseTrain/. This can mislead contributors using the table to
locate the release-train code.
Code

BRANCHING.md[R59-60]

+| release | `domain:release` | `src/core/release/`, `releaseTrain/` (includes TestFlight) |
+| testflight | `domain:testflight` | TestFlight-focused changes under release/CLI when that is the whole PR |
Evidence
BRANCHING.md’s table uses releaseTrain/, but the repo’s documented layout (and actual directory
naming) places it under src/core/releaseTrain/.

BRANCHING.md[56-61]
AGENTS.md[44-48]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
In `BRANCHING.md`, the `release` domain row includes `releaseTrain/` as a typical path, but the repo layout uses `src/core/releaseTrain/`. This is an incorrect/incomplete path in the documentation.

## Issue Context
`AGENTS.md` documents the repo layout and shows the correct `src/core/releaseTrain/` directory.

## Fix Focus Areas
- BRANCHING.md[56-61]
- AGENTS.md[44-48]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

To customize comments, go to the Qodo configuration screen, or learn more in the docs.

Qodo Logo

Comment thread CONTRIBUTING.md
Comment on lines +89 to +92
Full branching rules live in [`BRANCHING.md`](./BRANCHING.md). Short version:

- **Do not push commits to `main`.** Branch off `main` as `feat|fix|refactor|chore|docs/<domain>/<slug>`.
- Label the PR with the matching `domain:*` label (see BRANCHING.md).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remediation recommended

1. Branch prefixes inconsistent 🐞 Bug ⚙ Maintainability

AGENTS.md and CONTRIBUTING.md summarize branch naming as
feat|fix|refactor|chore|docs/<domain>/<slug>, but BRANCHING.md also allows test/ and ci/
prefixes. Contributors following the short versions may incorrectly conclude test/* and ci/*
branches are disallowed.
Agent Prompt
## Issue description
The abbreviated branch naming guidance in `AGENTS.md` and `CONTRIBUTING.md` omits valid prefixes (`test/`, `ci/`) that are listed in `BRANCHING.md`, creating conflicting workflow documentation.

## Issue Context
`BRANCHING.md` is positioned as the source of truth, but the short versions should either (a) include the full prefix list, or (b) explicitly state they are examples and defer to `BRANCHING.md` for the canonical list.

## Fix Focus Areas
- CONTRIBUTING.md[87-93]
- AGENTS.md[7-11]
- BRANCHING.md[14-24]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment thread BRANCHING.md
Comment on lines +59 to +60
| release | `domain:release` | `src/core/release/`, `releaseTrain/` (includes TestFlight) |
| testflight | `domain:testflight` | TestFlight-focused changes under release/CLI when that is the whole PR |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remediation recommended

2. Releasetrain path typo 🐞 Bug ≡ Correctness

BRANCHING.md’s domain table lists releaseTrain/ without the src/core/ prefix used elsewhere, but
the actual folder is src/core/releaseTrain/. This can mislead contributors using the table to
locate the release-train code.
Agent Prompt
## Issue description
In `BRANCHING.md`, the `release` domain row includes `releaseTrain/` as a typical path, but the repo layout uses `src/core/releaseTrain/`. This is an incorrect/incomplete path in the documentation.

## Issue Context
`AGENTS.md` documents the repo layout and shows the correct `src/core/releaseTrain/` directory.

## Fix Focus Areas
- BRANCHING.md[56-61]
- AGENTS.md[44-48]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@cubic-dev-ai cubic-dev-ai 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.

5 issues found and verified against the latest diff

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="CONTRIBUTING.md">

<violation number="1" location="CONTRIBUTING.md:91">
P3: This new short version omits the `test` and `ci` branch types defined in BRANCHING.md (`test/<domain>/<slug>`, `ci/<domain>/<slug>`). While it is labeled a short version, the list is presented as the branch pattern contributors should use, so those two documented types are silently missing. Include them so the abbreviated form matches BRANCHING.md and AGENTS.md don't disagree.</violation>
</file>

<file name="AGENTS.md">

<violation number="1" location="AGENTS.md:9">
P3: Branch prefix list missing `test` and `ci` from BRANCHING.md's full list. Someone skimming AGENTS.md's summary might not realize `test/<domain>/<slug>` or `ci/<domain>/<slug>` branches are valid.</violation>
</file>

<file name=".github/CODEOWNERS">

<violation number="1" location=".github/CODEOWNERS:6">
P2: Missing `docs` domain path block. BRANCHING.md (canonical ownership map) and AGENTS.md both define `docs` as a domain covering README, CONTRIBUTING, ADR-only docs, and root architecture docs, but CODEOWNERS has no `# docs` section. Files like `/CONTRIBUTING.md`, `/README*.md`, `/docs/` (incl. ADRs), `/CONTEXT.md`, `/LANGUAGE.md`, `/PROJECT.md`, `/TECH.md` fall through to the default `*` rule instead of being assigned to the `docs` domain. The file comment says "Path blocks document domain ownership for routing" — omitting a documented domain means the map is incomplete.</violation>
</file>

<file name="BRANCHING.md">

<violation number="1" location="BRANCHING.md:17">
P3: The branch-naming rules use `<short-slug>` (lines 17–23), but the Daily flow and Epics sections use plain `<slug>` (`git switch -c feat/<domain>/<slug>`, `epic/<slug>`). Agents and contributors reading the workflow get two different placeholders for the same position, which is confusing right in the doc that is meant to standardize naming. Pick one placeholder (`<slug>` is simpler and already used in AGENTS.md/CONTRIBUTING.md) and use it consistently in all three spots.</violation>

<violation number="2" location="BRANCHING.md:59">
P3: The `release` domain row lists `releaseTrain/` without the `src/core/` prefix used for the other paths in this table, but the actual directory (per CODEOWNERS) is `src/core/releaseTrain/`. This inconsistency could mislead contributors trying to locate release-train code.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread .github/CODEOWNERS

* @YosefHayim

# foundation — tooling, shared spine

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: Missing docs domain path block. BRANCHING.md (canonical ownership map) and AGENTS.md both define docs as a domain covering README, CONTRIBUTING, ADR-only docs, and root architecture docs, but CODEOWNERS has no # docs section. Files like /CONTRIBUTING.md, /README*.md, /docs/ (incl. ADRs), /CONTEXT.md, /LANGUAGE.md, /PROJECT.md, /TECH.md fall through to the default * rule instead of being assigned to the docs domain. The file comment says "Path blocks document domain ownership for routing" — omitting a documented domain means the map is incomplete.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/CODEOWNERS, line 6:

<comment>Missing `docs` domain path block. BRANCHING.md (canonical ownership map) and AGENTS.md both define `docs` as a domain covering README, CONTRIBUTING, ADR-only docs, and root architecture docs, but CODEOWNERS has no `# docs` section. Files like `/CONTRIBUTING.md`, `/README*.md`, `/docs/` (incl. ADRs), `/CONTEXT.md`, `/LANGUAGE.md`, `/PROJECT.md`, `/TECH.md` fall through to the default `*` rule instead of being assigned to the `docs` domain. The file comment says "Path blocks document domain ownership for routing" — omitting a documented domain means the map is incomplete.</comment>

<file context>
@@ -0,0 +1,69 @@
+
+* @YosefHayim
+
+# foundation — tooling, shared spine
+/CODE-STYLE.md @YosefHayim
+/BRANCHING.md @YosefHayim
</file context>

Comment thread CONTRIBUTING.md
- Branch off `main`; keep the gate green.
Full branching rules live in [`BRANCHING.md`](./BRANCHING.md). Short version:

- **Do not push commits to `main`.** Branch off `main` as `feat|fix|refactor|chore|docs/<domain>/<slug>`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: This new short version omits the test and ci branch types defined in BRANCHING.md (test/<domain>/<slug>, ci/<domain>/<slug>). While it is labeled a short version, the list is presented as the branch pattern contributors should use, so those two documented types are silently missing. Include them so the abbreviated form matches BRANCHING.md and AGENTS.md don't disagree.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At CONTRIBUTING.md, line 91:

<comment>This new short version omits the `test` and `ci` branch types defined in BRANCHING.md (`test/<domain>/<slug>`, `ci/<domain>/<slug>`). While it is labeled a short version, the list is presented as the branch pattern contributors should use, so those two documented types are silently missing. Include them so the abbreviated form matches BRANCHING.md and AGENTS.md don't disagree.</comment>

<file context>
@@ -86,10 +86,14 @@ The same five steps apply to a `BuildEngine`, `CredentialsProvider`, or `Submitt
-- Branch off `main`; keep the gate green.
+Full branching rules live in [`BRANCHING.md`](./BRANCHING.md). Short version:
+
+- **Do not push commits to `main`.** Branch off `main` as `feat|fix|refactor|chore|docs/<domain>/<slug>`.
+- Label the PR with the matching `domain:*` label (see BRANCHING.md).
+- Keep the gate green.
</file context>
Suggested change
- **Do not push commits to `main`.** Branch off `main` as `feat|fix|refactor|chore|docs/<domain>/<slug>`.
- **Do not push commits to `main`.** Branch off `main` as `feat|fix|refactor|chore|test|ci|docs/<domain>/<slug>`.

Comment thread AGENTS.md

## Branching And PRs

- **Do not commit to `main`.** Branch as `feat|fix|refactor|chore|docs/<domain>/<slug>`, open a PR, label `domain:<domain>`, keep the gate green, delete the branch after merge.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: Branch prefix list missing test and ci from BRANCHING.md's full list. Someone skimming AGENTS.md's summary might not realize test/<domain>/<slug> or ci/<domain>/<slug> branches are valid.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At AGENTS.md, line 9:

<comment>Branch prefix list missing `test` and `ci` from BRANCHING.md's full list. Someone skimming AGENTS.md's summary might not realize `test/<domain>/<slug>` or `ci/<domain>/<slug>` branches are valid.</comment>

<file context>
@@ -1,9 +1,15 @@
 
+## Branching And PRs
+
+- **Do not commit to `main`.** Branch as `feat|fix|refactor|chore|docs/<domain>/<slug>`, open a PR, label `domain:<domain>`, keep the gate green, delete the branch after merge.
+- Domains: `foundation`, `config`, `credentials`, `build`, `apple`, `google`, `store`, `release`, `testflight`, `readiness`, `agents`, `cli`, `docs`.
+- Full rules, CODEOWNERS path map, and the optional `experiment/layered-history` lab: [BRANCHING.md](./BRANCHING.md).
</file context>

Comment thread BRANCHING.md
3. **Name branches by type and domain:**

```text
feat/<domain>/<short-slug>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: The branch-naming rules use <short-slug> (lines 17–23), but the Daily flow and Epics sections use plain <slug> (git switch -c feat/<domain>/<slug>, epic/<slug>). Agents and contributors reading the workflow get two different placeholders for the same position, which is confusing right in the doc that is meant to standardize naming. Pick one placeholder (<slug> is simpler and already used in AGENTS.md/CONTRIBUTING.md) and use it consistently in all three spots.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At BRANCHING.md, line 17:

<comment>The branch-naming rules use `<short-slug>` (lines 17–23), but the Daily flow and Epics sections use plain `<slug>` (`git switch -c feat/<domain>/<slug>`, `epic/<slug>`). Agents and contributors reading the workflow get two different placeholders for the same position, which is confusing right in the doc that is meant to standardize naming. Pick one placeholder (`<slug>` is simpler and already used in AGENTS.md/CONTRIBUTING.md) and use it consistently in all three spots.</comment>

<file context>
@@ -0,0 +1,96 @@
+3. **Name branches by type and domain:**
+
+   ```text
+   feat/<domain>/<short-slug>
+   fix/<domain>/<short-slug>
+   refactor/<domain>/<short-slug>
</file context>

Comment thread BRANCHING.md
| apple | `domain:apple` | `src/apple/`, Apple-only signing and ASC transport |
| google | `domain:google` | `src/google/`, Play client and reporting |
| store | `domain:store` | `src/core/store/`, listing, privacy, submit providers |
| release | `domain:release` | `src/core/release/`, `releaseTrain/` (includes TestFlight) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: The release domain row lists releaseTrain/ without the src/core/ prefix used for the other paths in this table, but the actual directory (per CODEOWNERS) is src/core/releaseTrain/. This inconsistency could mislead contributors trying to locate release-train code.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At BRANCHING.md, line 59:

<comment>The `release` domain row lists `releaseTrain/` without the `src/core/` prefix used for the other paths in this table, but the actual directory (per CODEOWNERS) is `src/core/releaseTrain/`. This inconsistency could mislead contributors trying to locate release-train code.</comment>

<file context>
@@ -0,0 +1,96 @@
+| apple | `domain:apple` | `src/apple/`, Apple-only signing and ASC transport |
+| google | `domain:google` | `src/google/`, Play client and reporting |
+| store | `domain:store` | `src/core/store/`, listing, privacy, submit providers |
+| release | `domain:release` | `src/core/release/`, `releaseTrain/` (includes TestFlight) |
+| testflight | `domain:testflight` | TestFlight-focused changes under release/CLI when that is the whole PR |
+| readiness | `domain:readiness` | plan, doctor, snapshot, adopt, migrate, readiness probes |
</file context>
Suggested change
| release | `domain:release` | `src/core/release/`, `releaseTrain/` (includes TestFlight) |
| release | `domain:release` | `src/core/release/`, `src/core/releaseTrain/` (includes TestFlight) |

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

Labels

domain:docs Documentation-only changes domain:foundation Shared kernel: tooling, services, types, style size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant