diff --git a/AGENTS.md b/AGENTS.md index 8d4efbdea5..f8a27bd6fd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -454,6 +454,8 @@ When reviewing code (or writing code that will be reviewed): - **Keep scope tight in design iterations** - When adjusting UI, avoid unrelated behavioral/SEO changes in the same commit unless explicitly requested. - **Fix the calculation, not the collapse UX** - When a bug is a wrong value in a truncated/collapsed summary (e.g. per-company tenure on the collapsed profile), correct only the computation: derive the value from the complete dataset while rendering the exact same subset and keeping "Show More" visibility identical. Do NOT change the collapse unit (e.g. capping by positions vs by company groups) or the Show-More gating source as a side effect — those are visible UX shifts. Decouple "data summed/grouped over the full set" from "items rendered": compute over the full list, render the original truncated slice. Assert collapsed↔expanded value parity in a test. - **Confirm target surface before implementing UI fixes** - If a bug report names a specific component or screen, update only that target unless expansion is explicitly requested. +- **The post composer has two audience/squad pickers — fix both** - Audience selection during post creation / link sharing is implemented twice: `AudienceChip` (`packages/shared/src/components/post/composer/AudienceChip.tsx`) inside `SmartComposerModal`, and `MultipleSourceSelect` (`packages/shared/src/components/post/write/MultipleSourceSelect.tsx`) on the `/squads/create` page. `CreatePostButton` (`packages/shared/src/components/post/write/CreatePostButton.tsx`) only opens the `SmartComposer` modal when `isLaptop && evaluateSmartComposer()` (the `featureSmartComposer` flag); on mobile/tablet, or when the experiment is off, it navigates to `/squads/create`, so a fix that only touches `AudienceChip` still shows the old behavior on mobile. When changing audience-picker UX, mirror it across both components (they intentionally share the same row-click-is-additive-toggle model). +- **For selectable rows, let the native `