From dstoic
Streamlined git commit for praxis-managed repos. Single human gate for scope + message approval. Use when committing changes, "commit repo", "commit praxis", "commit nano-vc".
npx claudepluginhub digital-stoic-org/agent-skills --plugin dstoicThis skill is limited to using the following tools:
Streamlined commit flow for praxis-managed repos. One human gate only.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Streamlined commit flow for praxis-managed repos. One human gate only.
Resolve <repo-alias> to a git-managed path:
praxis): use CWD (the project root itself)data pathExample CLAUDE.md format:
## Alias Paths
- **nano-vc**: control `/praxis/repos/nano-vc` | data `/home/mat/dev/nano-vc`
- **agent-skills**: control `/praxis/repos/agent-skills` | data `/home/mat/dev/agent-skills`
The data value = the git repo path to commit in.
If alias not found, list available aliases from CLAUDE.md and exit.
$ARGUMENTS first word = repo alias (required)--all flag: stage all modified files before committing (runs git add -A)--yes flag: skip human confirmation gate โ auto-approve the commit proposal--all: only commits what's already stagedCRITICAL: Each git command MUST be a separate Bash call. NEVER chain with &&, ||, or ;. This enables auto-approval via permission rules.
Run these as separate sequential Bash calls:
git -C <data-path> statusgit -C <data-path> diff --staged (if no --all flag)
OR git -C <data-path> diff (if --all flag, to show what will be staged)git -C <data-path> log --oneline -5From the recon output:
--all)type(scope): description per CLAUDE.md rulesWhat: bullets + Why: line---
๐ฆ Commit proposal for <alias> (<branch>)
Staged files:
- file1
- file2
Commit message:
type(scope): description
What:
- change 1
- change 2
Why: reason
If --yes flag is set: skip confirmation, proceed directly to step 3.
Otherwise โ โ ๏ธ MANDATORY HUMAN GATE โ use AskUserQuestion:
If --all: git -C <data-path> add -A
Run git -C <data-path> commit -m "<message>"
Use HEREDOC for multi-line messages:
git -C <data-path> commit -m "$(cat <<'EOF'
subject line
What:
- change 1
- change 2
Why: reason
EOF
)"
git -C <data-path> log --oneline -1 (auto-approved, verify success)Report: โ
Committed <short-hash> to <branch> in <alias>
Your project CLAUDE.md must have an ## Alias Paths section with data paths pointing to git repos:
## Alias Paths
- **my-repo**: control `/praxis/repos/my-repo` | data `/path/to/my-repo`
Add auto-approve rules for read-only git commands on each repo path. Example for ~/.claude/settings.json:
"permissions": {
"allow": [
"Bash(git -C /path/to/repo status *)",
"Bash(git -C /path/to/repo status)",
"Bash(git -C /path/to/repo diff *)",
"Bash(git -C /path/to/repo diff)",
"Bash(git -C /path/to/repo log *)"
]
}
This keeps recon (Phase 1) zero-approval. The explicit AskUserQuestion in Phase 3 serves as the single human gate (do NOT rely on Bash permission prompts โ they fail open inside skills, see Claude Code bug #18950/#25181).