feat: 内置技能全量收录 presentation-forge (#83)

## 概述
将 PPT 工作流技能 **presentation-forge**(原 codex-ppt-skill)以 **builtin
内置技能**形态全量收录进 DesireCore 官方市场。

> 注:本 PR 最初以 entry.json pointer 形态提交,现按仓库负责人意见改为 builtin 层全量
vendoring。分支保留两个提交(pointer → builtin 转换)。

## 形态:builtin 全量 vendoring(遵循 guizang-ppt 先例)
- 全量内容进 `skills/presentation-forge/`:`SKILL.md` + `SKILL.zh-CN.md` +
`references/` + `scripts/` + `styles/`(9 套风格)+ `templates/` +
`schemas/`。
- builtin frontmatter:`version/type/risk_level/status/tags` +
`metadata.i18n`(zh-CN/en-US)+
`market.icon/category/maintainer`,`category: creative`。
- 列入 `builtin-skills.json`(33 项)。
- 附 `LICENSE`(MIT)+ `NOTICE.md` +
`_desirecore/{frontmatter.yaml,upstream.json}` 溯源。
- 溯源 commit:`mashagua/presentation-forge@b7b1a9c`(MIT)。
- 排除非运行内容:`tests/` 夹具、未被任何 vendored 文件引用的 1.3MB 流程图、Codex `agents/` 绑定。

## 变更
- 新增 `skills/presentation-forge/`(全量内容,约 440KB)
- `builtin-skills.json`:新增 `presentation-forge`(32 → 33)
- `manifest.json`:`stats.totalSkills` 60 → 61,`version` 1.2.26 →
1.2.27,`lastUpdated` → 2026-08-10
- `README.md`:built-in 32 → 33、external 29 → 28、total 61 不变,两处代码块同步

## 验证
```
uv run scripts/i18n/validate-i18n.py
OK: no i18n issues found.
```
stats 公式核对:entry.json 目录 28 + SKILL.md 目录 33 = 61 = manifest.totalSkills
✓

---------

Co-authored-by: Yige <a@wyr.me>
Co-authored-by: yige <yige@yigedeMacBook-Neo.local>
This commit is contained in:
mashagua
2026-08-23 23:31:26 +08:00
committed by GitHub
parent 5a0a80d31c
commit 98ffc8fe92
84 changed files with 11125 additions and 5 deletions

View File

@@ -0,0 +1,52 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://local.codex/presentation-forge/editor-manifest.schema.json",
"title": "Presentation Forge Editor Manifest",
"type": "object",
"required": ["schema_version", "protocol", "session_id", "document_kind", "editable_document", "document_sha256", "canvas_sha256", "workflow", "current_style", "style_catalog", "slides", "slide_count", "capabilities"],
"properties": {
"schema_version": {"const": 3},
"protocol": {"const": "presentation-forge-editor.v3"},
"session_id": {"type": "string"},
"base_revision": {"type": ["string", "null"]},
"route": {"type": ["string", "null"]},
"document_kind": {"const": "native-editable-deck"},
"editable_document": {"type": "string"},
"document_sha256": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
"canvas_sha256": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
"workflow": {
"type": "object",
"required": ["mode", "style_selection_status", "export_approval", "final_pptx_ready"],
"properties": {
"mode": {"enum": ["direct-build", "canvas-first"]},
"style_selection_status": {"enum": ["pending", "auto-selected", "confirmed"]},
"export_approval": {"enum": ["pending", "auto-proceed", "approved"]},
"final_pptx_ready": {"type": "boolean"}
}
},
"global_editable_paths": {"type": "array", "items": {"type": "string"}},
"current_style": {"type": "object", "required": ["style_id", "variant_id", "family_name", "name"]},
"style_catalog": {"type": "array", "minItems": 24, "items": {"type": "object", "required": ["preset_id", "style_id", "variant_id", "family_name", "name", "design_tokens"]}},
"slide_count": {"type": "integer", "minimum": 1},
"slides": {
"type": "array",
"items": {
"type": "object",
"required": ["slide_number", "title", "scene", "editable_paths", "canvas", "elements"],
"properties": {
"slide_number": {"type": "integer", "minimum": 1},
"title": {"type": "string"},
"archetype": {"type": ["string", "null"]},
"style": {"type": "object", "required": ["style_id", "variant_id"]},
"scene": {"type": "string"},
"thumbnail": {"type": ["string", "null"]},
"editable_paths": {"type": "array", "items": {"type": "string"}},
"canvas": {"type": "object"},
"elements": {"type": "array"}
}
}
},
"capabilities": {"type": "object"},
"events": {"type": "string"}
}
}

View File

@@ -0,0 +1,62 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://local.codex/presentation-forge/editor-patch.schema.json",
"title": "Presentation Forge Editor Patch",
"type": "object",
"required": ["schema_version", "request_id", "base_revision", "document_sha256", "canvas_sha256", "operations"],
"properties": {
"schema_version": {"const": 3},
"request_id": {"type": "string", "minLength": 1},
"base_revision": {"type": ["string", "null"]},
"document_sha256": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
"canvas_sha256": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
"operations": {
"type": "array",
"minItems": 1,
"items": {
"oneOf": [
{
"type": "object",
"required": ["op", "path", "value"],
"properties": {"op": {"const": "replace"}, "path": {"type": "string", "pattern": "^/"}, "value": {}}
},
{
"type": "object",
"required": ["op", "slide_number", "element_id", "changes"],
"properties": {
"op": {"const": "update-element"},
"slide_number": {"type": "integer", "minimum": 1},
"element_id": {"type": "string", "minLength": 1},
"changes": {
"type": "object",
"minProperties": 1,
"properties": {
"bbox": {"type": "array", "minItems": 4, "maxItems": 4, "items": {"type": "number"}},
"text": {"type": "string"},
"style": {"type": "object"},
"rotation": {"type": "number"},
"z_index": {"type": "integer", "minimum": 0}
}
}
}
},
{
"type": "object",
"required": ["op", "scope", "style_id", "variant_id", "mode"],
"properties": {
"op": {"const": "apply-style"},
"scope": {"enum": ["deck", "slide"]},
"slide_number": {"type": "integer", "minimum": 1},
"style_id": {"type": "string", "minLength": 1},
"variant_id": {"type": "string", "minLength": 1},
"mode": {"enum": ["replace-theme", "preserve-layout"]}
},
"allOf": [
{"if": {"properties": {"scope": {"const": "slide"}}}, "then": {"required": ["slide_number"]}}
]
}
]
}
}
}
}

View File

@@ -0,0 +1,56 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://local.codex/presentation-forge/native-editable-deck.schema.json",
"title": "Native Editable Deck Spec",
"type": "object",
"required": ["schema_version", "title", "style_id", "visual_asset_policy", "slides"],
"properties": {
"schema_version": {"const": 1},
"title": {"type": "string", "minLength": 1},
"style_id": {"type": "string", "minLength": 1},
"style_variant": {"type": ["string", "null"]},
"typography_profile": {"type": ["string", "null"]},
"table_profile": {"type": ["string", "null"]},
"visual_asset_policy": {"enum": ["native-only", "native-image-assisted", "image-led-editable"]},
"design_exceptions": {
"type": "array",
"items": {
"type": "object",
"required": ["code", "slide_number", "reason"],
"properties": {
"code": {"type": "string", "minLength": 1},
"slide_number": {"type": "integer", "minimum": 1},
"reason": {"type": "string", "minLength": 8}
}
}
},
"slides": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["slide_number", "archetype", "title"],
"properties": {
"slide_number": {"type": "integer", "minimum": 1},
"archetype": {"enum": ["cover", "content-structured", "process-flow", "comparison-two-zone", "data-callouts", "table", "architecture", "closing-action"]},
"title": {"type": "string", "minLength": 1},
"style_id": {"type": "string", "minLength": 1},
"style_variant": {"type": "string", "minLength": 1},
"key_message": {"type": "string"},
"visual_slot": {
"type": "object",
"required": ["backend", "source_type", "status", "asset_path"],
"properties": {
"backend": {"enum": ["image-2", "provided"]},
"source_type": {"enum": ["imagegen_asset", "provided_asset"]},
"status": {"enum": ["planned", "pending_user_generation", "generated", "validated", "blocked"]},
"asset_path": {"type": "string"},
"prompt_record": {"type": ["string", "null"]},
"bbox_in": {"type": "array", "minItems": 4, "maxItems": 4, "items": {"type": "number"}}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,80 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://local.codex/presentation-forge/scene.schema.json",
"title": "PPT Page Scene",
"type": "object",
"required": ["schema_version", "slide_id", "slide_number", "revision", "page_type", "canvas", "content", "elements", "dependencies"],
"properties": {
"schema_version": {"const": 2},
"slide_id": {"type": "string", "pattern": "^slide-[0-9]{3}$"},
"slide_number": {"type": "integer", "minimum": 1},
"revision": {"type": "integer", "minimum": 1},
"page_type": {"type": "string"},
"style_id": {"type": ["string", "null"]},
"style_variant": {"type": ["string", "null"]},
"layout_id": {"type": ["string", "null"]},
"typography_profile": {"type": ["string", "null"]},
"table_profile": {"type": ["string", "null"]},
"visual_asset_policy": {"enum": ["native-only", "native-image-assisted", "image-led-editable", null]},
"canvas": {
"type": "object",
"required": ["width", "height", "unit"],
"properties": {"width": {"type": "integer", "minimum": 1}, "height": {"type": "integer", "minimum": 1}, "unit": {"const": "px"}}
},
"content": {
"type": "object",
"required": ["title"],
"properties": {"title": {"type": "string"}, "message": {"type": "string"}, "facts": {"type": "array"}}
},
"generation": {"type": "object"},
"elements": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "type", "bbox", "rotation", "z_index", "editable", "locked", "capabilities", "style"],
"properties": {
"id": {"type": "string", "minLength": 1},
"type": {"enum": ["text", "shape", "line", "connector", "image", "chart", "table", "group", "layout_native", "line_native", "connector_native", "semantic_visual", "imagegen_asset", "provided_asset", "unresolved"]},
"editable": {"type": "boolean"},
"locked": {"type": "boolean"},
"bbox": {"type": "array", "minItems": 4, "maxItems": 4, "prefixItems": [{"type": "number", "minimum": 0}, {"type": "number", "minimum": 0}, {"type": "number", "exclusiveMinimum": 0}, {"type": "number", "exclusiveMinimum": 0}]},
"rotation": {"type": "number"},
"z_index": {"type": "integer", "minimum": 0},
"role": {"type": ["string", "null"]},
"geometry": {"type": "string"},
"text": {"type": "string"},
"capabilities": {"type": "array", "uniqueItems": true, "items": {"enum": ["text", "geometry", "style", "rotation", "z-order", "asset"]}},
"style": {
"type": "object",
"properties": {
"fill": {"type": "string", "pattern": "^[A-Fa-f0-9]{6}$"},
"line": {"type": "string", "pattern": "^[A-Fa-f0-9]{6}$"},
"line_width_pt": {"type": "number", "minimum": 0},
"font_size_pt": {"type": "number", "exclusiveMinimum": 0},
"font_family": {"type": "string"},
"font_color": {"type": "string", "pattern": "^[A-Fa-f0-9]{6}$"},
"bold": {"type": "boolean"},
"align": {"enum": ["left", "center", "right", "justify"]},
"vertical_align": {"enum": ["top", "middle", "bottom"]},
"line_spacing": {"type": "number", "exclusiveMinimum": 0}
}
},
"source_binding": {
"type": "object",
"required": ["document", "path"],
"properties": {"document": {"type": "string"}, "path": {"type": "string", "pattern": "^/"}}
}
}
}
},
"dependencies": {
"type": "object",
"required": ["scene_hash", "prompt_hash", "asset_hashes"],
"properties": {
"scene_hash": {"type": "string"},
"prompt_hash": {"type": "string"},
"asset_hashes": {"type": "array", "items": {"type": "string"}}
}
}
}
}