em-kb-article
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseKnowledge Base Article para Easymailing
为Easymailing创建知识库文章
Crea artículos de base de conocimiento para Easymailing, consultando código, navegando la app cuando sea necesario, y publicando como borrador en Zendesk.
为Easymailing创建知识库文章,可查阅代码、必要时浏览应用,并在Zendesk中以草稿形式发布。
Configuración requerida
必要配置
Archivo de configuración
配置文件
Verifica que existe en la carpeta de esta skill. Si no existe, pregunta:
.kb-config.json- "¿Cuál es la ruta del proyecto Easymailing?"
- "¿Cuál es la ruta del vault de Obsidian?"
- "¿Cuál es tu email de Zendesk?"
Crea el archivo con esta estructura:
json
{
"project_path": "{ruta al proyecto}",
"obsidian_vault_path": "{ruta al vault}",
"zendesk_subdomain": "easymailing",
"zendesk_email": "{email del usuario}",
"test_app": {
"url": "http://dfutura.easymailing.test",
"user": "jhon@acme.com"
}
}Y recuerda al usuario:
Configuración guardada en .kb-config.json
Recuerda configurar las variables de entorno:
- ZENDESK_API_TOKEN: tu token de API de Zendesk
- EASYMAILING_TEST_PASSWORD: password del usuario de test请确认此skill目录下存在文件。若不存在,请询问用户以下问题:
.kb-config.json- "Easymailing项目的路径是什么?"
- "Obsidian知识库的路径是什么?"
- "你的Zendesk邮箱是什么?"
创建如下结构的配置文件:
json
{
"project_path": "{项目路径}",
"obsidian_vault_path": "{知识库路径}",
"zendesk_subdomain": "easymailing",
"zendesk_email": "{用户邮箱}",
"test_app": {
"url": "http://dfutura.easymailing.test",
"user": "jhon@acme.com"
}
}并提醒用户:
配置已保存至.kb-config.json
请记得配置以下环境变量:
- ZENDESK_API_TOKEN: 你的Zendesk API令牌
- EASYMAILING_TEST_PASSWORD: 测试用户的密码Variables de entorno
环境变量
El archivo en la carpeta de la skill debe contener:
.envZENDESK_API_TOKEN=tu_token_de_zendesk
EASYMAILING_TEST_PASSWORD=password_del_usuario_testskill目录下的文件需包含:
.envZENDESK_API_TOKEN=tu_token_de_zendesk
EASYMAILING_TEST_PASSWORD=password_del_usuario_testScript de Zendesk
Zendesk脚本
La skill incluye un script CLI para interactuar con la API de Zendesk:
bash
undefined此skill包含一个CLI脚本,用于与Zendesk API交互:
bash
undefinedListar categorías
列出分类
npx bun kb-article/scripts/zendesk.ts categories
npx bun kb-article/scripts/zendesk.ts categories
Listar secciones de una categoría
列出某分类下的章节
npx bun kb-article/scripts/zendesk.ts sections <category_id>
npx bun kb-article/scripts/zendesk.ts sections <category_id>
Buscar artículos
搜索文章
npx bun kb-article/scripts/zendesk.ts search "término de búsqueda"
npx bun kb-article/scripts/zendesk.ts search "搜索关键词"
Obtener un artículo (para análisis de estilo)
获取单篇文章(用于风格分析)
npx bun kb-article/scripts/zendesk.ts article <article_id>
npx bun kb-article/scripts/zendesk.ts article <article_id>
Crear artículo como borrador
创建草稿文章
npx bun kb-article/scripts/zendesk.ts create <section_id> --title "Título" --body "<html>" --locale es --draft
npx bun kb-article/scripts/zendesk.ts create <section_id> --title "标题" --body "<html>" --locale es --draft
Añadir traducción
添加翻译版本
npx bun kb-article/scripts/zendesk.ts translate <article_id> --title "Title" --body "<html>" --locale en
El script lee automáticamente `.kb-config.json` y `.env` de la carpeta de la skill.npx bun kb-article/scripts/zendesk.ts translate <article_id> --title "Title" --body "<html>" --locale en
该脚本会自动读取skill目录下的`.kb-config.json`和`.env`文件。Flujo principal
主流程
FASE 1: Contexto inicial
↓
FASE 2: Investigación
↓
FASE 3: Preguntas interactivas
↓
FASE 4: Propuesta de estructura
↓
FASE 5: Generación (ES → EN)
↓
FASE 6: Publicación阶段1: 初始上下文
↓
阶段2: 调研
↓
阶段3: 交互式提问
↓
阶段4: 结构提案
↓
阶段5: 内容生成(西语→英语)
↓
阶段6: 发布Fase 1: Contexto inicial
阶段1: 初始上下文
Paso 1.1: Preguntar origen
步骤1.1: 询问文章来源
Pregunta usando AskUserQuestion:
¿De dónde surge este artículo?
A) Ticket/pregunta de soporte - Usuarios preguntan frecuentemente sobre esto
B) Feature nueva - Hay que documentar una funcionalidad recién lanzada
C) Documentación faltante - Detecté que falta explicar esto使用AskUserQuestion提问:
这篇文章的需求来自哪里?
A) 支持工单/用户提问 - 用户经常咨询此问题
B) 新功能 - 需要记录刚上线的功能
C) 缺失的文档 - 发现此处缺少相关说明Paso 1.2: Preguntar tema
步骤1.2: 询问文章主题
Pregunta abierta:
"¿Sobre qué funcionalidad o tema quieres crear el artículo?"
开放式提问:
"你想要创建的文章是关于哪个功能或主题的?"
Paso 1.3: Consultar Zendesk
步骤1.3: 查询Zendesk
Usa el script de Zendesk para obtener contexto:
-
Listar categorías y secciones:bash
npx bun kb-article/scripts/zendesk.ts categories npx bun kb-article/scripts/zendesk.ts sections <category_id>Presenta las opciones al usuario para elegir dónde ubicar el artículo. -
Buscar artículos relacionados:bash
npx bun kb-article/scripts/zendesk.ts search "{tema}"Si encuentra artículos similares:- Informa al usuario para evitar duplicados
- Sugiere posibles enlaces cruzados
-
Leer 2-3 artículos existentes (para análisis de estilo):bash
npx bun kb-article/scripts/zendesk.ts article <article_id>Analiza el estilo y formato para mantener consistencia.
使用Zendesk脚本获取上下文:
-
列出分类和章节:bash
npx bun kb-article/scripts/zendesk.ts categories npx bun kb-article/scripts/zendesk.ts sections <category_id>将选项展示给用户,以便选择文章的存放位置。 -
搜索相关文章:bash
npx bun kb-article/scripts/zendesk.ts search "{主题}"如果找到相似文章:- 告知用户以避免重复
- 建议添加交叉链接
-
阅读2-3篇现有文章(用于风格分析):bash
npx bun kb-article/scripts/zendesk.ts article <article_id>分析现有文章的风格和格式,保持一致性。
Fase 2: Investigación
阶段2: 调研
Paso 2.1: Revisar código
步骤2.1: 查阅代码
Según el tema, busca en el proyecto Easymailing:
- Controllers y vistas relacionadas
- Modelos y lógica de negocio
- Documentación existente en docs/
Determina la profundidad necesaria:
- Solo UI → revisar vistas y JS
- Flujo completo → añadir controllers
- Lógica compleja → incluir modelos y servicios
根据文章主题,在Easymailing项目中查找:
- 相关的控制器和视图
- 模型和业务逻辑
- docs/目录下的现有文档
确定所需的调研深度:
- 仅UI层面 → 查看视图和JS代码
- 完整流程 → 额外查看控制器
- 复杂逻辑 → 包含模型和服务
Paso 2.2: Navegar la app (si necesario)
步骤2.2: 浏览应用(如有必要)
Si crees que necesitas ver la UI para entender mejor, pregunta:
"Para entender mejor [X], ¿quieres que navegue la app y explore [pantalla/flujo específico]?"
Si el usuario confirma:
- Usa Chrome para abrir de la config
{test_app.url} - Haz login:
- Usuario: de la config
{test_app.user} - Password: valor de
EASYMAILING_TEST_PASSWORD
- Usuario:
- Navega a la sección relevante
- Explora la funcionalidad (solo lectura, no modificar datos)
- Reporta lo observado
如果认为需要查看UI来更好地理解功能,可提问:
"为了更好地理解[X],是否需要我浏览应用并探索[特定页面/流程]?"
如果用户同意:
- 使用Chrome打开配置中的
{test_app.url} - 登录:
- 用户名:配置中的
{test_app.user} - 密码:的值
EASYMAILING_TEST_PASSWORD
- 用户名:配置中的
- 导航至相关章节
- 探索功能(仅浏览,不修改数据)
- 汇报观察结果
Paso 2.3: Presentar hallazgos
步骤2.3: 展示调研结果
Resume lo encontrado:
- Qué hace la funcionalidad
- Cómo se accede
- Flujo principal
- Casos especiales detectados
总结调研发现:
- 功能的作用
- 访问路径
- 主流程
- 发现的特殊场景
Fase 3: Preguntas interactivas
阶段3: 交互式提问
Haz preguntas UNA A UNA para clarificar el artículo:
- "¿Qué nivel de usuario es el target? (principiante, intermedio, avanzado)"
- "¿Cuál es el problema principal que el usuario intenta resolver?"
- "¿Hay pasos previos que el usuario debe conocer antes?"
- "¿Qué errores comunes cometen los usuarios con esto?"
- "¿Hay limitaciones o casos especiales que debamos mencionar?"
Adapta las preguntas según el contexto. No todas son necesarias en todos los casos.
逐个提问以明确文章细节:
- "目标用户的水平是什么?(初级、中级、高级)"
- "用户主要想解决什么问题?"
- "用户在阅读本文之前需要了解哪些前置步骤?"
- "用户在使用此功能时常见的错误有哪些?"
- "是否有需要提及的限制或特殊场景?"
根据上下文调整问题,并非所有问题都适用于所有场景。
Fase 4: Propuesta de estructura
阶段4: 结构提案
Presenta un outline con títulos y bullets:
markdown
undefined展示包含标题和项目符号的大纲:
markdown
undefinedEstructura propuesta
提案结构
1. Introducción
1. 简介
- Qué es [funcionalidad]
- Para qué sirve
- 什么是[功能]
- 功能用途
2. Cómo acceder
2. 访问方式
- Ruta de navegación
- Permisos necesarios
- 导航路径
- 所需权限
3. [Sección principal según el tema]
3. [根据主题的主要章节]
- Punto clave 1
- Punto clave 2
- Punto clave 3
- 关键点1
- 关键点2
- 关键点3
4. Casos de uso
4. 使用场景
- Ejemplo práctico
- 实用示例
5. Preguntas frecuentes (si aplica)
5. 常见问题(如适用)
- Pregunta común 1
- Pregunta común 2
Pregunta: "¿Esta estructura te parece bien o ajustamos algo?"
Itera hasta que el usuario apruebe.- 常见问题1
- 常见问题2
提问:"这个结构你觉得合适吗?还是需要调整?"
反复迭代直到用户认可。Fase 5: Redacción y revisión
阶段5: 撰写与审核
Paso 5.1: Redactar artículo en español (Markdown)
步骤5.1: 撰写西语文章(Markdown格式)
Genera el artículo completo en Markdown para que el usuario pueda revisarlo fácilmente.
Usa el formato estándar de Markdown:
- ,
#,##para títulos### - para negritas
**texto** - o
-para listas* - ,
1.,2.para pasos numerados3. - para notas o tips importantes
> texto - para placeholders de imágenes
[IMAGEN: descripción]
Muestra el Markdown y pregunta: "¿El artículo en español está bien o ajustamos algo?"
Itera con el usuario hasta que apruebe el contenido.
生成完整的Markdown格式西语文章,方便用户审核。
使用标准Markdown格式:
- ,
#,##用于标题### - 用于加粗
**文本** - 或
-用于无序列表* - ,
1.,2.用于有序步骤3. - 用于重要提示或说明
> 文本 - 用于图片占位符
[IMAGEN: 描述]
展示Markdown内容并提问:"西语文章的内容是否合适?还是需要调整?"
与用户反复迭代直到内容获得认可。
Paso 5.2: Redactar artículo en inglés (Markdown)
步骤5.2: 撰写英语文章(Markdown格式)
Una vez aprobado el español, genera la versión en inglés en Markdown.
Muestra el Markdown y pregunta: "¿La versión en inglés está bien?"
Itera hasta que el usuario apruebe.
西语版本获批后,生成Markdown格式的英语版本。
展示Markdown内容并提问:"英语版本的内容是否合适?"
反复迭代直到用户认可。
Paso 5.3: Generar HTML final
步骤5.3: 生成最终HTML
Una vez aprobados ambos idiomas, convierte el Markdown a HTML usando los componentes de Zendesk:
Alertas (información importante):
html
<div class="alert alert-info">
Texto informativo o tip
</div>
<div class="alert alert-warning">
Advertencia o precaución
</div>Pasos numerados:
html
<p>
<span class="number">1</span> Descripción del paso
</p>
<p>
<span class="number">2</span> Siguiente paso
</p>Índice de contenidos (artículos largos):
html
<div class="content-index">
<p>Índice de contenidos</p>
<p><a href="#seccion1">1. Primera sección</a></p>
<p><a href="#seccion2">2. Segunda sección</a></p>
</div>
<h2 id="seccion1">Primera sección</h2>Tablas:
html
<table>
<tbody>
<tr>
<td class="gray"><strong>Destacado</strong></td>
<td>Contenido normal</td>
</tr>
</tbody>
</table>Placeholders de imágenes:
html
<p>(IMAGEN PENDIENTE: Descripción detallada de qué mostrar)</p>El HTML se genera automáticamente sin mostrar al usuario (ya aprobó el contenido en Markdown).
两种语言版本都获批后,将Markdown转换为使用Zendesk组件的HTML:
提示框(重要信息):
html
<div class="alert alert-info">
提示信息或技巧
</div>
<div class="alert alert-warning">
警告或注意事项
</div>有序步骤:
html
<p>
<span class="number">1</span> 步骤描述
</p>
<p>
<span class="number">2</span> 下一步骤
</p>内容索引(长文章适用):
html
<div class="content-index">
<p>内容索引</p>
<p><a href="#seccion1">1. 第一章节</a></p>
<p><a href="#seccion2">2. 第二章节</a></p>
</div>
<h2 id="seccion1">第一章节</h2>表格:
html
<table>
<tbody>
<tr>
<td class="gray"><strong>重点</strong></td>
<td>普通内容</td>
</tr>
</tbody>
</table>图片占位符:
html
<p>(待添加图片: 详细描述展示内容)</p>HTML会自动生成,无需展示给用户(用户已认可Markdown内容)。
Fase 6: Publicación
阶段6: 发布
Paso 6.1: Guardar en Obsidian
步骤6.1: 保存至Obsidian
Crea la carpeta y archivos:
{obsidian_vault_path}/Areas/Easymailing/Knowledge-Base/{YYYY-MM-DD}-{slug}/
├── article-brief.md
├── article-es.md
├── article-en.md
└── images.mdarticle-brief.md:
markdown
undefined创建如下目录和文件:
{obsidian_vault_path}/Areas/Easymailing/Knowledge-Base/{YYYY-MM-DD}-{slug}/
├── article-brief.md
├── article-es.md
├── article-en.md
└── images.mdarticle-brief.md:
markdown
undefined{Título del artículo}
{文章标题}
Metadata
元数据
- Fecha: {YYYY-MM-DD}
- Categoría Zendesk: {categoría elegida}
- Sección Zendesk: {sección elegida}
- Origen: {soporte/feature nueva/faltaba documentación}
- 日期: {YYYY-MM-DD}
- Zendesk分类: {所选分类}
- Zendesk章节: {所选章节}
- 来源: {支持工单/新功能/缺失文档}
Resumen
摘要
{Breve descripción de qué explica el artículo}
{文章内容的简短描述}
Artículos relacionados
相关文章
- {links a artículos existentes si los hay}
- {如有相关现有文章的链接}
Zendesk
Zendesk
- Borrador ES: {URL después de publicar}
- Borrador EN: {URL después de publicar}
**article-es.md** (HTML en bloque de código):
```markdown- 西语草稿: {发布后的URL}
- 英语草稿: {发布后的URL}
**article-es.md**(代码块中包含HTML):
```markdown{Título en español}
{西语标题}
HTML
HTML
```html
{HTML del artículo en español}
```
**article-en.md** (HTML en bloque de código):
```markdown```html
{西语文章的HTML}
```
**article-en.md**(代码块中包含HTML):
```markdown{Título en inglés}
{英语标题}
HTML
HTML
```html
{HTML del artículo en inglés}
```
**images.md**:
```markdown```html
{英语文章的HTML}
```
**images.md**:
```markdownImágenes requeridas
所需图片
1. {nombre-descriptivo}.png
1. {描述性名称}.png
- Ubicación en HTML: Sección "{nombre}"
- Qué mostrar: {descripción detallada}
- Notas: {indicaciones especiales si las hay}
- 在HTML中的位置: 章节“{名称}”
- 展示内容: {详细描述}
- 备注: {如有特殊说明}
2. {nombre-descriptivo}.png
2. {描述性名称}.png
...
undefined...
undefinedPaso 6.2: Publicar borrador en Zendesk
步骤6.2: 在Zendesk发布草稿
-
Crear artículo en español:bash
npx bun kb-article/scripts/zendesk.ts create {section_id} --title "{título}" --body "{HTML español}" --locale es --draftEl comando devuelve ely la URL del borrador.article_id -
Añadir traducción en inglés:bash
npx bun kb-article/scripts/zendesk.ts translate {article_id} --title "{título en inglés}" --body "{HTML inglés}" --locale en -
Actualizar article-brief.md con las URLs de los borradores
-
Confirmar al usuario:
Artículo publicado como borrador en Zendesk: - Español: {URL} - Inglés: {URL} Archivos guardados en: {ruta en Obsidian} Recuerda añadir las imágenes listadas en images.md antes de publicar.
-
创建西语文章:bash
npx bun kb-article/scripts/zendesk.ts create {section_id} --title "{标题}" --body "{西语HTML}" --locale es --draft该命令会返回和草稿的URL。article_id -
添加英语翻译版本:bash
npx bun kb-article/scripts/zendesk.ts translate {article_id} --title "{英语标题}" --body "{英语HTML}" --locale en -
更新article-brief.md中的草稿URL
-
向用户确认:
文章已在Zendesk以草稿形式发布: - 西语: {URL} - 英语: {URL} 文件已保存至: {Obsidian中的路径} 请记得在正式发布前添加images.md中列出的图片。
Rutas del proyecto
项目路径
Leer de :
.kb-config.json- Proyecto Easymailing:
project_path - Vault Obsidian:
obsidian_vault_path - App de test:
test_app.url
从读取:
.kb-config.json- Easymailing项目:
project_path - Obsidian知识库:
obsidian_vault_path - 测试应用:
test_app.url
Invocación
调用方式
bash
/kb-articlebash
/kb-article