lock-project-stacklisted
Install: claude install-skill n24q02m/claude-plugins
# lock-project-stack
Bind a project to its declared dependency versions so every
`search(action="docs_query")` call from inside that project surfaces
docs for the *exact* versions you pinned, instead of "latest". Mirrors
the Cabinets workflow from spec section 4.3.
## Steps
1. **Resolve the project root**:
- If the user gave an absolute path, use it.
- Otherwise infer the root from the current workspace context
(e.g. `git rev-parse --show-toplevel` output).
- Confirm at least one supported manifest exists:
`pyproject.toml`, `package.json`, `go.mod`, or `Cargo.toml`.
2. **Lock the project**:
- Call `search(action="docs_lock_project", project_path=<abs_path>)`.
- The response includes `total` detected libraries + `indexed`
count (how many already have docs in Tier 1 or Tier 2). Surface
both numbers to the user so they know how much coverage they
have today.
3. **Trigger Tier 2 ingestion for missing libraries (optional)**:
- Iterate the `locked_libraries` list; for entries with
`indexed == false`, call
`search(action="docs_query", library=<name>, project_path=<abs_path>, query="<library> overview")`
once. The first call kicks off background Tier 2 ingestion;
subsequent calls return real chunks.
4. **Verify lock reuse**:
- Re-call `search(action="docs_query", library=<name>, project_path=<abs_path>, query=...)`
WITHOUT specifying `version`. The response should include a
non-null `lock_pin` field mat