$ friskme scan --since 30d
What your Claude Code and Codex sessions were for
// 40 sessions in 5 projects, 2026-10-16 → 2026-11-11. Generated on this machine by friskme 0.4.0.
Overview
- sessions
- 40 with a prompt you typed
- agents
- Claude Code31 · 77.5% · $16.40 Codex9 · 22.5% · $7.83
- prompts
- 55
- tool calls
- 283 (33 failed)
- tokens
- 51.3M incl. cache and subagents
- list price
- $24.23 API equivalent
- projects
- payments-api13 storefront-web13 data-pipeline9 docs-site4 infra1
- models
- claude-opus-5-534.8M gpt-5.510.1M claude-sonnet-5-56.4M
- work type
- fix bug30.0% build feature27.5% review code15.0% docs/writing10.0% debug/investigate7.5% refactor7.5% other2.5%
// Tokens count each API response once, including subagent runs. Dollars are API list-price equivalent (Anthropic rates as of 2026-11-03, OpenAI rates as of 2026-11-11); on a subscription you do not pay this.
Intents
// Labeled by haiku from each session's prompts and tool sequence, then merged into intents. Counts and shares computed locally. Bars are share of all 40 sessions. 0 sessions unlabeled.
27.5% Fix failing and flaky tests 11 ▁▆▆▃█
Repairing broken, failing, and flaky test suites across checkout, tax, ledger, login, exports, and ingest.
- agents
- Claude Code8 Codex3
- tools
- Bash:package_manager19 Edit:ts12 Read:ts9 exec_command:other8 Bash:other7
- projects
- storefront-web6 data-pipeline4 payments-api1
- labels
- Fix Canadian tax rounding test1 Fix cart spec failing after merge1 Fix failing address checkout spec1 Fix failing filters spec suite1 Fix failing login spec suite1 Fix failing schedule test suite1 Fix failing test in test_exports.py1 Fix failing test in test_ingest.py1
- weekly
- 10-12=0 10-19=3 10-26=3 11-02=1 11-09=4
CI is red on main. Fix the failing test in tests/test_exports.py
CI is red on main. Fix the failing test in tests/test_ingest.py
The src/auth/login.spec.ts suite fails locally, figure out why and fix it
// 11 of 40 sessions. 18.6M tokens, $9.00 at API list-price equivalent (Anthropic rates as of 2026-11-03, OpenAI rates as of 2026-11-11).
15.0% Payments API endpoints 6 █▁█▅▅
Building and validating REST endpoints for refunds, coupons, disputes, customers, payouts, and webhooks.
- agents
- Claude Code4 Codex2
- tools
- Write:go12 apply_patch:go8 Read:go8 exec_command:file_ops6 Bash:other4
- projects
- payments-api6
- labels
- Add list and create endpoints for refunds1 Add paginated coupons GET endpoint1 Add paginated GET /v1/disputes endpoint1 Add POST /v1/customers with validation1 Add POST /v1/payouts with validation1 Add webhook CRUD endpoints1
- weekly
- 10-12=2 10-19=0 10-26=2 11-02=1 11-09=1
Add a GET /v1/disputes endpoint with pagination, following the pattern in the invoices handler
Add a POST /v1/customers route with request validation and tests
We need CRUD endpoints for refunds. Start with list and create.
// 6 of 40 sessions. 9.2M tokens, $5.04 at API list-price equivalent (Anthropic rates as of 2026-11-03, OpenAI rates as of 2026-11-11).
15.0% Reviewing pull requests 6 ▁▅█▁▁
Doing first-pass and risk-focused reviews of teammates' pull requests.
- agents
- Claude Code4 Codex2
- tools
- mcp:github30 Read:ts8 exec_command:file_ops4
- projects
- payments-api4 storefront-web2
- labels
- First-pass review of PR 4211 First-pass review of pull request 4271 Review PR 412 for risks1 Review PR 418 for risky changes1 Review PR 433 for error handling1 Review PR 440 for risky changes1
- weekly
- 10-12=0 10-19=2 10-26=4 11-02=0 11-09=0
Can you review #433? Focus on error handling and tests.
Do a first-pass review of pull request 427
Review PR #440 and leave comments on anything risky
// 6 of 40 sessions. 5.3M tokens, $2.25 at API list-price equivalent (Anthropic rates as of 2026-11-03, OpenAI rates as of 2026-11-11).
10.0% Database schema migrations and backfills 4 ▁████
Adding archived_at columns and backfilling region data on existing tables.
- agents
- Claude Code3 Codex1
- tools
- Bash:other9 Edit:py3 exec_command:other3 Read:py3 Write:py3
- projects
- data-pipeline4
- labels
- Add archived_at column migration for accounts1 Add archived_at column migration for invoices1 Backfill events.region from accounts1 Backfill orders.region from accounts1
- weekly
- 10-12=0 10-19=1 10-26=1 11-02=1 11-09=1
Write an alembic migration that adds a accounts.archived_at column with an index
Add a migration to backfill orders.region from the accounts table
Write an alembic migration that adds a invoices.archived_at column with an index
// 4 of 40 sessions. 3.3M tokens, $2.04 at API list-price equivalent (Anthropic rates as of 2026-11-03, OpenAI rates as of 2026-11-11).
10.0% Design system component migration 4 ▁▁▃█▁
Moving storefront components onto the design-system Button and upgrading the @acme/ui package.
- agents
- Claude Code4
- tools
- Bash:package_manager12 Edit:json9 Edit:tsx6 Read:tsx6 Edit:css3
- projects
- storefront-web4
- labels
- Move CartDrawer to design-system Button1 Move ProductCard to design-system Button1 Move SearchBar to design-system Button1 Upgrade @acme/ui to v4 and fix build1
- weekly
- 10-12=0 10-19=0 10-26=1 11-02=3 11-09=0
Upgrade @acme/ui to v4 and get the build green again
Refactor CartDrawer to use the new design-system Button and remove the old styles
Refactor SearchBar to use the new design-system Button and remove the old styles
// 4 of 40 sessions. 9.4M tokens, $3.50 at API list-price equivalent (Anthropic rates as of 2026-11-03, OpenAI rates as of 2026-11-11).
10.0% Writing and updating docs 4 ▅▁█▁▅
Writing getting-started guides and updating the auth configuration guide.
- agents
- Claude Code4
- tools
- Bash:package_manager4 Edit:md4 Grep4 Read:md4
- projects
- docs-site4
- labels
- Update auth guide for new config format1 Write billing getting-started docs page1 Write deploy getting-started page1 Write webhooks getting-started docs page1
- weekly
- 10-12=1 10-19=0 10-26=2 11-02=0 11-09=1
Write a getting-started page for webhooks
Update the auth guide for the new config format
Write a getting-started page for billing
// 4 of 40 sessions. 1.4M tokens, $0.45 at API list-price equivalent (Anthropic rates as of 2026-11-03, OpenAI rates as of 2026-11-11).
7.5% Investigate slow and broken systems 3 ▁▅▁█▁
Diagnosing infrastructure behavior, webhook timeouts, and slow nightly jobs.
- agents
- Claude Code2 Codex1
- tools
- Bash:infra4 exec_command:infra2 apply_patch:tf1 Bash:file_ops1 Bash:package_manager1
- projects
- data-pipeline1 infra1 payments-api1
- labels
- Explain Terraform recreation of NAT gateway1 Find cause of staging webhook timeouts1 Investigate slow nightly export job1
- weekly
- 10-12=0 10-19=1 10-26=0 11-02=2 11-09=0
Payments webhooks are timing out in staging. Find out why.
Why does terraform plan want to recreate the staging NAT gateway?
Look into why the nightly export job is slow
// 3 of 40 sessions. 3.0M tokens, $1.46 at API list-price equivalent (Anthropic rates as of 2026-11-03, OpenAI rates as of 2026-11-11).
5.0% Exploring dark mode and rate limiting 2 ▁█▁▁█
Prototyping a storefront dark mode toggle and sketching a public API rate limiter.
- agents
- Claude Code2
- tools
- Bash:package_manager2 Grep2 Read:md2
- projects
- payments-api1 storefront-web1
- labels
- Prototype dark mode toggle for storefront1 Sketch public API rate limiter1
- weekly
- 10-12=0 10-19=1 10-26=0 11-02=0 11-09=1
Prototype a dark mode toggle for the storefront
Sketch a rate limiter for the public API
// 2 of 40 sessions. 1.1M tokens, $0.49 at API list-price equivalent (Anthropic rates as of 2026-11-03, OpenAI rates as of 2026-11-11).
Repeated workflows
// Draft skills are written to disk, never installed. Read one before copying it to ~/.claude/skills/.
Reviewing pull requests
// 6 sessions with a tool mix at cosine ≥ 0.8 to the most typical one (mean 0.94).
mcp:github → mcp:github → Read:ts → Read:ts → mcp:github ×3
wrote skills/reviewing-pull-requests/SKILL.md
show SKILL.md
--- name: pr-first-pass-risk-review description: "Runs a fast, risk-focused first-pass review of a teammate's pull request, covering metadata, the diff, high-risk changed code, test coverage, and a prioritized findings report." --- <!-- Draft generated by friskme from 6 sessions of "Reviewing pull requests" on 2026-11-12. Review and edit before installing to ~/.claude/skills/pr-first-pass-risk-review/SKILL.md. --> # pr-first-pass-risk-review Runs a fast, risk-focused first-pass review of a teammate's pull request, covering metadata, the diff, high-risk changed code, test coverage, and a prioritized findings report. ## When to use Use when the user asks for a first-pass, risk-focused, or focused (e.g., error handling or tests) review of a pull request by number or link, with or without asking for review comments. Do not use for authoring or fixing the PR. ## Steps 1. Fetch the PR once: title, description, base and head refs, author, linked issue, changed-file list, and the full diff. Use a single batched call where the available tool allows it instead of several metadata calls. 2. Triage changed files by risk before reading code. Rank higher: authentication and authorization, money or amount handling, persistence and migrations, external API calls, webhooks, config and secrets handling, and error-handling paths. Rank lower: docs, snapshots, generated files, and pure formatting. 3. Read the high-risk changed files in one pass, and open only the direct callers, types, or tests needed to confirm behavior. Do not re-read a file you already have in context. 4. Check each high-risk change for common defects: currency or unit mistakes (rounding, cents vs. units), non-idempotent retries, unhandled promise rejections or thrown exceptions, swallowed or over-broad catches, missing input validation at trust boundaries, missing authz checks, sensitive data in logs, race conditions, and breaking changes to public APIs or schemas. 5. Check test coverage for the changed behavior. Flag missing tests for error paths and edge cases. If the user named a focus area such as error handling or tests, examine that area first and in depth. 6. Record each finding with file, line reference, severity (blocking, should-fix, or nit), and a one-line reason. Drop speculative findings you cannot tie to a specific line of the diff. 7. If the user asked for review comments, submit all of them together as one batched review rather than one call per comment, and keep only findings that are real risks. If comments were not requested, present the drafts in the reply and do not post them. 8. Finish with a short summary: an overall verdict, the top risks, and what you did not verify (for example, tests you did not run or runtime behavior you could not check). ## Notes Sessions showed the same loop repeated: two metadata calls, two single-file reads, then three separate review or comment calls, roughly seven tool calls each time. Batch the metadata and diff fetch at the start and submit comments in one review at the end to cut round-trips. Reads were also split across file-read and shell-based file tools depending on the session; choose the one already connected and use it consistently. Do not claim tests pass unless they were run. Do not post comments on someone else's PR unless the user asked for them. Avoid copying PR numbers, repo names, or paths into the skill; use the current PR's details only in the reply.
Writing and updating docs
// 4 sessions with a tool mix at cosine ≥ 0.8 to the most typical one (mean 1.00).
Read:md → Grep → Edit:md → Bash:package_manager
wrote skills/writing-and-updating-docs/SKILL.md
show SKILL.md
--- name: write-or-update-docs-pages description: "Writes new getting-started docs pages or updates existing guide sections (such as auth or config guides) in a docs site by matching sibling page conventions, verifying names in the codebase, and running one docs build check." --- <!-- Draft generated by friskme from 4 sessions of "Writing and updating docs" on 2026-11-12. Review and edit before installing to ~/.claude/skills/write-or-update-docs-pages/SKILL.md. --> # write-or-update-docs-pages Writes new getting-started docs pages or updates existing guide sections (such as auth or config guides) in a docs site by matching sibling page conventions, verifying names in the codebase, and running one docs build check. ## When to use Use when asked to write a getting-started page for a feature or to update a configuration or auth guide for a changed format. Use it for markdown docs work in a docs-site repository. ## Steps 1. Read the closest existing page first: a sibling getting-started page for new pages, or the guide being updated for edits. Note its frontmatter, heading levels, code-fence style, and section order so the new content matches. 2. Grep the codebase for the feature's exact identifiers (config keys, env var names, endpoints, CLI flags, function names) before writing any example. Do not write names from memory. 3. For a new getting-started page, create it from the sibling's structure: title, one-paragraph purpose, prerequisites, numbered setup steps, one minimal working example, and links to next steps. 4. For an update to an existing guide, grep for the old format's keys or headings to find every affected location, then edit only those sections and leave unrelated content untouched. 5. Keep every code sample consistent with the verified names and the current config format. Use obvious placeholders such as <YOUR_API_KEY> for secrets and never paste real values. 6. If the docs site uses a navigation file, sidebar, or index, add or update the entry for any new page so it is reachable. 7. Run the project's docs build, lint, or link-check script once through the package manager. Fix only the errors it reports, then rerun it once if needed. 8. Finish with a short summary listing the files changed, what was verified against the code, and anything you could not confirm. ## Notes The sampled sessions were uniform (Read, Grep, Edit, one package-manager call) with zero errors, so the efficient path is short: read the reference page, grep for exact names, edit, and run one build check. Avoid re-reading files you already have and avoid repeated builds. The main risk in this work is inventing config keys or examples without grepping first, which produces wrong docs that only surface later. Keep the steps generic and do not hard-code project-specific page names, paths, or secrets into the skill.
Fix failing and flaky tests
// 4 sessions with a tool mix at cosine ≥ 0.8 to the most typical one (mean 0.99).
Bash:package_manager → Read:ts → Grep → Read:ts → Edit:ts → Bash:package_manager → Bash:package_manager
wrote skills/fix-failing-and-flaky-tests/SKILL.md
show SKILL.md
--- name: fix-failing-and-flaky-tests description: "Diagnoses and repairs a failing or flaky test file or suite by reproducing the failure, reading the spec and the code under test, making the smallest correct fix, and verifying with the file and then the full suite." --- <!-- Draft generated by friskme from 4 sessions of "Fix failing and flaky tests" on 2026-11-12. Review and edit before installing to ~/.claude/skills/fix-failing-and-flaky-tests/SKILL.md. --> # fix-failing-and-flaky-tests Diagnoses and repairs a failing or flaky test file or suite by reproducing the failure, reading the spec and the code under test, making the smallest correct fix, and verifying with the file and then the full suite. ## When to use Use when a named spec file or test suite fails locally or in CI, when a test started failing after a merge or rebase, or when a test passes and fails intermittently. Apply it to any module area such as checkout, cart, auth, search, tax, ledger, exports, or ingest. ## Steps 1. Detect the package manager and test runner from lockfiles and package.json scripts before running anything. Use the project's own test script rather than guessing a command. 2. Reproduce the failure by running only the failing spec file, with its name passed as an argument. Capture the first assertion or error message and the stack frame that points into project code. 3. Classify the failure before editing: a deterministic assertion mismatch, a missing or changed import or fixture, a shared-state or ordering dependency, a timing or async race, or an environment difference such as timezone, locale, or env vars. Check `git log` or recent diffs on the spec and the module it covers when the failure began after a merge. 4. Read the spec and the code under test together. Decide whether the regression is in the source (the behavior changed unintentionally) or in the test (the expectation is stale). Do not weaken or delete an assertion to make it pass unless the new behavior is clearly intended; if it is intended, update the expectation and say so. 5. Make the smallest edit that fixes the root cause. For flaky tests, remove the nondeterminism: await real promises instead of sleeping, inject or freeze clocks and random seeds, reset shared mocks and state in beforeEach or afterEach, and avoid depending on test execution order. 6. Re-run the single spec file several times (for example 3 to 5 runs) to confirm the fix is stable. For suspected flakiness, run it under the same conditions that failed before, such as a single worker or random order, to confirm the race is gone. 7. Run the full suite once to catch regressions the fix may have caused in neighboring specs or shared helpers. If unrelated tests fail, check whether they were already failing on the base branch before changing them. 8. Report back concisely: the root cause, the files changed, the command used to verify, and any remaining known-failing or skipped tests, without claiming the suite is green unless the full run actually passed. ## Notes Every sample session hit one tool error and then re-ran commands, which suggests the first test invocation used the wrong runner, flags, or working directory. Step 1 and step 2 prevent this by reading the scripts first and running a single file with the correct invocation. The sessions also followed a fixed read-grep-read-edit cycle and then ran the whole suite as an afterthought; step 3 asks for failure classification and merge history up front so the edit targets the cause rather than the symptom. Flaky-test work is easy to "fix" by retrying or by loosening assertions, which hides real bugs; step 4 and step 5 require a root-cause decision and removal of nondeterminism instead. Running only the one file after an edit can miss breakage in shared helpers, so step 7 requires the full suite and a base-branch comparison for unrelated failures. Keep fixes out of unrelated files, and never paste secrets, tokens, or machine-specific paths into test code or reports.
Payments API endpoints
// 4 sessions with a tool mix at cosine ≥ 0.8 to the most typical one (mean 1.00).
Read:go → Read:go → Write:go → Write:go → Edit:go → Write:go → Bash:other → Read:yaml → Edit:yaml
wrote skills/payments-api-endpoints/SKILL.md
show SKILL.md
--- name: payments-api-endpoints description: "Adds or extends REST endpoints for payments resources (refunds, coupons, disputes, customers, payouts, webhooks) with request validation, tests, and matching OpenAPI spec updates, following the conventions already in the repo." --- <!-- Draft generated by friskme from 4 sessions of "Payments API endpoints" on 2026-11-12. Review and edit before installing to ~/.claude/skills/payments-api-endpoints/SKILL.md. --> # payments-api-endpoints Adds or extends REST endpoints for payments resources (refunds, coupons, disputes, customers, payouts, webhooks) with request validation, tests, and matching OpenAPI spec updates, following the conventions already in the repo. ## When to use Use when asked to add a route, CRUD operations, or validation for a payments resource in a payments API codebase, including follow-ups asking to document it in the OpenAPI spec. Use it for list/create/get/update/delete work on existing payment-domain resources. ## Steps 1. Read one existing sibling resource end to end (handler, request types, validation, and its test file) before writing anything, so the new code matches the project's naming, error shape, and routing style. 2. Read the router or route registration file to find where the new route group is mounted and any middleware (auth, idempotency, versioning) that applies under the version prefix. 3. Write each new Go source file in full in a single pass: handler, request/response types, and validation. Avoid writing a file and then patching it with multiple follow-up edits. 4. Validate request bodies at the boundary: required fields, types, enum values, currency and amount constraints (integers in minor units, positive where required), and ID formats. Return the same validation error structure the sibling handlers use. 5. Register the route in the router under the correct versioned path and method, reusing the existing middleware chain rather than adding new wiring. 6. Write table-driven tests covering the happy path, each validation failure, not-found or conflict cases, and the response shape. Put them alongside the sibling tests and reuse their helpers and fixtures. 7. Run the package build and its tests once (for example go build ./... and go test on the touched packages) and fix any failures in the same pass before moving on. 8. Update the OpenAPI spec in the same change: add the path, method, parameters, request and response schemas, and error responses that mirror the implementation. Reuse existing component schemas and refs instead of duplicating them. 9. Confirm the spec and the code agree on field names, required flags, status codes, and paths, then summarize the endpoints added and any assumptions made about domain rules. ## Notes The sessions show no tool errors or interrupts, but they reveal a predictable pattern worth optimizing. The OpenAPI update was requested as a follow-up in every session, so the skill includes it up front instead of waiting to be asked. Go files were written, rewritten, and then patched with an Edit, which suggests the first draft was incomplete; drafting each file completely before writing avoids that churn. Validation and the build/test run happen only at the end, so a single verification pass catches problems early rather than after several rounds. Resource-specific names, paths, and secrets were intentionally left out; the agent should take them from the existing codebase at runtime.
Waste
| kind | items | tokens | list price |
|---|---|---|---|
| failing loops | 4 | 11.7M | $4.74 |
| repeated commands | 3 | 5.4M | $2.28 |
| error streaks | 1 | 745.1k | $0.28 |
| interrupted endings | 4 | 4.5M | $2.64 |
| total | 12 | 14.3M | $6.02 |
// 7 of 40 sessions affected. A failing loop is a tool pattern repeated 3+ times where at least 2 iterations, and at least half, failed. Repeated commands are the same shell command 3+ times (sleep polling excluded). An error streak is 3+ failed calls in a row. Priced from the responses after the first attempt; each response counted once in totals. Deterministic, no model involved.
| kind | what | project | date | tokens | cost |
|---|---|---|---|---|---|
| interrupted end | Session ended right after you interrupted the agent | payments-api Codex | 2026-10-30 | 2.9M | $1.93 |
| failing loop | [Bash:package_manager → Edit:json] ×9 edit → run → error | storefront-web Claude Code | 2026-11-06 | 4.6M | $1.56 |
| failing loop | [Edit:ts → Bash:package_manager] ×8 edit → run → error | storefront-web Claude Code | 2026-10-21 | 4.5M | $1.54 |
| failing loop | [apply_patch:go → exec_command:other] ×5 edit → run → error | payments-api Codex | 2026-10-30 | 2.1M | $1.43 |
| repeated command | bun test tax run 8× (7 failed) | storefront-web Claude Code | 2026-10-21 | 2.1M | $0.79 |
| repeated command | go test ./internal/ledger run 5× (5 failed) | payments-api Codex | 2026-10-30 | 1.1M | $0.77 |
| repeated command | npm run build run 9× (8 failed) | storefront-web Claude Code | 2026-11-06 | 2.2M | $0.72 |
| interrupted end | Session ended right after you interrupted the agent | storefront-web Claude Code | 2026-11-11 | 566.9k | $0.30 |
| error streak | 4 failed tool calls in a row (Bash:infra) | payments-api Claude Code | 2026-11-06 | 745.1k | $0.28 |
| interrupted end | Session ended right after you interrupted the agent | data-pipeline Claude Code | 2026-10-19 | 520.7k | $0.22 |
| failing loop | Bash:infra ×4 | payments-api Claude Code | 2026-11-06 | 571.7k | $0.21 |
| interrupted end | Session ended right after you interrupted the agent | payments-api Claude Code | 2026-10-21 | 502.5k | $0.19 |
Sensitive data
Rotate: AWS access key, AWS secret key, GitHub token, Slack token. These values appeared in a session, so they were sent to the model provider with the rest of the conversation.
| kind | type | confidence | values | seen | sessions | where |
|---|---|---|---|---|---|---|
| secret | AWS access key | high | 1 | 1 | 1 | tool output 1 |
| secret | AWS secret key | high | 1 | 1 | 1 | tool output 1 |
| secret | Slack token | high | 1 | 1 | 1 | tool output 1 |
| secret | GitHub token | high | 1 | 1 | 1 | tool output 1 |
| personal | phone | high | 1 | 1 | 1 | you typed 1 |
| personal | medium | 1 | 1 | 1 | you typed 1 |
// Scanned 0.0M characters in 640 text blocks: prompts, tool input and output, agent replies and subagents. Detectors: rules (frisk-secrets-1 (derived from gitleaks v8 defaults)). Values are masked; run with --reveal to see them. 0 low-confidence matches are listed in report.json only. Names and places need --pii-model.
show all 6 values
AWS access key
AKIA…(20)
1
1
tool output Bash:file_ops 1
2026-11-06
| session | project | date | where | times |
|---|---|---|---|---|
2e2358fc | payments-api | 2026-11-06 | tool output Bash:file_ops | 1 |
// high confidence, detected by rule:aws-access-key. Projects: payments-api. Hover a session id for its claude --resume command.
AWS secret key
I874…(40)
1
1
tool output Bash:file_ops 1
2026-11-06
| session | project | date | where | times |
|---|---|---|---|---|
2e2358fc | payments-api | 2026-11-06 | tool output Bash:file_ops | 1 |
// high confidence, detected by rule:aws-secret-key. Projects: payments-api. Hover a session id for its claude --resume command.
GitHub token
ghp_…(40)
1
1
tool output exec_command:git 1
2026-11-03
| session | project | date | where | times |
|---|---|---|---|---|
6300a65a | infra | 2026-11-03 | tool output exec_command:git | 1 |
// high confidence, detected by rule:github-pat. Projects: infra. Hover a session id for its claude --resume command.
Slack token
xoxb…(55)
1
1
tool output Bash:file_ops 1
2026-11-06
| session | project | date | where | times |
|---|---|---|---|---|
2e2358fc | payments-api | 2026-11-06 | tool output Bash:file_ops | 1 |
// high confidence, detected by rule:slack-bot-token. Projects: payments-api. Hover a session id for its claude --resume command.
phone
••••42
1
1
you typed 1
2026-11-06
| session | project | date | where | times |
|---|---|---|---|---|
2e2358fc | payments-api | 2026-11-06 | you typed | 1 |
// high confidence, detected by rule:phone. Projects: payments-api. Hover a session id for its claude --resume command.
email
d•••@a•••.io
1
1
you typed 1
2026-11-06
| session | project | date | where | times |
|---|---|---|---|---|
2e2358fc | payments-api | 2026-11-06 | you typed | 1 |
// medium confidence, detected by rule:email. Projects: payments-api. Hover a session id for its claude --resume command.
Method and caveats
- read 40 session files and 0 subagent files under
~/.claude/projects(Claude Code, 31 files),~/.codex/sessions(Codex, 9 files), read-only. Nothing there was changed. - kept 40 sessions active since 30d. Skipped 0 outside the window, 0 with no typed prompt, 0 created by friskme.
- lines 0 malformed lines skipped. Ignored by design: none.
- sent 7
claude -pcalls to haiku under your own Claude login, 0 failed. Labeling sent each session's first prompt (≤600 chars), up to 5 follow-ups (≤200 chars each), the project folder name and folded tool names. Grouping sent only labels and counts. Skill drafting sent 3–5 of the same cards. Secrets were redacted first (email: 1). Calls ran with no tools, no session persistence and safe mode. 0 labels came from the local cache. friskme's own calls cost $0.01 at list price. - rates API list-price equivalent (Anthropic rates as of 2026-11-03, OpenAI rates as of 2026-11-11), bundled with friskme. No pricing was fetched.
- history Claude Code deletes transcripts older than
cleanupPeriodDays(30 by default), so this covers about a month at most.