Skip to content

ci(fullsend): bump verify-pr to supported fullsend commit - #360

Merged
mrizzi merged 2 commits into
mainfrom
TC-6936
Oct 27, 2026
Merged

mrizzi merged 2 commits into
mainfrom
TC-6936

Conversation

@mrizzi

@mrizzi mrizzi commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Moves the GitHub verify-pr dispatch off CLI v0.43.0 and reusable-dispatch @d5f36921 to the supported fullsend commit 9f188578 (uses:@ and fullsend_version pinned together; the commit is untagged, so the vendor action builds the CLI from source).
  • Drops the install_mode input, which is ignored at 9f188578 (installations are always per-repo). Inputs, secrets and the nested-job permission union are otherwise unchanged (reviewed by diffing reusable-dispatch.yml between the two commits).
  • Re-pins both harness bases (verify-pr, triage-security) to main merge commit 0bcdff92 and regenerates .fullsend/lock.yaml with a CLI built at 9f188578. A second lock run leaves it unchanged.
  • fullsend.md: new GitHub pins, guard rule marked satisfied for 9f188578, Prerequisites CLI note, and fixes to the pin-and-bump process: diffing the vendor workflow, locking with a CLI at the new commit, and a pre-merge live check via a temporary pull_request copy of the workflow.

⚠️ Temporary commit — drop before merge

6183cf83 adds .github/workflows/tc6936-verify-pr-proof.yml, a copy of the workflow triggered on pull_request. It exists so the new pins run verify-pr against this PR before merge. The pull_request_target copy on main keeps running the old pins and will post its own report, which is expected. The commit gets force-pushed away once the live evidence is recorded.

Merge with a merge commit (never squash or rebase).

Implements TC-6936

🤖 Generated with Claude Code

Summary by Sourcery

Align Fullsend CI and locked harness dependencies with the supported commit, and update the operational guidance for safely maintaining and validating those pins.

Enhancements:

  • Pin the GitHub verify-pr reusable workflow and Fullsend CLI to the supported commit, removing the obsolete installation-mode input.
  • Re-pin verify-pr and triage-security harnesses to the supported sdlc-plugins merge commit and regenerate the Fullsend lockfile.
  • Update Fullsend guidance with supported-version prerequisites, pinning procedures, validation steps, and guard-rule status.

CI:

  • Align the reusable workflow and CLI pins so verify-pr runs against the supported Fullsend implementation.

Documentation:

  • Document source builds for the untagged supported commit and live pre-merge verification of new workflow pins.

Move the GitHub verify-pr dispatch off CLI v0.43.0 and reusable-dispatch
d5f36921 to the supported fullsend commit 9f188578 (both pins together, as
the runner-owned credential model requires). Drop the now-ignored
install_mode input; the nested-job permission union is unchanged.

Re-pin both harness bases to main merge commit 0bcdff9 and regenerate
lock.yaml with a CLI built at 9f188578 (stable on re-run).

fullsend.md: record the new GitHub pins, mark the guard rule satisfied,
update the Prerequisites CLI note, and fix the pin-and-bump process
(vendor input diff, lock with a CLI at the new commit, pre-merge live
check via a temporary pull_request workflow copy).

Implements TC-6936

Assisted-by: Claude Code
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sourcery-ai

sourcery-ai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Reviewer's Guide

This PR migrates GitHub verify-pr from the old CLI and reusable-dispatch pins to the supported fullsend commit, re-resolves both harnesses and their lockfile with that CLI, and adds documentation plus a temporary same-repository pull_request proof workflow to validate the new pins before merge.

Sequence diagram for pre-merge verify-pr pin validation

sequenceDiagram
    actor Contributor
    participant GitHub
    participant Proof as Temporary pull_request workflow
    participant Fullsend as Fullsend dispatch 9f188578
    participant CLI as Fullsend CLI 9f188578
    participant Harness as Locked verify-pr harness

    Contributor->>GitHub: Push bump PR
    GitHub->>Proof: Trigger pull_request
    Proof->>Proof: Wait for checks and commit statuses
    Proof->>Fullsend: Dispatch with matrix and pinned inputs
    Fullsend->>CLI: Build and run pinned CLI
    CLI->>Harness: Execute verify-pr
    Harness-->>GitHub: Post verification report
    Harness-->>Contributor: Report result
Loading

Flow diagram for synchronized Fullsend pin and harness lock update

flowchart TD
    Start[Update supported Fullsend commit]
    Pins[Set uses:@ and fullsend_version to 9f188578]
    Vendor[Diff reusable-dispatch inputs secrets and permissions]
    Bases[Re-pin verify-pr and triage-security bases to 0bcdff92]
    Lock[Run fullsend lock with CLI 9f188578]
    Stable{Second lock unchanged?}
    Proof[Run temporary pull_request proof]
    Merge[Record evidence and merge with merge commit]

    Start --> Pins --> Vendor --> Bases --> Lock --> Stable
    Stable -->|Yes| Proof
    Stable -->|No| Lock
    Proof --> Merge
Loading

File-Level Changes

Change Details Files
Align the GitHub verify-pr reusable workflow and CLI with the supported fullsend commit.
  • Pin reusable-dispatch and fullsend_version to the same untagged commit and document source-build behavior.
  • Remove the obsolete install_mode input while preserving remaining inputs, secrets, and permissions.
  • Reproduce the new pins in a temporary pull_request workflow for pre-merge live validation; this workflow must be removed before merge.
.github/workflows/fullsend-verify-pr.yml
.github/workflows/tc6936-verify-pr-proof.yml
fullsend.md
Re-pin harness sources and regenerate the fullsend dependency lock.
  • Move verify-pr and triage-security bases to sdlc-plugins merge commit 0bcdff9 with updated content digests.
  • Regenerate lock metadata and dependency hashes using a CLI built from the supported fullsend commit.
  • Capture dependency additions/removals and updated fetched timestamps from the new harness resolution.
.fullsend/harness/verify-pr.yaml
.fullsend/harness/triage-security.yaml
.fullsend/lock.yaml
Update operational documentation for supported fullsend pinning and validation.
  • Document the supported untagged commit as the CI-matching local CLI and mark the pin guard as satisfied.
  • Describe vendor-workflow diffing, synchronized pins, new-commit locking, idempotence checks, and temporary pull_request live proof.
  • Record the resolved runner-owned credential model and install_mode compatibility behavior.
fullsend.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path=".github/workflows/tc6936-verify-pr-proof.yml" line_range="17" />
<code_context>
+    branches: [main]
+
+concurrency:
+  group: tc6936-verify-pr-proof-${{ github.event.pull_request.number }}
+  cancel-in-progress: true
+
</code_context>
<issue_to_address>
**Parallel reviews duplicate Jira tasks**

When both workflows dispatch for the same PR and their reviews independently propose the same Jira follow-up task, both dispatches can read the same existing sub-task list and emit `create_subtask`; `execute-actions.py` then creates each action without deduplicating against the other run, so Jira receives duplicate follow-up issues.

Prevent both workflows from performing Jira entity-creation actions for the same PR at once, or make those actions idempotent in Jira.
</issue_to_address>

Sourcery assessment

Needs a human reviewer. 1 finding to address first, and the new pins and temporary pull-request workflow run the verifier through a dispatch that has GitHub write permissions and Jira credentials; if the updated harness or dispatch behaves incorrectly, it could post reports or make Jira changes. Reverting stops future runs but does not undo comments or Jira updates already made.

Blocking findings: .github/workflows/tc6936-verify-pr-proof.yml:17


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

Comment thread .github/workflows/tc6936-verify-pr-proof.yml Outdated
@fullsend-ai-review

fullsend-ai-review Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

🤖 Finished Verify Pr · ✅ Success · Started 6:05 PM UTC · Completed 6:16 PM UTC

Commit: 6183cf8 · View workflow run →

Runtime: claude · Model: claude-opus-4-8 · Effort: high · Cost: $6.43

@fullsend-ai-review

Copy link
Copy Markdown

[sdlc-workflow/verify-pr] Re: @sourcery-ai[bot] review — Classified as code change request — the review's single finding (parallel reviews duplicate Jira tasks) is tracked by sub-task TC-7238. The accompanying "needs a human reviewer" assessment is advisory; this skill does not auto-merge — merge remains a human decision.

@fullsend-ai-review

Copy link
Copy Markdown

Verification Report for TC-6936 (commit 6183cf8)

Check Result Details
Review Feedback WARN 1 code change request (duplicate Jira tasks from parallel verify-pr dispatches); sub-task created
Root-Cause Investigation DONE 1 root-cause task created (implement-task gap: cross-run entity-creation idempotency)
Scope Containment WARN All 5 task files present; 1 out-of-scope file (tc6936-verify-pr-proof.yml) — endorsed temporary proof workflow, to be dropped before merge
Diff Size PASS 494 lines across 6 files; proportionate to a multi-file CI re-pin + endorsed proof workflow
Commit Traceability PASS Both commits reference TC-6936
Sensitive Patterns PASS No secrets in added lines; all secret references are ${{ secrets.* }} names or lock-file hashes
CI Status PASS 7/7 head-SHA checks completed with success; no pending/failed statuses
Acceptance Criteria PASS 5 of 5 criteria met (live-dispatch evidence to be confirmed by a human from the PR/Jira)
Test Quality N/A No test files changed; Eval Quality: N/A
Test Change Classification N/A No test files changed
Verification Commands PASS grep finds no stale pins (d5f36921/v0.43.0); fullsend lock reports lock.yaml current

Overall: WARN

One reviewer code-change request — duplicate Jira follow-ups from parallel/retried verify-pr dispatches (execute-actions.py entity creation is not idempotent) — was classified and tracked as a sub-task, and a root-cause task was filed against the implement-task phase to prevent recurrence. Scope Containment is WARN only because of the endorsed temporary proof workflow tc6936-verify-pr-proof.yml, which is marked "DROP THIS COMMIT BEFORE MERGING". Security, CI, commit traceability, and all 5 acceptance criteria pass; the live-dispatch evidence (run URL + report link) must be confirmed by a human from the PR/Jira per the task's test requirement. No test files changed. This skill does not auto-merge — merge remains a human decision.


This comment was AI-generated by sdlc-workflow/verify-pr v0.13.10.

…ncurrency

The main pull_request_target copy does not post a second report: its
harness-run job shares reusable-dispatch's concurrency group with the
temporary copy and is cancelled.

Implements TC-6936

Assisted-by: Claude Code
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@fullsend-ai-review

fullsend-ai-review Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

🤖 Finished Verify Pr · ⏭️ Skipped (TC-6936 is in status 'In Progress', not 'Review') · Started 6:21 PM UTC · Completed 6:21 PM UTC

Commit: 43d3cec · View workflow run →

Effort: high

@mrizzi
mrizzi merged commit 8dc99e3 into main Oct 27, 2026
18 checks passed
@mrizzi
mrizzi deleted the TC-6936 branch October 27, 2026 18:26
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.

1 participant