50 lines
2.2 KiB
Markdown
50 lines
2.2 KiB
Markdown
---
|
|
name: commit-policy
|
|
description: Apply this skill for any git commit task in this repository. It enforces commit message format and validation flow defined in AGENTS.md and work/scripts/check-commit-message-rules.sh, including pre-commit and post-commit verification.
|
|
---
|
|
|
|
# Commit Policy Skill
|
|
|
|
Use this workflow whenever the task includes creating a commit.
|
|
|
|
## Required References
|
|
|
|
- `@AGENTS.md`
|
|
- `@work/scripts/check-commit-message-rules.sh`
|
|
|
|
## Hard Requirements
|
|
|
|
1. Use commit subject format: `<type>(scope): <description>`.
|
|
2. `type` must be lowercase (for example `feat`, `fix`, `chore`, `docs`, `refactor`, `test`).
|
|
3. `description` must include Korean text and stay concise in imperative present tone.
|
|
4. Optional footer must use `Refs: #123` or `Refs: #123, #456` format.
|
|
5. Never commit secret files (`.env`, key/token/secret credential files).
|
|
6. Never bypass hooks with `--no-verify`.
|
|
7. Never include `Ultraworked with [Sisyphus]...` or `Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>` in the commit body.
|
|
|
|
## Execution Flow
|
|
|
|
1. Inspect context with:
|
|
- `git status`
|
|
- `git diff --cached`
|
|
- `git diff`
|
|
- `git log -5 --oneline`
|
|
2. Stage commit target files only. Exclude suspicious secret-bearing files.
|
|
3. Draft commit message from the change intent (focus on why, not only what).
|
|
4. Run pre-commit validation with the full draft message:
|
|
- `./work/scripts/check-commit-message-rules.sh --message "<full message>"`
|
|
5. If validation fails, revise message and re-run until PASS.
|
|
6. Prefer validating a message file with `./work/scripts/check-commit-message-rules.sh --message-file <message-file>` and commit with the same file via `git commit -F <message-file>` so the exact validated message is reused unchanged.
|
|
7. Run post-commit validation:
|
|
- `./work/scripts/check-commit-message-rules.sh`
|
|
8. If post-commit validation fails because an automatic footer was appended, stop and report the failure instead of treating the commit as valid.
|
|
9. Report executed commands and PASS/FAIL summary.
|
|
|
|
## Output Checklist
|
|
|
|
- Final commit subject.
|
|
- Whether pre-check passed.
|
|
- Whether post-check passed.
|
|
- Any excluded files and reason.
|
|
- Whether forbidden Sisyphus footer lines were absent in the final commit body.
|