Configuration System¶
Configuration Hierarchy¶
graph TB
subgraph "Configuration Sources (Priority Order)"
CLI[Command-line Arguments<br/>Highest Priority<br/>--algorithm, --exclude]
ENV[Environment Variables<br/>TENETS_ALGORITHM=ml]
PROJECT[Project Configuration<br/>.tenets.yml in project root]
USER[User Configuration<br/>~/.config/tenets/config.yml]
SYSTEM[System Defaults<br/>Built-in fallbacks<br/>Lowest Priority]
end
subgraph "Configuration Categories"
RANKING_CONFIG[Ranking Configuration<br/>Algorithms, weights, factors]
NLP_CONFIG[NLP Configuration<br/>Tokenization, stopwords]
ML_CONFIG[ML Configuration<br/>Models, caching, devices]
CACHE_CONFIG[Cache Configuration<br/>TTL, size limits, storage]
SCANNER_CONFIG[Scanner Configuration<br/>Ignore patterns, limits<br/>Minified exclusion]
OUTPUT_CONFIG[Output Configuration<br/>Format, tokens, metadata]
end
subgraph "Dynamic Configuration"
HOT_RELOAD[Hot Reload<br/>File change detection]
API_UPDATE[Runtime API Updates<br/>Programmatic changes]
VALIDATION[Configuration Validation<br/>Type checking, constraints]
ROLLBACK[Error Rollback<br/>Revert on failure]
end
CLI --> RANKING_CONFIG
ENV --> NLP_CONFIG
PROJECT --> ML_CONFIG
USER --> CACHE_CONFIG
SYSTEM --> SCANNER_CONFIG
RANKING_CONFIG --> HOT_RELOAD
NLP_CONFIG --> API_UPDATE
ML_CONFIG --> VALIDATION
CACHE_CONFIG --> ROLLBACK
SCANNER_CONFIG --> ROLLBACK
OUTPUT_CONFIG --> ROLLBACK
Complete Configuration Schema¶
YAML
# .tenets.yml
version: 2
# Ranking configuration
ranking:
algorithm: balanced # fast|balanced|thorough|ml
threshold: 0.1 # Minimum relevance score
use_git: true # Enable git signals
use_ml: true # Enable ML features
# Factor weights (must sum to ~1.0)
weights:
semantic_similarity: 0.25
keyword_match: 0.15
bm25_similarity: 0.15
import_centrality: 0.10
path_relevance: 0.10
git_recency: 0.05
git_frequency: 0.05
git_authors: 0.05
file_type: 0.05
code_patterns: 0.05
# Performance
workers: 8 # Parallel workers
batch_size: 100 # Batch size for ML
# NLP configuration
nlp:
use_stopwords: true
stopword_set: minimal # minimal|aggressive|custom
tokenizer: code # code|text
keyword_extractor: rake # rake|yake|bm25|tfidf|frequency
text_similarity: bm25 # bm25|tfidf
# ML configuration
ml:
model: all-MiniLM-L6-v2
device: auto # auto|cpu|cuda
cache_embeddings: true
embedding_dim: 384
# Cache configuration
cache:
enabled: true
directory: ~/.tenets/cache
max_size_mb: 1000
ttl_days: 7
# SQLite pragmas
sqlite_pragmas:
journal_mode: WAL
synchronous: NORMAL
cache_size: -64000
temp_store: MEMORY
# File scanning
scanner:
respect_gitignore: true
include_hidden: false
follow_symlinks: false
max_file_size_mb: 10
binary_detection: true
exclude_minified: true
exclude_tests: auto
# Global ignores
ignore_patterns:
- "*.pyc"
- "__pycache__"
- "node_modules"
- ".git"
- ".venv"
- "venv"
- "*.egg-info"
- "dist"
- "build"
# Summarization configuration
summarizer:
summarize_imports: true
import_summary_threshold: 5
docs_context_aware: true
docs_show_in_place_context: true
docs_context_search_depth: 2
docs_context_min_confidence: 0.6
docs_context_max_sections: 10
docs_context_preserve_examples: true
# Output configuration
output:
format: markdown # markdown|json|xml|html
max_tokens: 100000
include_metadata: true
include_instructions: true
copy_on_distill: false
# Session configuration
session:
auto_save: true
history_limit: 100
branch_on_conflict: true
# Examination configuration
examination:
complexity_threshold: 10
duplication_threshold: 0.1
min_test_coverage: 0.8
# Chronicle configuration
chronicle:
include_merges: false
max_commits: 1000
analyze_patterns: true
# Momentum configuration
momentum:
sprint_duration: 14
velocity_window: 6
include_weekends: false
# Tenet configuration
tenet:
auto_instill: true
injection_frequency: adaptive
max_per_context: 5
system_instruction_enabled: true