Skip to content

ci: target Dependabot PRs at dev (per DEV_CYCLE.md §4.1)#99

Merged
Knapp-Kevin merged 2 commits into
BicameralAI:devfrom
Knapp-Kevin:ci/dependabot-target-dev
Apr 29, 2026
Merged

ci: target Dependabot PRs at dev (per DEV_CYCLE.md §4.1)#99
Knapp-Kevin merged 2 commits into
BicameralAI:devfrom
Knapp-Kevin:ci/dependabot-target-dev

Conversation

@Knapp-Kevin

Copy link
Copy Markdown
Collaborator

Summary

  • Adds target-branch: \"dev\" to .github/dependabot.yml so Dependabot opens dependency-bump PRs against dev instead of the default branch (main).

Why

DEV_CYCLE.md §4.1 (PR #93) prescribes that all feature/fix PRs target dev, including dependency bumps that meet the L1 self-merge bar. PRs #85 and #86 (already-open Dependabot PRs targeting main) bypass the integration branch and the dev-tier CI gates. This config change prevents the same drift on future bumps.

What this does NOT do

Linked

Refs PR #93 (DEV_CYCLE.md §4.1), #85, #86

Test plan

  • YAML lint clean (single-key addition under existing entry)
  • No effect on already-open PRs — Dependabot re-evaluates this config at the next scheduled run

Plan / Audit / Seal

Plan: trivial; risk:L1 (single-key CI config addition, no behavioural code paths).

Adds `target-branch: "dev"` to the pip ecosystem entry so Dependabot
opens dependency-bump PRs against `dev`, not the default branch
(`main`).

DEV_CYCLE.md §4.1 prescribes that all feature/fix PRs target `dev`,
including dependency bumps that meet the L1 self-merge bar. PRs BicameralAI#85
and BicameralAI#86 (already-open Dependabot PRs targeting `main`) bypass the
integration branch and the dev-tier CI gates. This config change
prevents the same drift on future bumps; Jin can decide separately
whether to retarget BicameralAI#85/BicameralAI#86 in flight or close + let Dependabot
reopen them against `dev`.

No effect on existing PRs — Dependabot evaluates this config at the
next scheduled run.

Risk: L1 (single-key CI config addition).
@coderabbitai

coderabbitai Bot commented Apr 29, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d477c907-1e66-4832-8afc-ee35642645e1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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 and usage tips.

@Knapp-Kevin Knapp-Kevin added the flow:feature Standard feature/fix PR targeting BicameralAI/dev (the default flow) label Apr 29, 2026
Knapp-Kevin added a commit to Knapp-Kevin/bicameral-mcp that referenced this pull request Apr 29, 2026
Adds mandatory PR labels mirroring the target branch:

- flow:feature (green) — standard PR to dev (default flow)
- flow:release (blue) — periodic dev→main release PR
- flow:hotfix  (red)  — emergency direct-to-main fix bypassing dev

The base branch alone can't disambiguate `--base main` PRs, which can be
either release or hotfix — different processes, different review tiers.
The labels make the lane visible in `gh pr list` output and give a clean
audit trail of historical hotfixes via `--label flow:hotfix --state
closed`.

Distinct from the existing `merged-to-dev` label (post-merge status) —
flow:* labels are pre-merge intent.

Labels created in BicameralAI/bicameral-mcp; retroactively applied to
the open PR backlog (BicameralAI#85, BicameralAI#86, BicameralAI#93, BicameralAI#95, BicameralAI#99). PR BicameralAI#96 left unlabeled
until @silongtan confirms the targeting question raised in that PR.
PR BicameralAI#99 (this dev-cycle policy's companion) will land the matching
Dependabot auto-label so future bumps arrive pre-tagged.
…t PRs

Pairs with DEV_CYCLE.md §4.1.1 (added in PR BicameralAI#93) which mandates a
flow:* label on every PR. Without this, every weekly Dependabot bump
would arrive unlabeled and reviewers would have to apply flow:feature
by hand — defeating the "label first, review second" contract.

The dependencies + python labels match the convention already used on
existing Dependabot PRs (BicameralAI#85, BicameralAI#86) so this only adds flow:feature on
top of the historical pattern.
@Knapp-Kevin

Copy link
Copy Markdown
Collaborator Author

Updated — added `labels` block (commit `b4f3cf3`).

Future Dependabot PRs will be auto-tagged with `flow:feature`, `dependencies`, `python` so they comply with the §4.1.1 mandatory flow-label rule landing in #93. The `dependencies` + `python` labels match the convention already on #85 / #86 so this only adds `flow:feature` on top of historical pattern.

Knapp-Kevin added a commit that referenced this pull request Apr 29, 2026
…#93)

* docs: development cycle reference + demos/guides/training scaffolding

- docs/DEV_CYCLE.md — full lifecycle reference: issue → branch → PR → dev →
  release PR → main → tag → GitHub Release. Covers labels/milestones, PR body
  conventions, CI gates, squash-vs-merge policy, CHANGELOG flip pattern,
  documentation matrix per release, hotfix path, roles, and four demo
  storyboards for headline functionality.

- docs/demos/README.md — demo authoring rules, template, four-row index
  matching DEV_CYCLE.md §12.

- docs/guides/README.md — user-guide template + authoring rules. Pairs with
  DEV_CYCLE.md §8 documentation matrix.

- docs/training/README.md — training-doc template for concept-level teaching
  (vs. tool reference). Distinguishes when a topic warrants training over a
  guide.

Intent: codify the dev cycle so contributors and the release manager have a
single source of truth, and pre-stage the index/template files so future
features have somewhere to land their docs without re-deciding structure.

Per DEV_CYCLE.md change protocol, amendments to the doc require the
docs:dev-cycle label.

* docs(dev-cycle): expand §4.5 CI gates with two-tier model

Replaces the three-line CI gates section with a tiered breakdown:

- Tier 1 (PR → dev) — fast gates blocking every PR: lint, type check,
  regression on Linux + Windows matrix, schema persistence, module
  import smoke, secret scan, pip check, merged-to-dev label automation.
- Tier 2 (release PR → main) — release-quality gates inheriting Tier 1
  plus full regression w/ slow markers, blocking preflight eval,
  schema migration validation, performance regression, security scan,
  CHANGELOG enforcement, version monotonicity, MCP protocol live smoke,
  issue auto-close + label-strip on merge.

Includes a "why the split" rationale table and a three-phase
implementation roadmap. Calls out which gates exist today vs which are
aspirational, so reviewers don't assume the doc reflects current
enforcement.

§6.4 pre-release checklist annotated with the corresponding Tier 2 CI
gates so the manual checklist and automated gates stay in sync as
Phase 2 lands.

Phase 1 priority items (per recent triage):
- Windows test job — three of the last four bugs (#67, #68, #74) were
  Windows-only.
- merged-to-dev auto-labeller — addresses the manual labeling problem
  surfaced in PR-A audit.

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

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(dev-cycle): §4.1.1 flow:* PR labels (feature/release/hotfix)

Adds mandatory PR labels mirroring the target branch:

- flow:feature (green) — standard PR to dev (default flow)
- flow:release (blue) — periodic dev→main release PR
- flow:hotfix  (red)  — emergency direct-to-main fix bypassing dev

The base branch alone can't disambiguate `--base main` PRs, which can be
either release or hotfix — different processes, different review tiers.
The labels make the lane visible in `gh pr list` output and give a clean
audit trail of historical hotfixes via `--label flow:hotfix --state
closed`.

Distinct from the existing `merged-to-dev` label (post-merge status) —
flow:* labels are pre-merge intent.

Labels created in BicameralAI/bicameral-mcp; retroactively applied to
the open PR backlog (#85, #86, #93, #95, #99). PR #96 left unlabeled
until @silongtan confirms the targeting question raised in that PR.
PR #99 (this dev-cycle policy's companion) will land the matching
Dependabot auto-label so future bumps arrive pre-tagged.

* docs(dev-cycle): §2.1.1/§2.1.2 issue priority + state labels

Adds two new label axes for issues:

- Priority (mandatory after triage, one of P0/P1/P2/P3) — replaces
  the [P0]/[P1]/[P2] title-prefix convention some issues currently
  use. Calibration heuristics included; P0 explicitly rare.

- State (optional, orthogonal to priority): triage / blocked / parked.
  triage is the default on file; parked is maintainer-only. State
  labels never replace priority — both axes coexist.

Also moves the existing risk:L* axis off issues and onto PRs in the
doc text — risk is a property of the change being designed, knowable
only after planning, so it doesn't make sense as an issue label. PR
review tiers in §4.4 already consume risk:L*; this change just makes
the doc internally consistent.

Labels created in BicameralAI/bicameral-mcp:
- P0 (red), P1 (orange), P2 (yellow), P3 (grey)
- parked (purple), blocked (dark grey), triage (light grey)

Retroactive application:
- #39 → P0 (had [P0] prefix)
- #42 → P1 (had [P1] prefix)
- #44 → P2 (had [P2] prefix)
- #87, #89, #50, #23 → triage (unlabeled or speculative)

Bulk priority triage of remaining issues left to maintainers.

* docs(dev-cycle): parked supersedes priority (not orthogonal)

Maintainer correction to §2.1.2: parked + Px is redundant. parked
already encodes "not on the priority axis"; adding a priority label
on top clutters the label list without adding signal. Issue #50
demonstrates the cleanup (P3 removed; parked stands alone).

triage and blocked still coexist with priority as before — those are
genuinely orthogonal states. Only parked is the exception.

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Knapp-Kevin Knapp-Kevin merged commit a19ef99 into BicameralAI:dev Apr 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file flow:feature Standard feature/fix PR targeting BicameralAI/dev (the default flow)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant