Skip to content

fix: pr-agent - correct branch-validation prefix lists, complete the pr-creation-agent merge - #3403

Open
brandonmarshal wants to merge 6 commits into
refactor/pr-agent-skills-restructurefrom
fix/pr-agent-branch-name-validation
Open

brandonmarshal wants to merge 6 commits into
refactor/pr-agent-skills-restructurefrom
fix/pr-agent-branch-name-validation

Conversation

@brandonmarshal

@brandonmarshal brandonmarshal commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Linked issues

Part of LS-4214

Context

  • Severity/Impact: Medium — validate-branch-name.js's forbidden/allowed lists contradicted this repository's own docs/BRANCHING_STRATEGY.md, with zero test coverage on either list
  • Affected versions/environments: agents/pr-agent's validate-branch-name skill only

Reproduction

  • Steps: 1) call validateBranchName with a claude/, copilot/, or openai/ branch name 2) observe only claude/ was rejected 3) call it with task/, doc/, aiops/, automation/, or epic/ 4) observe all five were incorrectly rejected as unknown types
  • Expected vs Actual: Expected the forbidden/allowed lists to match docs/BRANCHING_STRATEGY.md Section 3/4.1 exactly; actual lists predated that document and were never reconciled against it

Root Cause

FORBIDDEN_PREFIXES was hardcoded to ["claude", "bot", "automated"] and ALLOWED_TYPES was missing 5 canonical types, both sourced independently rather than from the canonical document — the exact failure mode docs/BRANCHING_STRATEGY.md's own governance section warns against.

Fix Summary

  • FORBIDDEN_PREFIXES: claude/bot/automatedclaude/copilot/openai, matching Section 4.1 exactly
  • ALLOWED_TYPES: added task, doc, aiops, automation, epic — the 5 canonical types missing from the previous list
  • Added test coverage for both lists (neither had any before this PR)
  • Fixed the deferred labels unused-var lint violation in orchestrate-pr-creation.test.js (uncaught until PR 1 gave this agent a working lint config) and confirmed the config genuinely catches violations via a deliberately-introduced fixture, reverted after confirming
  • Deleted agents/pr-creation-agent/ — its 5 files were each individually confirmed folded into pr-agent, superseded, or discarded-with-reason across PRs 1-2; re-verified here that pr-agent's suite and lint are unaffected by the removal
  • Added README.md and CHANGELOG.md for pr-agent, completing User Story 1 of spec 015

This is PR 3 of a 3-PR stack, based on PR 2 (refactor/pr-agent-skills-restructure), not develop. Together, PRs 1-3 complete User Story 1 (the merge and restructure) of spec 015 — later work (Stories 2-4: PR-creation behaviour, portability, further polish) is separate, not started here.

Verification

  • Tests added/updated to cover the bug: 11 new test cases (3 forbidden prefixes, 5 newly-added types, plus edge cases), 48/48 passing in this skill alone
  • Manual verification steps: confirmed pr-agent's full suite (13/13 suites, 247/247 tests) and lint pass after the deletion, not just before it
  • Negative/edge cases checked: confirmed bot/ and automated/ are still correctly rejected (as unknown types now, not as forbidden prefixes) rather than silently becoming valid

Risk & Rollback

  • Risk level: Low — the branch-validation fix is additive/corrective with new test coverage; the deletion is the only irreversible step, and was only performed after all 5 of pr-creation-agent's files had a confirmed, verified disposition
  • Rollback plan: revert this commit range; pr-creation-agent/ would need restoring from git history if reverted after merge

Changelog

type:bug is on this repository's CI-enforced restrictedTypes list, so meta:no-changelog is not permitted here even though this is internal agent tooling. Added a root CHANGELOG.md entry under Fixed, meta:needs-changelog applied. agents/pr-agent/CHANGELOG.md (also added by this PR) documents the change at the agent level as well.

Added

Changed

Fixed

Removed


Checklist (Global DoD / PR)

  • All AC met and demonstrated (User Story 1's remaining acceptance criteria: FR-003, FR-004, FR-001 deletion gate)
  • Tests added/updated (unit/E2E as appropriate)
  • Accessibility checklist completed (where relevant) — N/A, no UI/rendered content
  • Docs/readme/changelog updated (if user-facing) — README.md/CHANGELOG.md added at the agent level; root CHANGELOG.md entry added, meta:needs-changelog at the repo level
  • Security checklist completed (where relevant) — N/A, no new input handling introduced
  • Code/design reviews approved
  • CI green; linked issues closed; release notes prepared (if shipping) — N/A, no closing keyword on this layer

Stack

Part of LS-4214

@coderabbitai

coderabbitai Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 21 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

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

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: lightspeedwp/.github/.coderabbit.yml

Review profile: CHILL

Plan: Advanced

Run ID: aa0784d5-16cc-477a-a25b-808ab069d760

📥 Commits

Reviewing files that changed from the base of the PR and between 418aebf and 6eddea4.

⛔ Files ignored due to path filters (1)
  • agents/pr-creation-agent/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (10)
  • CHANGELOG.md
  • agents/pr-agent/CHANGELOG.md
  • agents/pr-agent/README.md
  • agents/pr-agent/skills/orchestrate-pr-creation/scripts/__tests__/orchestrate-pr-creation.test.js
  • agents/pr-agent/skills/validate-branch-name/scripts/__tests__/validate-branch-name.test.js
  • agents/pr-agent/skills/validate-branch-name/scripts/validate-branch-name.js
  • agents/pr-creation-agent/__tests__/eslint-config.test.js
  • agents/pr-creation-agent/eslint.config.js
  • agents/pr-creation-agent/package.json
  • agents/pr-creation-agent/pr-creation.agent.md

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.

@linear-code

linear-code Bot commented Sep 21, 2026

Copy link
Copy Markdown

LS-4214

@mergify

mergify Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@brandonmarshal
brandonmarshal added this pull request to stack #3402 September 21, 2026 09:20
@mergify

mergify Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Merge Protections

🔴 2 of 2 protections blocking · waiting on ⛓️ dependency

Protection Waiting on
🔴 ⛓️ Depends-On Requirements ⛓️ dependency
🔴 🚦 Auto-queue

🔴 ⛓️ Depends-On Requirements

Waiting for

This rule is failing.

Requirement based on the presence of Depends-On in the body of the pull request

🔴 🚦 Auto-queue

This rule is failing.

When all merge protections are satisfied and these conditions match, this pull request will be queued automatically.

  • author~=^(dependabot\[bot\]|app/dependabot|imgbot\[bot\]|app/imgbot|lightspeed-bot)$

@brandonmarshal
brandonmarshal force-pushed the fix/pr-agent-branch-name-validation branch from deabb2b to b9829b1 Compare September 21, 2026 09:30
@github-actions

Copy link
Copy Markdown
Contributor

PR Template Routing

Branch Type: fix
Scope: pr-agent-branch-name-validation
Template: pr_bug.md
Labels Applied: type:bug

This PR was automatically routed based on the branch naming strategy.

@github-actions

github-actions Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

📋 Changelog Quality Validation

Summary

Metric Count
✅ Passing 73
⚠️ Warnings 0
❌ Failing 1
🆕 New failures in this PR 1
📦 Pre-existing failures 0

Status

Validation FAILED - This PR introduces 1 new changelog failure(s). Please fix them before merging.
Pre-existing failures (0) are reported for visibility and do not block this PR.

How to Fix

Reproduce the exact PR check locally (from the repository root):

cd .github/validation/changelog
node bin/validate.js --changelog-path ../../../CHANGELOG.md --trigger pr_submission --pr-number 3403 --branch fix/pr-agent-branch-name-validation --output text

Only new failures introduced by this PR block merging; pre-existing Unreleased failures do not block. See Changelog Quality Audit for the rule reference.

brandonmarshal added a commit that referenced this pull request Sep 21, 2026
Contract accuracy
- contracts/pr-agent-invocation.md: the "must not" list forbade even
  reading .github/PULL_REQUEST_TEMPLATE/config.yml, contradicting
  FR-010's requirement to route through it. Narrowed to writes only
  -- reading it for routing is required, not prohibited. Not a LOCKED
  file change: this is our own contract doc, not the PR template.

Branch-name consistency
- Update every stale feature/pr-agent-consolidation-portability
  reference to aiops/pr-agent-consolidation-portability across
  spec.md and plan.md (4 more occurrences than CodeRabbit's single
  flagged line, found via full sweep)
- Mark the Complexity Tracking violation resolved, not just renamed

Verification accuracy
- quickstart.md: check SKILL.md file *content* for the literal
  "template-skill" string via grep, not just file existence via ls

Story status accuracy
- spec.md: User Story 1 was incorrectly marked COMPLETE on this
  branch, which contains none of the actual restructuring/deletion
  work (that's PR #3401/#3403) -- corrected to IN PROGRESS, moved
  the completion claim to where it will actually be true

Base-branch resolution policy
- FR-006: was ambiguous -- "by branch type" but the only described
  mechanism (repository default branch) doesn't vary by type at all.
  Now explicit: hotfix/release -> production-role branch, everything
  else -> integration-role branch, falling back to the repo default
  only when neither role applies
- data-model.md: updated base/resolvedBaseBranch fields to match

Documentation accuracy
- AGENT.md: Implementation Reference pointed at scripts/ paths that
  don't exist on this branch yet (that restructuring is PR #3401) --
  corrected to this branch's actual current flat file layout

Verification
- markdownlint clean on all 6 touched files
- agents/pr-agent full suite: 12/12 suites, 238/238 tests (unchanged)
brandonmarshal added a commit that referenced this pull request Sep 21, 2026
Task generation
- tasks.md: 37 tasks across Setup/Foundational/4 user-story phases,
  Story 1's 14 tasks marked done (delivered across PR #3400/#3401/#3403),
  Stories 2-4's remaining 23 tasks marked not started -- verified
  against actual skill code, not assumed

Requirements-quality checklist
- checklists/story2-behaviour.md: 22 items reviewing Story 2's FR-005
  through FR-019 for completeness/clarity/consistency/measurability/
  coverage, 100% traceability

Governance-doc alignment fixes (cross-checked against the LightSpeed
PR & Code Review Workflow doc, the GitHub Governance Rollout Strategy,
and the open-pr skill)
- FR-013a (new): the CI-enforced restrictedTypes rule (type:feature/
  bug/performance/security/release/hotfix forbid meta:no-changelog
  regardless of stack position) -- found only by triggering the real
  CI check on PR #3403, documented nowhere else in this repo. Also
  added to data-model.md's Changelog Entry entity.
- FR-014: embedded the exact ## Stack block field format (Position/
  Issue-Epic/Depends on/Followed by/Review scope) instead of relying
  only on an external reference
- FR-008: added concrete file patterns for the review-budget exclusion
  list (package-lock.json, *.lock, *.snapshot, dist/**, build/**,
  *.min.js, *.po/*.pot)

Verification
- markdownlint clean on all touched/created files
brandonmarshal added a commit that referenced this pull request Sep 21, 2026
Contract accuracy
- contracts/pr-agent-invocation.md: the "must not" list forbade even
  reading .github/PULL_REQUEST_TEMPLATE/config.yml, contradicting
  FR-010's requirement to route through it. Narrowed to writes only
  -- reading it for routing is required, not prohibited. Not a LOCKED
  file change: this is our own contract doc, not the PR template.

Branch-name consistency
- Update every stale feature/pr-agent-consolidation-portability
  reference to aiops/pr-agent-consolidation-portability across
  spec.md and plan.md (4 more occurrences than CodeRabbit's single
  flagged line, found via full sweep)
- Mark the Complexity Tracking violation resolved, not just renamed

Verification accuracy
- quickstart.md: check SKILL.md file *content* for the literal
  "template-skill" string via grep, not just file existence via ls

Story status accuracy
- spec.md: User Story 1 was incorrectly marked COMPLETE on this
  branch, which contains none of the actual restructuring/deletion
  work (that's PR #3401/#3403) -- corrected to IN PROGRESS, moved
  the completion claim to where it will actually be true

Base-branch resolution policy
- FR-006: was ambiguous -- "by branch type" but the only described
  mechanism (repository default branch) doesn't vary by type at all.
  Now explicit: hotfix/release -> production-role branch, everything
  else -> integration-role branch, falling back to the repo default
  only when neither role applies
- data-model.md: updated base/resolvedBaseBranch fields to match

Documentation accuracy
- AGENT.md: Implementation Reference pointed at scripts/ paths that
  don't exist on this branch yet (that restructuring is PR #3401) --
  corrected to this branch's actual current flat file layout

Verification
- markdownlint clean on all 6 touched files
- agents/pr-agent full suite: 12/12 suites, 238/238 tests (unchanged)
brandonmarshal added a commit that referenced this pull request Sep 21, 2026
Task generation
- tasks.md: 37 tasks across Setup/Foundational/4 user-story phases,
  Story 1's 14 tasks marked done (delivered across PR #3400/#3401/#3403),
  Stories 2-4's remaining 23 tasks marked not started -- verified
  against actual skill code, not assumed

Requirements-quality checklist
- checklists/story2-behaviour.md: 22 items reviewing Story 2's FR-005
  through FR-019 for completeness/clarity/consistency/measurability/
  coverage, 100% traceability

Governance-doc alignment fixes (cross-checked against the LightSpeed
PR & Code Review Workflow doc, the GitHub Governance Rollout Strategy,
and the open-pr skill)
- FR-013a (new): the CI-enforced restrictedTypes rule (type:feature/
  bug/performance/security/release/hotfix forbid meta:no-changelog
  regardless of stack position) -- found only by triggering the real
  CI check on PR #3403, documented nowhere else in this repo. Also
  added to data-model.md's Changelog Entry entity.
- FR-014: embedded the exact ## Stack block field format (Position/
  Issue-Epic/Depends on/Followed by/Review scope) instead of relying
  only on an external reference
- FR-008: added concrete file patterns for the review-budget exclusion
  list (package-lock.json, *.lock, *.snapshot, dist/**, build/**,
  *.min.js, *.po/*.pot)

Verification
- markdownlint clean on all touched/created files
@brandonmarshal
brandonmarshal force-pushed the fix/pr-agent-branch-name-validation branch from 61d16d3 to fee3eda Compare September 21, 2026 12:24
eleshar pushed a commit that referenced this pull request Sep 21, 2026
Contract accuracy
- contracts/pr-agent-invocation.md: the "must not" list forbade even
  reading .github/PULL_REQUEST_TEMPLATE/config.yml, contradicting
  FR-010's requirement to route through it. Narrowed to writes only
  -- reading it for routing is required, not prohibited. Not a LOCKED
  file change: this is our own contract doc, not the PR template.

Branch-name consistency
- Update every stale feature/pr-agent-consolidation-portability
  reference to aiops/pr-agent-consolidation-portability across
  spec.md and plan.md (4 more occurrences than CodeRabbit's single
  flagged line, found via full sweep)
- Mark the Complexity Tracking violation resolved, not just renamed

Verification accuracy
- quickstart.md: check SKILL.md file *content* for the literal
  "template-skill" string via grep, not just file existence via ls

Story status accuracy
- spec.md: User Story 1 was incorrectly marked COMPLETE on this
  branch, which contains none of the actual restructuring/deletion
  work (that's PR #3401/#3403) -- corrected to IN PROGRESS, moved
  the completion claim to where it will actually be true

Base-branch resolution policy
- FR-006: was ambiguous -- "by branch type" but the only described
  mechanism (repository default branch) doesn't vary by type at all.
  Now explicit: hotfix/release -> production-role branch, everything
  else -> integration-role branch, falling back to the repo default
  only when neither role applies
- data-model.md: updated base/resolvedBaseBranch fields to match

Documentation accuracy
- AGENT.md: Implementation Reference pointed at scripts/ paths that
  don't exist on this branch yet (that restructuring is PR #3401) --
  corrected to this branch's actual current flat file layout

Verification
- markdownlint clean on all 6 touched files
- agents/pr-agent full suite: 12/12 suites, 238/238 tests (unchanged)
eleshar pushed a commit that referenced this pull request Sep 21, 2026
Task generation
- tasks.md: 37 tasks across Setup/Foundational/4 user-story phases,
  Story 1's 14 tasks marked done (delivered across PR #3400/#3401/#3403),
  Stories 2-4's remaining 23 tasks marked not started -- verified
  against actual skill code, not assumed

Requirements-quality checklist
- checklists/story2-behaviour.md: 22 items reviewing Story 2's FR-005
  through FR-019 for completeness/clarity/consistency/measurability/
  coverage, 100% traceability

Governance-doc alignment fixes (cross-checked against the LightSpeed
PR & Code Review Workflow doc, the GitHub Governance Rollout Strategy,
and the open-pr skill)
- FR-013a (new): the CI-enforced restrictedTypes rule (type:feature/
  bug/performance/security/release/hotfix forbid meta:no-changelog
  regardless of stack position) -- found only by triggering the real
  CI check on PR #3403, documented nowhere else in this repo. Also
  added to data-model.md's Changelog Entry entity.
- FR-014: embedded the exact ## Stack block field format (Position/
  Issue-Epic/Depends on/Followed by/Review scope) instead of relying
  only on an external reference
- FR-008: added concrete file patterns for the review-budget exclusion
  list (package-lock.json, *.lock, *.snapshot, dist/**, build/**,
  *.min.js, *.po/*.pot)

Verification
- markdownlint clean on all touched/created files
@eleshar
eleshar force-pushed the fix/pr-agent-branch-name-validation branch from fee3eda to 41a03cd Compare September 21, 2026 16:18
eleshar pushed a commit that referenced this pull request Sep 21, 2026
Contract accuracy
- contracts/pr-agent-invocation.md: the "must not" list forbade even
  reading .github/PULL_REQUEST_TEMPLATE/config.yml, contradicting
  FR-010's requirement to route through it. Narrowed to writes only
  -- reading it for routing is required, not prohibited. Not a LOCKED
  file change: this is our own contract doc, not the PR template.

Branch-name consistency
- Update every stale feature/pr-agent-consolidation-portability
  reference to aiops/pr-agent-consolidation-portability across
  spec.md and plan.md (4 more occurrences than CodeRabbit's single
  flagged line, found via full sweep)
- Mark the Complexity Tracking violation resolved, not just renamed

Verification accuracy
- quickstart.md: check SKILL.md file *content* for the literal
  "template-skill" string via grep, not just file existence via ls

Story status accuracy
- spec.md: User Story 1 was incorrectly marked COMPLETE on this
  branch, which contains none of the actual restructuring/deletion
  work (that's PR #3401/#3403) -- corrected to IN PROGRESS, moved
  the completion claim to where it will actually be true

Base-branch resolution policy
- FR-006: was ambiguous -- "by branch type" but the only described
  mechanism (repository default branch) doesn't vary by type at all.
  Now explicit: hotfix/release -> production-role branch, everything
  else -> integration-role branch, falling back to the repo default
  only when neither role applies
- data-model.md: updated base/resolvedBaseBranch fields to match

Documentation accuracy
- AGENT.md: Implementation Reference pointed at scripts/ paths that
  don't exist on this branch yet (that restructuring is PR #3401) --
  corrected to this branch's actual current flat file layout

Verification
- markdownlint clean on all 6 touched files
- agents/pr-agent full suite: 12/12 suites, 238/238 tests (unchanged)
@eleshar
eleshar force-pushed the fix/pr-agent-branch-name-validation branch from 41a03cd to 71d700c Compare September 21, 2026 16:21
eleshar pushed a commit that referenced this pull request Sep 21, 2026
Task generation
- tasks.md: 37 tasks across Setup/Foundational/4 user-story phases,
  Story 1's 14 tasks marked done (delivered across PR #3400/#3401/#3403),
  Stories 2-4's remaining 23 tasks marked not started -- verified
  against actual skill code, not assumed

Requirements-quality checklist
- checklists/story2-behaviour.md: 22 items reviewing Story 2's FR-005
  through FR-019 for completeness/clarity/consistency/measurability/
  coverage, 100% traceability

Governance-doc alignment fixes (cross-checked against the LightSpeed
PR & Code Review Workflow doc, the GitHub Governance Rollout Strategy,
and the open-pr skill)
- FR-013a (new): the CI-enforced restrictedTypes rule (type:feature/
  bug/performance/security/release/hotfix forbid meta:no-changelog
  regardless of stack position) -- found only by triggering the real
  CI check on PR #3403, documented nowhere else in this repo. Also
  added to data-model.md's Changelog Entry entity.
- FR-014: embedded the exact ## Stack block field format (Position/
  Issue-Epic/Depends on/Followed by/Review scope) instead of relying
  only on an external reference
- FR-008: added concrete file patterns for the review-budget exclusion
  list (package-lock.json, *.lock, *.snapshot, dist/**, build/**,
  *.min.js, *.po/*.pot)

Verification
- markdownlint clean on all touched/created files
@ashleyshaw ashleyshaw added this to the v1.1 milestone Sep 22, 2026
@ashleyshaw ashleyshaw modified the milestones: v1.1, v1.6 Sep 22, 2026
brandonmarshal and others added 6 commits September 22, 2026 07:32
Branch validation fix
- FORBIDDEN_PREFIXES: claude/bot/automated -> claude/copilot/openai
  (was contradicting docs/BRANCHING_STRATEGY.md Section 4.1)
- ALLOWED_TYPES: add task, doc, aiops, automation, epic -- the 5
  canonical types missing from the previous list
- Add test coverage for both lists (neither had any before)

Lint verification (deferred from Step 4)
- Fix the labels unused-var error in orchestrate-pr-creation.test.js
- Confirm the flat config actually catches a deliberately introduced
  violation, not just passing by chance

Verification
- Full suite: 13/13 test suites, 247/247 tests passing
- Lint: clean
Verification before deletion
- Confirmed all 5 files had a recorded disposition: pr-creation.agent.md
  folded into AGENT.md; eslint.config.js and its test adopted byte-for-byte
  identical into pr-agent; package.json/package-lock.json superseded by
  pr-agent's own corrected versions
- Confirmed pr-agent's test suite and lint pass unaffected by the removal
  (13/13 suites, 247/247 tests, lint clean)
- README.md: skills table, structure diagram, dev commands, and a
  governance section referencing docs/BRANCHING_*.md, PR_*.md,
  LABEL*.md, ISSUE*.md by wildcard rather than duplicating their rules
- CHANGELOG.md: Keep a Changelog format, matching this repo's existing
  agent convention -- 1.1.0 documents the full pr-creation-agent merge
  and skills restructuring, 1.0.0 as the prior baseline

This completes User Story 1's merge and restructure work.
Required because type:bug is on this repo's CI-enforced restrictedTypes
list -- meta:no-changelog is not permitted for it, only meta:needs-changelog
with a real entry.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
brandonmarshal added a commit that referenced this pull request Sep 22, 2026
Contract accuracy
- contracts/pr-agent-invocation.md: the "must not" list forbade even
  reading .github/PULL_REQUEST_TEMPLATE/config.yml, contradicting
  FR-010's requirement to route through it. Narrowed to writes only
  -- reading it for routing is required, not prohibited. Not a LOCKED
  file change: this is our own contract doc, not the PR template.

Branch-name consistency
- Update every stale feature/pr-agent-consolidation-portability
  reference to aiops/pr-agent-consolidation-portability across
  spec.md and plan.md (4 more occurrences than CodeRabbit's single
  flagged line, found via full sweep)
- Mark the Complexity Tracking violation resolved, not just renamed

Verification accuracy
- quickstart.md: check SKILL.md file *content* for the literal
  "template-skill" string via grep, not just file existence via ls

Story status accuracy
- spec.md: User Story 1 was incorrectly marked COMPLETE on this
  branch, which contains none of the actual restructuring/deletion
  work (that's PR #3401/#3403) -- corrected to IN PROGRESS, moved
  the completion claim to where it will actually be true

Base-branch resolution policy
- FR-006: was ambiguous -- "by branch type" but the only described
  mechanism (repository default branch) doesn't vary by type at all.
  Now explicit: hotfix/release -> production-role branch, everything
  else -> integration-role branch, falling back to the repo default
  only when neither role applies
- data-model.md: updated base/resolvedBaseBranch fields to match

Documentation accuracy
- AGENT.md: Implementation Reference pointed at scripts/ paths that
  don't exist on this branch yet (that restructuring is PR #3401) --
  corrected to this branch's actual current flat file layout

Verification
- markdownlint clean on all 6 touched files
- agents/pr-agent full suite: 12/12 suites, 238/238 tests (unchanged)
brandonmarshal added a commit that referenced this pull request Sep 22, 2026
Task generation
- tasks.md: 37 tasks across Setup/Foundational/4 user-story phases,
  Story 1's 14 tasks marked done (delivered across PR #3400/#3401/#3403),
  Stories 2-4's remaining 23 tasks marked not started -- verified
  against actual skill code, not assumed

Requirements-quality checklist
- checklists/story2-behaviour.md: 22 items reviewing Story 2's FR-005
  through FR-019 for completeness/clarity/consistency/measurability/
  coverage, 100% traceability

Governance-doc alignment fixes (cross-checked against the LightSpeed
PR & Code Review Workflow doc, the GitHub Governance Rollout Strategy,
and the open-pr skill)
- FR-013a (new): the CI-enforced restrictedTypes rule (type:feature/
  bug/performance/security/release/hotfix forbid meta:no-changelog
  regardless of stack position) -- found only by triggering the real
  CI check on PR #3403, documented nowhere else in this repo. Also
  added to data-model.md's Changelog Entry entity.
- FR-014: embedded the exact ## Stack block field format (Position/
  Issue-Epic/Depends on/Followed by/Review scope) instead of relying
  only on an external reference
- FR-008: added concrete file patterns for the review-budget exclusion
  list (package-lock.json, *.lock, *.snapshot, dist/**, build/**,
  *.min.js, *.po/*.pot)

Verification
- markdownlint clean on all touched/created files
@brandonmarshal
brandonmarshal force-pushed the fix/pr-agent-branch-name-validation branch from 55425e8 to 6eddea4 Compare September 22, 2026 05:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants