letar
Health Warn
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Fail
- child_process — Shell command execution capability in .claude/hooks/auto-format.js
- process.env — Environment variable access in .claude/hooks/auto-format.js
- fs module — File system access in .claude/hooks/auto-format.js
- child_process — Shell command execution capability in .claude/hooks/chakra-as-prop-check.js
- child_process — Shell command execution capability in .claude/hooks/kill-e2e-port.js
- spawnSync — Synchronous process spawning in .claude/hooks/kill-e2e-port.js
- process.env — Environment variable access in .claude/hooks/lib/studio-time-env.js
- fs module — File system access in .claude/hooks/lib/studio-time-env.js
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Open workshop: schema-driven forms for React, Vue and Angular (@letar/forms), plus a monorepo maintained by a team of AI agents — with the rules and incident write-ups they work by.
Letar
Открытая мастерская Kami: библиотеки, приложения и инструменты, которые
пишутся вместе с командой ИИ-агентов. Здесь лежит код, а ещё правила и разборы ошибок, по которым
эти агенты работают.
Документация форм · 46 живых примеров ·
English · Лицензия MIT
С чего начать
| Вы пришли, чтобы… | Читайте |
|---|---|
| найти библиотеку форм для React, Vue или Angular | Формы из схемы данных |
| узнать, как один репозиторий ведут десятки агентов | Как здесь работают ИИ-агенты |
| познакомиться с автором | kami.letar.best |
Формы из схемы данных
Вы описываете модель один раз — в схеме ZenStack. Плагин делает из неё
Zod-схему с подписями и подсказками, а @letar/forms рисует по ней готовую форму с проверкой
ввода.
model Recipe {
id String @id @default(cuid())
title String @meta("form.title", "Название рецепта") @meta("form.placeholder", "Введите название")
portions Int @default(1) @gte(1) @lte(100) @meta("form.title", "Количество порций")
tags String[] @meta("form.title", "Теги") @meta("form.fieldType", "tags")
}
import { RecipeCreateFormSchema } from '@/generated/form-schemas/Recipe.form'
import { Form } from '@letar/forms'
<Form.FromSchema schema={RecipeCreateFormSchema} initialValue={recipe} onSubmit={save} submitLabel="Сохранить" />
Форма из одной строки Form.FromSchema: подписи, подсказки и проверка email взяты из схемы.
Открыть пример
Нужна своя вёрстка — пишете поля руками, а проверка и подписи всё равно берутся из схемы:
<Form schema={RecipeCreateFormSchema} initialValue={recipe} onSubmit={save}>
<Form.Field.String name="title" />
<Form.Field.Number name="portions" />
<Form.Button.Submit>Сохранить</Form.Button.Submit>
</Form>
Что внутри:
- 60+ типов полей: от текста и дат до телефона, подписи, загрузки файлов и масок для ИНН, СНИЛС,
паспорта; - React (Chakra UI v3 или shadcn), Vue и Angular с одним набором полей;
- черновик формы переживает перезагрузку страницы, есть офлайн-режим с очередью отправки;
- ошибки сервера (Prisma, ZenStack, Zod) попадают к нужному полю;
- MCP-сервер, через который ИИ-агент узнаёт, какие поля и директивы есть.
| Пакет | Что это |
|---|---|
@letar/forms (исходники) |
Формы на TanStack Form |
@letar/zenstack-form-plugin |
Плагин ZenStack: схемы форм из schema.zmodel |
@letar/form-mcp |
MCP-сервер для ИИ-агентов |
На npm сейчас версия 1.x. Ветка 2.x (shadcn, Vue, Angular, маски) уже в libs/forms
и выходит на npm по этапам.
Как здесь работают ИИ-агенты
С мая 2026 года в репозитории больше 9 400 коммитов, около 70 приложений и 80 библиотек. Почти весь
код пишут сессии Claude Code, часто несколько одновременно и в
одном рабочем каталоге. Человек ставит задачи, принимает решения и проверяет результат.
Чтобы агенты не мешали друг другу, вокруг них выстроены правила и барьеры:
flowchart LR
A[Сессия агента<br/>по своему приложению] -->|регистрация,<br/>бронь файлов| M[Agent Mail]
M -->|сообщения| B[Другие агенты]
A -->|deploy-request| D[Агент деплоя]
D -->|единственный, кто деплоит| S[Серверы]
A -->|коммит| H[Git-хуки]
H -->|не пускают чужие файлы,<br/>неотправленные submodule,<br/>чужой форматтер| R[main]
- Agent Mail — почта между агентами. Каждый
агент регистрируется под именем своего приложения, бронирует файлы и пишет соседям, если меняет
общий код. - Один агент деплоя. Остальным деплоить запрещено, они отправляют ему заявку.
- Хуки вместо дисциплины. Опасные команды (
git reset --hard,git add .) и коммиты, которые
захватили файлы чужого приложения, блокируются автоматически. - Каждая ошибка становится документом. Нашли ловушку — пишем разбор в
.claude/docs/ (их уже больше 330), а короткое правило — в
.claude/rules/. Следующая сессия читает его до того, как наступит на ту же
ловушку.
Самые интересные разборы:
- Инциденты многоагентной работы с git — как агенты
теряли и забирали чужую работу и что это остановило. - Prettier против dprint — десятый случай
«внезапного форматирования» и его настоящая причина. - Рассинхрон bun.lock — как
одна версия в одном пакете останавливала деплой всех приложений. NODE_ENVне отличает прод от staging — одна
ошибка, три разных последствия.- Ловушки проверки — когда зелёная проверка ничего не
доказывает.
С чего начинает каждый агент — AGENTS.md.
Открытые приложения
| Приложение | Что это | Посмотреть |
|---|---|---|
| form-docs | Документация @letar/forms |
forms.letar.best |
| form-example | 46 примеров форм и CRUD на PostgreSQL | forms-example.letar.best |
| pravda | Законодательство РФ, статический сайт | pravda.letar.best |
| letar-landing | Карта проектов Letar | letar.best |
| animatrona | Десктоп-приложение для видео | animatrona.letar.best |
| synth | Синтезатор в браузере | — |
| form-develop-app | Песочница для разработки форм | — |
В apps/ есть и другие приложения. Часть из них — приватные проекты: они подключены как
git submodules, и в открытой копии их папки пустые.
Запустить у себя
Нужны Node 24, Bun и Nx (bun add -g nx).
git clone https://github.com/kamiletar/letar.git
cd letar
bun install
nx dev form-docs
Приватные submodules не нужны: открытая часть собирается без них. Для form-example нужна ещё
локальная PostgreSQL — шаги в его README.
Если хотите прислать правку: поставьте git-хуки (bash scripts/hooks/install.sh) и
форматируйте через nx run-many -t format --projects=<проекты> — голая nx format запускает
Prettier вместо dprint.
Стек
Node 24 · Nx · Next.js 16 (App Router) · React 19 · Chakra UI v3 · PostgreSQL + Prisma + ZenStack ·
TanStack Form · Zod v4 · Vitest · Playwright · oxlint + ESLint · dprint · Bun
Лицензия
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found