2026-03-30 18:14:13 +00:00
# CLAUDE.md
2026-04-06 22:20:51 +00:00
> **STOP. Before producing ANY output, pull `docs/wiki/`, fetch open Forgejo
> issues for `archeious/luminos`, and present them as suggested tasks. Then
> ask: "What's the one thing we're shipping?" No preamble. No acknowledgment.
> Just the suggested tasks and the question. Everything else comes after the
> user answers.**
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
---
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
## Current Project State
2026-03-30 18:14:13 +00:00
2026-04-07 20:24:21 +00:00
- **Phase:** Active development — Phase 1 + 2 + 2.5 complete; Phase 3 (investigation planning) ready to start
2026-04-07 19:48:44 +00:00
- **Last worked on:** 2026-04-07
2026-04-07 20:24:21 +00:00
- **Last commit:** merge: fix/issue-54-write-cache-tool-desc
2026-04-06 22:13:20 +00:00
- **Blocking:** None
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
---
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
## Project Overview
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
Luminos is a file system intelligence tool — a zero-dependency Python CLI that
scans a directory and produces a reconnaissance report. With `--ai` it runs a
multi-pass agentic investigation via the Claude API.
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
---
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
## Module Map
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
| Module | Purpose |
|---|---|
| `luminos.py` | Entry point — arg parsing, scan(), main() |
| `luminos_lib/ai.py` | Multi-pass agentic analysis via Claude API |
| `luminos_lib/ast_parser.py` | tree-sitter code structure parsing |
| `luminos_lib/cache.py` | Investigation cache management |
| `luminos_lib/capabilities.py` | Optional dep detection, cache cleanup |
| `luminos_lib/code.py` | Language detection, LOC counting |
| `luminos_lib/disk.py` | Per-directory disk usage |
| `luminos_lib/filetypes.py` | File classification (7 categories) |
| `luminos_lib/prompts.py` | AI system prompt templates |
| `luminos_lib/recency.py` | Recently modified files |
| `luminos_lib/report.py` | Terminal report formatter |
| `luminos_lib/tree.py` | Directory tree visualization |
| `luminos_lib/watch.py` | Watch mode with snapshot diffing |
Details: wiki — [Architecture ](https://forgejo.labbity.unbiasedgeek.com/archeious/luminos/wiki/Architecture ) | [Development Guide ](https://forgejo.labbity.unbiasedgeek.com/archeious/luminos/wiki/DevelopmentGuide )
---
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
## Key Constraints
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
- **Base tool: no pip dependencies.** tree, filetypes, code, disk, recency,
report, watch use only stdlib and GNU coreutils. Must always work on bare Python 3.
- **AI deps are lazy.** `anthropic` , `tree-sitter` , `python-magic` imported only
when `--ai` is used. Missing packages produce a clear install error.
- **Subprocess for OS tools.** LOC counting, file detection, disk usage, and
recency shell out to GNU coreutils. Do not reimplement in pure Python.
- **Graceful degradation everywhere.** Permission denied, subprocess timeouts,
missing API key — all handled without crashing.
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
---
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
## Running Luminos
2026-03-30 18:14:13 +00:00
```bash
2026-04-06 22:13:20 +00:00
# Base scan
python3 luminos.py < target >
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
# With AI analysis (requires ANTHROPIC_API_KEY)
2026-03-30 18:14:13 +00:00
source ~/luminos-env/bin/activate
2026-04-06 22:13:20 +00:00
python3 luminos.py --ai < target >
2026-03-30 18:14:13 +00:00
2026-04-06 22:13:20 +00:00
# Common flags
python3 luminos.py -d 8 -a -x .git -x node_modules < target >
python3 luminos.py --json -o report.json < target >
python3 luminos.py --watch < target >
python3 luminos.py --install-extras
2026-03-30 18:14:13 +00:00
```
2026-04-06 22:13:20 +00:00
---
2026-03-30 18:14:34 +00:00
2026-04-07 19:47:41 +00:00
## Project-Specific Test Notes
2026-03-30 18:14:34 +00:00
2026-04-07 19:47:41 +00:00
Run tests with `python3 -m unittest discover -s tests/` . Modules exempt from
unit testing: `ai.py` (requires live API), `ast_parser.py` (requires
tree-sitter), `watch.py` (stateful events), `prompts.py` (string templates
only).
2026-03-30 18:14:34 +00:00
2026-04-07 19:47:41 +00:00
(Development workflow, branching discipline, and session protocols live in
`~/.claude/CLAUDE.md` .)
2026-03-30 18:14:34 +00:00
2026-04-06 22:13:20 +00:00
---
2026-03-30 18:14:34 +00:00
2026-04-06 22:13:20 +00:00
## Naming Conventions
2026-03-30 18:14:34 +00:00
2026-04-06 22:13:20 +00:00
| Context | Convention | Example |
|---|---|---|
| Functions / variables | snake_case | `classify_files` , `dir_path` |
| Classes | PascalCase | `_TokenTracker` , `_CacheManager` |
| Constants | UPPER_SNAKE_CASE | `MAX_CONTEXT` , `CACHE_ROOT` |
| Module files | snake_case | `ast_parser.py` |
| CLI flags | kebab-case | `--clear-cache` , `--install-extras` |
| Private functions | leading underscore | `_run_synthesis` |
2026-03-30 18:14:34 +00:00
2026-04-06 22:13:20 +00:00
---
2026-03-30 18:14:34 +00:00
2026-04-06 22:13:20 +00:00
## Session Log
2026-04-06 22:20:51 +00:00
| # | Date | Summary |
|---|---|---|
2026-04-07 19:48:44 +00:00
| 6 | 2026-04-07 | Extracted shared workflow/branching/protocols from project CLAUDE.md to global `~/.claude/CLAUDE.md` ; moved externalize.md and wrap-up.md to `~/.claude/protocols/` |
2026-04-07 20:20:53 +00:00
| 7 | 2026-04-07 | Phase 1 audit — closed #1 (only #54 remains); gitea MCP credential overhaul: dedicated `claude-code` Forgejo user, admin on luminos, write+delete verified end-to-end |
2026-04-07 20:24:21 +00:00
| 8 | 2026-04-07 | Closed #54 — added confidence/confidence_reason to write_cache tool schema description; Phase 1 milestone now 4/4 complete |
2026-04-06 22:13:20 +00:00
Full log: wiki — [Session Retrospectives ](https://forgejo.labbity.unbiasedgeek.com/archeious/luminos/wiki/SessionRetrospectives )