---
name: asset_pipeline_scripts.aicomponent
description: AI 生图资源管线自动化。一键完成 generate → remove-background → trim → convert webp → 输出集成提示。与 board_entity_sprite.aiimage 配套使用。
triggers: 资源管线,asset pipeline,生成图片,generate sprite,一键生图,自动化,gen-sprite
---

# 资源管线自动化脚本（Asset Pipeline Scripts）

## 说明

将 AI 生图到项目集成的**全流程自动化**为一条命令：

```bash
pnpm gen:sprite car
# 等价于：
pnpm gen:sprite "cute cartoon car"
```

**自动完成：**
1. 构造 prompt（填充 entity 变量）
2. 调用 `playcraft tools generate-image`
3. `playcraft image remove-background`
4. `playcraft image trim`
5. `playcraft image convert --format webp --quality 90`
6. 清理中间文件
7. 输出集成代码提示

## Scaffold

| 目标路径 | 来源 | 说明 |
|---------|-----|------|
| `scripts/gen-sprite.sh` | `ref/gen-sprite.sh` | 一键生图脚本 |

`package.json` 新增：
```json
{
  "scripts": {
    "gen:sprite": "bash scripts/gen-sprite.sh"
  }
}
```

## 使用方式

```bash
# 基础用法（默认 cartoon flat 风格）
pnpm gen:sprite car

# 指定完整描述
pnpm gen:sprite "red race car with flames"

# 指定输出名
pnpm gen:sprite car --name racing_car
```

## 输出

```
🎨 Generating: car
📦 Model: google/gemini-3.1-flash-image-preview
⏳ Generating image...
✅ Generated raw image
🔲 Removing background...
✂️  Trimming...
🔄 Converting to webp...
🧹 Cleaning up...

✅ Done: assets/images/car.webp (24KB)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Integration code:

  // Add to Preloader.ts imports:
  import carImage from "assets/images/car.webp";

  // Add to preload():
  this.load.image("car", carImage);

  // Use in scene:
  const sprite = scene.add.image(x, y, "car");
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

## Recipe

| 决策 | 原因 |
|------|------|
| **自动化为单一命令** | 手动执行 generate → remove-bg → trim → convert 五步极易遗漏步骤；脚本保证每次流程一致 |
| **Bash 脚本而非 Node.js** | Bash 调用 CLI 命令更直观，零额外依赖，PlayCraft CLI 工具已覆盖所有后处理需求 |
| **输出集成代码提示** | Agent 生成图片后立即得到 Preloader.ts 的 import 和 load 代码片段，减少上下文切换成本 |
| **与 aiimage skill 解耦** | Recipe（prompt 模板）在 `board_entity_sprite.aiimage` 中维护；本 skill 只负责执行流程，不重复定义 prompt |

## Adapter

- **Role**: `assetPipeline` — AI 生图管线自动化工具（开发时脚本，非运行时组件）
- **Provides**: `scripts/gen-sprite.sh` 脚本、`pnpm gen:sprite` npm 命令
- **Requires**: `board_entity_sprite.aiimage`（prompt 模板知识）、PlayCraft CLI（`playcraft` 命令）
- **Consumed by**: Agent 在需要生成新精灵图资产时直接调用；无上游 skill 依赖
- **Integration point**: `package.json` `scripts.gen:sprite` —— Agent 执行 `pnpm gen:sprite <entity>` 触发完整管线

## Imports

- `board_entity_sprite.aiimage`（知识层配套：prompt 模板 + 后处理规范）

## Skill Definition

```yaml
tools:
  - bash
  - write
  - read
inputs:
  - source: ref/gen-sprite.sh
outputs:
  - script: scripts/gen-sprite.sh
  - npmScript: gen:sprite
```
