From rkit
Embedded Challenge Protocol — 5-phase 21-question systematic problem validation before PDCA planning. Combines 6 validated frameworks: Wedell-Wedellsborg reframing, Garry Tan demand reality, Gary Klein pre-mortem, David Bland assumption mapping, Toyota Five Whys, McKinsey MECE. Triggers: reframe, challenge, office hours, problem validation, 리프레이밍, 문제 검증, リフレーミング, 問題検証, 问题验证, reencuadre, recadrage, Neuformulierung, riformulazione Do NOT use for: implementation tasks, code review, PDCA phase execution. Use this BEFORE /pdca plan for complex features.
npx claudepluginhub solitasroh/rkit --plugin rkitThis skill is limited to using the following tools:
> 5-phase 21-question problem validation. Run BEFORE `/pdca plan` for complex features.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
5-phase 21-question problem validation. Run BEFORE
/pdca planfor complex features.
| Argument | Description | Example |
|---|---|---|
{feature} | Feature name to reframe | /reframe uart-dma |
{feature} --mode full | Full mode: all 21 questions | /reframe uart-dma --mode full |
{feature} --mode standard | Standard mode: Q1-Q15 (default) | /reframe uart-dma --mode standard |
{feature} --mode quick | Quick mode: 7 core questions | /reframe uart-dma --mode quick |
| Mode | Questions | When to Use |
|---|---|---|
| Full (21) | Q1-Q21 | New features, architecture changes, high-risk work |
| Standard (15) | Q1-Q15 | Medium-scale tasks, code quality covered in review |
| Quick (7) | Q1,Q3,Q5,Q7,Q11,Q13,Q18 | Bug fixes, small improvements |
Six validated frameworks integrated into 5 phases:
| Framework | Source | Phase |
|---|---|---|
| Problem Reframing | Wedell-Wedellsborg (HBR 2017) | Phase 1 |
| Demand Reality + Narrowest Wedge | Garry Tan (gstack /office-hours) | Phase 1, 3 |
| Pre-Mortem | Gary Klein (HBR 2007) | Phase 2 |
| Assumption Mapping | David Bland (Strategyzer) | Phase 2 |
| Five Whys | Toyota Production System | Phase 3 |
| MECE Decomposition | McKinsey | Phase 3 |
If --mode not specified, use AskUserQuestion:
"Which reframe mode? Feature complexity determines depth."
- Full (21 questions) — new features, architecture changes
- Standard (15 questions) — medium tasks (default)
- Quick (7 questions) — bug fixes, small improvements
Auto-detect project domain (MCU/MPU/WPF) from project files. Domain determines reframing guides, MECE checklists, and assumption examples.
Execute questions sequentially using AskUserQuestion for each. Provide domain-specific hints and examples with each question.
Questions probe problem definition, demand reality, status quo cost, and alternative framing.
Q4 Domain-Specific Reframing Guide:
| Instead of asking... | Reframe to... |
|---|---|
| MCU: "How to make this ISR faster?" | "Should this work be in the ISR at all, or deferred?" |
| MCU: "How to fit in Flash?" | "What are we storing that's actually unnecessary?" |
| MPU: "How to add ioctl?" | "Is sysfs/configfs sufficient? Why is ioctl really needed?" |
| MPU: "Why does probe fail?" | "Does DT compatible string match? Are dependencies (clk, gpio, regulator) ready?" |
| WPF: "How to make WPF UI responsive?" | "Should this processing be in ViewModel or a background service?" |
| WPF: "Why is DataGrid slow?" | "Is virtualization enabled? Are 10,000 rows really needed?" |
Surfaces hidden assumptions, identifies Leap of Faith risks, runs pre-mortem analysis.
Domain-Specific Leap of Faith Examples:
| Domain | Common Unverified Assumptions |
|---|---|
| MCU | DMA handles this transfer rate without CPU, RTOS scheduler won't starve low-priority tasks, silicon errata doesn't affect this peripheral |
| MPU | Kernel API stable at this version, DMA buffer allocation guarantees contiguous physical memory, ioctl interface works as expected from user space, shared library ABI compatible |
| WPF | DataGrid handles 10K rows without UI lag, SerialPort behaves identically across all Windows versions, .NET 8 runtime exists on customer PCs |
Domain-Specific Pre-Mortem Scenarios:
| Domain | Representative Failures |
|---|---|
| MCU | Flash at 92% overflows during integration, eval board vs production board differences undetected, watchdog reset from unserviced timer |
| MPU | Kernel API change breaks driver build, probe failure leaves device unrecognized, user app/driver ioctl mismatch, shared library symbol collision |
| WPF | Customer PC .NET version mismatch, DPI scaling breaks layout, event subscription memory leak |
Traces root cause via Five Whys, checks MECE alternatives, defines narrowest wedge MVP.
Q10 Domain-Specific MECE Checklist:
| Domain | Alternative Categories to Consider |
|---|---|
| MCU | Existing HAL/SDK function? HW capability (HW CRC, DMA, Comparator)? Standard protocol (Modbus, CANopen)? Polling vs interrupt vs DMA? |
| MPU | Kernel built-in driver? sysfs/ioctl/netlink — which interface? Existing library (libgpiod, libi2c)? User space vs kernel space? |
| WPF | CommunityToolkit feature? NuGet package? .NET built-in API? Existing ResourceDictionary? |
Establishes numeric pass/fail criteria and measurement tools before any code is written.
Examines codebase consistency, dependency direction, error handling, concurrency, testability, API contracts.
Q16-Q21 Domain-Specific Details:
| Question | MCU | MPU | WPF |
|---|---|---|---|
| Q16 Consistency | HAL callback pattern? HAL_*_MspInit placement? | checkpatch.pl pass? platform_driver pattern? App directory structure? | MVVM pattern? [ObservableProperty] usage? |
| Q17 Dependencies | Application→Driver→HAL one-way? No ISR→App direct call? | User space→Kernel interface clear? ioctl/sysfs choice? | View→ViewModel→Model one-way? ViewModel doesn't reference View? |
| Q18 Error handling | Peripheral timeout recovery? HAL_StatusTypeDef check? | Syscall errno check? Driver probe failure handling? | try-catch scope? Serial communication timeout? |
| Q19 Concurrency | ISR↔main shared vars volatile? RTOS mutex/semaphore? | Kernel spinlock/mutex? User space thread sync? | UI thread↔background Dispatcher.Invoke? Serial rx thread? |
| Q20 Testability | HAL mockable? Register access isolated? | Driver logic testable without DT? | ViewModel unit testable? Commands executable without View? |
| Q21 API contract | Parameter range specified? Null pointer guard? | ioctl commands documented? Return value contract? | Public method XML comments? Event contracts? |
templates/reframe.template.mddocs/00-pm/{feature}.reframe.md[Reframe] {feature}Output summary comparison table (before/after reframe) and guide:
"Reframe complete. Run
/pdca plan {feature}— the plan will auto-reference this reframe document."
checkpatch.pl? Does it follow kernel coding style?dma_alloc_coherent vs kmalloc){Binding} (WPF) not {x:Bind} (UWP/WinUI only)?net8.0-windows TFM and <UseWPF>true</UseWPF>?Output Path: docs/00-pm/{feature}.reframe.md
/pdca plan/pdca plan checks for {feature}.reframe.md and loads it as context# Standard reframe (15 questions)
/reframe uart-dma
# Full reframe for architecture change
/reframe kernel-spi-driver --mode full
# Quick reframe for bug fix
/reframe serialport-timeout --mode quick