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 ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
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.