egg
- Repo stars 18,996
- License MIT
- Author updated Live
- Author repo egg
- Domain
- AI
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 94 / 100 · audit passed
- Author / version / license
- @eggjs · MIT
- Token usage
- Lean
- Setup complexity
- Plug-and-play
- External API key
- Not required
- Operating systems
- Unspecified (assume cross-platform)
- Runtime requirements
- No special requirements
- Permissions
-
- Read-only
- Write / modify
- Network behavior
- Local-only
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: egg
description: 本技能帮助根据用户意图和任务类型确定使用哪个专用的 EGG 技能。EGG 文档组织为两个主要领域: 询问:用户是在询问构建块/框架内部 OR 实现特定接口? 如果用户的意图可能是核心 OR 控…
category: ai
runtime: no special runtime
---
# egg output preview
## PART A: Task fit
- Use case: 本技能帮助根据用户意图和任务类型确定使用哪个专用的 EGG 技能。EGG 文档组织为两个主要领域: 询问:用户是在询问构建块/框架内部 OR 实现特定接口? 如果用户的意图可能是核心 OR 控制器(例如,"如何实现一个需要跨模块访问的服务?"): 理由:即使服务将在控制器中使用,关于跨模块访问(AccessLevel)的基本问题是一个核心概念。一旦理解了核心结构,用户就可以在控制器中应用它。 runs entirely locally. Works with Claude Code, Cursor, Cline and 23 more..
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “概述 / 技能选择逻辑 / 使用 egg-core skill 当用户询问:” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “本技能帮助根据用户意图和任务类型确定使用哪个专用的 EGG 技能。EGG 文档组织为两个主要领域: 询问:用户是在询问构建块/框架内部 OR 实现特定接口? 如果用户的意图可能是核心 OR 控制器(例如,"如何实现一个需要跨模块访问的服务?"): 理由:即使服务将在控制器中使用,关于跨模块访问(AccessLevel)的基本问题是一个核心概念。一旦理解了核心结构,用户就可以在控制器中应用它。 runs entirely locally. Works with Claude Code, Cursor, Cline and 23 more.”.
- **02** When the source has headings, the agent prioritizes “概述 / 技能选择逻辑 / 使用 egg-core skill 当用户询问:” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, write/modify files; mostly runs locally; usually needs no extra API key.
## Running Rules
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source does not require a stable slash command. After installation, invoke the skill by name and describe the task.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, write/modify files.
Start with a small task and check whether the result follows “概述 / 技能选择逻辑 / 使用 egg-core skill 当用户询问:”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: egg
description: 本技能帮助根据用户意图和任务类型确定使用哪个专用的 EGG 技能。EGG 文档组织为两个主要领域: 询问:用户是在询问构建块/框架内部 OR 实现特定接口? 如果用户的意图可能是核心 OR 控…
category: ai
source: eggjs/egg
---
# egg
## When to use
- 本技能帮助根据用户意图和任务类型确定使用哪个专用的 EGG 技能。EGG 文档组织为两个主要领域: 询问:用户是在询问构建块/框架内部 OR 实现特定接口? 如果用户的意图可能是核心 OR 控制器(例如,"如何实现一个需要跨模块访问的服…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “概述 / 技能选择逻辑 / 使用 egg-core skill 当用户询问:” and keep inference separate from source facts.
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "egg" {
input -> user goal + target files + boundaries + acceptance criteria
context -> 概述 / 技能选择逻辑 / 使用 egg-core skill 当用户询问:
rules -> SKILL.md triggers / order / output contract
runtime -> no special runtime | read files, write/modify files | mostly runs locally
guardrails -> usually needs no extra API key + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} EGG 决策指南
概述
本技能帮助根据用户意图和任务类型确定使用哪个专用的 EGG 技能。EGG 文档组织为两个主要领域:
- 核心概念(
egg-coreskill):模块架构、依赖注入、对象生命周期、EventBus 事件总线、AOP 切面编程 - 控制器(
egg-controllerskill):用于 API 端点的各种协议特定控制器 - 单元测试(
egg-unittestskill):HTTP 接口测试、Service/DI 对象测试、Mock 模拟、BackgroundTask 和 EventBus 测试
技能选择逻辑
使用 egg-core skill 当用户询问:
用户询问关于:
- 模块架构和组织
@SingletonProtovs@ContextProto的使用- 使用
@Inject的依赖注入 - 对象生命周期和实例化
- 模块之间的访问控制(
AccessLevel) - 模块配置(
module.yml、package.json) - 使用限定符解决命名冲突
- 请求返回后执行异步任务(BackgroundTaskHelper)
- 事件驱动架构(EventBus、@Event)
- AOP 切面编程(@Advice、@Pointcut、@Crosscut)
触发关键词:
- module、workspace、modules
- singleton、单例、@SingletonProto
- context、request context、@ContextProto
- inject、injection、dependency injection、@Inject
- prototype、lifecycle、实例化
- background task、异步任务、后台任务、BackgroundTaskHelper
- eventbus、event bus、事件总线、事件驱动、@Event、emit、发布订阅、解耦
- aop、切面、aspect、advice、pointcut、crosscut、拦截器、横切关注点
- access level、private、public、@ModuleQualifier
- configuration、module config
示例查询:
- "如何在 EGG 中创建模块?"
- "SingletonProto 和 ContextProto 有什么区别?"
- "如何注入服务?"
- "如何访问其他模块的对象?"
- "EGG 中的 AccessLevel 是什么?"
- "如何用 EventBus 解耦异步任务?"
- "EventBus 和 BackgroundTaskHelper 有什么区别?"
- "如何用 AOP 给所有 Service 加日志?"
使用 egg-controller skill 当用户询问:
用户询问关于:
- 创建 API 端点或接口
- 实现特定协议处理器(HTTP、MCP 等)
- 连接到外部系统或客户端
- 处理传入的请求/响应
- 控制器级别的装饰器和模式
- 参数校验(Ajv + TypeBox)
- 控制器中间件(Middleware,函数式或 AOP 写法)
触发关键词:
- controller、控制器
- HTTP、API、REST、endpoint
- MCP、LLM、AI、tool
- schedule、timer、cron、scheduled、定时
- SSE、streaming、server-sent events
- validate、校验、参数校验、ajv、typebox、schema
- middleware、中间件、拦截器、洋葱模型、@Middleware
示例查询:
- "如何创建 HTTP controller?"
- "如何实现 MCP 接口?"
- "怎么实现定时任务?"
- "帮我给接口加上参数校验"
- "如何给控制器加中间件?"
- "怎么写一个鉴权中间件?"
使用 egg-unittest skill 当用户询问:
用户询问关于:
- 编写单元测试或集成测试
- 使用 @eggjs/mock 进行测试
- 测试 HTTP 接口(app.httpRequest)
- 测试 Service/DI 对象
- Mock 数据或依赖
- 测试 BackgroundTaskHelper 或 EventBus
触发关键词:
- test、测试、单测、单元测试、unittest、unit test
- mock、mm、@eggjs/mock、mockCsrf、mockHttpclient、mockSession、mockContext
- httpRequest、supertest
- getEggObject、mockModuleContextScope
- eventWaiter、BackgroundTaskHelper 测试
- vitest、describe、it、beforeAll
示例查询:
- "如何写单元测试?"
- "如何测试 HTTP 接口?"
- "如何 mock 一个 Service?"
- "POST 请求测试报 CSRF 错误"
- "如何测试 ContextProto 的 Service?"
- "怎么测试后台任务是否执行完成?"
- "怎么测试 EventBus 事件是否被正确处理?"
决策框架
步骤 1:识别意图类型
询问:用户是在询问构建块/框架内部 OR 实现特定接口?
构建块/框架内部 → 使用 egg-core skill
- 理解 EGG 如何工作
- 组织代码结构
- 管理对象生命周期
- 设置模块
实现特定接口 → 使用 egg-controller skill
- 创建 API/端点
- 处理不同协议
- 处理请求/响应
步骤 2:检查模糊意图
如果用户的意图可能是核心 OR 控制器(例如,"如何实现一个需要跨模块访问的服务?"):
决策优先级:核心概念优先
理由:即使服务将在控制器中使用,关于跨模块访问(AccessLevel)的基本问题是一个核心概念。一旦理解了核心结构,用户就可以在控制器中应用它。
行动:
- 使用
egg-coreskill - 解释概念(例如,
AccessLevel.PUBLIC) - 核心解释后,建议:"如果你需要在特定控制器中使用它,请使用
egg-controllerskill
步骤 3:协议/用例特定指示器
| 协议/用例 | 主要技能 | 次要技能 |
|---|---|---|
| HTTP API | egg-controller |
- |
| MCP | egg-controller |
- |
| Scheduled Tasks | egg-controller |
- |
| Parameter validation | egg-controller |
- |
| Controller Middleware | egg-controller |
- |
| Background tasks | egg-core |
- |
| Event-driven / EventBus | egg-core |
- |
| AOP / 切面编程 | egg-core |
- |
| Cross-module injection | egg-core |
- |
| Module structure | egg-core |
- |
| Object lifecycle | egg-core |
- |
| Unit Testing | egg-unittest |
- |
| Mock / Test helpers | egg-unittest |
- |
冲突解决规则
规则 1:基础优先
当问题同时涉及核心概念 AND 控制器实现时:
- 示例:"如何实现一个 HTTP 控制器可以使用的单例服务?"
- 决策:从
egg-coreskill 开始解释 SingletonProto 和 AccessLevel - 后续:"现在你理解了服务定义,使用
egg-controllerskill 实现注入此服务的 HTTP 控制器。"
规则 2:显式覆盖
如果用户明确提及特定控制器类型:
- 示例:"如何使用 HTTPController 配合 ContextProto 服务?"
- 决策:使用
egg-controllerskill(HTTPController 是显式的) - 后续:解释 HTTPController 实现,如果需要简要提及来自核心概念的 ContextProto
规则 3:学习语境
如果用户问"什么是 X?"或"Y 如何工作?":
- 核心概念问题 → 使用
egg-coreskill - 控制器类型问题 → 使用
egg-controllerskill - 一般 EGG 问题 → 使用本技能的决策框架
如果用户问"如何实现 X?"或"给我看 Y 的代码?":
- 实现特定问题 → 根据决策框架加载特定 skill
快速参考表
| 用户意图 | 关键词 | 使用技能 |
|---|---|---|
| Module architecture | module、workspace、organization | egg-core skill |
| Object lifecycle | singleton、context、lifecycle | egg-core skill |
| Dependency injection | inject、@Inject、dependency | egg-core skill |
| Access control | private、public、cross-module | egg-core skill |
| Background tasks | background task、异步任务、后台任务 | egg-core skill |
| Event-driven | eventbus、事件总线、@Event、emit | egg-core skill |
| AOP 切面编程 | aop、切面、advice、pointcut、crosscut | egg-core skill |
| HTTP endpoints | HTTP、API、REST | egg-controller skill |
| LLM/AI integration | MCP、tool、prompt | egg-controller skill |
| Scheduling | schedule、cron、timer | egg-controller skill |
| Param validation | validate、校验、ajv、typebox、schema | egg-controller skill |
| Middleware 中间件 | middleware、中间件、拦截器、@Middleware | egg-controller skill |
| Unit testing | test、mock、unittest、单测 | egg-unittest skill |
| Mock dependencies | mock、mm、mockCsrf、mockHttpclient | egg-unittest skill |
示例
示例 1:明确的核心意图
用户:"@SingletonProto 和 @ContextProto 有什么区别?"
分析:问题关于核心装饰器和对象生命周期
决策:使用 egg-core skill
用户:"如何在 EGG 中创建模块?"
分析:问题关于模块架构(核心概念)
决策:使用 egg-core skill
示例 2:明确的控制器意图
用户:"如何创建返回 JSON 的 HTTP controller?"
分析:问题关于实现特定协议(HTTP)
决策:使用 egg-controller skill
示例 3:模糊意图(核心 > 控制器)
用户:"我需要创建一个可以被 HTTP 控制器使用的服务。如何实现?"
分析:用户需要理解核心概念(跨模块访问)AND 控制器实现
决策:首先使用 egg-core skill(基础)
响应:
- 解释
@SingletonProto配合AccessLevel.PUBLIC使服务可访问 - 展示如何注入服务:
@Inject() myService: MyService - 后续:"现在你可以在 HTTPController 中注入此服务。实现详情请使用
egg-controllerskill。"
示例 4:显式控制器加上核心知识
用户:"如何在 HTTPController 中使用 @Inject 访问用户服务?"
分析:用户明确提及 HTTPController(控制器类型)但询问 @Inject(核心概念)
决策:使用 egg-controller skill(HTTPController 是明确意图)
响应:
- 展示配合
@Inject的 HTTPController 实现 - 简要解释 @Inject 如何工作(核心概念摘要)
- 注意:"包含限定符的详细 @Inject 使用,请使用
egg-coreskill"
示例 5:测试相关
用户:"帮我写个 UserController 的单元测试"
分析:问题关于编写测试代码
决策:使用 egg-unittest skill
用户:"POST 请求测试报 403 错误"
分析:测试中遇到 CSRF 问题
决策:使用 egg-unittest skill
路由最佳实践
优先考虑显式控制器提及:如果用户命名特定控制器(HTTP),即使涉及核心概念也使用控制器技能
基础先行:如果实现前需要理解核心概念,先解释核心概念
简短上下文可以接受:当路由到一个技能时,提及另一个技能的存在以供后续问题
混合响应可接受:当意图真正混合时,提供两个技能的简短上下文但专注于主要意图
渐进式披露:除非明确要求,不要同时加载两个技能。让用户引导探索
技能交互
本技能(egg skill)应该:
- 为框架内部概念路由到
egg-coreskill - 为协议特定实现路由到
egg-controllerskill - 为测试相关问题路由到
egg-unittestskill - 当意图模糊时提供决策指导
- 当存在有用的上下文时交叉引用技能
Decide Fit First
Design Intent
How To Use It
Boundaries And Review