Conversation
|
Visual regression reportCypress suite: ✅ Passing Visual diff:
Accessibility (axe): ✅ No violations. 📊 View full report — click a screenshot's ⚠ badge to see each violation boxed on the image, with the offending element named and contrast failures shown as color swatches. Baselines come from the |
9d02c38 to
196c515
Compare
196c515 to
f03ab99
Compare
There was a problem hiding this comment.
What about using the rules here for both commit and PR messages? https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md#rules (do not copy it literally, some rules are irrelevant here)
| - **Never narrate the diff** (`// added onKeyDown handler`, `// updated to support X`) — that's what `git log` is for. | ||
| - No commented-out code, no banner or separator comments, and **don't add comments to code you didn't change**. | ||
| - Lowercase `//` on its own line above what it explains, never trailing. Ticket ids only on a real external blocker: `// TODO INSTUI-1234: <what unblocks it>`. | ||
| - Leave the MIT license header alone — `notice/notice` in `eslint.config.mjs` enforces it. |
There was a problem hiding this comment.
eslint.config.mjs does not exist, the repo uses .oxlintrc.json
There was a problem hiding this comment.
Correct. deed11cc24 replaced ESLint with oxlint. The rule name is the same, only the file changed. Fixed to .oxlintrc.json.
| Prop docs are a JSDoc block with **one prose sentence** and no `@param`/`@type` — types come from TypeScript and `react-docgen`. See `packages/ui-alerts/src/Alert/props.ts`. | ||
|
|
There was a problem hiding this comment.
Alert/props.ts — broken reference, missing v1/v2
There was a problem hiding this comment.
The real paths are Alert/v1/props.ts and Alert/v2/props.ts, but neither fits. Several v2 props have multi-paragraph JSDoc. I removed the example and kept the rule.
f03ab99 to
2df4178
Compare
|
@matyasf That skill is about chat responses. Four of its 10 rules are already here, five do not apply to commits, and "number multi-step tasks" conflicts — that is the changelog body this PR removes. |
|
|
||
| 🤖 Generated with [Claude Code](https://claude.com/claude-code) | ||
|
|
||
| Co-Authored-By: Claude <noreply@anthropic.com> |
There was a problem hiding this comment.
In the PR description you claim drop the robot attribution line from commit messages.
I may consider removing the Co-Authored-By line too.
There was a problem hiding this comment.
i wanted to keep it for transparancy's sake, we can discuss later if we want to get rid of it completely
|
|
||
| ### Body | ||
|
|
||
| **Omit the body when the subject says it all.** When you do write one, it explains **why** — the constraint, the cause, the thing the diff cannot show. Never restate what changed. |
There was a problem hiding this comment.
I am not sure that any model is smart enough to understand the first sentence, how do they interpret "the subject says it all"? I think this is too abstract.
I would add two real life examples that help Claude's pattern recognition:
- if the commit message title is straightforward
- if it does not and therefore further explanation is needed in commit body
Claude derives patterns from examples easier than from general statements.
| - **Never reference the change itself.** `now`, `new`, `previously`, `used to`, `this change`, `the fix`, `as discussed`, `per review`, `we decided`, `recently` — these only mean something next to the diff. Name the constraint instead. | ||
| - **Never narrate the diff** (`// added onKeyDown handler`, `// updated to support X`) — that's what `git log` is for. | ||
| - No commented-out code, no banner or separator comments, and **don't add comments to code you didn't change**. | ||
| - Lowercase `//` on its own line above what it explains, never trailing. Ticket ids only on a real external blocker: `// TODO INSTUI-1234: <what unblocks it>`. |
There was a problem hiding this comment.
I saw Claude adding ticket references for other products' tickets from their JIRA board, I believe we should not allow this, it should only reference our tickets.
There was a problem hiding this comment.
good call, added guardrails
The rules live in two places so they hold whichever way someone arrives: CLAUDE.md for an agent session, docs/contributing for a human contributor. commitlint's headerPattern could not match a scoped subject like `fix(ui-button): ...`, so the conventional parser never ran and subject-max-length applied to nothing. Dropping the pattern lets the parser work, and the cap drops from 150 to 100 - 78 of the last 2000 subjects were over 100, and those are the ones listing every package touched instead of naming the change. Co-Authored-By: Claude <noreply@anthropic.com>
No longer on the team, so /pr should stop offering them as a reviewer. Co-Authored-By: Claude <noreply@anthropic.com>
2df4178 to
1502609
Compare

Summary
CLAUDE.md, with a human-facing version in thecontributor docs: explain why not what, one line, never reference the change itself.
commitlint.config.js'sparserOpts.headerPattern, which couldn't match a scopedsubject like
fix(ui-button): ..., so the conventional parser never ran andsubject-max-lengthapplied to nothing. Cap the subject at 100./commit's guidance on commit bodies, and drop the robot attribution linefrom commit messages.
/prreviewer roster — no longer on the team.Test Plan
subject-max-length: 100checked against history: 78 of the last 2000 subjects exceedit, and they're the ones enumerating every package touched instead of naming the change.
the preset's
body-max-line-length) — and that comma scopes likefix(ui-drawer-layout,ui-a11y-utils):still parse.Fixes INSTUI-5174
🤖 Generated with Claude Code