Semantic File Index for AI Agents
Project description
Meaning
Semantic File Index for AI Agents
A lean, text-based semantic layer that lives alongside your files, readable by any AI agent, requiring no external services or embeddings.
The Problem
AI agents operating on codebases lack semantic context. They see files as paths and text, not as purposeful artifacts with relationships. This causes inefficient navigation, missed dependencies, and lost context between sessions.
The Solution
Meaning adds a .meaning/ directory to your project containing:
index.yamlโ Semantic records for all files (intent, tags, relationships)schema.yamlโ Project-specific vocabulary and relationship typesconfig.yamlโ Exclusion patterns and settings
When you say "update how API responses are parsed," your AI agent can read the index and know exactly which files to touch.
๐ Get Started in 5 Minutes ๐
Status
Phase 6 Complete โ Rule-based inference and enhanced tag vocabulary โ
- โ
Core library (
meaning_core.py) - 1,100+ lines - โ
Inference engine (
meaning_inference.py) - 950+ lines with 80+ built-in rules - โ
Rule-based inference - Automatic metadata for common files (
.gitignore,CLAUDE.md,*.slurm) - โ Enhanced tag vocabulary - 7 new categories (HPC, AI agents, scientific computing, data ops)
- โ Status command - Instant project overview with concepts, health metrics, and recent activity
- โ Query engine - Natural language semantic search (6 query types, <50ms response)
- โ
Five Claude Code skills (
/meaning-init,/meaning-update,/meaning-validate,/meaning-review,/meaning-query) - โ Hook scripts for automatic tracking
- โ Dog-fooded on itself (64 files indexed, 186 tests passing)
Next: PyPI release, real-world validation testing
Quick Start
Installation
# Install from source (PyPI coming soon)
pip install git+https://github.com/bozaah/meaning-fs.git
# Or for development
git clone https://github.com/bozaah/meaning-fs.git
cd meaning-fs
uv venv && uv pip install -e ".[dev]"
Initialize a Project
# Basic initialization (auto-detects project type)
meaning init
# With Claude Code integration
meaning init --install-hooks --with-skills
# Skip file scanning (just setup the structure)
meaning init --skip-crawl
With Claude Code Skills
# In your project directory with Claude Code
/meaning-init # Bootstrap .meaning/ with intelligent inference
/meaning-review # Review and approve suggested metadata
/meaning-validate # Check index health
# During development
/meaning-update # Sync with filesystem changes
/meaning-query # Semantic search
Discovering Your Project
Once initialized, instantly understand your codebase with zero latency:
# Get instant overview (concepts, health, recent activity)
python -m meaning status
# Natural language semantic search
python -m meaning query "what tests the core?"
python -m meaning query "show me all config files"
python -m meaning query "files that do parsing"
python -m meaning query "what needs review?"
python -m meaning query "what changed recently?"
Example output:
๐ Query Results: Files that tests src/meaning/meaning_core.py
Type: relationship
Found 1 file (showing 1):
1. tests/test_core.py
"Comprehensive test suite for core data structures..."
Tags: test, module
Relationships: tests(1), imports(1)
Or use the skill in Claude Code:
/meaning-query what tests the inference engine?
6 Query Types Supported:
- Status: "what needs review?", "what is stale?"
- Tag: "show me all test files", "find config files"
- Relationship: "what tests X?", "what documents Y?"
- Intent: "files that do parsing", "files about auth"
- Temporal: "what changed recently?"
- Concept: "show me the core library"
Features
- Instant Discovery -
statuscommand shows project overview in <50ms - Semantic Query - Natural language search across 6 query types (status, tag, relationship, intent, temporal, concept)
- Rule-Based Inference - 80+ built-in rules for automatic metadata on common files
- Filename rules:
.gitignore,requirements.txt,CLAUDE.md,Dockerfile, etc. - Path patterns:
**/test_*.py,.github/workflows/*.yml,**/prompts/**/*.md - Extension rules:
.slurm,.pbs,.envfor domain-specific files
- Filename rules:
- AI Agent Context Recognition - Automatic detection of
CLAUDE.md,GEMINI.md,WARP.md,.cursorrules - Enhanced Tag Vocabulary - 7 domain-specific categories:
vcs(git, ignore, hooks)ai_context(agent-context, llm-prompt)scientific_domain(data-processing, ml, climate, bioinformatics)infrastructure(hpc, cloud, container, ci-cd)data_ops(etl, batch, sync, upload)compute(slurm, pbs, spark, dask)packaging(dependencies, dev)
- 60%+ Auto-Accept Rate - Most common files get high-confidence metadata automatically
- Git-Friendly - Human-readable YAML files that diff and merge cleanly
- Zero Dependencies - Works offline, no external services or embeddings
- Batch Review - Efficient workflows for reviewing many files at once
- Claude Code Integration - Automatic tracking via hooks on file changes
- Transparent - All suggestions show confidence levels and reasoning
- Non-Destructive - Human reviews and approves all changes
How It Works
File Entries
Each file gets a semantic record:
- path: src/api/parser.py
intent: "Transforms raw API JSON responses into domain models"
tags: [api, parsing, transforms]
status: active
relationships:
- type: transforms
source: src/api/client.py
target: src/models/api_models.py
Rule-Based Inference
Common files are automatically recognized with high confidence:
# .gitignore โ confidence: 1.0
- path: .gitignore
intent: "Git version control ignore patterns"
tags: [config, vcs, ignore]
# CLAUDE.md โ confidence: 1.0
- path: CLAUDE.md
intent: "Claude AI agent project context and directives"
tags: [doc, ai, agent-context]
# jobs/run.slurm โ confidence: 0.95
- path: jobs/run.slurm
intent: "SLURM batch job submission script"
tags: [script, hpc, slurm, batch]
Concepts
Related files are grouped into concepts:
concepts:
- name: api-parsing
description: "External API response handling"
files:
- src/api/client.py
- src/api/parser.py
- src/models/api_models.py
entry_point: src/api/parser.py
Claude Code Integration
Meaning includes hooks for Claude Code that automatically track file changes:
{
"hooks": [
{
"matcher": { "type": "PostToolUse", "tool_name": ["write_file"] },
"script": ".meaning/scripts/meaning-post-write.sh"
}
]
}
Install hooks with:
python -m meaning init --install-hooks
Philosophy
Do not write code before stating assumptions.
Do not claim correctness you haven't verified.
Do not handle only the happy path.
Under what conditions does this work?
Project Structure
meaning/
โโโ .agent-sessions/ # AI agent session notes
โโโ .claude/ # Claude Code configuration
โ โโโ settings.json # Project hooks and permissions
โ โโโ skills/ # Skill definitions
โ โโโ meaning-init/
โ โโโ meaning-query/
โ โโโ meaning-review/
โ โโโ meaning-update/
โ โโโ meaning-validate/
โโโ .meaning/ # Dog-fooding: our own semantic index
โโโ src/
โ โโโ meaning/
โ โโโ __init__.py # Public API exports
โ โโโ __main__.py # CLI entry point
โ โโโ meaning_core.py # Core library
โ โโโ meaning_inference.py # Inference engine
โ โโโ installer.py # Installation logic
โ โโโ templates/ # Project templates
โ โโโ schema/ # Project-type schemas (python, node, rust, docs, mixed)
โ โโโ skills/ # Claude Code skill templates
โ โโโ config.yaml # Default config
โ โโโ hooks.json # Claude hooks template
โ โโโ scripts/ # Hook scripts for target projects
โโโ scripts/
โ โโโ meaning-post-write.sh # Post-mutation hook
โ โโโ meaning-validate.sh # Session-end hook
โ โโโ run-inference.py # Inference runner script
โ โโโ validate-meaning.sh # Validate this project's index
โโโ tests/
โโโ fixtures/ # Test fixtures
โโโ test_core.py # Core library tests
โโโ test_inference.py # Inference engine tests
โโโ test_installer.py # Installer tests
Documentation
- Quick Start Guide โ Get started in 5 minutes
- Implementation Plan โ Full specification
- CLAUDE.md / AGENTS.md โ Guide for AI agents working on this project
- Agent Sessions โ Session notes documenting project evolution
- Audits โ Real-world testing feedback and implementation plans
Supported File Types
Meaning includes built-in recognition for:
| Category | Files |
|---|---|
| Git/VCS | .gitignore, .gitattributes, .gitmodules |
| Python | requirements.txt, pyproject.toml, setup.py, conftest.py |
| Node.js | package.json, yarn.lock, tsconfig.json |
| Rust | Cargo.toml, Cargo.lock |
| Documentation | README.md, CHANGELOG.md, LICENSE, CONTRIBUTING.md |
| AI Agents | CLAUDE.md, GEMINI.md, WARP.md, AGENTS.md, .cursorrules |
| CI/CD | Dockerfile, docker-compose.yml, GitHub workflows |
| HPC/Scientific | .slurm, .pbs, .sge batch scripts |
| Data Ops | upload_*.sh, download_*.sh, sync_*.sh patterns |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file meaning_fs-0.1.1.tar.gz.
File metadata
- Download URL: meaning_fs-0.1.1.tar.gz
- Upload date:
- Size: 69.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7a53e838cf5adf22c35eedb021822a652dbee51d663819fe9fcbdf7b0466af5
|
|
| MD5 |
fa831a8822b1cb292c5d74a387649921
|
|
| BLAKE2b-256 |
92916da2044d80618f4f7a838fead6c0925bbc0a0ea79403c81ee2c29cf07f00
|
Provenance
The following attestation bundles were made for meaning_fs-0.1.1.tar.gz:
Publisher:
publish.yml on bozaah/meaning-fs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meaning_fs-0.1.1.tar.gz -
Subject digest:
e7a53e838cf5adf22c35eedb021822a652dbee51d663819fe9fcbdf7b0466af5 - Sigstore transparency entry: 849594579
- Sigstore integration time:
-
Permalink:
bozaah/meaning-fs@3bffddea7848f169d6c05e34646d4f7192fbe616 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/bozaah
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3bffddea7848f169d6c05e34646d4f7192fbe616 -
Trigger Event:
release
-
Statement type:
File details
Details for the file meaning_fs-0.1.1-py3-none-any.whl.
File metadata
- Download URL: meaning_fs-0.1.1-py3-none-any.whl
- Upload date:
- Size: 61.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e1ee0eff1e091acd6650b0f39a1a425757ace88f6afcdeb07a97e5829c9d17f
|
|
| MD5 |
b1ba2d7f86d2e82605384f49178cad6c
|
|
| BLAKE2b-256 |
9bc4da2b33a835527badafb39fe3d41df71f69c0067a2706c8e82206ef7d5be6
|
Provenance
The following attestation bundles were made for meaning_fs-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on bozaah/meaning-fs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meaning_fs-0.1.1-py3-none-any.whl -
Subject digest:
7e1ee0eff1e091acd6650b0f39a1a425757ace88f6afcdeb07a97e5829c9d17f - Sigstore transparency entry: 849594628
- Sigstore integration time:
-
Permalink:
bozaah/meaning-fs@3bffddea7848f169d6c05e34646d4f7192fbe616 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/bozaah
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3bffddea7848f169d6c05e34646d4f7192fbe616 -
Trigger Event:
release
-
Statement type: