---
phase: 02-browse
plan: 03
type: execute
wave: 3
depends_on: [02-01, 02-02]
files_modified: []
autonomous: false
requirements: [NAV-01, NAV-02, NAV-03, NAV-04]

must_haves:
  truths:
    - "User has launched the TUI and confirmed navigation works end-to-end"
    - "All four NAV requirements are verified by a human interacting with the live app"
  artifacts: []
  key_links: []
---

<objective>
Human verification of the Phase 2 browse experience — confirm all four NAV requirements work as intended in the live TUI.

Purpose: Automated tests can confirm imports and method presence, but cannot verify that the TUI *feels* right: cursor movement, live filtering responsiveness, drill-down transitions, and breadcrumb updates all require a human eye in the running terminal app.

Output: User confirms (or reports issues with) the end-to-end browse experience.
</objective>

<execution_context>
@/Users/paritoshpatil/.claude/get-shit-done/workflows/execute-plan.md
@/Users/paritoshpatil/.claude/get-shit-done/templates/summary.md
</execution_context>

<context>
@.planning/ROADMAP.md
@.planning/phases/02-browse/02-02-SUMMARY.md
</context>

<tasks>

<task type="checkpoint:human-verify" gate="blocking">
  <name>Verify end-to-end TUI browse experience</name>
  <action>Human verifies all NAV requirements in the live running TUI</action>
  <what-built>
    Complete Phase 2 browse TUI:
    - DataTable with VIM navigation (j/k/gg/G) [NAV-01]
    - Live filter bar (/ to open, Escape to clear) [NAV-02]
    - Drill-down hierarchy: rooms → containers → items [NAV-03]
    - Breadcrumb trail updating at every level [NAV-04]
  </what-built>
  <how-to-verify>
    First, seed the database with sample data so there is something to browse:

    ```bash
    cd /Users/paritoshpatil/Personal/claude-projects/possession-terminal-2
    python3 - <<'EOF'
    from possession.db import init_db
    from possession.models import (
        create_room, create_container, create_category, create_item
    )
    db = init_db()
    r1 = create_room(db, "Garage")
    r2 = create_room(db, "Kitchen")
    c1 = create_container(db, "Tool Cabinet", r1)
    c2 = create_container(db, "Shelf", r1)
    c3 = create_container(db, "Junk Drawer", r2)
    cat1 = create_category(db, "Tools")
    cat2 = create_category(db, "Electronics")
    create_item(db, "Drill", "Black & Decker", r1, c1, cat1, "2023-01-15", 89.99)
    create_item(db, "Hammer", None, r1, c1, cat1)
    create_item(db, "Extension Cord", "25ft", r1, c2, cat2, cost=15.00)
    create_item(db, "Batteries", "AA x20", r2, c3, cat2, cost=12.50)
    create_item(db, "Screwdriver Set", None, r1, c1, cat1)
    print("Sample data created")
    EOF
    ```

    Then launch the TUI:
    ```bash
    python3 -m possession
    ```

    Verify each requirement:

    **NAV-01 — VIM Navigation:**
    1. The initial screen should show a list of rooms (Garage, Kitchen)
    2. Press `j` — cursor moves down to next room
    3. Press `k` — cursor moves back up
    4. With 2 rooms: press `G` — cursor jumps to last row; press `gg` (g twice quickly) — cursor jumps to first row

    **NAV-02 — Live Filter:**
    5. Navigate to the items view first: press Enter on Garage, then Enter on Tool Cabinet
    6. You should see Drill, Hammer, Screwdriver Set
    7. Press `/` — a filter input appears at the bottom
    8. Type "drill" — only "Drill" row remains visible
    9. Press Escape — filter clears, all 3 items return; filter input hides

    **NAV-03 — Drill-Down:**
    10. Press `q` to go back to containers list for Garage
    11. Press `q` again to go back to the rooms list
    12. Press Enter on Garage — containers (Tool Cabinet, Shelf) appear
    13. Press Enter on Shelf — Extension Cord appears (items in Shelf)
    14. Press `q` — returns to containers list; press `q` — returns to rooms list

    **NAV-04 — Breadcrumb:**
    15. At rooms list: breadcrumb shows "All Rooms"
    16. After entering Garage (containers view): breadcrumb shows "Garage"
    17. After entering Tool Cabinet (items view): breadcrumb shows "Garage > Tool Cabinet"
    18. After pressing q twice to return to rooms: breadcrumb shows "All Rooms" again
  </how-to-verify>
  <resume-signal>
    Type "approved" if all 4 NAV requirements work correctly, or describe any issues found (e.g. "filter not working", "breadcrumb not updating", "q exits app instead of going back").
  </resume-signal>
</task>

</tasks>

<verification>
This plan's verification IS the checkpoint above. No automated verification applies to the human review task.
</verification>

<success_criteria>
User types "approved" confirming:
1. j/k navigation moves cursor up and down (NAV-01)
2. gg/G jumps to first/last row (NAV-01)
3. / opens filter bar; typing narrows rows live; Escape clears (NAV-02)
4. Enter on room → containers; Enter on container → items; q goes back (NAV-03)
5. Breadcrumb updates at every level transition (NAV-04)
</success_criteria>

<output>
After user approval, create `.planning/phases/02-browse/02-03-SUMMARY.md` using the standard summary template. Then update STATE.md to mark Phase 2 complete.
</output>
