From bd22b9f4b9318af534920507634138f94afbe983 Mon Sep 17 00:00:00 2001 From: Alex Holmberg Date: Sat, 28 Mar 2026 13:28:39 +0100 Subject: [PATCH] fix: rewrite skill descriptions for semantic matching, skip CI for non-Rust changes Skills: - Rewrote all 11 skill descriptions to be clean and semantic - Removed "Trigger on:" suffix pattern that doesn't work with Claude Code - Platform skill now includes "login", "sign in", "authenticate" keywords so users can say "sign in to syncable" naturally CI: - Added paths-ignore to skip Rust build/test/clippy when only skills/, installer/, docs/, or markdown files change Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/ci.yml | 60 +++++++++++++++++-- .github/workflows/release-plz.yml | 6 +- skills/commands/syncable-analyze.md | 2 +- skills/commands/syncable-dependencies.md | 2 +- skills/commands/syncable-optimize.md | 2 +- skills/commands/syncable-platform.md | 2 +- skills/commands/syncable-security.md | 2 +- skills/commands/syncable-validate.md | 2 +- skills/commands/syncable-vulnerabilities.md | 2 +- skills/workflows/syncable-deploy-pipeline.md | 2 +- skills/workflows/syncable-iac-pipeline.md | 2 +- .../workflows/syncable-project-assessment.md | 2 +- skills/workflows/syncable-security-audit.md | 2 +- 13 files changed, 72 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 664621c4..33c02237 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,8 @@ name: CI on: - push: - branches: [develop] pull_request: - branches: [develop] + branches: [main] env: CARGO_TERM_COLOR: always @@ -13,8 +11,34 @@ env: RUSTFLAGS: "" jobs: + # Detect what changed to decide which jobs to run + changes: + name: Detect Changes + runs-on: ubuntu-latest + outputs: + rust: ${{ steps.filter.outputs.rust }} + installer: ${{ steps.filter.outputs.installer }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + rust: + - 'src/**' + - 'Cargo.toml' + - 'Cargo.lock' + - 'tests/**/*.rs' + - '.github/workflows/ci.yml' + installer: + - 'installer/**' + - 'skills/**' + + # Rust build, test, lint — only when Rust code changes build: name: Build & Test + needs: changes + if: needs.changes.outputs.rust == 'true' runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -68,9 +92,37 @@ jobs: -A clippy::manual_strip -A clippy::manual_div_ceil \ -A dead_code -A unused_assignments - # Security audit + # Installer tests — only when installer or skills change + installer: + name: Installer Tests + needs: changes + if: needs.changes.outputs.installer == 'true' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install dependencies + working-directory: installer + run: npm ci + + - name: Build + working-directory: installer + run: npm run build + + - name: Run tests + working-directory: installer + run: npm test + + # Security audit — only when Rust deps change security: name: Security Audit + needs: changes + if: needs.changes.outputs.rust == 'true' runs-on: ubuntu-latest permissions: checks: write diff --git a/.github/workflows/release-plz.yml b/.github/workflows/release-plz.yml index 7d3b8047..8abd6f3b 100644 --- a/.github/workflows/release-plz.yml +++ b/.github/workflows/release-plz.yml @@ -4,6 +4,10 @@ on: push: branches: - main + paths: + - 'src/**' + - 'Cargo.toml' + - 'Cargo.lock' permissions: contents: write @@ -64,4 +68,4 @@ jobs: uses: release-plz/action@v0.5 with: command: release-pr - manifest_path: Cargo.toml \ No newline at end of file + manifest_path: Cargo.toml diff --git a/skills/commands/syncable-analyze.md b/skills/commands/syncable-analyze.md index 07389c2b..c6954581 100644 --- a/skills/commands/syncable-analyze.md +++ b/skills/commands/syncable-analyze.md @@ -1,6 +1,6 @@ --- name: syncable-analyze -description: Use when analyzing a project's tech stack, detecting languages, frameworks, runtimes, or dependencies using Syncable CLI. Trigger on: "what stack is this", "analyze this project", "detect frameworks", "what languages does this use". +description: Analyze a project's tech stack including languages, frameworks, runtimes, package managers, and dependencies using the Syncable CLI sync-ctl tool --- ## Purpose diff --git a/skills/commands/syncable-dependencies.md b/skills/commands/syncable-dependencies.md index ae643ea3..9e859bb2 100644 --- a/skills/commands/syncable-dependencies.md +++ b/skills/commands/syncable-dependencies.md @@ -1,6 +1,6 @@ --- name: syncable-dependencies -description: Use when auditing project dependencies for licenses, production/dev split, or detailed dependency analysis using Syncable CLI. Trigger on: "license audit", "list dependencies", "dependency analysis", "what licenses am I using", "show me all packages". +description: Audit project dependencies for licenses, production vs development split, and detailed package analysis using the Syncable CLI sync-ctl tool --- ## Purpose diff --git a/skills/commands/syncable-optimize.md b/skills/commands/syncable-optimize.md index 1b711d96..0bc14a53 100644 --- a/skills/commands/syncable-optimize.md +++ b/skills/commands/syncable-optimize.md @@ -1,6 +1,6 @@ --- name: syncable-optimize -description: Use when optimizing Kubernetes resource requests/limits, analyzing costs, or detecting configuration drift using Syncable CLI. Trigger on: "optimize k8s", "right-size pods", "k8s cost analysis", "resource recommendations", "over-provisioned containers". +description: Optimize Kubernetes resource requests and limits, analyze costs, detect over-provisioned containers, and right-size pods using the Syncable CLI sync-ctl tool --- ## Purpose diff --git a/skills/commands/syncable-platform.md b/skills/commands/syncable-platform.md index 045f30f9..6038f5e8 100644 --- a/skills/commands/syncable-platform.md +++ b/skills/commands/syncable-platform.md @@ -1,6 +1,6 @@ --- name: syncable-platform -description: Use when authenticating with Syncable, switching projects/orgs/environments, checking context, or deploying services through the Syncable platform. Trigger on: "syncable login", "select project", "switch project", "change project to", "use environment", "switch org", "deploy to syncable", "list environments", "what project am I on", "show current context". +description: Authenticate, login, sign in to Syncable platform. Switch organizations, projects, and environments. Deploy services to cloud providers. Check current context and manage platform settings using sync-ctl --- ## Purpose diff --git a/skills/commands/syncable-security.md b/skills/commands/syncable-security.md index f16512bc..63824610 100644 --- a/skills/commands/syncable-security.md +++ b/skills/commands/syncable-security.md @@ -1,6 +1,6 @@ --- name: syncable-security -description: Use when scanning code for secrets, credentials, API keys, or insecure code patterns using Syncable CLI. Trigger on: "scan for secrets", "find leaked credentials", "security scan", "is this code secure", "check for hardcoded passwords". +description: Scan code for leaked secrets, credentials, API keys, hardcoded passwords, and insecure code patterns using the Syncable CLI sync-ctl security scanner --- ## Purpose diff --git a/skills/commands/syncable-validate.md b/skills/commands/syncable-validate.md index 94adbabe..f2e0fa47 100644 --- a/skills/commands/syncable-validate.md +++ b/skills/commands/syncable-validate.md @@ -1,6 +1,6 @@ --- name: syncable-validate -description: Use when linting or validating Dockerfiles, Docker Compose files, Terraform configs, or Kubernetes manifests using Syncable CLI. Trigger on: "lint Dockerfile", "validate compose", "check terraform", "is my IaC correct", "lint my infrastructure files". +description: Lint and validate Dockerfiles, Docker Compose files, Kubernetes manifests, Helm charts, and Terraform configs using the Syncable CLI sync-ctl tool --- ## Purpose diff --git a/skills/commands/syncable-vulnerabilities.md b/skills/commands/syncable-vulnerabilities.md index 78a9b62b..1e04f4fe 100644 --- a/skills/commands/syncable-vulnerabilities.md +++ b/skills/commands/syncable-vulnerabilities.md @@ -1,6 +1,6 @@ --- name: syncable-vulnerabilities -description: Use when checking project dependencies for known CVEs or security vulnerabilities using Syncable CLI. Trigger on: "check for CVEs", "vulnerable dependencies", "dependency security", "are my packages safe", "npm audit", "cargo audit". +description: Check project dependencies for known CVEs and security vulnerabilities across npm, pip, cargo, and go ecosystems using the Syncable CLI sync-ctl tool --- ## Purpose diff --git a/skills/workflows/syncable-deploy-pipeline.md b/skills/workflows/syncable-deploy-pipeline.md index d2e02032..eeccef79 100644 --- a/skills/workflows/syncable-deploy-pipeline.md +++ b/skills/workflows/syncable-deploy-pipeline.md @@ -1,6 +1,6 @@ --- name: syncable-deploy-pipeline -description: Use when deploying a project through Syncable - orchestrates auth, analysis, security gating, and deployment via Syncable CLI. Trigger on: "deploy this", "push to syncable", "set up deployment", "deploy my project". +description: Deploy a project through Syncable by orchestrating authentication, project analysis, security gating, and cloud deployment using the Syncable CLI sync-ctl tool --- ## Purpose diff --git a/skills/workflows/syncable-iac-pipeline.md b/skills/workflows/syncable-iac-pipeline.md index 155e5346..a455aae8 100644 --- a/skills/workflows/syncable-iac-pipeline.md +++ b/skills/workflows/syncable-iac-pipeline.md @@ -1,6 +1,6 @@ --- name: syncable-iac-pipeline -description: Use when validating all infrastructure-as-code files in a project - combines IaC linting with Kubernetes optimization and security checks via Syncable CLI. Trigger on: "validate infrastructure", "lint all IaC", "check my k8s and docker files", "infrastructure review". +description: Validate all infrastructure-as-code files by combining Dockerfile linting, Docker Compose validation, Kubernetes manifest checking, and Helm chart analysis using the Syncable CLI sync-ctl tool --- ## Purpose diff --git a/skills/workflows/syncable-project-assessment.md b/skills/workflows/syncable-project-assessment.md index 49d6f945..23e0e343 100644 --- a/skills/workflows/syncable-project-assessment.md +++ b/skills/workflows/syncable-project-assessment.md @@ -1,6 +1,6 @@ --- name: syncable-project-assessment -description: Use when a user wants a comprehensive project health check - combines stack analysis, security scanning, vulnerability checks, and dependency auditing via Syncable CLI. Trigger on: "assess this project", "full health check", "project overview", "what's the state of this codebase", "onboard me to this repo". +description: Run a comprehensive project health check combining stack analysis, security scanning, vulnerability detection, and dependency auditing using the Syncable CLI sync-ctl tool --- ## Purpose diff --git a/skills/workflows/syncable-security-audit.md b/skills/workflows/syncable-security-audit.md index 9310857d..5a1cbfec 100644 --- a/skills/workflows/syncable-security-audit.md +++ b/skills/workflows/syncable-security-audit.md @@ -1,6 +1,6 @@ --- name: syncable-security-audit -description: Use when performing a thorough pre-deployment or compliance security review - combines deep security scan, CVE checks, and IaC validation via Syncable CLI. Trigger on: "security audit", "is this production-ready", "pre-deploy security check", "compliance review", "full security review". +description: Perform a thorough pre-deployment or compliance security review combining deep security scan, CVE checks, and IaC validation using the Syncable CLI sync-ctl tool --- ## Purpose