Skip to main content
ClaudeWave

One data contract; generated types, validation, and UI per platform.

TemplatesRegistry oficial0 estrellas0 forksRustAGPL-3.0Actualizado today
ClaudeWave Trust Score
87/100
Trusted
Passed
  • Open-source license (AGPL-3.0)
  • Actively maintained (<30d)
  • Clear description
  • Documented (README)
Last scanned: 9/12/2026
Use as a project template
Method: Clone
Terminal
git clone https://github.com/marthvon/datuma_k my-project && cd my-project
1. Clone the template into a new project directory.
2. Follow the README setup (install dependencies, set environment variables).
3. Open it with Claude Code and start building.
Casos de uso

Resumen de Templates

# datuma_k

A data contract (`*.dtct`) plus templates (`*.ngin`) that generate source. Declare the shape once; each platform gets its own types, validation, and UI instead of copying fields by hand.

An API backend and a React client both need the same records: capacity 1–500, `starts_at` a datetime, title required. Without a shared contract those rules are rewritten in Pydantic, Zod, forms, and serializers, and they drift. datuma_k keeps the shape in `*.dtct`. Shared attributes (`min`, `max`, `local`, `required`) mean the same thing everywhere. ngin turns them into *different* code on purpose: Pydantic `Field(ge=, le=)` on Python, Zod `.min().max()` on TypeScript.

**Guide:** [guide/README.md](guide/README.md) — getting started, contracts, templates, the scripting language, `dk` queries, and generation.

## Install

The command is `datuma_k`. The package name is `datuma-k`. The Homebrew tap and Scoop bucket use `datuma_k` (underscore) — `brew tap marthvon/datuma-k` clones a repo that does not exist.

More detail: [guide/getting-started.md](guide/getting-started.md).

**macOS (and Linux with Homebrew)** — Homebrew 6 ignores untrusted taps, so `brew install datuma-k` after a bare `brew tap` will not find it:

```bash
brew install marthvon/datuma_k/datuma-k
```

If that still fails after an earlier `brew tap`, run `brew untap marthvon/datuma_k` first.

**Fedora**

```bash
sudo dnf copr enable marthvon/datuma-k
sudo dnf install datuma-k
```

**Debian / Ubuntu** — no apt repo:

```bash
# x86_64
curl -fsSL -o /tmp/datuma-k.deb https://github.com/marthvon/datuma_k/releases/download/v1.0.0/datuma-k_1.0.0_amd64.deb && sudo apt install /tmp/datuma-k.deb && rm -f /tmp/datuma-k.deb

# arm64
curl -fsSL -o /tmp/datuma-k.deb https://github.com/marthvon/datuma_k/releases/download/v1.0.0/datuma-k_1.0.0_arm64.deb && sudo apt install /tmp/datuma-k.deb && rm -f /tmp/datuma-k.deb
```

**Alpine** — musl `.apk` (unsigned). On Docker Alpine, install `curl` first; skip `sudo` if you are root. If a previous glibc apk is installed, `apk del datuma-k` first.

```sh
apk add --no-cache curl
curl -fsSL -o /tmp/datuma-k.apk https://github.com/marthvon/datuma_k/releases/download/v1.0.0/datuma-k_1.0.0_x86_64.apk && apk add --allow-untrusted /tmp/datuma-k.apk && rm -f /tmp/datuma-k.apk
```

aarch64: `datuma-k_1.0.0_aarch64.apk`. The command is `datuma_k`.

**Windows**

```powershell
scoop bucket add datuma_k https://github.com/marthvon/scoop-datuma_k
scoop install datuma-k
```

**Direct binary** — download a binary or `.rpm` from the same release page, rename to `datuma_k` (or `datuma_k.exe` on Windows), and put it on `PATH`. On Fedora without Copr: `sudo dnf install ./datuma-k-*-1.x86_64.rpm`.

**From source:** `cargo build --release` → `target/release/datuma_k`.

## Quick start

```bash
datuma_k start myapp
cd myapp
```

`start` creates `data/`, `engine/`, `definition/`, a `.env`, `data/keywords.md`, and a starter `definition/cases.def.ngin`. The `.env` is:

```
ROOT_DIRECTORY=.
DTCT_DIRECTORY=data
NGIN_DIRECTORY=engine
DEF_DIRECTORY=definition
```

Add `*.dtct` under `data/`, `*.ngin` under `engine/`, and extra `*.def.ngin` under `definition/` as needed. Document every contract name in `data/keywords.md`. Then generate from **this** project directory (not `$HOME` or `/` — if a command asks, type `yes`):

```bash
datuma_k run
```

## Commands

```
datuma_k start <project-name>
datuma_k check
datuma_k catalog [--trait NAME] [--model NAME] [--field NAME] [--attribute NAME] [--type NAME]
datuma_k preview
datuma_k run
```

`start` takes a single directory name (no `/` or `\`). `check`, `catalog`, and `preview` print JSON and do not write generated files. `catalog` filters match `dk` include filters. `run` commits planned files through dkcache.

`check` also requires `data/keywords.md`: every model, trait, type, attribute, and field name needs a table row with `kind`, `description`, `purpose`, and `platforms` (`api_server`, `web_frontend`, `mobile_frontend`). See [`mcp/resources/keywords.md`](mcp/resources/keywords.md).

Agents: install the MCP in [`mcp/`](mcp/README.md) instead of wrapping these commands by hand.

## What `run` does

1. Load directory paths from `.env` (`ROOT_DIRECTORY`, `DTCT_DIRECTORY`, `NGIN_DIRECTORY`, `DEF_DIRECTORY`).
2. Parse every `*.dtct`, `*.def.ngin`, and `*.ngin` under those trees.
3. Plan generated files from the templates.
4. Commit them through **dkcache**.

A `.dkcache` file sits next to generated output. Text **between** generated spans is kept across runs. Edits **inside** a generated snippet are overwritten the next time you run.

## Example

[`tests/example`](tests/example) is a FastAPI + Vite React app generated from one contract (`Event` and `Venue`). How to generate and start those servers: [`tests/example/README.md`](tests/example/README.md).

`cargo test` regenerates the example and checks the emitted files. It does not start uvicorn or npm.

## Developers

| Crate area | Role |
| --- | --- |
| `src/core` | Language, parser, interpreter |
| `src/dtct` | Data contracts (`*.dtct`) |
| `src/ngin` | Templates (`*.ngin`, `*.def.ngin`) |
| `src/dkcache` | Reconcile and commit generated files |
| `src/project` | Load, plan, catalog, check, preview |

```bash
cargo test
```

Parser internals and module notes: [`docs/README.md`](docs/README.md).

MCP (stdio, calls this binary): [`mcp/README.md`](mcp/README.md).

## License

Copyright (C) 2026 mamertvonn

datuma_k (the engine, MCP, grammars, and helpers shipped with this repository) is licensed under the GNU Affero General Public License v3.0. See [`LICENSE.md`](LICENSE.md).

Your own `*.dtct` and `*.ngin` files, and the source `datuma_k run` generates from them, are yours. AGPL does not apply to that output just because you used the binary.

Distributing a modified datuma_k, including offering it as a network service, must stay under AGPL.

Lo que la gente pregunta sobre datuma_k

¿Qué es marthvon/datuma_k?

+

marthvon/datuma_k es templates para el ecosistema de Claude AI. One data contract; generated types, validation, and UI per platform. Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-09-11.

¿Cómo se instala datuma_k?

+

Puedes instalar datuma_k clonando el repositorio (https://github.com/marthvon/datuma_k) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar marthvon/datuma_k?

+

Nuestro agente de seguridad ha analizado marthvon/datuma_k y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene marthvon/datuma_k?

+

marthvon/datuma_k es mantenido por marthvon. La última actividad registrada en GitHub es del 2026-09-11, con 0 issues abiertos.

¿Hay alternativas a datuma_k?

+

Sí. En ClaudeWave puedes explorar templates similares en /categories/templates, ordenados por popularidad o actividad reciente.

Despliega datuma_k en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: marthvon/datuma_k
[![Featured on ClaudeWave](https://claudewave.com/api/badge/marthvon-datuma-k)](https://claudewave.com/repo/marthvon-datuma-k)
<a href="https://claudewave.com/repo/marthvon-datuma-k"><img src="https://claudewave.com/api/badge/marthvon-datuma-k" alt="Featured on ClaudeWave: marthvon/datuma_k" width="320" height="64" /></a>

Más Templates

Alternativas a datuma_k