Skip to content
Back to skills

500 2026 01 27 21 45 00 Delete Indexing System 0cf944c0

BSecurity

grep -r "from tunacode.indexing" src/tunacode/ grep -r "CodeIndex" src/tunacode/ grep -r "IndexingService" src/tunacode/ uv run pytest grep -r "indexing" docs/ | grep -v ".git" ```

  • 9 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added June 1, 2026
testinggobashrefactoringgitdocumentation

Security analysis

B85/100
  • highPerforms destructive filesystem operations

Pro scans all 2 files and shows the line behind each finding

Scanned June 1, 2026

npx -y skills add tools-only/X-Skills --skill 500-2026-01-27_21-45-00_delete-indexing-system_0cf944c0 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 500 2026 01 27 21 45 00 Delete Indexing System 0cf944c0?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 500 2026 01 27 21 45 00 Delete Indexing System 0cf944c0
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-500-2026-01-27-21-45-00-delete-indexing-system-0cf/badge)](https://www.skillsdirectory.com/skills/tools-only-500-2026-01-27-21-45-00-delete-indexing-system-0cf)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
title: "Delete Indexing System – Plan"
phase: Plan
date: "2026-01-27T21:45:00"
owner: "claude-agent"
parent_research: "memory-bank/research/2026-01-27_13-11-55_issue-314-lateral-coupling-tools-indexing-lsp.md"
git_commit_at_plan: "c5fe6f95"
tags: [plan, architecture, indexing, deletion]
---

## Goal

Delete the entire indexing system. It's premature optimization that adds startup latency for marginal glob improvement.

**Rationale:**
- Only ONE tool (glob.py) uses the index
- Every startup: scan filesystem to count → scan again to build → hold paths in memory
- The "benefit": iterate a cached list instead of os.scandir()
- This is startup tax for negligible gain

**Non-goals:**
- Re-implementing indexing elsewhere
- Adding new optimization to glob
- Changing glob's functional behavior

## Scope & Assumptions

**DELETE (Production Code):**

| File/Dir | Lines | Purpose |
|----------|-------|---------|
| `src/tunacode/indexing/` | ~490 | Entire module |
| `src/tunacode/core/indexing_service.py` | 137 | Orchestration wrapper |
| `docs/codebase-map/modules/indexing.md` | 97 | Module docs |
| **Total** | **~724** | |

**MODIFY (Production Code):**

| File | Changes |
|------|---------|
| `tools/glob.py` | Remove CodeIndex import, delete `_get_code_index()`, delete `_glob_with_index()` |
| `core/state.py` | Remove `indexing_service` property |
| `ui/app.py` | Delete `_run_startup_index()` method and its call |

**MODIFY (Tests):**

| File | Changes |
|------|---------|
| `tests/test_dependency_layers.py` | Remove "indexing" from LAYERS, allowed imports |
| `tests/architecture/test_import_order.py` | Remove "indexing" from SHARED_LAYER_MODULES |

**MODIFY (Documentation):**

| File | Changes |
|------|---------|
| `docs/codebase-map/MAP.md` | Remove indexing entries (3 lines) |
| `docs/architecture/DEPENDENCY_MAP.md` | Remove indexing layer and rows |
| `docs/architecture/NEW_layers.html` | Remove indexing violation references |
| `docs/codebase-map/modules/tools-overview.md` | Remove CodeIndex line |

**Assumptions:**
- glob.py already has filesystem fallback (confirmed)
- No other code paths depend on CodeIndex (confirmed by research)

## Deliverables (DoD)

1. **Zero indexing imports anywhere**
   - `grep -r "from tunacode.indexing" src/tunacode/` returns empty
   - `grep -r "CodeIndex" src/tunacode/` returns empty
   - `grep -r "IndexingService" src/tunacode/` returns empty

2. **No startup indexing**
   - App starts without "Code cache built" message
   - No filesystem scans at startup

3. **Glob still works**
   - `uv run pytest` passes
   - Manual glob test succeeds

4. **Clean architecture**
   - tools → indexing violation eliminated (issue #314)

## Milestones

### M1: Delete indexing/ module and core wrapper
**Effort:** Low | **Files:** 4

1. Delete `src/tunacode/indexing/` directory
2. Delete `src/tunacode/core/indexing_service.py`

### M2: Update consumers (glob, state, ui)
**Effort:** Medium | **Files:** 3

1. Clean `tools/glob.py` - remove index optimization
2. Clean `core/state.py` - remove indexing_service property
3. Clean `ui/app.py` - remove startup indexing

### M3: Update tests and docs
**Effort:** Low | **Files:** 6+

1. Update layer tests
2. Delete indexing.md
3. Update DEPENDENCY_MAP.md, MAP.md, NEW_layers.html, tools-overview.md

### M4: Validation
**Effort:** Low

Run all verification commands, close issue #314.

## Work Breakdown (Tasks)

| ID | Task | Milestone | Files |
|----|------|-----------|-------|
| T1 | Delete indexing/ dir and core/indexing_service.py | M1 | 4 files |
| T2 | Clean glob.py, state.py, ui/app.py | M2 | 3 files |
| T3 | Update tests and docs | M3 | 6+ files |
| T4 | Validate and close issue #314 | M4 | - |

### Task Details

**T1: Delete indexing module**
- `rm -rf src/tunacode/indexing/`
- `rm src/tunacode/core/indexing_service.py`
- Acceptance: directories/files gone

**T2: Clean consumers**
- `tools/glob.py`:
  - Remove line 12: `from tunacode.indexing import CodeIndex`
  - Remove lines 67-77: index lookup logic
  - Delete `_get_code_index()` function (lines 126-135)
  - Delete `_glob_with_index()` function (lines 176-200)

- `core/state.py`:
  - Remove TYPE_CHECKING import of IndexingService
  - Remove `_indexing_service` attribute
  - Delete `indexing_service` property

- `ui/app.py`:
  - Delete `_run_startup_index()` method
  - Remove call to it from startup sequence

- Acceptance: No import errors, glob uses filesystem only

**T3: Update tests and docs**
- `tests/test_dependency_layers.py`: Remove indexing from LAYERS
- `tests/architecture/test_import_order.py`: Remove indexing from SHARED_LAYER_MODULES
- Delete `docs/codebase-map/modules/indexing.md`
- Update MAP.md, DEPENDENCY_MAP.md, NEW_layers.html, tools-overview.md

- Acceptance: Tests pass, no indexing references in docs

**T4: Validate**
```bash
# No indexing imports
grep -r "from tunacode.indexing" src/tunacode/
grep -r "CodeIndex" src/tunacode/
grep -r "IndexingService" src/tunacode/

# Tests pass
uv run pytest

# No doc references
grep -r "indexing" docs/ | grep -v ".git"
```

## Risks & Mitigations

| Risk | Impact | Likelihood | Mitigation |
|------|--------|------------|------------|
| Glob slower on large repos | Low | Medium | os.scandir is fast, acceptable trade-off |
| Missed reference | Low | Low | Research was thorough, run grep after |

## Test Strategy

Existing tests must pass. No new tests - we're deleting code, not adding features.

## References

- Issue: https://github.com/alchemiststudiosDOTai/tunacode/issues/314
- Research: `memory-bank/research/2026-01-27_13-11-55_issue-314-lateral-coupling-tools-indexing-lsp.md`
- Prior plan (superseded): `memory-bank/plan/2026-01-27_21-30-00_issue-314-lateral-coupling.md`

## Tickets

| Ticket ID | Title | Priority | Status |
|-----------|-------|----------|--------|
| tun-27ea | Delete indexing/ module and core/indexing_service.py | P1 | open |
| tun-5f58 | Clean glob.py, state.py, ui/app.py | P1 | open |
| tun-8218 | Update tests and docs for indexing removal | P2 | open |

## Dependencies

```
tun-27ea → tun-5f58 → tun-8218 → tun-2ddf (LSP fix)
```

## Notes on Issue #314

This plan fully resolves issue #314 Violation 1 (tools/glob.py → indexing) by deleting the entire indexing system rather than refactoring around it.

The other two violations (Violations 2 and 3) remain separate tickets:
- tun-2ddf: Merge tools/lsp_status.py into core
- tun-be3d: Remove LSP import from decorators

Files in this skill

  • README.md1.1 KB
  • skill.md6.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.