Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/elibarak12/elliot/discover-sourcenpx skills add EliBarak12/Elliot --skill discover-sourcegit clone --depth 1 https://github.com/EliBarak12/ElliotWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/elibarak12/elliot/discover-source)<a href="https://agentmods.dev/skills/elibarak12/elliot/discover-source"><img src="https://agentmods.dev/badge/skills/elibarak12/elliot/discover-source.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00046 | $0.03076 |
| Opus 5 | $0.00023 | $0.01538 |
| Sonnet 5 | $0.00009 | $0.00615 |
| Haiku 4.5 | $0.00005 | $0.00308 |
Grade A, and why
discover-source scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 252 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Discover Source Workflow
You are identifying the user's data source and registering it with Elliot. The
goal is to land at a state where elliot_discover_source has succeeded and the
next skill (build-connector) can draft tools against the discovered schema.
Step 0 — Set context if not already set
If elliot_get_session_state shows no product_context, call:
elliot_set_contextwithname(slug-style, e.g.acme-crm) and a one-sentencedescription.
If the user hasn't told you these yet, ask in one combined question. Don't ask two separate questions.
Step 1 — Identify the source type
Ask the user (one question, listing the options):
"What kind of source is this? REST API, Postgres, MySQL, or a file (CSV / JSON / JSONL)?"
Map their answer to a source_type:
| User says | source_type arg |
|---|---|
"REST", "API", URL ending in /api |
rest (aliases: api, http) |
"Postgres", "PG", postgres:// |
postgres (alias: db, postgresql) |
"MySQL", mysql:// |
mysql |
"CSV", "JSON", "JSONL", a .csv / .json file |
file (aliases: csv, json) |
If the user has an OpenAPI spec or Postman collection, this is the wrong
skill — switch to onboard-product and call elliot_import_api_collection
instead. elliot_discover_source does not ingest OpenAPI/Postman.
If the user wants to wrap a SQLite database, Elliot does not support it as a source today; ask them to export the relevant tables to CSV or JSON first.
Step 2 — Collect the right config fields for that source type
elliot_discover_source takes exactly three arguments:
elliot_discover_source(source_type=<one of above>, config=<dict>, name=<table name>)
Everything that varies by source type goes inside the config dict. Ask in one
batched message — never field-by-field, it wastes turns.
REST
{
"url": "https://api.acme.com/v1/customers",
"method": "GET",
"auth": {
"type": "bearer",
"secret_key": "{{ env:ACME_API_TOKEN }}"
},
"data_path": "data",
"pagination": {"strategy": "offset", "page_size": 50, "max_pages": 10}
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 252 lines · 46 tokens per session scan A 760fe79bb3a6
discover-source is a skill published in the GitHub repository EliBarak12/Elliot (11 stars, last pushed 5d ago), licensed MIT. It adds 46 tokens to every session and 3,076 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
embeddings
Vector embeddings with HNSW indexing, sql.js persistence, and hyperbolic support. 75x faster with agentic-flow integration. Use when: semantic search, pattern matching, similarity queries, knowledge retrieval. Skip when: exact text matching, simple lookups, no semantic understanding needed.
moai-domain-database
Database specialist covering PostgreSQL, MongoDB, Redis, Oracle, and cloud database platforms (Neon, Supabase, Firestore). Use for schema design, query optimization, indexing strategies, data modeling, or cloud database selection. Cloud vendor guide absorbed from moai-platform-database-cloud.
nw-ddd-eventsourcing
Event Sourcing and CQRS as DDD implementation patterns — when to use, aggregate event streams, projections, snapshots, sagas, upcasting, conflict resolution.
chroma-integration
Chroma local vector database setup and operations for development and production.
milvus-integration
Milvus distributed vector database configuration for large-scale RAG applications.
nw-query-optimization
SQL and NoSQL query optimization techniques, indexing strategies, execution plan analysis, JOIN algorithms, cardinality estimation, and database-specific query patterns.