Skip to content

feat(prototype): add per-screen states, test ids and picks-as-criteria to mockups - #10893

Merged
melodic-automation-lanes[bot] merged 2 commits into
mainfrom
work-resolve-issue/issue-8775-40831848734-1
Oct 29, 2026
Merged

melodic-automation-lanes[bot] merged 2 commits into
mainfrom
work-resolve-issue/issue-8775-40831848734-1

Conversation

@melodic-automation-lanes

Copy link
Copy Markdown
Contributor

Closes #8775

Summary

Opened by the work-resolve-issue lane. The run's own summary:

/prototype:explore-directions now plans each screen with its variants and enumerated states (2 or 3 variants per screen on a multi-screen run, 3 by default and 5 at most for one screen), builds every state from the one synthetic data set, and proposes data-testid attributes that the copy-out terminator lists from the markup. The bundled switcher gains a state axis (a state button labeled with the current state plus the up and down arrow keys), kept in memory so it still works from file: // under the CSP, and step 5 now records the picks as UI acceptance criteria per screen next to the losing-directions record.

Not verified

  • tidy pass 4 (ai-slop) ran its rubric read only: the lane runs no script outside the named wrappers, so the ai-slop detect.sh deterministic pass and its findings file were not produced
  • The switcher JavaScript was not executed in a browser: the lane allows no interpreter or browser; the logic was reviewed by reading only
  • check-affected skipped validate-plugins (identity-prerequisites drift, native-overlap registry, claude plugin test) and changed-skills because they run code from the checked tree; left to the PR's CI
  • CI-only checks named by check-affected (evals-schema, editorconfig, lychee-offline, purged-em-dashes, line-citations and the rest) are left to the PR's CI
  • The eval cases were not run against a model; only check-evals-quality ran
  • Coordination with #6589 (prototype skill rewrite) was not checked: the lane cannot read other issues
  • Visual test baseline: not implemented; the issue leaves a committed-mockup baseline to the review-mode child and the current rules already keep the mockup uncommitted
  • Review nit not applied: an aria-live announcement when the state changes by arrow key (the state button's label and accessible name do update)
  • The changelog fragment was written by hand because new-changelog-fragment refuses a detached HEAD; check-changelog-fragments validates it

Fix

  • plugins/prototype/skills/explore-directions/SKILL.md: purpose covers several screens and states; substrate adds data-state blocks, one page per screen (route with slashes as hyphens), the switcher's state axis, test ids lifted from the markup by the copy-out terminator, states derived from the one d
  • plugins/prototype/skills/explore-directions/assets/variant-switcher.html: second axis for data-state elements inside each variant: a state button (hidden when a variant has no states) labeled with the current state, up/down arrow keys that step states only when a variant has two or more, the chosen
  • plugins/prototype/skills/explore-directions/evals/evals.json: new eval 15, multi-screen-run-with-states (two screens, enumerated states, one data set, test ids, per-screen reply template)
  • .changes/prototype/feat-8775-mockup-states-test-ids-5e1b7c42.md: new minor changelog fragment for prototype

Verification

The runner ran each check from the base copy against ac64e85:

  • scripts/check-changelog-fragments.sh --check: passed

The run reports:

  • /home/runner/work/claude-code-plugins/claude-code-plugins/.lane/checks/bin/check-changelog-fragments: all 49 fragments valid (run before and after tidy and after the review fixes)
  • /home/runner/work/claude-code-plugins/claude-code-plugins/.lane/checks/bin/check-affected: 11 passed, 7 skipped over 4 changed files (run three times, last after the review fixes)
  • check-evals-quality on plugins/prototype/skills/explore-directions/evals/evals.json: PASS, 0 warnings (after the eval rewrite)
  • fresh-context review subagent over the whole diff: 16 items (no bug in the switcher's main paths); fixed the non-ASCII middle dot in the script (now \u00b7), render-before-switcher requirement, state pick lost on a variant without it, state button accessible name now starts with its visible text, te
  • code-tidying:tidy-diff over the 21 changed hunks: simplify pass found nothing to change; comment pass deleted nothing (one function-summary comment kept as a class-B proposal); write-for-agents dropped one intensifier; ai-slop rubric read of the SKILL.md lines and the fragment found no tells
  • The lane run: https://github.com/melodic-software/claude-code-plugins/actions/runs/40831848734

Left out: the items under Not verified.

Related

#8775

Lane-Activity: work-resolve-issue/resolve-issue
@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

claude-security-review reviewed 1dfb110c75d620b5fcff32bbc92eb371e89f4a12: 0 finding(s), 0 as inline comments.

No security issues found in the incremental change, which covers SKILL.md and variant-switcher.html since ac64e85.

The change renames the state attribute from data-state to data-screen-state and its label attribute to data-screen-state-label. The CSS selector, the querySelectorAll call and the dataset reads (screenState, screenStateLabel) were all updated to match. The attribute values still reach the page only through textContent and setAttribute on the state button. No innerHTML or other HTML-injection sink was added, and no network, storage or code-loading surface is touched. None of the changed files is on the trusted-path list, and the diff has no manifest, workflow or trust-control change.

The PR context contained no embedded instructions.

critical-findings: 0

@github-actions github-actions 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.

claude-review: 1 inline finding(s) on ac64e853e52ddc27fd43206d92e3ada3657f34f6; the summary is in this lane's pull request comment.

claude-lane: claude-review

@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

claude-review reviewed 1dfb110c75d620b5fcff32bbc92eb371e89f4a12: 0 finding(s), 0 as inline comments.

Incremental review of the data-state → data-screen-state rename (from ac64e853). I found nothing to flag.

  • Consistent rename: SKILL.md, the switcher's header comment, the CSS [hidden] rule, the states() query, and the dataset.screenState / screenStateLabel reads in applyState and stepState all use the new attribute. data-screen-state-label maps to dataset.screenStateLabel, as it should.
  • No stale references: a repo-wide grep of plugins/prototype and the PR diff finds data-state only in the two sentences that say not to use it. The eval and the changelog fragment don't use the old name.
  • What I did not do: I did not run the switcher in a browser, and the PR itself says it was not executed. This review is by reading only.
  • Spend: this review only uses prepaid or subscription usage, so it is not a hold.

Lane-Activity: pr-unblock/address-feedback
Lane-Thread: PRRT_kwDOTCGFQM6xcz-W
@melodic-automation-lanes

Copy link
Copy Markdown
Contributor Author

pr-unblock / address-feedback finished round 1 of max 4 on 1dfb110.

@melodic-automation-lanes

Copy link
Copy Markdown
Contributor Author

Unattended merge: native auto-merge leaves this pull request unarmed at head 1dfb110c75d620b5fcff32bbc92eb371e89f4a12. The lanes clear this reason on their own; the next scheduled run judges it again.

pr-merge's gate refuses its verifier verdict (verify:missing)

@melodic-automation-lanes

Copy link
Copy Markdown
Contributor Author

The unattended merge path armed native auto-merge at head 1dfb110c75d620b5fcff32bbc92eb371e89f4a12.

@melodic-automation-lanes
melodic-automation-lanes Bot added this pull request to the merge queue Oct 29, 2026
Merged via the queue into main with commit c05edbf Oct 29, 2026
40 checks passed
@melodic-automation-lanes
melodic-automation-lanes Bot deleted the work-resolve-issue/issue-8775-40831848734-1 branch October 29, 2026 07:40
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.

feat(prototype): add per-screen states, test ids and picks-as-criteria to mockups

0 participants