Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions ai/skills/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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>-*`** — domain-specific
- **`perfetto_workflow_<domain>_*`** — domain-specific
investigation workflows: how to investigate a heap dump on
Android, jank on Chrome, etc.

Expand All @@ -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-<category>-<name>` pattern, with a `SKILL.md` inside:
`perfetto_<category>_<name>` 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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/**"]),
)
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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/**"]),
)
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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`.
Expand Down Expand Up @@ -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:
Expand Down
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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/**"]),
)
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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:
<https://perfetto.dev/docs/data-sources/java-heap-profiler>.

Expand Down
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
Loading