This document defines the standard tags used across the Chronicle test suite.
Chronicle uses 11 business tags and three execution-requirement tags. The 14 permitted tags are
defined in robot-tags.json, which is the canonical machine-readable allowlist.
IMPORTANT: Tags must be tab-separated, not space-separated.
# Correct - tabs between tags
[Tags] permissions conversation
# Incorrect - spaces between tags
[Tags] permissions conversationpermissions - Authentication, authorization, access control, user management
- User login/logout
- Admin operations
- Role-based access control
- Data isolation between users
- Security tests
conversation - Conversation management and transcription
- Conversation CRUD operations
- Transcript processing and versioning
- Speaker diarization
- Conversation metadata
memory - Memory extraction, storage, and retrieval
- Memory creation from conversations
- Semantic search
- Memory versioning
- Memory reprocessing
chat - Chat service and sessions
- Chat session management
- Message handling
- Chat history
- Chat statistics
queue - Job queue management and monitoring
- RQ worker status
- Job tracking
- Queue health
- Background task processing
health - System health and readiness checks
- Health endpoints
- Service status
- Readiness probes
- System metrics
infra - Infrastructure and system-level operations
- Service configuration
- System administration
- Client management
- General system operations
audio-upload - Audio file upload and batch processing
- File upload endpoints
- Batch audio processing
- Audio file CRUD operations
audio-batch - Batch audio processing operations
- Multiple file processing
- Batch job management
audio-streaming - Real-time audio streaming
- WebSocket audio streaming
- Real-time transcription
- Live audio processing
e2e - End-to-end integration tests
- Multi-component workflows
- Full pipeline testing
- Cross-service integration
There is no
requires-api-keystag. Tests are never selected by whether a credential is present. Which backing services are real is a property of the service profile a run uses (tests/profiles.yml), not of individual tests, and the suite is identical in every profile. If a test seems to need a real provider, the stub is not faithful enough -- record a cassette (make record-cassettes) rather than tagging the test out of CI.
slow - Tests requiring long timeouts (>30s) or infrastructure operations
- Backend restart tests (service stop/start cycles)
- Connection resilience tests
- Heavy integration tests with multiple service restarts
- Excluded from default
make testruns for faster feedback - Run explicitly with
make test-slowormake test-all-with-slow-and-sdk
sdk - Tests for unreleased SDK functionality
- SDK integration tests
- SDK authentication tests
- SDK API endpoint tests
- Excluded from default
make testruns until SDK is released - Run explicitly with
make test-sdkwhen developing SDK features
requires-gpu - Tests requiring GPU hardware and CUDA
- Actual ASR model loading and inference
- GPU-accelerated transcription quality validation
- Tests using real NeMo/Parakeet models
- Excluded from standard CI runs (no GPU available)
- Run explicitly with
make test-asr-gpuon GPU-enabled systems
Most tests should have one primary tag indicating the main component being tested:
# Authentication test
[Tags] permissions
# Memory search test
[Tags] memory
# WebSocket streaming test
[Tags] audio-streamingUse 2-3 tags only when testing interactions between components:
# Conversation creates memories
[Tags] conversation memory
# Admin managing queues
[Tags] permissions queue
# E2E audio upload to memory
[Tags] e2e audio-upload memory- Is it about users/auth/security? →
permissions - Is it about audio upload/files? →
audio-upload - Is it about WebSocket/streaming? →
audio-streaming - Is it about conversations? →
conversation - Is it about memories? →
memory - Is it about chat? →
chat - Is it about queues/jobs? →
queue - Is it about health checks? →
health - Is it end-to-end? →
e2e - Is it infrastructure/config? →
infra - Does it take >30s or restart services? → Add
slowtag - Is it for unreleased SDK features? → Add
sdktag - Does it require GPU hardware? → Add
requires-gputag
# Good - Clear single tag
[Tags] permissions
[Tags] conversation
[Tags] memory
# Good - Component interaction
[Tags] conversation memory
[Tags] permissions queue
# Good - E2E with components
[Tags] e2e audio-streaming conversation
# Bad - Too many tags
[Tags] permissions conversation memory queue health
# Bad - Use infra instead
[Tags] configuration
[Tags] system-admin
# Bad - Non-existent tags
[Tags] negative
[Tags] positive
[Tags] security # Use 'permissions' insteadDO NOT create or use any tags other than the 14 approved tags above.
Commonly misused tags that should NOT be used:
- ❌
positive,negative- Test outcome is in the results, not tags - ❌
security,auth,admin,user- Usepermissionsinstead - ❌
websocket,streaming- Useaudio-streaminginstead - ❌
upload,crud- Useaudio-uploadinstead - ❌
integration- Usee2einstead - ❌
system,config,service- Useinfrainstead - ❌
rq,jobs,worker- Usequeueinstead - ❌ Any other tags not in the approved list above
# Run all permission tests
robot --include permissions tests/
# Run conversation and memory tests
robot --include conversationORmemory tests/
# Run only E2E tests
robot --include e2e tests/
# Run everything except E2E
robot --exclude e2e tests/
# Run audio-related tests
robot --include audio-upload --include audio-streaming tests/STOP! Ask yourself:
- Can I use one of the 11 business tags?
- Does the test genuinely need one of the three execution-requirement tags?
- Is a new tag really necessary for test selection?
- Have I checked with the team?
New tags require team approval and must be added to this document first.
When updating tags across test files:
- Update all affected test files
- Update
robot-tags.json - Update this document (tags.md)
- Update TESTING_GUIDELINES.md if rules changed
- Document the change in the commit message
Current distribution (approximate):
permissions: 38 testsinfra: 18 testschat: 14 testsqueue: 18 testse2e: 14 testsconversation: 12 testsmemory: 11 testshealth: 9 testsaudio-streaming: 4 testsaudio-upload: 3 testsslow: 2 tests (backend restart tests)sdk: 2 tests (SDK integration tests)requires-gpu: 5 tests (ASR GPU integration tests)audio-batch: 0 tests (reserved for future use)
Last Updated: 2026-01-29 Total Approved Tags: 14 Enforcement: Mandatory - no exceptions