Skip to content

feat(agents): add Task Reviewer and expand RPI to 4-phase workflow#277

Merged
agreaves-ms merged 45 commits intomainfrom
feat/task-reviewer
Jan 24, 2026
Merged

feat(agents): add Task Reviewer and expand RPI to 4-phase workflow#277
agreaves-ms merged 45 commits intomainfrom
feat/task-reviewer

Conversation

@agreaves-ms
Copy link
Copy Markdown
Collaborator

@agreaves-ms agreaves-ms commented Jan 24, 2026

feat(agents): add Task Reviewer and expand RPI to 4-phase workflow

Introduces the Task Reviewer agent and expands the RPI (Research-Plan-Implement) workflow to include a Review phase, creating a complete 4-phase methodology with iteration loops. Also adds the memory agent for conversation context persistence, doc-ops agent for documentation quality assurance, and new supporting prompts for autonomous workflows.

Description

  • feat(agents): add task-reviewer.agent.md for implementation validation against research and plan specifications
  • feat(agents): add memory.agent.md for conversation context persistence with save, continue, and incremental modes
  • feat(agents): add doc-ops.agent.md for autonomous documentation quality assurance
  • refactor(agents): transform rpi-agent into fully autonomous orchestrator dispatching task-* agents through 5-phase workflow (Research → Plan → Implement → Review → Discover)
  • feat(agents): add handoffs frontmatter to all RPI task agents enabling seamless phase transitions via UI buttons
  • feat(prompts): add checkpoint.prompt.md for memory file operations
  • feat(prompts): add rpi.prompt.md for autonomous RPI workflow invocation
  • feat(prompts): add task-review.prompt.md for implementation review initiation
  • feat(prompts): add doc-ops-update.prompt.md for documentation processing
  • refactor(agents): update all task agents with enhanced subagent response formats and handoff buttons
  • refactor(prompts): remove agent references from ADO prompts for flexibility
  • refactor(docs): update date formatting in file paths to use {{YYYY-MM-DD}} syntax across all agents and prompts
  • refactor(docs): update RPI documentation to reflect 4-phase workflow with Task Reviewer guides
  • refactor(instructions): remove task-implementation.instructions.md (consolidated into task-implementor agent)
  • refactor(instructions): add user-facing response guidance to prompt-builder.instructions.md for markdown link formatting
  • chore(workflows): remove scorecard.yml and pester-tests from main.yml
  • chore(workflows): simplify table-format.yml job summary output
  • docs(readme): streamline README.md with updated component overview
  • chore(extension): register new agents and prompts in extension package.json

RPI Updates:

RPI agent now combines Task Researcher, Task Planner, Task Implementor, and Task Reviewer all in one custom agent and utilizes subagents for every step.

/rpi {describe your task you want researched, planned, and implemented}

rpi-start

RPI Checkpoint:

When your context is getting too large and you want to continue with a fresh context:

/checkpoint
/checkpoint continue

rpi-memory-checkpoint

New Task Reviewer:

New Task Reviewer which will review the implemented changes against planned and research work.

/task-review

rpi-review

Related Issue(s)

N/A

Type of Change

Select all that apply:

Code & Documentation:

  • Bug fix (non-breaking change fixing an issue)
  • New feature (non-breaking change adding functionality)
  • Breaking change (fix or feature causing existing functionality to change)
  • Documentation update

Infrastructure & Configuration:

  • GitHub Actions workflow
  • Linting configuration (markdown, PowerShell, etc.)
  • Security configuration
  • DevContainer configuration
  • Dependency update

AI Artifacts:

  • Reviewed contribution with prompt-builder agent and addressed all feedback
  • Copilot instructions (.github/instructions/*.instructions.md)
  • Copilot prompt (.github/prompts/*.prompt.md)
  • Copilot agent (.github/agents/*.agent.md)

Note for AI Artifact Contributors:

  • Agents: Research, indexing/referencing other project (using standard VS Code GitHub Copilot/MCP tools), planning, and general implementation agents likely already exist. Review .github/agents/ before creating new ones.
  • Model Versions: Only contributions targeting the latest Anthropic and OpenAI models will be accepted. Older model versions (e.g., GPT-3.5, Claude 3) will be rejected.
  • See Agents Not Accepted and Model Version Requirements.

Other:

  • Script/automation (.ps1, .sh, .py)
  • Other (please describe):

Sample Prompts (for AI Artifact Contributions)

User Request:
/task-review - Validate implementation against research and plan specifications after completing task implementation

Execution Flow:

  1. Task Reviewer locates review artifacts (research, plan, changes logs)
  2. Extracts implementation checklist from source documents
  3. Dispatches validation subagents for file changes, convention compliance, and command execution
  4. Updates review log with findings by severity (Critical, Major, Minor)
  5. Identifies follow-up work and iteration needs
  6. Returns review status: Complete, Needs Rework, or Escalate

Output Artifacts:
.copilot-tracking/reviews/{{YYYY-MM-DD}}-task-description-review.md

Success Indicators:

  • Review log created with all checklist items validated
  • Findings categorized by severity with evidence
  • Overall status provided with handoff steps

For detailed contribution requirements, see:

Testing

Tested task-reviewer agent through complete RPI workflow cycles, validating:

  • Artifact discovery and correlation
  • Checklist extraction from research and plan documents
  • Convention compliance validation against instruction files
  • Review log creation with structured findings
  • Handoff button functionality between agents

Checklist

Required Checks

  • Documentation is updated (if applicable)
  • Files follow existing naming conventions
  • Changes are backwards compatible (if applicable)

AI Artifact Contributions

  • Used /prompt-analyze to review contribution
  • Addressed all feedback from prompt-builder review
  • Verified contribution follows common standards and type-specific requirements

Required Automated Checks

The following validation commands must pass before merging:

  • Markdown linting: npm run lint:md
  • Spell checking: npm run spell-check
  • Frontmatter validation: npm run lint:frontmatter
  • Link validation: npm run lint:md-links
  • PowerShell analysis: npm run lint:ps

Security Considerations

  • This PR does not contain any sensitive or NDA information
  • Any new dependencies have been reviewed for security issues
  • Security-related scripts follow the principle of least privilege

Additional Notes

This PR expands the RPI methodology from 3 phases to 4 phases by adding the Review phase. The review phase enables:

  • Validation against documented specifications (research and plan)
  • Convention compliance checking using instruction files
  • Structured findings with severity categorization
  • Iteration loops back to Research, Plan, or Implement based on review outcomes

The memory agent provides session continuity for long-running tasks across conversation resets.

The doc-ops agent operates autonomously using subagents for documentation quality assurance, separate from the RPI workflow.

🤖 - Generated by Copilot

Copilot AI review requested due to automatic review settings January 24, 2026 21:55
@agreaves-ms agreaves-ms requested a review from a team as a code owner January 24, 2026 21:55
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jan 24, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces a significant expansion of the RPI (Research-Plan-Implement) workflow by adding a fourth Review phase, transforming it into Research-Plan-Implement-Review. The review phase enables validation against documented specifications, convention compliance checking, and structured iteration loops back to earlier phases when needed.

Changes:

  • Adds Task Reviewer agent for implementation validation with findings categorized by severity (Critical, Major, Minor)
  • Adds memory agent for conversation context persistence across session resets with save/continue/incremental modes
  • Adds doc-ops agent for autonomous documentation quality assurance separate from RPI workflow
  • Transforms rpi-agent into fully autonomous 5-phase orchestrator (Research → Plan → Implement → Review → Discover) dispatching task-* agents via runSubagent
  • Adds handoff frontmatter to all RPI task agents enabling seamless phase transitions via UI buttons
  • Removes task-implementation.instructions.md (consolidated into task-implementor agent)
  • Updates all RPI documentation from 3-phase to 4-phase workflow
  • Standardizes date formatting to {{YYYY-MM-DD}} syntax across agents and prompts
  • Removes agent references from ADO prompts for flexibility
  • Updates task-planner to create 2 files instead of 3 (removed generated implementation prompt)

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated no comments.

Show a summary per file
File Description
extension/package.json Registers new agents (doc-ops, memory, task-reviewer), prompts (checkpoint, doc-ops-update, rpi, task-review), removes task-implementation instructions, updates descriptions
docs/rpi/why-rpi.md Updates to describe 4-phase workflow with Task Reviewer, adds review phase benefits and iteration patterns
docs/rpi/using-together.md Adds Phase 4: Review section with validation workflow, iteration loops, and handoff button documentation
docs/rpi/task-reviewer.md New comprehensive guide for Task Reviewer usage, severity levels, and iteration paths
docs/rpi/task-researcher.md Adds handoff button tip, updates date format placeholders, minor formatting improvements
docs/rpi/task-planner.md Updates for 2-file output (removed prompt generation), adds handoff button tip
docs/rpi/task-implementor.md Updates handoff to review phase, removes prompt deletion requirement
docs/rpi/README.md Updates overview for 4-phase workflow, adds Task Reviewer phase description
docs/contributing/prompts.md Updates date format placeholders to {{YYYY-MM-DD}}
docs/contributing/custom-agents.md Adds handoffs frontmatter documentation with examples and field specifications
.github/prompts/task-review.prompt.md New prompt for initiating review with scope parameters and artifact discovery
.github/prompts/rpi.prompt.md New prompt for autonomous RPI workflow with autonomy modes (auto/partial/false)
.github/prompts/checkpoint.prompt.md New prompt for memory file operations (save/continue/incremental modes)
.github/prompts/doc-ops-update.prompt.md New prompt for documentation quality assurance with scope filtering
.github/prompts/task-research.prompt.md Adds important requirements section, updates date format placeholders
.github/prompts/task-plan.prompt.md Adds important requirements, updates for 2-file creation
.github/prompts/task-implement.prompt.md Adds important requirements section, updates date format placeholders
.github/prompts/prompt-refactor.prompt.md Adds important requirements section for thoroughness
.github/prompts/prompt-build.prompt.md Adds important requirements section, refactoring guidance
.github/prompts/pull-request.prompt.md Removes agent reference for flexibility
.github/prompts/ado-*.prompt.md Removes agent references from all ADO prompts
.github/agents/task-reviewer.agent.md New agent with 5-phase protocol (Discovery, Extraction, Validation, Follow-Up, Completion) and subagent dispatch
.github/agents/memory.agent.md New agent with 3-phase protocol (Detect, Save, Continue) for conversation persistence
.github/agents/doc-ops.agent.md New autonomous agent with 5-phase protocol for documentation QA
.github/agents/task-researcher.agent.md Adds handoff to task-planner, updates response format with emoji header, structured completion handoff
.github/agents/task-planner.agent.md Adds handoff to task-implementor, updates for 2-file output, structured completion handoff
.github/agents/task-implementor.agent.md Adds handoff to task-reviewer, updates response format, adds deviations tracking
.github/agents/rpi-agent.agent.md Major rewrite as autonomous 5-phase orchestrator with autonomy modes and discovery phase
.github/agents/prompt-builder.agent.md Adds handoff buttons for workflow transitions, updates iteration logic
.github/agents/hve-core-installer.agent.md Updates VS Code settings to include chat.agentFilesLocations, removes .copilot-tracking/prompts
.github/agents/gen-data-spec.agent.md Updates date format placeholders to {{YYYY-MM-DD}}
.github/instructions/task-implementation.instructions.md Removed (consolidated into task-implementor agent)
.github/instructions/prompt-builder.instructions.md Adds user-facing response guidance for markdown link formatting
.github/instructions/ado-get-build-info.instructions.md Updates date format placeholders to {{YYYY-MM-DD}}
.github/instructions/README.md Removes task-implementation.instructions.md references
.github/copilot-instructions.md Removes .copilot-tracking/prompts/ directory reference
.github/CUSTOM-AGENTS.md Updates date formats, prompt counts (2 files not 3 for planner)

Copy link
Copy Markdown
Member

@WilliamBerryiii WilliamBerryiii left a comment

Choose a reason for hiding this comment

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

Approved with suggestions. LFGTM - thanks for knocking this out and can't wait to run with the new reviewer.

Copilot AI review requested due to automatic review settings January 24, 2026 22:39
…pdate related documentation

- consolidate task implementation guidance into existing agents
- enhance clarity in task planning prompts
- update package.json to reflect instruction removal

🔧 - Generated by Copilot
… reviews

- specify thoroughness and precision in validation
- allow subagents to ask clarifying questions
- emphasize continuous log updates during validation
- repeat steps for additional context as needed

🔍 - Generated by Copilot
- add clarity on thoroughness and accuracy across prompts
- emphasize avoiding verbosity and ensuring completeness in documentation
- encourage iterative refinement of instructions and examples

🔒 - Generated by Copilot
…tion reviews

- update handoff instructions for review findings
- clarify summary and next steps for user handoff
- improve consistency in important requirements across prompts

🔒 - Generated by Copilot
Add VS Code Custom Agent handoffs: declarations enabling seamless
transitions between RPI workflow phases via handoff buttons.

Agent updates:
- task-researcher: handoff to task-planner
- task-planner: handoff to task-implementor
- task-implementor: handoff to task-reviewer
- task-reviewer: handoffs to task-researcher and task-planner

Documentation updates:
- custom-agents.md: document handoffs field in Optional Fields section
- using-together.md: update workflow diagram, add Handoff Buttons section
- introduce new rpi.prompt.md for RPI agent workflow
- update task-planner and task-implement prompts for clarity
- refine task-review prompt to enhance validation process

🔄 - Generated by Copilot
- update research, planning, implementation, and review phases to include discovered instructions and skills
- improve clarity on subagent responsibilities and artifact references

🔍 - Generated by Copilot
… and response format

- present findings summary with severity counts in a table
- include review log file path for detailed reference
- provide numbered handoff steps based on review outcome
- add user interaction patterns for rework and follow-up items

🔍 - Generated by Copilot
… RPI agent

- streamline handoff options for user interactions
- clarify response standards for completion summaries

🔧 - Generated by Copilot
- implement memory file structure for session continuity
- define phases for detection, saving, and continuing memory
- outline user interaction and response formats for memory operations

🔒 - Generated by Copilot
…n behavior

- add continuation behavior for assessing conversation context
- define response standards for user-facing communication
- implement phase transition updates and completion patterns

🔄 - Generated by Copilot
…for memory context

- add incremental mode for mid-session progress saves
- update operation steps to include task overview and current state
- clarify inputs and execution for improved user interaction

🔒 - Generated by Copilot
… sessions

- add identification of custom agents invoked
- include notes on custom agents for workflow continuity

🔄 - Generated by Copilot
…nce continuation options

🔍 - Generated by Copilot
…vels

- add auto parameter for controlling autonomy
- update continue and suggest parameters for clarity
- refine input handling descriptions for better user guidance

🔧 - Generated by Copilot
…otocol

- introduce handoff for continuing with RPI
- provide instructions for switching agents in VS Code
- enhance user guidance for session continuity

🚀 - Generated by Copilot
- update task researcher, planner, implementor, and reviewer guides
- clarify the new review phase and its importance in the workflow
- adjust artifact summaries and common patterns for clarity
- revise commit messages and instructions for better user guidance

📚 - Generated by Copilot
… definition

- refine description for documentation quality assurance
- adjust argument-hint to remove unnecessary options
- enhance input descriptions for better understanding
- clarify scope definition for documentation processing

🔧 - Generated by Copilot
…ion quality assurance

🔒 - Generated by Copilot
…d roadmap documents

refactor(docs): enhance readability of task reviewer and using together documentation

refactor(docs): standardize table layouts in why-rpi documentation

🔧 - Generated by Copilot
… and human reviewers

🔒 - Generated by Copilot
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 28.87%. Comparing base (7c6d788) to head (3003256).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #277      +/-   ##
==========================================
+ Coverage   28.80%   28.87%   +0.07%     
==========================================
  Files          14       14              
  Lines        2736     2736              
==========================================
+ Hits          788      790       +2     
+ Misses       1948     1946       -2     
Flag Coverage Δ
pester 28.87% <ø> (+0.07%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 44 out of 44 changed files in this pull request and generated 2 comments.

@agreaves-ms agreaves-ms merged commit ae76cab into main Jan 24, 2026
16 checks passed
@agreaves-ms agreaves-ms deleted the feat/task-reviewer branch January 24, 2026 22:52
WilliamBerryiii pushed a commit that referenced this pull request Jan 28, 2026
🤖 I have created a release *beep* *boop*
---


##
[2.0.0](hve-core-v1.1.0...hve-core-v2.0.0)
(2026-01-28)


### ⚠ BREAKING CHANGES

* **agents:** add Task Reviewer and expand RPI to 4-phase workflow
([#277](#277))

### ✨ Features

* **agents:** add hve-core-installer agent to extension package
([#297](#297))
([c0e48c6](c0e48c6))
* **agents:** add Task Reviewer and expand RPI to 4-phase workflow
([#277](#277))
([ae76cab](ae76cab))
* **build:** add code coverage reporting to Pester workflow
([#230](#230))
([a34822a](a34822a))
* **docs:** add GOVERNANCE.md for OSSF Silver Badge compliance
([#235](#235))
([b0e752c](b0e752c))
* **docs:** add ROADMAP.md for OSSF Silver badge compliance
([#238](#238))
([4a41c16](4a41c16))
* **mcp:** add MCP server configuration guidance and installer
enhancements ([#225](#225))
([0bce418](0bce418))
* **scripts:** add YAML linting with actionlint
([#234](#234))
([d9301f9](d9301f9))
* **security:** add OpenSSF Scorecard workflow and badge
([#271](#271))
([7c6d788](7c6d788))
* **skills:** add video-to-gif conversion skill with FFmpeg two-pass
optimization ([#247](#247))
([8d65c42](8d65c42))
* **tests:** add Pester tests for LintingHelpers and
Validate-MarkdownFrontmatter
([#197](#197),
[#198](#198))
([#205](#205))
([51ae563](51ae563))


### 🐛 Bug Fixes

* **build:** detect table formatting changes via git diff
([#261](#261))
([985eee0](985eee0))
* **build:** disable MD024 lint rule in CHANGELOG for release-please
([#220](#220))
([971df94](971df94))
* **build:** quote shell variables and group redirects in workflow files
([#299](#299))
([3372509](3372509))
* **build:** resolve scorecard badge and workflow security issues
([#301](#301))
([aeaed13](aeaed13))
* **extension:** remove frontmatter from README and exclude from
markdown linting
([#223](#223))
([4272529](4272529))
* **instructions:** quote applyTo glob pattern for YAML compatibility
([#216](#216))
([085199c](085199c))
* **scripts:** add FooterExcludePaths parameter to frontmatter
validation ([#334](#334))
([64db98d](64db98d))
* **scripts:** add GHSA word and logs/ exclusion to cspell config
([#214](#214))
([5c99b3f](5c99b3f))
* **scripts:** correct type assertions in Invoke-YamlLint.Tests.ps1
([#332](#332))
([af7050d](af7050d))
* **scripts:** eliminate false positives in dependency pinning npm
pattern ([#273](#273))
([ccbdfa3](ccbdfa3))
* **security:** add artifact attestation for signed releases
([#257](#257))
([c52d6e2](c52d6e2))
* standardize markdown footers and complete frontmatter
([#217](#217))
([b4e7556](b4e7556))


### 📚 Documentation

* add OpenSSF Best Practices Passing badge to README
([#239](#239))
([91bc529](91bc529))
* **architecture:** add architecture documentation and value proposition
([#252](#252))
([0e4b02f](0e4b02f))
* **contributing:** add testing requirements for OSSF compliance
([#254](#254))
([4db1a18](4db1a18))
* **docs:** add enterprise status badges to README header
([#270](#270))
([ccb68a4](ccb68a4))
* **security:** add security assurance case and threat model for OSSF
Silver ([#259](#259))
([a390e26](a390e26))


### ♻️ Refactoring

* **application:** wrap execution with try blocks, ensure proper …
([#296](#296))
([35c4417](35c4417))
* **scripts:** extract frontmatter validation to testable module
([#293](#293))
([4e8707e](4e8707e))
* **scripts:** extract pure functions for Pester testability
([#221](#221))
([d40e742](d40e742))


### 🔧 Maintenance

* **deps-dev:** bump cspell from 9.4.0 to 9.6.0 in the npm-dependencies
group ([#208](#208))
([855914b](855914b))
* **deps-dev:** bump cspell from 9.6.0 to 9.6.1 in the npm-dependencies
group ([#294](#294))
([1e45ad6](1e45ad6))
* **deps:** bump actions/setup-node from 6.1.0 to 6.2.0 in the
github-actions group
([#209](#209))
([c4c69e2](c4c69e2))
* **deps:** bump the github-actions group with 4 updates
([#295](#295))
([d8337b8](d8337b8))
* remove step-security/harden-runner from workflows
([#246](#246))
([c5708d8](c5708d8))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: hve-core-release-please[bot] <254602402+hve-core-release-please[bot]@users.noreply.github.com>
WilliamBerryiii added a commit that referenced this pull request Feb 2, 2026
…it window issue (#342)

## Description

Configure release-please search depths to prevent version detection
failures when the latest release tag is beyond the default commit
scanning window. This addresses a known limitation
([googleapis/release-please#2267](googleapis/release-please#2267))
where release-please fails to find tags older than ~250 commits, causing
it to reprocess the entire commit history and incorrectly detect
already-released breaking changes.

- Added `release-search-depth: 800` at root level to increase release
pagination depth
- Added `commit-search-depth: 1000` at root level to increase commit
scanning depth
- Added `include-component-in-tag: true` to explicitly match the
existing tag format (`hve-core-vX.Y.Z`)

## Related Issue(s)

Related to
[googleapis/release-please#2267](googleapis/release-please#2267)

## Type of Change

Select all that apply:

**Code & Documentation:**

- [x] Bug fix (non-breaking change fixing an issue)
- [ ] New feature (non-breaking change adding functionality)
- [ ] Breaking change (fix or feature causing existing functionality to
change)
- [ ] Documentation update

**Infrastructure & Configuration:**

- [ ] GitHub Actions workflow
- [ ] Linting configuration (markdown, PowerShell, etc.)
- [ ] Security configuration
- [ ] DevContainer configuration
- [ ] Dependency update

**AI Artifacts:**

- [ ] Reviewed contribution with `prompt-builder` agent and addressed
all feedback
- [ ] Copilot instructions (`.github/instructions/*.instructions.md`)
- [ ] Copilot prompt (`.github/prompts/*.prompt.md`)
- [ ] Copilot agent (`.github/agents/*.agent.md`)

> **Note for AI Artifact Contributors**:
>
> - **Agents**: Research, indexing/referencing other project (using
standard VS Code GitHub Copilot/MCP tools), planning, and general
implementation agents likely already exist. Review `.github/agents/`
before creating new ones.
> - **Model Versions**: Only contributions targeting the **latest
Anthropic and OpenAI models** will be accepted. Older model versions
(e.g., GPT-3.5, Claude 3) will be rejected.
> - See [Agents Not
Accepted](../docs/contributing/custom-agents.md#agents-not-accepted) and
[Model Version
Requirements](../docs/contributing/ai-artifacts-common.md#model-version-requirements).

**Other:**

- [ ] Script/automation (`.ps1`, `.sh`, `.py`)
- [ ] Other (please describe):

## Sample Prompts (for AI Artifact Contributions)

N/A - This is a configuration fix, not an AI artifact contribution.

## Testing

- Validated JSON syntax using `node -e
"require('./release-please-config.json')"`
- Verified configuration matches the release-please JSON schema (no IDE
validation errors)
- Expected behavior: Next release-please run will correctly detect the
v2.0.1 tag regardless of commit distance

## Checklist

### Required Checks

- [x] Documentation is updated (if applicable)
- [x] Files follow existing naming conventions
- [x] Changes are backwards compatible (if applicable)
- [ ] Tests added for new functionality (if applicable)

### AI Artifact Contributions

N/A

### Required Automated Checks

The following validation commands must pass before merging:

- [ ] Markdown linting: `npm run lint:md`
- [ ] Spell checking: `npm run spell-check`
- [ ] Frontmatter validation: `npm run lint:frontmatter`
- [ ] Link validation: `npm run lint:md-links`
- [ ] PowerShell analysis: `npm run lint:ps`

## Security Considerations

- [x] This PR does not contain any sensitive or NDA information
- [ ] Any new dependencies have been reviewed for security issues
- [x] Security-related scripts follow the principle of least privilege

## Additional Notes

This fix addresses the erroneous v3.0.0 release PR (#341) that was
created immediately after publishing v2.0.1. The root cause was the
250-commit window limitation causing release-please to reprocess the
entire commit history and re-detect the breaking change from PR #277
that was already released in v2.0.0.

🔧 - Generated by Copilot
WilliamBerryiii added a commit that referenced this pull request Feb 13, 2026
… conversion (#545)

## Description

Fixes a race condition where release-please `"draft": true`
configuration caused draft releases that are excluded from the GitHub
Releases API "latest" query, making them invisible to release-please's
own version anchoring within the same workflow invocation. Because the
draft release is invisible, release-please scans the full commit
history, finds an old breaking change (PR #277), and proposes erroneous
v3.0.0 major version bumps. Also added auto-detection of version from
the latest GitHub release tag in both extension publish workflows,
removing the requirement for manual version input on every dispatch.

**Proof the race condition fires in production:** after v2.3.4 merged,
release-please created the v2.3.4 release as draft at 22:05:23 UTC. At
22:08:14 UTC — while v2.3.4 was still draft — release-please opened PR
#547 proposing v3.0.0. The v2.3.4 release was not published until
22:10:08 UTC, confirming that release-please computed the next version
while v2.3.4 was invisible to its own Releases API query.

Additionally, v2.3.2 remains stuck in draft state, demonstrating that
the `publish-release` job's `gh release edit --draft=false` is
unreliable when it depends on upstream jobs that may not always run.

### Changes

- fix(workflows): removed `"draft": true` from root and package level in
`release-please-config.json` so release-please creates published
releases that are immediately visible to the Releases API for version
anchoring
- fix(workflows): removed `"force-tag-creation": true` from
`release-please-config.json` since it requires release-please v17.2.0+
and was silently ignored by the bundled v17.1.3
- fix(workflows): replaced 20-line tag bridge step in `main.yml` with a
`gh release edit --draft=true` post-creation conversion, allowing assets
to be uploaded to a mutable draft release while preserving release
visibility for version anchoring
- feat(workflows): added auto-detection of version from latest GitHub
release tag in `extension-publish-prerelease.yml` when version input is
empty, with ODD minor derivation for the pre-release channel
- feat(workflows): added auto-detection of version from latest GitHub
release tag in `extension-publish.yml` when version input is empty, with
`hve-core-v` prefix stripping
- fix(workflows): updated `extension-publish.yml` input description to
match new auto-detect behavior (was incorrectly referencing
`package.json`)

## Related Issue(s)

Fixes #543

## Type of Change

Select all that apply:

**Code & Documentation:**

- [x] Bug fix (non-breaking change fixing an issue)
- [ ] New feature (non-breaking change adding functionality)
- [ ] Breaking change (fix or feature causing existing functionality to
change)
- [ ] Documentation update

**Infrastructure & Configuration:**

- [x] GitHub Actions workflow
- [ ] Linting configuration (markdown, PowerShell, etc.)
- [ ] Security configuration
- [ ] DevContainer configuration
- [ ] Dependency update

**AI Artifacts:**

- [ ] Reviewed contribution with `prompt-builder` agent and addressed
all feedback
- [ ] Copilot instructions (`.github/instructions/*.instructions.md`)
- [ ] Copilot prompt (`.github/prompts/*.prompt.md`)
- [ ] Copilot agent (`.github/agents/*.agent.md`)
- [ ] Copilot skill (`.github/skills/*/SKILL.md`)

**Other:**

- [ ] Script/automation (`.ps1`, `.sh`, `.py`)
- [ ] Other (please describe):

## Testing

- Validated YAML linting passes via `npm run lint:yaml` — all 25
workflow files passed
- Verified `release-please-config.json` is valid JSON with no schema
errors
- Confirmed the `publish-release` job already contains `gh release edit
--draft=false` to finalize releases after asset upload
- Confirmed `gh release view --json tagName` correctly returns the
latest release tag format (`hve-core-v2.3.4`)

## Checklist

### Required Checks

- [x] Documentation is updated (if applicable)
- [x] Files follow existing naming conventions
- [x] Changes are backwards compatible (if applicable)
- [ ] Tests added for new functionality (if applicable)

### Required Automated Checks

The following validation commands must pass before merging:

- [x] Markdown linting: `npm run lint:md`
- [ ] Spell checking: `npm run spell-check`
- [ ] Frontmatter validation: `npm run lint:frontmatter`
- [ ] Link validation: `npm run lint:md-links`
- [ ] PowerShell analysis: `npm run lint:ps`

## Security Considerations

- [x] This PR does not contain any sensitive or NDA information
- [ ] Any new dependencies have been reviewed for security issues
- [x] Security-related scripts follow the principle of least privilege

## Additional Notes

The release lifecycle after this change follows a four-phase sequence:
release-please creates a **published** release (tag created, visible to
Releases API) → post-creation step converts to **draft** (mutable for
asset upload) → package/attest/upload jobs attach assets →
`publish-release` job converts back to **published**. This preserves the
original HTTP 422 fix from PR #538 while eliminating the version
anchoring race condition that caused PRs #530, #532, #534, #539, #540,
#542, and #547.

### Why the tag bridge didn't work

The tag bridge step from PR #538 manually created git tags after draft
release creation. However, release-please anchors its version
calculation on the GitHub **Releases** API (not the Tags API). Even
though tag `hve-core-v2.3.4` existed at commit `9a72f2b`,
release-please's query for the latest release excluded the draft,
causing it to scan the full commit history and hit the old breaking
change from PR #277.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants