"Maintain the LlamaIndex monorepo safely: inspect package layout
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill repo-maintenance --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Repo Maintenance?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-repo-maintenance-829a2199)More formats (shields.io, HTML) on the badges page.
---
name: repo-maintenance
description: "Maintain the LlamaIndex monorepo safely: inspect package layout
and pyproject metadata, use llama-dev package/test commands, run targeted
package tests, and triage docs/examples automation without performing release,
publish, or credentialed sync actions."
disable-model-invocation: true
metadata:
disco-role: operating
license: MIT
---
# LlamaIndex Repo Maintenance
Use this sub-skill when an agent is working inside the LlamaIndex monorepo and needs to reason about package boundaries, test one package or a small changed set, inspect package metadata, or decide which maintenance scripts are safe to adapt.
## Safe Maintenance Defaults
- Treat the monorepo as many package projects, not one install target; package-local commands usually run from the package directory.
- Prefer read-only inspection before mutation: list packages, read `pyproject.toml`, inspect tests, then choose the narrowest command.
- Use `uv` package-local workflows for ordinary development and tests; avoid installing every integration unless the task explicitly requires broad validation.
- Keep release, publish, version bump, and credentialed docs sync commands out of normal runnable guidance unless a human explicitly asks for those workflows and confirms credentials/scope.
- When using `llama-dev`, run it from the repo root or pass `--repo-root`; package arguments are repository-relative package paths such as `llama-index-core` or `llama-index-integrations/llms/llama-index-llms-openai`.
## Start Here
1. Identify the package path and distribution name with the bundled read-only helper:
```bash
python skills/llama-index/sub-skills/repo-maintenance/scripts/list_llama_packages.py --repo-root . --filter openai
```
2. Inspect the relevant package metadata:
```bash
python skills/llama-index/sub-skills/repo-maintenance/scripts/list_llama_packages.py --repo-root . --package-path llama-index-core
```
3. Run package-local tests from the package directory when you only touched one package:
```bash
cd llama-index-integrations/llms/llama-index-llms-openai
uv run -- pytest
```
4. Use `llama-dev test` when you need changed-package/dependant selection or a consistent package test harness:
```bash
llama-dev test llama-index-integrations/llms/llama-index-llms-openai --workers 1
```
5. If a command would bump versions, publish packages, sync external docs, or require secrets, stop and ask for explicit human approval.
## Common Workflows
### Run Tests for One Integration
- Locate the integration under `llama-index-integrations/<category>/<distribution-name>/`.
- Read its `pyproject.toml` and confirm its own dependency group instead of syncing unrelated integrations.
- From that package directory, run `uv run -- pytest`; this lets `uv` create/use the package-local environment.
- If local changes affect another package dependency, either install that changed package into the package environment deliberately or use `llama-dev test <package-path>` so the CLI can install local changed packages for test execution.
### Add or Update a Package
- Ensure the directory name, `project.name`, import namespace, and optional `tool.llamahub.import_path` all point to the intended integration.
- Confirm `requires-python`, runtime dependencies, and test/dev dependencies match package needs without inheriting unrelated integrations.
- Use the helper script to compare neighboring packages in the same integration category.
- Add or update package-local tests and run only the changed package first; broaden to dependant packages only after the narrow run passes.
### Use llama-dev Safely
- Safe inspection: `llama-dev pkg info <package-path>`, `llama-dev pkg info --all`, and JSON output when machine parsing helps.
- Safe targeted execution: `llama-dev pkg exec --cmd "uv sync" <package-path>` only when dependency installation is expected.
- Safe tests: `llama-dev test <package-path> --workers 1` or `llama-dev test --base-ref main --workers <n>` for changed-package selection.
- Reference-only: `llama-dev pkg bump` mutates package versions; `llama-dev release ...` supports release automation. Do not run these as routine maintenance.
## References
- [Monorepo layout](references/monorepo-layout.md)
- [llama-dev CLI](references/llama-dev-cli.md)
- [Source script inventory](references/source-script-inventory.md)
- [Troubleshooting](references/troubleshooting.md)
## Bundled Script
- `scripts/list_llama_packages.py` scans a supplied repository root for `pyproject.toml` files with `project.name`, prints paths and package metadata, and can emit JSON. It is read-only and safe to run with `--help`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!