Skip to content

harden code review skill for async state and default-resolution bugs#8740

Merged
morgmart merged 3 commits into
mainfrom
morganm/code-review-skill-hardening
Apr 22, 2026
Merged

harden code review skill for async state and default-resolution bugs#8740
morgmart merged 3 commits into
mainfrom
morganm/code-review-skill-hardening

Conversation

@morgmart
Copy link
Copy Markdown
Collaborator

Overview

Category: improvement
User Impact: The code review skill now catches async state, default-resolution, and UI/backend drift bugs that would otherwise slip past review.

Problem: Recent bugs (provider/model selections drifting from the backend, sticky defaults overriding explicit user choices, stale dependent state lingering after a parent change) were not being flagged by the code review skill because its checklist had no language for async state, persistence, or fallback-authority issues. The skill also referenced just ci, which is not the correct gate command in this repo.

Solution: Added a new "Async State, Defaults & Persistence" checklist section, an explicit end-to-end tracing step for stateful UI/async flow changes, and a third self-check pass focused on UI/persisted-state/backend disagreement after failures or handoffs. Replaced the outdated just ci references with just check-everything and softened the language so the skill defers to whatever the repo's actual pre-push/CI gate is.

File changes

.agents/skills/code-review/SKILL.md
Added an "Async State, Defaults & Persistence" checklist covering optimistic updates without rollback, requested-vs-fallback authority, dependent state invalidation, persisted preference validation, fallback compatibility across providers, best-effort lookup degradation, and draft/Home/handoff session paths. Added an end-to-end tracing step (selection -> local state -> persistence -> backend prepare/set -> failure path) for stateful UI changes, plus a third self-check pass that explicitly asks whether UI, persisted state, and backend can ever disagree after a failure, fallback, or handoff. Updated the CI gate command from just ci to just check-everything and softened wording so the skill defers to whatever pre-push/CI gate the repo actually uses.

Reproduction Steps

  1. Open .agents/skills/code-review/SKILL.md and confirm the new "Async State, Defaults & Persistence" section appears in the Review Checklist.
  2. Confirm Step 1 in "Review Process" lists the end-to-end tracing requirement for stateful UI / async flow changes.
  3. Confirm Step 3b ("Self-Check") now describes three passes, with Pass 3 focused on UI/persisted-state/backend disagreement.
  4. Confirm just ci no longer appears anywhere in the file and the gate command is now just check-everything, with the surrounding language deferring to the repo's stronger pre-push/CI gate.
  5. Trigger the code review skill on a branch that touches async provider/model/session state and confirm the new checklist items are applied during review.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1c59c410de

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .agents/skills/code-review/SKILL.md Outdated
`just check-everything` runs `cargo fmt --all` in write mode, which can
introduce unstaged formatter diffs into the reviewer's working tree
before they collect the file list. The skill is meant to review the
author's changes, not formatter output, so the baseline must be
check-only.
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 82bdb69f32

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .agents/skills/code-review/SKILL.md Outdated
Without the subshell, `cd ui/desktop && pnpm run lint:check` leaves the
working directory in `ui/desktop`, so the next command in the block
(`./scripts/check-openapi-schema.sh`) fails to resolve from the repo
root when a reviewer runs the block line by line.
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 045c59ef56

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .agents/skills/code-review/SKILL.md
@morgmart morgmart added this pull request to the merge queue Apr 22, 2026
Merged via the queue into main with commit 15cfd12 Apr 22, 2026
20 checks passed
@morgmart morgmart deleted the morganm/code-review-skill-hardening branch April 22, 2026 16:19
lifeizhou-ap added a commit that referenced this pull request Apr 23, 2026
* main:
  fix: preprompt would show after loading session (#8744)
  commands to acp+ migration: extensions management (#8733)
  feat: desktop notification when goose finishes a task (#8647)
  harden code review skill for async state and default-resolution bugs (#8740)
  Feature/at agent mention (#8571)
  fix: removed hardcoded dependency of goose-acp-macro (#8753)
  perf: split agent setup into staged phases to reduce startup blocking (#8746)
  Add /skills command (#8600)
  Replace deprecated Claude ACP package links (#8625)
lifeizhou-ap added a commit that referenced this pull request Apr 23, 2026
* main: (34 commits)
  fix(goose-server): cache TLS cert to disk to avoid slow startup on first launch (#8174)
  feat: add Exa AI-powered search tool (#8487)
  fix: preprompt would show after loading session (#8744)
  commands to acp+ migration: extensions management (#8733)
  feat: desktop notification when goose finishes a task (#8647)
  harden code review skill for async state and default-resolution bugs (#8740)
  Feature/at agent mention (#8571)
  fix: removed hardcoded dependency of goose-acp-macro (#8753)
  perf: split agent setup into staged phases to reduce startup blocking (#8746)
  Add /skills command (#8600)
  Replace deprecated Claude ACP package links (#8625)
  removed the specific code owner for documentation change (#8749)
  fix(providers): handle missing delta field in streaming chunks (#8700)
  refactor(providers): extract http_status module and rename handle_status_openai_compat (#8620)
  fix(providers/openai): accept streaming chunks with both reasoning fields (#8715)
  feat: associate threads with projects (#8745)
  upgrade goose sdk and tui to be compatible with the latest agentclientprotocol/sdk package (#8667)
  feat: extend goose2 context window ux with auto-compaction (#8721)
  improve goose2 agent management flows (#8737)
  alexhancock/tui-improvements (#8736)
  ...
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.

2 participants