@ziamana/bruine 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +315 -0
  3. package/THIRD_PARTY_NOTICES.md +24 -0
  4. package/cordis.patch.yml +166 -0
  5. package/dist/bin.js +5358 -0
  6. package/dist/compat.js +40 -0
  7. package/dist/plugins/approval.js +147 -0
  8. package/dist/plugins/headless.js +236 -0
  9. package/dist/plugins/herdr.js +470 -0
  10. package/dist/plugins/mcp.js +275 -0
  11. package/dist/plugins/modes.js +850 -0
  12. package/dist/plugins/render.js +3723 -0
  13. package/dist/plugins/repl.js +9589 -0
  14. package/dist/plugins/silence.js +234 -0
  15. package/dist/plugins/startup.js +42 -0
  16. package/dist/plugins/web-search.js +138 -0
  17. package/package.json +93 -0
  18. package/skills/code-review/SKILL.md +30 -0
  19. package/skills/git-workflow/SKILL.md +31 -0
  20. package/skills/impeccable/LICENSE +191 -0
  21. package/skills/impeccable/NOTICE.md +11 -0
  22. package/skills/impeccable/SKILL.md +87 -0
  23. package/skills/impeccable/reference/adapt.md +318 -0
  24. package/skills/impeccable/reference/adapt.native.md +58 -0
  25. package/skills/impeccable/reference/android.md +46 -0
  26. package/skills/impeccable/reference/animate.md +89 -0
  27. package/skills/impeccable/reference/audit.md +137 -0
  28. package/skills/impeccable/reference/audit.native.md +139 -0
  29. package/skills/impeccable/reference/bolder.md +33 -0
  30. package/skills/impeccable/reference/clarify.md +94 -0
  31. package/skills/impeccable/reference/colorize.md +86 -0
  32. package/skills/impeccable/reference/component-review.md +63 -0
  33. package/skills/impeccable/reference/craft-floor.md +44 -0
  34. package/skills/impeccable/reference/craft.md +5 -0
  35. package/skills/impeccable/reference/critique.md +806 -0
  36. package/skills/impeccable/reference/degraded/asset-producer.md +42 -0
  37. package/skills/impeccable/reference/degraded/documenter.md +24 -0
  38. package/skills/impeccable/reference/degraded/finish-reviewer.md +38 -0
  39. package/skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
  40. package/skills/impeccable/reference/delight.md +70 -0
  41. package/skills/impeccable/reference/distill.md +111 -0
  42. package/skills/impeccable/reference/doctor.md +54 -0
  43. package/skills/impeccable/reference/document.md +416 -0
  44. package/skills/impeccable/reference/extract.md +69 -0
  45. package/skills/impeccable/reference/generate.md +101 -0
  46. package/skills/impeccable/reference/harden.md +345 -0
  47. package/skills/impeccable/reference/hooks.md +113 -0
  48. package/skills/impeccable/reference/init.md +131 -0
  49. package/skills/impeccable/reference/ios.md +51 -0
  50. package/skills/impeccable/reference/layout.md +84 -0
  51. package/skills/impeccable/reference/live-setup.md +104 -0
  52. package/skills/impeccable/reference/live.md +325 -0
  53. package/skills/impeccable/reference/mode-operate.md +21 -0
  54. package/skills/impeccable/reference/mode-persuade.md +19 -0
  55. package/skills/impeccable/reference/mode-read.md +21 -0
  56. package/skills/impeccable/reference/new-work.md +154 -0
  57. package/skills/impeccable/reference/onboard.md +234 -0
  58. package/skills/impeccable/reference/operate.md +61 -0
  59. package/skills/impeccable/reference/optimize.md +258 -0
  60. package/skills/impeccable/reference/overdrive.md +127 -0
  61. package/skills/impeccable/reference/polish.md +105 -0
  62. package/skills/impeccable/reference/quieter.md +99 -0
  63. package/skills/impeccable/reference/region-map.md +26 -0
  64. package/skills/impeccable/reference/routing.md +24 -0
  65. package/skills/impeccable/reference/shape.md +59 -0
  66. package/skills/impeccable/reference/typeset.md +80 -0
  67. package/skills/impeccable/reference/visualize.md +46 -0
  68. package/skills/impeccable/scripts/VERSION +1 -0
  69. package/skills/impeccable/scripts/command-metadata.json +98 -0
  70. package/skills/impeccable/scripts/data/font-index-failures.json +121 -0
  71. package/skills/impeccable/scripts/data/font-index.json +1 -0
  72. package/skills/impeccable/scripts/impeccable +206 -0
  73. package/skills/impeccable/scripts/impeccable.cmd +214 -0
  74. package/skills/impeccable/scripts/live-browser-dom.js +167 -0
  75. package/skills/impeccable/scripts/live-browser-ignores.js +242 -0
  76. package/skills/impeccable/scripts/live-browser-session.js +148 -0
  77. package/skills/impeccable/scripts/live-browser.js +13510 -0
  78. package/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  79. package/skills/make-interfaces-feel-better/LICENSE +21 -0
  80. package/skills/make-interfaces-feel-better/SKILL.md +187 -0
  81. package/skills/make-interfaces-feel-better/agents/openai.yaml +3 -0
  82. package/skills/make-interfaces-feel-better/animations.md +403 -0
  83. package/skills/make-interfaces-feel-better/icons.md +63 -0
  84. package/skills/make-interfaces-feel-better/performance.md +88 -0
  85. package/skills/make-interfaces-feel-better/surfaces.md +256 -0
  86. package/skills/make-interfaces-feel-better/typography.md +157 -0
  87. package/skills/playwright-cli/LICENSE +201 -0
  88. package/skills/playwright-cli/SKILL.md +489 -0
  89. package/skills/playwright-cli/references/element-attributes.md +23 -0
  90. package/skills/playwright-cli/references/playwright-tests.md +39 -0
  91. package/skills/playwright-cli/references/pr-attachments.md +60 -0
  92. package/skills/playwright-cli/references/request-mocking.md +87 -0
  93. package/skills/playwright-cli/references/running-code.md +245 -0
  94. package/skills/playwright-cli/references/session-management.md +227 -0
  95. package/skills/playwright-cli/references/storage-state.md +275 -0
  96. package/skills/playwright-cli/references/test-generation.md +433 -0
  97. package/skills/playwright-cli/references/tracing.md +139 -0
  98. package/skills/playwright-cli/references/video-recording.md +216 -0
  99. package/skills/remotion/SKILL.md +42 -0
  100. package/skills/systematic-debugging/SKILL.md +26 -0
  101. package/skills/thermo-nuclear-code-quality-review/LICENSE +21 -0
  102. package/skills/thermo-nuclear-code-quality-review/SKILL.md +192 -0
  103. package/skills/write-tests/SKILL.md +35 -0
  104. package/skills/youtube-transcript/LICENSE +21 -0
  105. package/skills/youtube-transcript/SKILL.md +41 -0
  106. package/skills/youtube-transcript/package.json +8 -0
  107. package/skills/youtube-transcript/transcript.js +44 -0
@@ -0,0 +1,58 @@
1
+ > **Additional context needed**: target platforms/devices and usage contexts.
2
+
3
+ Adapt an existing **native** design (`ios` / `android` / `adaptive`) to a different context: another device class, orientation, platform, or origin. The trap is treating adaptation as scaling. The job is rethinking the experience for the new context, inside the platform conventions of [ios.md](ios.md) / [android.md](android.md); read the target platform's reference before planning if Setup hasn't already.
4
+
5
+ ## Assess Adaptation Challenge
6
+
7
+ 1. **Source context**: what was it designed for, and what assumptions did it make? (Phone-only? Portrait-only? One platform's idioms? A website?)
8
+ 2. **Target context**: which device class (phone, tablet, foldable), orientation, platform, and usage posture (one-handed on the go vs two-handed at rest)?
9
+ 3. **What breaks**: navigation that doesn't fit the target, layouts that stretch instead of restructure, gestures or controls that don't exist there?
10
+
11
+ ## Adaptation Strategies
12
+
13
+ ### Phone → Tablet (iPad / large screens)
14
+
15
+ - **Restructure, don't stretch.** A scaled-up phone UI on a tablet is the failure mode. Use size classes (iOS) / window size classes (Android) to switch structure.
16
+ - **Navigation changes shape**: tab bar stays or becomes a sidebar on iPad; Android navigation bar becomes a rail or drawer on expanded width.
17
+ - **Use the width**: split view / master-detail (list + detail side by side), multi-column grids, popovers where phones used sheets.
18
+ - **Multitasking is a size, not an edge case**: iPad Split View and Android multi-window can hand you a phone-width window on a tablet; size-class-driven layout handles both for free.
19
+
20
+ ### Orientation & foldables
21
+
22
+ - Landscape restructures (side-by-side panes, repositioned controls); never clip or letterbox. Lock orientation only when the task truly demands it.
23
+ - Foldables (Android): react to posture and hinge via window size classes; test folded, unfolded, and tabletop.
24
+
25
+ ### Platform → platform (iOS ↔ Android)
26
+
27
+ Translate idioms; never transplant them:
28
+
29
+ | iOS | Android |
30
+ |---|---|
31
+ | Tab bar | Navigation bar / rail / drawer |
32
+ | Edge-swipe back, back chevron | Predictive Back gesture / button |
33
+ | Switch, segmented control, system pickers | Material switch, chips, Material pickers |
34
+ | Action sheet | Bottom sheet / Material dialog |
35
+ | SF Symbols, SF Pro, Dynamic Type | Material Symbols, Roboto, sp scaling |
36
+ | Semantic system colors, materials | Material color roles, tonal elevation |
37
+ | System push/sheet transitions | Container transform, shared-axis, fade-through |
38
+
39
+ Rebuild navigation and controls in the target's vocabulary; carry over the brand's expressive layer (palette intent, type accent, motion personality) through the target's theming system.
40
+
41
+ ### Web → native (porting a website or web app)
42
+
43
+ Reconform, don't reflow. Replace web navigation with the platform's model, HTML-shaped controls with platform controls, hover affordances with touch-first ones, and px-based type with Dynamic Type / sp. Then treat the result to the full platform reference; the slop test there is the acceptance bar.
44
+
45
+ ## Implement & Verify
46
+
47
+ - Drive structure from **size classes / window size classes**, never from device-model checks.
48
+ - Respect safe areas and window insets in every new configuration (notch, hinge, status bar, keyboard).
49
+ - Test on simulators for breadth, then real hardware for truth: at least one phone and one tablet per shipped platform, both orientations, split-screen where supported.
50
+
51
+ When the adaptation feels native to each context, hand off to `/impeccable polish` for the final pass.
52
+
53
+ **NEVER**:
54
+ - Ship a stretched phone layout on a tablet
55
+ - Port one platform's controls or navigation onto the other
56
+ - Hide core functionality on smaller devices (if it matters, make it work)
57
+ - Lock orientation to dodge a layout bug
58
+ - Trust simulators alone (posture, gestures, and performance need hardware)
@@ -0,0 +1,46 @@
1
+ # Android platform
2
+
3
+ For native Android apps: Jetpack Compose, Android Views, React Native, Expo, Flutter shipping to Android hardware.
4
+
5
+ On native, the visitor mode narrows what expression may override. Material Design 3 governs structure, navigation, and interaction in every mode; brand expresses through Material's theming (color roles, type scale, shape, motion). A Material-everywhere cross-platform app that also ships to iPhone still owes iOS its OS guarantees on that hardware: safe-area insets, Reduce Motion, edge-swipe back.
6
+
7
+ ## The Android slop test
8
+
9
+ Would a fluent Android user trust this app, or trip on off-spec components? The most common tell is an iOS app wearing Android's skin: a bottom-only navigation copied from iPhone, a back arrow that ignores the system Back gesture, Cupertino-shaped switches and dialogs. Material 3 is the rulebook; follow its components and theme the brand through it.
10
+
11
+ ## Layout & structure
12
+
13
+ - **Material navigation, matched to size.** Navigation bar (bottom, 3–5 destinations) on compact width; navigation rail or drawer on expanded width. Never ship a phone bottom-bar untouched on a tablet.
14
+ - **System Back always works.** Honor the predictive Back gesture and Back button; never trap the user or hijack the gesture.
15
+ - **Edge-to-edge with window insets.** Apply the status bar, navigation bar, display cutout, and IME insets so content never hides behind system bars or the keyboard.
16
+ - **Top app bar for screen context**; pair with a FAB when the screen has a single primary action.
17
+
18
+ ## Touch targets
19
+
20
+ - **48×48 dp minimum** for every touch target, with at least 8 dp between them.
21
+
22
+ ## Typography
23
+
24
+ - **Material type scale.** Display, Headline, Title, Body, Label roles (large/medium/small each). Map text to roles; never hand-pick sizes per screen.
25
+ - **Roboto is the system face**; theme a brand face in through the type scale, keeping body, labels, and controls legible and consistent.
26
+ - **sp units, never fixed px**, so type follows the system font-size setting.
27
+
28
+ ## Color & theming
29
+
30
+ - **Material color roles** (primary, on-primary, surface, surface-variant, secondary-container, outline, error). Role tokens resolve light/dark and contrast variants automatically; raw hex breaks there.
31
+ - **Dynamic Color (Material You)** where it fits: derive the scheme from the user's wallpaper on Android 12+, with a static fallback.
32
+ - **Dark theme is a first-class scheme.** Design and test it; never a quick invert.
33
+ - **Tonal elevation.** Convey elevation through the standard surface tonal levels (plus shadow where appropriate); no arbitrary drop shadows.
34
+
35
+ ## Components & motion
36
+
37
+ - **Material components.** Buttons (filled / tonal / outlined / text), FAB, switches, chips, snackbars, bottom sheets, Material dialogs, navigation bar/rail/drawer. Never port iOS controls or invent equivalents.
38
+ - **One FAB, one primary action.** Never stack FABs or spend one on a secondary task.
39
+ - **Snackbars for transient feedback** (actionable when useful, never a toast for that); dialogs only for decisions that must interrupt.
40
+ - **Material motion patterns.** Container transform, shared-axis, fade-through, with standard easing and durations; honor the system Remove animations setting with a crossfade or instant cut.
41
+
42
+ ## Verifying the build
43
+
44
+ - **Screenshots come from the emulator or a connected device, never a browser.** Build and install, then capture with `adb exec-out screencap -p > <path>` (pick a device with `adb -s <serial>` when several are attached). Capture every device class the app ships to, at least one phone and, when tablets are a target, one tablet, and write the files where the review flow expects them.
45
+ - **Dark theme and font scale belong in the pass.** `adb shell cmd uimode night yes` flips the theme; `adb shell settings put system font_scale 1.3` (restore `1.0` after) catches the clipped labels a fixed layout hides; with several targets attached, the capture's `-s <serial>` goes on these commands too.
46
+ - **Emulators give breadth; gestures, refresh rates, and performance need hardware.** Say which one produced the evidence.
@@ -0,0 +1,89 @@
1
+ > **Additional context needed**: performance constraints.
2
+
3
+ Use motion to explain state, relationship, and hierarchy, or to create one authored moment the surface has earned. Decoration without purpose is animation debt.
4
+
5
+ ---
6
+
7
+ ## Visitor mode
8
+
9
+ - **Persuade + Experience:** motion may carry the voice. Prefer one rehearsed focal sequence to repeated section reveals.
10
+ - **Operate + Read:** motion serves feedback, state, and continuity. Keep routine transitions fast and do not make users wait through page-load choreography.
11
+ - **Native (`ios` / `android` / `adaptive`):** follow the Motion section of [ios.md](ios.md) or [android.md](android.md), including the platform's Reduce Motion behavior. Do not apply the web tooling below.
12
+
13
+ ## Find the job
14
+
15
+ Inspect the existing motion language, interaction states, target devices, and performance budget. Find only the places where motion would:
16
+
17
+ - acknowledge an action;
18
+ - make a state change or spatial relationship legible;
19
+ - preserve continuity through navigation or layout change;
20
+ - direct attention at a meaningful moment;
21
+ - embody the selected visual world.
22
+
23
+ Ask only when a material constraint cannot be inferred. Do not animate a static area merely because it exists.
24
+
25
+ ## Set the motion thesis
26
+
27
+ Write a short plan before implementation:
28
+
29
+ - **Focal moment:** the one sequence or interaction that deserves authorship, if any.
30
+ - **Continuity:** the state, layout, or navigation changes that need explanation.
31
+ - **Feedback:** the controls and outcomes that need acknowledgment.
32
+ - **Budget:** which effects may be expensive and how often they run.
33
+
34
+ The focal moment must come from this product and surface concept. A generic fade-and-rise, hover lift, parallax layer, or scroll reveal is not a thesis.
35
+
36
+ ## Choose material by meaning
37
+
38
+ Transform and opacity are reliable foundations, not the entire palette. Choose properties for what the transition communicates:
39
+
40
+ - **Continuity and relationship:** shared-element motion, FLIP-style transforms, view transitions, or deliberate spatial movement.
41
+ - **Focus and depth:** bounded blur, filter, backdrop, light, or shadow changes.
42
+ - **Reveal and composition:** masks, clip paths, cropping, or controlled occlusion.
43
+ - **Material and energy:** color, gradient position, texture, distortion, or shader effects when the world and runtime support them.
44
+ - **State and feedback:** the smallest change that makes cause and result unmistakable.
45
+
46
+ Do not stack techniques for spectacle. One strong material idea, carried through the focal sequence and quiet supporting states, is usually enough.
47
+
48
+ Sibling stagger is appropriate when a list appears as a list. Cap the total delay, and never reinterpret every scrolled section as a staggered list.
49
+
50
+ ## Timing and easing
51
+
52
+ Timing should express distance and consequence:
53
+
54
+ | Duration | Typical use |
55
+ |---|---|
56
+ | 100–150 ms | immediate feedback |
57
+ | 150–300 ms | routine state change |
58
+ | 300–500 ms | layout, overlay, or view transition |
59
+ | 500–800 ms | a deliberately authored focal entrance |
60
+
61
+ Exit faster than entrance. Use natural deceleration such as `cubic-bezier(0.16, 1, 0.3, 1)` for confident arrivals; do not use bounce or elastic curves by reflex. Long feedback feels like latency.
62
+
63
+ ## Implement to the runtime
64
+
65
+ - Use CSS transitions and keyframes for declarative state and bounded sequences.
66
+ - Use Web Animations API or the project's existing motion library for interruption, sequencing, and dynamic values.
67
+ - Use View Transitions or shared-element techniques when continuity across states is the point.
68
+ - Use scroll-driven motion only when the scroll relationship itself carries meaning, with a robust fallback.
69
+ - Do not add a dependency for an effect the existing stack can express cleanly.
70
+
71
+ Keep content visible in the default state so failed scripts do not hide the page. Avoid casually animating layout-driving properties such as `width`, `height`, `top`, `left`, and margins; use FLIP, transforms, or grid techniques when appropriate. Bound blur, filter, shadow, canvas, and shader work to isolated regions. Apply `will-change` only during known animation. Measure on target viewports and devices rather than assuming transform means fast.
72
+
73
+ ## Accessibility and control
74
+
75
+ Respect autoplay and sound preferences. Any nonessential loop must stop when offscreen or hidden.
76
+
77
+ Every web animation needs a `prefers-reduced-motion` path with an intentional alternative. Remove or reduce spatial movement while preserving opacity, color, and state transitions that carry meaning. Reduced motion means fewer and gentler animations, not disabling all motion; feedback that confirms an action should remain legible.
78
+
79
+ ## Verify
80
+
81
+ - The focal motion is specific to the selected world and surface.
82
+ - Every supporting animation explains feedback, state, or relationship.
83
+ - Interruption and repeated use behave correctly.
84
+ - Desktop, mobile, and keyboard paths remain usable.
85
+ - The `prefers-reduced-motion` path reduces movement without erasing meaningful feedback or state changes.
86
+ - Expensive effects stay smooth on the target device.
87
+ - Removing an animation would lose meaning or authored character, not merely decoration.
88
+
89
+ When motion earns its place, hand off to `/impeccable polish` for the final pass.
@@ -0,0 +1,137 @@
1
+ Run systematic **technical** quality checks and generate a comprehensive report. Don't fix issues; document them for other commands to address.
2
+
3
+ This is a code-level audit, not a design critique. Check what's measurable and verifiable in the implementation.
4
+
5
+ **Web only.** Native platforms (`ios` / `android` / `adaptive`) route to [audit.native.md](audit.native.md) instead; if the project is native, switch to it now.
6
+
7
+ ## Diagnostic Scan
8
+
9
+ Run comprehensive checks across 5 dimensions. Score each dimension 0-4 using the criteria below.
10
+
11
+ ### 1. Accessibility (A11y)
12
+
13
+ **Check for**:
14
+ - **Contrast issues**: Text contrast ratios < 4.5:1 (or 7:1 for AAA)
15
+ - **Motion sensitivity**: `prefers-reduced-motion` needs an intentional alternative that preserves state change and hierarchy; flag a global `0.01ms` kill that destroys useful feedback, flashing above threshold, and motion that blocks focus, reading, or task completion
16
+ - **Missing ARIA**: Interactive elements without proper roles, labels, or states
17
+ - **Keyboard navigation**: Missing focus indicators, illogical tab order, keyboard traps
18
+ - **Semantic HTML**: Improper heading hierarchy, missing landmarks, divs instead of buttons
19
+ - **Alt text**: Missing or poor image descriptions
20
+ - **Form issues**: Inputs without labels, poor error messaging, missing required indicators
21
+
22
+ **Score 0-4**: 0=Inaccessible (fails WCAG A), 1=Major gaps (few ARIA labels, no keyboard nav), 2=Partial (some a11y effort, significant gaps), 3=Good (WCAG AA mostly met, minor gaps), 4=Excellent (WCAG AA fully met, approaches AAA)
23
+
24
+ ### 2. Performance
25
+
26
+ **Check for**:
27
+ - **Layout thrashing**: Reading/writing layout properties in loops
28
+ - **Expensive animations**: Casual layout-property animation, unbounded blur/filter/shadow effects, or effects that visibly drop frames
29
+ - **Missing optimization**: Images without lazy loading, unoptimized assets
30
+ - **will-change overuse**: `will-change` applied broadly or left on at rest (it is a targeted hint for known expensive animations, not a baseline requirement)
31
+ - **Bundle size**: Unnecessary imports, unused dependencies
32
+ - **Render performance**: Unnecessary re-renders, missing memoization
33
+
34
+ **Score 0-4**: 0=Severe issues (layout thrash, unoptimized everything), 1=Major problems (no lazy loading, expensive animations), 2=Partial (some optimization, gaps remain), 3=Good (mostly optimized, minor improvements possible), 4=Excellent (fast, lean, well-optimized)
35
+
36
+ ### 3. Theming
37
+
38
+ **Check for**:
39
+ - **Hard-coded colors**: Colors not using design tokens
40
+ - **Broken dark mode**: Missing dark mode variants, poor contrast in dark theme
41
+ - **Inconsistent tokens**: Using wrong tokens, mixing token types
42
+ - **Theme switching issues**: Values that don't update on theme change
43
+
44
+ **Score 0-4**: 0=No theming (hard-coded everything), 1=Minimal tokens (mostly hard-coded), 2=Partial (tokens exist but inconsistently used), 3=Good (tokens used, minor hard-coded values), 4=Excellent (full token system, dark mode works perfectly)
45
+
46
+ ### 4. Responsive Design
47
+
48
+ **Check for**:
49
+ - **Fixed widths**: Hard-coded widths that break on mobile
50
+ - **Touch targets**: Interactive elements < 44x44px
51
+ - **Broken touch interaction**: Custom sliders, drag surfaces, and scrollable control strips whose primary gesture fails under touch, that swallow page scroll or lose the drag to it, or that stay stuck after an interrupted gesture. Code tells: mouse-only handlers, no `touch-action` on a pointer-event drag surface, drag state that nothing clears on cancel, lost capture, or blur. Exercise the gesture when a browser tool can synthesize touch (a rendered viewport proves layout, not the gesture), then say what produced the evidence (emulated viewport, synthesized touch, which engine, physical device) and what stayed untested
52
+ - **Horizontal scroll**: Content overflow on narrow viewports
53
+ - **Text scaling**: Layouts that break when text size increases
54
+ - **Missing breakpoints**: No mobile/tablet variants
55
+
56
+ **Score 0-4**: 0=Desktop-only (breaks on mobile), 1=Major issues (some breakpoints, many failures), 2=Partial (works on mobile, rough edges), 3=Good (responsive, minor touch target or overflow issues), 4=Excellent (fluid, all viewports, proper touch targets, gestures work under touch)
57
+
58
+ ### 5. Implementation Integrity (CRITICAL)
59
+
60
+ Run the bundled detector and verify each finding in context. Look for repeated implementation shortcuts, design-system drift, misleading or decorative content, and structure that is interchangeable with an unrelated product. Keep deterministic findings separate from visual judgment and call out false positives.
61
+
62
+ **Score 0-4**: 0=systemic drift, 1=major repeated failures, 2=several verified issues, 3=minor isolated issues, 4=coherent and intentional
63
+
64
+ ## Generate Report
65
+
66
+ ### Audit Health Score
67
+
68
+ | # | Dimension | Score | Key Finding |
69
+ |---|-----------|-------|-------------|
70
+ | 1 | Accessibility | ? | [most critical a11y issue or "--"] |
71
+ | 2 | Performance | ? | |
72
+ | 3 | Responsive Design | ? | |
73
+ | 4 | Theming | ? | |
74
+ | 5 | Implementation Integrity | ? | |
75
+ | **Total** | | **??/20** | **[Rating band]** |
76
+
77
+ **Rating bands**: 18-20 Excellent (minor polish), 14-17 Good (address weak dimensions), 10-13 Acceptable (significant work needed), 6-9 Poor (major overhaul), 0-5 Critical (fundamental issues)
78
+
79
+ ### Implementation Integrity Verdict
80
+ **Start here.** Pass/fail: does the implementation express a coherent product-specific system? Cite verified evidence and detector findings.
81
+
82
+ ### Executive Summary
83
+ - Audit Health Score: **??/20** ([rating band])
84
+ - Total issues found (count by severity: P0/P1/P2/P3)
85
+ - Top 3-5 critical issues
86
+ - Recommended next steps
87
+
88
+ ### Detailed Findings by Severity
89
+
90
+ Tag every issue with **P0-P3 severity**:
91
+ - **P0 Blocking**: Prevents task completion. Fix immediately
92
+ - **P1 Major**: Significant difficulty or WCAG AA violation. Fix before release
93
+ - **P2 Minor**: Annoyance, workaround exists. Fix in next pass
94
+ - **P3 Polish**: Nice-to-fix, no real user impact. Fix if time permits
95
+
96
+ For each issue, document:
97
+ - **[P?] Issue name**
98
+ - **Location**: Component, file, line
99
+ - **Category**: Accessibility / Performance / Theming / Responsive / Implementation Integrity
100
+ - **Impact**: How it affects users
101
+ - **WCAG/Standard**: Which standard it violates (if applicable)
102
+ - **Recommendation**: How to fix it
103
+ - **Suggested command**: Which command to use (prefer: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset)
104
+
105
+ ### Patterns & Systemic Issues
106
+
107
+ Identify recurring problems that indicate systemic gaps rather than one-off mistakes:
108
+ - "Hard-coded colors appear in 15+ components, should use design tokens"
109
+ - "Touch targets consistently too small (<44px) throughout mobile experience"
110
+
111
+ ### Positive Findings
112
+
113
+ Note what's working well: good practices to maintain and replicate.
114
+
115
+ ## Recommended Actions
116
+
117
+ List recommended commands in priority order (P0 first, then P1, then P2):
118
+
119
+ 1. **[P?] `/command-name`**: Brief description (specific context from audit findings)
120
+ 2. **[P?] `/command-name`**: Brief description (specific context)
121
+
122
+ **Rules**: Only recommend commands from: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset. Map findings to the most appropriate command. End with `/impeccable polish` as the final step if any fixes were recommended.
123
+
124
+ After presenting the summary, tell the user:
125
+
126
+ > You can ask me to run these one at a time, all at once, or in any order you prefer.
127
+ >
128
+ > Re-run `/impeccable audit` after fixes to see your score improve.
129
+
130
+ **IMPORTANT**: Be thorough but actionable. Too many P3 issues creates noise. Focus on what actually matters.
131
+
132
+ **NEVER**:
133
+ - Report issues without explaining impact (why does this matter?)
134
+ - Provide generic recommendations (be specific and actionable)
135
+ - Skip positive findings (celebrate what works)
136
+ - Forget to prioritize (everything can't be P0)
137
+ - Report false positives without verification
@@ -0,0 +1,139 @@
1
+ Run systematic **technical** quality checks on a native app (`ios` / `android` / `adaptive`) and generate a comprehensive report. Don't fix issues; document them for other commands to address.
2
+
3
+ This is a code-level audit, not a design critique. Audit from source (SwiftUI / UIKit / Compose / React Native / Flutter); no browser tooling or `impeccable detect` applies. Score against the platform reference(s): [ios.md](ios.md) / [android.md](android.md), both for `adaptive`. Read them before scoring if Setup hasn't already. The report skeleton mirrors [audit.md](audit.md); keep the two in sync when changing it.
4
+
5
+ ## Diagnostic Scan
6
+
7
+ Run comprehensive checks across 5 dimensions. Score each dimension 0-4 using the criteria below.
8
+
9
+ ### 1. Accessibility (VoiceOver / TalkBack)
10
+
11
+ **Check for**:
12
+ - **Missing labels**: interactive elements without accessibility labels, traits/roles, or state announcements
13
+ - **Reading and focus order**: illogical traversal, unreachable controls, focus lost on navigation
14
+ - **Text scaling**: fixed point sizes defeating Dynamic Type (iOS) or px instead of sp (Android); layouts that clip or overlap at large sizes
15
+ - **Touch targets**: below 44 pt (iOS) / 48 dp (Android), or crammed without spacing
16
+ - **Reduce Motion ignored**: parallax and large slides with no crossfade alternative
17
+ - **Contrast**: text failing contrast in either appearance, light or dark
18
+
19
+ **Score 0-4**: 0=Screen reader unusable, 1=Major gaps (unlabeled controls, no scaling), 2=Partial (labels exist, order or scaling breaks), 3=Good (minor gaps), 4=Excellent (labeled, ordered, scales cleanly, Reduce Motion honored)
20
+
21
+ ### 2. Performance
22
+
23
+ **Check for**:
24
+ - **Slow startup**: heavy work on launch before first frame
25
+ - **Unvirtualized lists**: long content without FlatList / LazyColumn / List recycling
26
+ - **Main-thread jank**: synchronous work in scroll or gesture paths, dropped frames on 60/120 Hz
27
+ - **Wasted rendering**: unnecessary re-renders (React Native) or recompositions (Compose); missing memoization/keys
28
+ - **Image handling**: full-size images decoded for thumbnails, no caching
29
+ - **App weight**: bloated JS bundle or binary, unused dependencies
30
+
31
+ **Score 0-4**: 0=Janky everywhere, 1=Major problems (unvirtualized lists, slow launch), 2=Partial, 3=Good (minor improvements possible), 4=Excellent (fast launch, smooth scroll, lean)
32
+
33
+ ### 3. Appearance & Theming
34
+
35
+ **Check for**:
36
+ - **Hard-coded colors**: raw hex instead of semantic system colors (iOS) / Material color roles (Android) / design tokens
37
+ - **Broken dark appearance**: missing dark variants, poor contrast in dark, quick inverts
38
+ - **Dynamic Color** (Android 12+): no static fallback scheme, or ignored where it fits
39
+ - **Off-platform materials**: hand-rolled visual materials where system materials or tonal elevation are expected
40
+
41
+ **Score 0-4**: 0=Hard-coded everything, 1=Minimal tokens, 2=Partial (tokens exist, inconsistently used), 3=Good (minor hard-coded values), 4=Excellent (semantic throughout, both appearances first-class)
42
+
43
+ ### 4. Platform Conformance (CRITICAL)
44
+
45
+ Score against the loaded platform reference(s), including their slop tests. **Check for**:
46
+ - **Broken system gestures**: edge-swipe back disabled (iOS), predictive Back hijacked (Android)
47
+ - **Inset violations**: content under the notch, Dynamic Island, home indicator, status bar, or keyboard
48
+ - **Off-platform navigation**: custom global nav, overloaded tab bars, iOS patterns on Android or vice versa
49
+ - **Web-shaped controls**: HTML-style buttons, custom toggles, hover-dependent affordances
50
+ - **Icon drift**: mixed icon sets instead of SF Symbols / Material Symbols
51
+ - **System drift**: repeated shortcuts or decorative patterns that conflict with the product, platform, or established design system
52
+
53
+ **Score 0-4**: 0=Web port (nothing native), 1=Heavy violations (3-4 kinds), 2=Some (1-2 noticeable), 3=Mostly conformant (subtle issues), 4=Fully native (a fluent user trusts every screen)
54
+
55
+ ### 5. Adaptivity
56
+
57
+ **Check for**:
58
+ - **Stretched phone layouts**: tablet/iPad rendering a scaled-up phone UI instead of using size classes / window size classes
59
+ - **Orientation breakage**: landscape clipping, ignored, or locked without reason
60
+ - **Keyboard/IME handling**: inputs hidden behind the keyboard, no inset adjustment
61
+ - **Multitasking**: iPad Split View / Android multi-window breaking layout
62
+ - **Foldables**: hinge-unaware layouts on posture change (Android)
63
+
64
+ **Score 0-4**: 0=One screen size only, 1=Major breakage (landscape or tablet broken), 2=Partial, 3=Good (minor edge cases), 4=Excellent (adapts across sizes, orientations, and windowing)
65
+
66
+ ## Generate Report
67
+
68
+ ### Audit Health Score
69
+
70
+ | # | Dimension | Score | Key Finding |
71
+ |---|-----------|-------|-------------|
72
+ | 1 | Accessibility | ? | [most critical issue or "--"] |
73
+ | 2 | Performance | ? | |
74
+ | 3 | Appearance & Theming | ? | |
75
+ | 4 | Platform Conformance | ? | |
76
+ | 5 | Adaptivity | ? | |
77
+ | **Total** | | **??/20** | **[Rating band]** |
78
+
79
+ **Rating bands**: 18-20 Excellent (minor polish), 14-17 Good (address weak dimensions), 10-13 Acceptable (significant work needed), 6-9 Poor (major overhaul), 0-5 Critical (fundamental issues)
80
+
81
+ ### Platform Conformance Verdict
82
+ **Start here.** Pass/fail: does this read as a native app or a ported website? List specific violations. Be brutally honest.
83
+
84
+ ### Executive Summary
85
+ - Audit Health Score: **??/20** ([rating band])
86
+ - Total issues found (count by severity: P0/P1/P2/P3)
87
+ - Top 3-5 critical issues
88
+ - Recommended next steps
89
+
90
+ ### Detailed Findings by Severity
91
+
92
+ Tag every issue with **P0-P3 severity**:
93
+ - **P0 Blocking**: Prevents task completion. Fix immediately
94
+ - **P1 Major**: Significant difficulty or platform-guideline violation. Fix before release
95
+ - **P2 Minor**: Annoyance, workaround exists. Fix in next pass
96
+ - **P3 Polish**: Nice-to-fix, no real user impact. Fix if time permits
97
+
98
+ For each issue, document:
99
+ - **[P?] Issue name**
100
+ - **Location**: Screen, file, line
101
+ - **Category**: Accessibility / Performance / Theming / Conformance / Adaptivity
102
+ - **Impact**: How it affects users
103
+ - **Guideline**: The HIG / Material rule it violates (if applicable)
104
+ - **Recommendation**: How to fix it
105
+ - **Suggested command**: Which command to use (prefer: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset)
106
+
107
+ ### Patterns & Systemic Issues
108
+
109
+ Identify recurring problems that indicate systemic gaps rather than one-off mistakes:
110
+ - "Hard-coded colors appear in 15+ screens, should use semantic colors"
111
+ - "Touch targets consistently below 44 pt throughout the tab bar and list rows"
112
+
113
+ ### Positive Findings
114
+
115
+ Note what's working well: good practices to maintain and replicate.
116
+
117
+ ## Recommended Actions
118
+
119
+ List recommended commands in priority order (P0 first, then P1, then P2):
120
+
121
+ 1. **[P?] `/command-name`**: Brief description (specific context from audit findings)
122
+ 2. **[P?] `/command-name`**: Brief description (specific context)
123
+
124
+ **Rules**: Only recommend commands from: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset. Map findings to the most appropriate command. End with `/impeccable polish` as the final step if any fixes were recommended.
125
+
126
+ After presenting the summary, tell the user:
127
+
128
+ > You can ask me to run these one at a time, all at once, or in any order you prefer.
129
+ >
130
+ > Re-run `/impeccable audit` after fixes to see your score improve.
131
+
132
+ **IMPORTANT**: Be thorough but actionable. Too many P3 issues creates noise. Focus on what actually matters.
133
+
134
+ **NEVER**:
135
+ - Report issues without explaining impact (why does this matter?)
136
+ - Provide generic recommendations (be specific and actionable)
137
+ - Skip positive findings (celebrate what works)
138
+ - Forget to prioritize (everything can't be P0)
139
+ - Report false positives without verification
@@ -0,0 +1,33 @@
1
+ > **Additional context needed**: which section is the target, and what must stay untouched.
2
+
3
+ An open direction round owns the word first: "bolder" said while a direction decision is on the table is the Bolder hand register steer, a fresh deal of foreign forms (see new-work.md), not this command. This command refines a surface whose world already shipped.
4
+
5
+ "Bolder" is an amplification request, and almost always it is scoped to something that already exists. The surrounding page, its system, and its conventions are the given. Your job is to raise one part to the conviction the rest already implies, without rebuilding anything the brief did not name. The reflex answer, reaching for more effects, is the opposite of bold; reject it first.
6
+
7
+ ## Scope is sovereign
8
+
9
+ "Everything else stays" is a literal instruction. Touch only the named target. Do not restyle its neighbors, do not migrate the page to a new idea, do not add colors, fonts, radii, shadows, or system primitives the surface does not already own. If the existing system genuinely cannot express the direction, do not expand it on your own. STOP and call the AskUserQuestion tool to clarify. Name the exact addition and the job it would do.
10
+
11
+ ## Why it reads flat
12
+
13
+ A section usually reads flat for reasons its neighbors have already solved. Look at what the rest of the page does that this section does not: the display type at full strength, the structural devices that carry meaning, the signature motif, the density and pacing. A flat section is typically one that quietly opts out of the system's own strongest moves. The most reliable bolder pass brings the target up to the expressive level its neighbors already reach, in the system's own vocabulary rather than a new one.
14
+
15
+ ## The amplification
16
+
17
+ - **Amplify what the system already owns.** Reuse its motif and its type scale at full strength, turned up for this section rather than invented for it. The bolder version should look more like the same brand, not less.
18
+ - **Keep content true.** Existing claims are part of the scope: preserve them unless the user supplies replacements. If real evidence is essential to the direction but absent, ask for it.
19
+ - **Commit, then clarify.** Half-measures read as noise. Make the one decisive move completely, then quiet everything around it so the move is legible. If every element got louder, the section got flatter.
20
+ - **Give it its own rhythm.** The target should read as a peak in the scroll, a shift in density or pace from what surrounds it, not simply more of the same.
21
+
22
+ ## The skeleton test
23
+
24
+ Strip the copy out of your planned section and study the bare structure. Does the skeleton still say what this section is and why it matters, through hierarchy and the system's devices alone? If it only works once the words return, the boldness is in the text size, not the design. A placeholder for an image or artifact names a job, an anchor and a piece of evidence, not a cue to drop in a decorative photo; fill that job with whatever the subject actually has.
25
+
26
+ ## Before you finish
27
+
28
+ - Everything outside the named target is unchanged.
29
+ - No new color, font, or system primitive appeared without being asked for.
30
+ - The conventions the section carried, including anything that drives an action, still work the same way.
31
+ - The section is unmistakably the same brand, only more sure of itself.
32
+
33
+ When the target holds its own without pulling the page apart, hand off to `/impeccable polish` for the final pass.
@@ -0,0 +1,94 @@
1
+ > **Additional context needed**: audience knowledge and emotional state.
2
+
3
+ Rewrite unclear interface text so users understand what happened, what matters, and what to do next. Preserve factual meaning, product terminology, and brand voice.
4
+
5
+ ## Audit the language
6
+
7
+ Read the entire interaction path, not isolated strings. Identify:
8
+
9
+ - ambiguous nouns, verbs, and actions;
10
+ - internal jargon or assumed knowledge;
11
+ - vague labels, outcomes, and system states;
12
+ - missing consequences, recovery, or timing;
13
+ - inconsistent terminology and capitalization;
14
+ - redundant headings, intros, helper text, and confirmations;
15
+ - text that breaks at realistic widths or in translation;
16
+ - tone that ignores stress, risk, success, or urgency.
17
+
18
+ Infer audience and task from product context and surrounding UI. Ask before changing factual claims, legal meaning, or a term that may be domain-specific.
19
+
20
+ ## Set the message hierarchy
21
+
22
+ For each state, decide:
23
+
24
+ 1. the one fact the user needs now;
25
+ 2. the action available next;
26
+ 3. supporting context that changes the decision;
27
+ 4. the appropriate tone for this moment.
28
+
29
+ Say each idea once. If the heading already explains the state, the introduction should add new information or disappear.
30
+
31
+ ## Rewrite by function
32
+
33
+ ### Actions and navigation
34
+
35
+ Use a specific verb and object when the outcome is not already obvious. Labels should describe what will happen, not the gesture used to trigger it. Keep the same noun and verb for the same concept throughout the product.
36
+
37
+ For destructive actions, name the object and consequence. Prefer undo over confirmation when recovery is safe. When confirmation is necessary, name the action on both the message and button instead of using `Yes`, `No`, `OK`, or `Submit`.
38
+
39
+ ### Forms
40
+
41
+ Use persistent labels; placeholders are examples, not labels. Put format and eligibility requirements before submission. Explain why information is requested only when it is not obvious. Required and optional treatment should be consistent.
42
+
43
+ Validation says what needs attention and how to correct it without blaming the user. Keep related instructions near the field and announce errors accessibly.
44
+
45
+ ### Errors and permissions
46
+
47
+ An actionable error answers:
48
+
49
+ 1. what failed;
50
+ 2. why, when known and useful;
51
+ 3. how to recover or what alternative remains.
52
+
53
+ Do not expose internal codes as the primary message. Do not promise a cause or resolution the system cannot know. Treat privacy, payment, deletion, access loss, and blocked work seriously; warmth is welcome, jokes are not.
54
+
55
+ ### Loading, empty, and success states
56
+
57
+ Loading text names the real operation and sets an honest expectation when the wait is meaningful. Show determinate progress when available; never invent progress.
58
+
59
+ An empty state distinguishes first use, no results, filters, permissions, and failure. Explain the state and provide the next useful action.
60
+
61
+ Success confirms the completed outcome and mentions the next consequence only when it changes what the user should do. Routine success should be brief.
62
+
63
+ ### Help and instructional text
64
+
65
+ Helper text answers an implicit question instead of restating the control. Use progressive disclosure for uncommon detail. Link text must make sense out of context; icon-only controls need accessible names.
66
+
67
+ ## Voice, accessibility, and localization
68
+
69
+ Voice stays consistent; tone adapts to the moment. Use plain language without flattening terminology the audience genuinely knows.
70
+
71
+ - Write complete translatable messages rather than concatenated fragments.
72
+ - Keep variables and numbers structured so translators can reorder them.
73
+ - Allow expansion instead of abbreviating prematurely.
74
+ - Make alt text convey the image's information; use empty alt for decoration.
75
+ - Keep screen-reader names aligned with visible labels and outcomes.
76
+ - Do not rely on punctuation, color, or iconography to carry the message alone.
77
+
78
+ Maintain a short terminology glossary when inconsistency spans the product. Do not vary words for literary effect in an interface.
79
+
80
+ ## Verify
81
+
82
+ Read the flow in context and test:
83
+
84
+ - comprehension without hidden product knowledge;
85
+ - actionability at errors, empty states, and decision points;
86
+ - factual accuracy and consistent terminology;
87
+ - scanability at target widths and 200% zoom;
88
+ - long names, localization expansion, pluralization, and dynamic values;
89
+ - accessible names and announced state changes;
90
+ - tone appropriate to consequence and emotional context.
91
+
92
+ The final copy is as short as it can be without removing meaning or recovery.
93
+
94
+ When the language reads cleanly, hand off to `/impeccable polish` for the final pass.