[object Object]

← back to Cli Printing Press

fix(ci): fold skill docs into lint gate (#1226)

7010c102c0e52860cad09dd745065b16919aedb2 · 2026-05-12 13:51:59 -0700 · Trevin Chow

* fix(ci): fold skill docs into lint gate

* fix(ci): keep skill docs compatibility check

Files touched

Diff

commit 7010c102c0e52860cad09dd745065b16919aedb2
Author: Trevin Chow <trevin@trevinchow.com>
Date:   Tue May 12 13:51:59 2026 -0700

    fix(ci): fold skill docs into lint gate (#1226)
    
    * fix(ci): fold skill docs into lint gate
    
    * fix(ci): keep skill docs compatibility check
---
 .github/workflows/lint.yml | 61 ++++++++++++++++++----------------------------
 .mergify.yml               |  2 --
 2 files changed, 24 insertions(+), 39 deletions(-)

diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index f86ce08a..82842608 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -20,7 +20,7 @@ jobs:
         with:
           fetch-depth: 0
 
-      - name: Check whether Go lint is needed
+      - name: Check whether lint validations are needed
         id: changes
         shell: bash
         run: |
@@ -33,22 +33,42 @@ jobs:
           printf '  %s\n' "${changed[@]}"
 
           needs_lint=false
+          needs_skill_docs=false
           for file in "${changed[@]}"; do
             case "$file" in
               *.go|go.mod|go.sum|.golangci.yml|.github/workflows/lint.yml)
                 needs_lint=true
-                break
                 ;;
             esac
+
+            case "$file" in
+              skills/*|docs/SKILLS.md|.github/scripts/validate-skill-docs.sh|.github/workflows/lint.yml)
+                needs_skill_docs=true
+                ;;
+            esac
+
+            if [[ "$needs_lint" == "true" && "$needs_skill_docs" == "true" ]]; then
+              break
+            fi
           done
 
           echo "needs_lint=$needs_lint" >> "$GITHUB_OUTPUT"
+          echo "needs_skill_docs=$needs_skill_docs" >> "$GITHUB_OUTPUT"
 
       - name: Skip Go lint
         if: steps.changes.outputs.needs_lint != 'true'
         run: |
           echo "Skipping golangci-lint: no Go, module, lint config, or lint workflow files changed."
 
+      - name: Skip skill docs validation
+        if: steps.changes.outputs.needs_skill_docs != 'true'
+        run: |
+          echo "Skipping skill docs validation: no skill docs, skill guidance, or skill-doc workflow files changed."
+
+      - name: Validate skill docs
+        if: steps.changes.outputs.needs_skill_docs == 'true'
+        run: bash .github/scripts/validate-skill-docs.sh
+
       # setup-go's bundled cache restores both GOMODCACHE and GOCACHE as one
       # ~1GB tarball; on this repo that adds ~75s of extract time per job.
       # The lint job sees little payoff from a warm GOCACHE (golangci-lint
@@ -343,39 +363,6 @@ jobs:
     runs-on: ubuntu-latest
     timeout-minutes: 5
     steps:
-      - uses: actions/checkout@v6
-        with:
-          fetch-depth: 0
-
-      - name: Check whether skill docs validation is needed
-        id: changes
-        shell: bash
+      - name: Compatibility check
         run: |
-          set -euo pipefail
-
-          git fetch --no-tags --prune origin "${{ github.base_ref }}"
-          mapfile -t changed < <(git diff --name-only --diff-filter=ACMR "origin/${{ github.base_ref }}...HEAD")
-
-          echo "Changed files:"
-          printf '  %s\n' "${changed[@]}"
-
-          needs_skill_docs=false
-          for file in "${changed[@]}"; do
-            case "$file" in
-              skills/*|docs/SKILLS.md|.github/scripts/validate-skill-docs.sh|.github/workflows/lint.yml)
-                needs_skill_docs=true
-                break
-                ;;
-            esac
-          done
-
-          echo "needs_skill_docs=$needs_skill_docs" >> "$GITHUB_OUTPUT"
-
-      - name: Skip skill docs validation
-        if: steps.changes.outputs.needs_skill_docs != 'true'
-        run: |
-          echo "Skipping skill docs validation: no skill docs, skill guidance, or skill-doc workflow files changed."
-
-      - name: Validate skill docs
-        if: steps.changes.outputs.needs_skill_docs == 'true'
-        run: bash .github/scripts/validate-skill-docs.sh
+          echo "Skill docs validation runs inside go-lint."
diff --git a/.mergify.yml b/.mergify.yml
index 878c30fb..25b4514c 100644
--- a/.mergify.yml
+++ b/.mergify.yml
@@ -8,7 +8,6 @@ queue_rules:
       - check-success = go-lint
       - check-success = golden
       - check-success = pr-title
-      - check-success = skill-docs
       - check-success = test
     merge_method: squash
     update_method: rebase
@@ -39,5 +38,4 @@ merge_protections:
       - check-success = go-lint
       - check-success = golden
       - check-success = pr-title
-      - check-success = skill-docs
       - check-success = test

← 09d72e68 fix(cli): prioritize bearer + apply root-security filter in  ·  back to Cli Printing Press  ·  fix(cli): guard nil Phases in LoadState to prevent lock prom 28e2fa1b →