← [Раздел](README.md) · [Главная](../README.md)

# Структура репозитория ECC

## Цель

Ориентироваться в дереве **`/Users/nazeebod/Projects/ECC`**: где искать skills, agents, manifests, hooks и документацию для контрибьюторов.

## Предварительно

- [chto-takoe-ecc.md](chto-takoe-ecc.md)
- Базовый Git

## Время

~45 минут.

---

## Корень репозитория

| Путь | Назначение |
|------|------------|
| `README.md` | Установка, обзор, ссылки |
| `AGENTS.md` | Гайд для контрибьюторов и структура проекта |
| `agent.yaml` | Экспорт каталога agents/commands (машиночитаемо) |
| `manifests/install-*.json` | Модули selective install |
| `hooks/` | Дополнительные hook-пакеты (помимо `.cursor/hooks`) |
| `.cursor/` | **Основная** поверхность для Cursor |

---

## `.cursor/` — главное дерево

```text
ECC/.cursor/
├── skills/              # ~100+ SKILL.md
│   ├── configure-ecc/
│   ├── agent-sort/
│   ├── continuous-learning-v2/
│   ├── tdd-workflow/
│   └── …
├── agents/              # ecc-*.md роли субагентов
│   ├── ecc-code-reviewer.md
│   ├── ecc-planner.md
│   └── …
├── rules/               # common-*, python-*, react-*, …
│   ├── common-security.mdc
│   ├── common-development-workflow.mdc
│   └── …
├── commands/            # slash-команды
│   ├── plan.md
│   ├── code-review.md
│   └── …
├── hooks.json           # конфигурация событий
├── hooks/               # JS-обработчики
│   ├── session-start.js
│   ├── after-file-edit.js
│   └── …
├── scripts/             # install, CI, orchestration
│   ├── lib/install-targets/cursor-project.js
│   └── …
└── ecc-install-state.json  # состояние установки (локально)
```

---

## Skills — внутренняя структура

Типичный skill:

```text
ECC/.cursor/skills/tdd-workflow/
└── SKILL.md
```

Расширенный skill (пример continuous-learning-v2):

```text
continuous-learning-v2/
├── SKILL.md
├── config.json
├── hooks/observe.sh
├── agents/observer.md
└── scripts/instinct-cli.py
```

**SKILL.md** всегда начинается с YAML frontmatter: `name`, `description`, опционально `origin: ECC`.

---

## Agents — именование

Файлы: `ecc-<role>.md` — чтобы не конфликтовать с user agents.

Примеры:

- `ecc-build-error-resolver.md`
- `ecc-database-reviewer.md`
- `ecc-e2e-runner.md`

Содержимое: роль, когда вызывать, чеклисты, ограничения.

---

## Rules — слои

| Префикс | Пример | Scope |
|---------|--------|-------|
| `common-*` | `common-git-workflow.mdc` | Все проекты |
| `python-*` | `python-testing.mdc` | Python globs |
| `react-*` | `react-patterns.mdc` | TSX/JSX |
| `golang-*`, `kotlin-*`, … | Стек-специфично | По globs |

Дубли `.md` и `.mdc` в rules — историческая совместимость; для Cursor предпочтителен **`.mdc`**.

---

## Commands

Один файл = одна команда. Имя файла = `/имя`.

Группы см. [ecc-commands.md](../07-commands/ecc-commands.md).

---

## Manifests и selective install

```text
ECC/manifests/install-*.json
```

Описывают **профили**: какие skills/rules/hooks входят в модуль «python», «web», «minimal» и т.д.

Скрипты:

```text
ECC/.cursor/scripts/lib/install/
```

Используются skill `configure-ecc` и CI.

---

## Hooks вне `.cursor/hooks`

```text
ECC/hooks/hooks.json
ECC/hooks/memory-persistence/
```

Дополнительные пакеты для специфичных сценариев; читайте README в подпапках.

---

## Как искать нужное

| Задача | Действие |
|--------|----------|
| Найти skill по теме | `/ecc-guide find: django` или `ls skills/` |
| Понять agent | `ls agents/ \| grep reviewer` |
| Live counts | `node scripts/ci/catalog.js --json` (из корня ECC) |
| Правила безопасности | `rules/common-security.mdc` |

---

## Связь с установкой в проект

После install в `my-app/`:

```text
my-app/.cursor/skills/     # копия подмножества ECC
my-app/.cursor/rules/
my-app/.cursor/commands/
my-app/.cursor/hooks.json  # опционально
```

Исходник правды остаётся в **ECC**; проект — снимок + ваши кастомы.

---

## Упражнение

1. Откройте `ECC/AGENTS.md` — найдите раздел про структуру.
2. Посчитайте skills: `ls ECC/.cursor/skills | wc -l`.
3. Откройте один `ecc-*.md` agent и один `SKILL.md` — сравните объём и стиль.

---

## Самопроверка

1. Где лежат slash-команды ECC?
2. Что в `manifests/install-*.json`?
3. Чем отличается `hooks/hooks.json` от `.cursor/hooks.json`?
4. Какой файл — точка входа для контрибьютора?

---

## Дальше

→ [Установка и agent-sort](ustanovka-i-agent-sort.md)  
← [Что такое ECC](chto-takoe-ecc.md)
