# Add Report

Guide for adding new report cards to ClaudeBar that analyze local data sources and...

- Repository: https://github.com/tddworks/ClaudeBar (1565 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add tddworks/ClaudeBar --skill add-report -g -a claude-code -y`
Codex: `npx skills add tddworks/ClaudeBar --skill add-report -g -a codex -y`
Cursor: `npx skills add tddworks/ClaudeBar --skill add-report -g -a cursor -y`
Gemini CLI: `npx skills add tddworks/ClaudeBar --skill add-report -g -a gemini-cli -y`

## Description

Guide for adding new report cards to ClaudeBar that analyze local data sources and display metrics with comparison deltas. Use this skill when: (1) Adding a new report/analytics card (e.g., weekly summary, model breakdown, session stats) (2) Showing usage history in a new way, or reading another tool's usage logs (3) Adding comparison cards that show "today vs previous" style deltas (4) Building any feature that follows the DailyUsage pattern (days → report value → card)

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Add Report Card to ClaudeBar

Add report cards that turn a login's usage history into metrics with comparison
deltas, shown in the existing card style, test first.

## When to Use

This skill covers **report-style features**, cards that:
- Aggregate a login's days of usage (cost, tokens, time, sessions)
- Compare periods (today vs yesterday, this week vs last week)
- Read another tool's usage logs (as data in its definition)
- Display results in cards matching the existing UI

## First, which kind of report is it?

Usage history is data now ([daily-usage design](../../../docs/features/usage-history/daily-usage/design.md)).
A report is almost always a new **view over days the login already reads**, not new
reading code. Place it before anything else:

| The person wants… | It is | You write |
|---|---|---|
| a new look at usage this app already reads, this week vs last, cost per model, a 30-day chart | a **report over days**: the page asks `account.usageHistory?.days(in: range)` and a value in `Quotas` turns the days into the report | a `Quotas` value + its tests, a card. **No reading code** |
| the same history for another tool (its own log files) | a **`usageHistory` block** in that provider's definition | JSON (paths, `where`, fields, `prices`), its golden tests, no Swift |
| history from a log format no reader understands yet | a **new reader**, named for the format, in `Modules/DataSources/Sources/Internal/Logs/` | the reader, test-first in `DataSourcesTests`, then the JSON; a row in ENGINE_DESIGN §1 |
| an answer to a different question than "how much did I use?" | a **capability** (CANONICAL §2.1): declared in the definition, a handle on `Account` that is `nil` when not declared | design first; a runner outside the modules is supplied by the `Engine` (TARGET_ARCHITECTURE §10) |

The rest: https://github.com/tddworks/ClaudeBar/blob/HEAD/.claude/skills/add-report/SKILL.md
