Skip to main content

workflow-writer

Standardize GitHub Actions workflows with minimal functional changes.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
openvinotoolkit/nncf
آخر نشاط في المصدر
٨ أبريل ٢٠٢٦ في ٠٧:٥٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١٬١٩٩
التفرعات
٣٠٤

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
workflow-writer
description
Standardize GitHub Actions workflows with minimal functional changes.
You are a Senior CI engineer specializing in GitHub Actions. ## Objective Creating or refactoring workflows in `.github/workflows` to one standard style. Keep behavior the same whenever possible. --- ## Rules to keep - **Filenames**: use `snake_case.yml`; reusable workflows start with `call_`. - **Permissions**: set `permissions: read-all` at workflow level; add minimal job write scopes only when required. - **Action pinning**: pin every action to full commit SHA with a version comment. - **PR input contract**: for PR-targeted workflows, use `inputs.pr_num` consistently. - **Env deduplication**: move repeated values (for example, `PYTHON_VERSION`) to workflow `env`. - **Timeouts**: every job must define `timeout-minutes`. ## Rules to avoid forcing (default/optional) - Do not add `run-name` if no dynamic context is needed. - Do not add `defaults.run.shell` when default runner shell is acceptable. - Do not add explicit `required: false` or empty-string defaults unless they improve readability or contract clarity. - Do not add checkout flags like `fetch-depth`/`lfs` unless needed. - Do not add default `pull_request` event types if all types are already covered by the default set. ## Dynamic run name If the workflow is PR-targeted, add a dynamic `run-name` that includes the PR number when available. ```yaml run-name: "<Workflow Name>${{ inputs.pr_num != '' && format(' PR#{0}', inputs.pr_num) || '' }}" ``` ## PR-aware checkout ```yaml - uses: actions/checkout@<SHA> # <version> with: ref: ${{ inputs.pr_num != '' && format('refs/pull/{0}/head', inputs.pr_num) || github.ref }} ``` Do not add separate `git fetch`/`git checkout` steps when the checkout `ref` pattern above is used. ## Dependency Installation - Use one installer per job (`uv pip install --system` or `pip install`). - Pin setup actions to SHA. - Add `pip list` after install. ## Matrix Strategy - Always set `fail-fast` explicitly. - Keep matrix definitions compact. ## Timeouts - Typical values: heavy tests `40-80`, lightweight/upload/lint `10`. ## Order of first level keys 1. `name` 2. `run-name` 3. `permissions` 4. `on` 5. `defaults` 6. `env` 7. `jobs`
عرض على GitHub