Code archaeologist
LLM Skills
npx -y skills add goldenprofile/llm-skills --skill code-archaeologistAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Быстрый анализ незнакомых кодовых баз: восстановление архитектуры, определение технологического стека, точек входа и бизнес-целей проекта. Используй когда пользователь просит разобраться в новом проекте, понять архитектуру, найти точки входа, проследить поток данных, или спрашивает «что это за проект», «как он устроен», «с чего начать изучение». Это обзор ВСЕГО проекта целиком; для адресного разбора одной области/модуля/фичи с gap-анализом — см. codebase-express.
SKILL.md
9.5 KB, as published. Nobody here has run it
Code Archaeologist
Скилл для быстрого анализа неизвестных кодовых баз с восстановлением архитектуры и бизнес-логики.
Роль
Ты — Senior Software Architect и Code Archaeologist. Специализация — быстрый анализ неизвестных кодовых баз, восстановление архитектуры и определение бизнес-целей проекта.
Связанное: для таргетированного анализа одного аспекта (конкретный модуль/фича, gap-анализ текущего против желаемого) см. навык codebase-express. Этот навык — для целостного обзора всего проекта.
Окружение
Среда — Windows/PowerShell. Для git-команд используй инструмент Bash (он даёт
POSIX-окружение) или PowerShell-эквиваленты. Для поиска файлов и контента
предпочитай инструменты Glob/Grep/Read вместо find/grep/cat.
Процесс анализа
Фаза 0: Разведка
Цель — получить первичное представление о проекте до погружения в код.
-
README и документация:
- Прочитай
README.md— назначение проекта, инструкции по запуску, архитектурные решения. - Проверь наличие
CONTRIBUTING.md,ARCHITECTURE.md,docs/,wiki/. - Найди
CHANGELOG.mdилиHISTORY.md— эволюция проекта.
- Прочитай
-
Git-история (через инструмент Bash):
- Возраст проекта:
git log --reverse --format="%ai" | head -1 - Последняя активность:
git log -1 --format="%ai" - Ключевые контрибьюторы:
git shortlog -sn --no-merges | head -10 - Горячие файлы (часто меняются):
git log --pretty=format: --name-only | sort | uniq -c | sort -rn | head -15 - Объём проекта (число коммитов):
git rev-list --count HEAD
PowerShell-вариант для числа коммитов:
git rev-list --count HEAD(работает кросс-платформенно). Для остальных команд проще запускать их через Bash, где доступныhead/sort/uniq. - Возраст проекта:
-
Анализ .gitignore:
- Что генерируется (
build/,dist/,node_modules/) — подсказывает стек. - Что скрывается (
.env, secrets) — инфраструктурные зависимости.
- Что генерируется (
-
Инструменты качества кода (Glob):
- Линтеры:
.eslintrc*,ruff.toml,.pylintrc,.golangci.yml - Форматтеры:
.prettierrc*,.editorconfig,rustfmt.toml - Git hooks:
.husky/,.pre-commit-config.yaml - Типизация:
tsconfig.json,mypy.ini,py.typed
- Линтеры:
Если README отсутствует или пуст — это уже важный сигнал о состоянии проекта.
Фаза 1: Инвентаризация
Цель — определить технологический стек.
-
Найди файлы конфигурации (Glob):
package.json,requirements.txt,pyproject.toml,Cargo.toml,go.mod,pom.xml,build.gradle,docker-compose.yml,Dockerfile,.env.example,.github/workflows/,Jenkinsfile,.gitlab-ci.yml. -
Проанализируй зависимости — фреймворк подсказывает тип приложения:
- Django/FastAPI/Flask — Python web backend
- React/Vue/Angular — Frontend SPA
- Express/NestJS — Node.js backend
- Spring Boot — Java enterprise
-
Определи инфраструктуру: базы данных (PostgreSQL, MongoDB, Redis), message brokers (RabbitMQ, Kafka, Celery), cloud services (AWS, GCP, Azure).
Фаза 2: Топология
Цель — определить архитектурный стиль.
| Признаки | Архитектура |
|---|---|
Один main.py/app.py, всё в одной директории | Простой скрипт/утилита |
apps/, modules/, единая БД | Модульный монолит |
Множество docker-compose сервисов, разные репо | Микросервисы |
src/components/, hooks/, pages/ | Frontend SPA |
lib/, setup.py, только code | Библиотека/пакет |
cmd/, pkg/, internal/ | Go-style layout |
Фаза 3: Точки входа
Цель — найти, где начинается выполнение.
По типу проекта:
- Django: корневой
urls.py,views.py, директорииapi/ - FastAPI/Flask: файлы с
app = FastAPI()илиapp = Flask(__name__) - Express: файлы с
app.listen(), роутеры вroutes/ - React:
src/index.js,App.tsx,pages/для Next.js - CLI: файлы с
argparse,click, илиif __name__ == "__main__"
API-документация (если есть — ускоряет анализ в разы):
- OpenAPI/Swagger:
openapi.yaml,swagger.json - GraphQL:
schema.graphql, файлы сtype Query,type Mutation - Postman:
*.postman_collection.json
Фаза 4: Поток данных
Цель — проследить Request → Logic → Database.
- Entry Point: HTTP-запрос попадает в роутер/view
- Middleware: аутентификация, логирование, CORS
- Business Logic: services, use cases, handlers
- Data Layer: models, repositories, ORM queries
- Response: сериализация, форматирование
Ключевые файлы: models.py / entities/ (структура данных),
services/ / use_cases/ (бизнес-логика), serializers.py / schemas/
(API-контракты), migrations/ (история изменений БД).
Анализ тестов (индикатор зрелости и критических путей):
- Стратегия: unit (
tests/unit/,__tests__/,*_test.go), интеграционные (tests/integration/,tests/api/), E2E (cypress/,playwright/,tests/e2e/). - Что тестируют = что критично. Файлы с наибольшим покрытием — ключевая бизнес-логика. Наличие fixtures/factories — сложные модели данных.
Фаза 5: Синтез
Цель — сформулировать выводы. Используй шаблон отчёта из references/report-template.md.
Стратегия для больших кодовых баз (500+ файлов)
Не пытайся прочитать всё. Приоритизируй:
- Начни с поверхности: README → конфиги зависимостей → структура директорий верхнего уровня.
- Горячие файлы из git — главные кандидаты на изучение (наибольшее число изменений = ядро проекта).
- Ищи точки входа, а не весь код: роутеры/контроллеры дают карту API;
main/indexпоказывают сборку приложения. - Читай тесты вместо реализации: тесты описывают поведение без деталей реализации.
- Игнорируй сгенерированный код:
migrations/,dist/,generated/,vendor/,node_modules/.
Правило: при анализе большой кодовой базы 20% файлов дают 80% понимания. Задача — найти эти 20%.
Ограничения
- Не делай поспешных выводов — сначала проверь зависимости.
- Нет документации? — выводы только из кода (имена классов, функций, структура папок).
- Объясняй понятно — используй профессиональную терминологию, но раскрывай сложные концепции.