ワンクリックで
badge-list-consistency
Badge/notification counts must use identical permissions and be a subset of the list view they link to
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Badge/notification counts must use identical permissions and be a subset of the list view they link to
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Comprehensive code verification toolkit for the KMP application. Run all quality checks (PHPUnit, Jest, Webpack, PHPCS, PHPStan) and get guidance on writing tests and verifying production readiness.
Pattern for adding safe conditional logic to user-editable templates without eval()
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
Manage plan tasks using the beads distributed, git-backed graph issue tracker. Supports creating, updating, closing tasks, managing dependencies, and syncing with git.
Automatically install and manage Agent Skills from GitHub repositories. Use when asked to "install a skill", "add a skill", "find skills", "browse skills", "get skills from GitHub", or when the user needs a specific capability that might exist as a community skill. Supports anthropics/skills, github/awesome-copilot, and custom GitHub repositories.
tools and instructions for performing a security audit and penetration testing on the KMP application.
| name | badge-list-consistency |
| description | Badge/notification counts must use identical permissions and be a subset of the list view they link to |
| domain | backend-ux-consistency |
| confidence | low |
| source | earned |
When a badge (notification count) links to a list view, the badge query and the list view query must stay in sync. If the badge counts items the list doesn't show (or vice versa), users see a number that doesn't match what they click into — a confusing and trust-eroding UX bug.
The badge count method and the list view action MUST use the same permission check. If the list view gates on 'uploadWaivers', the badge must also gate on 'uploadWaivers', not a similar-sounding 'needingWaivers'.
// Badge count (model method)
$branchIds = $member->getBranchIdsForAction('uploadWaivers', 'Waivers.GatheringWaivers');
// List view (controller action) — MUST match
$branchIds = $currentUser->getBranchIdsForAction('uploadWaivers', 'Waivers.GatheringWaivers');
The badge count should be a subset of the list view results, not an independent query. The list view may show a broader set (e.g., past + upcoming items), but the badge should highlight the urgent/actionable subset (e.g., past items needing attention).
If the badge counts items the list doesn't show, users will never find what the badge is pointing at. If the list shows items the badge doesn't count, that's fine — the badge is an attention signal, not a total count.
When possible, extract the core query conditions into a shared method (on the Table class) that both the badge and list view call, with the badge adding stricter filters on top.
// Table class
public function findNeedingWaivers(Query $query, array $options): Query {
// Base conditions shared by badge and list
}
// Badge: adds ->where(['end_date <' => $today])
// List: uses as-is or adds broader date range
Any time you implement a notification badge, count indicator, or summary number that links to a detail/list view. Verify on implementation AND on any subsequent changes to either the badge or the list query.