Sync third-party and MCP marketplace plugins

Constraint: Public skills are published only by explicit administrator action unless they are tracked third-party market sources.
Confidence: high
Scope-risk: narrow
Directive: Keep private/internal skills out of the public marketplace and preserve normal incremental market Git history.
Tested: Marketplace validation passed.
This commit is contained in:
KeyInfo Bot
2026-07-09 00:01:19 +08:00
parent 37481a78ca
commit aaed3162df
14 changed files with 58 additions and 49 deletions
+12 -12
View File
@@ -220,18 +220,6 @@
},
"category": "开发工具"
},
{
"name": "oh-my-codex",
"source": {
"source": "local",
"path": "./plugins/codex/plugins/oh-my-codex"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "开发工具"
},
{
"name": "caveman",
"source": {
@@ -304,6 +292,18 @@
},
"category": "设计"
},
{
"name": "oh-my-codex",
"source": {
"source": "local",
"path": "./plugins/codex/plugins/oh-my-codex"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "开发工具"
},
{
"name": "shadcn",
"source": {
+8 -8
View File
@@ -15,8 +15,8 @@
"repo": "https://github.com/Yeachan-Heo/oh-my-codex.git",
"ref": "main",
"adapter": "codex-plugin",
"commit": "f947e3a41c062c25fd107686862b68ee5d1b66a5",
"syncedAt": "2026-07-05T16:00:01Z"
"commit": "f4110b0ad672c87f2ca31677ba7faee70332875a",
"syncedAt": "2026-07-08T16:00:01Z"
},
{
"id": "ui-ux-pro-max",
@@ -51,8 +51,8 @@
"repo": "https://github.com/shadcn-ui/ui.git",
"ref": "main",
"adapter": "claude-skill",
"commit": "68e1f171aa8c6ce2e38cb9a7d1463d6bcf357e91",
"syncedAt": "2026-07-07T16:00:00Z"
"commit": "093a538453d3455159fb12a9cc897e39826f9522",
"syncedAt": "2026-07-08T16:00:01Z"
},
{
"id": "frontend-slides",
@@ -87,8 +87,8 @@
"repo": "https://github.com/hugohe3/ppt-master.git",
"ref": "main",
"adapter": "claude-skill",
"commit": "0b3f73e5f0868171eef82baef44be660888f6c71",
"syncedAt": "2026-07-07T16:00:00Z"
"commit": "37427f940014c7d1aa122a3faf9cc16d64d573b6",
"syncedAt": "2026-07-08T16:00:01Z"
},
{
"id": "next-skills",
@@ -96,8 +96,8 @@
"repo": "https://github.com/vercel/next.js.git",
"ref": "canary",
"adapter": "skill-collection",
"commit": "8b5df172e4908b68f7ef88e8ad2b98070baf9ced",
"syncedAt": "2026-07-07T16:00:00Z"
"commit": "3c0fd70fc04a9bf26e7c510df9a1b7d393ac65c4",
"syncedAt": "2026-07-08T16:00:01Z"
}
]
}
+12 -12
View File
@@ -220,18 +220,6 @@
},
"category": "开发工具"
},
{
"name": "oh-my-codex",
"source": {
"source": "local",
"path": "./plugins/oh-my-codex"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "开发工具"
},
{
"name": "caveman",
"source": {
@@ -304,6 +292,18 @@
},
"category": "设计"
},
{
"name": "oh-my-codex",
"source": {
"source": "local",
"path": "./plugins/oh-my-codex"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "开发工具"
},
{
"name": "shadcn",
"source": {
@@ -3,5 +3,5 @@
"name": "playwright浏览器自动化操作",
"version": "20260605",
"keySource": "none",
"syncedAt": "2026-07-07T16:01:24Z"
"syncedAt": "2026-07-08T16:01:18Z"
}
@@ -2,8 +2,8 @@
"sourceId": "next-skills",
"repo": "https://github.com/vercel/next.js.git",
"ref": "canary",
"commit": "8b5df172e4908b68f7ef88e8ad2b98070baf9ced",
"commit": "3c0fd70fc04a9bf26e7c510df9a1b7d393ac65c4",
"adapter": "skill-collection",
"sourcePath": "skills",
"syncedAt": "2026-07-07T16:00:00Z"
"syncedAt": "2026-07-08T16:00:01Z"
}
@@ -1,6 +1,6 @@
{
"name": "oh-my-codex",
"version": "0.19.0",
"version": "0.19.1",
"description": "oh-my-codex 是 Codex CLI 的多 Agent 编排、结构化工作流、插件级 hooks、MCP 和 HUD 扩展插件。",
"author": {
"name": "Yeachan Heo",
@@ -2,8 +2,8 @@
"sourceId": "oh-my-codex",
"repo": "https://github.com/Yeachan-Heo/oh-my-codex.git",
"ref": "main",
"commit": "f947e3a41c062c25fd107686862b68ee5d1b66a5",
"commit": "f4110b0ad672c87f2ca31677ba7faee70332875a",
"adapter": "codex-plugin",
"sourcePath": "plugins/oh-my-codex",
"syncedAt": "2026-07-05T16:00:01Z"
"syncedAt": "2026-07-08T16:00:01Z"
}
@@ -2,8 +2,8 @@
"sourceId": "ppt-master",
"repo": "https://github.com/hugohe3/ppt-master.git",
"ref": "main",
"commit": "0b3f73e5f0868171eef82baef44be660888f6c71",
"commit": "37427f940014c7d1aa122a3faf9cc16d64d573b6",
"adapter": "claude-skill",
"sourcePath": "skills/ppt-master",
"syncedAt": "2026-07-07T16:00:00Z"
"syncedAt": "2026-07-08T16:00:01Z"
}
@@ -642,6 +642,8 @@ python3 ${SKILL_DIR}/scripts/svg_to_pptx.py <project_path>
# exports/<project_name>_<timestamp>_svg.pptx ← SVG preview pptx (reads svg_final/)
# Add --native-objects to emit real editable chart/table objects instead of flattened shapes:
# exports/<project_name>_<timestamp>_native_charts.pptx ← native chart/table objects (data-pptx-native markers)
# Re-export with --recorded-narration audio (generate-audio workflow) embeds per-slide narration:
# exports/<project_name>_<timestamp>_narrated.pptx ← narrated pptx (embedded audio + auto-advance timings)
```
> The native pptx consumes `svg_output/` directly so the converter can preserve
@@ -69,6 +69,7 @@ Behavior:
- `--recorded-narration audio` prepares PowerPoint's "recorded timings and narrations": every slide must have matching `m4a` / `mp3` / `wav` audio, `ffprobe` must read every duration, and `--animation-trigger on-click` is rejected
- `--recorded-narration audio` keeps speaker notes, embeds each matching audio file, and writes slide auto-advance timings from audio duration
- `--narration-audio-dir audio` is the lower-level embedding path: it embeds whatever files match and allows partial audio coverage
- Either narration flag names the default-flow export `<project_name>_<timestamp>_narrated.pptx`, telling it apart from silent exports in the same directory
- This is intended for direct PowerPoint video export with "Use recorded timings and narrations"
- Long-audio import and automatic long-audio splitting are not supported; keep narration assets page-level
- Voice choices can be listed with `python3 scripts/notes_to_audio.py --list-common-voices`, `python3 scripts/notes_to_audio.py --list-voices --locale zh-CN`, or provider-specific `--provider <name> --list-voices`
@@ -175,7 +175,7 @@ class ProjectManager:
"- `live_preview/`: browser preview runtime files and history (lock.json, server.log, edits.jsonl, annotations.jsonl)\n"
"- `sources/`: source materials and normalized markdown\n"
"- `analysis/`: machine-extracted intermediate analysis (PPTX intake, image_analysis.csv) — the pipeline's canonical must-read source/asset facts\n"
"- `exports/`: main native pptx (timestamped); `_svg.pptx` sibling added with `--svg-snapshot`, `_native_charts.pptx` name with `--native-objects`\n"
"- `exports/`: main native pptx (timestamped); `_svg.pptx` sibling added with `--svg-snapshot`, `_native_charts.pptx` name with `--native-objects`, `_narrated.pptx` name when narration audio is embedded\n"
"- `backup/<timestamp>/`: svg_output/ archive (always written in default-flow mode; safe to delete old timestamps)\n"
),
encoding="utf-8",
@@ -255,11 +255,14 @@ Recorded narration:
parser.add_argument('--no-notes', action='store_true',
help='Disable speaker notes embedding (enabled by default)')
parser.add_argument('--narration-audio-dir', type=str, default=None,
help='Low-level audio embedding from this directory; allows partial matches')
help='Low-level audio embedding from this directory; allows partial matches. '
'Default-flow exports get the _narrated name suffix.')
parser.add_argument('--use-narration-timings', action='store_true',
help='Set slide auto-advance timings from narration audio durations')
parser.add_argument('--recorded-narration', type=str, default=None,
help='Prepare PowerPoint recorded timings and narrations from a complete audio directory')
help='Prepare PowerPoint recorded timings and narrations from a complete audio '
'directory. Default-flow exports get the _narrated name suffix '
'(<project>_<ts>_narrated.pptx) to tell them apart from silent exports.')
parser.add_argument('--narration-padding', type=float, default=0.5,
help='Seconds to add after each narration before auto-advance (default: 0.5)')
@@ -361,10 +364,13 @@ Recorded narration:
# --native-objects yields a materially different file (real editable
# PowerPoint chart/table objects instead of flattened shapes), so mark
# it in the default-flow name to tell it apart from a plain shape export
# and the _svg snapshot. Flag-driven (not content-sniffed) so the name is
# predictable; an explicit -o keeps the caller's exact name untouched.
# and the _svg snapshot. Narration flags likewise mark _narrated (audio
# embedded per slide + auto-advance timings); both entry points share
# the tag. Flag-driven (not content-sniffed) so the name is predictable;
# an explicit -o keeps the caller's exact name untouched.
native_tag = "_native_charts" if args.native_objects else ""
native_path = exports_dir / f"{project_name}_{timestamp}{native_tag}.pptx"
narrated_tag = "_narrated" if (args.recorded_narration or args.narration_audio_dir) else ""
native_path = exports_dir / f"{project_name}_{timestamp}{native_tag}{narrated_tag}.pptx"
# svg_output/ snapshot always goes under backup/<ts>/ in default-flow
# mode (no -o). --svg-snapshot only controls the optional legacy
# SVG-rendered pptx, which now sits alongside the native pptx in
@@ -149,7 +149,7 @@ python3 skills/ppt-master/scripts/svg_to_pptx.py <project_path> \
If `notes_to_audio.py` errors with a missing dependency or missing provider API key, fix the prerequisite and re-run — do NOT swallow the error.
`--recorded-narration audio` prepares PowerPoint's recorded timings and narrations: every slide must have a matching supported audio file, every duration must be readable by `ffprobe`, and object animations must not use `--animation-trigger on-click`. Use `after-previous` or `with-previous` for narrated/video export.
`--recorded-narration audio` prepares PowerPoint's recorded timings and narrations: every slide must have a matching supported audio file, every duration must be readable by `ffprobe`, and object animations must not use `--animation-trigger on-click`. Use `after-previous` or `with-previous` for narrated/video export. The re-export is saved as `exports/<project_name>_<timestamp>_narrated.pptx`, telling it apart from silent exports.
---
@@ -2,8 +2,8 @@
"sourceId": "shadcn",
"repo": "https://github.com/shadcn-ui/ui.git",
"ref": "main",
"commit": "68e1f171aa8c6ce2e38cb9a7d1463d6bcf357e91",
"commit": "093a538453d3455159fb12a9cc897e39826f9522",
"adapter": "claude-skill",
"sourcePath": "skills/shadcn",
"syncedAt": "2026-07-07T16:00:00Z"
"syncedAt": "2026-07-08T16:00:01Z"
}