diff options
| author | hathach <[email protected]> | 2026-04-29 11:46:34 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2026-04-29 11:46:34 +0700 |
| commit | fd715afcc52b27127de4e7a6a89a7782fdef5676 (patch) | |
| tree | b1cbab1d5f7a2681b1a1baf873c4642f819f8029 /AGENTS.md | |
| parent | 47f2228cedfb216411c1ac50c4f10a30907cdb51 (diff) | |
Add `code-size` skill and integrate `metrics_compare_base.py` tool
- Introduced a `code-size` skill under `.claude/skills` for evaluating TinyUSB code size changes between the base branch and current branch.
- Added `metrics_compare_base.py`, automating code size comparison with granular options for examples, boards, and CI-wide runs.
- Updated `AGENTS.md` to include quick references and usage guidance for the new feature.
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 27 |
1 files changed, 11 insertions, 16 deletions
@@ -134,28 +134,23 @@ cd docs && sphinx-build -b html . _build # ~2.5 s ## Code Size Metrics -Verify size impact before committing. +Verify size impact before committing. Invoke the `code-size` skill (`.claude/skills/code-size/SKILL.md`) — it wraps `tools/metrics_compare_base.py` to handle the base-vs-branch worktree + build + compare flow. -**Single-board (iterative, ~30 s):** +Quick reference: ```bash -rm -rf cmake-build -python3 tools/build.py -b raspberry_pi_pico --target all --target tinyusb_metrics -python3 tools/metrics.py combine -j -m -f tinyusb/src cmake-build/cmake-build-*/metrics.json -``` +# Single example, one board: +python3 tools/metrics_compare_base.py -b raspberry_pi_pico -e device/cdc_msc +# Add --bloaty for section/symbol breakdown. -**Compare vs master:** run the above on master, `mv metrics.json metrics_master.json`, switch branch, rebuild, then: -```bash -python3 tools/metrics.py compare -m -f tinyusb/src metrics_master.json metrics.json -``` +# All examples, one board: +python3 tools/metrics_compare_base.py -b raspberry_pi_pico -**Full CI (all arm-gcc families, 2-4 min):** -```bash -rm -rf cmake-build -FAMILIES=$(python3 .github/workflows/ci_set_matrix.py | python3 -c "import sys,json;d=json.load(sys.stdin);print(' '.join(d.get('arm-gcc',[])))") -python3 tools/build.py --one-first --target all --target tinyusb_metrics $FAMILIES -python3 tools/metrics.py combine -j -m -f tinyusb/src cmake-build/cmake-build-*/metrics.json +# All arm-gcc CI families combined (pre-merge sweep, 4-8 min): +python3 tools/metrics_compare_base.py --ci ``` +Reports land in `cmake-metrics/<board>/metrics_compare.md` (per-board) and `cmake-metrics/_combined/metrics_compare.md` (with `--combined`/`--ci`). + ## Static Analysis (PVS-Studio) Requires `compile_commands.json` (CMake `-DCMAKE_EXPORT_COMPILE_COMMANDS=ON`). |
