Project instructions for AI assistants working on activerecord-null gem
- Mission & Vision: @.agent-os/product/mission.md
- Technical Architecture: @.agent-os/product/tech-stack.md
- Development Roadmap: @.agent-os/product/roadmap.md
- Decision History: @.agent-os/product/decisions.md
- Code Style: @~/.agent-os/standards/code-style.md
- Best Practices: @~/.agent-os/standards/best-practices.md
- Active Specs: @.agent-os/specs/
- Spec Planning: Use
@~/.agent-os/instructions/create-spec.md - Tasks Execution: Use
@~/.agent-os/instructions/execute-tasks.md
When asked to work on this codebase:
- First, check @.agent-os/product/roadmap.md for current priorities
- Then, follow the appropriate instruction file:
- For new features: @~/.agent-os/instructions/create-spec.md
- For tasks execution: @~/.agent-os/instructions/execute-tasks.md
- Always, adhere to the standards in the files listed above
- Product-specific files in
.agent-os/product/override any global standards - User's specific instructions override (or amend) instructions found in
.agent-os/specs/... - Always adhere to established patterns, code style, and best practices documented above
This is NOT a Rails application - it's a library gem that extends ActiveRecord. Keep this context in mind:
- No application hosting, database hosting, or asset hosting
- Focus is on library code quality, API design, and compatibility
- Tests use SQLite3 in-memory database
- Must maintain backward compatibility within major versions
Before committing, ALWAYS run:
bundle exec standardrb --fixAll code must pass Standard linting. No exceptions.
- Use Minitest (not RSpec)
- All new features must have comprehensive test coverage
- Run tests with:
rake test(default rake task) - Tests are in
test/directory following Minitest conventions
This gem uses Reissue for release management:
- Use git trailers for changelog entries in commits
- Run
rake build:checksumto build gem and generate checksums - Run
rake releaseto create git tag, push commits/tags, and push to RubyGems - Reissue automatically increments version and updates changelog
Never manually edit:
lib/activerecord/null/version.rb(managed by Reissue)CHANGELOG.md(generated from git trailers)
- Minimum ActiveRecord version: 7.0
- Minimum Ruby version: 3.0.0
- Test against multiple ActiveRecord versions if adding complex features
- Be mindful of ActiveRecord's reflection API and association internals
From @.agent-os/product/decisions.md:
- Drop-in Replacement: Null objects should work anywhere real records work
- Singleton Pattern: One null object instance per model class
- Zero Configuration: Associations and attributes work automatically
- Simple API: Creating null objects should be easy and obvious
Per @.agent-os/product/roadmap.md, we are in Phase 1: Edge Case Exploration
Focus areas:
- Finding and fixing edge cases
- Testing complex association scenarios
- Ensuring production-ready stability
- Documenting limitations and known issues
When proposing new features, consider whether they:
- Fix an edge case or bug
- Improve compatibility with Rails ecosystem
- Maintain API simplicity
- Are backwards compatible