agent-projects-tools — единое хранилище переносимых правил, скилов и reference-материалов для AI-агентов, используемых в разных проектах.
Текущий целевой агент: Codex.
Репозиторий хранит проектно-независимые материалы для AI-агентов:
- bootstrap-инструкции агента;
- переносимые правила поведения и работы;
- переиспользуемые skill-пакеты;
- шаблон проектного профиля;
- reference-материалы для повторяемых workflow.
Материалы можно копировать, подключать или адаптировать в других проектах без привязки к исходному коду конкретного приложения.
Основные элементы:
.
├── AGENTS.md
├── LICENSE
├── README.md
├── .codex/
│ ├── project.template.md
│ └── rules/
└── .agents/
└── skills/
└── <skill-name>/
├── SKILL.md
├── agents/
│ └── openai.yaml
└── references/
Назначение элементов:
AGENTS.md— короткий bootstrap-файл. Он безусловно применяет.codex/rules/request_routing.md, используетCODEX_PROJECT.mdв целевых проектах и передаёт подробную проверку зависимостей правилу.codex/rules/material_dependencies.md..codex/project.template.md— шаблон для созданияCODEX_PROJECT.mdв корне целевого проекта. Это не активное правило..codex/rules/— переносимые правила Codex. Шаблон проектного профиля в эту директорию не входит..agents/skills/— переиспользуемые skill-пакеты.SKILL.md— обязательная точка входа skill-пакета с routing description, областью применения, workflow и явными hard dependencies, когда они существуют.agents/openai.yaml— необязательная metadata для интерфейса и default prompt.references/— необязательные подробные примеры, checklists, официальные источники и специализированные workflow.LICENSE— лицензия MIT.
CODEX_PROJECT.md намеренно не хранится в этом репозитории: он создаётся отдельно в каждом целевом проекте и содержит только применимые для него profiles, rules, skills, команды и политики. При работе над самим agent-projects-tools действует template repository mode: rules, skills и project template рассматриваются как поддерживаемые исходные материалы, а CODEX_PROJECT.md не создаётся.
- Скопируйте или подключите
AGENTS.mdв целевой проект. - Скопируйте
.codex/project.template.mdв корень целевого проекта под именемCODEX_PROJECT.md. - Всегда перенесите
.codex/rules/request_routing.md. Это обязательное bootstrap-правило, которое нельзя удалить, отключить, заменить или установить вnone. - Удалите из созданного профиля неиспользуемые опциональные разделы и оставьте только активные stack profiles, rules, skills, команды проверки, integrations и project-specific policies.
- Если выбранный rule или skill объявляет hard dependencies, перенесите
.codex/rules/material_dependencies.mdи сами обязательные материалы. Validator применяется bootstrap-файлом независимо отActive Rules; отдельная запись активации для него не требуется. - Явно активируйте каждую обязательную зависимость через
Active Rules,Active Skills, stack profile или специализированный profile section. Отсутствие validator rule или обязательного материала считается ошибкой профиля. - Перенесите только остальные нужные файлы из
.codex/rules/и целиком соответствующие пакеты из.agents/skills/. - Не подключайте
.codex/project.template.mdкак rule после создания проектногоCODEX_PROJECT.md. - Не активируйте language-, framework-, database-, cache-, HTTP-client-, styling-, testing- или external-system-материалы без activation signal, разрешённого их entrypoint и
AGENTS.md. Прямое упоминание технологии не является активацией, если entrypoint требует project profile. - Для
cashewsиспользуйтеpython_cashews_cache.md + python-cashews-cacheи специализированный Python cashews cache profile. - Для
python-nats-kv-cacheсохраните специализированный NATS KV cache profile: версииnats-pyиnats-server, JetStream/account/domain, bucket ownership/configuration, key/codec/CAS/invalidation/outage/batch policies и exactpython_nats_kv_cache.md + python-nats-kv-cachepair. - Для SQLAlchemy с MySQL через
aiomysqlактивируйтеpython-sqlalchemy-core + python-sqlalchemy-mysqlи объявите точные server family/version, driver/version sources, pool, timeout, isolation, SQL mode, charset/collation, migration и integration-test policies. - Для
jira-data-centerсохраните специализированный Jira Data Center profile: exact rule/skill pair, declared8.22.xили точную8.22.z, instance/environment и источники configuration. Runtime version проверяется через/rest/api/2/serverInfo; другая major/minor версия требует отдельных проверенных материалов.
Таблица отражает реально существующие rules и skill-пакеты, а не планируемые профили.
| Область | Фактическое покрытие |
|---|---|
| Маршрутизация и общие правила | request_routing.md, material_dependencies.md, source_code_hygiene.md, git.md |
| Язык code-adjacent prose | comment-language-audit |
| Python core и тестирование | python-core, python-testing, python-service-e2e-testing |
| Python backend | python-fastapi-expert, python-cashews-cache, python-sqlalchemy-core, python-sqlalchemy-sqlite, python-sqlalchemy-mysql, python-httpx-client, python-backend-security |
| Python distributed cache | python_nats_kv_cache.md, python-nats-kv-cache для NATS JetStream Key/Value |
| TypeScript и Node.js | typescript-core, typescript-jest-testing, eslint-typescript, prettier-formatting, nodejs-service-e2e-testing |
| Vue 3 + TypeScript + Vite | vue3-typescript-vite-expert, vue-router-expert, pinia-expert, vueuse-expert |
| Vue testing и browser E2E | vitest-vue-testing, vue-router-testing, pinia-testing, vueuse-testing, vue-playwright-e2e-testing |
| Styling и UI validation | css-expert, css-animation-expert, scss-expert, tailwind-expert, ui-ux-review, playwright-ui-checks-mcp |
| Jira Data Center 8.22.x | jira_data_center.md, jira-data-center |
| Obsidian | obsidian-mcp-core, obsidian-llm-wiki, obsidian-taskbook |
Наличие технологии в .codex/project.template.md само по себе не означает наличие отдельного rule или skill-пакета. Фактическим источником перечня материалов служат .codex/rules/ и .agents/skills/.
Пакет python_cashews_cache.md + python-cashews-cache предназначен только для Python cache на базе библиотеки cashews.
- пакет активируется через exact
Active Rules,Active Skills, stack profile или специализированный profile section; - Redis или memory могут быть backend библиотеки
cashews, но direct Redis clients и NATS JetStream KV требуют отдельных материалов; - FastAPI wiring остаётся в
python-fastapi-expert, а cache keys, TTL, tags, invalidation, lifecycle и tests — вpython-cashews-cache.
Пакет python_nats_kv_cache.md + python-nats-kv-cache предназначен для распределённого Python cache, реализованного напрямую через nats-py и NATS JetStream Key/Value.
- профиль отделён от
python_cashews_cache.md + python-cashews-cache, который остаётсяcashews-specific; - активация требует exact
Active Rules,Active Skills, stack profile или включённый специализированный profile section; - профиль фиксирует версии клиента и сервера, JetStream/account/domain, connection/auth/TLS sources, bucket ownership, TTL, limits, storage, replicas, key namespace, codec, lifecycle, invalidation и outage policy;
- bucket рассматривается как восстанавливаемый cache, а не как единственный system of record;
- mutable read-modify-write операции используют revision-based CAS и не выполняются через
get -> modify -> put; - bounded bulk operations допустимы только для независимых ключей с per-key результатами и partial-completion policy;
- базовый профиль не обещает multi-key transaction, не публикует напрямую в
$KV.*и не трактует stream-levelAllowAtomicPublishкак стандартный KV batch API; - live bucket create/reconfigure/purge/delete operations требуют отдельного
external-system-onlygate; - unit tests дополняются integration tests с реальным JetStream-enabled NATS и изолированными buckets.
Официальные NATS и nats.py источники, version/feature precedence и границы stream-level возможностей перечислены в .agents/skills/python-nats-kv-cache/references/official-sources.md.
Skill python-sqlalchemy-mysql предназначен для SQLAlchemy 2.x с MySQL через async driver aiomysql и всегда требует базовый skill python-sqlalchemy-core.
- профиль отделён от
python-sqlalchemy-sqlite; SQLite-specific PRAGMA, WAL и single-writer queue не применяются к MySQL; - активация требует
Database toolkit/ORM: SQLAlchemy,Active database: MySQL,Database driver: aiomysqlи exactpython-sqlalchemy-core + python-sqlalchemy-mysqlpair; - runtime server family и точная версия проверяются до применения version-specific DDL, DML, locking и type behavior;
- MariaDB не считается молчаливой заменой MySQL и требует отдельно проверенной политики;
- профиль фиксирует SQLAlchemy pool budget, distinct timeout categories, InnoDB, isolation, charset/collation, SQL mode, transaction retry, migration и real-MySQL integration-test policies;
- direct
aiomysql.create_pool()и legacyaiomysql.saне смешиваются с SQLAlchemy engine ownership; - Python runtime, отсутствующий в upstream classifiers или CI
aiomysql, требует project-level compatibility tests вместо неподтверждённого утверждения о совместимости.
Good/bad patterns, review checklist и официальные SQLAlchemy, aiomysql и MySQL sources находятся в .agents/skills/python-sqlalchemy-mysql/references/.
Пакет jira_data_center.md + jira-data-center version-locked к Jira Data Center / Jira Software 8.22.x.
- отдельный rule или skill выбирается через точный
Active RulesилиActive Skills, а весь пакет также может быть выбран черезjira-data-centerstack profile или включённый специализированный Jira section; - применение пакета дополнительно требует включённый и полный специализированный Jira section с exact rule/skill pair и
8.22.xлибо точной8.22.zверсией; - runtime version проверяется через
/rest/api/2/serverInfo; - упоминание Jira в задаче само по себе не активирует пакет;
- runtime вне
8.22.xостанавливает применение пакета после version diagnostic; - другая major/minor версия требует отдельного проверенного profile/rule/skill package либо явного обновления version boundary этого пакета.
Obsidian-related rules и skills требуют MCP-only подхода:
- операции чтения, поиска, создания, обновления, перемещения, архивирования и проверки Obsidian vault выполняются через Semantic Notes Vault MCP;
raw/,wiki/,tasks/иarchive/считаются логическими путями vault, а не путями файловой системы репозитория;- запрещено обходить MCP через shell-команды, скрипты, прямое чтение файлов, editor search или Git-операции по vault-содержимому;
- перед изменением существующей заметки её нужно прочитать через MCP, изменить минимально безопасной операцией и затем перечитать для проверки результата;
- whole-note replacement допустим только для явно запрошенной полной замены или осознанной регенерации заметки;
obsidian-mcp-coreопределяет безопасный доступ, аobsidian-llm-wikiиobsidian-taskbookактивируются как независимые overlays.
При добавлении новых rules и skills соблюдайте следующие принципы:
- Переносимость — материал не должен зависеть от внутренней структуры одного конкретного проекта, если это не указано явно.
- Ясная область применения — должно быть понятно, для какого агента, языка, framework, external system и сценария предназначен материал.
- Явные внешние зависимости — требования к приложениям, плагинам, MCP-серверам, языкам, frameworks и библиотекам описываются рядом с rule или skill.
- Явные зависимости между материалами — зависимый entrypoint содержит точные имена обязательных skills и пути обязательных rules; подробная методика проверки хранится в
material_dependencies.md. - Разделение dependency types — hard dependencies и optional coordination должны быть разнесены по отдельным разделам и не использовать одинаковую безусловную формулировку.
- Минимум неявных предположений — источник истины для конкретного проекта — его
CODEX_PROJECT.mdи repository metadata. - Актуальность — устаревшие rules, skills и references следует обновлять или удалять.
- Краткий routing description — поле
descriptionв frontmatter кратко формулирует условия активации и отличительные ключевые слова. Полный перечень возможностей, workflow и ограничений остаётся в телеSKILL.md. - Синхронизация README — изменения структуры, путей, dependency graph и фактического покрытия должны отражаться в README в том же PR.
Для изменения репозитория:
- создайте ветку от актуальной
master; - добавьте или обновите rules, skills либо documentation;
- проверьте согласованность README,
AGENTS.md, project template, rules, skills и их явных зависимостей; - явно опишите изменения внешних зависимостей;
- откройте pull request с кратким описанием назначения изменений.
Прямые изменения master не используются.
Проект распространяется по лицензии MIT. См. файл LICENSE.