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/terrene-foundation/metis/02-dataflownpx skills add terrene-foundation/metis --skill 02-dataflowgit clone --depth 1 https://github.com/terrene-foundation/metisWrote 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/terrene-foundation/metis/02-dataflow)<a href="https://agentmods.dev/skills/terrene-foundation/metis/02-dataflow"><img src="https://agentmods.dev/badge/skills/terrene-foundation/metis/02-dataflow.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 | $0.00202 | $0.02520 |
| Opus 5 | $0.00101 | $0.01260 |
| Sonnet 5 | $0.00040 | $0.00504 |
| Haiku 4.5 | $0.00020 | $0.00252 |
Grade A, and why
dataflow 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 4d 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.
This is a copy
95% identical to dataflow — 2 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 237 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Kailash DataFlow - Zero-Config Database Framework
DataFlow is a zero-config database framework built on Kailash Core SDK that automatically generates workflow nodes from database models.
Overview
- Automatic Node Generation: 11 nodes per model (@db.model decorator)
- Multi-Database Support: PostgreSQL, MySQL, SQLite (SQL) + MongoDB (Document) + pgvector (Vector Search)
- Enterprise Features: Multi-tenancy, multi-instance isolation, transactions
- Zero Configuration: String IDs preserved, deferred schema operations
- Developer Experience: Enhanced errors (DF-XXX codes), strict mode validation, debug agent, CLI tools
Quick Start
Express API (Recommended for Simple CRUD)
from dataflow import DataFlow
# Zero-config initialization
db = DataFlow("sqlite:///app.db", auto_migrate=True)
@db.model
class User:
name: str
email: str
active: bool = True
await db.initialize()
# Async Express (default) — 23x faster than workflow primitives
result = await db.express.create("User", {"name": "Alice", "email": "[email protected]"})
user = await db.express.read("User", result["id"]) # accepts both str and int IDs
users = await db.express.list("User", {"active": True})
count = await db.express.count("User")
await db.express.update("User", result["id"], {"name": "Bob"})
await db.express.delete("User", result["id"])
# Sync Express (CLI scripts, non-async contexts)
result = db.express_sync.create("User", {"name": "Alice", "email": "[email protected]"})
users = db.express_sync.list("User", {"active": True})
Workflow API (For Multi-Step Operations)
Use WorkflowBuilder only when you need multiple nodes with data flow between them.
from kailash.workflow.builder import WorkflowBuilder
from kailash.runtime.local import LocalRuntime
# Multi-node workflow with connections
workflow = WorkflowBuilder()
workflow.add_node("User_Create", "create_user", {
"data": {"name": "John", "email": "[email protected]"}
})
# Execute with context manager (recommended for resource cleanup)
with LocalRuntime() as runtime:
results, run_id = runtime.execute(workflow.build())
user_id = results["create_user"]["result"] # Access pattern
What ships with it
56 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- cache-cas-fail-closed.md 4.9 KB
- dataflow-advanced-patterns.md 4.1 KB
- dataflow-aggregation.md 14 KB
- dataflow-async-lifecycle.md 5.1 KB
- dataflow-bulk-operations.md 6.1 KB
- dataflow-cli-commands.md 2.6 KB
- dataflow-compliance.md 1.4 KB
- dataflow-connection-config.md 8.7 KB
- dataflow-connection-isolation.md 12 KB
- dataflow-count-node.md 9.4 KB
- dataflow-crud-operations.md 20 KB
- dataflow-custom-nodes.md 2.5 KB
- dataflow-debug-agent.md 3.6 KB
- dataflow-deployment.md 3.8 KB
- dataflow-derived-models.md 5.4 KB
- dataflow-dialects.md 6.8 KB
- dataflow-dynamic-updates.md 2.8 KB
- dataflow-enterprise-migrations.md 2.3 KB
- dataflow-error-enhancer.md 2.2 KB
- dataflow-events.md 4.2 KB
- dataflow-existing-database.md 8.6 KB
- dataflow-express-cache.md 3.4 KB
- dataflow-express.md 3.3 KB
- dataflow-fabric-cache-consumers.md 2.1 KB
- dataflow-fabric-engine.md 19 KB
- dataflow-file-import.md 4.1 KB
- dataflow-gotchas.md 20 KB
- dataflow-inspector.md 1.9 KB
- dataflow-installation.md 1.6 KB
- dataflow-migrations-quick.md 1.9 KB
- dataflow-ml-integration.md 5.1 KB
- dataflow-models.md 9.6 KB
- dataflow-monitoring.md 5.1 KB
- dataflow-multi-instance.md 2.8 KB
- dataflow-multi-tenancy.md 3.1 KB
- dataflow-native-arrays.md 2.3 KB
- dataflow-nexus-integration.md 5.8 KB
- dataflow-performance.md 5.4 KB
- dataflow-provenance-audit.md 1.7 KB
- dataflow-queries.md 12 KB
- dataflow-quickstart.md 14 KB
- dataflow-read-replicas.md 2.7 KB
- dataflow-result-access.md 5.7 KB
- dataflow-retention.md 3.2 KB
- dataflow-schema-cache.md 3.3 KB
- dataflow-sqlite-concurrency.md 5.0 KB
- dataflow-strict-mode.md 1.5 KB
- dataflow-tdd-api.md 1.6 KB
- dataflow-tdd-best-practices.md 1.6 KB
- dataflow-tdd-mode.md 3.4 KB
- dataflow-transactions.md 2.6 KB
- dataflow-troubleshooting.md 6.6 KB
- dataflow-upsert-node.md 10 KB
- dataflow-validation-dsl.md 2.6 KB
- dataflow-validation-layers.md 1.6 KB
- migration-scaffold.md 14 KB
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.
- 4d ago First seen · 237 lines · 202 tokens per session scan A 36766967aa11
dataflow is a skill published in the GitHub repository terrene-foundation/metis (2 stars, last pushed 4mo ago), licensed Apache-2.0. It adds 202 tokens to every session and 2,520 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. It is 95% identical to dataflow, differing in 2 lines, and is treated as a copy.
Other skills, from other repositories
schema-exploration
Lists tables, describes columns and data types, identifies foreign key relationships, and maps entity relationships in a database. Use when the user asks about database schema, table structure, column types, what tables exist, ERD, foreign keys, or how entities relate.
sdk-design
Doctrine for designing and evolving any SDK Grida ships — TypeScript, Rust, or otherwise. "SDK" here means a surface that crosses a foreign-or-foreign-treated boundary: published packages, separately-versioned consumers, FFI bindings, public-by-design modules. An SDK's job is to refuse; a strict, honest surface…
ha-data-stores
Map of Hope Agent's local data stores and safe read-only query workflow. Use when the user asks where Hope Agent stores data, wants to inspect sessions/messages/memory/logs/background jobs/knowledge indexes/settings, asks the model to query local app data, or debugging requires checking persisted state. Trigger…
supabase
Supabase / PostgREST Row-Level-Security playbook — pull the anon (or leaked servicerole) key out of the frontend JS, map tables from the auto-generated OpenAPI spec, test anonymous RLS READ disclosures (PII/secret leaks), and anonymous RLS WRITE abuse (insert/update/delete — e.g. forging…
dsql
Build with Aurora DSQL — manage schemas, execute queries, handle migrations, diagnose query plans, diagnose cluster performance, load data, and develop applications with a serverless, distributed SQL database. Covers IAM auth, multi-tenant patterns, MySQL-to-DSQL and PostgreSQL-to-DSQL schema conversion, foreign key…
volcengine-rds-postgresql
使用火山引擎 RDS PostgreSQL,帮助用户完成 RDS PostgreSQL 相关的实例管理、数据库操作、账号管理和运维任务,可直接调用 uv run ./scripts/callrdspostgresql.py 脚本获取实时结果。.