From workflow
Enforces 'No Ticket, No Commit' principle via PreToolUse hook that validates ticket numbers from GitHub, GitLab, Jira, Linear in commit messages or branch names. Configures patterns and exceptions in .tidd.json.
How this skill is triggered — by the user, by Claude, or both
Slash command
/workflow:tiddThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**No Ticket, No Commit.** 모든 코드 변경은 반드시 추적 가능한 티켓과 연결되어야 합니다.
No Ticket, No Commit. 모든 코드 변경은 반드시 추적 가능한 티켓과 연결되어야 합니다.
| 시스템 | 패턴 예시 | 정규식 |
|---|---|---|
| GitHub Issues | #123, org/repo#456 | #[0-9]+ |
| GitLab Issues | #123, group/project#456 | #[0-9]+ |
| Jira | PROJ-123, DEV-456 | [A-Z][A-Z0-9]+-[0-9]+ |
| Linear | ENG-123, FE-456 | [A-Z][A-Z0-9]+-[0-9]+ |
| Trello | TRELLO-123 | [A-Z][A-Z0-9]+-[0-9]+ |
기본 패턴: #[0-9]+ 또는 [A-Z][A-Z0-9]+-[0-9]+
chmod +x plugins/workflow/skills/tidd/hooks/validate.sh
프로젝트의 .claude/settings.json에 추가:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"command": "/path/to/plugins/workflow/skills/tidd/hooks/validate.sh"
}
]
}
}
팁: 절대 경로 대신 플러그인 설치 경로 기준으로 설정하세요.
프로젝트 루트에 .tidd.json 생성:
{
"patterns": ["#[0-9]+", "[A-Z][A-Z0-9]+-[0-9]+"],
"branchPatterns": ["[A-Z][A-Z0-9]+-[0-9]+", "issue-[0-9]+"],
"exemptBranches": ["main", "master", "develop", "release/*", "hotfix/*"],
"exemptTypes": ["merge", "revert"]
}
설정 상세는 configuration.md를 참조하세요.
git commit 감지
│
├─ merge/revert 커밋? ──→ 통과
│
├─ exempt 브랜치? ──→ 통과
│
├─ 커밋 메시지에 티켓 번호? ──→ 통과
│
├─ 브랜치명에 티켓 번호? ──→ 통과
│
└─ 차단: "No Ticket, No Commit!"
# GitHub Issues
git commit -m "feat(auth): add OAuth2 support #123"
# Jira
git commit -m "feat(auth): add OAuth2 support PROJ-123"
# 본문에 포함해도 OK
git commit -m "feat(auth): add OAuth2 support
Resolves #123"
# 브랜치명에 티켓 번호가 있으면 커밋 메시지에는 없어도 통과
git checkout -b feature/PROJ-123-oauth-login
git commit -m "feat(auth): add OAuth2 support" # 통과!
npx claudepluginhub roboco-io/plugins --plugin workflowDrives a ticket from analysis through investigation, planning, TDD implementation, committing, and PR creation. Adapts to your stack via an interactive supplement on first run.
Defines conventions for branch naming, commit messages, and pull requests. Use when creating branches, writing commits, or opening PRs.