Риторический анализ
bastien-gallay/rhetorical-analysis-skillClaude Skill для риторического и эпистемологического анализа статей, речей и аргументативных текстов. Поддерживает модель Тулмина, тест CRAAP, каталог логических ошибок и экспорт отчётов в XLSX, JSON, Markdown.
Установка
git clone https://github.com/bastien-gallay/rhetorical-analysis-skill.gitREADME
Rhetorical Analysis Skill
Скилл Claude для риторического и эпистемологического анализа статей, речей и аргументативных текстов.
Возможности
- Анализ по модели Тулмина: декомпозиция аргументов на тезис, основания, гарант, поддержку, квалификатор и опровержение
- Тест CRAAP: оценка надёжности источника (актуальность, релевантность, авторитетность, точность, цель)
- Обнаружение логических ошибок: выявление fallacy из расширенного каталога
- Генерация XLSX-отчётов: экспорт структурированного анализа в формат Excel
Примеры данных
Репозиторий содержит примеры файлов анализа — синтетические (созданные для демонстрации) или материалы из общественного достояния:
| Файл | Содержимое | Лицензия |
|---|---|---|
assets/example_analysis.json | Синтетическая статья об urban mobility | CC0 (Public Domain) |
assets/example_ddhc_1789.json | Декларация прав человека 1789 года | Public Domain |
Эти примеры демонстрируют формат анализа без каких-либо проблем с авторскими правами. Для анализа собственных статей см. документацию по JSON Schema.
Примечание: директория benchmark/ (если присутствует) может содержать анализы материалов, защищённых авторским правом, и исключена из распространяемого пакета и git-трекинга.
Загрузка
Готовые архивы .skill доступны для скачивания на странице GitHub Releases.
Шаги установки
- Перейдите на страницу Releases
- Скачайте последний файл
.skill(например,rhetorical-analysis-0.1.0.skill) - Используйте файл
.skillв совместимом с Claude приложении
GitHub автоматически предоставляет контрольные суммы для всех ресурсов релиза, если требуется проверка целостности.
Установка для разработки
uv sync --all-extras
Использование
Генерация отчёта анализа
uv run python scripts/generate_analysis.py input.json output.[xlsx|json|md] --format [xlsx|json|md]Примеры:
uv run python scripts/generate_analysis.py analysis.json rapport_analyse.xlsx --format xlsx
uv run python scripts/generate_analysis.py analysis.json analysis_output.json --format json
uv run python scripts/generate_analysis.py analysis.json rapport.md --format mdУпаковка скилла
Скрипт package_skill.py валидирует и упаковывает скилл для распространения.
# Создать распространяемый архив .skill
uv run python scripts/package_skill.py
# Предпросмотр файлов без создания архива
uv run python scripts/package_skill.py --dry-run
# Вывод в указанную директорию
uv run python scripts/package_skill.py --output dist/Валидация
Перед упаковкой скрипт валидирует SKILL.md:
- Требует YAML frontmatter с полями
nameиdescription - Ограничение: не более 500 строк
Исключаемые файлы
Следующие паттерны по умолчанию исключаются из архива:
| Категория | Паттерны |
|---|---|
| Контроль версий | .git/, .gitignore |
| Python | .venv/, __pycache__/, *.egg-info/, *.pyc, *.pyo |
| Тестирование | tests/, .pytest_cache/ |
| IDE/редакторы | .claude/, .cursor/, .vscode/, .idea/, .agent/, .opencode/, .github/ |
| Линтеры | .ruff_cache/, .mypy_cache/, .markdownlint.json |
| Сборка | uv.lock |
| Разработка | openspec/, docs/, CLAUDE.md, AGENTS.md |
| Данные | benchmark/ (может содержать материалы с авторскими правами) |
| ОС | .DS_Store |
Результат
Архив именуется по шаблону {skill-name}-{version}.skill, например rhetorical-analysis-0.1.0.skill.
Разработка
Запуск тестов
uv run pytest tests/ -v
Структура проекта
.
├── SKILL.md # Точка входа скилла (читается Claude)
├── scripts/ # Python-скрипты
│ ├── generate_analysis.py
│ └── package_skill.py
├── references/ # Справочная документация
│ ├── fallacies-catalog.md
│ └── existing-frameworks-and-tools.md
├── assets/ # Примеры файлов и шаблоны
│ ├── example_analysis.json # Синтетический пример (CC0)
│ ├── example_ddhc_1789.json # Пример из общественного достояния
│ └── SCHEMA.md # Документация формата JSON
├── benchmark/ # Данные для бенчмарков (не распространяются)
└── tests/ # Юнит-тестыСоздание релиза (для мейнтейнеров)
Релизы автоматизированы через GitHub Actions при пуше тегов версий.
Процесс релиза
-
Обновите версию в
pyproject.tomlдо нужного значения (например,0.1.0) -
Зафиксируйте изменения и запушьте в основную ветку
-
Создайте и запушьте тег с номером версии:
bashgit tag v0.1.0 git push origin v0.1.0 -
GitHub Actions автоматически:
- Запускает скрипт упаковки (
scripts/package_skill.py) - Создаёт GitHub Release с именем тега
- Загружает архив
.skillкак ресурс релиза
- Запускает скрипт упаковки (
Соглашения по тегам
- Стабильные релизы:
v<major>.<minor>.<patch>(например,v1.0.0,v0.2.1) - Предрелизы: суффикс
-alpha,-betaили-rc(например,v0.1.0-alpha,v1.0.0-rc1)- Предрелизы автоматически помечаются соответствующим образом на GitHub
Согласованность версий
Убедитесь, что версия Git-тега совпадает с полем version в pyproject.toml:
- Тег
v0.1.0должен соответствоватьversion = "0.1.0"вpyproject.toml