workspace-verify

Syncs code to workspace, builds incrementally, pushes via adb, and writes verification receipts.

Updated Jun 9, 2026
One-click install
npx skills add https://github.com/lechao365/AndroidSystemEnhance --skill workspace-verify-lechao365
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: workspace-verify
Source: https://github.com/lechao365/AndroidSystemEnhance/tree/main/harness/skills/workspace-verify
Command: npx skills add https://github.com/lechao365/AndroidSystemEnhance --skill workspace-verify-lechao365

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pyserial, pyyaml, and includes scripts (resource) components.

What problem does it solve? Verifying Android system changes on real hardware requires manually syncing source code to a build workspace, running incremental builds, pushing artifacts to a device over adb, running acceptance checks, and recording evidence. This Skill automates that entire code-to-board verification loop for Raspberry Pi 5 AOSP/kernel development, producing auditable pass/fail receipts. ## Core Features & Use Cases - End-to-End Verification Chain: Orchestrates sync, incremental build, adb push with SHA256/SELinux context verification, on-device unit tests, and acceptance checks in one chained script (ws_verify_chain.py) with per-stage timing marks. - Tag-Based Acceptance Testing: Executes declarative acceptance tags (svc:, log:, prop:, file:, cmd:, hostcmd:, boot, logfield, logfresh) from verify-cases.yaml, with three-state pass/fail/ai verdicts and automatic device clock drift correction. - Failure Forensics and Recovery: Collects bounded read-only forensics (logcat crash, dmesg, tombstones, pstore) on failure, and rescues unreachable devices through a serial-to-TCP bridge with brick-state classification (full_brick, half_brick, boot_loop). - Use Case: After modifying the LcView logging daemon in the code/ tree, trigger this Skill to sync changes into the AOSP workspace, rebuild the affected Soong modules, push them to the Raspberry Pi 5, run the lcview-liveness acceptance case, and write a timestamped receipt to data/verify-results. ## Quick Start Run the workspace-verify skill with a batch file or a target commit and case label to sync, build, push, and verify my changes on the device.

Frequently Asked Questions about workspace-verify

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I verify Android AOSP changes on a Raspberry Pi 5 device?

Use the chained entry point ws_verify_chain.py with a batch file or target commit and case label. It runs sync, connect, push, unit tests, acceptance, and report steps in sequence, stopping at the first failing step with per-stage exit codes.

How do I run acceptance tests on an Android device over adb?

Run ws_acceptance.py with a case label from verify-cases.yaml, which expands into declarative tags like svc:, log:, prop:, and boot. Each tag executes automatically against the device and produces a three-state pass, fail, or ai verdict.

What happens when the adb device becomes unreachable during verification?

The skill retries connection through mDNS discovery and a static fallback endpoint, then optionally triggers serial rescue that restarts adbd over a serial-to-TCP bridge. It classifies the device state as full_brick, half_brick, boot_loop, or rescue_unavailable.

Why does logcat time-window filtering return empty results on the device?

The device clock may drift because the board lacks an RTC battery, so a local timestamp falls in the device's future. The skill converts --log-since values into the device clock domain automatically and can correct drift with clock_sync.

Can this skill handle full image packaging and flashing?

Packaging via ws_package.py requires sudo and must run outside restricted sessions; it records image paths and checksums as evidence. Full-card flashing and boot partition writes are gated behind mandatory human confirmation.