dev-loop
Use when running the full PoLang development self-heal loop from code check through install, device verification, and report generation
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when running the full PoLang development self-heal loop from code check through install, device verification, and report generation
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Use when connecting Android devices, controlling app lifecycle, filtering logs, taking screenshots, pulling files, or checking performance metrics via adb
Use when running PoLang automated tests via JSON commands sent through AgentTestBroadcastReceiver, including test suites, single test cases, camera/agent feature verification, or performance/log collection
Use when performing PoLang QA acceptance, including end-to-end verification, boundary testing, performance baseline comparison, and red-line compliance checks
Use when automating PoLang UI interactions through structured accessibility data, replacing screenshot-based image recognition with precise text, contentDescription, or bounds-driven actions
SOC 職業分類に基づく
| name | dev-loop |
| description | Use when running the full PoLang development self-heal loop from code check through install, device verification, and report generation |
定位:Dev Loop自动化,一键完成编译到报告完整闭环。 触发时机:用户需要快速验证改动、执行完整开发闭环或 CI 检查时自动启用。
消除当前 AI Agent 工作流中编译后需人工干预的断点:
修改前: 代码修改 → ./gradlew assembleDebug → [人工] adb install → [人工] 打开应用 → [人工] 验证
修改后: 代码修改 → scripts/auto-dev-loop.sh → 全自动闭环(含报告)
代码修改后执行:
# 在项目根目录执行
scripts/auto-dev-loop.sh
自动完成:
./gradlew :app:assembleDebugadb install -rscripts/auto-dev-loop.sh --quick
scripts/auto-dev-loop.sh --fast
scripts/auto-dev-loop.sh --no-install
scripts/auto-dev-loop.sh --instrumented
scripts/regression-test.sh # 全部 P0 用例
scripts/regression-test.sh --camera # 仅相机模块
scripts/regression-test.sh --beauty # 仅美颜模块
场景1: 代码修改后的标准验证
1. RD 完成代码修改
2. 执行: scripts/auto-dev-loop.sh
3. 读取报告: scripts/auto_test_output/<timestamp>/report.md
4. 如果有失败 → 自动修复 → 重新执行
5. 如果全部通过 → 进入 CR/QA 环节
场景2: 修复 Bug 后的定向回归
1. 修复美颜相关 Bug
2. 执行: scripts/regression-test.sh --beauty
3. 验证美颜滑杆、滤镜切换是否正常
场景3: PR 提交前的完整验证
1. 执行: .qoder/skills/image-quality-checker/scripts/ai-gate.sh(代码级检查)
2. 执行: scripts/auto-dev-loop.sh(设备级验证)
3. 执行: scripts/regression-test.sh(端到端回归)
4. 全部通过 → 提交代码
scripts/auto_test_output/
└── 20260509_143022/ # 时间戳目录
├── report.md # 汇总报告
├── ktlint.log # 格式检查日志
├── detekt.log # 静态分析日志
├── unit_test.log # 单元测试日志
├── build.log # 编译日志
├── install.log # 安装日志
├── ui_dump_startup.txt # 启动后 accessibility UI dump(结构化文本)
├── ui_dump_startup.err # UI dump 错误日志(如有)
├── logcat_picme.txt # PoLang 标签日志
└── instrumented_test.log # Instrumented test 日志
| 脚本 | 参数 | 说明 |
|---|---|---|
auto-dev-loop.sh | --no-install | 跳过设备安装 |
auto-dev-loop.sh | --no-test | 跳过设备端测试 |
auto-dev-loop.sh | --quick | 快速模式(编译+安装+UI dump) |
auto-dev-loop.sh | --fast | 极速模式(跳过 lint/unit test/instrumented test) |
auto-dev-loop.sh | --instrumented | 运行 Instrumented Tests |
auto-dev-loop.sh | --with-lint | 运行 ktlint + detekt |
auto-dev-loop.sh | --test-suite | 已弃用,配合 --instrumented 选择测试套件 |
regression-test.sh | --camera | 仅执行相机测试 |
regression-test.sh | --gallery | 仅执行相册测试 |
regression-test.sh | --beauty | 仅执行美颜测试 |
regression-test.sh | --ci | CI 模式(失败快速退出) |
[WARN] 未检测到连接的设备,跳过设备端验证
解决: 连接设备后重试,或添加 --no-install 仅做代码检查。
尝试卸载后重装...
脚本会自动尝试卸载后重装,无需人工干预。
[WARN] Instrumented Tests 跳过(无设备或无测试任务)
如果项目未配置 connectedDebugAndroidTest 任务,此警告可忽略。
regression-test.sh 中的相册入口坐标基于常见分辨率计算:
local tap_x=$((w * 75 / 100))
local tap_y=$((h * 95 / 100))
如果 UI 布局变化,需更新坐标。
推荐替代方案:auto-dev-loop.sh 已改用 accessibility UI dump;手动定位时可使用 scripts/ui_driver.py 通过 contentDescription 或 bounds 精准点击,避免分辨率依赖:
python3 scripts/ui_driver.py click --content-description "相册"
python3 scripts/ui_driver.py dump --package com.mamba.picme
在 regression-test.sh 中添加新函数:
# ============================================
# TC-NEW-01: 新功能描述
# ============================================
tc_new_01_feature() {
print_test_header "TC-NEW-01: 新功能描述"
# 执行测试步骤(JSON 命令通过 AgentTestBroadcastReceiver)
adb shell "am broadcast -n com.mamba.picme/.testing.agent.bridge.AgentTestBroadcastReceiver -a com.mamba.picme.AGENT_TEST --es json '{\"method\":\"xxx\",\"params\":{}}'"
sleep 1
screenshot "tc_new_01"
# 验证结果
if [ 条件满足 ]; then
log_pass "测试通过"
else
log_fail "测试失败"
fi
}
然后在主流程中注册:
if [ "$TEST_ALL" = true ] || [ "$TEST_NEWMODULE" = true ]; then
tc_new_01_feature
fi
在 GitHub Actions / GitLab CI 中添加步骤:
- name: Auto Dev Loop
run: |
scripts/auto-dev-loop.sh --ci
- name: Regression Test
if: success()
run: |
scripts/regression-test.sh --ci
scripts/auto-dev-loop.sh — 一键开发自循环scripts/regression-test.sh — 端到端回归测试(JSON 命令驱动)scripts/ai-gate.sh — 代码级质量门禁/ui-driver — UI Driver/android-build-debug — 编译调试参考/adb-bot — ADB Bot/agent-test — Agent Test/image-quality-checker — 图片质量分析/compose-ui-expert — UI 验证参考/perf-optimizer — 性能基线对比/i18n-validator — 多语言验证| 版本 | 日期 | 变更 |
|---|---|---|
| 2.2.0 | 2026-07-02 | 修复 package name(com.picme → com.mamba.picme);Phase 4 全面改用 accessibility UI dump;新增 --fast 模式;Instrumented Tests 仅在 --instrumented 时运行 |
| 2.1.0 | 2026-07-02 | 重命名目录和 skill 名从 auto-dev-loop 到 dev-loop |
| 2.0.0 | 2026-07-02 | 统一标题为 Dev Loop;设备验证优先使用 accessibility UI dump |
| 1.1.0 | 2026-05-03 | 初始版本 |