@tamsensedev/runner 0.13.0 → 0.19.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 (82) hide show
  1. package/LICENSE +5 -5
  2. package/README.md +76 -57
  3. package/dist/cli.js +757 -379
  4. package/dist/cli.js.map +1 -1
  5. package/dist/recorder.cjs.map +1 -1
  6. package/library/.claude-plugin/plugin.json +5 -5
  7. package/library/THIRD_PARTY_NOTICES.md +123 -123
  8. package/library/agents/code-architect.md +67 -67
  9. package/library/agents/code-explorer.md +61 -61
  10. package/library/agents/code-reviewer.md +73 -73
  11. package/library/agents/code-simplifier.md +62 -62
  12. package/library/agents/design-critic.md +52 -52
  13. package/library/agents/second-opinion.md +64 -64
  14. package/library/agents/security-auditor.md +86 -86
  15. package/library/agents/silent-failure-hunter.md +70 -70
  16. package/library/agents/test-coverage-analyzer.md +78 -78
  17. package/library/agents/test-runner.md +48 -48
  18. package/library/agents/ui-tester.md +50 -50
  19. package/library/licenses/Apache-2.0.txt +202 -202
  20. package/library/skills/accessibility/SKILL.md +144 -144
  21. package/library/skills/accessibility/references/wcag-checks.md +168 -168
  22. package/library/skills/addressing-review-feedback/SKILL.md +109 -109
  23. package/library/skills/app-screens/SKILL.md +96 -96
  24. package/library/skills/app-screens/references/shell-kpis-charts.md +108 -108
  25. package/library/skills/app-screens/references/states-density-phone.md +54 -54
  26. package/library/skills/app-screens/references/tables-forms-settings.md +104 -104
  27. package/library/skills/avoiding-generic-ai-design/SKILL.md +92 -92
  28. package/library/skills/avoiding-generic-ai-design/references/tells.md +112 -112
  29. package/library/skills/clean-commits/SKILL.md +85 -85
  30. package/library/skills/design-review/SKILL.md +107 -107
  31. package/library/skills/design-review/references/critique-passes.md +101 -101
  32. package/library/skills/design-review/references/screenshot-procedure.md +121 -121
  33. package/library/skills/differential-security-review/LICENSE +427 -427
  34. package/library/skills/differential-security-review/SKILL.md +105 -105
  35. package/library/skills/differential-security-review/references/adversarial.md +115 -115
  36. package/library/skills/differential-security-review/references/methodology.md +145 -145
  37. package/library/skills/differential-security-review/references/patterns.md +108 -108
  38. package/library/skills/false-positive-check/LICENSE +427 -427
  39. package/library/skills/false-positive-check/SKILL.md +95 -95
  40. package/library/skills/false-positive-check/references/bug-class-verification.md +128 -128
  41. package/library/skills/false-positive-check/references/deep-verification.md +113 -113
  42. package/library/skills/false-positive-check/references/evidence-templates.md +93 -93
  43. package/library/skills/false-positive-check/references/false-positive-patterns.md +122 -122
  44. package/library/skills/false-positive-check/references/gate-reviews.md +36 -36
  45. package/library/skills/false-positive-check/references/standard-verification.md +80 -80
  46. package/library/skills/focused-implementation/SKILL.md +104 -104
  47. package/library/skills/implementation-plan/SKILL.md +66 -66
  48. package/library/skills/interface-design/SKILL.md +144 -144
  49. package/library/skills/interface-design/references/craft-defaults.md +130 -130
  50. package/library/skills/interface-design/references/new-direction.md +62 -62
  51. package/library/skills/interface-design/references/writing.md +52 -52
  52. package/library/skills/interface-polish/SKILL.md +103 -103
  53. package/library/skills/interface-polish/references/detail-rules.md +154 -154
  54. package/library/skills/interface-polish/references/worst-case-data.md +158 -158
  55. package/library/skills/motion-design/SKILL.md +106 -106
  56. package/library/skills/motion-design/references/recipes.md +243 -243
  57. package/library/skills/postgres-performance/SKILL.md +97 -97
  58. package/library/skills/postgres-performance/references/rules.md +265 -265
  59. package/library/skills/project-orientation/SKILL.md +77 -77
  60. package/library/skills/reviewing-changes/SKILL.md +183 -183
  61. package/library/skills/safe-database-changes/SKILL.md +111 -111
  62. package/library/skills/safe-database-changes/references/backfills.md +75 -75
  63. package/library/skills/safe-database-changes/references/migration-tools.md +69 -69
  64. package/library/skills/safe-database-changes/references/postgres-ddl.md +199 -199
  65. package/library/skills/security-review/SKILL.md +132 -132
  66. package/library/skills/security-review/references/checks-by-area.md +107 -107
  67. package/library/skills/security-review/references/do-not-report.md +86 -86
  68. package/library/skills/spec-writing/SKILL.md +144 -144
  69. package/library/skills/systematic-debugging/SKILL.md +130 -130
  70. package/library/skills/systematic-debugging/references/flaky-tests.md +51 -51
  71. package/library/skills/systematic-debugging/references/root-cause-tracing.md +55 -55
  72. package/library/skills/task-interview/SKILL.md +84 -84
  73. package/library/skills/test-driven-development/SKILL.md +116 -116
  74. package/library/skills/test-driven-development/references/writing-good-tests.md +85 -85
  75. package/library/skills/ui-testing/SKILL.md +102 -102
  76. package/library/skills/ui-testing/references/headless-check.md +295 -295
  77. package/library/skills/ui-testing/references/local-stand.md +51 -51
  78. package/library/skills/ui-testing/references/playwright-patterns.md +134 -134
  79. package/library/skills/ui-testing/references/recording.md +61 -61
  80. package/library/skills/verification-before-completion/SKILL.md +113 -113
  81. package/library/skills/web-interface-guidelines/SKILL.md +202 -202
  82. package/package.json +46 -46
@@ -1,112 +1,112 @@
1
- # The dated registry of AI-look patterns
2
-
3
- Read this when scanning a diff or a screenshot for patterns that make an interface read as generated. Last reviewed October 2026.
4
-
5
- A pattern here is a default, not a crime. Most began as good ideas on good sites and became tells by being produced everywhere without a reason. That is why the list is dated: every published "use this instead" list becomes the next wave within months, so the replacements below are procedures (derive from the content, the product, the project's system), not specific fonts or colours.
6
-
7
- Everything here yields to the project's own design system and to explicit task wording (see the main skill).
8
-
9
- ## 1. First wave (2023 to 2024)
10
-
11
- | Pattern | Instead |
12
- |---|---|
13
- | Violet or indigo gradients on heroes, buttons and glows | Flat colour from the product's palette |
14
- | Gradient-filled headline text | Solid text; emphasis from weight or size |
15
- | Glass panels: backdrop blur, translucent cards, used as decoration | Opaque surfaces one tone step from the ground |
16
- | Glowing or gradient "Get started" button | A flat button named for its action |
17
- | Soft grey drop shadow under every card | A border or tone step; shadows only on floating layers |
18
- | Three identical feature cards, each with an icon in a rounded square | A composition built from the actual content; different weights for different importance |
19
- | Emoji as icons or bullets | Words, or one consistent icon set |
20
- | Centred headline, subtitle, two buttons, screenshot below | A first screen built around the product's most characteristic thing |
21
- | The same default typeface on every generated page | A face chosen for the product, or the project's own |
22
-
23
- ## 2. Second wave (2025)
24
-
25
- | Pattern | Instead |
26
- |---|---|
27
- | Eyebrow: a tiny tracked uppercase label above every heading | Fold the information into the heading, or delete it |
28
- | Pill badge above the hero headline ("New", "Beta", "Introducing") | Say it in the supporting sentence |
29
- | One word of a headline in italic serif, colour or underline | One face, one colour; the words carry the emphasis |
30
- | Bento grid of rounded tiles as the feature section | A section composed for its content |
31
- | Near-black ground with one neon accent and a glow | A considered dark palette, no glow |
32
- | Floating rounded pill navigation with blur | A plain bar: name, a few links, one action |
33
- | Fake dashboard hero made of grey bars and donut charts | A real fragment of the product's interface, or no image |
34
- | Decorative pulsing status dot ("Available", "Live") | Remove, unless it reports a real status |
35
- | Fade-and-rise on every section | One authored moment, or none |
36
-
37
- ## 3. Third wave (2025 to 2026): the fix that became the look
38
-
39
- The published remedy for the first two waves was "warm it up and make it editorial". Models adopted it wholesale, and it is now one of the most recognisable generated looks.
40
-
41
- | Pattern | Instead |
42
- |---|---|
43
- | Warm cream ground (near #F4F1EA) with a terracotta, rust or clay accent (often near #D97757, the Claude interface accent, so on a customer product it reads as a tell) and a high-contrast serif display | A palette from the product's own world |
44
- | Serif display type as the shortcut to "premium" | A face chosen for the product |
45
- | Broadsheet cosplay: hairline rules everywhere, zero radius, dense newspaper columns | Structure from space and tone; rules only where a table needs them |
46
- | Performative labels: "Field notes", "Quietly trusted by", "On our desks" | Plain section names |
47
-
48
- ## 4. Template chrome that appears whatever the subject
49
-
50
- | Pattern | Instead |
51
- |---|---|
52
- | Tracked all-caps label above every heading | Sentence case at a readable size, next to what it describes |
53
- | Meta strings joined with middle dots ("A · B · C") everywhere | Separate fields, or a sentence |
54
- | Labels built as "WORD, fragment" with a spaced long dash | Plain labels |
55
- | Tinted near-black (#0B0B0B, #111) standing in for black on every page | The project's ink colour, chosen once |
56
- | Monospace for small data labels and captions as a "technical" voice | The text face; tabular figures where numbers align; monospace for code and IDs |
57
- | An arrow glyph appended to every link and button | Plain link text; arrows only where direction means something |
58
- | Index numbering (01 / 02 / 03, "Step 02") on content that is not a sequence | Order by position or size; a real ordered list when order matters |
59
- | Agency micro-meta: local time, coordinates, weather, version stamps | Remove |
60
- | Design-tool chrome as ornament: crosshairs, crop marks, dashed guides, rulers | Remove |
61
-
62
- ## 5. Structural patterns
63
-
64
- | Pattern | Instead |
65
- |---|---|
66
- | A full-sentence headline at display size running three or four lines | A title of about five words; the rest goes below |
67
- | Stock section order: hero, logos, features, testimonial, pricing, call to action | The order of the argument |
68
- | Every section the same layout family | Different composition per section |
69
- | Everything centred | Left-aligned by default; centre at most one moment |
70
- | One medium radius (12 to 16px) on everything regardless of hierarchy | A radius scale chosen once, nested concentrically |
71
- | Content chopped into identical rounded cards with the same soft shadow | Group by proximity; cards only for separate objects; never nested cards |
72
- | Nine nearly equal font sizes | Four to six sizes, clearly apart |
73
- | Invented social proof: logos, quotes, star rows, "10,000+ teams" | Real proof from the task, or none |
74
- | A grey box, a stretched photo or a CSS shape where a picture belongs | A real image, or a design that needs none |
75
- | A modal for a task that needs no interruption | Inline or progressive disclosure |
76
- | Coloured `border-left` or `border-right` stripes thicker than 1px on cards, callouts, alerts | A tint, an icon, or a heading that names the state |
77
- | Hard offset shadows (`4px 4px 0`) outside a deliberately brutalist product | The product's depth strategy |
78
- | Sketch-style SVG illustrations and grain filters as decoration | Real illustration, real screenshots, or none |
79
- | Stripe and grid-line backgrounds with no map, blueprint or canvas under them | A plain surface |
80
-
81
- ## 6. Generated dashboards
82
-
83
- Full detail in `app-screens`; the short list:
84
-
85
- | Pattern | Instead |
86
- |---|---|
87
- | Dark navy or saturated sidebar beside a light canvas, coloured active pill with a left bar | Sidebar on the page ground; a neutral active pill, or brighter text on dark |
88
- | "Welcome back, Alex" with a waving hand | A noun title ("Overview", the project's name) |
89
- | Four KPI cards, each with an icon in a tinted circle and a sparkline | One container split by dividers: label over value, no icon, no sparkline |
90
- | A green "+12.5%" on every KPI, including changes from zero | Deltas only where useful, with their window in words; grey for zero; "+4 (new)" from zero |
91
- | KPI values at 36 to 48px bold in the brand colour | 24 to 32px in the text colour |
92
- | Gradient area chart, smoothed spline, a dot on every point | A 2px straight line, little or no fill, no markers |
93
- | Rainbow palette, a hue per bar or per chart | One hue per chart; neutrals for the rest |
94
- | Fat donut with labels on the slices | A thin ring or a sorted bar list, values in a table beside it |
95
- | Zebra table under uppercase tracked headers, checkbox, avatar, chip and kebab on every row | Rules and alignment, sentence-case grey headers, one status mark, actions only where needed |
96
- | Left-aligned numbers in proportional digits | Right-aligned tabular figures |
97
- | Saturated status chips with white text | Pale tint with dark text of the same hue |
98
- | "No data" illustration in an empty chart | The zero line drawn and one sentence in the frame |
99
-
100
- ## 7. Copy
101
-
102
- Genre verbs and adjectives (unlock, supercharge, seamless, elevate, effortless, cutting-edge, all-in-one); "Not just X, it's Y"; tricolon headlines; "Get started" and "Learn more" where a precise verb exists; long dashes as a habit; lorem ipsum, "Acme", "John Doe", "User 1"; captions that describe the design. See `interface-design` references/writing.md.
103
-
104
- ## 8. Motion
105
-
106
- Identical fade-up on every block; a dozen staggered hero entrances; hover lift on every card; bounce or elastic easing by reflex; infinite loops that mean nothing; reveals that fail and leave a blank band; animation on actions repeated many times a day. See `motion-design`.
107
-
108
- ## 9. Why removal is not enough
109
-
110
- A page with every pattern removed and nothing in their place is an empty page with good manners, and anyone could guess it from the category plus this list. The patterns were filling a gap where a decision should have been. Fill that gap first: the content, the product's own objects and data, the one thing the screen is for, made large.
111
-
112
- Sources: adapted from Leonxlnx/taste-skill references/tells.md and app-screens.md (MIT, changed: house-style bans turned into defaults that yield to the project; no inspector statuses), the generated-design traits in the frontend-design skill of anthropics/claude-plugins-official (Apache-2.0, changed: condensed into table rows) and pbakaus/impeccable craft-floor (Apache-2.0, changed: rewritten as table rows).
1
+ # The dated registry of AI-look patterns
2
+
3
+ Read this when scanning a diff or a screenshot for patterns that make an interface read as generated. Last reviewed October 2026.
4
+
5
+ A pattern here is a default, not a crime. Most began as good ideas on good sites and became tells by being produced everywhere without a reason. That is why the list is dated: every published "use this instead" list becomes the next wave within months, so the replacements below are procedures (derive from the content, the product, the project's system), not specific fonts or colours.
6
+
7
+ Everything here yields to the project's own design system and to explicit task wording (see the main skill).
8
+
9
+ ## 1. First wave (2023 to 2024)
10
+
11
+ | Pattern | Instead |
12
+ |---|---|
13
+ | Violet or indigo gradients on heroes, buttons and glows | Flat colour from the product's palette |
14
+ | Gradient-filled headline text | Solid text; emphasis from weight or size |
15
+ | Glass panels: backdrop blur, translucent cards, used as decoration | Opaque surfaces one tone step from the ground |
16
+ | Glowing or gradient "Get started" button | A flat button named for its action |
17
+ | Soft grey drop shadow under every card | A border or tone step; shadows only on floating layers |
18
+ | Three identical feature cards, each with an icon in a rounded square | A composition built from the actual content; different weights for different importance |
19
+ | Emoji as icons or bullets | Words, or one consistent icon set |
20
+ | Centred headline, subtitle, two buttons, screenshot below | A first screen built around the product's most characteristic thing |
21
+ | The same default typeface on every generated page | A face chosen for the product, or the project's own |
22
+
23
+ ## 2. Second wave (2025)
24
+
25
+ | Pattern | Instead |
26
+ |---|---|
27
+ | Eyebrow: a tiny tracked uppercase label above every heading | Fold the information into the heading, or delete it |
28
+ | Pill badge above the hero headline ("New", "Beta", "Introducing") | Say it in the supporting sentence |
29
+ | One word of a headline in italic serif, colour or underline | One face, one colour; the words carry the emphasis |
30
+ | Bento grid of rounded tiles as the feature section | A section composed for its content |
31
+ | Near-black ground with one neon accent and a glow | A considered dark palette, no glow |
32
+ | Floating rounded pill navigation with blur | A plain bar: name, a few links, one action |
33
+ | Fake dashboard hero made of grey bars and donut charts | A real fragment of the product's interface, or no image |
34
+ | Decorative pulsing status dot ("Available", "Live") | Remove, unless it reports a real status |
35
+ | Fade-and-rise on every section | One authored moment, or none |
36
+
37
+ ## 3. Third wave (2025 to 2026): the fix that became the look
38
+
39
+ The published remedy for the first two waves was "warm it up and make it editorial". Models adopted it wholesale, and it is now one of the most recognisable generated looks.
40
+
41
+ | Pattern | Instead |
42
+ |---|---|
43
+ | Warm cream ground (near #F4F1EA) with a terracotta, rust or clay accent (often near #D97757, the Claude interface accent, so on a customer product it reads as a tell) and a high-contrast serif display | A palette from the product's own world |
44
+ | Serif display type as the shortcut to "premium" | A face chosen for the product |
45
+ | Broadsheet cosplay: hairline rules everywhere, zero radius, dense newspaper columns | Structure from space and tone; rules only where a table needs them |
46
+ | Performative labels: "Field notes", "Quietly trusted by", "On our desks" | Plain section names |
47
+
48
+ ## 4. Template chrome that appears whatever the subject
49
+
50
+ | Pattern | Instead |
51
+ |---|---|
52
+ | Tracked all-caps label above every heading | Sentence case at a readable size, next to what it describes |
53
+ | Meta strings joined with middle dots ("A · B · C") everywhere | Separate fields, or a sentence |
54
+ | Labels built as "WORD, fragment" with a spaced long dash | Plain labels |
55
+ | Tinted near-black (#0B0B0B, #111) standing in for black on every page | The project's ink colour, chosen once |
56
+ | Monospace for small data labels and captions as a "technical" voice | The text face; tabular figures where numbers align; monospace for code and IDs |
57
+ | An arrow glyph appended to every link and button | Plain link text; arrows only where direction means something |
58
+ | Index numbering (01 / 02 / 03, "Step 02") on content that is not a sequence | Order by position or size; a real ordered list when order matters |
59
+ | Agency micro-meta: local time, coordinates, weather, version stamps | Remove |
60
+ | Design-tool chrome as ornament: crosshairs, crop marks, dashed guides, rulers | Remove |
61
+
62
+ ## 5. Structural patterns
63
+
64
+ | Pattern | Instead |
65
+ |---|---|
66
+ | A full-sentence headline at display size running three or four lines | A title of about five words; the rest goes below |
67
+ | Stock section order: hero, logos, features, testimonial, pricing, call to action | The order of the argument |
68
+ | Every section the same layout family | Different composition per section |
69
+ | Everything centred | Left-aligned by default; centre at most one moment |
70
+ | One medium radius (12 to 16px) on everything regardless of hierarchy | A radius scale chosen once, nested concentrically |
71
+ | Content chopped into identical rounded cards with the same soft shadow | Group by proximity; cards only for separate objects; never nested cards |
72
+ | Nine nearly equal font sizes | Four to six sizes, clearly apart |
73
+ | Invented social proof: logos, quotes, star rows, "10,000+ teams" | Real proof from the task, or none |
74
+ | A grey box, a stretched photo or a CSS shape where a picture belongs | A real image, or a design that needs none |
75
+ | A modal for a task that needs no interruption | Inline or progressive disclosure |
76
+ | Coloured `border-left` or `border-right` stripes thicker than 1px on cards, callouts, alerts | A tint, an icon, or a heading that names the state |
77
+ | Hard offset shadows (`4px 4px 0`) outside a deliberately brutalist product | The product's depth strategy |
78
+ | Sketch-style SVG illustrations and grain filters as decoration | Real illustration, real screenshots, or none |
79
+ | Stripe and grid-line backgrounds with no map, blueprint or canvas under them | A plain surface |
80
+
81
+ ## 6. Generated dashboards
82
+
83
+ Full detail in `app-screens`; the short list:
84
+
85
+ | Pattern | Instead |
86
+ |---|---|
87
+ | Dark navy or saturated sidebar beside a light canvas, coloured active pill with a left bar | Sidebar on the page ground; a neutral active pill, or brighter text on dark |
88
+ | "Welcome back, Alex" with a waving hand | A noun title ("Overview", the project's name) |
89
+ | Four KPI cards, each with an icon in a tinted circle and a sparkline | One container split by dividers: label over value, no icon, no sparkline |
90
+ | A green "+12.5%" on every KPI, including changes from zero | Deltas only where useful, with their window in words; grey for zero; "+4 (new)" from zero |
91
+ | KPI values at 36 to 48px bold in the brand colour | 24 to 32px in the text colour |
92
+ | Gradient area chart, smoothed spline, a dot on every point | A 2px straight line, little or no fill, no markers |
93
+ | Rainbow palette, a hue per bar or per chart | One hue per chart; neutrals for the rest |
94
+ | Fat donut with labels on the slices | A thin ring or a sorted bar list, values in a table beside it |
95
+ | Zebra table under uppercase tracked headers, checkbox, avatar, chip and kebab on every row | Rules and alignment, sentence-case grey headers, one status mark, actions only where needed |
96
+ | Left-aligned numbers in proportional digits | Right-aligned tabular figures |
97
+ | Saturated status chips with white text | Pale tint with dark text of the same hue |
98
+ | "No data" illustration in an empty chart | The zero line drawn and one sentence in the frame |
99
+
100
+ ## 7. Copy
101
+
102
+ Genre verbs and adjectives (unlock, supercharge, seamless, elevate, effortless, cutting-edge, all-in-one); "Not just X, it's Y"; tricolon headlines; "Get started" and "Learn more" where a precise verb exists; long dashes as a habit; lorem ipsum, "Acme", "John Doe", "User 1"; captions that describe the design. See `interface-design` references/writing.md.
103
+
104
+ ## 8. Motion
105
+
106
+ Identical fade-up on every block; a dozen staggered hero entrances; hover lift on every card; bounce or elastic easing by reflex; infinite loops that mean nothing; reveals that fail and leave a blank band; animation on actions repeated many times a day. See `motion-design`.
107
+
108
+ ## 9. Why removal is not enough
109
+
110
+ A page with every pattern removed and nothing in their place is an empty page with good manners, and anyone could guess it from the category plus this list. The patterns were filling a gap where a decision should have been. Fill that gap first: the content, the product's own objects and data, the one thing the screen is for, made large.
111
+
112
+ Sources: adapted from Leonxlnx/taste-skill references/tells.md and app-screens.md (MIT, changed: house-style bans turned into defaults that yield to the project; no inspector statuses), the generated-design traits in the frontend-design skill of anthropics/claude-plugins-official (Apache-2.0, changed: condensed into table rows) and pbakaus/impeccable craft-floor (Apache-2.0, changed: rewritten as table rows).
@@ -1,85 +1,85 @@
1
- ---
2
- name: clean-commits
3
- description: Use when committing work in the code step: stage only what the task needs, keep secrets and debug leftovers out, write messages in the project's style, and commit on the current branch without pushing, switching branches or rewriting history.
4
- ---
5
-
6
- # Clean commits
7
-
8
- The code step ends with your work committed on the current branch. TAMsense pushes the branch and opens the pull request; you do neither.
9
-
10
- ## Hard limits
11
-
12
- - Commit on the branch that is checked out. Do not create, switch or delete branches.
13
- - Do not push, open pull requests, or post anything to the hosting service.
14
- - Do not rewrite history: no `commit --amend`, `rebase`, `reset` of existing commits, `push --force`, or `filter-branch`. To undo something already committed, add a new commit.
15
- - Do not skip hooks or signing (`--no-verify`, `-c commit.gpgsign=false`) and do not change git config. If a hook fails, fix what it reports. If the commit cannot be made for an environment reason (a hook needs a service that is not available, no git identity, signing not set up), leave the work staged and explain exactly what failed in the report.
16
- - Several repositories in the working folder: commit in each one you changed, and only in those.
17
-
18
- ## Before staging
19
-
20
- ```
21
- git status
22
- git diff
23
- ```
24
-
25
- Go through every changed and untracked file:
26
-
27
- - **Belongs to the task?** Leave out unrelated edits, formatting churn and files you did not mean to change. Changes that were there before your run are not yours: do not commit them.
28
- - **Debug leftovers?** Remove `console.log`, `print`, `[DEBUG-` tags, commented-out code, temporary scripts and scratch files.
29
- - **Secrets?** Never commit `.env` files, keys, tokens, passwords, certificates, credentials in config, or real customer data in fixtures. If a secret is already in a file you changed, do not commit it; report it.
30
- - **Generated or large files?** Commit build output, coverage reports, caches or binaries only if the project already tracks them. Regenerate generated code the way the project does rather than editing it by hand.
31
- - **Lock files:** they change only when you deliberately changed dependencies, and only the lock file of the project's package manager.
32
-
33
- ## Staging
34
-
35
- Stage specific paths, not everything:
36
-
37
- ```
38
- git add src/billing/tax.ts src/billing/tax.test.ts
39
- git diff --staged
40
- ```
41
-
42
- Read the staged diff once more. `git add -A` or `git add .` is fine only after `git status` shows nothing but your intended changes.
43
-
44
- ## How many commits
45
-
46
- - One commit for the task is fine.
47
- - Several commits help when the work has separate logical steps (a refactor the feature needs, then the feature; a migration, then the code using it). Each commit should build and pass tests on its own when practical.
48
- - In a rework, one commit per addressed comment or one commit for the round; both are fine.
49
-
50
- ## The message
51
-
52
- Follow the project's style: look at `git log --oneline -20` and any commit rules in CONTRIBUTING or the commit lint config (Conventional Commits, ticket prefixes, language, capitalisation).
53
-
54
- Without a visible convention:
55
-
56
- ```
57
- Default VAT country to the shop's country for guest invoices
58
-
59
- Customers without a country crashed invoice creation: taxRate() looked
60
- up undefined in RATES and returned NaN. Use the shop country instead,
61
- as the spec's rule 4 says.
62
- ```
63
-
64
- - Subject: imperative, says what changes, about 50 to 72 characters, no trailing period.
65
- - Body when the reason is not obvious: why the change is needed, and for bug fixes the root cause.
66
- - Describe the change, not the process: avoid "as requested", "fix review", "WIP".
67
-
68
- ## After committing
69
-
70
- ```
71
- git status
72
- git log --oneline -5
73
- ```
74
-
75
- `git status` should be clean, or the remaining files should be ones you deliberately left out (explain them in the report). Confirm the commit is on the expected branch.
76
-
77
- ## Common mistakes
78
-
79
- | Mistake | Instead |
80
- |---|---|
81
- | `git add -A` with stray files in the tree | Check `git status`, stage paths. |
82
- | Committing an `.env` or a key "just for testing" | Never; use the project's example env file. |
83
- | Amending an earlier commit to tidy history | Add a new commit. |
84
- | Bypassing a failing hook | Fix the reported problem, or report why it cannot pass here. |
85
- | Pushing "to save the work" | TAMsense pushes; you only commit. |
1
+ ---
2
+ name: clean-commits
3
+ description: Use when committing work in the code step: stage only what the task needs, keep secrets and debug leftovers out, write messages in the project's style, and commit on the current branch without pushing, switching branches or rewriting history.
4
+ ---
5
+
6
+ # Clean commits
7
+
8
+ The code step ends with your work committed on the current branch. TAMsense pushes the branch and opens the pull request; you do neither.
9
+
10
+ ## Hard limits
11
+
12
+ - Commit on the branch that is checked out. Do not create, switch or delete branches.
13
+ - Do not push, open pull requests, or post anything to the hosting service.
14
+ - Do not rewrite history: no `commit --amend`, `rebase`, `reset` of existing commits, `push --force`, or `filter-branch`. To undo something already committed, add a new commit.
15
+ - Do not skip hooks or signing (`--no-verify`, `-c commit.gpgsign=false`) and do not change git config. If a hook fails, fix what it reports. If the commit cannot be made for an environment reason (a hook needs a service that is not available, no git identity, signing not set up), leave the work staged and explain exactly what failed in the report.
16
+ - Several repositories in the working folder: commit in each one you changed, and only in those.
17
+
18
+ ## Before staging
19
+
20
+ ```
21
+ git status
22
+ git diff
23
+ ```
24
+
25
+ Go through every changed and untracked file:
26
+
27
+ - **Belongs to the task?** Leave out unrelated edits, formatting churn and files you did not mean to change. Changes that were there before your run are not yours: do not commit them.
28
+ - **Debug leftovers?** Remove `console.log`, `print`, `[DEBUG-` tags, commented-out code, temporary scripts and scratch files.
29
+ - **Secrets?** Never commit `.env` files, keys, tokens, passwords, certificates, credentials in config, or real customer data in fixtures. If a secret is already in a file you changed, do not commit it; report it.
30
+ - **Generated or large files?** Commit build output, coverage reports, caches or binaries only if the project already tracks them. Regenerate generated code the way the project does rather than editing it by hand.
31
+ - **Lock files:** they change only when you deliberately changed dependencies, and only the lock file of the project's package manager.
32
+
33
+ ## Staging
34
+
35
+ Stage specific paths, not everything:
36
+
37
+ ```
38
+ git add src/billing/tax.ts src/billing/tax.test.ts
39
+ git diff --staged
40
+ ```
41
+
42
+ Read the staged diff once more. `git add -A` or `git add .` is fine only after `git status` shows nothing but your intended changes.
43
+
44
+ ## How many commits
45
+
46
+ - One commit for the task is fine.
47
+ - Several commits help when the work has separate logical steps (a refactor the feature needs, then the feature; a migration, then the code using it). Each commit should build and pass tests on its own when practical.
48
+ - In a rework, one commit per addressed comment or one commit for the round; both are fine.
49
+
50
+ ## The message
51
+
52
+ Follow the project's style: look at `git log --oneline -20` and any commit rules in CONTRIBUTING or the commit lint config (Conventional Commits, ticket prefixes, language, capitalisation).
53
+
54
+ Without a visible convention:
55
+
56
+ ```
57
+ Default VAT country to the shop's country for guest invoices
58
+
59
+ Customers without a country crashed invoice creation: taxRate() looked
60
+ up undefined in RATES and returned NaN. Use the shop country instead,
61
+ as the spec's rule 4 says.
62
+ ```
63
+
64
+ - Subject: imperative, says what changes, about 50 to 72 characters, no trailing period.
65
+ - Body when the reason is not obvious: why the change is needed, and for bug fixes the root cause.
66
+ - Describe the change, not the process: avoid "as requested", "fix review", "WIP".
67
+
68
+ ## After committing
69
+
70
+ ```
71
+ git status
72
+ git log --oneline -5
73
+ ```
74
+
75
+ `git status` should be clean, or the remaining files should be ones you deliberately left out (explain them in the report). Confirm the commit is on the expected branch.
76
+
77
+ ## Common mistakes
78
+
79
+ | Mistake | Instead |
80
+ |---|---|
81
+ | `git add -A` with stray files in the tree | Check `git status`, stage paths. |
82
+ | Committing an `.env` or a key "just for testing" | Never; use the project's example env file. |
83
+ | Amending an earlier commit to tidy history | Add a new commit. |
84
+ | Bypassing a failing hook | Fix the reported problem, or report why it cannot pass here. |
85
+ | Pushing "to save the work" | TAMsense pushes; you only commit. |
@@ -1,107 +1,107 @@
1
- ---
2
- name: design-review
3
- description: Use to judge the visual quality of changed UI, before finishing UI work in a code step or when reviewing a branch. Renders changed screens headless at desktop, tablet and phone widths with empty, loading, error and long-content states, critiques the screenshots, then fixes (code step) or reports with evidence (review step).
4
- ---
5
-
6
- # Design review
7
-
8
- Correct is not the same as crafted. Generated UI usually renders, aligns and does not clash, yet nothing was decided: no focal point, flat hierarchy, the same card everywhere, missing states. This review finds where the interface defaulted instead of decided, weighs what each problem costs the user, and either fixes it (code step) or reports it with evidence (review step).
9
-
10
- It judges pictures, not intentions. Reading your own CSS, you see what you meant; a screenshot shows what is there.
11
-
12
- ## Two modes
13
-
14
- - **Code step** (you built or changed the UI): run this before finishing, fix what it finds, re-render, repeat. Three rounds at most.
15
- - **Review or test step**: check the branch against its base. Never change product code. Temporary scripts and screenshots go in a temp directory outside the repository. Finish by calling `submit_verdict` once with `passed` and the report.
16
-
17
- Nobody answers questions during the run. Where intent is unclear, state your assumption in the report and judge against it.
18
-
19
- ## Step 1: Scope
20
-
21
- - List the UI files changed against the base branch (`git diff --name-only <base>...HEAD`) and map them to the routes, screens or components that render them. The review covers those screens and nothing the branch did not touch.
22
- - Read the task or PR description for what the change is meant to do.
23
-
24
- ## Step 2: Reconstruct the design language
25
-
26
- Before judging, find what governs these screens (see `interface-design` step 1) and write:
27
-
28
- ```
29
- Screens: /billing, /billing/invoices/:id
30
- Design sources: DESIGN.md, src/styles/tokens.css, components/ui
31
- Decisions found: sentence case, 8px radius, borders not shadows, one blue accent, 14px body
32
- Sibling screens: /settings/members (table, empty state)
33
- Exceptions: none documented
34
- ```
35
-
36
- You review against the product's own intent, not a generic ideal. A deliberately dense tool is not failing for being dense. A pattern the design system uses is a decision, not a defect, even if `avoiding-generic-ai-design` lists it.
37
-
38
- ## Step 3: Render
39
-
40
- Follow [references/screenshot-procedure.md](references/screenshot-procedure.md):
41
-
42
- - Start the app and drive it headless as `ui-testing` describes (its headless check script, outputs in a temp folder). The browser is recorded for the task: name the render after the variant and the question, and mark each state.
43
- - For each changed screen: 1440, 768 and 390px wide, first screen and full page.
44
- - Key states: empty, loading, error, long content (worst-case data), plus hover and keyboard focus on the main controls, and dark mode if the product has it.
45
- - When the change restyles an existing screen, compare with untouched sibling screens and with the base branch's code (`git diff <base>...HEAD` on the styles); do not switch branches in the working tree.
46
-
47
- If the app cannot run or no browser is available, review from code, mark every visual finding as inferred, and say in the report that the rendered check did not run and why.
48
-
49
- ## Step 4: Look
50
-
51
- Open every screenshot (the Read tool shows images). First the whole, then details, following [references/critique-passes.md](references/critique-passes.md):
52
-
53
- 1. **The whole.** One second, then five: what is this screen, what is it for, what do I do? Squint: do two or three masses lead? Cover the product name: could this belong to any product?
54
- 2. **The lenses**, one at a time: hierarchy; typography and colour; surfaces and depth; layout, edges and rhythm; states and polish; content and honesty; phone composition; consistency with the design system and sibling screens.
55
- 3. **Mechanical checks** on the changed code: `web-interface-guidelines`, `interface-polish` rules, contrast of new colour pairs, `accessibility` basics.
56
-
57
- ## Step 5: Keep only findings with evidence
58
-
59
- Every candidate finding needs:
60
-
61
- - **Evidence**: the screenshot it shows in (file name, width, state) or a `file:line` contract violation: a documented design decision or token that reaches this screen, and the code that breaks it.
62
- - **Cost**: why it hurts the user or makes the screen read as generic. If you cannot say why, it is taste: drop it.
63
- - **One correction**: the specific change, named in the project's own tokens and components ("use `Button variant=secondary`", "gap from `--space-4`, not 13px").
64
-
65
- Then try to falsify each one: re-open the source, check whether the difference is deliberate (a documented exception, a sibling screen doing the same), whether it lies outside the changed lines, whether another finding already covers the same root cause. Delete what does not survive.
66
-
67
- Do not raise: personal preference where the choice is coherent and well executed; bold choices that match the stated intent; anything the design system ratifies; lint or formatting concerns; pre-existing problems on screens the branch did not touch (mention them once under "Outside scope" at most).
68
-
69
- ## Step 6: Severity and verdict
70
-
71
- - **Blocker**: the screen is broken or misleading for its user, or reads as unfinished: content clipped or overlapping, an action unreachable on a phone, sideways scroll, text below contrast, keyboard focus invisible, a missing loading, empty or error state for data the screen fetches, invented data or proof shown as real, a hand-rolled control without keyboard support where the project has a component, a new look that ignores the established design system.
72
- - **Should fix**: a real craft gap a design lead would call out while the screen still works: no clear focal point, weak hierarchy, an accent used decoratively, a ragged row, an inconsistent radius or spacing value, missing hover or press feedback, a delta coloured up/down instead of good/bad.
73
- - **Note**: minor; mention once.
74
-
75
- Approval bar: the screen passes when it has no blockers, it uses the project's components and tokens, every data block has its states, and the phone layout works. Craft and taste gaps are reported as should-fix items and never fail a review step on their own.
76
-
77
- ## Step 7: Act
78
-
79
- **Code step.** Fix blockers, then should-fix items, from the decision rather than by nudging values (re-derive the focal point or the spacing, do not patch around it). Re-render the affected screens and look again. Stop after three rounds or when a round finds nothing a stranger would notice. List anything left in the report.
80
-
81
- **Review step.** Do not change product code. Call `submit_verdict` once: `passed: false` if any blocker survives, otherwise `passed: true` (should-fix items and notes go in the report without failing the step).
82
-
83
- ## Report format
84
-
85
- ```
86
- Design review: <screens>, <widths and states rendered> (or: rendered check did not run, because ...)
87
- Design sources: <files>; assumptions: <...>
88
-
89
- Blockers
90
- 1. <what is wrong>. Evidence: <screenshot name, width, state> / <file:line>. Cost: <who it hurts and how>. Fix: <one correction in project terms>.
91
-
92
- Should fix
93
- 1. ...
94
-
95
- Notes
96
- - ...
97
-
98
- What works: <two or three things to keep>
99
- Not checked: <states or widths that could not be rendered, with the reason>
100
- Screenshots: <temp directory path>
101
- ```
102
-
103
- Prioritize: hierarchy and focal point, then type and colour, then surfaces, layout and rhythm, then states and polish, then content. A short review naming the three things that hold the design back beats forty nitpicks.
104
-
105
- Related: `design-critic` agent (an independent second look), `interface-design`, `app-screens`, `avoiding-generic-ai-design`, `interface-polish`, `motion-design`, `web-interface-guidelines`, `ui-testing`, `accessibility`.
106
-
107
- Sources: adapted from Dammyjay93/interface-design design-review (MIT, changed: no render widget, verdict via submit_verdict, fixes only in code steps), ibelick/ui-skills improve-ui evidence and falsification rules (MIT, changed: no "ask which findings to plan" step; code steps fix, review steps report), Leonxlnx/taste-skill critique reference (MIT, changed: headless screenshots described in words instead of the bundled inspector) and pbakaus/impeccable audit and critique references (Apache-2.0, changed: rewritten, no detector, storage or ask steps).
1
+ ---
2
+ name: design-review
3
+ description: Use to judge the visual quality of changed UI, before finishing UI work in a code step or when reviewing a branch. Renders changed screens headless at desktop, tablet and phone widths with empty, loading, error and long-content states, critiques the screenshots, then fixes (code step) or reports with evidence (review step).
4
+ ---
5
+
6
+ # Design review
7
+
8
+ Correct is not the same as crafted. Generated UI usually renders, aligns and does not clash, yet nothing was decided: no focal point, flat hierarchy, the same card everywhere, missing states. This review finds where the interface defaulted instead of decided, weighs what each problem costs the user, and either fixes it (code step) or reports it with evidence (review step).
9
+
10
+ It judges pictures, not intentions. Reading your own CSS, you see what you meant; a screenshot shows what is there.
11
+
12
+ ## Two modes
13
+
14
+ - **Code step** (you built or changed the UI): run this before finishing, fix what it finds, re-render, repeat. Three rounds at most.
15
+ - **Review or test step**: check the branch against its base. Never change product code. Temporary scripts and screenshots go in a temp directory outside the repository. Finish by calling `submit_verdict` once with `passed` and the report.
16
+
17
+ Nobody answers questions during the run. Where intent is unclear, state your assumption in the report and judge against it.
18
+
19
+ ## Step 1: Scope
20
+
21
+ - List the UI files changed against the base branch (`git diff --name-only <base>...HEAD`) and map them to the routes, screens or components that render them. The review covers those screens and nothing the branch did not touch.
22
+ - Read the task or PR description for what the change is meant to do.
23
+
24
+ ## Step 2: Reconstruct the design language
25
+
26
+ Before judging, find what governs these screens (see `interface-design` step 1) and write:
27
+
28
+ ```
29
+ Screens: /billing, /billing/invoices/:id
30
+ Design sources: DESIGN.md, src/styles/tokens.css, components/ui
31
+ Decisions found: sentence case, 8px radius, borders not shadows, one blue accent, 14px body
32
+ Sibling screens: /settings/members (table, empty state)
33
+ Exceptions: none documented
34
+ ```
35
+
36
+ You review against the product's own intent, not a generic ideal. A deliberately dense tool is not failing for being dense. A pattern the design system uses is a decision, not a defect, even if `avoiding-generic-ai-design` lists it.
37
+
38
+ ## Step 3: Render
39
+
40
+ Follow [references/screenshot-procedure.md](references/screenshot-procedure.md):
41
+
42
+ - Start the app and drive it headless as `ui-testing` describes (its headless check script, outputs in a temp folder). The browser is recorded for the task: name the render after the variant and the question, and mark each state.
43
+ - For each changed screen: 1440, 768 and 390px wide, first screen and full page.
44
+ - Key states: empty, loading, error, long content (worst-case data), plus hover and keyboard focus on the main controls, and dark mode if the product has it.
45
+ - When the change restyles an existing screen, compare with untouched sibling screens and with the base branch's code (`git diff <base>...HEAD` on the styles); do not switch branches in the working tree.
46
+
47
+ If the app cannot run or no browser is available, review from code, mark every visual finding as inferred, and say in the report that the rendered check did not run and why.
48
+
49
+ ## Step 4: Look
50
+
51
+ Open every screenshot (the Read tool shows images). First the whole, then details, following [references/critique-passes.md](references/critique-passes.md):
52
+
53
+ 1. **The whole.** One second, then five: what is this screen, what is it for, what do I do? Squint: do two or three masses lead? Cover the product name: could this belong to any product?
54
+ 2. **The lenses**, one at a time: hierarchy; typography and colour; surfaces and depth; layout, edges and rhythm; states and polish; content and honesty; phone composition; consistency with the design system and sibling screens.
55
+ 3. **Mechanical checks** on the changed code: `web-interface-guidelines`, `interface-polish` rules, contrast of new colour pairs, `accessibility` basics.
56
+
57
+ ## Step 5: Keep only findings with evidence
58
+
59
+ Every candidate finding needs:
60
+
61
+ - **Evidence**: the screenshot it shows in (file name, width, state) or a `file:line` contract violation: a documented design decision or token that reaches this screen, and the code that breaks it.
62
+ - **Cost**: why it hurts the user or makes the screen read as generic. If you cannot say why, it is taste: drop it.
63
+ - **One correction**: the specific change, named in the project's own tokens and components ("use `Button variant=secondary`", "gap from `--space-4`, not 13px").
64
+
65
+ Then try to falsify each one: re-open the source, check whether the difference is deliberate (a documented exception, a sibling screen doing the same), whether it lies outside the changed lines, whether another finding already covers the same root cause. Delete what does not survive.
66
+
67
+ Do not raise: personal preference where the choice is coherent and well executed; bold choices that match the stated intent; anything the design system ratifies; lint or formatting concerns; pre-existing problems on screens the branch did not touch (mention them once under "Outside scope" at most).
68
+
69
+ ## Step 6: Severity and verdict
70
+
71
+ - **Blocker**: the screen is broken or misleading for its user, or reads as unfinished: content clipped or overlapping, an action unreachable on a phone, sideways scroll, text below contrast, keyboard focus invisible, a missing loading, empty or error state for data the screen fetches, invented data or proof shown as real, a hand-rolled control without keyboard support where the project has a component, a new look that ignores the established design system.
72
+ - **Should fix**: a real craft gap a design lead would call out while the screen still works: no clear focal point, weak hierarchy, an accent used decoratively, a ragged row, an inconsistent radius or spacing value, missing hover or press feedback, a delta coloured up/down instead of good/bad.
73
+ - **Note**: minor; mention once.
74
+
75
+ Approval bar: the screen passes when it has no blockers, it uses the project's components and tokens, every data block has its states, and the phone layout works. Craft and taste gaps are reported as should-fix items and never fail a review step on their own.
76
+
77
+ ## Step 7: Act
78
+
79
+ **Code step.** Fix blockers, then should-fix items, from the decision rather than by nudging values (re-derive the focal point or the spacing, do not patch around it). Re-render the affected screens and look again. Stop after three rounds or when a round finds nothing a stranger would notice. List anything left in the report.
80
+
81
+ **Review step.** Do not change product code. Call `submit_verdict` once: `passed: false` if any blocker survives, otherwise `passed: true` (should-fix items and notes go in the report without failing the step).
82
+
83
+ ## Report format
84
+
85
+ ```
86
+ Design review: <screens>, <widths and states rendered> (or: rendered check did not run, because ...)
87
+ Design sources: <files>; assumptions: <...>
88
+
89
+ Blockers
90
+ 1. <what is wrong>. Evidence: <screenshot name, width, state> / <file:line>. Cost: <who it hurts and how>. Fix: <one correction in project terms>.
91
+
92
+ Should fix
93
+ 1. ...
94
+
95
+ Notes
96
+ - ...
97
+
98
+ What works: <two or three things to keep>
99
+ Not checked: <states or widths that could not be rendered, with the reason>
100
+ Screenshots: <temp directory path>
101
+ ```
102
+
103
+ Prioritize: hierarchy and focal point, then type and colour, then surfaces, layout and rhythm, then states and polish, then content. A short review naming the three things that hold the design back beats forty nitpicks.
104
+
105
+ Related: `design-critic` agent (an independent second look), `interface-design`, `app-screens`, `avoiding-generic-ai-design`, `interface-polish`, `motion-design`, `web-interface-guidelines`, `ui-testing`, `accessibility`.
106
+
107
+ Sources: adapted from Dammyjay93/interface-design design-review (MIT, changed: no render widget, verdict via submit_verdict, fixes only in code steps), ibelick/ui-skills improve-ui evidence and falsification rules (MIT, changed: no "ask which findings to plan" step; code steps fix, review steps report), Leonxlnx/taste-skill critique reference (MIT, changed: headless screenshots described in words instead of the bundled inspector) and pbakaus/impeccable audit and critique references (Apache-2.0, changed: rewritten, no detector, storage or ask steps).