[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M752APAKZ7DKPJ007DM72SJS":3,"skill-same:01M752APAKZ7DKPJ007DM72SJS":57},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":35,"ownerDescription":36,"updatedAt":37,"install":38,"resources":50},"01M752APAKZ7DKPJ007DM72SJS","x-push-branch",null,"Git operations: branch creation, atomic commits (Conventional Commits), push, and PR creation. Use for any git workflow task including branching, committing, pushing, creating PRs, or managing version control.","review-bench\u002Federcnj_ia-dev-environment","review-bench","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F286778065?v=4","01M7517F9NTEPDZDAXJBR30FWT","ReviewBench","01M7517FAC9F4P7TGWCNJ8VYVW",0,"MIT","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-quarkus\u002F.claude\u002Fskills\u002Fx-push-branch\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: x-push-branch\ndescription: \"Git operations: branch creation, atomic commits (Conventional Commits), push, and PR creation. Use for any git workflow task including branching, committing, pushing, creating PRs, or managing version control.\"\nuser-invocable: true\nallowed-tools: Bash, Read\nargument-hint: \"[branch-name or commit-message]\"\ncontext-budget: medium\nrequires-capabilities: []\n---\n\n## Global Output Policy\n\n- **Language**: English ONLY.\n- **Tone**: Technical, Direct, and Concise.\n- **Efficiency**: Remove all conversational fillers and greetings to save tokens.\n\n# Skill: Commit and Push\n\n## Purpose\n\nStandardizes the Git workflow for {{PROJECT_NAME}}. Every feature starts with a branch and ends with a clean commit history following Conventional Commits.\n\n## Triggers\n\n- `\u002Fx-push-branch` — commit and push current changes\n- `\u002Fx-push-branch branch-name` — create branch, commit, and push\n- `\u002Fx-push-branch \"commit message\"` — commit with message and push\n\n## Workflow\n\n```\n1. BRANCH     -> Create or verify feature branch\n2. COMMIT     -> Stage and commit with Conventional Commits format\n3. PUSH       -> Push to remote with tracking\n4. PR         -> Create pull request (if applicable)\n```\n\n### Step 1 — Branch Strategy\n\n```\nmain (production, tagged releases only)\n  +-- hotfix\u002Fshort-description\ndevelop (integration, always green)\n  +-- feat\u002Fstory-XXXX-YYYY-short-description       (parent\u002Fstory branch)\n  |     +-- feat\u002Ftask-XXXX-YYYY-NNN-short-desc      (task branch)\n  +-- release\u002FvX.Y.Z\n```\n\n#### 1.1 — Branch Naming\n\n##### Task Branch (Task-Centric Model)\n\n**Pattern:** `feat\u002Ftask-XXXX-YYYY-NNN-short-desc`\n\n| Component | Format | Example |\n|-----------|--------|---------|\n| XXXX | 4-digit epic ID | `0029` |\n| YYYY | 4-digit story ID | `0015` |\n| NNN | 3-digit task sequence (001-999) | `001` |\n| short-desc | lowercase-hyphenated description | `implement-phase2` |\n\n**Rules:**\n- Maximum **60 characters** total (truncate description to fit, preserving whole words)\n- All characters must be `[a-z0-9\u002F-]` (lowercase, digits, hyphens, forward slashes)\n- No underscores, no camelCase\n- Prefix with `feat\u002F` (or `fix\u002F`, `refactor\u002F` as appropriate)\n\n**Examples:**\n- `feat\u002Ftask-0029-0015-001-implement-phase2` (41 chars)\n- `fix\u002Ftask-0029-0015-002-null-check-guard` (40 chars)\n\n##### Parent Branch (Auto-Approve Mode)\n\n**Pattern:** `feat\u002Fstory-XXXX-YYYY-short-desc`\n\n**Rules:**\n- Maximum **60 characters** total\n- Created from `develop`; task branches are created from this parent\n- Used when `--auto-approve-pr` is active in `x-implement-story`\n\n**Example:** `feat\u002Fstory-0029-0015-lifecycle` (30 chars)\n\n##### Story Branch (Legacy\u002FStandard)\n\n**Pattern:** `feat\u002Fstory-XXXX-YYYY-short-kebab-description`\n\n**Rules:**\n- Always prefix with `feat\u002F` (or `fix\u002F`, `refactor\u002F` as appropriate)\n- Include the story\u002Fissue identifier\n- Short description in kebab-case (English)\n- Maximum 100 characters total\n\n##### Branch Name Validation\n\n| Rule | Validation | Error |\n|------|------------|-------|\n| Epic ID (XXXX) | 4 numeric digits | \"Invalid epic ID: must be 4 digits\" |\n| Story ID (YYYY) | 4 numeric digits | \"Invalid story ID: must be 4 digits\" |\n| Task seq (NNN) | 3 numeric digits (001-999) | \"Invalid task sequence: must be 3 digits\" |\n| Description | lowercase, hyphens only | \"Invalid description: use lowercase-hyphenated\" |\n| Task branch length | \u003C= 60 chars total | \"Branch name exceeds 60 chars: truncating description\" |\n| Characters | `[a-z0-9\u002F-]` only | \"Invalid characters in branch name\" |\n\n#### 1.2 — Creating a Branch\n\n**Task branch (from parent or develop):**\n\n```bash\ngit checkout feat\u002Fstory-XXXX-YYYY-description  # or develop\ngit pull\ngit checkout -b feat\u002Ftask-XXXX-YYYY-NNN-short-desc\n```\n\n**Story\u002Fparent branch (from develop):**\n\n```bash\ngit checkout develop\ngit pull origin develop\ngit checkout -b feat\u002Fstory-XXXX-YYYY-description\n```\n\n### Step 2 — Commit Convention (Conventional Commits)\n\n#### 2.1 — Format\n\n```\n\u003Ctype>(\u003Cscope>): \u003Csubject>\n\n\u003Coptional body>\n\n\u003Coptional footer>\n```\n\n#### 2.2 — Types\n\n| Type | When to use |\n|------|-------------|\n| `feat` | New feature |\n| `test` | Adding or modifying tests only |\n| `fix` | Bug fix |\n| `refactor` | Restructuring without behavior change |\n| `docs` | Documentation changes |\n| `build` | Build system changes |\n| `chore` | Maintenance tasks |\n| `infra` | Infrastructure and deployment changes |\n\n#### 2.3 — Scopes\n\n**Task-centric scope (preferred for task branches):**\n\nUse `TASK-XXXX-YYYY-NNN` as the scope when working on a task branch:\n\n```\nfeat(TASK-0029-0015-001): implement task execution loop [TDD:GREEN]\n```\n\n**Module-based scope (for non-task work):**\n\nUse the module, package, or component name as scope. Define project-specific scopes based on the architecture (e.g., `domain`, `rest`, `persistence`, `config`).\n\n#### 2.4 — Rules\n\n1. **Atomic commits** — one logical change per commit\n2. **Subject line** — max 72 characters, imperative mood (\"add\" not \"added\"), no period at end\n3. **Body** — optional; explain \"why\" not \"what\"; wrap at 72 characters\n4. **Tests with features** — feature commits should include their tests\n\n### Step 3 — Workflow Per Story\n\n#### 3.1 — Starting a Story\n\n```bash\ngit checkout develop\ngit pull origin develop\ngit checkout -b feat\u002Fstory-XXXX-YYYY-description\ngit status\n```\n\n#### 3.2 — During Implementation\n\nMake frequent, atomic commits:\n\n```bash\ngit add src\u002Fmain\u002Fpath\u002Fto\u002FFeature.{{LANGUAGE}}\ngit add src\u002Ftest\u002Fpath\u002Fto\u002FFeatureTest.{{LANGUAGE}}\ngit commit -m \"feat(TASK-XXXX-YYYY-NNN): add feature description [TDD]\"\n```\n\nFor non-task branches, use module-based scopes:\n\n```bash\ngit commit -m \"feat(scope): add feature description\"\n```\n\n#### 3.3 — Finishing a Story\n\n```bash\n# 1. Run full build\n{{BUILD_COMMAND}}\n\n# 2. Review changes\ngit log --oneline develop..HEAD\ngit diff develop...HEAD --stat\n\n# 3. Push\ngit push -u origin feat\u002Fstory-XXXX-YYYY-description\n```\n\n### Step 4 — Hotfix Workflow\n\nHotfixes branch from `main` and merge back to both `main` and `develop`.\n\n#### 4.1 — Starting a Hotfix\n\n```bash\ngit checkout main\ngit pull origin main\ngit checkout -b hotfix\u002Fshort-description\n```\n\n#### 4.2 — Committing and Pushing\n\n```bash\ngit add src\u002Fmain\u002Fpath\u002Fto\u002FFix.{{LANGUAGE}}\ngit add src\u002Ftest\u002Fpath\u002Fto\u002FFixTest.{{LANGUAGE}}\ngit commit -m \"fix(scope): description of critical fix\"\ngit push -u origin hotfix\u002Fshort-description\n```\n\n#### 4.3 — Creating Hotfix PR\n\n```bash\ngh pr create \\\n  --base main \\\n  --title \"fix(scope): description of critical fix\" \\\n  --body \"$(cat \u003C\u003C'EOF'\n## Summary\n\u003CDescription of the critical fix>\n\n## Test plan\n- [ ] Build passes (`{{BUILD_COMMAND}}`)\n- [ ] Fix verified in production-like environment\nEOF\n)\"\n```\n\n#### 4.4 — Back-merge to Develop\n\nAfter the hotfix is merged to `main`, propagate the fix to `develop`:\n\n```bash\ngit checkout main\ngit pull origin main\ngh pr create \\\n  --base develop \\\n  --title \"chore: back-merge hotfix to develop\" \\\n  --body \"Propagates hotfix from main to develop.\"\n```\n\n### Step 5 — Pull Request\n\n#### 5.1 — Task PR Creation\n\nWhen creating a PR for a task branch:\n\n```bash\ngh pr create \\\n  --base feat\u002Fstory-XXXX-YYYY-description \\\n  --title \"feat(TASK-XXXX-YYYY-NNN): description\" \\\n  --body \"$(cat \u003C\u003C'EOF'\n## Summary\n\u003C1-3 bullet points describing what was built>\n\nStory: story-XXXX-YYYY\nEpic: epic-XXXX\nTask Plan: ai\u002Fepics\u002Fepic-XXXX\u002Fplans\u002Ftask-plan-XXXX-YYYY-NNN.md\n\n## Changed Files\n\n| File | Layer | Change |\n|------|-------|--------|\n| `src\u002Fdomain\u002Fmodel\u002FEntity.{{LANGUAGE}}` | domain | Added |\n| `src\u002Fadapter\u002Foutbound\u002FEntityRepo.{{LANGUAGE}}` | adapter | Modified |\n\n## TDD Summary\n- RED-GREEN-REFACTOR cycles: N\n- Test count: N unit, N integration\n\n## Checklist\n- [ ] Build passes (`{{BUILD_COMMAND}}`)\n- [ ] Coverage thresholds met\n- [ ] All acceptance criteria covered\nEOF\n)\"\n```\n\n#### 5.2 — Story PR Creation (Legacy\u002FStandard)\n\nWhen creating a PR for a story or non-task branch:\n\n```bash\ngh pr create \\\n  --base develop \\\n  --title \"feat(scope): implement story-XXXX-YYYY -- title\" \\\n  --body \"$(cat \u003C\u003C'EOF'\n## Summary\n\u003C1-3 bullet points describing what was built>\n\n## Test plan\n- [ ] Build passes (`{{BUILD_COMMAND}}`)\n- [ ] Coverage thresholds met\n- [ ] All acceptance criteria covered\nEOF\n)\"\n```\n\n#### 5.3 — PR Title Convention\n\n**Task PR format:**\n- **Format:** `\u003Ctype>(TASK-XXXX-YYYY-NNN): description`\n- **Max length:** 70 characters\n- **Example:** `feat(TASK-0029-0015-001): implement Phase 2 task loop`\n\n**Story PR format (legacy):**\n- **Format:** `feat(scope): implement story-XXXX-YYYY -- short title`\n- **Max length:** 70 characters\n\n#### 5.4 — PR Body Requirements (Task PRs)\n\n| Section | Content | Required |\n|---------|---------|----------|\n| Story reference | `Story: story-XXXX-YYYY` | Yes |\n| Epic reference | `Epic: epic-XXXX` | Yes |\n| Task plan link | `Task Plan: ai\u002Fepics\u002Fepic-XXXX\u002Fplans\u002Ftask-plan-XXXX-YYYY-NNN.md` | Optional |\n| Changed files | Table with file path, layer, and change type | Yes |\n| TDD summary | Number of RED\u002FGREEN\u002FREFACTOR cycles | Yes |\n| Checklist | DoD items from the task | Yes |\n\n#### 5.5 — Useful Commands\n\n```bash\ngh pr list\ngh pr view \u003Cnumber>\ngh pr checks \u003Cnumber>\ngh pr merge \u003Cnumber> --squash --delete-branch\n```\n\n### Step 6 — Tagging Releases\n\n```bash\ngit tag -a v0.1.0 -m \"Milestone description\"\ngit push origin v0.1.0\n```\n\n### Step 7 — TDD Commit Format\n\nWhen following TDD, use these commit format variants:\n\n| Format | When to use |\n|--------|-------------|\n| `feat(scope): implement [behavior] [TDD]` | **Recommended default.** Complete Red-Green(-Refactor) cycle in one commit: test + implementation (+ trivial refactor) |\n| `test(scope): add test for [behavior] [TDD:RED]` | **Optional, fine-grained.** Test-only Red phase; must be paired with a `[TDD:GREEN]` commit before push |\n| `feat(scope): implement [behavior] [TDD:GREEN]` | **Optional, fine-grained.** Implementation-only Green phase; must immediately follow a paired `[TDD:RED]` commit |\n| `refactor(scope): [improvement] [TDD:REFACTOR]` | **Optional.** Non-trivial refactor-only commit (no new behavior), immediately after the corresponding Green commit |\n\nThe combined format `[TDD]` is the **recommended default** for most work: one green commit per complete Red-Green(-Refactor) cycle. Use the separate `[TDD:RED]`, `[TDD:GREEN]`, `[TDD:REFACTOR]` tags **only** when finer granularity in the git history is needed, and always keep RED\u002FGREEN commits paired (no orphaned test-only commits on shared branches).\n\nTDD tags are **additive suffixes** — they do not replace the Conventional Commits type. All existing types (`feat`, `test`, `fix`, `refactor`, `docs`, `build`, `chore`, `infra`) remain valid.\n\n### Step 8 — Atomic TDD Commit Rules\n\n1. **Default: one combined commit per Red-Green-Refactor cycle** — use the `[TDD]` suffix for a complete cycle in a single commit\n2. **Test and implementation in the SAME commit** — RED-only `[TDD:RED]` commits are allowed locally for fine-grained work, but must be paired with a corresponding `[TDD:GREEN]` commit before push (no orphaned test-only commits on shared branches)\n3. **Refactoring may be a separate commit for non-trivial changes** — use `[TDD:REFACTOR]` immediately after the Green commit, adding no new behavior\n4. **Each commit adds ONE testable behavior** — keep changes focused and reviewable\n5. **Maximum ~50 lines changed per commit** — larger commits should be split into smaller TDD cycles\n\n### Step 9 — Git History Storytelling\n\nThe sequence of commits should tell the story of TDD progression from simple to complex:\n\n1. **First commit:** acceptance test + test infrastructure setup\n2. **Following commits:** incremental unit tests following Transformation Priority Premise (TPP) order\n   - Degenerate \u002F nil cases first\n   - Constants, then variables\n   - Simple conditionals, then iterations\n   - Complex \u002F composition cases last\n3. **Final commits:** refactoring and polish (no new behavior)\n\nThe git log should read as a **progression from the simplest case to the most complex**, making the development process transparent and reviewable.\n\n## Error Handling\n\n| Scenario | Action |\n|----------|--------|\n| Uncommitted changes when creating branch | Stash or commit before switching |\n| Push rejected (remote ahead) | Pull with rebase, then push again |\n| Merge conflict during rebase | Report conflict files, suggest resolution |\n| PR creation fails (no remote branch) | Push branch first, then retry PR creation |\n| Build fails before push | Abort push, report build errors |\n\n## Integration Notes\n\n| Skill | Relationship | Context |\n|-------|-------------|---------|\n| `x-implement-story` | called-by | Phase 0 (branch from develop) and Phase 5 (push + PR to develop) |\n| `x-implement-task` | called-by | Atomic TDD commits during implementation |\n| `x-release` | called-by | Release commit and tag creation |\n| `x-commit-changes` | delegates-to | Commit creation with task ID scope and TDD tags |\n| `x-create-pr` | delegates-to | PR creation with task references and body template |\n\n- Hotfix workflow branches from `main` and creates PRs targeting `main`, then back-merges to `develop`\n- Can be used standalone for any git workflow task\n- For task branches, commit scope MUST use `TASK-XXXX-YYYY-NNN` format\n- For non-task branches, commit scope should match the project's package\u002Fmodule structure\n- Task PRs target the parent story branch; story PRs target `develop`\n","## Global Output Policy\n\n- **Language**: English ONLY.\n- **Tone**: Technical, Direct, and Concise.\n- **Efficiency**: Remove all conversational fillers and greetings to save tokens.\n\n# Skill: Commit and Push\n\n## Purpose\n\nStandardizes the Git workflow for {{PROJECT_NAME}}. Every feature starts with a branch and ends with a clean commit history following Conventional Commits.\n\n## Triggers\n\n- `\u002Fx-push-branch` — commit and push current changes\n- `\u002Fx-push-branch branch-name` — create branch, commit, and push\n- `\u002Fx-push-branch \"commit message\"` — commit with message and push\n\n## Workflow\n\n```\n1. BRANCH     -> Create or verify feature branch\n2. COMMIT     -> Stage and commit with Conventional Commits format\n3. PUSH       -> Push to remote with tracking\n4. PR         -> Create pull request (if applicable)\n```\n\n### Step 1 — Branch Strategy\n\n```\nmain (production, tagged releases only)\n  +-- hotfix\u002Fshort-description\ndevelop (integration, always green)\n  +-- feat\u002Fstory-XXXX-YYYY-short-description       (parent\u002Fstory branch)\n  |     +-- feat\u002Ftask-XXXX-YYYY-NNN-short-desc      (task branch)\n  +-- release\u002FvX.Y.Z\n```\n\n#### 1.1 — Branch Naming\n\n##### Task Branch (Task-Centric Model)\n\n**Pattern:** `feat\u002Ftask-XXXX-YYYY-NNN-short-desc`\n\n| Component | Format | Example |\n|-----------|--------|---------|\n| XXXX | 4-digit epic ID | `0029` |\n| YYYY | 4-digit story ID | `0015` |\n| NNN | 3-digit task sequence (001-999) | `001` |\n| short-desc | lowercase-hyphenated description | `implement-phase2` |\n\n**Rules:**\n- Maximum **60 characters** total (truncate description to fit, preserving whole words)\n- All characters must be `[a-z0-9\u002F-]` (lowercase, digits, hyphens, forward slashes)\n- No underscores, no camelCase\n- Prefix with `feat\u002F` (or `fix\u002F`, `refactor\u002F` as appropriate)\n\n**Examples:**\n- `feat\u002Ftask-0029-0015-001-implement-phase2` (41 chars)\n- `fix\u002Ftask-0029-0015-002-null-check-guard` (40 chars)\n\n##### Parent Branch (Auto-Approve Mode)\n\n**Pattern:** `feat\u002Fstory-XXXX-YYYY-short-desc`\n\n**Rules:**\n- Maximum **60 characters** total\n- Created from `develop`; task branches are created from this parent\n- Used when `--auto-approve-pr` is active in `x-implement-story`\n\n**Example:** `feat\u002Fstory-0029-0015-lifecycle` (30 chars)\n\n##### Story Branch (Legacy\u002FStandard)\n\n**Pattern:** `feat\u002Fstory-XXXX-YYYY-short-kebab-description`\n\n**Rules:**\n- Always prefix with `feat\u002F` (or `fix\u002F`, `refactor\u002F` as appropriate)\n- Include the story\u002Fissue identifier\n- Short description in kebab-case (English)\n- Maximum 100 characters total\n\n##### Branch Name Validation\n\n| Rule | Validation | Error |\n|------|------------|-------|\n| Epic ID (XXXX) | 4 numeric digits | \"Invalid epic ID: must be 4 digits\" |\n| Story ID (YYYY) | 4 numeric digits | \"Invalid story ID: must be 4 digits\" |\n| Task seq (NNN) | 3 numeric digits (001-999) | \"Invalid task sequence: must be 3 digits\" |\n| Description | lowercase, hyphens only | \"Invalid description: use lowercase-hyphenated\" |\n| Task branch length | \u003C= 60 chars total | \"Branch name exceeds 60 chars: truncating description\" |\n| Characters | `[a-z0-9\u002F-]` only | \"Invalid characters in branch name\" |\n\n#### 1.2 — Creating a Branch\n\n**Task branch (from parent or develop):**\n\n```bash\ngit checkout feat\u002Fstory-XXXX-YYYY-description  # or develop\ngit pull\ngit checkout -b feat\u002Ftask-XXXX-YYYY-NNN-short-desc\n```\n\n**Story\u002Fparent branch (from develop):**\n\n```bash\ngit checkout develop\ngit pull origin develop\ngit checkout -b feat\u002Fstory-XXXX-YYYY-description\n```\n\n### Step 2 — Commit Convention (Conventional Commits)\n\n#### 2.1 — Format\n\n```\n\u003Ctype>(\u003Cscope>): \u003Csubject>\n\n\u003Coptional body>\n\n\u003Coptional footer>\n```\n\n#### 2.2 — Types\n\n| Type | When to use |\n|------|-------------|\n| `feat` | New feature |\n| `test` | Adding or modifying tests only |\n| `fix` | Bug fix |\n| `refactor` | Restructuring without behavior change |\n| `docs` | Documentation changes |\n| `build` | Build system changes |\n| `chore` | Maintenance tasks |\n| `infra` | Infrastructure and deployment changes |\n\n#### 2.3 — Scopes\n\n**Task-centric scope (preferred for task branches):**\n\nUse `TASK-XXXX-YYYY-NNN` as the scope when working on a task branch:\n\n```\nfeat(TASK-0029-0015-001): implement task execution loop [TDD:GREEN]\n```\n\n**Module-based scope (for non-task work):**\n\nUse the module, package, or component name as scope. Define project-specific scopes based on the architecture (e.g., `domain`, `rest`, `persistence`, `config`).\n\n#### 2.4 — Rules\n\n1. **Atomic commits** — one logical change per commit\n2. **Subject line** — max 72 characters, imperative mood (\"add\" not \"added\"), no period at end\n3. **Body** — optional; explain \"why\" not \"what\"; wrap at 72 characters\n4. **Tests with features** — feature commits should include their tests\n\n### Step 3 — Workflow Per Story\n\n#### 3.1 — Starting a Story\n\n```bash\ngit checkout develop\ngit pull origin develop\ngit checkout -b feat\u002Fstory-XXXX-YYYY-description\ngit status\n```\n\n#### 3.2 — During Implementation\n\nMake frequent, atomic commits:\n\n```bash\ngit add src\u002Fmain\u002Fpath\u002Fto\u002FFeature.{{LANGUAGE}}\ngit add src\u002Ftest\u002Fpath\u002Fto\u002FFeatureTest.{{LANGUAGE}}\ngit commit -m \"feat(TASK-XXXX-YYYY-NNN): add feature description [TDD]\"\n```\n\nFor non-task branches, use module-based scopes:\n\n```bash\ngit commit -m \"feat(scope): add feature description\"\n```\n\n#### 3.3 — Finishing a Story\n\n```bash\n# 1. Run full build\n{{BUILD_COMMAND}}\n\n# 2. Review changes\ngit log --oneline develop..HEAD\ngit diff develop...HEAD --stat\n\n# 3. Push\ngit push -u origin feat\u002Fstory-XXXX-YYYY-description\n```\n\n### Step 4 — Hotfix Workflow\n\nHotfixes branch from `main` and merge back to both `main` and `develop`.\n\n#### 4.1 — Starting a Hotfix\n\n```bash\ngit checkout main\ngit pull origin main\ngit checkout -b hotfix\u002Fshort-description\n```\n\n#### 4.2 — Committing and Pushing\n\n```bash\ngit add src\u002Fmain\u002Fpath\u002Fto\u002FFix.{{LANGUAGE}}\ngit add src\u002Ftest\u002Fpath\u002Fto\u002FFixTest.{{LANGUAGE}}\ngit commit -m \"fix(scope): description of critical fix\"\ngit push -u origin hotfix\u002Fshort-description\n```\n\n#### 4.3 — Creating Hotfix PR\n\n```bash\ngh pr create \\\n  --base main \\\n  --title \"fix(scope): description of critical fix\" \\\n  --body \"$(cat \u003C\u003C'EOF'\n## Summary\n\u003CDescription of the critical fix>\n\n## Test plan\n- [ ] Build passes (`{{BUILD_COMMAND}}`)\n- [ ] Fix verified in production-like environment\nEOF\n)\"\n```\n\n#### 4.4 — Back-merge to Develop\n\nAfter the hotfix is merged to `main`, propagate the fix to `develop`:\n\n```bash\ngit checkout main\ngit pull origin main\ngh pr create \\\n  --base develop \\\n  --title \"chore: back-merge hotfix to develop\" \\\n  --body \"Propagates hotfix from main to develop.\"\n```\n\n### Step 5 — Pull Request\n\n#### 5.1 — Task PR Creation\n\nWhen creating a PR for a task branch:\n\n```bash\ngh pr create \\\n  --base feat\u002Fstory-XXXX-YYYY-description \\\n  --title \"feat(TASK-XXXX-YYYY-NNN): description\" \\\n  --body \"$(cat \u003C\u003C'EOF'\n## Summary\n\u003C1-3 bullet points describing what was built>\n\nStory: story-XXXX-YYYY\nEpic: epic-XXXX\nTask Plan: ai\u002Fepics\u002Fepic-XXXX\u002Fplans\u002Ftask-plan-XXXX-YYYY-NNN.md\n\n## Changed Files\n\n| File | Layer | Change |\n|------|-------|--------|\n| `src\u002Fdomain\u002Fmodel\u002FEntity.{{LANGUAGE}}` | domain | Added |\n| `src\u002Fadapter\u002Foutbound\u002FEntityRepo.{{LANGUAGE}}` | adapter | Modified |\n\n## TDD Summary\n- RED-GREEN-REFACTOR cycles: N\n- Test count: N unit, N integration\n\n## Checklist\n- [ ] Build passes (`{{BUILD_COMMAND}}`)\n- [ ] Coverage thresholds met\n- [ ] All acceptance criteria covered\nEOF\n)\"\n```\n\n#### 5.2 — Story PR Creation (Legacy\u002FStandard)\n\nWhen creating a PR for a story or non-task branch:\n\n```bash\ngh pr create \\\n  --base develop \\\n  --title \"feat(scope): implement story-XXXX-YYYY -- title\" \\\n  --body \"$(cat \u003C\u003C'EOF'\n## Summary\n\u003C1-3 bullet points describing what was built>\n\n## Test plan\n- [ ] Build passes (`{{BUILD_COMMAND}}`)\n- [ ] Coverage thresholds met\n- [ ] All acceptance criteria covered\nEOF\n)\"\n```\n\n#### 5.3 — PR Title Convention\n\n**Task PR format:**\n- **Format:** `\u003Ctype>(TASK-XXXX-YYYY-NNN): description`\n- **Max length:** 70 characters\n- **Example:** `feat(TASK-0029-0015-001): implement Phase 2 task loop`\n\n**Story PR format (legacy):**\n- **Format:** `feat(scope): implement story-XXXX-YYYY -- short title`\n- **Max length:** 70 characters\n\n#### 5.4 — PR Body Requirements (Task PRs)\n\n| Section | Content | Required |\n|---------|---------|----------|\n| Story reference | `Story: story-XXXX-YYYY` | Yes |\n| Epic reference | `Epic: epic-XXXX` | Yes |\n| Task plan link | `Task Plan: ai\u002Fepics\u002Fepic-XXXX\u002Fplans\u002Ftask-plan-XXXX-YYYY-NNN.md` | Optional |\n| Changed files | Table with file path, layer, and change type | Yes |\n| TDD summary | Number of RED\u002FGREEN\u002FREFACTOR cycles | Yes |\n| Checklist | DoD items from the task | Yes |\n\n#### 5.5 — Useful Commands\n\n```bash\ngh pr list\ngh pr view \u003Cnumber>\ngh pr checks \u003Cnumber>\ngh pr merge \u003Cnumber> --squash --delete-branch\n```\n\n### Step 6 — Tagging Releases\n\n```bash\ngit tag -a v0.1.0 -m \"Milestone description\"\ngit push origin v0.1.0\n```\n\n### Step 7 — TDD Commit Format\n\nWhen following TDD, use these commit format variants:\n\n| Format | When to use |\n|--------|-------------|\n| `feat(scope): implement [behavior] [TDD]` | **Recommended default.** Complete Red-Green(-Refactor) cycle in one commit: test + implementation (+ trivial refactor) |\n| `test(scope): add test for [behavior] [TDD:RED]` | **Optional, fine-grained.** Test-only Red phase; must be paired with a `[TDD:GREEN]` commit before push |\n| `feat(scope): implement [behavior] [TDD:GREEN]` | **Optional, fine-grained.** Implementation-only Green phase; must immediately follow a paired `[TDD:RED]` commit |\n| `refactor(scope): [improvement] [TDD:REFACTOR]` | **Optional.** Non-trivial refactor-only commit (no new behavior), immediately after the corresponding Green commit |\n\nThe combined format `[TDD]` is the **recommended default** for most work: one green commit per complete Red-Green(-Refactor) cycle. Use the separate `[TDD:RED]`, `[TDD:GREEN]`, `[TDD:REFACTOR]` tags **only** when finer granularity in the git history is needed, and always keep RED\u002FGREEN commits paired (no orphaned test-only commits on shared branches).\n\nTDD tags are **additive suffixes** — they do not replace the Conventional Commits type. All existing types (`feat`, `test`, `fix`, `refactor`, `docs`, `build`, `chore`, `infra`) remain valid.\n\n### Step 8 — Atomic TDD Commit Rules\n\n1. **Default: one combined commit per Red-Green-Refactor cycle** — use the `[TDD]` suffix for a complete cycle in a single commit\n2. **Test and implementation in the SAME commit** — RED-only `[TDD:RED]` commits are allowed locally for fine-grained work, but must be paired with a corresponding `[TDD:GREEN]` commit before push (no orphaned test-only commits on shared branches)\n3. **Refactoring may be a separate commit for non-trivial changes** — use `[TDD:REFACTOR]` immediately after the Green commit, adding no new behavior\n4. **Each commit adds ONE testable behavior** — keep changes focused and reviewable\n5. **Maximum ~50 lines changed per commit** — larger commits should be split into smaller TDD cycles\n\n### Step 9 — Git History Storytelling\n\nThe sequence of commits should tell the story of TDD progression from simple to complex:\n\n1. **First commit:** acceptance test + test infrastructure setup\n2. **Following commits:** incremental unit tests following Transformation Priority Premise (TPP) order\n   - Degenerate \u002F nil cases first\n   - Constants, then variables\n   - Simple conditionals, then iterations\n   - Complex \u002F composition cases last\n3. **Final commits:** refactoring and polish (no new behavior)\n\nThe git log should read as a **progression from the simplest case to the most complex**, making the development process transparent and reviewable.\n\n## Error Handling\n\n| Scenario | Action |\n|----------|--------|\n| Uncommitted changes when creating branch | Stash or commit before switching |\n| Push rejected (remote ahead) | Pull with rebase, then push again |\n| Merge conflict during rebase | Report conflict files, suggest resolution |\n| PR creation fails (no remote branch) | Push branch first, then retry PR creation |\n| Build fails before push | Abort push, report build errors |\n\n## Integration Notes\n\n| Skill | Relationship | Context |\n|-------|-------------|---------|\n| `x-implement-story` | called-by | Phase 0 (branch from develop) and Phase 5 (push + PR to develop) |\n| `x-implement-task` | called-by | Atomic TDD commits during implementation |\n| `x-release` | called-by | Release commit and tag creation |\n| `x-commit-changes` | delegates-to | Commit creation with task ID scope and TDD tags |\n| `x-create-pr` | delegates-to | PR creation with task references and body template |\n\n- Hotfix workflow branches from `main` and creates PRs targeting `main`, then back-merges to `develop`\n- Can be used standalone for any git workflow task\n- For task branches, commit scope MUST use `TASK-XXXX-YYYY-NNN` format\n- For non-task branches, commit scope should match the project's package\u002Fmodule structure\n- Task PRs target the parent story branch; story PRs target `develop`\n",{"name":5,"description":7,"allowed-tools":24,"argument-hint":25,"context-budget":26,"user-invocable":27,"requires-capabilities":28},"Bash, Read","[branch-name or commit-message]","medium",true,[],"main","952a630c6f38d193a349d86fa18db1de8843e837","src\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-quarkus\u002F.claude\u002Fskills\u002Fx-push-branch",1,"https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment","https:\u002F\u002Fgithub.com\u002Freview-bench","https:\u002F\u002Freview-bench.ai","An open benchmark for AI code review.","2026-10-27 06:56:37",{"source":8,"skillName":5,"commands":39,"prompt":49,"zipAvailable":27},[40,43,46],{"tool":41,"command":42},"npx","npx skills add review-bench\u002Federcnj_ia-dev-environment --skill x-push-branch",{"tool":44,"command":45},"bunx","bunx skills add review-bench\u002Federcnj_ia-dev-environment --skill x-push-branch",{"tool":47,"command":48},"pnpm","pnpm dlx skills add review-bench\u002Federcnj_ia-dev-environment --skill x-push-branch","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-quarkus\u002F.claude\u002Fskills\u002Fx-push-branch\u002FSKILL.md",[51],{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"README.md","REFERENCE","参考文档",1587,"https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-quarkus\u002F.claude\u002Fskills\u002Fx-push-branch\u002FREADME.md",[58,65,72,79,86,93],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":19},"01M757M8J48TQ1Y3X25GSJBXAS","x-parallel-eval","Detects and classifies file-collision risks between work units (tasks, stories, or epic phases) before parallel execution. Reads ## File Footprint blocks produced by x-task-plan \u002F x-story-plan, applies the parallelism-heuristics knowledge pack (hard \u002F regen \u002F soft categories + hotspot overrides), and emits a collision matrix + serialization recommendation in Markdown (default) or JSON.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fx-parallel-eval\u002FSKILL.md",[],[],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":19},"01M757M57XMR9546S69466HDWT","parallelism-heuristics","Canonical catalog of file-collision heuristics for parallel task, story, and epic execution. Defines the File Footprint block format, the three Conflict Categories (hard \u002F regen \u002F soft), a hotspot list of high-contention paths, and the degrade-with-warning policy. Consumed by x-task-plan, x-story-plan, x-epic-map, x-parallel-eval, and x-dev-*-implement.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fparallelism-heuristics\u002FSKILL.md",[],[],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":19},"01M757M11SZ8P1VCQABT08QVYA","x-watch-pr-ci","Polls a PR's CI checks and Copilot review status, blocking until checks complete or timeout. Returns one of 8 stable exit codes (SUCCESS=0, CI_PENDING_PROCEED=10, CI_FAILED=20, TIMEOUT=30, PR_ALREADY_MERGED=40, NO_CI_CONFIGURED=50, PR_CLOSED=60, PR_NOT_FOUND=70). Writes a versioned state-file for session resume.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring\u002Fplatform-claude-code\u002F.claude\u002Fskills\u002Fx-watch-pr-ci\u002FSKILL.md",[],[],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":19},"01M757KW53K8KFPGADFB4PH949","x-validate-docs","Documentation freshness gate: validates 6 dimensions (readme, api-specs, grpc-proto, adr, skill-docs, system-architecture) against code changes in a PR. Stack-aware — only validates targets declared\u002Fauto-detected from ProjectConfig.documentation.targets. Returns exit non-zero on staleness; produces structured report.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring\u002Fplatform-claude-code\u002F.claude\u002Fskills\u002Fx-validate-docs\u002FSKILL.md",[],[],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":19},"01M757KQZHSA10MKC0CR571D60","x-update-system-architecture","Incrementally updates docs\u002Farchitecture\u002Fsystem.md after an epic completes. Appends new entries to the Decision Log (§11) using x-internal-write-report --append (dedup by ## ID: marker) and surgically inserts component\u002Fintegration changes into sections 1-10 via Edit. Idempotent: re-running with the same epic produces a byte-identical system.md.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring\u002Fplatform-claude-code\u002F.claude\u002Fskills\u002Fx-update-system-architecture\u002FSKILL.md",[],[],{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":19},"01M757KKBT5Q1SVF8DMJBVF46M","x-update-architecture","Incrementally updates the service architecture document with changes from architecture plans. Adds new components, integrations, flows, and ADR references without rewriting existing content. Use after implementation to keep architecture documentation current.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring\u002Fplatform-claude-code\u002F.claude\u002Fskills\u002Fx-update-architecture\u002FSKILL.md",[],[]]