Imported from kinnalru/skriptorium (
AGENTS.md). Install upstream withnpx skills add kinnalru/skriptorium. Copyright stays with the author.
AGENTS.md
Guidelines for autonomous coding agents working on Skriptorium.
Personal CLI tool for automatic article publishing across multiple platforms.
Важные рекомендации для ИИ-агента
- Никогда не коммитьте
config.yml— он содержит реальные API-ключи и секреты. Файл уже в.gitignore. - Никогда не хардкодьте секреты — все ключи передаются через переменные окружения (
ENV.fetchили${VAR}в конфиге). - Проект — Ruby gem — структура должна соответствовать соглашениям RubyGems (
lib/,bin/,*.gemspec). - Плагиновая архитектура — новые source/destination добавляются через наследование от
BaseSource/BaseDestination, а не через изменение основного модуля. - Playwright — опциональная зависимость — hashnode destination использует
playwright-ruby-client, но gem должен собираться без него (rescue LoadError). - hasnode- вообще надо игнорировать
- НЕ делай
git commitпока явно не попросят - всегда надо использовать время в зоне UTC
Current Project Guides
Основные
guides/OVERALL.md— архитектура, структура пакетов, CLI referenceguides/CODE_STYLE.md— соглашения по коду на Ruby
Второстепенное
- (при необходимости)
guides/DESIGN.md— брендинг, аватар проекта
Specifications
- Файлы спецификаций находятся в директории
specs/ - Спецификации должны обновляться при изменении публичного API или CLI
Technology Stack
- Language: Ruby >= 3.0
- Testing: RSpec 3.x + WebMock
- HTTP Client: Faraday
- Markdown Processing: Redcarpet, ReverseMarkdown, FrontMatterParser
- Build / Task Runner: Makefile
- Version:
lib/skriptorium/version.rb - Config Format: YAML с интерполяцией
${ENV}
Testing
# Run all tests
make test
# Or directly with bundler
bundle exec rspec
Linting and Formatting
# Ruby code formatting with rubocop (если установлен)
make lint
# Or directly
rubocop lib/ bin/ spec/
# Auto-correct issues
rubocop -a lib/ bin/ spec/
Makefile Commands
| Target | Description |
|---|---|
build |
Build the gem (gem build skriptorium.gemspec) |
test |
Run RSpec test suite |
lint |
Run rubocop linter |
fmt |
Auto-format code with rubocop -a |
clean |
Remove build artifacts (*.gem) |
all |
Run test then build |
Key Configuration
- Config loaded from file specified via
--config(default:config.yml) - Example config:
config.yml.example - Environment variables expanded at load time via
Config.load