Add global AI quality rules

This commit is contained in:
2026-06-01 16:42:58 +00:00
parent db2af1f7c8
commit 7814fdd5b2
2 changed files with 56 additions and 8 deletions

View File

@@ -212,6 +212,22 @@ cat > "$CONFIG_DIR/global_rules.md" << 'RULESEOF'
5. **Контекст проекта:**
При начале работы обращай пристальное внимание на содержимое всех предоставленных `.md` файлов проекта (они передаются тебе автоматически), чтобы сразу погрузиться в контекст и специфику текущего репозитория.
## Инженерные правила качества
Данные правила адаптированы из `multica-ai/andrej-karpathy-skills/CLAUDE.md` и совместимы с глобальными правилами выше.
1. **Думай перед кодом:**
Не делай скрытых предположений. Явно называй важные допущения, неопределенности и технические компромиссы. Если задача допускает несколько несовместимых трактовок и безопасное разумное предположение невозможно - остановись и спроси. Если есть более простой путь - скажи об этом и используй его, когда он решает задачу.
2. **Сначала простота:**
Пиши минимальный код, который решает поставленную задачу. Не добавляй функции "на будущее", одноразовые абстракции, лишнюю конфигурируемость и обработку невозможных сценариев. Если решение получилось заметно сложнее, чем нужно, упрости его.
3. **Точечные изменения:**
Трогай только то, что нужно для задачи. Не улучшай соседний код, комментарии и форматирование без необходимости. Следуй существующему стилю проекта. Если видишь не связанный с задачей мертвый код - упомяни его, но не удаляй без просьбы. Удаляй только те неиспользуемые импорты, переменные и функции, которые появились из-за твоих изменений.
4. **Работа от проверяемой цели:**
Для нетривиальных задач формулируй короткий план и критерии успеха. Исправляя баг, по возможности сначала воспроизведи его или добавь проверку, затем добейся прохождения тестов. После изменений запускай релевантные проверки и явно сообщай, что было проверено.
RULESEOF
success "Глобальные правила обновлены: $CONFIG_DIR/global_rules.md"
@@ -427,19 +443,25 @@ _open_browser() {
_build_ai_sys_prompt() {
local global_rules="$HOME/.config/ai-setup/global_rules.md"
local global_rendered=""
[ -f "$global_rules" ] && global_rendered="$(cat "$global_rules" 2>/dev/null)"
# Нативные глобальные правила: только global_rules.md, без проектного контекста.
# Проектные *.md файлы агент должен читать из текущего репозитория сам, если умеет.
# Для агентов без надежного нативного чтения проектный контекст добавляется ниже в prompt.
mkdir -p "$HOME/.codex" "$HOME/.kimi-code" "$HOME/.claude" "$HOME/.gemini"
echo "$global_rendered" > "$HOME/.codex/AGENTS.md"
echo "$global_rendered" > "$HOME/.kimi-code/AGENTS.md"
echo "$global_rendered" > "$HOME/.claude/CLAUDE.md"
echo "$global_rendered" > "$HOME/.gemini/GEMINI.md"
local sp="=== ГЛОБАЛЬНЫЕ ПРАВИЛА ===\n"
[ -f "$global_rules" ] && sp+="$(cat "$global_rules" 2>/dev/null)\n\n"
[ -n "$global_rendered" ] && sp+="$global_rendered\n\n"
sp+="=== ПРАВИЛА ПРОЕКТА ===\n"
for f in *.md; do
[ -f "$f" ] && sp+="\n--- Файл $f ---\n$(cat "$f")\n"
done
# Единый source of truth — сохраняем для всех агентов
local rendered
rendered="$(echo -e "$sp")"
mkdir -p "$HOME/.codex" "$HOME/.kimi-code"
echo "$rendered" > "$HOME/.codex/AGENTS.md"
echo "$rendered" > "$HOME/.kimi-code/AGENTS.md"
echo "$rendered"
echo -e "$sp"
}
HELPEREOF
chmod +x "$HELPERS_FILE"

View File

@@ -14,6 +14,7 @@ fail() { echo "[FAIL] $1"; FAIL=$((FAIL+1)); }
GPT_SECTION=$(awk '/^cat > "\$BIN_DIR\/ai-gpt"/,/^GPTEOF/' "$SCRIPT")
KIMI_SECTION=$(awk '/^cat > "\$BIN_DIR\/ai-kimi"/,/^KIMIEOF/' "$SCRIPT")
GEMINI_SECTION=$(awk '/^cat > "\$BIN_DIR\/ai-gemini"/,/^GEMINIEOF/' "$SCRIPT")
HELPERS_SECTION=$(awk '/^cat > "\$HELPERS_FILE"/,/^HELPEREOF/' "$SCRIPT")
# ── ai-gpt: auto-install codex ────────────────────────────────────────────
test_gpt_autoinstall() {
@@ -72,6 +73,29 @@ test_gemini_native_launcher() {
fi
}
# ── global rules: Karpathy-style guidelines and native rule files ───────────
test_global_rules_include_quality_guidelines() {
if grep -q 'Инженерные правила качества' "$SCRIPT" \
&& grep -q 'multica-ai/andrej-karpathy-skills/CLAUDE.md' "$SCRIPT" \
&& grep -q 'Точечные изменения' "$SCRIPT"; then
ok "global rules: include Karpathy-style quality guidelines"
else
fail "global rules: missing Karpathy-style quality guidelines"
fi
}
test_native_rule_files_generated() {
if echo "$HELPERS_SECTION" | grep -q 'echo "$global_rendered" > "$HOME/.codex/AGENTS.md"' \
&& echo "$HELPERS_SECTION" | grep -q 'echo "$global_rendered" > "$HOME/.kimi-code/AGENTS.md"' \
&& echo "$HELPERS_SECTION" | grep -q 'echo "$global_rendered" > "$HOME/.claude/CLAUDE.md"' \
&& echo "$HELPERS_SECTION" | grep -q 'echo "$global_rendered" > "$HOME/.gemini/GEMINI.md"' \
&& ! echo "$HELPERS_SECTION" | grep -q 'echo "$rendered" >'; then
ok "global rules: native rule files contain only global_rules.md"
else
fail "global rules: native rule files must not include project prompt render"
fi
}
# ── Fix 7: trap quotes $TMP correctly ────────────────────────────────────────
test_fix7_trap_tmp() {
if grep -q "trap 'rm -rf \"\$TMP\"' EXIT" "$SCRIPT"; then
@@ -98,6 +122,8 @@ test_kimi_autoinstall
test_kimi_no_proxy
test_kimi_artemox_config
test_gemini_native_launcher
test_global_rules_include_quality_guidelines
test_native_rule_files_generated
test_fix7_trap_tmp
echo ""