Skip to content

openprose/indexer-demo

Repository files navigation

indexer-demo

Customer-facing packaging repo for the OpenProse + mycelium git-notes indexer demo.

This repo is intentionally small. It carries only the files we would actually ship to a customer, plus light packaging scripts to produce an email-friendly zip artifact.

If you need to send the customer zip

  1. Read how-to-package-zip-for-customer.md
  2. Build the artifact:
./scripts/export-zip.sh
  1. Send the resulting zip from dist/
  2. Include the packaging repo commit hash in your handoff message

Important: dist/ is local-only and not committed to GitHub. The source of truth is the git commit, not whatever happens to be sitting in dist/.

Goals

  • package the deterministic C indexer (bash outer loop + .prose inner loop)
  • keep runtime dependencies minimal and explicit
  • produce a dist/*.zip artifact we can email to a customer
  • keep openprose/prose and openprose/mycelium wired in as submodules for future-proofing and easy updates

Runtime model

The shipped bundle contains:

  • indexer/index.sh
  • indexer/scaffold.prose
  • indexer/synthesize.prose
  • indexer/publish.prose
  • bundled OpenProse v0/ VM files from openprose/prose
  • bundled pinned mycelium.sh runtime from openprose/mycelium
  • small wrapper commands:
    • indexer-demo
    • indexer-demo-mycelium

The package is intentionally explicit about what it does:

  • it shells out to Claude Code CLI (claude -p) for enrichment
  • it reads git history, directory listings, selected source files, and existing README content
  • it writes git notes only (skeleton and enricher slots)
  • it does not edit README files or source files in the working tree
  • reruns can refine existing notes (--refine)

Operationally, the script runs in four phases:

  1. Skeleton — deterministic git/bash notes per directory
  2. Cartography — deterministic ranking and selection of directories
  3. Scaffold / Synthesize — Claude enriches leaf dirs, then parent dirs
  4. Publish — Claude writes/refines the repo root summary note

Repo layout

  • indexer/ — the actual runtime files copied from the source repo
  • bin/indexer-demo — installed wrapper command
  • bin/indexer-demo-mycelium — helper CLI for reading bundled notes runtime
  • bin/mycelium.sh — dev-mode wrapper to the submodule runtime
  • scripts/sync-from-index.sh — refresh indexer/ from the source repo
  • scripts/export-zip.sh — build the customer-facing zip artifact
  • docs/CUSTOMER-README.md — README copied into the exported zip
  • vendor/prose — submodule to openprose/prose
  • vendor/mycelium — submodule to openprose/mycelium

Maintainers

The package intentionally uses a private bundled runtime for both OpenProse v0/ and mycelium.sh:

  • install places runtime files under ~/.local/share/indexer-demo
  • indexer-demo prepends the package's private bin/ dir to PATH
  • this ensures both the outer bash script and any Claude-executed mycelium.sh commands resolve to the bundled, pinned runtime

When behavior changes, update both:

  • this internal README.md
  • docs/CUSTOMER-README.md

Refresh from source repo:

./scripts/sync-from-index.sh

Or sync from a specific source worktree/branch:

INDEX_SOURCE_REPO=/path/to/index-worktree ./scripts/sync-from-index.sh

Build export zip:

./scripts/export-zip.sh

Collaborator handoff doc:

how-to-package-zip-for-customer.md

Smoke-test the customer path from the built zip:

# unzip artifact somewhere temporary
# then:
bash ./install.sh
indexer-demo . --limit 5 --jobs 1
indexer-demo-mycelium context .

The zip lands in dist/.

About

Customer-facing packaging for the mycelium repo indexer demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages