bootstrap-projectlisted
Install: claude install-skill cahenesy/throughline
# Project setup
Run when starting work on a project. Determine whether it is **greenfield**
(empty: no source files, fresh or absent package-manager init) or
**brownfield** (existing code), then follow the matching path. If the user
says "skip setup", stop and do nothing.
First: detect the primary language. If ambiguous, ask.
## Default tooling (override only if the user objects)
| Language | Formatter + Linter | Test framework |
|----------|-------------------------|---------------------|
| JS/TS | prettier + eslint | vitest |
| Python | ruff (format + check) | pytest |
| Rust | rustfmt + clippy | built-in cargo test |
| Go | gofmt + golangci-lint | built-in go test |
## Linting and formatting
A `format-and-lint` PostToolUse hook ships with this plugin and runs
automatically after edits **when a linter is configured for the project** —
it no-ops otherwise, so it never forces tooling onto a repo. Your job here is
to make sure a linter/formatter is actually configured, per these rules:
- **Greenfield:** install the default formatter + linter for the language and
create minimal config files.
- **Brownfield, tooling already configured:** use what is there; do not swap
it out.
- **Brownfield, no linter/formatter:** do NOT silently install one. Point out
that the repo has no configured linter/formatter and ask whether to add the
default before proceeding.
How the hook behaves: it formats the edi