diff --git a/ai/skills/README.md b/ai/skills/README.md index ed2c0cb8cf6..8afd3feb82e 100644 --- a/ai/skills/README.md +++ b/ai/skills/README.md @@ -44,22 +44,22 @@ without any flattening step. ``` ai/skills/ ├── README.md -├── perfetto-infra-querying-traces/ +├── perfetto_infra_querying_traces/ │ └── SKILL.md -├── perfetto-infra-getting-trace-processor/ +├── perfetto_infra_getting_trace_processor/ │ └── SKILL.md -└── perfetto-workflow-android-heap-dump/ +└── perfetto_workflow_android_heap_dump/ └── SKILL.md ``` -The slug doubles as the taxonomy: `perfetto-` is the vendor prefix +The slug doubles as the taxonomy: `perfetto_` is the vendor prefix (so Perfetto skills don't collide with anything else the user has installed), then a category, then any sub-categories, then the skill name. Two categories today: -- **`perfetto-infra-*`** — domain-agnostic mechanics of working with +- **`perfetto_infra_*`** — domain-agnostic mechanics of working with Perfetto: how to query a trace, how to install the binary, etc. -- **`perfetto-workflow--*`** — domain-specific +- **`perfetto_workflow__*`** — domain-specific investigation workflows: how to investigate a heap dump on Android, jank on Chrome, etc. @@ -69,11 +69,11 @@ need to query the trace; here's the bit specific to this problem." ## Authoring a skill Create a directory under `ai/skills/` whose name follows the -`perfetto--` pattern, with a `SKILL.md` inside: +`perfetto__` pattern, with a `SKILL.md` inside: ```markdown --- -name: perfetto-infra-querying-traces +name: perfetto_infra_querying_traces description: Use when the user wants to load a Perfetto trace, run a SQL query against it, or discover which tables and columns are available. Covers trace_processor invocation and the PerfettoSQL diff --git a/ai/skills/perfetto-infra-getting-trace-processor/BUILD b/ai/skills/perfetto_infra_getting_trace_processor/BUILD similarity index 94% rename from ai/skills/perfetto-infra-getting-trace-processor/BUILD rename to ai/skills/perfetto_infra_getting_trace_processor/BUILD index 2bece943ee9..77c1f5ac557 100644 --- a/ai/skills/perfetto-infra-getting-trace-processor/BUILD +++ b/ai/skills/perfetto_infra_getting_trace_processor/BUILD @@ -21,7 +21,7 @@ perfetto_validate_skill_test( ) perfetto_agent_skill( - name = "perfetto-infra-getting-trace-processor", + name = "perfetto_infra_getting_trace_processor", srcs = ["SKILL.md"] + glob(["references/**", "assets/**"]), scripts = glob(["scripts/**"]), ) diff --git a/ai/skills/perfetto-infra-getting-trace-processor/EVAL.txtpb b/ai/skills/perfetto_infra_getting_trace_processor/EVAL.txtpb similarity index 93% rename from ai/skills/perfetto-infra-getting-trace-processor/EVAL.txtpb rename to ai/skills/perfetto_infra_getting_trace_processor/EVAL.txtpb index bc3660be4a3..ae077f9540f 100644 --- a/ai/skills/perfetto-infra-getting-trace-processor/EVAL.txtpb +++ b/ai/skills/perfetto_infra_getting_trace_processor/EVAL.txtpb @@ -2,7 +2,7 @@ # proto-message: EvalSuite # txtpbfmt: wrap_strings_after_newlines -suite_name: "perfetto-infra-getting-trace-processor" +suite_name: "perfetto_infra_getting_trace_processor" timeout_seconds: 300 cases { diff --git a/ai/skills/perfetto-infra-getting-trace-processor/OWNERS b/ai/skills/perfetto_infra_getting_trace_processor/OWNERS similarity index 100% rename from ai/skills/perfetto-infra-getting-trace-processor/OWNERS rename to ai/skills/perfetto_infra_getting_trace_processor/OWNERS diff --git a/ai/skills/perfetto-infra-getting-trace-processor/SKILL.md b/ai/skills/perfetto_infra_getting_trace_processor/SKILL.md similarity index 99% rename from ai/skills/perfetto-infra-getting-trace-processor/SKILL.md rename to ai/skills/perfetto_infra_getting_trace_processor/SKILL.md index bc6ed89c9a3..12a0b1caf78 100644 --- a/ai/skills/perfetto-infra-getting-trace-processor/SKILL.md +++ b/ai/skills/perfetto_infra_getting_trace_processor/SKILL.md @@ -1,5 +1,5 @@ --- -name: perfetto-infra-getting-trace-processor +name: perfetto_infra_getting_trace_processor description: Use when the user does not yet have `trace_processor` installed, or has not set up the Python `perfetto` client used to drive the long-running RPC mode. Covers fetching the prebuilt binary diff --git a/ai/skills/perfetto-infra-getting-trace-processor/TEST.md b/ai/skills/perfetto_infra_getting_trace_processor/TEST.md similarity index 89% rename from ai/skills/perfetto-infra-getting-trace-processor/TEST.md rename to ai/skills/perfetto_infra_getting_trace_processor/TEST.md index 45c13b8ee76..79d7d2f8ba1 100644 --- a/ai/skills/perfetto-infra-getting-trace-processor/TEST.md +++ b/ai/skills/perfetto_infra_getting_trace_processor/TEST.md @@ -1,11 +1,11 @@ -# TEST for perfetto-infra-getting-trace-processor +# TEST for perfetto_infra_getting_trace_processor ## Tier 1 — Build & Smoke Tests ### Test 1: File Existence Verify that the skill files exist. ```bash -ls ai/skills/perfetto-infra-getting-trace-processor/SKILL.md +ls ai/skills/perfetto_infra_getting_trace_processor/SKILL.md ``` **Verify:** File exists. diff --git a/ai/skills/perfetto-infra-querying-traces/BUILD b/ai/skills/perfetto_infra_querying_traces/BUILD similarity index 95% rename from ai/skills/perfetto-infra-querying-traces/BUILD rename to ai/skills/perfetto_infra_querying_traces/BUILD index f6939beb5e4..766d66ed025 100644 --- a/ai/skills/perfetto-infra-querying-traces/BUILD +++ b/ai/skills/perfetto_infra_querying_traces/BUILD @@ -21,7 +21,7 @@ perfetto_validate_skill_test( ) perfetto_agent_skill( - name = "perfetto-infra-querying-traces", + name = "perfetto_infra_querying_traces", srcs = ["SKILL.md"] + glob(["references/**", "assets/**"]), scripts = glob(["scripts/**"]), ) diff --git a/ai/skills/perfetto-infra-querying-traces/EVAL.txtpb b/ai/skills/perfetto_infra_querying_traces/EVAL.txtpb similarity index 95% rename from ai/skills/perfetto-infra-querying-traces/EVAL.txtpb rename to ai/skills/perfetto_infra_querying_traces/EVAL.txtpb index c69505b1664..aca2e2ac8b8 100644 --- a/ai/skills/perfetto-infra-querying-traces/EVAL.txtpb +++ b/ai/skills/perfetto_infra_querying_traces/EVAL.txtpb @@ -2,7 +2,7 @@ # proto-message: EvalSuite # txtpbfmt: wrap_strings_after_newlines -suite_name: "perfetto-infra-querying-traces" +suite_name: "perfetto_infra_querying_traces" timeout_seconds: 300 cases { diff --git a/ai/skills/perfetto-infra-querying-traces/OWNERS b/ai/skills/perfetto_infra_querying_traces/OWNERS similarity index 100% rename from ai/skills/perfetto-infra-querying-traces/OWNERS rename to ai/skills/perfetto_infra_querying_traces/OWNERS diff --git a/ai/skills/perfetto-infra-querying-traces/SKILL.md b/ai/skills/perfetto_infra_querying_traces/SKILL.md similarity index 98% rename from ai/skills/perfetto-infra-querying-traces/SKILL.md rename to ai/skills/perfetto_infra_querying_traces/SKILL.md index 8cceb704983..6e8db653d13 100644 --- a/ai/skills/perfetto-infra-querying-traces/SKILL.md +++ b/ai/skills/perfetto_infra_querying_traces/SKILL.md @@ -1,5 +1,5 @@ --- -name: perfetto-infra-querying-traces +name: perfetto_infra_querying_traces description: Use when the user wants to load a Perfetto trace, run a PerfettoSQL query against it, or discover which tables, views, columns, or stdlib modules are available. Covers trace_processor invocation, the @@ -20,7 +20,7 @@ runs on top of, including the Perfetto UI. Reference docs: > `trace_processor` is already on `PATH` (and, for the long-running RPC > mode below, that the Python client is installed). If neither is set > up, follow whatever skill the user's environment provides for -> acquisition — typically `perfetto-infra-getting-trace-processor` for the +> acquisition — typically `perfetto_infra_getting_trace_processor` for the > open-source path, or a team-specific variant inside Google or other > restricted environments. The rest of this skill is intentionally > orthogonal to *how* you got `trace_processor`. @@ -166,7 +166,7 @@ A few commonly used modules to know: - `android.startup.startups` — one row per app startup. - `stacks.cpu_profiling` — flat samples and call-graph helpers. - `android.memory.heap_graph.dominator_tree` — retained-size analysis for - Java heap dumps (see the `perfetto-workflow-android-heap-dump` + Java heap dumps (see the `perfetto_workflow_android_heap_dump` skill for usage). The module name maps directly to the file path under the stdlib root: diff --git a/ai/skills/perfetto-infra-querying-traces/TEST.md b/ai/skills/perfetto_infra_querying_traces/TEST.md similarity index 91% rename from ai/skills/perfetto-infra-querying-traces/TEST.md rename to ai/skills/perfetto_infra_querying_traces/TEST.md index 2d0baa15c35..5dd79b0ec9d 100644 --- a/ai/skills/perfetto-infra-querying-traces/TEST.md +++ b/ai/skills/perfetto_infra_querying_traces/TEST.md @@ -1,11 +1,11 @@ -# TEST for perfetto-infra-querying-traces +# TEST for perfetto_infra_querying_traces ## Tier 1 — Build & Smoke Tests ### Test 1: File Existence Verify that the skill files exist. ```bash -ls ai/skills/perfetto-infra-querying-traces/SKILL.md +ls ai/skills/perfetto_infra_querying_traces/SKILL.md ``` **Verify:** File exists. diff --git a/ai/skills/perfetto-workflow-android-heap-dump/BUILD b/ai/skills/perfetto_workflow_android_heap_dump/BUILD similarity index 95% rename from ai/skills/perfetto-workflow-android-heap-dump/BUILD rename to ai/skills/perfetto_workflow_android_heap_dump/BUILD index 07712a9ba02..1a5ea7149ae 100644 --- a/ai/skills/perfetto-workflow-android-heap-dump/BUILD +++ b/ai/skills/perfetto_workflow_android_heap_dump/BUILD @@ -21,7 +21,7 @@ perfetto_validate_skill_test( ) perfetto_agent_skill( - name = "perfetto-workflow-android-heap-dump", + name = "perfetto_workflow_android_heap_dump", srcs = ["SKILL.md"] + glob(["references/**", "assets/**"]), scripts = glob(["scripts/**"]), ) diff --git a/ai/skills/perfetto-workflow-android-heap-dump/EVAL.txtpb b/ai/skills/perfetto_workflow_android_heap_dump/EVAL.txtpb similarity index 94% rename from ai/skills/perfetto-workflow-android-heap-dump/EVAL.txtpb rename to ai/skills/perfetto_workflow_android_heap_dump/EVAL.txtpb index ddacaff263a..91084d4ba93 100644 --- a/ai/skills/perfetto-workflow-android-heap-dump/EVAL.txtpb +++ b/ai/skills/perfetto_workflow_android_heap_dump/EVAL.txtpb @@ -2,7 +2,7 @@ # proto-message: EvalSuite # txtpbfmt: wrap_strings_after_newlines -suite_name: "perfetto-workflow-android-heap-dump" +suite_name: "perfetto_workflow_android_heap_dump" timeout_seconds: 300 cases { diff --git a/ai/skills/perfetto-workflow-android-heap-dump/OWNERS b/ai/skills/perfetto_workflow_android_heap_dump/OWNERS similarity index 100% rename from ai/skills/perfetto-workflow-android-heap-dump/OWNERS rename to ai/skills/perfetto_workflow_android_heap_dump/OWNERS diff --git a/ai/skills/perfetto-workflow-android-heap-dump/SKILL.md b/ai/skills/perfetto_workflow_android_heap_dump/SKILL.md similarity index 98% rename from ai/skills/perfetto-workflow-android-heap-dump/SKILL.md rename to ai/skills/perfetto_workflow_android_heap_dump/SKILL.md index 063a907df6e..a476a0bea67 100644 --- a/ai/skills/perfetto-workflow-android-heap-dump/SKILL.md +++ b/ai/skills/perfetto_workflow_android_heap_dump/SKILL.md @@ -1,5 +1,5 @@ --- -name: perfetto-workflow-android-heap-dump +name: perfetto_workflow_android_heap_dump description: Use when the user has an Android trace containing a Java heap graph (heap dump) and wants to investigate memory usage, find leaks, or understand what is retaining memory. Walks through a guided workflow @@ -15,7 +15,7 @@ with this heap dump?", "why is this process using so much memory?", or data source and contains at least one Java heap graph. If the user has not yet loaded a trace into `trace_processor`, follow -the `perfetto-infra-querying-traces` skill first, then come back here. +the `perfetto_infra_querying_traces` skill first, then come back here. Recording-side reference for heap dumps: . diff --git a/ai/skills/perfetto-workflow-android-heap-dump/TEST.md b/ai/skills/perfetto_workflow_android_heap_dump/TEST.md similarity index 91% rename from ai/skills/perfetto-workflow-android-heap-dump/TEST.md rename to ai/skills/perfetto_workflow_android_heap_dump/TEST.md index 84c001d1550..d279791192e 100644 --- a/ai/skills/perfetto-workflow-android-heap-dump/TEST.md +++ b/ai/skills/perfetto_workflow_android_heap_dump/TEST.md @@ -1,11 +1,11 @@ -# TEST for perfetto-workflow-android-heap-dump +# TEST for perfetto_workflow_android_heap_dump ## Tier 1 — Build & Smoke Tests ### Test 1: File Existence Verify that the skill files exist. ```bash -ls ai/skills/perfetto-workflow-android-heap-dump/SKILL.md +ls ai/skills/perfetto_workflow_android_heap_dump/SKILL.md ``` **Verify:** File exists.