Token导航 LogoToken导航

Agent Skill · 研究检索

enonic-content-migration(烯基含量迁移)

用于辅助文档、README、Markdown、说明文和内容稿件的整理与改写。它适合让 Agent 提炼结构、补齐章节、统一术语、检查链接或把零散材料整理成可读文档。使用时应保留项目已有事实、命令和路径,不要把未确认的信息写成确定结论;涉及对外文案时,还需要控制语气,避免过度营销或夸大能力。

enonic-content-migration 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在研究检索类的 73,674 个 Skill 里排第 37,110。

总安装 1,794周安装 74GitHub Stars 公开资料未说明下载 586核验 2026-05-01

安装说明

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

安装方式

通过对话安装

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

请帮我安装这个 Agent Skill:enonic-content-migration(烯基含量迁移)
来源仓库:https://github.com/webmaxru/enonic-agent-skills
仓库路径:skills/enonic-content-migration
安装命令:
npx skills add https://github.com/webmaxru/enonic-agent-skills --skill enonic-content-migration
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/webmaxru/enonic-agent-skills --skill enonic-content-migration

这个 Skill 是做什么的

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

用于辅助 Enonic XP 内容迁移操作,确保数据完整性与结构兼容。适合在升级版本或跨平台迁移时使用,自动识别项目标记与目标版本。执行前需确认 build.gradle 与 gradle.properties 中的 xpVersion,避免不兼容变更。提供迁移步骤清单与风险提示,建议在测试环境验证后再应用于生产数据。

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

来源仓库内路径:skills/enonic-content-migration

上手步骤

4 步
  1. 1

    确认自己的宿主工具

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

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/webmaxru/enonic-agent-skills --skill enonic-co…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

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

  4. 4

    按最小权限试用

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

常见问题

6 条

enonic-content-migration 怎么安装?

在终端执行 npx skills add https://github.com/webmaxru/enonic-agent-skills --skill enonic-content-migr…。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

enonic-content-migration 支持哪些 AI 工具?

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

enonic-content-migration 需要什么权限?

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

enonic-content-migration 是免费的吗?

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

enonic-content-migration 用的人多吗?

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

enonic-content-migration 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

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

值得选的地方

  • 同时适配 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调用外部服务未明确有提醒
enonic-content-migration

烯基含量迁移 · 本页

1,794—需要联网未明确通过

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

SKILL.md 原文

Enonic Content Migration

Procedures

Step 1: Identify the Enonic XP project and operation scope

  1. Inspect the workspace for Enonic XP project markers: build.gradle with com.enonic.xp dependencies, src/main/resources/ directory structure, or gradle.properties with xpVersion.
  2. Execute node scripts/find-enonic-targets.mjs. to scan for Enonic XP project markers and existing content operation files when a Node runtime is available.
  3. If no Enonic XP project is detected, stop and explain that this skill targets Enonic XP content operations only.
  4. Determine the target XP version from gradle.properties or build.gradle to select the correct API surface.
  5. Classify the requested operation:

- Bulk create: Importing content from external sources (JSON, CSV, APIs). - Bulk update: Modifying existing content matching query criteria. - Bulk delete: Removing content matching query criteria. - Migration: Moving or transforming content between paths, sites, or environments. - Query/Aggregation: Retrieving and analyzing content with NoQL and aggregations. - Long-running task: Any operation processing more than ~100 items that needs progress reporting.

Step 2: Select the API layer and context

  1. Read references/migration-reference.md for query DSL patterns, batch processing strategies, and branch handling rules.
  2. Choose lib-content when the operation works with CMS content and needs publish/unpublish, content-type validation, and the content domain abstraction.
  3. Choose lib-node when the operation needs low-level node manipulation, custom repositories, or bypasses content-type validation for raw data migration.
  4. Determine the required context:

- Use lib-context to run operations in draft branch for modifications and master branch for reading published content. - Use lib-context with role:system.admin principal when the operation requires elevated permissions.

  1. If the operation processes more than ~100 items, wrap it in a task controller using lib-task. Read references/migration-reference.md section on task controllers for the pattern.

Step 3: Build the query

  1. Construct the NoQL query string or DSL expression to match the target content.
  2. For content-type filtering, use the contentTypes parameter on contentLib.query() or a type property comparison in node queries.
  3. For date-range queries, use instant() or dateTime() functions and the range() query function.
  4. For full-text search, use fulltext() with the appropriate field paths and operator (AND/OR).
  5. For path-scoped operations, use _path LIKE '/content/site-path/*' to match descendants. Note: the _path property in NoQL queries includes the internal /content/ prefix, but hit._path in results returns the content-domain path without it. Always prepend /content/ when building queries from result paths.
  6. Add filters for efficient post-query narrowing using exists, notExists, hasValue, or boolean combinations.
  7. Add aggregations when the operation needs grouped statistics (term counts, date histograms, numeric ranges, stats).
  8. Read references/examples.md for complete query and aggregation patterns.

Step 4: Implement batch processing

  1. Use paginated retrieval with start and count parameters to avoid loading all results into memory.
  2. Set count to a batch size between 50 and 200 depending on the complexity of per-item processing.
  3. Loop until result.hits.length === 0 or start >= result.total, incrementing start by the batch size each iteration.
  4. For contentLib.create() in bulk, set refresh: false to avoid per-item index refresh; call a manual refresh after the batch completes.
  5. For contentLib.modify(), use the editor callback pattern to safely transform each content item.
  6. For contentLib.publish(), batch keys into groups of 50–100 to avoid timeout on large publish sets.
  7. Track success and failure counts for reporting.
  8. Read assets/bulk-update.template.ts for the reusable batch update controller template. Note: templates use TypeScript/ESM syntax (import, const, arrow functions); adapt to CommonJS JavaScript (require(), var, function()) for XP runtime deployment as .js files.

Step 5: Handle branch operations and publishing

  1. Run content modifications in the draft branch context.
  2. After modifications complete, publish changed items to master using contentLib.publish(). On XP < 7.12, pass sourceBranch: 'draft' and targetBranch: 'master'. On XP 7.12+, these parameters are ignored (publish always goes draft→master).
  3. Set includeDependencies: false when publishing bulk-updated items to avoid unintended dependency publishing.
  4. For operations comparing draft and master state, use repo.diff() from lib-node with target: 'master' and includeChildren: true.

Step 6: Wrap long-running operations in a task controller

  1. Use taskLib.executeFunction() for inline task functions or taskLib.submitTask() for named task descriptors.
  2. Report progress using taskLib.progress({info, current, total}) at regular intervals during batch processing.
  3. Read assets/task-migration.template.ts for the reusable task controller template with progress reporting.
  4. Check for existing running instances with taskLib.isRunning() before starting a duplicate operation.
  5. Use taskLib.sleep() for throttling between batches if the operation generates excessive load.
  6. For named tasks on XP 7.13+, the run function receives taskId as its second argument: exports.run = function(params, taskId) {...}.

Step 7: Validate and report results

  1. After the operation completes, log a summary: items processed, items created/updated/deleted, items failed, total duration.
  2. For migration operations, verify target content exists by querying the destination path.
  3. For publish operations, verify published state by querying the master branch.
  4. If errors occurred, collect error details (content path, error message) into a structured report.

Error Handling

  • If scripts/find-enonic-targets.mjs finds no Enonic XP project, explain that the workspace does not contain an Enonic XP application.
  • If a content operation fails with contentAlreadyExists, check whether the target exists and decide whether to update or skip. Read references/troubleshooting.md for duplicate handling patterns.
  • If a query returns zero results, verify the query syntax, branch context, and property paths. NoQL string-format mismatches (e.g. missing instant() wrapper for date comparisons) are a common cause.
  • If a task fails or times out, check taskLib.get(taskId) for state and progress details. Read references/troubleshooting.md for timeout and permission issues.
  • If an AccessDeniedException occurs on publish or modify, ensure the context includes role:system.admin principals via lib-context.

平台分布

Codex

34.98%
按下载量换算205

Claude

31.49%
按下载量换算185

Cursor

19.5%
按下载量换算114

Gemini CLI

9.2%
按下载量换算54

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

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

安装前确认

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

继续浏览同类 Skills