From statsclaw
Automatically detects and selects language profiles for target repositories by scanning root markers like pyproject.toml, package.json + tsconfig.json, go.mod, Cargo.toml. Auto-invoked at session startup if unset.
How this skill is triggered — by the user, by Claude, or both
Slash command
/statsclaw:profile-detectionThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill determines the correct language profile for a target repository by inspecting file markers.
This skill determines the correct language profile for a target repository by inspecting file markers.
This skill is invoked automatically by leader during Session Startup (step 6) and Leader Planning (step 5) when the profile is not already set in the package context.
Leader checks for repo markers in order. The first matching profile is selected.
If the repo context file (.repos/workspace/<repo-name>/context.md) already has a Profile field set, use it directly. Skip detection.
Check the target repository root for the following files. Match the first profile whose required marker is present:
| Priority | Required Marker | Supporting Markers | Profile |
|---|---|---|---|
| 1 | DESCRIPTION (with Package: field) | NAMESPACE, R/, man/ | profiles/r-package.md |
| 2 | pyproject.toml or setup.py or setup.cfg | src/ or */__init__.py, tests/ | profiles/python-package.md |
| 3 | package.json + tsconfig.json | src/, *.ts files | profiles/typescript-package.md |
| 4 | go.mod | *.go files, cmd/, internal/ | profiles/go-module.md |
| 5 | Project.toml (with name and uuid fields) | src/, test/ | profiles/julia-package.md |
| 6 | Cargo.toml | src/lib.rs or src/main.rs, tests/ | profiles/rust-crate.md |
| 7 | CMakeLists.txt or Makefile or meson.build + *.cpp/*.cc/*.cxx | *.hpp/*.hxx, tests/ | profiles/cpp-library.md |
| 8 | CMakeLists.txt or Makefile or meson.build + *.c (no C++ sources) | *.h, tests/ | profiles/c-library.md |
| 9 | *.ado or *.do files | *.sthlp files | profiles/stata-project.md |
If multiple markers match (e.g., a repo has both pyproject.toml and package.json):
AskUserQuestion to ask the userOnce detected, write the profile to:
.repos/workspace/<repo-name>/context.md): set the Profile fieldstatus.md: set the Active Profile fieldIf no markers match any profile, log a note in .repos/workspace/<repo-name>/logs/ and proceed without a profile. Teammates will use general-purpose conventions. Leader should mention the missing profile to the user.
npx claudepluginhub statsclaw/statsclaw --plugin statsclawDetects programming language, framework, build tools, and test commands for any project. Run via /detect-language or ask "what language is this project?".
Detects project type, package manager, and monorepo structure. Returns correct commands for test/build/lint/dev. Run at project initialization and cache results in state. Use before running any build/test commands.
Configure Claude Code for this project - detects languages and sets up rules, skills, and validators