## 1. Align platforms, metrics and observation times Inventory the four platforms, metric names, two times and raw displays in source-data.json. Do not browse or fill current values. Save metric-index.md. Expected: A metric/time index. Check: Keep followers and subscribers distinct with both times explicit. ## 2. Assign exact, missing and approximate states Mark exact, missing or approximate. Keep unknown numbers null, YouTube’s reason, Newsletter’s exact 0 and Blog’s 1.2K string. Do not convert 1.2K into an exact 1200. Expected: Values with explicit status. Check: Missing is neither zero nor a carried-forward value. ## 3. Calculate changes only where comparable Calculate differences only for two exact values. Do not calculate percentages with a zero base. Show formulas and reasons for no calculation; do not total different platforms or fill missing values. Expected: X +40 and Newsletter -20. Check: YouTube/Blog have no exact change and a reason. ## 4. Prepare one reviewable observation batch Produce CSV with batch, platform, metric, raw display, numeric value, status, change and reason. Retain all four rows and mark not written. Compare with the reference; separate missing from decline. Expected: Four local rows and a weekly summary. Check: YouTube missing and Newsletter -20 are both present. ## 5. Read the target sheet before appending confirmed rows Inspect for platform+metric+batch keys. Preview four proposed rows. After specific confirmation, append raw values, record the returned range and read it back. On ambiguous failure, check existing keys before retrying; do not overwrite history or reveal keys. Expected: Verified append evidence or an unwritten file. Check: A same-batch retry does not add another copy. ## 6. Read fresh status on every observation Draft an audience-tracker Skill covering scope, definitions, batches, missing/approximate rules, calculations, deduplication and readback. Propose a Routine only. Stay quiet for no changes; report failed reads or changed definitions without rewriting old records. Expected: A reusable observation method. Check: A failed next run cannot reuse old counts as current.