mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-03 03:37:36 +00:00
shell: fish functions -> ~/.local/bin executables + bash/zsh ports; manage ~/.agents
- 16 cross-shell utilities converted to sh/bash chezmoi executables: ai c2p cp-appid extract_agents fab gdc gh-sonr-org-migrate ghg-clone ghn gho git-summary launch_omp_livediff_overlay lc-elir mdcp mdp pj (ghg-clone not named ghg: unrelated cargo binary owns that name) - cwd/history helpers stay per-shell: yy c cd clip-last + ghg/ghn/gho cd-wrappers in bash/functions/ and zsh/functions/, loaded by rc files - fish keeps only shell-state functions; converted ones now hit PATH - cp-appid ignore gating moved to .local/bin path - dot_agents/skills: 82 skills materialized from dotstate storage so dot_claude skill symlinks resolve on fresh bootstrap; dotstate profile/symlinks.json released .agents/skills .bashrc .zshrc
This commit is contained in:
1 parent
6776366ce6
commit
6406208b35
637 files changed
+100297
-497
No files matched your search
@@ -0,0 +1,91 @@
|
||||
---
|
||||
name: setup-pre-commit
|
||||
description: Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.
|
||||
---
|
||||
|
||||
# Setup Pre-Commit Hooks
|
||||
|
||||
## What This Sets Up
|
||||
|
||||
- **Husky** pre-commit hook
|
||||
- **lint-staged** running Prettier on all staged files
|
||||
- **Prettier** config (if missing)
|
||||
- **typecheck** and **test** scripts in the pre-commit hook
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Detect package manager
|
||||
|
||||
Check for `package-lock.json` (npm), `pnpm-lock.yaml` (pnpm), `yarn.lock` (yarn), `bun.lockb` (bun). Use whichever is present. Default to npm if unclear.
|
||||
|
||||
### 2. Install dependencies
|
||||
|
||||
Install as devDependencies:
|
||||
|
||||
```
|
||||
husky lint-staged prettier
|
||||
```
|
||||
|
||||
### 3. Initialize Husky
|
||||
|
||||
```bash
|
||||
npx husky init
|
||||
```
|
||||
|
||||
This creates `.husky/` dir and adds `prepare: "husky"` to package.json.
|
||||
|
||||
### 4. Create `.husky/pre-commit`
|
||||
|
||||
Write this file (no shebang needed for Husky v9+):
|
||||
|
||||
```
|
||||
npx lint-staged
|
||||
npm run typecheck
|
||||
npm run test
|
||||
```
|
||||
|
||||
**Adapt**: Replace `npm` with detected package manager. If repo has no `typecheck` or `test` script in package.json, omit those lines and tell the user.
|
||||
|
||||
### 5. Create `.lintstagedrc`
|
||||
|
||||
```json
|
||||
{
|
||||
"*": "prettier --ignore-unknown --write"
|
||||
}
|
||||
```
|
||||
|
||||
### 6. Create `.prettierrc` (if missing)
|
||||
|
||||
Only create if no Prettier config exists. Use these defaults:
|
||||
|
||||
```json
|
||||
{
|
||||
"useTabs": false,
|
||||
"tabWidth": 2,
|
||||
"printWidth": 80,
|
||||
"singleQuote": false,
|
||||
"trailingComma": "es5",
|
||||
"semi": true,
|
||||
"arrowParens": "always"
|
||||
}
|
||||
```
|
||||
|
||||
### 7. Verify
|
||||
|
||||
- [ ] `.husky/pre-commit` exists and is executable
|
||||
- [ ] `.lintstagedrc` exists
|
||||
- [ ] `prepare` script in package.json is `"husky"`
|
||||
- [ ] `prettier` config exists
|
||||
- [ ] Run `npx lint-staged` to verify it works
|
||||
|
||||
### 8. Commit
|
||||
|
||||
Stage all changed/created files and commit with message: `Add pre-commit hooks (husky + lint-staged + prettier)`
|
||||
|
||||
This will run through the new pre-commit hooks — a good smoke test that everything works.
|
||||
|
||||
## Notes
|
||||
|
||||
- Husky v9+ doesn't need shebangs in hook files
|
||||
- `prettier --ignore-unknown` skips files Prettier can't parse (images, etc.)
|
||||
- The pre-commit runs lint-staged first (fast, staged-only), then full typecheck and tests
|
||||
Reference in new issue
Block a user