data-ingest
Conversational data ingestion — parse files, brainstorm schema, create queryable tables, and save reusable skills
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Conversational data ingestion — parse files, brainstorm schema, create queryable tables, and save reusable skills
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
On-demand time-series forecasting. CAPTURE params from project context, call run_forecast, present deterministic engine results.
Use when helping initialize, configure, or prepare a Seeknal project like a coding agent
Translate business questions into metrics, SQL evidence, and actionable recommendations
Run multi-step SQL plus Python/statistics/ML analysis while keeping tools thin and evidence grounded
Answer business questions from read-only connected databases using deterministic schema discovery and SQL evidence
Run Python code in an isolated subprocess for statistical/ML/visualization work beyond what SQL can express
| name | data-ingest |
| description | Conversational data ingestion — parse files, brainstorm schema, create queryable tables, and save reusable skills |
| tags | ["data-ingest","import","upload"] |
| version | 1.0.0 |
Use this workflow when the user provides a file (xlsx, csv, tsv, json) or a direct-download URL and wants to ingest it into a queryable table.
read_tabular — parse and preview the filedescribe_table / list_tables — check for existing tablesask_user — confirm schema, business key, table namewrite_ingested_table — persist data to Parquet + register viewsave_ingestion_skill — create reusable SKILL.mdexecute_sql — answer follow-up analytics questionscheck_ingestion_drift — compare schemas on re-runsread_tabular(path_or_url=<user file or URL>).ask_user to confirm / adjust:
list_tables to see whether ingest_{table_name} already exists.check_ingestion_drift(source_path=..., table_name=..., business_key=...) to compare schemas and get a human-readable report.write_ingested_table(source_path=..., table_name=..., business_key=..., mode='append', user_confirmed=False) to get the
self-defending drift report (schema diff + dedup count).ask_user with options:
Skip duplicates (keep existing)Replace duplicates (keep new)Skip this fileType your ownwrite_ingested_table(mode='append', user_confirmed=True, dedup_strategy='skip'|'replace').write_ingested_table(source_path=..., table_name=..., business_key=..., mode='create').execute_sql("SELECT COUNT(*) FROM ingest_{table_name}").save_ingestion_skill(skill_name=..., table_name=..., business_key=..., columns_json=..., description=...).After ingestion, ask the user if they have a question about the data.
Use execute_sql to answer it (standard analytics path).
ask_user.ask_user.write_ingested_table with user_confirmed=False first in
append mode to get the drift report. Only call with user_confirmed=True
after the user explicitly confirms via ask_user.Staging files in target/ask_ingest/_staging/ are temporary downloads and
uploads. They can be safely deleted after ingestion completes. Cleanup is
manual in v1; automated TTL-based cleanup is planned for v2.