Загрузка данных
Ты работаешь на корпоративном MacBook.
Нужно безопасно перенести рабочий проект skill-а adt-markdownify-meta из временной папки zadanie2 в целевой Git-репозиторий snl-ai-spec.
Исходный рабочий проект:
/Users/23865613/IdeaProjects/untitled/zadanie2/source_project
Целевой Git-репозиторий:
/Users/23865613/snl-ai-spec
Целевой каталог skill-а:
/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta
Целевой каталог выгруженной архитектуры:
/Users/23865613/snl-ai-spec/projects/SNL/meta
Также в репозитории snl-ai-spec есть пример Ralph Loop:
/Users/23865613/snl-ai-spec/projects/SNL/ralph-loop/service-doc-generator
В нём находятся:
- AGENTS.md
- MAIN_GOAL.md
- run-gigacode.sh
Сейчас задача — только безопасно перенести проект и подготовить каталог Ralph Loop внутри skill-а.
Не запускай Ralph Loop.
Не изменяй MAIN_GOAL.md и AGENTS.md по смыслу.
Не делай commit.
Не делай push.
Не выполняй force push.
Не удаляй исходный проект zadanie2.
Не удаляй файлы в snl-ai-spec без отдельного подтверждения.
Не копируй локальные секреты, cookies, токены, логи, виртуальное окружение и временные файлы.
Работай поэтапно.
---
# Этап 1. Проверить исходный проект
Перейди в исходный проект:
cd /Users/23865613/IdeaProjects/untitled/zadanie2/source_project
Проверь:
pwd
find . -maxdepth 2 -type f | sort
find scripts -maxdepth 2 -type f | sort 2>/dev/null || true
Проверь наличие ключевых файлов:
- run_exporter.py
- requirements.txt
- README.md
- SKILL.md
- meta_urls.txt
- meta_exporter.yaml.example
- scripts/scrape_meta.py
- scripts/html_to_markdown.py
- scripts/markdown_writer.py
- scripts/structured_meta_writer.py
Если обязательного файла нет, не продолжай перенос и покажи точный список отсутствующих файлов.
Проверь синтаксис:
python -m py_compile run_exporter.py scripts/*.py
Если есть синтаксическая ошибка, остановись и покажи её. Не копируй неисправный проект.
---
# Этап 2. Проверить целевой репозиторий
Перейди:
cd /Users/23865613/snl-ai-spec
Покажи:
pwd
git rev-parse --show-toplevel
git status --short
git branch --show-current
git remote -v
Проверь существование веток:
git branch --list develop
git branch --list features/adt-markdownify-meta
git branch -r | grep -E 'origin/develop|origin/features/adt-markdownify-meta' || true
Важно:
1. Если git status показывает чужие или непонятные незакоммиченные изменения, остановись.
2. Не выполняй git reset.
3. Не выполняй git clean.
4. Не удаляй чужие изменения.
5. В отчёте перечисли найденные изменения.
Если рабочее дерево чистое, продолжай.
---
# Этап 3. Переключиться на отдельную ветку
Если локальная ветка features/adt-markdownify-meta уже существует:
git switch features/adt-markdownify-meta
Если локальной ветки нет, но существует origin/features/adt-markdownify-meta:
git switch --track -c features/adt-markdownify-meta origin/features/adt-markdownify-meta
Если ветки нет ни локально, ни удалённо:
1. Убедись, что существует develop.
2. Переключись на develop:
git switch develop
3. Обнови ветку только fast-forward:
git pull --ff-only
4. Создай ветку:
git switch -c features/adt-markdownify-meta
После переключения покажи:
git branch --show-current
git status --short
Не выполняй commit и push.
---
# Этап 4. Проверить существующий каталог skill-а
Проверь:
ls -la /Users/23865613/snl-ai-spec/.gigacode/skills
if [ -d "/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta" ]; then
find /Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta -maxdepth 3 -type f | sort
fi
Если каталог уже существует и содержит файлы:
1. Не удаляй его.
2. Создай резервную копию внутри временного каталога:
BACKUP_DIR="/Users/23865613/snl-ai-spec/.migration-backup/adt-markdownify-meta-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"
rsync -a \
/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta/ \
"$BACKUP_DIR/"
3. Покажи путь резервной копии.
Не добавляй резервную копию в Git, если .migration-backup ещё не исключён. При необходимости не изменяй .gitignore автоматически — просто сообщи об этом.
---
# Этап 5. Выполнить пробный перенос skill-а
Создай целевой каталог:
mkdir -p /Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta
Сначала выполни только dry-run:
rsync -avn \
--exclude='.git/' \
--exclude='.venv/' \
--exclude='venv/' \
--exclude='output/' \
--exclude='temp_html/' \
--exclude='projects/' \
--exclude='meta_exporter.yaml' \
--exclude='*.log' \
--exclude='*.bak' \
--exclude='*.bak2' \
--exclude='*.tmp' \
--exclude='__pycache__/' \
--exclude='*.pyc' \
--exclude='.DS_Store' \
--exclude='.idea/' \
--exclude='.pytest_cache/' \
--exclude='.mypy_cache/' \
--exclude='.coverage' \
--exclude='htmlcov/' \
/Users/23865613/IdeaProjects/untitled/zadanie2/source_project/ \
/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta/
Проанализируй dry-run.
Убедись, что не копируются:
- .git
- .venv
- output
- temp_html
- projects
- meta_exporter.yaml
- логи
- backup-файлы
- __pycache__
- pyc
- .idea
- локальные конфиги с путями пользователя
- cookies
- токены
- sessionStorage
- localStorage
Дополнительно выполни поиск потенциальных секретов в исходном проекте, исключая временные и выходные каталоги:
cd /Users/23865613/IdeaProjects/untitled/zadanie2/source_project
grep -RInE \
--exclude-dir=.git \
--exclude-dir=.venv \
--exclude-dir=output \
--exclude-dir=temp_html \
--exclude='*.log' \
--exclude='*.bak' \
'(password|passwd|token|secret|cookie|authorization|bearer|sessionStorage|localStorage)' \
. || true
Не считай обычные упоминания ограничений в README.md или SKILL.md секретами.
Если найдены реальные значения credentials, остановись и не копируй соответствующие файлы.
---
# Этап 6. Выполнить реальный перенос skill-а
Только если dry-run безопасен и секреты не найдены, выполни:
rsync -av \
--exclude='.git/' \
--exclude='.venv/' \
--exclude='venv/' \
--exclude='output/' \
--exclude='temp_html/' \
--exclude='projects/' \
--exclude='meta_exporter.yaml' \
--exclude='*.log' \
--exclude='*.bak' \
--exclude='*.bak2' \
--exclude='*.tmp' \
--exclude='__pycache__/' \
--exclude='*.pyc' \
--exclude='.DS_Store' \
--exclude='.idea/' \
--exclude='.pytest_cache/' \
--exclude='.mypy_cache/' \
--exclude='.coverage' \
--exclude='htmlcov/' \
/Users/23865613/IdeaProjects/untitled/zadanie2/source_project/ \
/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta/
Не используй параметр --delete.
После копирования покажи:
find /Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta \
-maxdepth 4 -type f | sort
---
# Этап 7. Перенести структурированную архитектуру
Источник:
/Users/23865613/IdeaProjects/untitled/zadanie2/source_project/projects/SNL/meta
Назначение:
/Users/23865613/snl-ai-spec/projects/SNL/meta
Сначала проверь существование источника:
if [ ! -d "/Users/23865613/IdeaProjects/untitled/zadanie2/source_project/projects/SNL/meta" ]; then
echo "Каталог структурированной архитектуры не найден"
else
find /Users/23865613/IdeaProjects/untitled/zadanie2/source_project/projects/SNL/meta \
-maxdepth 6 -type f | sort
fi
Если каталог существует:
1. Создай назначение:
mkdir -p /Users/23865613/snl-ai-spec/projects/SNL/meta
2. Если в назначении уже есть файлы, создай резервную копию:
META_BACKUP_DIR="/Users/23865613/snl-ai-spec/.migration-backup/SNL-meta-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$META_BACKUP_DIR"
rsync -a \
/Users/23865613/snl-ai-spec/projects/SNL/meta/ \
"$META_BACKUP_DIR/"
3. Выполни dry-run:
rsync -avn \
--exclude='.DS_Store' \
--exclude='*.log' \
--exclude='*.bak' \
/Users/23865613/IdeaProjects/untitled/zadanie2/source_project/projects/SNL/meta/ \
/Users/23865613/snl-ai-spec/projects/SNL/meta/
4. Если dry-run корректен, выполни перенос:
rsync -av \
--exclude='.DS_Store' \
--exclude='*.log' \
--exclude='*.bak' \
/Users/23865613/IdeaProjects/untitled/zadanie2/source_project/projects/SNL/meta/ \
/Users/23865613/snl-ai-spec/projects/SNL/meta/
Не используй --delete.
---
# Этап 8. Подготовить Ralph Loop внутри skill-а
Исходный пример:
/Users/23865613/snl-ai-spec/projects/SNL/ralph-loop/service-doc-generator
Целевой каталог:
/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta/ralph-loop
Проверь наличие:
- AGENTS.md
- MAIN_GOAL.md
- run-gigacode.sh
Если хотя бы одного файла нет, не копируй неполный набор и сообщи об ошибке.
Если все файлы есть:
mkdir -p /Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta/ralph-loop
cp \
/Users/23865613/snl-ai-spec/projects/SNL/ralph-loop/service-doc-generator/AGENTS.md \
/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta/ralph-loop/AGENTS.md
cp \
/Users/23865613/snl-ai-spec/projects/SNL/ralph-loop/service-doc-generator/MAIN_GOAL.md \
/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta/ralph-loop/MAIN_GOAL.md
cp \
/Users/23865613/snl-ai-spec/projects/SNL/ralph-loop/service-doc-generator/run-gigacode.sh \
/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta/ralph-loop/run-gigacode.sh
chmod +x \
/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta/ralph-loop/run-gigacode.sh
Важно:
- не запускай run-gigacode.sh;
- не создавай progress/*.done.md;
- не создавай goal_done.md;
- не запускай бесконечный цикл;
- не изменяй пока инструкции под нашу задачу;
- только скопируй пример для последующей адаптации.
---
# Этап 9. Проверить пути после переноса
Проверь, нет ли в перенесённом skill-е жёстких ссылок на старый проект:
grep -RIn \
--exclude-dir=.git \
--exclude-dir=.venv \
--exclude-dir=output \
--exclude-dir=temp_html \
'/Users/23865613/IdeaProjects/untitled/zadanie2/source_project' \
/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta || true
Также проверь упоминания старого каталога adt-markdownify-meta-mvp:
grep -RIn \
--exclude-dir=.git \
--exclude-dir=.venv \
'adt-markdownify-meta-mvp' \
/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta || true
Пока не исправляй найденные пути автоматически.
Сначала покажи список файлов и строк, чтобы можно было отдельно решить, какие пути должны быть относительными.
---
# Этап 10. Проверить Python-код уже в snl-ai-spec
Перейди:
cd /Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta
Выполни:
python -m py_compile run_exporter.py scripts/*.py
Если локального Python недостаточно, не устанавливай зависимости глобально.
Не создавай .venv внутри репозитория без отдельного подтверждения.
Проверь импорты без запуска браузера:
python - <<'PY'
import importlib.util
from pathlib import Path
root = Path(".")
files = [root / "run_exporter.py"] + sorted((root / "scripts").glob("*.py"))
failed = []
for file_path in files:
module_name = "check_" + file_path.stem
try:
spec = importlib.util.spec_from_file_location(module_name, file_path)
if spec is None or spec.loader is None:
failed.append((str(file_path), "spec not created"))
continue
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
print(f"IMPORT OK: {file_path}")
except SystemExit:
print(f"IMPORT SYSTEM EXIT: {file_path}")
except Exception as error:
failed.append((str(file_path), repr(error)))
if failed:
print("\nIMPORT PROBLEMS:")
for file_path, error in failed:
print(f"- {file_path}: {error}")
else:
print("\nALL IMPORTS OK")
PY
Если import-проверка требует отсутствующие зависимости, покажи их названия, но не меняй системный Python автоматически.
---
# Этап 11. Проверить Git-изменения
Перейди:
cd /Users/23865613/snl-ai-spec
Покажи:
git branch --show-current
git status --short
git diff --stat
git diff --name-status
Не выполняй:
- git add;
- git commit;
- git push;
- git reset;
- git clean;
- git checkout --;
- git restore;
- force push.
---
# Финальный отчёт
В конце выведи:
# Перенос adt-markdownify-meta в snl-ai-spec
## 1. Исходный проект
Указать путь.
## 2. Целевой репозиторий
Указать путь.
## 3. Активная ветка
Указать точное имя.
## 4. Что перенесено в skill
Показать дерево:
find /Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta \
-maxdepth 4 -type f | sort
## 5. Что намеренно не перенесено
Перечислить:
- .venv;
- output;
- temp_html;
- meta_exporter.yaml;
- логи;
- backup-файлы;
- локальные IDE-файлы;
- cookies;
- токены;
- credentials.
## 6. Структурированная архитектура
Указать:
/Users/23865613/snl-ai-spec/projects/SNL/meta
Показать количество файлов:
find /Users/23865613/snl-ai-spec/projects/SNL/meta -type f | wc -l
## 7. Ralph Loop
Указать, что скопированы:
- ralph-loop/AGENTS.md;
- ralph-loop/MAIN_GOAL.md;
- ralph-loop/run-gigacode.sh.
Отдельно написать, что Ralph Loop не запускался и пока не адаптирован под adt-markdownify-meta.
## 8. Результат py_compile
Указать точно.
## 9. Найденные абсолютные пути старого проекта
Показать список файлов и строк.
## 10. Git status
Показать изменения, но ничего не коммитить.
## 11. Что нужно сделать следующим этапом
Написать:
1. адаптировать MAIN_GOAL.md под выгрузку архитектуры META;
2. адаптировать AGENTS.md под read-only работу;
3. проверить пути в run-gigacode.sh;
4. проверить используемые GigaCode skills;
5. только после проверки запускать Ralph Loop;
6. отдельно подготовить commit по стандарту adt-git-commit.
Главное условие:
исходный проект zadanie2 должен остаться нетронутой резервной копией, а перенос должен выполняться без удаления файлов и без commit/push.