- Mark all 33 tasks complete in specs/001 tasks.md (85/85 tests passing) - Add NEXT_STEPS.md: spec 002 completion, shellcheck, README ui docs - Add docs/learnings/2026-03-02: BATS fixtures, UIAutomator XML parsing, KDE Connect graceful degradation, scrcpy headless, JSON output pattern
3.6 KiB
3.6 KiB
Task Breakdown: Android FS5 Device Management
Feature: 001-android-fs5-management Created: 2026-03-02 Status: Complete ✅
Phase 1: Project Setup
- T001 Create project skeleton:
.gitignore,.env.example,README.md,lib/,tests/dirs - T002 Create
.envfrom.env.examplewith device serialRD51QE202392 - T003 Verify bats-core and shellcheck available (
bats --version,shellcheck --version)
Phase 2: Foundational Library (lib/)
- T004 Create
lib/output.sh—out_human,out_json,out_error,out_successfunctions - T005 Create
lib/adb.sh—adb_check_device,adb_cmd,adb_get_prop,adb_shell,adb_log_op - T006 Create
lib/adb.sh—adb_push,adb_pullwith existence checks and--forcesupport
Phase 3: Tests (RED phase — must fail before implementation)
- T007 [US1] Write
tests/test_status.bats— tests forstatuscommand (connected, disconnected, --json) - T008 [US2] Write
tests/test_transfer.bats— tests for push/pull (basic, idempotent, --force, directory) - T009 [US3] Write
tests/test_app.bats— tests forapp list,app install,app uninstall - T010 [US4] Write
tests/test_shell.bats— tests forshellcommand passthrough - T011 [US5] Write
tests/test_logs.bats— tests forlogscommand (stream, --lines, --filter, --output) - T012 Verify ALL tests FAIL (RED phase confirmed) before writing
fs5entrypoint
Phase 4: Implementation — P1 User Stories
- T013 [US1] Create
fs5entrypoint: argument parsing,--help, config loading,statuscommand - T014 [US1] Implement
statuscommand: collect device props, battery, storage, format human + JSON output - T015 [US2] Implement
pushcommand: file existence check, transfer, idempotency guard, logging - T016 [US2] Implement
pullcommand: device file check, transfer, local overwrite guard, logging - T017 Verify T007 + T008 tests PASS (GREEN phase for P1)
Phase 5: Implementation — P2 User Stories
- T018 [US3] Implement
app listcommand: parsepm list packages, filter system/user, version lookup - T019 [US3] Implement
app installcommand: APK validation,adb install, package name confirmation - T020 [US3] Implement
app uninstallcommand:--forceguard,pm uninstall, logging - T021 [US4] Implement
shellcommand: passthrough toadb shell, stdin pipe support - T022 Verify T009 + T010 tests PASS (GREEN phase for P2)
Phase 6: Implementation — P3 User Stories
- T023 [US5] Implement
logscommand:adb logcatstream,--lines(dump mode),--filter,--output - T024 Verify T011 tests PASS (GREEN phase for P3)
Phase 7: Remote Control Extension (002-remote-control)
- T025 Implement
screencommand via scrcpy (mirror + headless mode) - T026 Implement
screenshotcommand (PNG capture, --json output) - T027 Implement
tap/swipe/key/typeinput commands - T028 Implement
launchcommand (start app by package name) - T029 Implement
ocrcommand (tesseract-based text extraction from screenshot) - T030 Implement
sms list/sms otpvia KDE Connect CLI - T031 Write
tests/test_remote_control.bats— screen/screenshot/tap/swipe/key/launch/ocr/sms - T032 Implement
ui dump/ui elements/ui find/ui tapvia UIAutomator XML - T033 Write
tests/test_ui.bats— ui subcommand suite (85 tests total, all passing)
Final Status
85/85 tests passing as of 2026-03-02. All P1, P2, P3 user stories from spec 001 complete. All remote control features from spec 002 complete.