Skip to content

demo_qa: live situation kit and plugin (accepted on a live run) - #335

Open
devin-ai-integration[bot] wants to merge 8 commits into
devin/fs-testing-1791848695-manual-to-automatedfrom
devin/1792723253-demo-qa-live
Open

devin-ai-integration[bot] wants to merge 8 commits into
devin/fs-testing-1791848695-manual-to-automatedfrom
devin/1792723253-demo-qa-live

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Presenter evidence (default links, this PR is never closed by a reseed)

Presenter sheet: demo/PRESENTER.md has the goal, links, beats and which PR to use for each beat.

BEFORE: demo/qa-live-before@2594624 on MySQL 8. demo_sender logs in, the dashboard loads and the Transfer Money form opens. No e2e/ and no CI test workflow.

BEFORE: BankApp login, dashboard, transfer form

AFTER: the generated suite from #328 (devin/fs-testing-1791848695-manual-to-automated) runs headed against the same app. 54 passed and 0 skipped (35.7 s). qa/coverage-matrix.md lists 60 of 60 rows, and MT-047 is "Needs QA clarification" with no invented expected result.

AFTER: 54 Playwright tests green, coverage 60/60, MT-047 held

Pre-built PRs: #328 (suite, CI green) and #329 (planted regression, CI red on exactly MT-040 with 53 passing).

Summary

Live-situation kit for demo_qa. demo/seed-situation.sh force-resets only demo/qa-live-before to BEFORE: upstream 305826d plus the 60-row qa/manual-test-plan.csv, the setup scripts and AGENTS.md. It verifies there is no e2e/, no .github/workflows/e2e.yml and no coverage matrix, then prints READY. The setup session starts the live Devin session with prompt 1 from demo/PROMPTS.md.

Live acceptance (fresh session, prompt 1 pasted verbatim): #332 against demo/qa-live-before in 16 min 32 s. 54 of 60 rows automated as Playwright, green in CI on MySQL 8.0.46. Coverage matrix accounts for all 60 rows. 6 rows held manual with reasons (MT-021, 048, 055, 059, 060). Hard case MT-047 held: Devin did not invent an expected result and reported that a -50 transfer moves money the wrong way.

Changes on top of #331 (closed):

  • plugins/demo_qa/: root plugin.json and skills/demo_qa/SKILL.md. Runs the seed and prints the seed URL, prompts, expected outcome and fallback.
  • PROMPTS.md / TALK-TRACK-LIVE.md: measured timing (about 17 min, not 35 to 50). Prompt 2 (planted regression) now branches off and targets Devin's PR branch. The BEFORE branch has no CI workflow, so a PR against it could not go red on MT-040. The prompt 2 fallback is bug: tighten transfer balance check (planted regression, do not merge) #329.
  • PRESENTER.md: one-page presenter sheet with goal, links, per-beat PR and both prompts.

Note: running the seed again closes open PRs against demo/qa-live-before (including the live run's PR) by design. This PR targets a different base and stays open.

Devin-Org: engineering

Link to Devin session: https://devin-gtm.devinenterprise.com/sessions/c698a982bc30414d928e1c22609cbefb
Open in Devin Desktop: https://devin-gtm.devinenterprise.com/desktop/session/c698a982bc30414d928e1c22609cbefb?variant=devin
Requested by: @GarretAnd

Link to Devin session: https://devin-gtm.devinenterprise.com/sessions/169d53b29adb4dee81a4de0f3daa05ca
Open in Devin Desktop: https://devin-gtm.devinenterprise.com/desktop/session/169d53b29adb4dee81a4de0f3daa05ca?variant=devin
Requested by: @achalc


Devin Review

Status Commit
⚪ Not started —

Run Devin Review

Enable auto-review to review your pull requests automatically.

Devin Review (Staging)


Devin Review

devin-ai-integration Bot and others added 4 commits October 23, 2026 02:42
…lk track)

Co-Authored-By: Garret Andreine <garret.andreine@cognition.ai>
Co-Authored-By: Garret Andreine <garret.andreine@cognition.ai>
…rgets Devin's PR branch

Co-Authored-By: Garret Andreine <garret.andreine@cognition.ai>
Co-Authored-By: Garret Andreine <garret.andreine@cognition.ai>
@devin-ai-integration

Copy link
Copy Markdown
Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Devin Review found 3 potential issues.

Devin Review

Comment thread demo/seed-situation.sh
gh pr close "$num" -R "$REPO" --comment "Closed by demo/seed-situation.sh: demo_qa seed branch was reset." >/dev/null
printf ' closed PR #%s (%s)\n' "$num" "$head"
case "$head" in devin/*) git -C "$KIT_ROOT" push -q origin --delete "$head" 2>/dev/null && printf ' deleted branch %s\n' "$head" || true;; esac
done < <(gh pr list -R "$REPO" --base "$SEED_BRANCH" --state open --json number,headRefName --jq '.[] | "\(.number) \(.headRefName)"')

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

🟡 Failed PR lookup leaves live PRs open

If gh pr list fails, the loop sees no PRs and git push still resets their base. Old live PRs remain open against the rewritten seed, and the script prints READY.

Learn more

The PR lookup runs inside process substitution, whose exit status does not become the status of the while loop. Authentication can pass before a later GitHub API request fails. In that case the loop reads no entries, and the script continues to rewrite the seed branch without closing its open PRs.

Example: GitHub authentication succeeds, but the gh pr list request returns an API error while PR #332 is open. The script pushes a new seed commit and prints READY; PR #332 remains open against that reset base.

Recommended fix: Capture gh pr list into a variable or temporary file and check its exit status before entering the loop or modifying remote state. Abort the seed on a listing failure.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread demo/seed-situation.sh
done

step "Push $SEED_BRANCH"
git push -q --force origin "HEAD:refs/heads/$SEED_BRANCH"

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

🟡 Repository override resets the wrong branch

When DEMO_QA_REPO differs from origin, PR cleanup targets the override but the force-push targets origin. The requested repository remains unseeded while another repository's branch is reset.

Learn more

The repository override controls gh pr list and gh pr close, but Git operations still use the checkout's origin. Those two destinations can differ when a presenter uses a fork or changes DEMO_QA_REPO. The script then reports the override's URL with the SHA from origin, so its READY banner does not describe the branch it created.

Example: With origin pointing at a fork and DEMO_QA_REPO=COG-GTM/Springboot-BankApp, the script closes PRs in COG-GTM but pushes demo/qa-live-before to the fork. The COG-GTM seed branch does not change.

Recommended fix: Resolve and validate a single remote corresponding to DEMO_QA_REPO before any PR cleanup. Use that same destination for fetch, push, and SHA verification, or reject mismatched configurations before changing remote state.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread demo/seed-situation.sh
step() { CURRENT_STEP="$1"; printf '==> %s\n' "$1"; }
fail() { CURRENT_STEP="$1"; false; }

case "$SEED_BRANCH" in main|master|devin/fs-testing-*) fail "refusing to reset protected branch $SEED_BRANCH";; esac

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

🟥 Branch override can overwrite active branches

With DEMO_QA_SEED_BRANCH set to DevOps, the script accepts the branch and force-pushes the demo seed. That replaces the active branch's tip with the demo state.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

devin-ai-integration Bot and others added 2 commits October 23, 2026 03:28
…top)

Co-Authored-By: Garret Andreine <garret.andreine@cognition.ai>
…fallback at #329

Co-Authored-By: Garret Andreine <garret.andreine@cognition.ai>
@devin-ai-integration

Copy link
Copy Markdown
Author

demo_qa BEFORE state: app proof (reseeded 2026-10-23, demo/qa-live-before@bb49c57)

Seed and demo/setup-demo.sh both printed READY on MySQL 8. demo_sender logs in, the dashboard loads ($0.00, account 1) and the Transfer Money form opens. There is no e2e/ folder and no CI test workflow yet.

BankApp BEFORE state: login, dashboard, transfer form

The presenter sheet with links, beats and which PR to use for each beat is in demo/PRESENTER.md. Pre-built PRs: #328 (suite, green) and #329 (planted regression, red on MT-040 only, 53 pass).

Written by Devin

devin-ai-integration Bot and others added 2 commits October 23, 2026 13:48
…TER videos on #335

Co-Authored-By: Garret Andreine <garret.andreine@cognition.ai>
Co-Authored-By: Garret Andreine <garret.andreine@cognition.ai>

This branch has not been deployed

No deployments
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