ai-commons 0.2.11 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/RULES.md +5 -0
- package/hooks/ensure-rules-pointer.js +1 -1
- package/package.json +2 -2
- package/scripts/managed-block.js +1 -1
- package/scripts/targets.js +1 -1
- package/AGENTS.md +0 -93
package/README.md
CHANGED
|
@@ -35,17 +35,16 @@ npx ai-commons install # идемпотентно: можно гонять
|
|
|
35
35
|
npx ai-commons uninstall # снять блоки, хуки и Cursor-файл
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## Правила
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
- **Остальное** — стиль и привычки (`curl` одной строкой, ссылки `path:line`).
|
|
40
|
+
Лежат в [`RULES.md`](RULES.md) — это публичный контракт, его содержимое
|
|
41
|
+
`targets.js` копирует во все target-файлы потребителей. `AGENTS.md` в
|
|
42
|
+
этом репо — заметки для работы над самим `ai-commons`, в потребителей
|
|
43
|
+
не попадает.
|
|
45
44
|
|
|
46
45
|
## Как обновить правила во всех проектах
|
|
47
46
|
|
|
48
|
-
1. Правишь `
|
|
47
|
+
1. Правишь `RULES.md` здесь.
|
|
49
48
|
2. `git commit && git push` (или просто коммит, если репо локальный).
|
|
50
49
|
3. В каждом потребителе:
|
|
51
50
|
- **Claude**: ничего делать не надо — `SessionStart`-хук подтянет новые
|
|
@@ -73,7 +72,8 @@ npx ai-commons uninstall # снять блоки, хуки и Cursor-файл
|
|
|
73
72
|
|
|
74
73
|
```
|
|
75
74
|
ai-commons/
|
|
76
|
-
├──
|
|
75
|
+
├── RULES.md — источник правды (правила), копируется в потребителей
|
|
76
|
+
├── AGENTS.md — заметки для работы над самим ai-commons
|
|
77
77
|
├── package.json — bin + postinstall
|
|
78
78
|
├── bin/ai-commons.js — CLI: install / uninstall
|
|
79
79
|
├── scripts/
|
package/RULES.md
ADDED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// SessionStart hook: re-applies ai-commons rule files in the consumer
|
|
3
3
|
// project. This refreshes the managed block in CLAUDE.md / AGENTS.md and
|
|
4
4
|
// the full .cursor/rules/ai-commons.mdc file using the latest content from
|
|
5
|
-
// node_modules/ai-commons/
|
|
5
|
+
// node_modules/ai-commons/RULES.md.
|
|
6
6
|
|
|
7
7
|
const fs = require('fs');
|
|
8
8
|
const { applyAllTargets } = require('../scripts/targets');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-commons",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12",
|
|
4
4
|
"description": "Shared Claude Code rules + dialog-saver hook for projects",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ai-commons": "bin/ai-commons.js"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"bin",
|
|
14
14
|
"scripts",
|
|
15
15
|
"hooks",
|
|
16
|
-
"
|
|
16
|
+
"RULES.md",
|
|
17
17
|
"README.md"
|
|
18
18
|
],
|
|
19
19
|
"engines": {
|
package/scripts/managed-block.js
CHANGED
|
@@ -7,7 +7,7 @@ const END = '<!-- ai-commons:end -->';
|
|
|
7
7
|
|
|
8
8
|
const HEADER_COMMENTS = [
|
|
9
9
|
'<!-- Managed by ai-commons. Content between these markers is auto-generated. -->',
|
|
10
|
-
'<!-- To change rules, edit
|
|
10
|
+
'<!-- To change rules, edit RULES.md in the ai-commons repo and re-run -->',
|
|
11
11
|
'<!-- `npm install` in this project (Claude users get auto-refresh on session). -->',
|
|
12
12
|
].join('\n');
|
|
13
13
|
|
package/scripts/targets.js
CHANGED
|
@@ -9,7 +9,7 @@ const { applyBlock, removeBlock } = require('./managed-block');
|
|
|
9
9
|
const PACKAGE_ROOT = path.resolve(__dirname, '..');
|
|
10
10
|
|
|
11
11
|
function readRules() {
|
|
12
|
-
return fs.readFileSync(path.join(PACKAGE_ROOT, '
|
|
12
|
+
return fs.readFileSync(path.join(PACKAGE_ROOT, 'RULES.md'), 'utf8').trim();
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
// Each target:
|
package/AGENTS.md
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# ai-commons — общие правила для всех проектов
|
|
2
|
-
|
|
3
|
-
Этот файл — единый источник правды для общих правил. `ai-commons` копирует
|
|
4
|
-
его содержимое в файлы, которые читают популярные AI-агенты:
|
|
5
|
-
|
|
6
|
-
- `CLAUDE.md` — Claude Code, через `@AGENTS.md` импорт в управляемом блоке.
|
|
7
|
-
- `AGENTS.md` (в корне потребителя) — OpenAI Codex и стандарт AGENTS.md;
|
|
8
|
-
здесь содержимое встраивается в управляемый блок целиком.
|
|
9
|
-
- `.cursor/rules/ai-commons.mdc` — Cursor; файл целиком принадлежит
|
|
10
|
-
`ai-commons` (MDC c `alwaysApply: true`).
|
|
11
|
-
|
|
12
|
-
В файлах `CLAUDE.md` и `AGENTS.md` (корневом) управляемая секция огорожена
|
|
13
|
-
HTML-комментариями `ai-commons:begin` и `ai-commons:end`. **Не редактируй
|
|
14
|
-
блок между ними** — он перезаписывается. Всё, что в файле СНАРУЖИ блока,
|
|
15
|
-
остаётся твоим и не трогается.
|
|
16
|
-
|
|
17
|
-
Чтобы поменять общие правила — правь этот файл в репозитории `ai-commons`.
|
|
18
|
-
После `npm install` (или при старте Claude-сессии — там есть SessionStart
|
|
19
|
-
хук) изменения подтянутся во все target-файлы потребителя.
|
|
20
|
-
|
|
21
|
-
Правила сгруппированы по трём уровням приоритета. Игнорировать MUST нельзя
|
|
22
|
-
ни при каких обстоятельствах. Желательно — стандартное поведение по
|
|
23
|
-
умолчанию, отступление возможно только с явной причиной. Остальное —
|
|
24
|
-
стиль и привычки.
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## MUST — обязательно, игнорировать нельзя
|
|
29
|
-
|
|
30
|
-
- **Никогда не делай `git push --force` в `main`/`master`.** Если нужно
|
|
31
|
-
переписать историю, спроси разрешения и работай через feature-ветку.
|
|
32
|
-
- **Никогда не коммить секреты** (`.env`, ключи, токены, credentials.json
|
|
33
|
-
и т.п.). Если такой файл попал в `git add`, удали его из стейджа и
|
|
34
|
-
предупреди пользователя.
|
|
35
|
-
- **Не запускай деструктивные операции без подтверждения**: `rm -rf`,
|
|
36
|
-
`git reset --hard`, `DROP TABLE`, `git clean -fd`, отключение pre-commit
|
|
37
|
-
хуков (`--no-verify`), force push куда угодно.
|
|
38
|
-
- **Не правь блок между метками `ai-commons:begin / end`** ни в `CLAUDE.md`,
|
|
39
|
-
ни в корневом `AGENTS.md` потребителя — он управляется `ai-commons` и
|
|
40
|
-
перезаписывается. Не правь и `.cursor/rules/ai-commons.mdc` — это файл,
|
|
41
|
-
целиком принадлежащий `ai-commons`. Свои правила пиши снаружи блоков
|
|
42
|
-
(или в отдельных Cursor-rules рядом).
|
|
43
|
-
- **Для групп связанных проектов используй `git-coherent`**
|
|
44
|
-
(`npm i -g git-coherent`, бинари `git-coherent` / `gitc`) — синхронизация
|
|
45
|
-
git-операций по сиблинг-репозиториям, которые опт-инятся через
|
|
46
|
-
`.git-coherent` маркер. Это «среднее между monorepo и микросервисами»:
|
|
47
|
-
каждый подпроект остаётся отдельным git-репо, `git-coherent` запускает
|
|
48
|
-
операции над всеми отмеченными сразу. Не предлагай и не создавай
|
|
49
|
-
монорепо или независимые multi-repo схемы для таких задач без явного
|
|
50
|
-
запроса.
|
|
51
|
-
- **Не отключай и не модифицируй хуки `ai-commons`** в `.claude/settings.json`
|
|
52
|
-
без явного запроса пользователя.
|
|
53
|
-
|
|
54
|
-
## Желательно — стандарт по умолчанию, отступать только с причиной
|
|
55
|
-
|
|
56
|
-
- Отвечай кратко: один-два абзаца, без избыточных вводных и итогов.
|
|
57
|
-
- Перед нетривиальной задачей дай короткий план (3–5 пунктов), потом
|
|
58
|
-
делай. Не пиши длинные эссе про подход.
|
|
59
|
-
- Не добавляй фич, рефакторингов и абстракций сверх задачи. Bug fix не
|
|
60
|
-
тянет за собой cleanup.
|
|
61
|
-
- Не пиши комментарии, описывающие *что* делает код. Пиши только если
|
|
62
|
-
нужно объяснить *почему* — и только если это неочевидно.
|
|
63
|
-
- Не валидируй то, что не может случиться. Доверяй внутренним
|
|
64
|
-
гарантиям типов и фреймворков; валидируй только на границах системы
|
|
65
|
-
(вход пользователя, внешние API).
|
|
66
|
-
- Перед удалением «непонятного» файла/ветки/конфигурации — выясни, не
|
|
67
|
-
работа ли это пользователя в процессе. Спроси, если есть сомнения.
|
|
68
|
-
|
|
69
|
-
## Остальное — стиль и привычки
|
|
70
|
-
|
|
71
|
-
- `curl`-примеры — одной строкой, без переносов `\`.
|
|
72
|
-
- При ссылках на код используй формат `path/to/file.ts:42`.
|
|
73
|
-
- Для UI-задач — запусти dev-сервер и проверь в браузере перед тем, как
|
|
74
|
-
говорить «готово». Тесты и типы проверяют корректность кода, не
|
|
75
|
-
фичи.
|
|
76
|
-
- Если задача неясная или формулировка двусмысленная — задай один-два
|
|
77
|
-
уточняющих вопроса вместо угадывания.
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Как это устроено технически
|
|
82
|
-
|
|
83
|
-
- `ai-commons` ставится как обычная npm-зависимость:
|
|
84
|
-
`npm i -D ai-commons` (или `file:~/okneigres-repos/ai-commons` для локальной разработки).
|
|
85
|
-
- `postinstall` вставляет/обновляет управляемый блок в `CLAUDE.md` и
|
|
86
|
-
`AGENTS.md` потребителя, плюс пишет полный `.cursor/rules/ai-commons.mdc`.
|
|
87
|
-
Любого из файлов нет — создаст.
|
|
88
|
-
- `SessionStart`-хук `ai-commons` обновляет всё то же при каждом старте
|
|
89
|
-
Claude-сессии — Claude-юзеры получают авто-рефреш. Codex- и Cursor-юзеры
|
|
90
|
-
обновляются на `npm install` (или ручном `npx ai-commons install`).
|
|
91
|
-
- Содержимое файлов СНАРУЖИ управляемого блока не трогается никогда.
|
|
92
|
-
- `Stop`-хук сохраняет каждый диалог в
|
|
93
|
-
`.ai-dialogs/YYMMDD-HHII-<topic>.md` (см. README модуля).
|