feat(report): /parity:report — stakeholder deck + one-pager kit - #320
Merged
Conversation
Packages the report-building pattern we used on the Electrolux Ecuador POC into the plugin, so the next migration does not rediscover it. New command `/parity:report` and skill `stakeholder-report`, carrying: - The design kit (`deck.css`) and the lateral-scroll shell (`deck.js`). The shell fixes a bug the naive version has: a wheel handler that only asks "can any ancestor still scroll?" pages the deck the instant an inner scroller bottoms out, and trackpad inertia from that same gesture is what fires it. Reaching the end of a table flipped the slide. Fixed with a second check (`inScroller`, edge or not) plus a ~350ms rearm latch, and by resetting the delta accumulator when the scroll is consumed internally. - Evidence rules, which are the reason the report holds up. Verify every tool claim before it ships: on the real run, parity reported a pagination 404 on a route it had invented. Never measure a local candidate: 66 of 187 findings came from GTM_CONTAINER_ID being unset. Triage findings into defect / content difference / false positive, and keep the last two out of the headline count. - Editorial rules: cut flourish, cut repetition including structural repetition, and do not put a number on something the number understates — a PR count measures packaging, not work. Never substitute a larger one. - Capture recipe with the scripts that worked (`capture.md`): worktree at a tag for the "before", Cypress for same-origin, headless Chrome for the cross-origin checkout hop where Cypress dies, and the compression pass that takes eight captures from 40MB to under 1MB. - A generator scaffold (`build.py`) with self-checks, because a slice edit in a generator silently drops a whole page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Packages the report-building pattern used on the Electrolux Ecuador POC into the
plugin, so the next migration does not rediscover it.
New command
/parity:report(--shape deck|onepager,--audience team|exec,--before/--after) and skillstakeholder-reportwith a runnable asset kit.Plugin layer only — no
packages/parity/change, so no CLI surface to document.The deck shell carries a real fix
assets/deck.jsis the lateral-scroll shell. The naive version — a wheel handlerthat only asks "can any ancestor still scroll in this direction?" — pages the
deck the instant an inner scroller bottoms out, and the trackpad inertia from
that same gesture is what fires it. Reaching the end of a table flipped the
slide, which reads as a design decision rather than a bug.
Fix: a second check (
inScroller— is the pointer inside a scrollable subtree atall, edge or not) plus a ~350ms rearm latch. Inertia keeps the latch warm; after
a real pause the next scroll pages. The delta accumulator is also reset whenever
the scroll is consumed internally, otherwise the deltas add up and the page turns
by itself seconds later.
The evidence rules are the point
These are what keep a client-facing report defensible, and each one comes from
something that actually went wrong:
?page=2and?page=3as HTTP404 — it had invented the route
/383; the real collection returns 200.GTM_CONTAINER_IDbeing unset: the placeholder container made every analyticsbeacon and third-party script look divergent, and dropped the
consolemodulefrom 100 to 78. Measure the deployed candidate.
two out of the headline count. A "4 critical" tile where 3 are content
differences collapses under one question.
result is the fastest way to lose the room.
call it a judgement, not a measurement.
Editorial rules
Cut flourish, cut repetition including structural repetition, and do not put a
number on something the number understates — a PR count measures how work was
packaged, not how much work happened. If the honest number reads small, describe
the thing without quantifying it, and never substitute a larger one.
Files
commands/report.mdskills/stakeholder-report/SKILL.mdassets/deck.css.flow,.pair,.callout)assets/deck.jsassets/deck-template.htmlassets/capture.mdassets/build.pyREADME.md,hooks/session-start.mdandSKILLS-AUDIT.mdupdated to list it.Verification
balanced tags, zero template classes without a CSS rule.
node --check assets/deck.jsandast.parse(assets/build.py)clean.<style>and
<script>, which tripped the tag-balance checker. Reworded, andstyle/scriptremoved frombuild.py's check — their content is arbitrarytext, not nestable containers.
No example generator from the client project is vendored: it carries customer
data, and
build.pyalready carries the pattern without the case.Summary by cubic
Adds the
/parity:reportcommand andstakeholder-reportskill so future migrations can build stakeholder decks and one-pagers without rediscovering the pattern. The deck shell also fixes a scroll bug where trackpad inertia flipped the slide right after an inner table bottomed out.New Features
/parity:reporttakes--shape deck|onepager,--audience team|exec, and--before/--aftergit refs.Bug Fixes
inScrollercheck and a ~350 ms rearm latch.Written for commit 08a4636. Summary will update on new commits.