Files
android-fs5/specs/001-android-fs5-management/tasks.md
T
Jane Alesi e6e5f34455 feat: add android-fs5 CLI toolset
- fs5 entrypoint with status, push, pull, app, shell, logs commands
- lib/adb.sh: ADB wrapper functions with idempotency and --force guards
- lib/output.sh: human + JSON output formatting via Python
- 33 bats tests (6 status, 9 transfer, 7 app, 5 shell, 6 logs) — all passing
- Zero shellcheck warnings
- .env-based config (device serial, log path)
- Spec-Driven Development artifacts in specs/001-android-fs5-management/

Device: exone GmbH FS5 (RD51QE202392, Android 9)
2026-03-02 15:55:09 +01:00

99 lines
3.8 KiB
Markdown

# Task Breakdown: Android FS5 Device Management
**Feature**: 001-android-fs5-management
**Created**: 2026-03-02
**Status**: Pending
---
## Phase 1: Project Setup
- [ ] T001 Create project skeleton: `.gitignore`, `.env.example`, `README.md`, `lib/`, `tests/` dirs
- [ ] T002 Create `.env` from `.env.example` with device serial `RD51QE202392`
- [ ] 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_success` functions
- [ ] 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_pull` with existence checks and `--force` support
---
## Phase 3: Tests (RED phase — must fail before implementation)
- [ ] T007 [US1] Write `tests/test_status.bats` — tests for `status` command (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 for `app list`, `app install`, `app uninstall`
- [ ] T010 [US4] Write `tests/test_shell.bats` — tests for `shell` command passthrough
- [ ] T011 [US5] Write `tests/test_logs.bats` — tests for `logs` command (stream, --lines, --filter, --output)
- [ ] T012 Verify ALL tests FAIL (RED phase confirmed) before writing `fs5` entrypoint
---
## Phase 4: Implementation — P1 User Stories
- [ ] T013 [US1] Create `fs5` entrypoint: argument parsing, `--help`, config loading, `status` command
- [ ] T014 [US1] Implement `status` command: collect device props, battery, storage, format human + JSON output
- [ ] T015 [US2] Implement `push` command: file existence check, transfer, idempotency guard, logging
- [ ] T016 [US2] Implement `pull` command: 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 list` command: parse `pm list packages`, filter system/user, version lookup
- [ ] T019 [US3] Implement `app install` command: APK validation, `adb install`, package name confirmation
- [ ] T020 [US3] Implement `app uninstall` command: `--force` guard, `pm uninstall`, logging
- [ ] T021 [US4] Implement `shell` command: passthrough to `adb shell`, stdin pipe support
- [ ] T022 Verify T009 + T010 tests PASS (GREEN phase for P2)
---
## Phase 6: Implementation — P3 User Stories
- [ ] T023 [US5] Implement `logs` command: `adb logcat` stream, `--lines` (dump mode), `--filter`, `--output`
- [ ] T024 Verify T011 tests PASS (GREEN phase for P3)
---
## Phase 7: Polish & Quality Gates
- [ ] T025 [P] Run `shellcheck fs5 lib/adb.sh lib/output.sh` — fix all warnings to zero
- [ ] T026 [P] Run full test suite `bats tests/` — all tests must pass
- [ ] T027 [P] Write `README.md` with installation, usage examples, and quickstart scenarios
- [ ] T028 Validate all 8 quickstart scenarios from `plan.md` manually against live device
- [ ] T029 Initial git commit: `feat: add android-fs5 CLI toolset`
---
## Dependency Graph
```text
T001 → T002 → T003
T003 → T004 → T005 → T006
T006 → T007 → T008 → T009 → T010 → T011 → T012
T012 → T013 → T014 → T015 → T016 → T017
T017 → T018 → T019 → T020 → T021 → T022
T022 → T023 → T024
T024 → T025 [P] T026 [P] T027 [P]
T025 + T026 + T027 → T028 → T029
```
---
## Progress Summary
| Phase | Tasks | Status |
|-------|-------|--------|
| 1. Setup | T001-T003 | Pending |
| 2. Foundation | T004-T006 | Pending |
| 3. Tests (RED) | T007-T012 | Pending |
| 4. P1 Impl | T013-T017 | Pending |
| 5. P2 Impl | T018-T022 | Pending |
| 6. P3 Impl | T023-T024 | Pending |
| 7. Polish | T025-T029 | Pending |