← ClaudeAtlas

stack-detectlisted

Detect a project's tech stack and derive the verification gate. Use during /harness-init, or whenever the build/test/lint commands are unknown and need to be established for the harness config.
James-Lloyd/lean-agent-harness · ★ 0 · AI & Automation · score 72
Install: claude install-skill James-Lloyd/lean-agent-harness
# stack-detect Determine what stack(s) a repo uses and translate that into the harness's per-component verification gates. The harness core is stack-agnostic; this skill is the bridge that fills `harness/harness.config.json` → `components[]` (+ the cross-cutting `gate`) and the run/build/test commands in `CLAUDE.md` / `AGENT_NOTES.md`. ## 0. First: is this one component or several? Many projects are **headless** — one root folder containing multiple sub-repos, each with its own root files (e.g. `frontend/` with `package.json` + `backend/` with `pyproject.toml`). Detect this **before** detecting stacks: - Look for manifests/lockfiles in **immediate subdirectories**, not just the root (`*/package.json`, `*/pyproject.toml`, `*/go.mod`, `*/Cargo.toml`, `*/pom.xml`, etc.). - Also recognize in-tool monorepos (workspaces in a root `package.json`, `pnpm-workspace.yaml`, `turbo.json`, Nx, Cargo workspaces, Go modules). - **One manifest at root** → a single component with `path: "."`. **Manifests in subdirs** → one component per sub-repo (e.g. `frontend`, `backend`), each with its own path, stack, and gate. Confirm the split and the directory names with the human. - Cross-cutting integration/e2e that spans components (a Playwright suite hitting the running FE+BE, a docker-compose smoke test) belongs in the **top-level `gate`**, not in any single component. Run the per-stack detection below **once per component**, in that component's directory. ## 1. Gather signals (don't