Skip to content
Back to skills

Dsh Ingest

ASecurity

Rebuild the DSH node's persistent knowledge state. Runs register-claude.py to (re)create the dome.db schema and upsert agents/skills/tools/stack rows, then runs ingest.py to re-index kb/, logs/, docs, and agent core source into ChromaDB's dome-kb collection, then runs pre-spore-verify.py to confirm all 7 skill modules load and the akashic write+query roundtrip works. Idempotent — safe to run any time.

  • 4 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 12, 2026
databasespythongobashsqlnodegit

Works with

  • cli

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 12, 2026

npx -y skills add garochee33/DSH --skill dsh-ingest --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dsh Ingest?

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

Security grade badge for Dsh Ingest
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/garochee33-dsh-ingest/badge)](https://www.skillsdirectory.com/skills/garochee33-dsh-ingest)

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
---
name: dsh-ingest
description: "Rebuild the DSH node's persistent knowledge state. Runs register-claude.py to (re)create the dome.db schema and upsert agents/skills/tools/stack rows, then runs ingest.py to re-index kb/, logs/, docs, and agent core source into ChromaDB's dome-kb collection, then runs pre-spore-verify.py to confirm all 7 skill modules load and the akashic write+query roundtrip works. Idempotent — safe to run any time."
---

You are restoring or refreshing the DSH node's knowledge graph and agent registry. This skill is the recovery path when `db/dome.db` gets corrupted, when new KB content is added, or after an ingest-breaking dependency upgrade.

## 1. Preflight

```bash
cd "$DOME_ROOT"
test -f .venv/bin/activate || { echo "no venv — run dsh-setup first"; exit 1; }
source .venv/bin/activate
python3 -c "import sqlite3, chromadb, sentence_transformers, hashlib" || { echo "deps missing — pip install -r compute/requirements.txt"; exit 1; }
```

If the venv doesn't exist or deps are missing, stop and point the user at the `dsh-setup` skill first.

## 2. Register Claude + skills + tools in dome.db

```bash
python3 scripts/register-claude.py
```

What it does:

- Creates (if missing) tables: `sessions`, `stack`, `agents`, `skills`, `tools`
- UPSERTs the Claude agent row into `agents`
- UPSERTs 8 skill rows into `skills` (docx, pdf, pptx, xlsx, schedule, setup-cowork, skill-creator, consolidate-memory)
- UPSERTs 26 tool rows into `tools`
- Mirrors everything into `stack` as category-tagged entries

Keyed on `(category, name)` so it's safe to re-run; only the `updated_at` and descriptions change.

Verify:

```bash
sqlite3 db/dome.db "SELECT name FROM sqlite_master WHERE type='table'"    # 5+ tables
sqlite3 db/dome.db "SELECT COUNT(*) FROM agents"                          # 1
sqlite3 db/dome.db "SELECT COUNT(*) FROM skills"                          # ≥ 8
sqlite3 db/dome.db "SELECT COUNT(*) FROM tools"                           # ≥ 26
sqlite3 db/dome.db "SELECT COUNT(*) FROM stack"                           # ≥ 35
```

If the skill count is higher than 8, new skills were registered elsewhere — that's fine, the upsert doesn't delete anything.

## 3. Re-index the knowledge base

```bash
python3 scripts/ingest.py
```

What it does:

- Walks `kb/`, `logs/`, `README.md`, `INDEX.md`, `MANUAL.md`, `agents/core/`
- Accepted extensions: `.md`, `.txt`, `.py`, `.ts`, `.json`
- Skips `.venv/` and `__pycache__/`
- Chunks each file and embeds via sentence-transformers (all-MiniLM-L6-v2)
- Writes to ChromaDB namespace `dome-kb` at `db/chroma/`

The script prints a per-file chunk count and a final total. Typical fresh-install expectation: 1,800–3,700 chunks depending on how many session logs are present.

Verify:

```bash
python3 -c "
import chromadb
c = chromadb.PersistentClient('db/chroma')
print(f'dome-kb: {c.get_collection(\"dome-kb\").count()} chunks')
"
```

## 4. Akashic collection hygiene

The akashic namespace uses a specific sentence-transformer embedding function. If it was previously created with a different embedder, the `akashic:write+query` roundtrip in pre-spore-verify will fail with `Embedding function conflict`.

Check:

```bash
python3 -c "
import chromadb
c = chromadb.PersistentClient('db/chroma')
names = [col.name for col in c.list_collections()]
print('collections:', names)
"
```

If `akashic` is in the list but empty (0 chunks) AND pre-spore-verify fails on it, drop and recreate:

```bash
python3 -c "
import chromadb
c = chromadb.PersistentClient('db/chroma')
if 'akashic' in [col.name for col in c.list_collections()]:
    c.delete_collection('akashic')
    print('dropped stale akashic collection — will recreate on first write')
"
```

The next `pre-spore-verify.py` run will seed the first akashic record (test write) cleanly.

## 5. Verify everything loads

```bash
python3 scripts/pre-spore-verify.py
```

Expected output ends with:

```
═══════════════════════════════════════
  27/27 checks passed

  ✅ ALL SYSTEMS GO — READY FOR SPORE.SH
═══════════════════════════════════════
```

The 27 checks:

- 12 dependency imports (numpy, scipy, sympy, numba, torch, qiskit, pennylane, cirq, matplotlib, networkx, mpmath, pandas)
- 7 skill-module `verify()` roundtrips
- 1 akashic write+query roundtrip

## 6. Report

```
✅ dome.db: <agents>/<skills>/<tools> rows
✅ chroma/dome-kb: <N> chunks
✅ chroma/akashic: <M> chunks
✅ pre-spore-verify: 27/27
```

## Non-negotiables

- **Never run `ingest.py` from outside `$DOME_ROOT`.** It uses repo-relative paths; wrong cwd = wrong source set.
- **Never drop `dome.db`.** The schema migrations are forward-only; there's no rollback. If the file is suspected corrupt, back it up (`cp db/dome.db db/dome.db.bak.$(date +%s)`) before deleting.
- **Never drop `dome-kb` blindly.** Re-ingest takes 30+ seconds and you lose any manual records. Only delete when a schema or embedder change forces it.
- **Never commit `db/chroma/` or `db/*.db`.** Both are in `.gitignore`; they are per-node state, not code.

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…