Token导航 LogoToken导航

Agent Skill · 研究检索

aif-ci(艾夫西)

aif-ci 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

aif-ci 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 53,999。

总安装 517周安装 22GitHub Stars 535下载 181核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:aif-ci(艾夫西)
来源仓库:https://github.com/lee-to/ai-factory
仓库路径:skills/aif-ci
安装命令:
npx skills add https://github.com/lee-to/ai-factory --skill aif-ci
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/lee-to/ai-factory --skill aif-ci

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

aif-ci 为项目生成定制化 CI 流水线,覆盖主流平台和语言。适用于 GitHub Actions 和 GitLab CI 等持续集成场景。按问题拆分工作流,实现独立触发与状态反馈。通过 GitHub 安装,需读取项目配置并选择匹配模板。生成前应确认源目录结构和测试框架设置。

aif-ci 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/aif-ci

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/lee-to/ai-factory --skill aif-ci;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

aif-ci 怎么安装?

在终端执行 npx skills add https://github.com/lee-to/ai-factory --skill aif-ci。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

aif-ci 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

aif-ci 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

aif-ci 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

aif-ci 用的人多吗?

公开数据是累计安装 517 次,近一周安装 22 次,下载 181 次,GitHub 535 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

aif-ci 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
aif-ci

艾夫西 · 本页

517535需要联网未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

CI — Pipeline Configuration Generator

Analyze a project and generate production-grade CI/CD pipeline configuration for GitHub Actions or GitLab CI. Generates separate jobs for linting, static analysis, tests, and security scanning — adapted to the project's language, framework, and existing tooling.

Three modes based on what exists:

What existsModeAction
No CI configgenerateCreate pipeline from scratch with interactive setup
CI config exists but incompleteenhanceAudit & improve, add missing jobs
Full CI configauditAudit against best practices, fix gaps

Step 0: Load Project Context

Read the project description if available:

Read .ai-factory/DESCRIPTION.md

Store project context for later steps. If absent, Step 2 detects everything.

Read .ai-factory/skill-context/aif-ci/SKILL.md — MANDATORY if the file exists.

This file contains project-specific rules accumulated by /aif-evolve from patches, codebase conventions, and tech-stack analysis. These rules are tailored to the current project.

How to apply skill-context rules:

  • Treat them as project-level overrides for this skill's general instructions
  • When a skill-context rule conflicts with a general rule written in this SKILL.md, the skill-context rule wins (more specific context takes priority — same principle as nested CLAUDE.md files)
  • When there is no conflict, apply both: general rules from SKILL.md + project rules from skill-context
  • Do NOT ignore skill-context rules even if they seem to contradict this skill's defaults — they exist because the project's experience proved the default insufficient
  • CRITICAL: skill-context rules apply to ALL outputs of this skill — including generated CI workflow files and audit reports. Templates in this skill are base structures. If a skill-context rule says "CI MUST include step X" or "workflow MUST have job Y" — you MUST augment the templates accordingly. Generating CI config that violates skill-context rules is a bug.

Enforcement: After generating any output artifact, verify it against all skill-context rules. If any rule is violated — fix the output before presenting it to the user.


Step 1: Detect Existing CI & Determine Mode

1.1 Scan for Existing CI Configuration

Glob: .github/workflows/*.yml, .github/workflows/*.yaml, .gitlab-ci.yml, .circleci/config.yml, Jenkinsfile, .travis.yml, bitbucket-pipelines.yml

Classify found files:

  • HAS_GITHUB_ACTIONS: .github/workflows/ contains YAML files
  • HAS_GITLAB_CI: .gitlab-ci.yml exists
  • HAS_OTHER_CI: CircleCI, Jenkins, Travis, or Bitbucket detected

1.2 Determine Mode

If $ARGUMENTS contains --enhance -> set MODE = "enhance" regardless.

Path A: No CI config exists (!HAS_GITHUB_ACTIONS &&!HAS_GITLAB_CI &&!HAS_OTHER_CI):

  • Set MODE = "generate"
  • Proceed to Step 1.3: Interactive Setup

Path B: CI config exists but is incomplete (e.g., has only tests, no linting):

  • Set MODE = "enhance"
  • Read all existing CI files -> store as EXISTING_CONTENT
  • Log: "Found existing CI configuration. Will analyze and add missing jobs."

Path C: Full CI setup (has linting + tests + static analysis):

  • Set MODE = "audit"
  • Read all existing CI files -> store as EXISTING_CONTENT
  • Log: "Found complete CI setup. Will audit against best practices and fix gaps."

1.3 Interactive Setup (Generate Mode Only)

Determine CI platform from $ARGUMENTS or ask:

If $ARGUMENTS contains github -> set PLATFORM = "github" If $ARGUMENTS contains gitlab -> set PLATFORM = "gitlab"

Otherwise:

AskUserQuestion: Which CI/CD platform do you use?

Options:
1. GitHub Actions (Recommended) — .github/workflows/*.yml
2. GitLab CI — .gitlab-ci.yml

Ask about optional features:

AskUserQuestion: Which additional CI features do you need?

Options (multiSelect):
1. Security scanning — Dependency audit, SAST
2. Coverage reporting — Upload test coverage
3. Matrix builds — Test across multiple language versions
4. None — Just linting, static analysis, and tests

Store choices:

  • PLATFORM: github | gitlab
  • WANT_SECURITY: boolean
  • WANT_COVERAGE: boolean
  • WANT_MATRIX: boolean

1.4 Read Existing Files (Enhance / Audit Modes)

Read all existing CI files and store as EXISTING_CONTENT:

  • All .github/workflows/*.yml files
  • .gitlab-ci.yml
  • Any included GitLab CI files (check include: directives)

Determine PLATFORM from existing files.


Step 2: Deep Project Analysis

Scan the project thoroughly — every decision in the generated pipeline depends on this profile.

2.1 Language & Runtime

FileLanguage
composer.jsonPHP
package.jsonNode.js / TypeScript
pyproject.toml / setup.py / setup.cfgPython
go.modGo
Cargo.tomlRust
pom.xmlJava (Maven)
build.gradle / build.gradle.ktsJava/Kotlin (Gradle)

2.2 Language Version

Detect the project's language version to use in CI:

LanguageVersion SourceExample
PHPcomposer.json -> require.php>=8.2 -> ['8.2', '8.3', '8.4']
Node.jspackage.json -> engines.node, .nvmrc, .node-version>=18 -> [18, 20, 22]
Pythonpyproject.toml -> requires-python, .python-version>=3.11 -> ['3.11', '3.12', '3.13']
Gogo.mod -> go directivego 1.23 -> '1.23'
RustCargo.toml -> rust-version, rust-toolchain.toml1.82 -> '1.82'
Javapom.xml -> maven.compiler.source, build.gradle -> sourceCompatibility17 -> [17, 21]

For matrix builds: use the minimum version from the project config as the lowest, and include the latest stable version. For non-matrix builds: use the latest version that satisfies the constraint.

2.3 Package Manager & Lock File

FilePackage ManagerInstall Command
composer.lockComposercomposer install --no-interaction --prefer-dist
bun.lockbBunbun install --frozen-lockfile
pnpm-lock.yamlpnpmpnpm install --frozen-lockfile
yarn.lockYarnyarn install --frozen-lockfile
package-lock.jsonnpmnpm ci
uv.lockuvuv sync --all-extras --dev
poetry.lockPoetrypoetry install
Pipfile.lockPipenvpipenv install --dev
requirements.txtpippip install -r requirements.txt
go.sumGo modulesgo mod download
Cargo.lockCargo(built-in)

Store: PACKAGE_MANAGER, LOCK_FILE, INSTALL_CMD.

2.4–2.7 Tool Detection

Detect project tools by scanning config files and dependencies. For the complete tool-to-command mapping → read references/TOOL-COMMANDS.md

Categories: Linters & Formatters (PHP-CS-Fixer, ESLint, Prettier, Biome, Ruff, golangci-lint, clippy, Checkstyle), Static Analysis (PHPStan, Psalm, Rector, mypy, tsc), Test Frameworks (PHPUnit, Pest, Jest, Vitest, pytest, go test, cargo test) with coverage flags, Security Audit (composer audit, npm audit, pip-audit, govulncheck, cargo audit).

2.8 Services Detection

Check if tests require external services (database, Redis, etc.):

Grep in tests/: postgres|mysql|redis|mongo|rabbitmq|elasticsearch
Glob: docker-compose.test.yml, docker-compose.ci.yml

If services are needed, they will be configured in the CI pipeline as service containers.

2.9 Build Output

Does the project have a build step?

LanguageHas BuildBuild Command
Node.js (with build script)Yesnpm run build / pnpm build
GoYesgo build./...
RustYescargo build --release
JavaYesmvn package -DskipTests -B / ./gradlew assemble
PHPUsually no—
PythonUsually no—

Summary

Build PROJECT_PROFILE:

  • language, language_version, language_versions (for matrix)
  • package_manager, lock_file, install_cmd
  • linters: list of {name, command, config_file}
  • static_analyzers: list of {name, command}
  • test_framework, test_cmd, coverage_cmd
  • security_tools: list of {name, command}
  • has_build_step, build_cmd
  • has_typescript: boolean (for typecheck job)
  • services_needed: list of services for CI
  • source_dir: main source directory (src/, app/, lib/)

Step 3: Read Best Practices & Templates

Read skills/ci/references/BEST-PRACTICES.md

Select templates matching the platform and language:

GitHub Actions:

LanguageTemplate
PHPtemplates/github/php.yml
Node.jstemplates/github/node.yml
Pythontemplates/github/python.yml
Gotemplates/github/go.yml
Rusttemplates/github/rust.yml
Javatemplates/github/java.yml

GitLab CI:

LanguageTemplate
PHPtemplates/gitlab/php.yml
Node.jstemplates/gitlab/node.yml
Pythontemplates/gitlab/python.yml
Gotemplates/gitlab/go.yml
Rusttemplates/gitlab/rust.yml
Javatemplates/gitlab/java.yml

Read the selected template:

Read skills/ci/templates/<platform>/<language>.yml

Step 4: Generate Pipeline (Generate Mode)

Using the PROJECT_PROFILE, best practices, and template as a base, generate a customized CI pipeline.

4.1 GitHub Actions Generation

One workflow per concern — each file has its own triggers, permissions, concurrency:

FileNameJobsWhen to create
lint.ymlLintcode-style, static-analysis, rectorLinters or SA detected
tests.ymlTeststests (+ service containers)Always
build.ymlBuildbuildhas_build_step
security.ymlSecuritydependency-audit, dependency-reviewWANT_SECURITY

Why one file per concern:

  • Each check is a separate status check in PR — instantly see what failed
  • Independent triggers — security on schedule, tests on push/PR, build only after tests
  • Independent permissions — security may need security-events: write
  • Can disable/re-run one workflow without touching others
  • Branch protection rules can require specific workflows (e.g. require tests but not security)

When to keep single file: Only for very small projects with just lint + tests (2 jobs). As soon as there are 3+ concerns — split.

Every workflow gets the same header pattern:

name: <Name>

on:
  push:
    branches: [main]
  pull_request:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

permissions:
  contents: read

Per-file job organization:

lint.yml — all code quality checks in parallel:

JobPurposeWhen to include
code-styleFormatting (CS-Fixer, Prettier, Ruff format, rustfmt)Formatter detected
lintLinting (ESLint, Ruff check, Clippy, golangci-lint)Linter detected
static-analysisType checking / SA (PHPStan, Psalm, mypy, tsc)SA tools detected
rectorRector dry-run (PHP only)Rector detected

All jobs run in parallel (no needs). If only one tool detected (e.g. Go with just golangci-lint) — single job in the file is fine.

tests.yml — test suite:

JobPurposeWhen to include
testsUnit/integration testsAlways
tests-<service>Tests requiring service containersservices_needed detected

Matrix builds (multiple language versions) only in this file.

build.yml — build verification:

JobPurposeNotes
buildVerify compilation/bundlingCan depend on external workflow via workflow_run or just run independently

security.yml — security scanning:

JobPurposeExtra triggers
dependency-auditVulnerability scanschedule: cron '0 6 * * 1' (weekly)
dependency-reviewPR dependency diffOnly on pull_request

Per-job rules:

  1. Each job gets its own setup (checkout, language setup, cache, dependency install)
  2. Use language-specific setup actions with built-in cache:

- PHP: shivammathur/setup-php@v2 with tools: parameter - Node.js: actions/setup-node@v4 with cache: parameter - Python: astral-sh/setup-uv@v5 (if uv) or actions/setup-python@v5 (if pip) - Go: actions/setup-go@v5 (auto-caches) - Rust: dtolnay/rust-toolchain@stable + Swatinem/rust-cache@v2 - Java: actions/setup-java@v4 with cache: parameter

  1. Use fail-fast: false in matrix builds
  2. Upload coverage as artifact when WANT_COVERAGE

Matrix builds (when WANT_MATRIX):

Only the tests job uses a matrix. Lint/SA jobs run on the latest version only.

tests:
  name: Tests (${{ matrix.<language>-version }})
  strategy:
    fail-fast: false
    matrix:
      <language>-version: <language_versions from PROJECT_PROFILE>

Combining linter jobs:

If the project has both a formatter AND a linter from the same ecosystem, combine them into one job:

  • PHP: php-cs-fixer check + other lint -> code-style job
  • Node.js: eslint + prettier -> lint job. Biome replaces BOTH ESLint and Prettier — if Biome is detected, use only npx biome check. in a single lint job
  • Python: ruff check + ruff format --check -> lint job (Ruff handles both)
  • Rust: cargo fmt + cargo clippy -> can be separate (fmt is fast, clippy needs compilation)

Do NOT combine lint/SA with tests — they should fail independently with clear feedback.

Use the templates in templates/github/ and templates/gitlab/ as a base for generating workflow files. Follow the header pattern (name, on, concurrency, permissions) and per-file job organization described above.

4.2 GitLab CI Generation

Output file: .gitlab-ci.yml

For GitLab-specific pipeline structure, cache strategy, report format integration, and language-specific patterns → read references/GITLAB-PATTERNS.md

Pipeline stages: install → lint → test → build → security

4.3 Service Containers

If services_needed is not empty, add service containers to the test job. For GitHub Actions and GitLab CI service container syntax → read references/SERVICE-CONTAINERS.md

Quality Checks (Before Writing)

Verify generated pipeline before writing:

Correctness:

  • Every job has checkout/setup/install steps
  • Cache is configured for the correct lock file
  • All commands match tools actually present in the project
  • Matrix versions match the project's version constraints
  • Service containers have health checks

Best practices:

  • concurrency group set (GitHub Actions)
  • permissions: contents: read set (GitHub Actions)
  • interruptible: true set (GitLab CI)
  • workflow.rules defined (GitLab CI)
  • Jobs are parallel where possible (no unnecessary needs)
  • fail-fast: false on matrix builds

No over-engineering:

  • No jobs for tools not present in the project
  • No matrix builds if the project only targets one version
  • No security scanning unless requested or tools are installed
  • No build job if the project has no build step

Step 5: Enhance / Audit Existing Pipeline

When MODE = "enhance" or MODE = "audit", analyze EXISTING_CONTENT against the project profile and best practices.

5.1 Gap Analysis

Compare existing pipeline against PROJECT_PROFILE:

Missing jobs:

  • Linter installed but no lint job in CI?
  • SA tool installed but no SA job?
  • Tests exist but no test job?
  • Security tools installed but no security job?

Configuration issues:

  • No caching configured?
  • No concurrency group (GitHub Actions)?
  • Using deprecated actions (e.g., actions-rs instead of dtolnay/rust-toolchain)?
  • Hardcoded language versions instead of variable/matrix?
  • Missing fail-fast: false on matrix?
  • Using policy: pull-push on all GitLab jobs instead of pull on non-install jobs?

Missing features:

  • No coverage reporting when coverage tools are available?
  • No JUnit/codequality report integration (GitLab)?
  • No path filtering for monorepos?
  • No workflow_dispatch trigger (GitHub Actions)?

5.2 Audit Report & Fix

For audit report format, fix flow options, and display templates → read references/AUDIT-REPORT.md

Present results as tables with ✅/❌/⚠️ per check. Categorize recommendations by severity (CRITICAL, HIGH, MEDIUM, LOW). Ask user to choose: fix all, fix critical only, or show details first.

If fixing: preserve existing structure, job names, and ordering conventions.


Step 6: Write Files

6.1 Generate Mode — Write Pipeline

GitHub Actions:

Bash: mkdir -p .github/workflows
Write .github/workflows/lint.yml        # If linters/SA detected
Write .github/workflows/tests.yml       # Always
Write .github/workflows/build.yml       # If has_build_step
Write .github/workflows/security.yml    # If WANT_SECURITY

Only create files for detected concerns. If only lint + tests — two files. If the project is trivially small (single lint + single test job) — a single ci.yml is acceptable.

GitLab CI:

Write .gitlab-ci.yml

GitLab CI uses a single .gitlab-ci.yml — stages and DAG (needs:) handle separation.

6.2 Enhance / Audit Mode — Update Existing

Edit existing files using the Edit tool. Preserve the original structure and only add/modify what's needed.


Step 7: Summary & Follow-Up

7.1 Display Summary

Display summary using format from references/AUDIT-REPORT.md (Summary Display Template section). Show platform, files created, features, and quick start commands.

7.2 Suggest Follow-Up Skills

Suggest: /aif-build-automation for CI targets in Makefile/Taskfile, /aif-dockerize for containerization.

Artifact Ownership and Config Policy

  • Primary ownership: CI pipeline artifacts such as .github/workflows/* and .gitlab-ci.yml.
  • Allowed companion updates: none by default outside CI files.
  • Config policy: config-agnostic by design. This skill relies on repository detection and explicit user choices, not config.yaml.

平台分布

Codex

37.36%
按下载量换算68

Claude

30.17%
按下载量换算55

Cursor

19.34%
按下载量换算35

Gemini CLI

9.23%
按下载量换算17

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills