checking-freshness — скилл для Claude Code: проверка свежести данных
Скилл смотрит, когда таблица обновлялась в последний раз, и говорит, можно ли на этих данных строить отчёт.
npx skills add astronomer/agents --skill checking-freshness -a claude-codeЧто делает checking-freshness
Скилл ищет в таблице колонку с отметкой времени загрузки или обновления: _loaded_at, updated_at, load_date, event_date и похожие варианты. Если имён колонок не видно, агент заглядывает в INFORMATION_SCHEMA.COLUMNS. Дальше считает возраст последней записи в часах и минутах и раскладывает строки по дням за последнюю неделю — так видно, идёт ли загрузка вообще.
Возраст превращается в статус: до 4 часов — свежие, от 4 до 24 — устаревшие, больше суток — очень устаревшие, а без колонки с временем свежесть не определить. Отчёт выводится таблицей: имя таблицы, время последнего обновления, возраст, статус.
Если данные протухли, скилл идёт в Airflow искать DAG-источник через af dags list, проверяет, не поставлен ли он на паузу и не упал ли последний запуск. Дальше он передаёт разбор скиллу **debugging-dags**. Порог в 4 часа — это ориентир из самого скилла, а не универсальный норматив: у ночных пакетных загрузок суточная давность нормальна, поэтому статус стоит читать вместе с расписанием пайплайна.
Какие задачи решает
- узнать, когда таблица обновлялась в последний раз
- понять, не устарели ли данные перед отчётом
- найти колонку с временем загрузки в незнакомой схеме
- посмотреть, сколько строк приходит по дням за неделю
- выяснить, почему данные перестали обновляться
Примеры запросов агенту
- Проверь свежесть таблицы analytics.orders — можно ли на ней строить утренний отчёт?
- Данные в marketing.events устарели? Если да, найди DAG-источник и скажи, что с ним
- Быстрый ответ: таблица sales.daily обновлялась сегодня?
Как установить checking-freshness
1Через Skills CLI (Vercel)
npx skills add astronomer/agents --skill checking-freshness -a claude-code2Вручную: положить файлы
~/.claude/skills/checking-freshness/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/checking-freshness/
1Через Skills CLI (Vercel)
npx skills add astronomer/agents --skill checking-freshness -a codex2Вручную: положить файлы
.agents/skills/checking-freshness/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add astronomer/agents --skill checking-freshness -a cursor2Вручную: положить файлы
.cursor/skills/checking-freshness/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install astronomer/agents checking-freshness2Вручную: положить файлы
.github/skills/checking-freshness/SKILL.md1Через Skills CLI (Vercel)
npx skills add astronomer/agents --skill checking-freshness -a gemini-cli2Командой платформы
gemini skills install https://github.com/astronomer/agents --path skills/checking-freshnessВручную: положить файлы
.devin/skills/checking-freshness/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add astronomer/agents --skill checking-freshness -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора23
Похожие
Рядом в теме «Данные и базы»
Все скиллы по теме «Данные и базы» →Вопросы о checking-freshness
Как установить checking-freshness в Claude?
Выполните npx skills add astronomer/agents --skill checking-freshness -a claude-code. Скилл окажется в ~/.claude/skills/checking-freshness/SKILL.md.
Что делает checking-freshness?
Находит в таблице колонку с отметкой времени, считает возраст последней записи и выдаёт статус: свежие, устаревшие или очень устаревшие. При протухании данных проверяет DAG в Airflow.
Что нужно, чтобы скилл нашёл причину устаревания?
Доступ к Airflow и CLI af: через него скилл смотрит список DAG, статус и статистику запусков. Без этого он ограничится отчётом о свежести.
Исходный текст
SKILL.md · Apache-2.0
---
name: checking-freshness
description: Quick data freshness check. Use when the user asks if data is up to date, when a table was last updated, if data is stale, or needs to verify data currency before using it.
---
# Data Freshness Check
Quickly determine if data is fresh enough to use.
## Freshness Check Process
For each table to check:
### 1. Find the Timestamp Column
Look for columns that indicate when data was loaded or updated:
- `_loaded_at`, `_updated_at`, `_created_at` (common ETL patterns)
- `updated_at`, `created_at`, `modified_at` (application timestamps)
- `load_date`, `etl_timestamp`, `ingestion_time`
- `date`, `event_date`, `transaction_date` (business dates)
Query INFORMATION_SCHEMA.COLUMNS if you need to see column names.
### 2. Query Last Update Time
```sql
SELECT
MAX(<timestamp_column>) as last_update,
CURRENT_TIMESTAMP() as current_time,
TIMESTAMPDIFF('hour', MAX(<timestamp_column>), CURRENT_TIMESTAMP()) as hours_ago,
TIMESTAMPDIFF('minute', MAX(<timestamp_column>), CURRENT_TIMESTAMP()) as minutes_ago
FROM <table>
```
### 3. Check Row Counts by Time
For tables with regular updates, check recent activity:
```sql
SELECT
DATE_TRUNC('day', <timestamp_column>) as day,
COUNT(*) as row_count
FROM <table>
WHERE <timestamp_column> >= DATEADD('day', -7, CURRENT_DATE())
GROUP BY 1
ORDER BY 1 DESC
```
## Freshness Status
Report status using this scale:
| Status | Age | Meaning |
|--------|-----|---------|
| **Fresh** | < 4 hours | Data is current |
| **Stale** | 4-24 hours | May be outdated, check if expected |
| **Very Stale** | > 24 hours | Likely a problem unless batch job |
| **Unknown** | No timestamp | Can't determine freshness |
## If Data is Stale
Check Airflow for the source pipeline:
1. **Find the DAG**: Which DAG populates this table? Use `af dags list` and look for matching names.
2. **Check DAG status**:
- Is the DAG paused? Use `af dags get <dag_id>`
- Did the last run fail? Use `af dags stats`
- Is a run currently in progress?
3. **Diagnose if needed**: If the DAG failed, use the **debugging-dags** skill to investigate.
### On Astro
If you're running on Astro, you can also:
- **DAG history in the Astro UI**: Check the deployment's DAG run history for a visual timeline of recent runs and their outcomes
- **Astro alerts for SLA monitoring**: Configure alerts to get notified when DAGs miss their expected completion windows, catching staleness before users report it
### On OSS Airflow
- **Airflow UI**: Use the DAGs view and task logs to verify last successful runs and SLA misses
## Output Format
Provide a clear, scannable report:
```
FRESHNESS REPORT
================
TABLE: database.schema.table_name
Last Update: 2024-01-15 14:32:00 UTC
Age: 2 hours 15 minutes
Status: Fresh
TABLE: database.schema.other_table
Last Update: 2024-01-14 03:00:00 UTC
Age: 37 hours
Status: Very Stale
Source DAG: daily_etl_pipeline (FAILED)
Action: Investigate with **debugging-dags** skill
```
## Quick Checks
If user just wants a yes/no answer:
- "Is X fresh?" -> Check and respond with status + one line
- "Can I use X for my 9am meeting?" -> Check and give clear yes/no with context
© astronomer · Apache-2.0 · astronomer/agents