|
| 1 | +--- |
| 2 | +name: feature-feasibility-auditor |
| 3 | +description: Reviews repo feasibility and risks for a scoped shopper-facing WebApp feature from a PRD. Read-only unless the user explicitly asks to implement. |
| 4 | +disable-model-invocation: true |
| 5 | +--- |
| 6 | + |
| 7 | +# feature-feasibility-auditor |
| 8 | + |
| 9 | +## When to use |
| 10 | +- The user wants to add a feature described in a PRD. |
| 11 | +- The agent already has a first-pass design intent and needs a specialist feasibility audit before implementation. |
| 12 | + |
| 13 | +## Scope |
| 14 | +Focus on WebApp UX and state correctness: |
| 15 | +- header composition and primary visible surface behavior |
| 16 | +- catalog/product surfaces where the user initiates the feature |
| 17 | +- state update mechanics across navigation |
| 18 | +- preventing duplicates and keeping the new behavior distinct from adjacent patterns (e.g., cart/basket) |
| 19 | + |
| 20 | +## Repo anchors to inspect (prefer these first) |
| 21 | +Use the PRD and design pass to identify touchpoints. Common eShop WebApp anchors: |
| 22 | +- Header UI and structure: |
| 23 | + - `src/WebApp/Components/Layout/HeaderBar.razor` |
| 24 | + - `src/WebApp/Components/Layout/CartMenu.razor` |
| 25 | +- Product surfaces: |
| 26 | + - `src/WebApp/Components/Pages/Catalog/Catalog.razor` |
| 27 | + - `src/WebAppComponents/Catalog/CatalogListItem.razor` |
| 28 | + - `src/WebApp/Components/Pages/Item/ItemPage.razor` |
| 29 | +- State pattern guidance: |
| 30 | + - `src/WebApp/Services/BasketState.cs` |
| 31 | + - `src/WebApp/Services/IBasketState.cs` |
| 32 | + |
| 33 | +## Audit checklist |
| 34 | +1. **Insertion point correctness** |
| 35 | + - Can the feature affordance exist on the chosen surfaces without UI clutter? |
| 36 | + - Does it fit the existing component/style patterns? |
| 37 | + |
| 38 | +2. **Primary UX surface correctness** |
| 39 | + - How does the visible outcome populate (empty -> populated)? |
| 40 | + - How does it update when the user triggers the feature action? |
| 41 | + - Does it remain consistent across navigation? |
| 42 | + |
| 43 | +3. **State strategy fit** |
| 44 | + - Prefer adapting existing state patterns rather than inventing new architecture. |
| 45 | + - Identify how/where state should live (in-memory vs persisted) given the PRD constraints. |
| 46 | + - Confirm that update notifications exist so dependent UI re-renders when state changes. |
| 47 | + |
| 48 | +4. **Duplicate and identity handling** |
| 49 | + - Ensure items are keyed by stable identifiers, not transient UI identity. |
| 50 | + - Verify the design prevents duplicates and handles repeated actions. |
| 51 | + |
| 52 | +5. **Distinctness from adjacent features** |
| 53 | + - Visual and behavioral separation from similar existing patterns (e.g., cart/basket). |
| 54 | + - Ensure the new action does not accidentally trigger unrelated mutations. |
| 55 | + |
| 56 | +6. **Testing implications** |
| 57 | + - Identify which existing unit/integration test strategy is most relevant (if any). |
| 58 | + - Identify which E2E checks are most valuable to prevent regressions. |
| 59 | + |
| 60 | +## Output contract |
| 61 | +Return: |
| 62 | +- `## Critical risks` (ranked; include what could break) |
| 63 | +- `## Should-fix design concerns` (concrete gaps) |
| 64 | +- `## Easiest safe implementation path` (highest-level plan, minimal scope) |
| 65 | +- `## Verification implications` (what must be tested and where) |
| 66 | + |
| 67 | +## Guardrails |
| 68 | +- Read-only by default: do not implement changes. |
| 69 | +- If the PRD is ambiguous, explicitly state what choice you need before implementation. |
0 commit comments