#615 by GitHub stars
Kaelio/ktx
ktx is an executable context layer for data and analytics agents 🐙 Allow Claude Code, Codex, or other AI agents to query analytical databases accurately and with full context of your company
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
packages/cli/src/skills/analytics/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/dbt_ingest/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/gdrive_synthesize/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/historic_sql_patterns/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/historic_sql_table_digest/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/ingest_triage/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/live_database_ingest/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/looker_ingest/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/lookml_ingest/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/metabase_ingest/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/metricflow_ingest/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/notion_synthesize/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/sigma_ingest/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/sl/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/sl_capture/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
packages/cli/src/skills/wiki_capture/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
skills/ktx/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
49a4ae6f5b28 → 49a4ae6f5b28
Verified commit 49a4ae6f5b28c904da921afc0ee72da6db7ac202
git clone --filter=blob:none --no-checkout https://github.com/Kaelio/ktx.git .hotskills/kaelio-ktx && git -C .hotskills/kaelio-ktx checkout --detach 49a4ae6f5b28c904da921afc0ee72da6db7ac202
# Copy each selected skill directory from .hotskills/kaelio-ktx into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/Kaelio/ktx.git .hotskills/kaelio-ktx && git -C .hotskills/kaelio-ktx checkout --detach 49a4ae6f5b28c904da921afc0ee72da6db7ac202
# Copy each selected skill directory from .hotskills/kaelio-ktx into .agents/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/Kaelio/ktx.git .hotskills/kaelio-ktx && git -C .hotskills/kaelio-ktx checkout --detach 49a4ae6f5b28c904da921afc0ee72da6db7ac202
# Copy each selected skill directory from .hotskills/kaelio-ktx into .gemini/skills/<skill-name>/Heat
2.5- Star growth, last 7 daysAhead of 51% of tracked repositories
- Star growth, last 24 hoursAhead of 5% of tracked repositories
- Rank movement, last 7 daysAhead of 23% of tracked repositories
- Commits, last 30 daysAhead of 0% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- ktx-analytics
packages/cli/src/skills/analytics - dbt_ingest
packages/cli/src/skills/dbt_ingest - gdrive_synthesize
packages/cli/src/skills/gdrive_synthesize - historic_sql_patterns
packages/cli/src/skills/historic_sql_patterns - historic_sql_table_digest
packages/cli/src/skills/historic_sql_table_digest - ingest_triage
packages/cli/src/skills/ingest_triage - live_database_ingest
packages/cli/src/skills/live_database_ingest - looker_ingest
packages/cli/src/skills/looker_ingest - lookml_ingest
packages/cli/src/skills/lookml_ingest - metabase_ingest
packages/cli/src/skills/metabase_ingest - metricflow_ingest
packages/cli/src/skills/metricflow_ingest - notion_synthesize
packages/cli/src/skills/notion_synthesize - sigma_ingest
packages/cli/src/skills/sigma_ingest - sl
packages/cli/src/skills/sl - sl_capture
packages/cli/src/skills/sl_capture - wiki_capture
packages/cli/src/skills/wiki_capture - ktx
skills/ktx
How it works
ktx-analytics
When your agent uses it
Use when answering a question that needs data from a ktx-connected database - investigating, analyzing, "how many", "show me", "what's the breakdown of", finding records by value, exploring tables, comparing periods, explaining metrics, or any data-analysis request. Triggers even when the user does not say "analytics"; if the answer requires querying a configured ktx connection, this skill applies.
What it loads into context
Frontmatter
90 tokensAlways available to the agent
SKILL.md
9,544 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore41,625 bytesSKILL.mdcore41,625 bytesSKILL.mdcore41,625 bytesSKILL.mdcore41,625 bytesSKILL.mdcore41,625 bytesSKILL.mdcore41,625 bytesSKILL.mdcore41,625 bytesSKILL.mdcore41,625 bytesSKILL.mdcore41,625 bytesSKILL.mdcore41,625 bytes
Read SKILL.md
# ktx Analytics Workflow
You have access to ktx MCP tools for data discovery, semantic-layer analysis, raw read-only SQL, wiki context, and memory ingest. Follow this workflow.
<workflow>
1. **Discover** - call `discover_data` first to see what exists across wiki pages, semantic-layer sources, metrics, dimensions, raw tables, and columns. Returns refs only.
2. **Inspect top hits in parallel** - for each promising ref:
- `kind: 'wiki'` -> `wiki_read`
- `kind: 'sl_source'`, `kind: 'sl_measure'`, or `kind: 'sl_dimension'` -> `sl_read_source`
- `kind: 'table'` or `kind: 'column'` -> `entity_details`
- For tables you intend to query, sample a few rows (`entity_details` plus a small `sql_execution` sample) to confirm date encoding, null prevalence in join/filter keys, and the real enum values — see the `<sql_craft>` Schema-discovery rules.
3. **Resolve business values** - if the user named a value such as "Acme Corp", "enterprise", or "status=shipped", call `dictionary_search` to find which column holds it.
4. **Plan the analysis** - identify the grain, metrics, dimensions, filters, time window, and expected row limits before querying. Confirm each filter/join column's real type before comparing it (see the `<sql_craft>` Schema-discovery rules). **Write down the exact output-column list first** — enumerate, from the question, every column the answer must have (each requested metric/attribute; for every grouped or named entity BOTH its id and its name; every input to each derived value) and treat that list as the contract your final `SELECT` must match column-for-column. Decide this list *before* writing SQL, not after — building the projection to a pre-stated list is far more reliable than reviewing for omissions at the end.
5. **Query** -View the complete source on GitHubdbt_ingest
When your agent uses it
Map dbt `schema.yml` / `properties.yml` models and sources into ktx semantic-layer overlays and column notes. Covers `sources:` vs `models:`, column `data_tests` (not_null, unique, accepted_values, relationships), and how bundle-time writes complement manifest backfill from git sync. Load when the WorkUnit's `skillNames` includes `dbt_ingest` or when raw files are dbt YAML under `models/` / `sources/`.
What it loads into context
Frontmatter
114 tokensAlways available to the agent
SKILL.md
1,588 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Mapping (models / sources → SL)
- Physical schema grounding
- Identifier Verification Protocol
- 1.1 test hints (descriptions / meta)
- Overlap with MetricFlow
- Do not
Files
SKILL.mdcore6,733 bytesSKILL.mdcore6,733 bytesSKILL.mdcore6,733 bytesSKILL.mdcore6,733 bytesSKILL.mdcore6,733 bytesSKILL.mdcore6,733 bytes
Read SKILL.md
# dbt → ktx (bundle ingest)
Use this skill for **uploaded** dbt projects (`dbt_project.yml` at stage root, `models/**`, `sources/**`, `schema.yml`). There is **no** `fetch()` in v1 - scheduled `dbt parse` / `manifest.json` pulls are out of scope; host-provided dbt sync may still backfill structured test metadata into `_schema` on the next sync.
## Mapping (models / sources → SL)
| dbt | ktx | Notes |
|-----|--------|--------|
| `models:` entry with `columns:` | **Overlay** on the manifest table with the same name (after `discover_data` / `entity_details`) | One SL source per physical table; model name may differ from DB name - resolve with `read_raw_file` + warehouse context. |
| `sources:` → `tables:` | Same as models; use `identifier` when present instead of logical `name`. | Schema + name must match how the connection sees tables. |
| Column `description` | `column_overrides[].descriptions.user` on the overlay | Do not overwrite `dbt` description keys from sync. |
| `data_tests: not_null` / `unique` | Short hint in column `descriptions` or notes: “dbt: not null”, “dbt: unique” | Full structured metadata lands in manifest via **sync**; the skill keeps bundle-time SL text useful for the agent. |
| `accepted_values` | Add a **brief** line in the column description: allowed values (truncate long lists) | Also mention enum-like use in `discover_data` / filters. |
| `relationships` | Add or confirm `joins:` on the overlay **only** when `to` resolves to a real table via `read_raw_file` + `discover_data` / `entity_details` | If the ref cannot be resolved, capture the intent in a wiki page instead. |View the complete source on GitHubgdrive_synthesize
When your agent uses it
Synthesize durable KTX wiki pages from staged Google Drive document pulls. Load when a WorkUnit contains Google Doc raw files from `docs/**`.
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
1,360 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Role
- Required Workflow
- What To Capture
- Quality
- Citation Style
- Semantic-Layer Rules
- Identifier Verification Protocol
- Tools
Files
SKILL.mdcore6,221 bytesSKILL.mdcore6,221 bytes
Read SKILL.md
# Google Drive Doc Synthesis
Use this skill when a WorkUnit contains staged Google Drive content from `docs/**`.
## Role
Each WorkUnit is one Google Doc plus its metadata. Read the assigned raw files, then write a small set of durable wiki entries that capture reusable organizational knowledge. Write final memory directly; do not write candidates.
## Required Workflow
1. Read the WorkUnit notes and `rawFiles` list. Document content lives in `page.md`; `metadata.json` holds title, path, url, modified time, and Drive folder context.
2. For each assigned doc, call `read_raw_file`, or `read_raw_span` for oversized docs when the notes specify a span.
3. Search `wiki_search` for existing pages that overlap the WorkUnit topics. Prefer updating an existing page over creating a duplicate.
4. Use `context_evidence_search`, `context_evidence_read`, and `context_evidence_neighbors` when indexed document chunks would help reconcile related facts. Pass `chunkId` and `documentId` values verbatim as returned by the evidence tools.View the complete source on GitHubhistoric_sql_patterns
When your agent uses it
Identify recurring cross-table historic-SQL analytical intents from a bounded pattern shard and emit typed pattern evidence for deterministic wiki projection.
What it loads into context
Frontmatter
39 tokensAlways available to the agent
SKILL.md
964 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Required Workflow
- Identifier Verification Protocol
- Evidence Shape
- Pattern Selection Rules
- Boundaries
Files
SKILL.mdcore4,212 bytesSKILL.mdcore4,212 bytesSKILL.mdcore4,212 bytesSKILL.mdcore4,212 bytes
Read SKILL.md
# Historic SQL Patterns
Use this skill when the WorkUnit raw file is a `patterns-input/part-0001.json` style shard from the `historic-sql` adapter. Older staged bundles may still provide root `patterns-input.json`; when that is the WorkUnit raw file, read it the same way.
## Required Workflow
1. Read the WorkUnit notes first.
2. Find the single pattern input file listed under the WorkUnit `rawFiles` section.
3. Call `read_raw_file` for that exact raw file path.
4. Identify recurring analytical intents that span at least two tables and have repeated usage signal.
5. Emit one `pattern` evidence object per durable cross-table intent by calling `emit_historic_sql_evidence`.
6. Stop after all pattern evidence has been emitted.
Every join column mentioned in pattern descriptions must be verified viaView the complete source on GitHubhistoric_sql_table_digest
When your agent uses it
Convert one changed historic-SQL table usage bucket into typed table usage evidence for deterministic _schema projection.
What it loads into context
Frontmatter
36 tokensAlways available to the agent
SKILL.md
917 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Required Workflow
- Identifier Verification Protocol
- Evidence Shape
- Interpretation Rules
- Boundaries
Files
SKILL.mdcore3,783 bytesSKILL.mdcore3,783 bytes
Read SKILL.md
# Historic SQL Table Digest
Use this skill when the WorkUnit raw file is one `tables/<schema>.<name>.json` file from the `historic-sql` adapter.
## Required Workflow
1. Read the WorkUnit notes first.
2. Call `read_raw_file` for the single `tables/<schema>.<name>.json` raw file.
3. Read `manifest.json` only if the table JSON omits the dialect or the WorkUnit notes are unclear.
4. Produce one concise usage narrative for this table from the staged table JSON.
5. Call `emit_historic_sql_evidence` exactly once with `kind: "table_usage"`.
6. Stop after the evidence tool succeeds.
## Identifier Verification ProtocolView the complete source on GitHubingest_triage
When your agent uses it
Classify and resolve conflicts detected during bundle ingest (structural duplicates, definitional contradictions, near-duplicate clusters, re-ingest changes, evictions).
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
1,243 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Decision tree
- Why same-ingest vs re-ingest differs
- Naming disambiguation hints
- Applying canonical pins
- What to write in the unified wiki page
- Silence rules
Files
SKILL.mdcore5,563 bytesSKILL.mdcore5,563 bytes
Read SKILL.md
# Ingest Triage - conflict classification and resolution
This skill is loaded in two contexts:
- By a Stage 3 WorkUnit agent when `sl_discover`, deterministic projection
output, existing project memory, or prior provenance overlaps with what the
current WorkUnit is about to write.
- By the Stage 4 reconciliation agent for cross-WorkUnit sweeps, accepted patch
overlap, and eviction decisions.
Apply the rules below before every write that could collide with an existing artifact.
## Decision tree
1. **Is this the same artifact I'm producing now, or a different one with the same name?**View the complete source on GitHublive_database_ingest
When your agent uses it
Capture semantic-layer and knowledge updates from a live database schema snapshot.
What it loads into context
Frontmatter
29 tokensAlways available to the agent
SKILL.md
777 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Identifier Verification Protocol
- Source shape
- Boundaries
Files
SKILL.mdcore3,256 bytesSKILL.mdcore3,256 bytesSKILL.mdcore3,256 bytesSKILL.mdcore3,256 bytesSKILL.mdcore3,256 bytes
Read SKILL.md
# Live Database Ingest
Use this skill when the ingest work unit contains raw files under
`raw-sources/<connectionId>/live-database/<syncId>/`.
## Workflow
1. Read the table JSON file listed in the work unit.
2. Read `connection.json` to understand the snapshot metadata.
3. Read `foreign-keys.json` when the table has a foreign key or when joins are
needed for the semantic-layer source.
4. Create or update one semantic-layer source for the table with
`sl_write_source`.
5. Use the physical table name from the raw JSON as the source `table` field.View the complete source on GitHublooker_ingest
When your agent uses it
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/.
What it loads into context
Frontmatter
55 tokensAlways available to the agent
SKILL.md
3,083 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Required Workflow
- Identifier Verification Protocol
- Explore WorkUnits
- Look And Dashboard WorkUnits
- Capture Rules
- Usage Signals
- Provenance And Cross-References
- Examples
Files
SKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytesSKILL.mdcore13,423 bytes
Read SKILL.md
# 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
1. Read every `rawFiles` entry for the WorkUnit.
2. Read relevant `dependencyPaths` before making a decision. For dashboard and Look WUs this usually includes the referenced explore JSON, signal files, `folders/tree.json`, and `users/<id>.json`.
3. Treat `signals/*.json`, owners, folders, schedules, and favorites as prioritization or provenance context only.
4. Extract generalizable metric formulas, segment definitions, field semantics, and domain conventions.
5. Use `wiki_search`, `sl_discover`, and `sl_read_source` before writing so new content merges with existing memory instead of duplicating it.
6. Use `context_evidence_search` or `context_evidence_read` to obtain evidence chunk IDs for any wiki-bound knowledge candidate.
7. Use `context_candidate_write` for durable wiki-bound knowledge. Do not call `wiki_write` from a Looker WorkUnit; Stage 4 reconciliation promotes candidates and writes wiki pages.
8. Use `looker_query_to_sl` for each Look query or dashboard tile query that has a `query` object.View the complete source on GitHublookml_ingest
When your agent uses it
Map a LookML view/model/explore into ktx semantic layer sources. Covers the LookML to ktx primitive table, provenance tagging, and three worked examples (overlay, standalone from derived_table, standalone with sql_always_where). Load when the turn contains `.lkml` content.
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
2,749 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Mapping table
- Decision rules
- Preflight: never guess column names
- Identifier Verification Protocol
- Provenance markers
- Example 1 - overlay (thin wrapper)
- Example 2 - standalone from `derived_table`
- Example 3 - standalone with `sql_always_where`
Files
SKILL.mdcore10,455 bytesSKILL.mdcore10,455 bytesSKILL.mdcore10,455 bytesSKILL.mdcore10,455 bytes
Read SKILL.md
# LookML to ktx Semantic Layer
LookML views map to SL sources, `measure:` to measures, `explore: { join: }` to the join graph. This skill lays out the mapping and the three capture shapes.
## Mapping table
| LookML | ktx form | Notes |
|---|---|---|
| `view: X { sql_table_name: …; measure:/dimension:/join: }` | **Overlay** named `X` with `measures`, computed-only `columns`, `column_overrides`, `joins`, `segments` | Manifest-backed; inherit grain/columns |
| `view: X { derived_table: { sql: … } }` | **Standalone** with top-level `sql:`, explicit `grain:` + `columns:` | No manifest entry exists |
| `view: X { sql_always_where: <p> }` | **Standalone** with `sql: SELECT * FROM <base> WHERE <p>` | Enforcement, not opt-in |
| `explore: { join: Y { sql_on: …; relationship: … } }` | `joins:` entry `{ to: Y, on: "<local> = Y.<col>", relationship: … }` | On the overlay or standalone |
| `conditionally_filter` / `always_filter` | `segments: [{ name, expr }]` | Callers reference by name |
| Manifest entry | `_schema/*.yaml` | **Never edit** - auto-imported |View the complete source on GitHubmetabase_ingest
When your agent uses it
Convert Metabase questions, models, and metrics into ktx Semantic Layer source definitions. Covers result-metadata to KSL column type mapping, FK/PK detection, near-duplicate deduplication, pre-aggregation decomposition, join-graph connectivity, and how to react to priorProvenance from earlier ingest syncs. Load when the WorkUnit contains `cards/<id>.json` files under a Metabase bundle.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
4,779 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Context format
- Identifier Verification Protocol
- Decision tree
- priorProvenance
- Deduplication
- Pre-aggregation decomposition
- SQL translation from raw native to KSL
- Join-graph connectivity
- Cross-card references (`{{#N}}`)
- Provenance markers
- Quality standards
- Rules
Files
SKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytesSKILL.mdcore19,834 bytes
Read SKILL.md
# Metabase to ktx Semantic Layer
Each WorkUnit represents one Metabase collection's cards for one Metabase database (mapped to exactly one ktx connection). Every `cards/<id>.json` file carries the resolved SQL, result_metadata, card type, collection path, and referenced-card ids. The WU's `sync-config.json` tells you which sync mode is active and which selections apply. `databases/<id>.json` tells you the target ktx connection.
## Context format
Each card JSON looks like:
```json
{
"metabaseId": 7,
"name": "Daily orders",
"description": "Orders by day",
"type": "model",
"databaseId": 42,View the complete source on GitHubmetricflow_ingest
When your agent uses it
Map a MetricFlow semantic_model or metric into ktx semantic layer sources. Covers the MetricFlow to ktx primitive table, `extends:` inheritance flattening, metric-type handling (simple / derived / ratio / cumulative / conversion), `model: ref('x')` resolution, and four worked examples. Load when the turn contains `.yml`/`.yaml` files with top-level `semantic_models:` or `metrics:`.
What it loads into context
Frontmatter
103 tokensAlways available to the agent
SKILL.md
3,907 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Mapping table
- Identifier Verification Protocol
- Flattening `extends:`
- `model:` ref resolution
- Cumulative metrics - sql-standalone fallback
- Conversion metrics - flag for human
- Provenance markers
- Example 1 - single semantic_model to overlay
- Example 2 - extends chain → one flattened overlay
- Example 3 - derived metric spanning two semantic_models
- Example 4 - filtered metric creates a new measure
Files
SKILL.mdcore15,079 bytesSKILL.mdcore15,079 bytesSKILL.mdcore15,079 bytesSKILL.mdcore15,079 bytesSKILL.mdcore15,079 bytesSKILL.mdcore15,079 bytesSKILL.mdcore15,079 bytesSKILL.mdcore15,079 bytesSKILL.mdcore15,079 bytesSKILL.mdcore15,079 bytesSKILL.mdcore15,079 bytesSKILL.mdcore15,079 bytes
Read SKILL.md
# MetricFlow to ktx Semantic Layer
A MetricFlow `semantic_model` maps to an SL source; MetricFlow `measures` map to ktx measures; MetricFlow `entities` map to ktx `joins`; MetricFlow `metrics` (top-level) map to ktx measures OR to cross-model derived measures. Files in one WorkUnit are ALWAYS part of the same logical entity (a connected component, possibly spanning `extends:` + cross-model metric refs). Flatten inheritance and cross-file references at write time.
## Mapping table
| MetricFlow | ktx form | Notes |
|---|---|---|
| `semantic_model: X { model: ref('t') }` with measures + dimensions | **Overlay** named `X` with `measures`, computed-only `columns`, `column_overrides`, `joins` | The `model:` ref resolves to a manifest table. |
| `semantic_model: X { model: source('s','t') }` | **Overlay** named `X` over table `t`. | Same shape; `source()` still resolves to a physical table. |
| `semantic_model: X { model: <literal> }` with no manifest entry | **Standalone** with explicit `sql:`, `grain:`, `columns:` | Happens when the dbt manifest isn't available. |
| `semantic_model: Y { extends: X }` | **Merge** Y's measures/dimensions/entities into X's overlay, or write a single overlay named for the most-derived child (Y) containing both X's and Y's primitives | Do not emit a second overlay for X - flatten. |
| `measures: [{ name, agg, expr }]` | `measures: [{ name, expr: "<agg>(<expr>)" }]` | Aggregation inlined. `agg: count_distinct` → `count(distinct ...)`. |
| `entities: [{ name, type: primary }]` | `grain: [<entity_name-or-expr>]` on the overlay/standalone | Primary/unique entities drive grain. |View the complete source on GitHubnotion_synthesize
When your agent uses it
Synthesize durable ktx wiki pages and semantic-layer sources from staged Notion pages, databases, data-source rows, and clustered Notion evidence. Load when a WorkUnit contains Notion raw files or Notion evidence chunks.
What it loads into context
Frontmatter
60 tokensAlways available to the agent
SKILL.md
1,743 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Role
- Required Workflow
- What To Capture
- Quality
- Citation Style
- Semantic-Layer Rules
- Identifier Verification Protocol
- Tools
Files
SKILL.mdcore7,952 bytesSKILL.mdcore7,952 bytesSKILL.mdcore7,952 bytesSKILL.mdcore7,952 bytesSKILL.mdcore7,952 bytesSKILL.mdcore7,952 bytesSKILL.mdcore7,952 bytesSKILL.mdcore7,952 bytesSKILL.mdcore7,952 bytesSKILL.mdcore7,952 bytes
Read SKILL.md
# Notion Cluster Synthesis
Use this skill when a WorkUnit contains staged Notion content from `pages/**`, `databases/**`, `data-sources/**`, or clustered Notion evidence.
## Role
Each WorkUnit is either a single Notion page/span or a topical cluster of related Notion pages, pre-grouped by embedding similarity. Read the assigned raw files, then write a small set of durable wiki entries and, when applicable, semantic-layer sources that synthesize the WorkUnit's knowledge. Write final memory directly; do not write candidates.
## Required Workflow
1. Read the WorkUnit notes and rawFiles list. Page content lives in `page.md`; `metadata.json` holds title, path, object type, data-source ids, last edited metadata, and properties.
2. For each assigned page, call `read_raw_file`, or `read_raw_span` for oversized pages when the notes specify a span.
3. Search `wiki_search` for existing pages that overlap the WorkUnit topics. Prefer updating an existing page over creating a duplicate.
4. Use `context_evidence_search`, `context_evidence_read`, and `context_evidence_neighbors` to pull supporting chunks when indexed evidence is relevant. Pass `chunkId` and `documentId` values verbatim as returned by the evidence tools.View the complete source on GitHubsigma_ingest
When your agent uses it
Extract durable ktx wiki knowledge from staged Sigma data model specs and workbook summaries. Load for WorkUnits with unitKey sigma-data-models or sigma-workbooks.
What it loads into context
Frontmatter
47 tokensAlways available to the agent
SKILL.md
2,632 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Work unit structure
- Staged file shapes
- Required workflow
- Identifier Verification Protocol
- Data model elements
- Workbooks
- Capture rules
- Usage signals
Files
SKILL.mdcore11,201 bytesSKILL.mdcore11,201 bytesSKILL.mdcore11,201 bytesSKILL.mdcore11,201 bytesSKILL.mdcore11,201 bytesSKILL.mdcore11,201 bytesSKILL.mdcore11,201 bytesSKILL.mdcore11,201 bytesSKILL.mdcore11,201 bytesSKILL.mdcore11,201 bytes
Read SKILL.md
# Sigma Ingest
Sigma ingest turns staged data model specs and workbook summaries into durable ktx wiki knowledge. The deterministic `project()` step has already written semantic-layer YAML for all warehouse-table data model elements before this skill runs — do not re-write those SL sources.
## Work unit structure
Sigma produces at minimum two work units per ingest run:
- `sigma-data-models` or `sigma-data-models-N`
- `rawFiles`: `data-models/<id>.json` files (one per data model in this batch)
- `peerFileIndex`: `workbooks/<id>.json` files + `sigma-manifest.json` + `sigma-projection-config.json`
- When the workspace has more than 50 data models, split into batches: `sigma-data-models-0`, `sigma-data-models-1`, … with `displayLabel` like `"Sigma: data models (1/8)"`. When ≤50 data models, the unitKey is simply `sigma-data-models` with no suffix.
- `sigma-workbooks` or `sigma-workbooks-N`
- `rawFiles`: `workbooks/<id>.json` files (one per workbook in this batch)View the complete source on GitHubsl
When your agent uses it
ktx's semantic layer - a structured catalog of sources (tables/views), measures, joins, and segments expressed as YAML. Covers the schema and how to query it via `sl_query`. Use when the task involves querying pre-defined metrics (ARR, churn, retention, LTV, MAU) or reading SL source YAML to understand the catalog. Capture is handled by the `sl_capture` skill (memory-agent only).
What it loads into context
Frontmatter
91 tokensAlways available to the agent
SKILL.md
2,540 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Part 1 - Schema reference
- Part 2 - Querying via `sl_query`
Files
SKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytesSKILL.mdcore10,731 bytes
Read SKILL.md
# Semantic Layer
ktx's semantic layer (SL) is a structured catalog. Each **source** represents a table, a SQL view, or an overlay that enriches a manifest-backed table with measures, computed columns, joins, and named segments. The catalog is the single source of truth for reusable business metrics.
This skill covers two parts:
- **Part 1** - Schema reference (what an SL source looks like).
- **Part 2** - Querying via `sl_query`.
Capture (when and how to add new patterns to the SL) is a separate concern handled by the memory-agent - see the `sl_capture` skill if you are running in capture mode. The research agent **reads** and **queries** the SL via the tools described here; it does not write to it.
For capture-time identifier verification, load `sl_capture`. Synthesis writer
skills must verify warehouse identifiers with `discover_data`,
`entity_details`, and `sql_execution` before emitting table or column names.
View the complete source on GitHubsl_capture
When your agent uses it
How to capture new reusable patterns into ktx's semantic layer - when a measure, segment, or join belongs in the catalog and how to write it generically so it stays small and useful over time. Loaded by the post-turn memory-agent only. The research agent does not write to the SL.
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
4,479 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- SQL dialect
- What's worth capturing
- Generalization rules
- Slim standalone sources via `inherits_columns_from`
- Refinement - replace, don't append
- Edit SL vs document in wiki
- Identifier Verification Protocol
- Tool sequence
- Editing patterns
- Worked example - additive overlay
- Worked example - refinement (replace)
- Worked example - new join
- Rules recap
Files
SKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytesSKILL.mdcore18,932 bytes
Read SKILL.md
# Semantic Layer - Capture
This skill covers **when** and **how** to capture new patterns into the semantic layer. For schema reference and query grammar, load the `sl` skill first.
When the current turn produces a reusable pattern (business metric, derived view, join pattern, computed dimension), capture it so future queries can reach for it instead of rediscovering it.
## SQL dialect
The user-facing prompt includes a `Warehouse:` line under the SL Sources index
(e.g. `Warehouse: BIGQUERY`). All `expr` strings - measure expressions, segment
predicates, computed-column SQL - execute on that warehouse and must use its
syntax. Date arithmetic in particular varies by dialect:
- **BigQuery**: `transaction_date >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 90 DAY)` (when the column is `TIMESTAMP`); `event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY)` (when `DATE`).View the complete source on GitHubwiki_capture
When your agent uses it
ktx's knowledge base - wiki pages for durable, reusable business knowledge. Covers capture workflow for user preferences, metric definitions, organizational conventions, and cross-references between wiki pages and semantic-layer sources. Loaded by the post-turn memory-agent only. The research agent reads wiki via `wiki_read`/`wiki_search` but does not write it.
What it loads into context
Frontmatter
84 tokensAlways available to the agent
SKILL.md
2,499 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Role
- What to capture
- Workflow
- Identifier Verification Protocol
- Keys, summaries, and content
- Tags, refs, sl_refs
- Connection scoping
- Editing existing pages
- Overriding an organization rule
- Worked example - capturing a metric with cross-references
- Rules
Files
SKILL.mdcore11,072 bytesSKILL.mdcore11,072 bytesSKILL.mdcore11,072 bytesSKILL.mdcore11,072 bytesSKILL.mdcore11,072 bytes
Read SKILL.md
# Wiki Capture
## Role
The knowledge base stores durable, reusable business knowledge for an analytics assistant. Each page is a self-contained rule, definition, or convention that answers "how should this concept be handled in this organization?" - written once and reused across chats.
Scope selection is handled by the runtime:
- When user-scoped knowledge is enabled AND the caller is a chat turn, writes go to the user's **personal** scope.
- When the caller is an admin-driven ingest (`sourceType: 'external_ingest'`), writes go to the **global** scope.
- When user-scoped knowledge is disabled, all writes go to the global scope.
The `wiki_write` tool picks the right scope based on the session. Capture logic does not need to choose - focus on whether the content is worth capturing at all.
## What to captureView the complete source on GitHubktx
When your agent uses it
Installs and configures ktx, the open-source context layer for data agents — runs ktx setup non-interactively with hidden CLI flags, configures database connections and embeddings, installs agent integration, and verifies readiness. Use when the user asks an agent to add ktx to a project, connect data sources, install agent rules, ingest schema, or troubleshoot a local ktx install.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
3,365 tokensWhen the skill is activated
Reference documents
1,050 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Operating rules
- Gather inputs once
- Install workflow
- Add context sources
- Files to inspect
- Verification
- Troubleshooting
- Final report
Files
SKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesSKILL.mdcore12,805 bytesagents/openai.yamlasset216 bytestroubleshooting.mddoc4,009 bytes
Read SKILL.md
# ktx
Install and configure **ktx**, the open-source context layer for data agents.
Use this skill when a user wants an agent to add **ktx** to a project, connect
data sources, build initial context, install agent integration, or troubleshoot
a local **ktx** setup.
## Operating rules
- Act autonomously when the user asks you to install or configure **ktx**.
The non-interactive scripted flow below is the canonical path — bare
`ktx setup` is interactive (clack prompts) and an agent cannot drive it.
- Setup's non-interactive flags are intentionally hidden from `--help`. Use the
flags listed below; verify uncommon flags against the docs atView the complete source on GitHubSkills included
- ktx-analytics
- dbt_ingest
- gdrive_synthesize
- historic_sql_patterns
- historic_sql_table_digest
- ingest_triage
- live_database_ingest
- looker_ingest
- lookml_ingest
- metabase_ingest
- metricflow_ingest
- notion_synthesize
- sigma_ingest
- sl
- sl_capture
- wiki_capture
- ktx
Repository facts
- License
- Apache-2.0
- Created
- May 10, 2026
- Last pushed
- Oct 22, 2026
- Forks
- 111
- Open issues
- 26
- Project activity
- Active
Rank over the last 12 weeks
Now #615 · best #442 · down 101 in 30 days
- #603 on Oct 31
- #604 on Nov 1
- #606 on Nov 2
- #612 on Nov 3
- #614 on Nov 4
- #615 since Nov 5
62 earlier periods
- #423 on Aug 2
- #431 on Aug 7
- #435 on Aug 8
- #429 on Aug 9
- #446 on Aug 10
- #444 from Aug 11 to Aug 12
- #452 on Aug 13
- #447 on Aug 14
- #446 on Aug 16
- #452 on Aug 17
- #456 on Aug 18
- #455 on Aug 19
- #452 on Aug 20
- #456 on Aug 21
- #442 on Aug 22
- #458 on Aug 24
- #463 on Aug 25
- #457 on Aug 26
- #466 on Aug 27
- #463 on Aug 28
- #456 on Aug 29
- #466 on Aug 31
- #472 on Sep 1
- #470 on Sep 2
- #461 on Sep 4
- #467 on Sep 5
- #473 on Sep 6
- #476 on Sep 7
- #491 on Sep 8
- #487 on Sep 10
- #483 on Sep 11
- #481 on Sep 12
- #479 on Sep 13
- #494 on Sep 14
- #489 on Sep 15
- #497 from Sep 16 to Sep 17
- #502 on Sep 18
- #484 on Sep 19
- #492 on Sep 20
- #494 on Sep 21
- #492 on Sep 24
- #490 on Sep 25
- #486 on Sep 26
- #506 on Sep 28
- #520 on Sep 29
- #503 on Oct 1
- #505 on Oct 2
- #488 on Oct 4
- #496 on Oct 5
- #514 on Oct 7
- #531 on Oct 8
- #530 on Oct 9
- #521 on Oct 10
- #537 on Oct 14
- #532 on Oct 15
- #534 on Oct 16
- #551 on Oct 20
- #540 on Oct 23
- #588 on Oct 25
- #596 on Oct 28
- #597 on Oct 29
- #602 on Oct 30
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 146 notes
packages/cli/src/skills/analytics/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/analytics/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/analytics/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/analytics/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/analytics/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/analytics/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/analytics/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/analytics/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/analytics/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/dbt_ingest/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/dbt_ingest/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/dbt_ingest/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/dbt_ingest/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/dbt_ingest/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/gdrive_synthesize/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/historic_sql_patterns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/historic_sql_patterns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/historic_sql_patterns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/historic_sql_table_digest/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/cli/src/skills/ingest_triage/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 1 dangerous shell commandin 1 file: analytics/SKILL.md:234
- 7 network referencesin 4 files: ktx/SKILL.md:18 wiki_capture/SKILL.md:25 dbt_ingest/SKILL.md:9 and 1 more
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- 4 references to secretsin 2 files: ktx/SKILL.md:52 ktx/troubleshooting.md:44
- No requests to vote in Hot
Show all 12 signals by file
packages/cli/src/skills/analytics/SKILL.md
- Dangerous shell operationline 234
JOIN region_monthly rm ON rm.region_id = r.region_id
packages/cli/src/skills/dbt_ingest/SKILL.md
- Network accessline 9
Use this skill for **uploaded** dbt projects (`dbt_project.yml` at stage root, `models/**`, `sources/**`, `schema.yml`). There is **no** `fetch()` in v1 - scheduled `dbt parse` / `manifest.json` pulls are out of scope; host-provided dbt syn
packages/cli/src/skills/sigma_ingest/SKILL.md
- Network accessline 84
**`sigma-projection-config.json`** — written by `fetch()`, contains two fields the skill must read:
packages/cli/src/skills/wiki_capture/SKILL.md
- Network accessline 25
- A mapping or alias ("mood_stress_sleep = Oxytocin protocol"). - A domain rule that is not visible from column names alone ("status = 'T' means terminated, not 'terminated'"). - A link or external system convention ("medplum_patient_id is - Network accessline 27
- A link or external system convention ("medplum_patient_id is the primary key in the EMR at https://emr.example/patients/{id}").
skills/ktx/SKILL.md
- Network accessline 18
- Setup's non-interactive flags are intentionally hidden from `--help`. Use the flags listed below; verify uncommon flags against the docs at `https://docs.kaelio.com/ktx/` or this skill — not against `--help` output. - Network accessline 19
flags listed below; verify uncommon flags against the docs at `https://docs.kaelio.com/ktx/` or this skill — not against `--help` output. - Ask only for values you cannot infer: project directory, connection targets, - Network accessline 20
`https://docs.kaelio.com/ktx/` or this skill — not against `--help` output. - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted]
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
No combined signals at this commit.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Path CLAUDE.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md packages/cli/src/skills/analytics/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Native | Path GEMINI.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md packages/cli/src/skills/analytics/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md packages/cli/src/skills/analytics/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/kaelio-ktx/)