Skip to content
Agentmart
Submit a tool

create-project

Creates a new lab work (one GitLab repository in its theme, cloned into ~/brainlab at the same path), or repairs an existing work's setup, after checking that…

Skill by Vepricov

IndexedMIT★ 33
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/vepricov-create-project

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Creates a new lab work (one GitLab repository in its theme, cloned into ~/brainlab at the same path), or repairs an existing work's setup, after checking that no such work already exists. Use when the user says 'create a project', 'new project', 'заведи проект', 'заведи работу', 'set up a repo for a paper', or a work is missing its README, people lines, local folders or clone settings.

Use cases: research

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/create-project

What's inside

Skill name
create-project
Description
Creates a new lab work (one GitLab repository in its theme, cloned into ~/brainlab at the same path), or repairs an existing work's setup, after checking that no such work already exists. Use when the user says 'create a project', 'new project', 'заведи проект', 'заведи работу', 'set up a repo for a paper', or a work is missing its README, people lines, local folders or clone settings.
License
MIT
Instructions
164 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network
  • Instructions read files in your home folder (~/.ssh, ~/.aws…)

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Заведение работы

Лаборатория это GitLab как «GitHub для идей»: группы `brainlab` → направление → тема → работа,
одна работа это один репозиторий. Локально всё дерево лежит в `~/brainlab` ровно по путям
GitLab: работа `brainlab/<направление>/<тема>/<работа>` живёт в
`~/brainlab/<направление>/<тема>/<работа>`. Путь и есть привязка, файлов сопоставления нет.

`main` в работе защищён (push: никто, слияние: Maintainers). Единственное исключение это
**первый push в пустой проект**: поэтому README и каркас уходят именно им, а всё после — через
предложение (merge request).

Перед записью в базу прочитать свод `~/.claude/skills/lab-knowledge/references/canon.md`.
Иконки и цвета папок — по разделу «Иконки и цвета» в
`~/brainlab/personal/Knowledge/obsidian-conventions.md`.

## 0. Убедиться, что такой работы нет

**Никогда не заводить работу, не убедившись, что её нет.** Проверять по СМЫСЛУ, а не по имени:
та же работа лежит под слагом `tsd-lora`, под названием «Низкоранговая адаптация с TSD» или под
фамилией студента, и совпадения строк не будет. Одну работу в двух местах потом не склеить.

Четыре места, все обязательны:

1. **Дерево** — `ls ~/brainlab/<направление>/<тема>/` и соседние темы; `rg -i` по названию
   метода и фамилиям в `~/brainlab/*/*/*/README.md`. Папка без README тоже существующая работа.
2. **GitLab** (только GET, ключ в `~/.config/brainlab/git-token`, адрес в
   `~/.config/brainlab/git-url`):
   ```bash
   U=$(cat ~/.config/brainlab/git-url); H="PRIVATE-TOKEN: $(cat ~/.config/brainlab/git-token)"
   curl -s -H "$H" "$U/api/v4/groups/brainlab%2F<направление>%2F<тема>/projects?simple=true&per_page=100"
   curl -s -H "$H" "$U/api/v4/projects?search=<слово>&simple=true&per_page=100"
   ```
   В дереве видно только то, что уже склонировано; работа без доступа у тебя не видна вовсе.
3. **Задачи** — `GET $U/api/v4/groups/brainlab%2F<направление>/issues?search=<слово>&state=opened`:
   работа часто начинается задачей раньше, чем репозиторием.
4. **Заметки владельца** — `notes/` соседних работ: идея могла жить там до работы.

Нашлось похожее — **остановиться и показать владельцу**: что, где, чем похоже и чем отличается.
Решает он. Не нашлось — сказать одной строкой, назвав, где искал.

## 1. Собрать описание и показать предпросмотр

Сначала взять то, что уже известно, спрашивать только недостающее:

- направление и тема (существующие: `ls ~/brainlab/<направление>/`); не подходит ни одна —
  раздел 4;
- слаг работы (латиница, kebab-case) и название;
- код работы: три буквы, не занятые никем:
  `grep -h '^code:' ~/brainlab/*/*/*/README.md; ls ~/brainlab/*/*/*/claims/ | cut -d- -f2 | sort -u`;
- один абзац о том, что это за работа;
- **кто ведёт работу — спросить владельца, не угадывать по тому, кто попросил** (ведущих может
  быть двое, предложения назначаются первому), и кто в команде; логины GitLab;
- репозитории кода и рукописи, если есть.

Показать один предпросмотр: путь в GitLab и в дереве, код, README целиком, ведущие и команда.
Создавать только после согласия.

## 2. Создать работу

1. **Пустой проект в GitLab.** Это единственная запись через API в этом навыке:
   ```bash
   G=$(curl -s -H "$H" "$U/api/v4/groups/brainlab%2F<направление>%2F<тема>" | python3 -c 'import json,sys;print(json.load(sys.stdin)["id"])')
   curl -s -X POST -H "$H" "$U/api/v4/projects" \
     --data-urlencode "name=<слаг>" --data-urlencode "path=<слаг>" \
     --data "namespace_id=$G&visibility=internal&initialize_with_readme=false"
   ```
   Без README: проект с README уже имеет защищённый `main`, и шапка войдёт только предложением.
   Доступ ведущим и лаборатории даётся группой, поштучно ничего не выдаётся.
2. **Клон на место:** `lab here <слаг>`. Он кладёт работу в `~/brainlab/<направление>/<тема>/<слаг>`,
   пишет `.git/info/exclude` (`notes/`, `daily/`, `/runs/`, `paper/drafts/`, `code/local/`,
   `calls/raw/`, `.claude/`, `.DS_Store`), `push.default current` и
   `push.pushOption merge_request.create`. Ведущего он пока не знает: README ещё нет.
3. **Личные папки:** `cd` в работу, `mkdir notes daily runs`. Они только на машине и не
   коммитятся никогда.
4. **README и каркас.** `git checkout -B main` (пустой клон может стоять на `master`). README по
   образцу `~/brainlab/matrix-optimization/preconditioning-curvature/dykaf/README.md`:
   ```markdown
   ---
   code: <КОД>
   work: <слаг>
   status: active
   kind: paper
   updated: <YYYY-MM-DD>
   ---
   # <Название>

   **Состояние** заведена <DD-MM-YYYY> · **тема** <тема>

   **Ссылки** [статья](https://www.overleaf.com/project/<id>) · [код](https://github.com/<org>/<repo>)

   <Один абзац: что за работа.>
   ```
   В шапке только это: название, состояние, люди (их пишет скрипт ниже) и одна строка
   «Ссылки». Никаких абзацев про то, где лежит код, как тянется рукопись и сколько прогонов
   с источником: владелец 27-10-2026 назвал такую шапку мусором. Никаких локальных путей и
   личных заметок: README читает вся лаборатория. Код и рукопись
   подключаются вложенными
   репозиториями `git submodule add -b <ветка> <url> code/<имя>` и `paper/<имя>`. Ветку
   рукописи смотреть `git ls-remote <url>`: у Overleaf бывает и `master`, и `main`, и чужая
   ветка роняет `submodule add`. Каркас — `.gitlab/` с шаблонами задачи и
   предложения, одинаковыми во всех работах:
   `git -C ~/brainlab/matrix-optimization/preconditioning-curvature/dykaf archive HEAD .gitlab | tar -x`.
   Позже рядом появятся `socials/` (посты) и `calls/` (разборы звонков, сырьё в `calls/raw/`).
5. **Ведут и Команда** пишет скрипт, руками эти строки не набирать:
   ```bash
   python3 ~/brainlab/agents/services/scripts/sostav_readme.py --работа <слаг> \
     --ведут <логин>[,<логин>] [--команда <логин>,<логин>]
   ```
   Кого нет ни в одном README дерева, назвать парой `логин:Имя Фамилия`. Человек без учётки в
   GitLab — `:Имя Фамилия`: он пишется текстом, без ссылки.
6. **Первый push** — прямо в пустой `main`, без опции предложения:
   ```bash
   git add README.md .gitlab          # вложенные репозитории submodule add уже добавил
   git status --short                 # notes/ daily/ runs/ здесь быть не должно
   git commit -m "Работа заведена: шапка README"
   git -c push.pushOption= push -u origin main
   ```
7. **`lab here <слаг>` ещё раз.** Теперь README на `main`, и клон получает
   `merge_request.assign=<первый из «Ведут»>`. Дальше всё — веткой и `git push`, предложение

From Vepricov/claude-brainlab, MIT.

More from Vepricov/claude-brainlab

Signals

Stars
33
Forks
5
Open issues
1
Last commit (this folder)
Oct 18, 2026 (10 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Vepricov

Cite this page

create-project skill. Agent Mart. https://agentmart.dev/skills/vepricov-create-project (last updated 2026-10-24)