AGENTS.md
Project Identity
Project Name: ratatui_ruby-tea
Description: Part of the RatatuiRuby ecosystem.
1. Standards
STRICT REQUIREMENTS
-
Every file MUST begin with an SPDX-compliant header. Use
LGPL-3.0-or-laterfor code;CC-BY-SA-4.0for documentation.reuse annotatecan help you generate the header. For Ruby files, wrap SPDX comments in – / ++ to hide them from RDoc output. -
Every line of Ruby MUST be covered by tests that would stand up to mutation testing.
-
Tests must be meaningful and verify specific behavior or rendering output; simply verifying that code “doesn’t crash” is insufficient and unacceptable.
-
Pre-commit: Use
agent_raketo ensure commit-readiness. See Tools for detailed instructions. -
Git Pager: ALWAYS set
PAGER=catfor ALLgitcommands (e.g.,PAGER=cat git diff). This is mandatory.
Tools
-
NEVER run
bundle exec rakedirectly. NEVER runbundle exec ruby -Ilib:test ...directly. -
ALWAYS use
agent_rake(provided by theratatui_ruby-devtoolsgem) for running tests, linting, or checking compilation. -
Usage:
-
Runs default task (compile + test + lint):
agent_rake -
Runs specific task:
agent_rake test:ruby(for example)
-
-
Setup:
bin/setupmust handle Bundler dependencies. -
Git: ALWAYS set
PAGER=catwithgit. THIS IS CRITICAL!
Ruby Standards
-
Use
Data.definefor all value objects (Ruby 3.2+). -
Define types in
.rbsfiles. Don’t useuntypedjust because it’s easy; be comprehensive and accurate. -
Every public Ruby class/method must be documented for humans in RDoc.
2. Committing
-
Who commits: DON’T stage (DON’T
git add) unless explicitly instructed. DON’T commit unless explicitly instructed. DO suggest a commit message when you finish. -
Format:
-
Format: Use Conventional Commits.
-
Body: Explanation if necessary (wrap at 72 chars).
-
DON’T list the files changed or the edits made in the body.
-
DON’T use markdown syntax (no backticks, no bolding, no lists, no links).
-
-
3. Definition of Done (DoD)
Before considering a task complete:
-
Default Rake Task Passes: Run
agent_rake(no args). Confirm it passes with ZERO errors. -
Documentation Updated: If public APIs changed, update relevant docs.
-
Changelog Updated: If public APIs changed, update CHANGELOG.md’s Unreleased section.
-
Commit Message Suggested: Include a suggested commit message block.