# AI Native Test Skill

Use this skill to test how AI Native you are.

When pasted into a coding agent, the agent should:
1. Inspect the user's local coding-agent history without installing anything.
2. Compute `totalTokens`, `weeklyTokens`, `maxTurns`, and `avgTurns`.
3. Choose a public handle.
4. Submit the result to LetTokenBurn.
5. Report the final score, band, radar-profile dimensions, and leaderboard status.

Canonical skill page:
https://lettokenburn.com/ai-native/skill.md

## Rules

- Prefer built-in tools already on the machine.
- Do not ask the user to install packages unless every local path fails.
- It is fine to write a small local script in Python, Node.js, or shell, using only standard libraries and built-in tools.
- Ignore missing products. Run the test with whatever supported local data sources are available.

## Local Data Sources

Check these paths first:
- Codex: `~/.codex/sessions/**/*.jsonl`
- Claude Code: `~/.claude/projects/**/*.jsonl`
- Cursor (optional): `~/Library/Application Support/Cursor/User/globalStorage/state.vscdb` on macOS, or `~/.config/Cursor/User/globalStorage/state.vscdb` on Linux. Query it with built-in `sqlite3` if present.

## Metric Definitions

- `totalTokens`: lifetime tokens across parsed sessions
- `weeklyTokens`: tokens from the last 7 days
- `maxTurns`: the largest model-response count found in one session
- `avgTurns`: the mean model-response count across parsed sessions

### Turn Counting Rule

- Count one turn for each assistant or model response in a session.
- For JSONL-based tools, read structured session records instead of guessing from plain text.
- Ignore empty or corrupted sessions with no usable token or turn data.
- Round `avgTurns` to one decimal place.

## Local Execution Plan

1. Detect which supported local data sources exist.
2. Write a tiny local parser only if direct shell commands are not enough.
3. Parse the structured logs or database.
4. Calculate the 4 metrics.
5. Pick the submission handle.
6. POST the result.
7. Fetch the leaderboard and report the outcome.

## Handle

- If the user is already logged into LetTokenBurn and their display name is available, use that name.
- Otherwise generate a cute random public handle, use it for the submission, and tell the user exactly which handle was used.
- Do not ask for manual name input unless both options fail.

## Submit Result

POST `https://api.lettokenburn.com/v1/ai-native`

```json
{
  "handle": "<chosen handle>",
  "totalTokens": <computed value>,
  "weeklyTokens": <computed value>,
  "maxTurns": <computed value>,
  "avgTurns": <computed value>
}
```

Use the API response as the source of truth for the final `score` and `band`.
If the response includes a `profile`, use it as the source of truth for the radar dimensions.

## Radar Dimensions

The public page interprets the raw metrics through five 0-100 dimensions:

- `Autonomous Span`: how long the agent keeps moving after one human input, based on `avgTurns`
- `Peak Depth`: the longest single autonomous run, based on `maxTurns`
- `Practice Volume`: accumulated agent usage, based on `totalTokens`
- `Recent Momentum`: active current usage, based on `weeklyTokens`
- `Repeatability`: whether autonomy is repeatable instead of one outlier run, based on `avgTurns / maxTurns`

## Bands

- 60+ -> Autonomy Architect
- 25-59.9 -> AI Native
- 10-24.9 -> Flow Operator
- 3-9.9 -> Prompt Pilot
- 0-2.9 -> Manual Driver

## Report Back

Tell the user:
- The handle used for submission
- `totalTokens`, `weeklyTokens`, `maxTurns`, and `avgTurns`
- The final `score` and `band`
- The radar-profile dimensions, strongest dimension, weakest dimension, and profile signature if returned by the API
- Their leaderboard rank if they appear in `GET https://api.lettokenburn.com/v1/ai-native`
- Otherwise say they are currently outside the visible leaderboard instead of inventing a rank
