Importation dans Looker
/SKILLExtrayez des connaissances durables sur KTX et des propositions de contribution au niveau sémantique à partir du tableau de bord Looker en exécution par étapes, « Look », et explorez JSON.
name: looker_ingest
description: Extract durable ktx knowledge and semantic-layer contribution proposals from staged Looker runtime dashboard, Look, and explore JSON. Load for WorkUnits whose raw files are under explores/, dashboards/, or looks/.
callers: [memory_agent]
Looker Runtime Ingest
Looker runtime ingest turns API-staged dashboards, Looks, and explores into durable ktx memory. Runtime entities are evidence. They are not themselves the final knowledge shape.
Required Workflow
- Read every
rawFilesentry for the WorkUnit. - Read relevant
dependencyPathsbefore making a decision. For dashboard and Look WUs this usually includes the referenced explore JSON, signal files,folders/tree.json, andusers/<id>.json. - Treat
signals/*.json, owners, folders, schedules, and favorites as prioritization or provenance context only. - Extract generalizable metric formulas, segment definitions, field semantics, and domain conventions.
- Use
wiki_search,sl_discover, andsl_read_sourcebefore writing so new content merges with existing memory instead of duplicating it. - Use
context_evidence_searchorcontext_evidence_readto obtain evidence chunk IDs for any wiki-bound knowledge candidate. - Use
context_candidate_writefor durable wiki-bound knowledge. Do not callwiki_writefrom a Looker WorkUnit; Stage 4 reconciliation promotes candidates and writes wiki pages. - Use
looker_query_to_slfor each Look query or dashboard tile query that has aqueryobject. - Write SL from Looker runtime evidence only through the staged warehouse target contract. For explores and inherited dashboard/Look queries, branch on
targetTable.ok; when it is true, write ontargetWarehouseConnectionIdand usetargetTable.canonicalTableassource.table. When it is false or missing, write wiki knowledge candidates and recordemit_unmapped_fallbackwith the staged reason. - Run
sl_validateafter every SL write. If validation fails, fix the source or roll it back before the WorkUnit ends.
For every Looker field reference, call entity_details on the underlying
schema.table.column before promoting it to sl_refs or quoting it in wiki body.
Identifier Verification Protocol
Before writing a wiki page or SL source on any topic:
discover_data({query: "<topic>"})- see what wikis, SL sources, and raw
tables already exist. Prefer updating existing pages over creating new ones.
Before emitting any schema.table or schema.table.column into a wiki body,
SL source, tables: frontmatter, sl_refs, or emit_unmapped_fallback:
entity_details({connectionId, targets: [{display: "<identifier>"}]})-
confirm the identifier resolves; inspect native types, FK/PK, and
sampleValues.
- For literal values from the source, such as status codes or plan tiers,
check whether they appear in entity_details sampleValues for the relevant
column. If sampleValues is short or the sample may have missed real values,
run a sql_execution probe with the same warehouse connection id:
sql_execution({connectionId, sql: "SELECT DISTINCT <col> FROM <ref> LIMIT 50"}).
- If the candidate identifier still does not resolve, do one of:
- Use
sql_execution({connectionId, sql: "SELECT 1 FROM <ref> LIMIT 0"}).
If it errors, the identifier is fictional.
- Wrap the identifier in
[unverified - from <rawPath>]in the wiki body,
citing the exact raw path that mentioned it.
- When recording
emit_unmapped_fallbackwithno_physical_table, include
the failing probe error in clarification.
- Never copy
<schema>.<table>placeholder strings from these instructions
into output.
Explore WorkUnits
Explore WUs have raw files like explores/<model>/<explore>.json and usually depend on lookml_models.json.
Use the deterministic API-derived source key:
looker__<model>__<explore>For example, modelName: "b2b" and exploreName: "sales_pipeline" map to looker__b2b__sales_pipeline.
Mapped explore write shape:
{
"connectionId": "22222222-2222-4222-8222-222222222222",
"sourceName": "looker__b2b__sales_pipeline",
"source": {
"name": "looker__b2b__sales_pipeline",
"table": "proj.dataset.opportunities",
"grain": ["opportunity_id"],
"columns": [
{
"name": "opportunity_id",
"type": "string"
},
{
"name": "arr",
"type": "number"
}
],
"measures": [
{
"name": "total_arr",
"expr": "sum(arr)"
}
]
}
}Every concrete value in that example must be backed by raw Looker field SQL, source_tables preflight, source_columns, or existing SL when applied to a real WorkUnit. If the evidence is not present, write wiki candidates and emit emit_unmapped_fallback.
The staged explore file carries warehouse target fields populated before the WU starts:
connectionName: the Looker runtime connection name.- `targetWarehouseCon