Skip to content

test: add Pester tests for Test-PRMerged.ps1 with 100% coverage#383

Merged
rjmurillo merged 4 commits into
feat/pr-review-merge-state-verificationfrom
copilot/sub-pr-322
Dec 24, 2025
Merged

test: add Pester tests for Test-PRMerged.ps1 with 100% coverage#383
rjmurillo merged 4 commits into
feat/pr-review-merge-state-verificationfrom
copilot/sub-pr-322

Conversation

Copilot AI commented Dec 24, 2025

Copy link
Copy Markdown
Contributor
  • Move test file from .claude/skills/github/tests/ to /tests/ (repository root)
  • Update path references to use repo root as base per Test Location Standards
  • All 89 tests passing in new location
  • Follows governance document .agents/governance/test-location-standards.md

Rationale: All Pester test files must be in /tests/ at repository root for:

  • Centralized test discovery
  • Simplified CI/CD targeting
  • Separation of concerns
  • PowerShell community conventions

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

…coverage

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>
Copilot AI changed the title [WIP] Address feedback on Pester tests for PR merge state verification test: add Pester tests for Test-PRMerged.ps1 with 100% coverage Dec 24, 2025
Copilot AI requested a review from rjmurillo December 24, 2025 20:49
@github-actions github-actions Bot added automation Automated workflows and processes area-skills Skills documentation and patterns labels Dec 24, 2025
@rjmurillo rjmurillo marked this pull request as ready for review December 24, 2025 20:55

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

@copilot this should be in the test/ directory

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Could you clarify the desired location? Currently the file is in .claude/skills/github/tests/ which matches all other test files and the SKILL.md documentation.

Should I:

  1. Move just this file to .claude/skills/github/test/ (singular)?
  2. Move it to .claude/skills/github/scripts/pr/test/ (alongside the script)?
  3. Rename the entire tests/ directory to test/ and update all references?

@rjmurillo rjmurillo left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Wrong location

…standards

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

Copilot AI commented Dec 24, 2025

Copy link
Copy Markdown
Contributor Author

Wrong location

Moved to /tests/ at repository root per Test Location Standards governance document. Updated path references to use repo root as base. All 89 tests passing.

Commit: b1f7282

@rjmurillo rjmurillo merged commit 0ff917f into feat/pr-review-merge-state-verification Dec 24, 2025
3 checks passed
@rjmurillo rjmurillo deleted the copilot/sub-pr-322 branch December 24, 2025 21:48
rjmurillo added a commit that referenced this pull request Dec 27, 2025
…effort (#322)

* feat: add implementation plan for PR review merge state verification

Session 85 lessons learned implementation plan:
- Add PR merge state verification to pr-review command (Skill-PR-Review-006)
- Create Test-PRMerged.ps1 script for GraphQL merge state checking
- Document Thread Resolution Protocol (Skills PR-Review-004, -005)
- Update Completion Criteria with merge verification

Prevents wasted effort on already-merged PRs where gh pr view returns stale data.

Related: Session 85, PR #315, PR #320

* feat: implement PR merge state verification (Issue #321)

Implements Session 85 lessons learned to prevent wasted effort on merged PRs.

Changes:
- Create Test-PRMerged.ps1 script to check PR merge state via GraphQL
  * Exit code 0 = not merged (safe to proceed)
  * Exit code 1 = merged (skip review work)
  * GraphQL API is source of truth (gh pr view may return stale data)

- Update pr-review command (.claude/commands/pr-review.md):
  * Add PR merge state verification to Step 1
  * Add Thread Resolution Protocol section (Skills PR-Review-004, -005)
  * Update Completion Criteria with PR merge check

- Thread Resolution Protocol documentation:
  * Single thread resolution (Skill-PR-Review-004)
  * Batch thread resolution using GraphQL mutation aliases (Skill-PR-Review-005)
  * Verification commands

Testing:
- ✅ Test-PRMerged.ps1 with merged PR #315 (exit code 1)
- ✅ Test-PRMerged.ps1 with open PR #320 (exit code 0)

Benefits:
- Prevents wasted effort when gh pr view returns stale state
- Reduces API calls via batch thread resolution (N calls → 1 call)
- Documents 2-step process: reply + resolve thread

Related: Session 85, PR #315, PR #320
Fixes #321

* docs: add Session 86 implementation log

Comprehensive documentation of PR review improvements implementation.

Deliverables:
- Issue #321 created
- Test-PRMerged.ps1 PowerShell script
- pr-review.md updates (merge verification + thread resolution protocol)
- Implementation plan document
- PR #322 created

Benefits:
- Prevents wasted effort on merged PRs
- Reduces API calls via batch thread resolution
- Documents critical 2-step process (reply + resolve thread)

Session metrics:
- 45 minutes implementation time
- 3 skills implemented (PR-Review-004, -005, -006)
- 2 tests executed (merged PR #315, open PR #320)
- 182 lines of code

Related: Session 85, Issue #321, PR #322

* docs: Session 87 - Update out-of-date PR branches

Updated 6 out of 16 PRs that were behind main:
✅ PR #313 (copilot/investigate-workflow-failure): 4 commits behind → up to date
✅ PR #310 (docs/adr-017): 5 commits behind → up to date
✅ PR #269 (copilot/add-pre-pr-validation-workflow): 17 commits behind → up to date
✅ PR #246 (docs/ai-misses): 10 commits behind → up to date
✅ PR #245 (refactor/issue-239-memory-decomposition-analysis): 22 commits behind → up to date
✅ PR #199 (feat/pr-comment-responder-memory-protocol): 10 commits behind → up to date

10 PRs require manual conflict resolution:
⚠️ PR #301, #300, #299, #285, #255, #247, #235, #202, #194, #143

Used gh pr update-branch to merge main into PR branches.
Success rate: 37.5% (6/16 PRs updated without conflicts).

Session log: .agents/sessions/2025-12-23-session-87-pr-branch-updates.md

* fix: address PR #322 review comments

Security fixes (gemini-code-assist[bot]):
- Add $ErrorActionPreference = 'Stop' to Test-PRMerged.ps1
- Use parameterized GraphQL query to prevent injection vulnerability
- Add try/catch for JSON parsing error handling

Code quality fixes (Copilot):
- Fix null reference on mergedBy (handle automated merges)
- Fix string interpolation bug (use ${PullRequest} syntax)
- Fix GraphQL mutation to use variables correctly

Documentation fixes (Copilot):
- Fix 'Skills' → 'Skill' capitalization consistency
- Fix GraphQL variable inconsistency in mutation example
- Add Owner/Repo fields to output object in planning doc
- Fix 'gemini' → 'Gemini' capitalization
- Clarify 182 lines = 96 (script) + 86 (docs)

Addresses all review comments except #2644893439 (Pester tests).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address PR #322 Copilot review comments

- Update planning document to match secure implementation:
  - Use parameterized GraphQL queries instead of string interpolation
  - Remove duplicate Owner/Repo property definitions
  - Fix unreachable code and consistent null handling
  - Add proper try/catch error handling

- Fix pr-review.md issues:
  - Replace `continue` with `return` (valid outside loop context)
  - Complete GraphQL mutation example with threadId parameter

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(naming): add numeric IDs to skill references per ADR-017

Update skill reference names to comply with ADR-017 format:
- pr-review-merge-state-verification → pr-review-006-merge-state-verification
- pr-review-thread-resolution-single → pr-review-004-thread-resolution-single
- pr-review-thread-resolution-batch → pr-review-005-thread-resolution-batch

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs(memory): extract session learnings to Serena memories

Recursive learning extraction from session - 5 rounds total:
- 6 new skills created
- 3 existing skills updated
- 6 rejected as duplicates

New skills:
- agent-workflow-post-implementation-critic-validation
- orchestration-recursive-learning-extraction
- pr-review-007-merge-state-verification
- pr-review-008-session-state-continuity
- pr-review-bot-mention-side-effects
- validation-domain-index-format

Updated skills:
- graphql-pr-operations (thread resolution anti-pattern)
- pattern-agent-generation-three-platforms (Claude variant maintenance)
- pr-template-requirement (REST API remediation)
- skill-index-selection-decision-tree (orphan prevention)

All skills validated with atomicity >75% and indexed in domain files.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test: add Pester tests for Test-PRMerged.ps1 with 100% coverage (#383)

* Initial plan

* test: add comprehensive Pester tests for Test-PRMerged.ps1 with 100% coverage

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* fix: move Test-PRMerged.Tests.ps1 to correct location per governance standards

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* fix: address PR review comments - skill ID consistency and documentation

- Fix unclosed code block in pr-review.md (cursor[bot] critical bug)
- Update all Skill-PR-Review-006 references to 007 for consistency
- Correct evidence PR number from #345 to #315
- Update planning document status from [PLANNING] to [IMPLEMENTED]
- Update implementation checklist to reflect completed tasks

Addresses review comments from cursor[bot] and Copilot on PR #322

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: update test assertions to use Skill-PR-Review-007

Tests were checking for Skill-PR-Review-006 but script references 007.

Addresses cursor[bot] comment on PR #322

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Signed-off-by: Richard Murillo <6811113+rjmurillo@users.noreply.github.com>
Co-authored-by: rjmurillo-bot <rjmurillo-bot@users.noreply.github.com>
Co-authored-by: Richard Murillo <6811113+rjmurillo@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-skills Skills documentation and patterns automation Automated workflows and processes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants