orchestrate:precommit
SkillAI & modelsAdd pre-commit hooks, linting, CLAUDE.md, and foundational .claude/ setup to a target repo
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the orchestrate:precommit skill
What this skill tells your AI
The instructions your AI receives, as published by rossoctl/rossoctl in .claude/skills/orchestrate:precommit/SKILL.md and read by ahel’s review.
flowchart TD
START(["/orchestrate:precommit"]) --> DETECT["Detect language"]:::orch
DETECT --> PRECOMMIT["Generate .pre-commit-config.yaml"]:::orch
PRECOMMIT --> LINT["Generate lint config"]:::orch
LINT --> MAKEFILE["Add Makefile targets"]:::orch
MAKEFILE --> CLAUDE_MD["Create CLAUDE.md"]:::orch
CLAUDE_MD --> SETTINGS["Create .claude/settings.json"]:::orch
SETTINGS --> BRANCH["Create branch"]:::orch
BRANCH --> SIZE{Under 700 lines?}
SIZE -->|Yes| PR["Commit + open PR"]:::orch
SIZE -->|No| SPLIT["Split into sub-PRs"]:::orch
SPLIT --> PR
PR --> DONE([Phase complete])
classDef orch fill:#FF9800,stroke:#333,color:white
Follow this diagram as the workflow.
Orchestrate: Pre-commit
Establish the code quality baseline for a target repo. This is Phase 2 and produces PR #1 — the foundation that validates all subsequent PRs.
When to Use
- After
orchestrate:planidentifies precommit as a needed phase - Always the first PR-producing phase
Prerequisites
- Plan exists at
/tmp/rossoctl/orchestrate/<target>/plan.md - Target repo cloned in
.repos/<target>/
Step 1: Detect Language
Use the scan report or check directly:
ls .repos/<target>/go.mod .repos/<target>/pyproject.toml .repos/<target>/package.json .repos/<target>/requirements.yml 2>/dev/null
Step 2: Generate Pre-commit Config
Create .pre-commit-config.yaml with language-appropriate hooks.
Python hooks
ruff— lint + formattrailing-whitespace,end-of-file-fixer,check-yamlcheck-added-large-files
Go hooks
golangci-lintgofmt,govettrailing-whitespace,end-of-file-fixer
Node hooks
eslint,prettiertrailing-whitespace,end-of-file-fixer
Ansible hooks
ansible-lint,yamllinttrailing-whitespace,end-of-file-fixer
Step 3: Generate Lint Config
Python (pyproject.toml)
[tool.ruff]
line-length = 120
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "W"]
Go (.golangci.yml)
linters:
enable:
- errcheck
- govet
- staticcheck
- unused
run:
timeout: 5m
Node (.eslintrc.json)
{
"extends": ["eslint:recommended"],
"env": { "node": true, "es2022": true }
}
Step 4: Add Makefile Targets
If no Makefile exists, create one. If it exists, add targets:
.PHONY: lint fmt
lint:
pre-commit run --all-files
fmt:
# language-specific formatter command
Step 5: Create CLAUDE.md
Template for the target repo:
# <Repo Name>
## Overview
<brief description from README or scan>
## Repository Structure
<key directories and their purpose>
## Key Commands
| Task | Command |
|------|---------|
| Lint | `make lint` |
| Format | `make fmt` |
| Test | <detected test command> |
| Build | <detected build command> |
## Code Style
- <language> with <linter>
- Pre-commit hooks: `pre-commit install`
- Sign-off required: `git commit -s`
Step 6: Create .claude/settings.json
{
"permissions": {
"allow": [
"Bash(git status:*)",
"Bash(git log:*)",
"Bash(git diff:*)",
"Bash(git branch:*)",
"Bash(ls:*)",
"Bash(cat:*)",
"Bash(find:*)",
"Bash(make lint:*)",
"Bash(make fmt:*)",
"Bash(pre-commit run:*)"
]
}
}
Step 7: Create Branch and PR
Create branch in the target repo:
git -C .repos/<target> checkout -b orchestrate/precommit
PR size check
git -C .repos/<target> diff --stat | tail -1
Target ~600-700 lines. Split if over 700.
Skills to push alongside
Include initial skills in .claude/skills/ within the target repo:
repo:commit— commit message conventions adapted for the target
Commit and push
git -C .repos/<target> add -A
git -C .repos/<target> commit -s -m "feat: add pre-commit hooks, linting, and Claude Code setup"
git -C .repos/<target> push -u origin orchestrate/precommit
Create PR
gh pr create --repo org/repo --title "Add pre-commit hooks and code quality baseline" --body "Phase 2 of repo orchestration. Adds pre-commit hooks, linting config, CLAUDE.md, and .claude/ setup."
Update Phase Status
Update /tmp/rossoctl/orchestrate/<target>/phase-status.md:
- Set precommit to
complete - Record PR number and date
Related Skills
orchestrate— Parent routerorchestrate:scan— Provides tech stack detectionorchestrate:plan— Defines precommit phase tasksorchestrate:tests— Next phase: test infrastructure
Signals
- GitHub stars
- 300
- Forks
- 107
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
orchestrate-precommit- Source
- github.com/rossoctl/rossoctl