summaryrefslogtreecommitdiff
path: root/AGENTS.md
diff options
context:
space:
mode:
authorhathach <[email protected]>2026-04-29 11:46:34 +0700
committerhathach <[email protected]>2026-04-29 11:46:34 +0700
commitfd715afcc52b27127de4e7a6a89a7782fdef5676 (patch)
treeb1cbab1d5f7a2681b1a1baf873c4642f819f8029 /AGENTS.md
parent47f2228cedfb216411c1ac50c4f10a30907cdb51 (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.md27
1 files changed, 11 insertions, 16 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 37fac2b05..eefe9dde1 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -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`).