Token导航 LogoToken导航

Agent Skill · 研究检索

rewrite-yaml(rewrite YAML 搜索)

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

rewrite-yaml 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为只读;许可证为 MIT,暂无第三方扫描结果,按安装量在研究检索类的 73,675 个 Skill 里排第 57,864。

总安装 423周安装 18GitHub Stars 公开资料未说明下载 148核验 2026-05-01

安装说明

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

安装方式

通过对话安装

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

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

命令行安装

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

AgentSkills.tonpx skills
npx skills add sjungling/claude-plugins --skill "rewrite-yaml"

这个 Skill 是做什么的

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

rewrite-yaml 用于查找、检索和筛选相关信息,支持 YAML 配置文件处理。适用于 Codex、Claude、Cursor、Gemini CLI 中根据任务需求定位配置项。通过 npx 命令从 sjungling/claude-plugins 仓库安装并使用该技能。

安装前需验证仓库路径和技能名称,注意潜在的文件读写权限风险。建议参考原始 README 了解 YAML 结构要求和改写规则限制。

来源仓库内路径:skills/rewrite-yaml

上手步骤

4 步
  1. 1

    确认自己的宿主工具

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

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add sjungling/claude-plugins --skill "rewrite-yaml";命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

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

  4. 4

    按最小权限试用

    它标注为只读,先用只读任务试一次,确认行为符合预期再扩大使用范围。

常见问题

6 条

rewrite-yaml 怎么安装?

在终端执行 npx skills add sjungling/claude-plugins --skill "rewrite-yaml"。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

rewrite-yaml 支持哪些 AI 工具?

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

rewrite-yaml 需要什么权限?

权限级别是只读。该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

rewrite-yaml 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

rewrite-yaml 用的人多吗?

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

rewrite-yaml 安全吗?

没有查到第三方扫描结果,安全性无法从公开资料判断,安装前请自行审查源码、依赖和命令行为。

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

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 许可证明确为 MIT,商用和分发边界好判断。
  • 标注为只读权限,试用阶段不容易误改本地文件。

先想清楚的地方

  • 没有第三方扫描结果,安全性只能靠自己读源码判断。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 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调用外部服务未明确有提醒
rewrite-yaml

rewrite YAML 搜索 · 本页

423—只读MIT未收录

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

SKILL.md 原文

name
rewrite-yaml
description
Expert in test-first development of production-quality OpenRewrite recipes for YAML manipulation using LST structure, visitor patterns, and JsonPath matching. Automatically activates when working with OpenRewrite recipe files or Java files in src/main/java/**/rewrite/** directories.

Writing OpenRewrite YAML Recipes

Overview

Create production-quality OpenRewrite recipes for YAML manipulation using test-first development.

Core principle: Write tests first (RED), implement minimally (GREEN), apply OpenRewrite idioms (REFACTOR).

When to Use

  • User asks to create/modify OpenRewrite recipes for YAML
  • Need to manipulate YAML files (GitHub Actions, K8s manifests, CI configs, generic YAML)
  • Building search or transformation recipes for YAML structures

When NOT to Use This Skill

Do not use this skill for:

  • General YAML editing (use standard Edit tools)
  • Non-OpenRewrite transformation tools
  • Java versions above 8 (skill specializes in Java 8 compatibility)
  • Generic code refactoring outside OpenRewrite ecosystem

Critical Constraints

JAVA 8 COMPATIBILITY ONLY: Use traditional if-else, switch statements, explicit casting. NO switch expressions, pattern matching, var, text blocks, or Java 9+ features.

LICENSE HEADERS: Always check for {repository_root}/gradle/licenseHeader.txt when creating new recipe files. If this file exists, include its contents as the license header at the top of the generated Java recipe file. Remember to substitute ${year} with the current year (2025 or later as appropriate).

The Workflow

Phase 1: RED - Write Failing Tests

Write test cases with before/after YAML examples using OpenRewrite's testing framework.

Phase 2: Architecture Decision

Choose declarative (YAML composition) vs imperative (Java Visitor) approach.

Phase 3: GREEN - Minimal Implementation

Implement just enough to make tests pass.

Phase 4: REFACTOR - Apply OpenRewrite Idioms

Improve recipe using traits, composition, and conventions.

Phase 5: Documentation

Add displayName, description (with markdown), and usage examples.

Phase 1: RED - Write Failing Tests

Test Structure

Use OpenRewrite's testing framework with before/after YAML. For detailed test patterns and examples, see ./references/testing-patterns.md.

Checklist

  • [ ] Write happy path test (simplest transformation)
  • [ ] Include edge cases (empty files, missing keys, null values)
  • [ ] Test no-op scenarios (recipe shouldn't change unrelated YAML)
  • [ ] Consider multi-document YAML if relevant
  • [ ] Include real-world examples if domain is known

Verification

Run tests to confirm RED state - tests must fail initially.

Key principle: Start with simplest possible before/after. Add complexity incrementally.

Phase 2: Architecture Decision - Declarative vs Imperative

Decision Framework

Start with: Can this be done by composing existing recipes?

  • YES → Use declarative YAML recipe
  • NO → Need imperative Java recipe with Visitor

Declarative Recipe (YAML Composition)

Create YAML file in src/main/resources/META-INF/rewrite/:

---
type: specs.openrewrite.org/v1beta/recipe
name: com.example.MyComposedRecipe
displayName: My composed recipe
description: Composes existing recipes
recipeList:
  - org.openrewrite.yaml.search.FindKey:
      keyPath: $.some.path
  - org.openrewrite.yaml.ChangeValue:
      keyPath: $.some.path
      value: newValue

When to use declarative:

  • Simple transformations using existing recipes
  • Searching for patterns
  • Standard modifications (change values, delete keys)
  • Composing multiple existing recipes

Common declarative recipes:

  • org.openrewrite.yaml.search.FindKey, FindValue - searching
  • org.openrewrite.yaml.ChangeKey, ChangeValue, DeleteKey - modifications
  • org.openrewrite.yaml.MergeYaml, CopyValue - additions

Imperative Recipe (Java Visitor)

When to use imperative:

  • Complex logic or conditional transformations
  • Need to traverse YAML LST structure
  • Creating new YAML structures dynamically
  • Custom matching beyond JsonPath capabilities

Key principle: Always try declarative first. Only go imperative when you hit limitations.

Phase 3: GREEN - Minimal Implementation

For Declarative Recipes

  1. Create YAML file in src/main/resources/META-INF/rewrite/
  2. Compose existing org.openrewrite.yaml.* recipes
  3. Run tests to verify GREEN state

For common recipe patterns, see ./references/recipe-patterns.md.

For Imperative Recipes (Java Visitor)

Extend YamlIsoVisitor<ExecutionContext> (when not changing tree structure) or YamlVisitor<ExecutionContext> (when structure may change).

For complete recipe templates and examples, see ./references/recipe-template.java.

Automation: Use ./scripts/init_recipe.py <RecipeName> to generate recipe boilerplate (class, test file, YAML declarative option).

Verification

Run tests to achieve GREEN state - all tests must pass with formatting preserved.

Phase 4: REFACTOR - Apply OpenRewrite Idioms

Checklist for Idiomatic Recipes

1. Trait Usage

  • [ ] Can this recipe implement an existing trait?
  • [ ] Should a new trait be created for reusable matching logic?
  • [ ] Separate "what to find" (trait) from "what to do" (recipe)

2. Recipe Composition

  • [ ] Can parts be extracted into smaller, composable recipes?
  • [ ] Are there opportunities for configurability (parameters)?
  • [ ] Could this be split into search recipe + modification recipe?

3. OpenRewrite Conventions

  • [ ] Recipe has clear displayName and description (both support markdown)
  • [ ] Parameters use @Option annotations with descriptions
  • [ ] Recipe class is Java 8 compatible (run ./scripts/validate_java8.py src/ to check)
  • [ ] Properly handles null values and missing elements
  • [ ] Preserves formatting and comments where possible

4. Performance Considerations

  • [ ] Minimize LST traversals (don't visit more than necessary)
  • [ ] Use preconditions to skip files that won't match
  • [ ] Return original object if no changes made (identity check)

Verification

  • [ ] All tests still pass after refactoring
  • [ ] Recipe follows OpenRewrite naming conventions
  • [ ] Code is cleaner and more maintainable

Phase 5: Documentation

Documentation Requirements

Recipe metadata (supports markdown):

  • displayName: User-friendly name with markdown formatting
  • description: Detailed explanation with code examples, lists, links
  • @Option descriptions: Clear explanations with inline code examples

Example with markdown:

@Override
public String getDisplayName() {
    return "Update GitHub Actions to `actions/checkout@v4`";
}

@Override
public String getDescription() {
    return "Updates all uses of `actions/checkout@v2` and `actions/checkout@v3` to `actions/checkout@v4`.\n\n" +
           "**Before:**\n```yaml\n- uses: actions/checkout@v2\n```\n\n" +
           "**After:**\n```yaml\n- uses: actions/checkout@v4\n```";
}

Usage examples:

  • Add Javadoc with common use cases
  • Show before/after transformations
  • Document parameter effects

Technical Reference

YAML LST Structure

Understanding the YAML LST hierarchy is essential. For detailed structure documentation, see ./references/yaml-lst-reference.md.

Key concepts:

  • Yaml.Documents → Yaml.Document → Yaml.Mapping → Yaml.Mapping.Entry
  • Yaml.Sequence → Yaml.Sequence.Entry
  • Yaml.Scalar (primitive values)

Essential Patterns

For complete recipe templates and patterns, see:

  • ./references/recipe-template.java - Complete recipe structure with annotations
  • ./references/recipe-patterns.md - Search, replacement, and modification patterns
  • ./references/jsonpath-patterns.md - Common JsonPath patterns for GitHub Actions, K8s, and generic YAML

Quick Reference

Key matching:

if ("targetKey".equals(entry.getKey().getValue())) { /* match */ }

Safe value access:

String value = entry.getValue() instanceof Yaml.Scalar ?
    ((Yaml.Scalar) entry.getValue()).getValue() : null;

JsonPath matching:

JsonPathMatcher matcher = new JsonPathMatcher("$.jobs.*.steps[*].uses");
if (matcher.matches(getCursor())) { /* process */ }

For more JsonPath patterns, search ./references/jsonpath-patterns.md for your use case.

Recipe Development Rules

  1. Always call super methods: return super.visitMappingEntry(entry, ctx);
  2. Return modified copies - never mutate LST elements directly
  3. Use withX() methods for all modifications
  4. Handle null cases with conditional expressions
  5. Preserve formatting - LST methods maintain it automatically
  6. Java 8 only - no modern Java features

OpenRewrite Traits (Advanced)

For complex recipes that benefit from higher-level semantic abstractions, OpenRewrite Traits provide domain-specific logic by wrapping LST elements.

For detailed information about Traits, refer to the companion guide: ./references/openrewrite-traits-guide.md.

Quick Traits Overview:

  • Traits implement Trait<T extends Tree> interface
  • Include a nested Matcher class extending SimpleTraitMatcher<T>
  • Use matcher.asVisitor() to convert to TreeVisitor in recipes
  • Provide semantic methods like getActionRef() instead of raw LST navigation

Example using Traits:

@Override
public TreeVisitor<?, ExecutionContext> getVisitor() {
    return new ActionStep.Matcher().asVisitor((step, ctx) -> {
        String ref = step.getActionRef();
        if (ref != null && ref.contains("@v2")) {
            return step.withActionRef(ref.replace("@v2", "@v3")).getTree();
        }
        return step.getTree();
    });
}

For complete trait implementation patterns, matcher API details, and advanced examples, consult ./references/openrewrite-traits-guide.md.

Final Validation

Production-Ready Checklist

  • [ ] All tests pass (GREEN state maintained)
  • [ ] Recipe follows OpenRewrite naming conventions (com.yourorg.RecipeName)
  • [ ] No hardcoded values that should be parameters
  • [ ] Recipe handles edge cases gracefully (no NPEs)
  • [ ] Code is Java 8 compatible (verify with ./scripts/validate_java8.py)
  • [ ] Formatting/comments preserved in YAML output
  • [ ] Documentation is clear and includes examples
  • [ ] Recipe could be contributed to OpenRewrite or org recipe library
  • [ ] License header included if gradle/licenseHeader.txt exists (use ./scripts/add_license_header.sh)

Success Criteria

Recipe is production-ready when:

  • Tests comprehensively cover happy path and edge cases
  • Implementation follows OpenRewrite idioms (traits, composition)
  • Documentation enables users to understand and use the recipe
  • Code quality meets standards for upstream contribution

Recommended Approach

Follow this workflow when creating OpenRewrite recipes:

  1. Phase 1 (RED) - Write failing tests with before/after YAML
  2. Phase 2 (DECIDE) - Choose declarative vs imperative approach
  3. Phase 3 (GREEN) - Implement minimal working solution
  4. Phase 4 (REFACTOR) - Apply OpenRewrite idioms (traits, composition)
  5. Phase 5 (DOCUMENT) - Add markdown documentation and examples
  6. Validate - Confirm production readiness with checklist

Always provide complete, working recipes with proper annotations, error handling, and clear comments explaining the logic.

Remember

  • Always start with tests (RED)
  • Try declarative before imperative
  • Apply idioms during REFACTOR, not GREEN
  • Document with markdown for clarity
  • Validate production-readiness before completion

平台分布

Claude Code

25.19%
按下载量换算37

windsurf

23.43%
按下载量换算35

trae

17.68%
按下载量换算26

OpenCode

11.95%
按下载量换算18

Codex

6.78%
按下载量换算10

Antigravity

3.05%
按下载量换算5

安全审计

暂无安全审计结果可展示。

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

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

继续浏览同类 Skills