{"id":84998,"plugin_id":"plugin_asdk_app_6aec576a7d8c8191ab1092de040af13a","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-06T18:22:10.807Z","digest":"33075a70b008afd154e889dfd2305722c6be534aa740972a577d8497c6b7be84","against":null,"payload":{"description":"Helps understand and write EAS workflow YAML files for Expo projects. Use this skill when the user asks about CI/CD or workflows in an Expo or EAS context, mentions .eas/workflows/, or wants help with EAS build pipelines or deployment automation.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":331},{"relative_path":"scripts/fetch.js","size_in_bytes":2979},{"relative_path":"scripts/package.json","size_in_bytes":103}],"name":"eas-workflows","skill_md_contents":"---\nname: eas-workflows\ndescription: Helps understand and write EAS workflow YAML files for Expo projects. Use this skill when the user asks about CI/CD or workflows in an Expo or EAS context, mentions .eas/workflows/, or wants help with EAS build pipelines or deployment automation.\nallowed-tools: \"Read,Write,Bash(node:*),Bash(npx *eas-cli@*)\"\nlicense: MIT License\n---\n\n# EAS Workflows Skill\n\n> **EAS service - costs apply.** EAS Workflows run on Expo Application Services, a paid product with free-tier limits. Each workflow job consumes your plan's build/compute minutes, and jobs that build or submit also need paid Apple Developer and Google Play accounts. Review https://expo.dev/pricing before triggering runs.\n\nHelp developers write and edit EAS CI/CD workflow YAML files.\n\n## Reference Documentation\n\nFetch these resources before generating or editing workflow files, or when answering syntax questions. First resolve this skill's directory, then use the fetch script in its `scripts/` directory. It is implemented using Node.js and caches responses using ETags for efficiency:\n\n```bash\n# Fetch resources\nnode <skill-dir>/scripts/fetch.js <url>\n```\n\n1. **JSON Schema** — https://api.expo.dev/v2/workflows/schema\n   - It is NECESSARY to fetch this schema\n   - Source of truth for the workflow YAML structure; EAS CLI remains the authoritative final validator\n   - All job types and their required/optional parameters\n   - Trigger types and configurations\n   - Runner types, VM images, and all enums\n\n2. **Syntax Documentation** — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx\n   - Overview of workflow YAML syntax\n   - Examples and English explanations\n   - Expression syntax and contexts\n\n3. **Pre-packaged Jobs** — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/pre-packaged-jobs.mdx\n   - Documentation for supported pre-packaged job types\n   - Job-specific parameters and outputs\n\nDo not rely on memorized values; these resources evolve as new features are added.\n\n## Workflow File Location\n\nWorkflows live in `.eas/workflows/*.yml` (or `.yaml`). Each file must be 16 KiB or smaller.\n\n## Top-Level Structure\n\nA workflow file has these top-level keys:\n\n- `name` — Display name for the workflow\n- `on` — Triggers that start the workflow (at least one required)\n- `jobs` — Job definitions (required)\n- `defaults` — Shared defaults for all jobs\n- `concurrency` — Control parallel workflow runs\n\nConsult the schema for the full specification of each section.\n\n## Expressions\n\nUse `${{ }}` syntax for dynamic values. The schema defines available contexts:\n\n- `github.*` — GitHub repository and event information\n- `inputs.*` — Values from `workflow_dispatch` inputs\n- `needs.*` — Outputs and status from dependent jobs\n- `jobs.*` — Job outputs (alternative syntax)\n- `steps.*` — Step outputs within custom jobs\n- `workflow.*` — Workflow metadata\n\n## Generating Workflows\n\nWhen generating or editing workflows:\n\n1. Fetch the schema to get current job types, parameters, and allowed values\n2. Validate that required fields are present for each job type\n3. Verify job references in `needs` and `after` exist in the workflow\n4. Check that expressions reference valid contexts and outputs\n5. Ensure `if` conditions respect the schema's length constraints\n\n## Validation\n\nAfter generating or editing a workflow file, validate it with EAS CLI from the Expo project root:\n\n```sh\nnpx --yes eas-cli@27.4.1 workflow:validate .eas/workflows/<workflow.yml> --non-interactive\n```\n\nRun the command separately for each changed workflow file. It requires a logged-in EAS CLI session and a linked Expo project. Unlike schema-only validation, it also checks build profile references against the project's `eas.json` and performs EAS server-side validation. Fix every reported error and rerun the command until it prints `Workflow configuration YAML is valid.` Do not replace this command with a local YAML or JSON Schema validator.\n\n## Answering Questions\n\nWhen users ask about available options (job types, triggers, runner types, etc.), fetch the schema and derive the answer from it rather than relying on potentially outdated information.\n\n## Submitting Feedback\nWhen the user requests feedback submission, use:\n```bash\nnpx --yes @expo/agent-cli@1.0.23 feedback --category skills --subject \"eas-workflows\" \"<actionable feedback>\"\n```\nInclude only relevant technical details; keep credentials, private data, and conversation contents out of feedback.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}