dotfiles/claude/skills/bax-10684-chat-member-display-bug/SKILL.md
BAX-10684(チャットメンバー表示の不整合バグ)の調査・修正に関するナレッジ。メンバー一覧画面と編集画面で表示が異なる問題、グループ削除後もメンバーがルームにアクセスできる問題に対応。「BAX-10684」「チャットメンバー表示の不整合」「グループ削除後もメンバーが見える」などの問題で使用。
npx skillsauth add octkp/base bax-10684-chat-member-display-bugInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
ビジネスチャットのルームで、メンバー一覧画面に表示されているメンバーがメンバー編集画面に表示されず、かつそのメンバーがルームを閲覧できてしまう問題。
| 画面 | API | フィルタ条件 |
|-----|-----|------------|
| メンバー一覧 | /api/v1/chat/room/users | chatmember_is_disabled = 0 のみ |
| メンバー編集 | /api/v1/chat/room/members | chatmember_is_disabled = 0 AND chatmember_related_to is null |
USER_DELETEDタスク(ユーザーグループ削除時)で、DisableMemberByUserUniqueCode関数がchatmember_related_to IS NULL条件を持っていたため、グループ経由で追加されたメンバーが無効化されていなかった。
backend/task/user_deleted.go
ユーザーグループが削除された場合、DisableChatMembersRelatedToUserGroupも呼んでグループ経由メンバーを無効化するように修正。
// ユーザーグループが削除された場合、グループ経由のメンバーも無効化する
if user.Type == model.UserTypeUserGroup {
members, err := t.ctr.BackgroundTaskRepo.DisableChatMembersRelatedToUserGroup(ctx, uuc, nil)
if err != nil {
return err
}
}
修正は今後の新規削除に対して有効。過去に発生した不整合データは別途修復が必要。
データ修復用SQLは references/data-repair-sql.md を参照。
backend/task/user_deleted.go - 修正済みbackend/task/user_group_chat_member_deleted.go - グループがルームから削除された時backend/task/user_group_member_deleted_task.go - グループからメンバーが削除された時backend/infrastructure/postgresql/background_task.go:306 - DisableChatMembersRelatedToUserGroupbackend/infrastructure/postgresql/room.go:281-303 - getChatMembers(編集画面用)frontend/composables/useMemberStore.ts - メンバーデータ取得frontend/components/dialog/MemberEdit.vue - メンバー編集画面| カラム | 説明 |
|-------|------|
| chatmember_unique_code | メンバーの一意コード |
| chatmember_chatroom_unique_code | ルームの一意コード |
| chatmember_target_unique_code | ユーザーまたはグループの一意コード |
| chatmember_related_to | グループ経由の場合、グループの一意コード。直追加はNULL |
| chatmember_is_disabled | 0=有効、1=無効(論理削除) |
| chatmember_type | user または user_group |
| chatmember_role | メンバーのロール |
documentation
base リポジトリ(~/base)の主要ディレクトリ(dotfiles / home / local / scripts / docs)の README.md と、リポジトリ直下の README.md を、実際のファイル構成に合わせて更新・新規作成するスキル。各ディレクトリの中身を実際に走査して内容を導出するので、設定追加・ディレクトリ移動のあとに走らせると README が現状と一致する。「READMEを更新して」「READMEを作り直して」「base のドキュメントを整える」「/base-readme」などのリクエストで使用。
development
旧 badev-knowledge-base リポの docs/{苗字}/ 配下を、許可リストの現役メンバー 4 人 (takano / tokita / yukioka / ushiroyama) に絞って ba2-workspace/docs/ に同期するスキル。旧リポを source of truth として、衝突時は新リポ側を旧リポで上書きする。コミット・プッシュは行わず、git add までで停止する。「badev-knowledge-base から同期して」「旧リポのナレッジを取り込んで」「badev-knowledge-sync を走らせて」「旧 docs を同期」などのリクエストでトリガー。
documentation
チケット番号(BAX-XXXX)を伝えるだけで、ba2-ticket-knowledge-logger が記録したナレッジドキュメント(README.md / LOG.md / PLAN.md)を全ユーザー・全カテゴリ横断で自動検索して読み込み、要約して提示するスキル。別セッションで過去の調査・実装内容を読み直したいときに使う。「BAX-10987」「BAX-10325のナレッジ読んで」「前に調べたBAX-XXXXの記録」「BAX-XXXXの続きをやりたい」「BAX-XXXX読み直して」などのリクエストでトリガー。
tools
チケット番号(BAX-XXXX)とカテゴリ(調査/実装/その他)を指定して、会話ログとまとめファイルを記録し、JIRAチケットにもコメントとしてナレッジを投稿するスキル。「BAX-10325の調査を記録」「実装にチケット作成」「会話ログを保存」などのリクエストで使用。