From 30dc1c05d746988efd2f775a4819fbffe47d0768 Mon Sep 17 00:00:00 2001 From: prode Date: Sat, 1 Aug 2026 01:25:38 -0300 Subject: [PATCH] docs(assets): tell the scaffolded CLAUDE.md how to run scc without installing it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The scaffolded CLAUDE.md pointed at a bare `scc validate`, which is a dead end in any workspace where the binary was never installed — the agent reads the instruction, the command is not on PATH, and the check silently stops happening. Document the npx fallback next to the command it replaces, including the pinned form for CI. Bumps the template-set version to 3: a workspace template changed, so the manifest must be able to tell a pristine copy of the new text from an edited copy of the old one. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01RirmHfmNmKTatfRVFhvm7o --- internal/assets/assets.go | 3 ++- internal/assets/templates/CLAUDE.md | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/internal/assets/assets.go b/internal/assets/assets.go index 5da8603..8748ac8 100644 --- a/internal/assets/assets.go +++ b/internal/assets/assets.go @@ -42,7 +42,8 @@ import ( // of touching every managed file to record a number nobody read. // // 2: the knowledge-base skills and their commands. -const Version = "2" +// 3: CLAUDE.md documents the npx fallback for running scc uninstalled. +const Version = "3" // The embedded tree. "all:" so nothing is silently dropped for having a name the // default embed pattern skips. diff --git a/internal/assets/templates/CLAUDE.md b/internal/assets/templates/CLAUDE.md index 686126a..55bbfe1 100644 --- a/internal/assets/templates/CLAUDE.md +++ b/internal/assets/templates/CLAUDE.md @@ -39,6 +39,14 @@ docs/ the knowledge base — wiki, adr, codewiki, glossary, stack scc validate # every applicable validator; exit 2 means findings ``` +If `scc` is not installed on this machine, run it with no install — same binary, +same exit codes: + +``` +npx @protonspy/scc validate # always the latest +npx @protonspy/scc@ ... # pin a version (CI) +``` + Exit codes are the contract: `0` ok, `1` the command could not run, `2` it ran and found something. A finding is an answer, not a crash.