diff --git a/document-release/SKILL.md b/document-release/SKILL.md index 191ece60..c8ecbfe8 100644 --- a/document-release/SKILL.md +++ b/document-release/SKILL.md @@ -573,8 +573,12 @@ gh pr edit --body-file /tmp/gstack-pr-body-$$.md ``` **If GitLab:** +Read the contents of `/tmp/gstack-pr-body-$$.md` using the Read tool, then pass it to `glab mr update` using a heredoc to avoid shell metacharacter issues: ```bash -glab mr update -d "$(cat /tmp/gstack-pr-body-$$.md)" +glab mr update -d "$(cat <<'MRBODY' + +MRBODY +)" ``` 5. Clean up the tempfile: diff --git a/document-release/SKILL.md.tmpl b/document-release/SKILL.md.tmpl index 10b85c48..5d236ae2 100644 --- a/document-release/SKILL.md.tmpl +++ b/document-release/SKILL.md.tmpl @@ -320,8 +320,12 @@ gh pr edit --body-file /tmp/gstack-pr-body-$$.md ``` **If GitLab:** +Read the contents of `/tmp/gstack-pr-body-$$.md` using the Read tool, then pass it to `glab mr update` using a heredoc to avoid shell metacharacter issues: ```bash -glab mr update -d "$(cat /tmp/gstack-pr-body-$$.md)" +glab mr update -d "$(cat <<'MRBODY' + +MRBODY +)" ``` 5. Clean up the tempfile: diff --git a/land-and-deploy/SKILL.md b/land-and-deploy/SKILL.md index 11e32761..0ad9e79a 100644 --- a/land-and-deploy/SKILL.md +++ b/land-and-deploy/SKILL.md @@ -309,6 +309,8 @@ branch name wherever the instructions say "the base branch" or ``. --- +**If the platform detected above is GitLab or unknown:** STOP with: "GitLab support for /land-and-deploy is not yet implemented. Run `/ship` to create the MR, then merge manually via the GitLab web UI." Do not proceed. + # /land-and-deploy — Merge, Deploy, Verify You are a **Release Engineer** who has deployed to production thousands of times. You know the two worst feelings in software: the merge that breaks prod, and the merge that sits in queue for 45 minutes while you stare at the screen. Your job is to handle both gracefully — merge efficiently, wait intelligently, verify thoroughly, and give the user a clear verdict. diff --git a/land-and-deploy/SKILL.md.tmpl b/land-and-deploy/SKILL.md.tmpl index a82a75a2..7fcf6797 100644 --- a/land-and-deploy/SKILL.md.tmpl +++ b/land-and-deploy/SKILL.md.tmpl @@ -21,6 +21,8 @@ allowed-tools: {{BASE_BRANCH_DETECT}} +**If the platform detected above is GitLab or unknown:** STOP with: "GitLab support for /land-and-deploy is not yet implemented. Run `/ship` to create the MR, then merge manually via the GitLab web UI." Do not proceed. + # /land-and-deploy — Merge, Deploy, Verify You are a **Release Engineer** who has deployed to production thousands of times. You know the two worst feelings in software: the merge that breaks prod, and the merge that sits in queue for 45 minutes while you stare at the screen. Your job is to handle both gracefully — merge efficiently, wait intelligently, verify thoroughly, and give the user a clear verdict. diff --git a/retro/SKILL.md b/retro/SKILL.md index b4a0fa74..2508476f 100644 --- a/retro/SKILL.md +++ b/retro/SKILL.md @@ -341,7 +341,7 @@ git log origin/ --since="" --format="%at|%aN|%ai|%s" | sort -n git log origin/ --since="" --format="" --name-only | grep -v '^$' | sort | uniq -c | sort -rn # 5. PR/MR numbers from commit messages (GitHub #NNN, GitLab !NNN) -git log origin/ --since="" --format="%s" | grep -oE '[#!][0-9]+' | sed 's/^[#!]//' | sort -n | uniq | sed 's/^/#/' +git log origin/ --since="" --format="%s" | grep -oE '[#!][0-9]+' | sort -t'#' -k1 | uniq # 6. Per-author file hotspots (who touches what) git log origin/ --since="" --format="AUTHOR:%aN" --name-only @@ -813,7 +813,7 @@ git -C log origin/$DEFAULT --since="T00:00:00" --format="%at| git -C shortlog origin/$DEFAULT --since="T00:00:00" -sn --no-merges # PR/MR numbers from commit messages (GitHub #NNN, GitLab !NNN) -git -C log origin/$DEFAULT --since="T00:00:00" --format="%s" | grep -oE '[#!][0-9]+' | sed 's/^[#!]//' | sort -n | uniq | sed 's/^/#/' +git -C log origin/$DEFAULT --since="T00:00:00" --format="%s" | grep -oE '[#!][0-9]+' | sort -t'#' -k1 | uniq ``` For repos that fail (deleted paths, network errors): skip and note "N repos could not be reached." diff --git a/retro/SKILL.md.tmpl b/retro/SKILL.md.tmpl index 0dbfa91d..c9ea5384 100644 --- a/retro/SKILL.md.tmpl +++ b/retro/SKILL.md.tmpl @@ -88,7 +88,7 @@ git log origin/ --since="" --format="%at|%aN|%ai|%s" | sort -n git log origin/ --since="" --format="" --name-only | grep -v '^$' | sort | uniq -c | sort -rn # 5. PR/MR numbers from commit messages (GitHub #NNN, GitLab !NNN) -git log origin/ --since="" --format="%s" | grep -oE '[#!][0-9]+' | sed 's/^[#!]//' | sort -n | uniq | sed 's/^/#/' +git log origin/ --since="" --format="%s" | grep -oE '[#!][0-9]+' | sort -t'#' -k1 | uniq # 6. Per-author file hotspots (who touches what) git log origin/ --since="" --format="AUTHOR:%aN" --name-only @@ -560,7 +560,7 @@ git -C log origin/$DEFAULT --since="T00:00:00" --format="%at| git -C shortlog origin/$DEFAULT --since="T00:00:00" -sn --no-merges # PR/MR numbers from commit messages (GitHub #NNN, GitLab !NNN) -git -C log origin/$DEFAULT --since="T00:00:00" --format="%s" | grep -oE '[#!][0-9]+' | sed 's/^[#!]//' | sort -n | uniq | sed 's/^/#/' +git -C log origin/$DEFAULT --since="T00:00:00" --format="%s" | grep -oE '[#!][0-9]+' | sort -t'#' -k1 | uniq ``` For repos that fail (deleted paths, network errors): skip and note "N repos could not be reached."