Skip to content
Back to skills

Lock Project Stack

ASecurity

Detect a project's manifest (pyproject.toml / package.json / go.mod / Cargo.toml), pin its library set into wet's Cabinets project_context, then route subsequent docs queries to the locked versions automatically.

  • 18 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 26, 2026
ai-agentsgogitapi

Works with

  • api

Security analysis

A100/100

Scanned October 4, 2026

npx -y skills add n24q02m/wet --skill lock-project-stack --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Lock Project Stack?

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

Security grade badge for Lock Project Stack
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/n24q02m-lock-project-stack-wet/badge)](https://www.skillsdirectory.com/skills/n24q02m-lock-project-stack-wet)

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: lock-project-stack
description: Detect a project's manifest (pyproject.toml / package.json / go.mod / Cargo.toml), pin its library set into wet's Cabinets project_context, then route subsequent docs queries to the locked versions automatically.
argument-hint: "[absolute path to project root]"
---

# 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 matching the version from the
     manifest, confirming Cabinets is honoring the pin.

5. **Surface the pin to the user**:
   - Summarize "Locked N libraries against versions X.Y.Z (M already
     indexed, K queued for Tier 2 ingestion)."

## Best practices

- Re-run after every dependency bump so the lock stays in sync with
  what is actually installed.
- For monorepos, lock each workspace project separately — wet keys
  on absolute path so `apps/web` and `apps/api` get distinct locks.
- The lock is a hint, not a hard constraint — callers can always
  override the version by passing it explicitly to `docs_query`.

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.