LogoSkills

inspector:bloc

BLoC/Cubit state runtime tracking

ํ•ญ๋ชฉ๋‚ด์šฉ
Invoke/inspector:bloc
Categorykobic-development
Complexitysimple
MCP Serversflutter-inspector

/inspector:bloc โ€” ํ™”๋ฉด ์ƒํƒœ ๋“ค์—ฌ๋‹ค๋ณด๊ธฐ#

ํ•œ๋งˆ๋””๋กœ#

์•ฑ์ด ์ง€๊ธˆ ํ™”๋ฉด ์•ˆ์—์„œ "์–ด๋–ค ์ƒํƒœ"์ธ์ง€(์˜ˆ: ๋กœ๊ทธ์ธ๋จ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋น„์–ด ์žˆ์Œ)๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋“ค์—ฌ๋‹ค๋ณด๋Š” ๋‹๋ณด๊ธฐ์ž…๋‹ˆ๋‹ค. ์ž๋™์ฐจ ๊ณ„๊ธฐํŒ์ฒ˜๋Ÿผ, ๊ฒ‰์œผ๋กœ ๋ณด์ด๋Š” ํ™”๋ฉด ๋’ค์—์„œ ๋ฌด์Šจ ๊ฐ’์ด ์ผœ์ง€๊ณ  ๊บผ์กŒ๋Š”์ง€ ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ยท์–ธ์ œ ์“ฐ๋‚˜์š”#

  • ๊ฐœ๋ฐœ์ž๋‚˜ QA ๋‹ด๋‹น์ž๊ฐ€ ์•ฑ์ด ์‹ค์ œ๋กœ ๋Œ์•„๊ฐ€๋Š” ์ค‘์— ํ™”๋ฉด ๋™์ž‘์„ ์ ๊ฒ€ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํŠนํžˆ ์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ ์”๋‹ˆ๋‹ค:
    • ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €๋Š”๋ฐ ํ™”๋ฉด์ด ๋ฐ”๋€Œ์ง€ ์•Š์„ ๋•Œ (์ƒํƒœ๊ฐ€ ์•ˆ ๋ฐ”๋€œ)
    • ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅธ ํ™”๋ฉด์ด ๋–  ์žˆ์„ ๋•Œ (์ด์ƒํ•œ ์ƒํƒœ)
    • ํ™”๋ฉด์ด ๊นœ๋นก์ด๊ฑฐ๋‚˜ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ž๊พธ ๋‹ค์‹œ ๊ทธ๋ ค์งˆ ๋•Œ

๋ฌด์—‡์„ ํ•ด์ฃผ๋‚˜์š”#

์•ฑ ์•ˆ์—์„œ ํ™”๋ฉด ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ€ํ’ˆ(BLoC/Cubit)๋“ค์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๊บผ๋‚ด์„œ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

  • ์ง€๊ธˆ ์‚ด์•„ ์žˆ๋Š” ํ™”๋ฉด ์ƒํƒœ ๋ถ€ํ’ˆ ๋ชฉ๋ก (์˜ˆ: AuthBloc, HomeBloc, CartCubit)
  • ํŠน์ • ๋ถ€ํ’ˆ์˜ ํ˜„์žฌ ์ƒํƒœ ๊ฐ’ (์˜ˆ: "๋กœ๋”ฉ ์™„๋ฃŒ, ์•„์ดํ…œ 15๊ฐœ")
  • ์ƒํƒœ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐ”๋€Œ์–ด ์™”๋Š”์ง€ ๋ณ€๊ฒฝ ์ด๋ ฅ
  • ์–ด๋–ค ๋™์ž‘(์ด๋ฒคํŠธ)๋“ค์ด ์ผ์–ด๋‚ฌ๋Š”์ง€ ์ด๋ฒคํŠธ ์ด๋ ฅ

์–ด๋–ป๊ฒŒ ์“ฐ๋‚˜์š”#

# ์ง€๊ธˆ ์‚ด์•„ ์žˆ๋Š” ํ™”๋ฉด ์ƒํƒœ ๋ถ€ํ’ˆ ๋ชฉ๋ก ๋ณด๊ธฐ
/inspector/bloc list

# ํŠน์ • ๋ถ€ํ’ˆ(HomeBloc)์˜ ํ˜„์žฌ ์ƒํƒœ ๋ณด๊ธฐ
/inspector/bloc state HomeBloc

# ํŠน์ • ๋ถ€ํ’ˆ(AuthBloc)์—์„œ ์ผ์–ด๋‚œ ๋™์ž‘(์ด๋ฒคํŠธ) ์ด๋ ฅ ๋ณด๊ธฐ
/inspector/bloc events AuthBloc

list๋Š” ์ „์ฒด ๋ชฉ๋ก, state๋Š” ํŠน์ • ๋ถ€ํ’ˆ์˜ ํ˜„์žฌ ๊ฐ’, events๋Š” ๊ทธ ๋ถ€ํ’ˆ์— ์–ด๋–ค ์ผ์ด ์žˆ์—ˆ๋Š”์ง€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์•ˆ์—์„œ ๋ฌด์Šจ ์ผ์ด ๋ฒŒ์–ด์ง€๋‚˜์š”#

๋ฌธ์ œ ์œ ํ˜•๋ณ„๋กœ ์ •ํ•ด์ง„ ์ˆœ์„œ๋Œ€๋กœ ์ ๊ฒ€ํ•ฉ๋‹ˆ๋‹ค.

  • ํ™”๋ฉด์ด ์•ˆ ๋ฐ”๋€” ๋•Œ: ๋ถ€ํ’ˆ์ด ์‹ค์ œ๋กœ ์žˆ๋Š”์ง€ โ†’ ๋™์ž‘์ด ๋ฐœ์ƒํ–ˆ๋Š”์ง€ โ†’ ์ƒํƒœ๊ฐ€ ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ ์ˆœ์„œ๋กœ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ์–ด๋””์„œ ๋ง‰ํ˜”๋Š”์ง€ ์ฐพ์Šต๋‹ˆ๋‹ค.
  • ์ด์ƒํ•œ ํ™”๋ฉด์ผ ๋•Œ: ํ˜„์žฌ ์ƒํƒœ ๊ฐ’์„ ํ™•์ธํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ๊ทธ ์ƒํƒœ๊นŒ์ง€ ์™”๋Š”์ง€ ๋ณ€๊ฒฝ ๊ณผ์ •์„ ๋˜์งš์–ด ๋ด…๋‹ˆ๋‹ค.
  • ํ™”๋ฉด์ด ์ž๊พธ ๋‹ค์‹œ ๊ทธ๋ ค์งˆ ๋•Œ: ๋™์ž‘์ด ๋„ˆ๋ฌด ์ž์ฃผ ์ผ์–ด๋‚˜๋Š”์ง€ ์ ๊ฒ€ํ•˜๊ณ , ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ์กฐ๊ฑด์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

โš™๏ธ ์ƒ์„ธ ์˜ต์…˜ยท์‹คํ–‰ ๋ช…์„ธ (๊ฐœ๋ฐœ์ž / AI ์—์ด์ „ํŠธ์šฉ)

Triggers#

  • State change tracking
  • BLoC event debugging
  • State inconsistency issues

MCP Tools#

bloc_list_active#

Returns a list of currently active BLoC/Cubit instances.

Response example:

{
   " blocs " : [
    { " type " :  " AuthBloc " ,  " state " :  " Authenticated " },
    { " type " :  " HomeBloc " ,  " state " :  " Loaded " },
    { " type " :  " CartCubit " ,  " state " :  " Empty " }
  ]
}

bloc_get_state#

Returns the current state of a specific BLoC.

Response example:

{
   " type " :  " HomeBloc " ,
   " state " : {
     " status " :  " loaded " ,
     " items " : 15,
     " selectedCategory " :  " all " 
   }
}

bloc_get_history#

Returns the state change history of a BLoC.

bloc_get_events#

Returns the event history.

Common Diagnostics#

State not updating#

1. bloc_list_active - >   Confirm BLoC exists
2. bloc_get_events - >   Confirm event was fired
3. bloc_get_history - >   Track state changes

Unexpected state#

1. bloc_get_state - >   Check current state
2. bloc_get_history - >   Track change process
3. Review event handler logic

Excessive BLoC rebuilds#

1. bloc_get_events - >   Check event frequency
2. Review buildWhen conditions
3. Check state comparison logic

Examples#

Check active BLoC list#

/inspector/bloc list

Check specific BLoC state#

/inspector/bloc state HomeBloc

Check event history#

/inspector/bloc events AuthBloc

References#

  • Detailed implementation: .claude/agents/flutter-inspector-bloc.md
  • Master inspector: .claude/commands/inspector.md