Skip to content

Commit e26b7e6

Browse files
andre-salvaticlaude
andcommitted
docs: drop project-costs/example.md, the last commentary file
Every principle in it was already stated generically in SKILL.md — leading with the cloud split, dollarizing spikes before judging them, using the daily <details> block to attribute a spike to a date, normalizing partial edge weeks, reading SQL Serverless silence as a finding, reconciling attributed spend before trusting the per-job table, and comparing per active day. The file re-narrated those against one window's numbers. Two points were not already generic and moved into SKILL.md: that a batch-vs-SDP gap becomes a finding through durability (holding across the window and repeating in a second environment) rather than size, and that the example is to be read for shape, not for figures. sql-diagram lost its example.md for the same reason last commit, so tooling.md now states the rule in its general form instead of justifying one exception. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent f8421b6 commit e26b7e6

3 files changed

Lines changed: 13 additions & 70 deletions

File tree

.claude/skills/project-costs/SKILL.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: project-costs
3-
description: Run the project cost report and write the analysis into it. Use when asked about this project's cloud spend, cost anomalies, spikes or trends, DBU/DSU consumption, per-job or per-pipeline cost, or the AWS vs Databricks split. Runs `make project-costs` (AWS Cost Explorer + Databricks system.billing), then analyses the generated report and replaces its Analysis placeholder. See example.md for a committed report read end to end.
3+
description: Run the project cost report and write the analysis into it. Use when asked about this project's cloud spend, cost anomalies, spikes or trends, DBU/DSU consumption, per-job or per-pipeline cost, or the AWS vs Databricks split. Runs `make project-costs` (AWS Cost Explorer + Databricks system.billing), then analyses the generated report and replaces its Analysis placeholder. See examples/ for a finished report.
44
---
55

66
# Project cost analysis
@@ -69,7 +69,9 @@ to dollars before calling them big or small.
6969
the days someone deployed, so compare *per active day*, never raw totals. The `Days` column is
7070
what makes that comparison possible.
7171
- Compare `job1_*` against its `job1_sdp_*` counterpart: they produce the same medallion tables by
72-
different execution models, so a persistent gap between them is a real finding, not noise.
72+
different execution models, so a persistent gap between them is a real finding, not noise. What
73+
makes it a finding is **durability** — a gap that holds across the whole window *and* repeats in a
74+
second environment is an argument; the same gap seen once is a number.
7375
- Watch the integration-test jobs. They are easy to overlook and can rival the pipeline they test.
7476
- Reconcile before trusting: the attributed total is always *less* than the Databricks total, since
7577
SQL warehouse and interactive compute carry no `job_id`. The note under the table gives the
@@ -84,8 +86,9 @@ to dollars before calling them big or small.
8486
charging the AWS account for EC2. AWS spend is therefore a *proxy for job activity*, never a
8587
measure of pipeline cost.
8688

87-
`example.md` walks a committed report showing what each of these sections looks like when written
88-
against real numbers.
89+
`examples/2026-07-22.md` is a finished report showing what these sections look like written against
90+
real numbers. Read it for shape, not for figures — they are a snapshot of one 30-day window, and a
91+
live run writes a fresh `reports/cost/YYYY-MM-DD.md`.
8992

9093
## Caveats to respect
9194

.claude/skills/project-costs/example.md

Lines changed: 0 additions & 60 deletions
This file was deleted.

specs/tooling.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,12 +156,12 @@ run would produce much the same document, so one example is enough. An investiga
156156
output — its example is kept for the **findings**, which are live defects in `prod`, and a second
157157
investigation would be a second example rather than a replacement.
158158

159-
The other two take different forms, and the difference is the rule worth copying. `sql-diagram` ships
160-
`job_spend_plan.html`, which *is* the deliverable — diagram plus a data trace — so it needs no prose
161-
companion; it had one, and the file was deleted once the page demonstrated with data what the prose
162-
had asserted. `project-costs` ships `example.md` beside its report, because a page of cost tables
163-
does not explain why its analysis is written the way it is. **Add a commentary file only when the
164-
artifact cannot speak for itself**; two files narrating one artifact will drift.
159+
**An example is the artifact, never a commentary file beside it.** Both `sql-diagram` and
160+
`project-costs` once shipped an `example.md` explaining their example; both were deleted, and in each
161+
case the explanation belonged in one of two places — the artifact itself, or the `SKILL.md` as
162+
guidance that applies to every run, not just to the committed one. Two files narrating one artifact
163+
will drift, and the prose is the copy that goes stale. If an example needs a companion to be
164+
intelligible, fix the example.
165165

166166
One gotcha on the kit's skills. Some have a frontmatter `name:` that differs from their directory
167167
(`databricks` declares `databricks-core`; `analyze-mlflow-trace` declares `analyzing-mlflow-trace`)

0 commit comments

Comments
 (0)