Develop and maintain isar_agent_memory, a Dart/Flutter package for advanced RAG with local-first storage and ObjectBox vector indexing.
Development skill for contributing to `isar_agent_memory`, a Dart/Flutter package providing advanced RAG (Retrieval-Augmented Generation) capabilities with local-first storage.
**Language**: Dart (`>=3.2.0 <4.0.0`)
**Database**: ObjectBox for vector storage (HNSW index)
**Package Type**: pub.dev package for Flutter/Dart projects
**Repository**: iberi22/isar_agent_memory
This is a reusable, open-source cognitive agent memory system inspired by Cognee and Graphiti. Features graph-based nodes, semantic embeddings, and memory degree management.
```
lib/
├── isar_agent_memory.dart # Main export file
└── src/
├── memory_graph.dart # Core graph-based memory
├── vector_index*.dart # Vector search implementations
├── embeddings_*.dart # Embedding adapters
└── ... # Advanced features
test/ # Unit and integration tests
tool/ # Release automation scripts
example/ # Usage examples
```
Follow these conventions strictly:
Organize imports in three groups (separated by blank lines), sorted alphabetically within each:
1. Dart SDK imports (`dart:*`)
2. Package imports (`package:*`)
3. Relative imports (internal files)
**Example:**
```dart
import 'dart:async';
import 'dart:convert';
import 'package:objectbox/objectbox.dart';
import 'package:uuid/uuid.dart';
import 'memory_graph.dart';
import 'vector_index.dart';
```
**Example:**
```dart
final box = store.box<MemoryNode>();
final query = box.query(condition).build();
try {
final results = query.find();
return results;
} finally {
query.close();
}
```
Familiarize yourself with these key dependencies:
```bash
dart pub get
dart analyze
dart format .
dart test
dart test test/smoke_test.dart
dart pub publish --dry-run
```
Follow this pattern when adding features:
1. **Implement** - Create implementation in `lib/src/`
2. **Export** - Add export to `lib/isar_agent_memory.dart`
3. **Test** - Add comprehensive tests in `test/`
4. **Document** - Update relevant `.md` documentation files
5. **Changelog** - Add entry to `CHANGELOG.md`
**⚠️ ALWAYS follow this process for version changes:**
Use the automated script to ensure consistency across all files:
```powershell
.\tool\update_version.ps1 -NewVersion "X.Y.Z"
```
This updates:
Add a new section at the top:
```markdown
```
Use these commit message prefixes:
After pushing to `main`:
1. **version-sync.yml** - Validates version consistency across files
2. **release-on-merge.yml** - Creates git tag and GitHub Release
3. **publish-to-pub-dev.yml** - Publishes stable releases to pub.dev automatically
**Note:** Prereleases (`beta`, `alpha`, `rc`) are NOT automatically published to pub.dev.
| Workflow | Trigger | Purpose |
|----------|---------|---------|
| `ci.yml` | PR/Push | Lint, analyze, test |
| `version-sync.yml` | PR/Push | Validate version consistency |
| `release-on-merge.yml` | Push to main | Create tags and GitHub releases |
| `publish-to-pub-dev.yml` | Release published | Publish to pub.dev |
Always close queries to prevent resource leaks:
```dart
final box = store.box<MemoryNode>();
final query = box.query(condition).build();
try {
final results = query.find();
return results;
} finally {
query.close();
}
```
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/isaragentmemory-dart-rag-development/raw