Not in the top 1,000 by GitHub stars
zjp1997720/zhijian-skills
Canonical source and governance toolkit for Zhijian AI public Agent Skills
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/codex-cli-model-bridge/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/codex-doctor/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/codex-external-handoff/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/codex-handoff/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/codex-image-gen/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/codex-model-routing-team/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/codex-skill-admin/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/codex-theme-studio/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/enterprise-clone-builder/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/gpt56-sol-pro-consult/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/html-express/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/leadbook/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/light-plan-and-work/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/scholar-stickers/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/skill-open-sourcer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/web-clipper/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/wechat-article-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/wechat-styler/SKILL.md
Week of Nov 2, 2026 · +2 / −2 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
- 5 version: 1.18.2
+ 5 version: 1.18.3
- 104 **版本:** 1.18.2 · **作者:** 大鹏
+ 104 **版本:** 1.18.3 · **作者:** 大鹏
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/workbuddy-cli-model-bridge/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
skills/wxmp-article-harvester/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d3bca91227aa → d09cc28cd091
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d3bca91227aa
No earlier version was observed for comparison.
Verified commit d09cc28cd0915808534ea3bf199f17efa75553a6
git clone --filter=blob:none --no-checkout https://github.com/zjp1997720/zhijian-skills.git .hotskills/zjp1997720-zhijian-skills && git -C .hotskills/zjp1997720-zhijian-skills checkout --detach d09cc28cd0915808534ea3bf199f17efa75553a6
# Copy each selected skill directory from .hotskills/zjp1997720-zhijian-skills into .agents/skills/<skill-name>/Heat
1.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- codex-cli-model-bridge
skills/codex-cli-model-bridge - codex-doctor
skills/codex-doctor - codex-external-handoff
skills/codex-external-handoff - codex-handoff
skills/codex-handoff - codex-image-gen
skills/codex-image-gen - codex-model-routing-team
skills/codex-model-routing-team - codex-skill-admin
skills/codex-skill-admin - codex-theme-studio
skills/codex-theme-studio - enterprise-clone-builder
skills/enterprise-clone-builder - gpt56-sol-pro-consult
skills/gpt56-sol-pro-consult - html-express
skills/html-express - leadbook
skills/leadbook - light-plan-and-work
skills/light-plan-and-work - scholar-stickers
skills/scholar-stickers - skill-open-sourcer
skills/skill-open-sourcer - web-clipper
skills/web-clipper - wechat-article-search
skills/wechat-article-search - wechat-styler
skills/wechat-styler - workbuddy-cli-model-bridge
skills/workbuddy-cli-model-bridge - wxmp-article-harvester
skills/wxmp-article-harvester
How it works
codex-cli-model-bridge
When your agent uses it
Install, audit, repair, and manage Codex custom model Providers and model catalogs backed by a loopback CLIProxyAPI or Codex Router. Use whenever the user asks to add, remove, upgrade, restore, or diagnose third-party models in Codex or the Codex desktop model picker; mentions Grok, OpenCode Go, DeepSeek, Gemini, GLM Coding Plan, GLM-5.3, subscription-backed CLI models, custom model_provider, model_catalog_json, or Codex Fast mode; or wants the same local proxy models synchronized between Codex and WorkBuddy. Preserve unrelated Codex configuration and credentials. Isolated profile is the default Windows path.
What it loads into context
Frontmatter
159 tokensAlways available to the agent
SKILL.md
3,973 tokensWhen the skill is activated
Reference documents
3,287 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Resolve the Skill directory
- Default workflow
- Repair workflow
- Safety boundaries
- Completion gate
Scripts executed separately
scripts/bridge.pyscripts/transparent_proxy.mjstests/test_bridge.py
Files
LICENSEasset1,067 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesSKILL.mdcore17,944 bytesagents/openai.yamlasset377 bytesevals/evals.jsonasset1,396 bytesmodels/deepseek-v4-flash.jsonasset475 bytesmodels/deepseek-v4-pro.jsonasset468 bytesmodels/grok-4.6.jsonasset469 bytespolicies/catalog.jsonasset313 bytesreferences/glm-coding-plan.mddoc3,465 bytesreferences/model-manifests.mddoc1,802 bytesreferences/troubleshooting.mddoc5,463 bytesreferences/windows.mddoc2,424 bytesscripts/bridge.pyruns75,708 bytesscripts/transparent_proxy.mjsruns4,316 bytestests/test_bridge.pyruns26,943 bytes
Read SKILL.md
# Codex CLI Model Bridge
Manage subscription-backed or local proxy models in Codex without treating Codex like WorkBuddy. Codex uses a Responses API Provider plus a model catalog; WorkBuddy uses independent JSON entries. Share CLIProxyAPI infrastructure and verified Provider facts, but keep each application's writer and state separate.
Codex selects one `model_provider` for a task. Model catalog entries do not carry per-model Provider routing. Preserve the Provider identity that owns the majority of indexed task history (normally `openai`). For normal Desktop use, the supported bridge design keeps `model_provider = "openai"`, keeps ChatGPT subscription auth intact, and points the built-in Provider's `openai_base_url` at an owner-only loopback header-rewriting proxy. CLIProxyAPI then routes native GPT subscription models and verified third-party models behind one catalog without changing the task Provider identity. Keep the isolated `$CODEX_HOME/cli-proxy.config.toml` profile as the default path on Windows and as a fallback everywhere else.
This is transparent single-Provider routing, not per-model Provider routing. Never set the Desktop default to `cli_proxy` or vendor `ZAI` when most history belongs to `openai`.
When the user wants GLM-5.3 from a Coding Plan key, read [glm-coding-plan.md](references/glm-coding-plan.md). If Desktop already uses Codex Router on port 4202, add `zai-coding` there and keep the OpenAI Provider identity. Do not run `npx @z_ai/coding-helper`.
On Windows, start with the isolated profile. Read [windows.md](references/windows.md). Do not require Homebrew, LaunchAgents, or Codex Router.
## Resolve the Skill directory
View the complete source on GitHubcodex-doctor
When your agent uses it
Audit Codex installation health and workspace context quality by combining the built-in `codex doctor` report with read-only checks for AGENTS.md scope, instruction bloat or duplication, Skills, MCP, hooks, config, thread-provider history scope, Git state, and repository-root hygiene. Use whenever the user asks for `/doctor`, `/checkup`, Codex health checks, context cleanup, AGENTS.md cleanup, unused or broken Skills/MCP/hooks, missing history after provider changes, slow or polluted context, or asks why Codex is ignoring rules. Default to diagnosis only; never edit, disable, delete, trust, install, update, authenticate, move, or clean anything without a separately approved finding-level diff.
What it loads into context
Frontmatter
153 tokensAlways available to the agent
SKILL.md
1,257 tokensWhen the skill is activated
Reference documents
927 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Run the check
- Interpret findings
- Unused Skill evidence
- Report structure
- Repair protocol
- Completion checks
Scripts executed separately
scripts/scan_workspace.pytests/test_scan_workspace.py
Files
.gitignoreasset58 bytesLICENSEasset1,067 bytesSKILL.mdcore6,046 bytesSKILL.mdcore6,046 bytesSKILL.mdcore6,046 bytesSKILL.mdcore6,046 bytesSKILL.mdcore6,046 bytesSKILL.mdcore6,046 bytesSKILL.mdcore6,046 bytesSKILL.mdcore6,046 bytesagents/openai.yamlasset213 bytesevals/evals.jsonasset2,836 bytesreferences/checks-and-repair-policy.mddoc4,616 bytesscripts/scan_workspace.pyruns53,801 bytestests/test_scan_workspace.pyruns16,767 bytes
Read SKILL.md
# Codex Doctor
Run a two-layer health check:
1. Reuse Codex's stable built-in `codex doctor --json` for installation, config, auth, runtime, Git environment, terminal, app-server, update, and thread-inventory checks. Derive one narrow provider-scope warning when the default provider represents only a small minority of indexed history.
2. Run the bundled read-only scanner for workspace context governance that the built-in command does not cover.
The scanner gathers deterministic evidence. You make the semantic judgment. This separation matters because a script can prove that text repeats, but it cannot safely decide that a business fact, safety boundary, brand voice, or directory rule is disposable.
## Run the check
Resolve the Skill directory from the loaded Skill path, then run:
```bashView the complete source on GitHubcodex-external-handoff
When your agent uses it
从 WorkBuddy、Claude Code 或其他本地 Agent 无头调用 Codex App Server,创建可见、命名、持久的 Codex Thread,并执行继续追问、状态查询、结果取回、取消和打开。用于复杂研究、跨项目取材、章节审校、确定性工程或重要决策;一次性格式检查和无需保留上下文的小提取继续用 codex exec --ephemeral,Codex 内部组队不走本 Skill。
What it loads into context
Frontmatter
114 tokensAlways available to the agent
SKILL.md
1,058 tokensWhen the skill is activated
Reference documents
1,004 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 目标
- 运行入口
- 路由
- 执行
- 交接合同
- 完成标准
Scripts executed separately
scripts/codex_external_handoff.pytests/test_codex_external_handoff.py
Files
SKILL.mdcore3,978 bytesSKILL.mdcore3,978 bytesSKILL.mdcore3,978 bytesSKILL.mdcore3,978 bytesSKILL.mdcore3,978 bytesSKILL.mdcore3,978 bytesSKILL.mdcore3,978 bytesSKILL.mdcore3,978 bytesSKILL.mdcore3,978 bytesagents/interface.yamlasset776 bytesagents/openai.yamlasset314 bytesevals/semantic_config.jsonasset3,844 bytesevals/trigger_cases.jsonasset1,393 bytesmanifest.jsonasset1,025 bytesreferences/app-server-contract.mddoc1,766 bytesreferences/task-package.mddoc1,899 bytesrequirements.txtdoc24 bytesscripts/codex_external_handoff.pyruns28,103 bytessecurity/permission_policy.jsonasset3,139 bytestests/test_codex_external_handoff.pyruns5,688 bytes
Read SKILL.md
# Codex External Handoff
## 目标
让外部 Agent 把正式任务交给本地 Codex,同时保留后台执行的顺畅和可见 Thread 的监督、恢复与人工接管能力。
## 运行入口
从已安装 Skill 目录调用脚本:
```bash
HANDOFF="skills/codex-external-handoff/scripts/codex_external_handoff.py"
python3 "$HANDOFF" doctor
```View the complete source on GitHubcodex-handoff
When your agent uses it
Roll an oversized or slow Codex task into a fresh user-visible task with compact continuity. Use only for an explicit handoff or context rollover; not for ordinary continuation, delegation, full-history forks, Git migration, or handoff files.
What it loads into context
Frontmatter
75 tokensAlways available to the agent
SKILL.md
576 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Preconditions
- Build the continuity prompt
- Create the fresh task
- Exclusions
Scripts executed separately
tests/test_contract.py
Files
SKILL.mdcore2,780 bytesagents/interface.yamlasset611 bytesagents/openai.yamlasset305 bytesevals/output/cases.jsonlasset3,916 bytesevals/semantic_config.jsonasset2,269 bytesevals/trigger_cases.jsonasset1,756 bytesmanifest.jsonasset411 bytestests/test_contract.pyruns2,895 bytes
Read SKILL.md
# Codex Handoff
## Preconditions
- Explicit invocation approves one user-owned task. Arguments set its focus; otherwise recover the current objective from verified context.
- Require `list_projects` and `create_thread`. If unavailable, stop; do not substitute a shell command or Markdown file.
## Build the continuity prompt
Write a self-contained prompt of roughly 2,000–4,000 Chinese characters or comparable size. Prefer smaller when links carry detail. Include:
- objective and first action;
- completed work and current state;
- decisions, constraints, and material rejected alternatives;View the complete source on GitHubcodex-image-gen
When your agent uses it
给任何已登录 Codex CLI 的 Agent 提供本地生图能力,零私有依赖。只要用户提到生图、画图、生成图片、image generation、文生图、配图、插图、封面、海报、根据 prompt 出图,或要把本机 `~/.codex/auth.json` 里的 Codex OAuth 登录态复用成可执行脚本,都应优先使用本 skill。适用于 Claude Code、Codex、OpenCode 等任何能运行 bash / python3 脚本的 Agent。
What it loads into context
Frontmatter
142 tokensAlways available to the agent
SKILL.md
2,281 tokensWhen the skill is activated
Reference documents
4,016 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 前置条件
- 这个 skill 能做什么
- 核心脚本
- CLI 参数
- 推荐工作方式
- Agent 执行规则
- 成功输出约定
- 失败处理
- 参考文档
Scripts executed separately
scripts/codex_image.pytests/test_codex_image.py
Files
SKILL.mdcore7,899 bytesSKILL.mdcore7,899 bytesSKILL.mdcore7,899 bytesSKILL.mdcore7,899 bytesSKILL.mdcore7,899 bytesSKILL.mdcore7,899 bytesSKILL.mdcore7,899 bytesSKILL.mdcore7,899 bytesSKILL.mdcore7,899 bytesSKILL.mdcore7,899 bytesSKILL.mdcore7,899 bytesagents/openai.yamlasset248 bytesevals/evals.jsonasset3,305 bytesreferences/api-notes.mddoc6,657 bytesreferences/prompting.mddoc6,990 bytesscripts/codex_image.pyruns29,891 bytestests/test_codex_image.pyruns14,172 bytes
Read SKILL.md
# Codex Image Gen
目标:把“本机已登录的 Codex OAuth 生图能力”封装成一个**零私有依赖**的跨 Agent Skill。
它不依赖任何私有模块;任何能执行 `python3` 的 Agent,只要宿主机已经装好 Codex CLI 并执行过 `codex auth login`,就能直接调用 `scripts/codex_image.py` 生图或做图像编辑。
## 前置条件
必须同时满足:
1. 本机已安装 Codex CLI
2. 已执行过 `codex auth login`
3. `~/.codex/auth.json` 存在且可读
4. 机器可访问:View the complete source on GitHubcodex-model-routing-team
When your agent uses it
为有净收益的独立子任务安排多模型协作;简单或强顺序任务直接执行。
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
1,155 tokensWhen the skill is activated
Reference documents
21,109 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 按需选择路径
- 所有路径共用
- 硬门
- 输出契约
Scripts executed separately
scripts/compile_route_plan.pyscripts/model_preflight.pyscripts/prepare_native_team.pyscripts/route_policy.pyscripts/validate_route_plan.pyscripts/validate_team_ledger.pyscripts/validate_team_plan.pytests/test_ephemeral_cli_routing.pytests/test_luna_routing.py
Files
LICENSEasset1,076 bytesSKILL.mdcore4,373 bytesagents/interface.yamlasset1,150 bytesagents/openai.yamlasset341 bytesevals/model-routing-recovery.jsonasset5,768 bytesevals/team-planning-semantic-config.jsonasset1,619 bytesevals/team-planning-trigger-cases.jsonasset1,691 bytesevals/team-planning.jsonasset2,116 bytesevals/upstream-skill-integration.jsonasset2,372 bytesreferences/audit-schema.jsonasset2,808 bytesreferences/cli-audit-schema.jsonasset1,090 bytesreferences/durable-mode.mddoc1,961 bytesreferences/ephemeral-cli-surface.mddoc2,202 bytesreferences/model-registry.jsonasset9,745 bytesreferences/native-audit-schema.jsonasset3,832 bytesreferences/native-quick-path.mddoc2,920 bytesreferences/native-subagent-lifecycle.mddoc2,962 bytesreferences/official-multi-agent-v2-evidence.mddoc3,346 bytesreferences/provider-policy.mddoc5,314 bytesreferences/recovery-policy.mddoc8,963 bytesreferences/route-compiler.mddoc5,258 bytesreferences/routing-policy.mddoc8,609 bytesreferences/surface-selection-policy.mddoc3,904 bytesreferences/task-packet.mddoc3,754 bytesreferences/team-plan.mddoc5,269 bytesreferences/thread-lifecycle.mddoc6,199 bytesreferences/thread-supervision-protocol.mddoc7,334 bytesreferences/upstream-skill-adapter.mddoc5,367 bytesreferences/validation-cases.mddoc7,538 bytesscripts/compile_route_plan.pyruns37,458 bytesscripts/model_preflight.pyruns19,500 bytesscripts/prepare_native_team.pyruns5,006 bytesscripts/route_policy.pyruns751 bytesscripts/validate_route_plan.pyruns26,962 bytesscripts/validate_team_ledger.pyruns35,726 bytesscripts/validate_team_plan.pyruns18,469 bytestests/test_ephemeral_cli_routing.pyruns7,617 bytestests/test_luna_routing.pyruns8,609 bytes
Read SKILL.md
# Codex 模型路由团队
主 Agent 保持模型并负责集成验收;独立执行交给 1–3 个 Worker。两个以上 Worker 先编译 TeamPlan;边界明确且可验收的执行默认 GPT-6 Luna XHigh,复杂执行 Luna Max;未决判断 Sol Medium/High,高风险 Sol High,关键独立审查 Sol XHigh。派遣前声明 `task_contract`:决策是否已定、如何验收;提示词长或文件多不单独触发 Sol。
## 按需选择路径
- 默认原生 Standard、新 standard 团队且单元可共用风险路由:读 [原生简洁路径](references/native-quick-path.md),用 `scripts/prepare_native_team.py` 一次生成已校验派遣参数和初始账本。
- 路由不同、Fast、单 Worker 或已有团队恢复:读 [编译器接口](references/route-compiler.md);两个以上 Worker 按 [TeamPlan](references/team-plan.md) 校验,原生执行读 [生命周期](references/native-subagent-lifecycle.md)。
- 需要用户明确要求的持久 Task:核对宿主授权后读 [Thread 生命周期](references/thread-lifecycle.md) 与 [监督协议](references/thread-supervision-protocol.md)。worktree 需求本身不授权创建 Task。
- 用户点名 exact CLI model:读 [CLI Surface](references/ephemeral-cli-surface.md),核对 help/catalog、授权与 fresh context。
- 上游 Skill 已定义拆分、阶段和产物时,遵守 [适配协议](references/upstream-skill-adapter.md),不重做阶段门或业务账本。
## 所有路径共用
View the complete source on GitHubcodex-skill-admin
When your agent uses it
核对、启停或恢复Codex Skill可见性与加载开销;不卸载插件。
What it loads into context
Frontmatter
34 tokensAlways available to the agent
SKILL.md
1,594 tokensWhen the skill is activated
Reference documents
451 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- Workflow
- Usage Evidence
- Verification
- Restore
- Direct Set
- Manual Protocol Notes
Scripts executed separately
scripts/codex_skill_admin.py
Files
LICENSEasset1,068 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesSKILL.mdcore6,715 bytesagents/openai.yamlasset208 bytesreferences/app-server-protocol.mddoc1,717 bytesscripts/codex_skill_admin.pyruns50,551 bytes
Read SKILL.md
# Codex Skill Admin
Use Codex's official skill config API. Do not edit `SKILL.md` frontmatter to disable a skill, and do not uninstall plugins unless the user explicitly asks for uninstall.
## Quick Start
Use the bundled script for normal work:
```bash
SKILL_DIR="${CODEX_SKILL_ADMIN_DIR:-$HOME/.agents/skills/codex-skill-admin}"
if [ ! -d "$SKILL_DIR" ]; then
SKILL_DIR="${CODEX_HOME:-$HOME/.codex}/skills/codex-skill-admin"
fi
python3 "$SKILL_DIR/scripts/codex_skill_admin.py" list --cwd "$PWD"View the complete source on GitHubcodex-theme-studio
When your agent uses it
Design, install, switch, verify, repair, pause, or restore reversible themes for the official Codex Desktop app on macOS. Use when a user asks to change Codex fonts, colors, artwork, homepage banners, radii, density, selection states, or advanced layout; reuse a bundled preset; diagnose a failed skin injection; or return to the official appearance. Do not use for Windows, Linux, ChatGPT web, ZCode, Doubao Work, third-party Codex builds, or direct app.asar modification.
What it loads into context
Frontmatter
117 tokensAlways available to the agent
SKILL.md
1,161 tokensWhen the skill is activated
Reference documents
8,806 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Modes
- Workflow
- Safe theme layer
- Advanced layout layer
- output contract
- Input files
- rollback boundary
- trust report
- Do not use
Scripts executed separately
assets/renderer-inject.jspackage.jsonscripts/audit-skill-package.mjsscripts/base-theme-state.mjsscripts/common-macos.shscripts/customize-theme-macos.shscripts/doctor-macos.shscripts/import-preset-macos.shscripts/injector.mjsscripts/install-dream-skin-macos.shscripts/install-resident-manager-macos.shscripts/list-presets.mjsscripts/load-image-theme-macos.shscripts/pause-dream-skin-macos.shscripts/resident-manager-macos.shscripts/restore-dream-skin-macos.shscripts/restore-version-macos.shscripts/start-dream-skin-macos.shscripts/status-dream-skin-macos.shscripts/switch-theme-macos.shscripts/theme-config.mjsscripts/verification-contract.mjsscripts/verify-dream-skin-macos.shscripts/version-backup-state.mjsscripts/write-theme.mjstests/base-theme-state.test.mjstests/resident-manager.test.mjstests/run-tests.shtests/skill-package.test.mjstests/verifier-contract.test.mjstests/version-backup-state.test.mjstests/zhijian-theme.test.mjs
Files
LICENSEasset1,093 bytesNOTICE.mddoc1,830 bytesSKILL.mdcore5,631 bytesUPSTREAM_COMMITasset41 bytesVERSIONasset6 bytesagents/interface.yamlasset246 bytesagents/openai.yamlasset294 bytesassets/base-codex-theme.txtdoc295 bytesassets/dream-skin.cssasset20,029 bytesassets/generic-workflow.pngasset59,093 bytesassets/generic-workflow.svgasset2,198 bytesassets/renderer-inject.jsruns13,429 bytesassets/theme.jsonasset1,060 bytesevals/history/2026-09-04-v1.2.0.jsonasset780 bytesevals/output/cases.jsonlasset2,961 bytesevals/trigger_cases.jsonasset754 bytesmanifest.jsonasset1,106 bytespackage-lock.jsonasset250 bytespackage.jsonruns233 bytespresets/graphite-paper/generic-workflow.pngasset59,093 bytespresets/graphite-paper/preset.jsonasset201 bytespresets/graphite-paper/theme.jsonasset1,060 bytespresets/zhijian-ai/portal-hero-v2.pngasset1,755,792 bytespresets/zhijian-ai/preset.jsonasset408 bytespresets/zhijian-ai/theme.jsonasset1,066 bytesreferences/asset-provenance.mddoc2,854 bytesreferences/capability-boundary.mddoc1,508 bytesreferences/compatibility-policy.mddoc1,399 bytesreferences/design-workflow.mddoc3,095 bytesreferences/imagegen-assets.mddoc2,953 bytesreferences/operator-runbook.mddoc3,476 bytesreferences/output-eval-baseline.mddoc1,261 bytesreferences/preset-policy.mddoc1,243 bytesreferences/provenance.mddoc852 bytesreferences/qa-inventory.mddoc3,574 bytesreferences/safety-and-rollback.mddoc3,452 bytesreferences/theme-schema.mddoc1,628 bytesreferences/troubleshooting.mddoc2,790 bytesreferences/verification-contract.mddoc2,668 bytesscripts/audit-skill-package.mjsruns2,897 bytesscripts/base-theme-state.mjsruns6,408 bytesscripts/common-macos.shruns21,894 bytesscripts/customize-theme-macos.shruns4,737 bytesscripts/doctor-macos.shruns3,081 bytesscripts/import-preset-macos.shruns1,646 bytesscripts/injector.mjsruns51,138 bytesscripts/install-dream-skin-macos.shruns6,867 bytesscripts/install-resident-manager-macos.shruns3,010 bytesscripts/list-presets.mjsruns1,515 bytesscripts/load-image-theme-macos.shruns4,051 bytesscripts/pause-dream-skin-macos.shruns2,305 bytesscripts/resident-manager-macos.shruns2,134 bytesscripts/restore-dream-skin-macos.shruns2,208 bytesscripts/restore-version-macos.shruns1,568 bytesscripts/start-dream-skin-macos.shruns4,807 bytesscripts/status-dream-skin-macos.shruns3,041 bytesscripts/switch-theme-macos.shruns2,021 bytesscripts/theme-config.mjsruns5,714 bytesscripts/verification-contract.mjsruns12,849 bytesscripts/verify-dream-skin-macos.shruns1,494 bytesscripts/version-backup-state.mjsruns16,889 bytesscripts/write-theme.mjsruns5,146 bytessecurity/network_policy.jsonasset1,005 bytessecurity/permission_policy.jsonasset2,695 bytessecurity/trust-baseline.mddoc3,232 bytesskill-ir/examples/codex-theme-studio.jsonasset5,958 bytestests/base-theme-state.test.mjsruns3,008 bytestests/fixtures/v3-degraded-state.jsonasset1,659 bytestests/fixtures/v3-home-state.jsonasset2,898 bytestests/fixtures/v3-system-state.jsonasset1,250 bytestests/fixtures/v3-task-state.jsonasset2,323 bytestests/resident-manager.test.mjsruns2,128 bytestests/run-tests.shruns6,794 bytestests/skill-package.test.mjsruns2,463 bytestests/verifier-contract.test.mjsruns12,460 bytestests/version-backup-state.test.mjsruns9,996 bytestests/zhijian-theme.test.mjsruns12,100 bytes
Read SKILL.md
# Codex Theme Studio
Turn a visual direction, brand system, or supplied image into a reversible Codex Desktop theme through loopback-only Chrome DevTools injection.
## Modes
- **Design**: prepare a portable theme directory and validate it without installing or restarting Codex.
- **Apply**: run the safety preflight, install the runtime, and import or create a theme. Obtain explicit authorization before restarting a running Codex app.
- **Verify or repair**: reproduce the affected route, run deterministic tests, Doctor, and live Verify, then repair only selector or layout failures supported by evidence.
- **Pause or restore**: Pause removes the active styling. Restore also stops the managed CDP session and returns Codex to the official appearance.
## Workflow
1. Read [capability-boundary.md](references/capability-boundary.md). Confirm the official macOS host, authorization boundary, and excluded targets.View the complete source on GitHubenterprise-clone-builder
When your agent uses it
企业数字分身建库工具。从企业名称 + 本地资料 + 公开信息出发,一次性构建一个完整的、标准化的企业分身仓库(AGENTS.md + 企业画像 + 内容资产 + 文风样本 + 调研记录),该仓库可直接被 enterprise-clone-writer 消费进行内容写作。 **强触发场景**: - 「给这家企业建一个数字分身」「构建企业分身仓库」 - 「把这家企业的资料整理成 AI 能用的分身」 - 交付团队需要标准化地给客户企业建分身 **不要用在**: - 分身仓库已建好后的写作任务(用 enterprise-clone-writer) - 个人创作者写作分身(用 writing-clone-profile) - 只是整理企业资料但不建分身仓库
What it loads into context
Frontmatter
220 tokensAlways available to the agent
SKILL.md
2,883 tokensWhen the skill is activated
Reference documents
4,867 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 这是什么
- 使用者
- 输入参数
- 主流程
- 完成标准
- 运行模式
- 使用 subagent 提速
- 与 enterprise-clone-writer 的对接
- 适用边界
- 不做
- 文件职责
- 客户资料收集清单
Files
LICENSEasset1,065 bytesSKILL.mdcore10,274 bytesagents/interface.yamlasset287 bytesreferences/directory-spec.mddoc2,616 bytesreferences/extraction-guide.mddoc4,010 bytesreferences/local-intake-guide.mddoc4,533 bytesreferences/voice-analysis-guide.mddoc3,350 bytesreferences/web-clipper-usage.mddoc2,303 bytes
Read SKILL.md
# Enterprise Clone Builder
## 这是什么
企业分身的建库工具。输入企业名称和资料,输出一个完整的、标准化的分身仓库。
一句话:**builder 建库,writer 写作。builder 产出的仓库,直接被 enterprise-clone-writer 消费。**
## 使用者
智见AI交付团队(大鹏或团队成员)。使用者是专业人士,不是企业客户。
客户买的是建好的分身成品。builder 是生产工具,不是交付给客户的自助工具。
View the complete source on GitHubgpt56-sol-pro-consult
When your agent uses it
Use ChatGPT Web's GPT 5.6 Sol Pro as a verified second-opinion partner for difficult planning, architecture, debugging, business, product, content-strategy, risk-review, and Skill-design work. Use when the user asks for GPT 5.6 Sol Pro, ChatGPT Pro, a deeper outside judgment, or a file-grounded review. Default to the Codex Chrome plugin for text, model selection, file uploads, waiting, and extraction. Use OpenCLI only when the user explicitly requests it or the Chrome plugin is unavailable and OpenCLI passes preflight.
What it loads into context
Frontmatter
129 tokensAlways available to the agent
SKILL.md
1,718 tokensWhen the skill is activated
Reference documents
2,170 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Routing contract
- Requirements
- Hard gates
- Workflow
- Context assembly
- Attachments
- Completion contract
- Local integration
- Failure handling
Scripts executed separately
scripts/build_attachment_bundle.pyscripts/check_packet_safety.pyscripts/extract_chatgpt_reply.pyscripts/run_gpt56_sol_pro_consult.pytests/test_model_selection.pytests/test_skill_contract.py
Files
SKILL.mdcore8,249 bytesSKILL.mdcore8,249 bytesSKILL.mdcore8,249 bytesSKILL.mdcore8,249 bytesSKILL.mdcore8,249 bytesSKILL.mdcore8,249 bytesSKILL.mdcore8,249 bytesagents/openai.yamlasset278 bytesevals/evals.jsonasset3,398 bytesreferences/chrome-workflow.mddoc6,648 bytesreferences/context-packet-template.mddoc1,383 bytesreferences/opencli-fallback.mddoc1,737 bytesscripts/build_attachment_bundle.pyruns5,383 bytesscripts/check_packet_safety.pyruns4,409 bytesscripts/extract_chatgpt_reply.pyruns3,062 bytesscripts/run_gpt56_sol_pro_consult.pyruns12,679 bytestests/test_model_selection.pyruns1,845 bytestests/test_skill_contract.pyruns2,681 bytes
Read SKILL.md
# GPT 5.6 Sol Pro Consult
Ask GPT 5.6 Sol Pro to review a difficult problem with the evidence it needs, then bring the result back into the local Agent workflow. Treat the answer as advisory. The local Agent owns verification, adoption, and final delivery.
## Routing contract
Use the Codex Chrome plugin by default for every consultation, including text-only requests. Read and follow the installed `chrome:control-chrome` Skill before browser work, then read [Chrome workflow](references/chrome-workflow.md).
Use OpenCLI only when one of these is true:
- The user explicitly requests OpenCLI.
- The Codex Chrome plugin is unavailable or disconnected, and `opencli doctor` confirms a working browser bridge.
When OpenCLI is eligible, read [OpenCLI fallback](references/opencli-fallback.md). Do not choose OpenCLI merely because it is installed. Do not use OpenCLI for file uploads.View the complete source on GitHubhtml-express
When your agent uses it
把信息密集的内容做成结构化、可读的自包含 HTML——调研报告、对比矩阵、清单、数据看板、决策页。当 Agent 要输出大段信息、对比、指标、时间线,或用户说「做成网页/可视化报告/HTML 报告」时触发。产物是单个可双击打开的 .html 文件。郑重 PDF/简历/PPT/落地页交付请用 kami;视频/动画用 hyperframes;上线部署不在本 skill 范围。
What it loads into context
Frontmatter
144 tokensAlways available to the agent
SKILL.md
1,278 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 为什么是 HTML 不是 Markdown
- 路由:该不该用 html-express
- 组件清单(10 个)
- 组装流程
- 视觉契约(绑定 智见AI DESIGN.md)
- 禁止(Agent 最容易犯的)
- 参考
Files
LICENSEasset1,067 bytesSKILL.mdcore4,146 bytesagents/openai.yamlasset280 bytesassets/components/badge.htmlasset1,221 bytesassets/components/checklist.htmlasset1,422 bytesassets/components/code-block.htmlasset1,182 bytesassets/components/columns.htmlasset1,151 bytesassets/components/comparison-table.htmlasset1,730 bytesassets/components/data-table.htmlasset1,260 bytesassets/components/details.htmlasset1,356 bytesassets/components/metric-card.htmlasset1,328 bytesassets/components/quote-card.htmlasset1,043 bytesassets/components/timeline.htmlasset1,721 bytesassets/demo-all.htmlasset17,572 bytesassets/skeleton.htmlasset2,372 bytesassets/tokens.cssasset3,627 bytes
Read SKILL.md
# html-express
Agent 的日常 HTML 表达层。当信息密度高、读者要费力扫读时,用**单个自包含 HTML** 代替 Markdown。
> 灵感:Anthropic《Using Claude Code: The unreasonable effectiveness of HTML》—— HTML 是 Agent 最好的表达介质。
## 为什么是 HTML 不是 Markdown
- **信息密度**:HTML 能做结构、对比、交互,Markdown 只能堆文本
- **可读性**:表格、指标、时间线用 Markdown 是灾难,用 HTML 是享受
- **自包含**:一个文件,双击即开,零运行环境,可分享
- **判断准则**:读者要「费力扫读」的,升 HTML;一句话能说清的,留 Markdown
## 路由:该不该用 html-expressView the complete source on GitHubleadbook
When your agent uses it
生产独立高质量中文商业短书、白皮书、方法论书、操作手册和 PDF 引流品的写书工作流。适用于用户说“写白皮书”“写引流书”“写方法论短书”“写商业手册”“写 PDF 书”“写企业 AI 落地白皮书”“写个人 IP 白皮书”“写超级个体商业操作系统”“写内容获客手册”。正文必须独立成书,不写销售 CTA,不绑定课程、企微、咨询或分身系统;可额外生成书外分发说明和私域运营包。
What it loads into context
Frontmatter
141 tokensAlways available to the agent
SKILL.md
5,902 tokensWhen the skill is activated
Reference documents
19,045 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 核心边界
- 快速开始
- 工作流
- 书外运营物料
- 资源说明
Scripts executed separately
assets/repo-template/scripts/auto-seed-behavior.pyassets/repo-template/scripts/check-backend-language.pyassets/repo-template/scripts/check-evidence-feasibility.pyassets/repo-template/scripts/check-leadbook.pyassets/repo-template/scripts/export-kami-html.pyassets/repo-template/scripts/export-markdown.pyassets/repo-template/scripts/generate-kami-diagrams.pyassets/repo-template/scripts/leadbook-stage.pyassets/repo-template/scripts/prepare-pdf-visual-audit.pyassets/repo-template/scripts/render-pdf.pyassets/repo-template/scripts/sync-summary.pyassets/repo-template/scripts/xhs-research.pyscripts/scaffold_leadbook.pytests/test_leadbook.py
Files
LICENSEasset1,067 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesSKILL.mdcore22,212 bytesagents/openai.yamlasset240 bytesassets/repo-template/AUTHORITY_ACCOUNTS.mddoc2,487 bytesassets/repo-template/BEHAVIOR_LEDGER.mddoc989 bytesassets/repo-template/BEHAVIOR_SEED_PLAN.mddoc1,282 bytesassets/repo-template/BOOK_BRIEF.mddoc2,550 bytesassets/repo-template/BOOK_SUMMARY.mddoc696 bytesassets/repo-template/CASE_LIBRARY.mddoc1,537 bytesassets/repo-template/CLAIM_LEDGER.mddoc1,710 bytesassets/repo-template/IMAGEGEN_BRIEF.mddoc832 bytesassets/repo-template/OUTLINE.mddoc1,530 bytesassets/repo-template/POSITIONING.mddoc311 bytesassets/repo-template/READER_PROFILE.mddoc395 bytesassets/repo-template/SOURCE_MAP.mddoc3,056 bytesassets/repo-template/TRANSACTION_LEDGER.mddoc1,104 bytesassets/repo-template/VISUAL_PLAN.mddoc1,114 bytesassets/repo-template/assets/diagrams/.gitkeepasset1 bytesassets/repo-template/assets/images/.gitkeepasset1 bytesassets/repo-template/bibliography.mddoc101 bytesassets/repo-template/book-state.yamlasset1,997 bytesassets/repo-template/glossary.mddoc103 bytesassets/repo-template/scripts/auto-seed-behavior.pyruns3,645 bytesassets/repo-template/scripts/check-backend-language.pyruns2,136 bytesassets/repo-template/scripts/check-evidence-feasibility.pyruns3,144 bytesassets/repo-template/scripts/check-leadbook.pyruns64,391 bytesassets/repo-template/scripts/export-kami-html.pyruns15,352 bytesassets/repo-template/scripts/export-markdown.pyruns4,183 bytesassets/repo-template/scripts/generate-kami-diagrams.pyruns15,997 bytesassets/repo-template/scripts/leadbook-stage.pyruns6,158 bytesassets/repo-template/scripts/prepare-pdf-visual-audit.pyruns7,034 bytesassets/repo-template/scripts/render-pdf.pyruns3,631 bytesassets/repo-template/scripts/sync-summary.pyruns17,020 bytesassets/repo-template/scripts/xhs-research.pyruns13,410 bytesassets/repo-template/src/SUMMARY.mddoc85 bytesassets/repo-template/templates/cases-template.mddoc309 bytesassets/repo-template/templates/chapter-template.mddoc1,427 bytesassets/repo-template/templates/introduction-template.mddoc273 bytesassets/repo-template/templates/reader-workbook-template.mddoc627 bytesassets/repo-template/templates/refs-template.mddoc391 bytesassets/repo-template/templates/review-checklist.mddoc3,202 bytesassets/repo-template/templates/self-assessment-template.mddoc278 bytesevals/evals.jsonasset3,697 bytesreferences/evidence-gates.yamlasset1,497 bytesreferences/execution-checkpoints.mddoc1,764 bytesreferences/kami-output.mddoc7,526 bytesreferences/profiles.mddoc9,082 bytesreferences/quality-gates.mddoc12,403 bytesreferences/research-stack.mddoc11,313 bytesreferences/runtime-and-privacy.mddoc1,762 bytesscripts/scaffold_leadbook.pyruns5,878 bytestests/test_leadbook.pyruns18,712 bytes
Read SKILL.md
# Leadbook
用于把一个商业主题写成独立、高质量、可公开传播的中文短书或白皮书。它继承 `tech-book` 的工程化写书骨架,但输出目标从技术出版改为普适商业认知与行动资产。
## 核心边界
- 正文必须独立成立:读者不购买任何产品,也能完整受益。
- 正文禁止硬 CTA:不写“加企微”“领取资料”“购买课程”“咨询我”等转化话术。
- 正文不绑定大鹏的分身系统、课程、定制、企业培训。
- 书外可以生成 `distribution-note.md` 和 `private-domain-pack.md`,但它们不得进入正式 PDF。
- 第一版默认写 30-50 页中文短书,不做 200 页大部头。
- Core 链路只依赖 Python 标准库,可完成脚手架、章节同步、Markdown 导出和质量检查。
- 通用模式默认使用公开 Web;小红书、公众号采集、Nowledge、Obsidian 和 Vault 都是可选 Provider,缺失时不得阻塞成书。
- 正式 PDF 可选使用 `$kami` 的中文 `long-doc.html` 风格:暖纸底、ink-blue、克制 editorial 排版。View the complete source on GitHublight-plan-and-work
When your agent uses it
Create a 3–7 step plan for a bounded task, execute immediately, verify, and hand it back. Use when the user explicitly requests a lightweight plan-and-work flow; do not use for open-ended brainstorming, discovery, high-risk migrations, multi-system architecture, or releases.
What it loads into context
Frontmatter
73 tokensAlways available to the agent
SKILL.md
695 tokensWhen the skill is activated
Reference documents
715 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Route before planning
- Execute
Scripts executed separately
tests/test_contract.py
Files
SKILL.mdcore3,472 bytesagents/interface.yamlasset842 bytesagents/openai.yamlasset330 bytesevals/output/cases.jsonlasset7,168 bytesevals/semantic_config.jsonasset2,227 bytesevals/trigger_cases.jsonasset1,758 bytesmanifest.jsonasset474 bytesreferences/routing-and-verification.mddoc3,800 bytestests/test_contract.pyruns2,891 bytes
Read SKILL.md
# Light Plan and Work
Planning and doing are one continuous workflow.
## Route before planning
Read the request, relevant project instructions, current files, and repository state. Choose one route:
- **Direct execution:** one or two obvious actions. State a one-line brief and do them; do not manufacture a plan.
- **Light plan and work:** the outcome is concrete, the scope is bounded, and 3–7 steps can complete and verify it.
- **Specialist Skill:** a narrower installed Skill owns the artifact or domain. Use it, with this Skill only as the execution wrapper when useful.
- **Discovery or brainstorming:** the user is still choosing the problem, audience, concept, story, or direction. Use a discovery Skill before planning.
- **Heavy workflow:** use the project's full specification or plan/work system when consequence, ambiguity, or coordination cost is high.
View the complete source on GitHubscholar-stickers
When your agent uses it
生成"人物贴纸"式知识介绍交互页面:适用于介绍思想家/科学家/文学家、学科原理、发展历史的课堂教学场景。当用户要"介绍几位人物""做人物贴纸页面""原理科普演示页""学科发展历史互动页"时触发。输入人物姓名、历史朝代、原理知识等,自动查资料并按固定结构生成 16:9 无滚动幻灯片页面(总览 + 每人一页,点击展开交互)。
What it loads into context
Frontmatter
215 tokensAlways available to the agent
SKILL.md
3,396 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. 输入参数
- 2. 工作流程(五步)
- 3. 页面结构(固定,不可擅改)
- 4. 设计规范(课堂可读性优先)
- 5. 模板与资产
- 6. 常见变体
- 7. 红线
Files
SKILL.mdcore10,619 bytesagents/openai.yamlasset28 bytesportraits/confucius.pngasset1,286,543 bytesportraits/dewey.pngasset1,361,137 bytesportraits/piaget.pngasset1,344,076 bytesportraits/rousseau.pngasset1,357,074 bytesportraits/socrates.pngasset1,322,060 bytestemplate.htmlasset25,435 bytes
Read SKILL.md
# Scholar Stickers · 知识人物贴纸幻灯片生成器
把一组人物(思想家 / 科学家 / 文学家 / 历史人物)或一组概念,做成**单文件 16:9 交互幻灯片**:总览页贴纸墙 → 点击贴纸 → 人物详情页(生平可点击展开)。面向教师课堂投影使用,**零滚动、键盘翻页、后排可读**。
---
## 1. 输入参数
| 参数 | 必填 | 说明 | 示例 |
|------|------|------|------|
| `figures` | ✅ | 3–6 位人物名单 | 苏格拉底、孔子、卢梭、杜威、皮亚杰 |
| `domain` | ✅ | 学科领域(决定查资料的方向) | 教育哲学 / 经典物理学 / 唐宋文学 |
| `title` | ✅ | 总览页大标题 | 哲学,从惊讶与疑惑开始 |
| `subtitle` | ⬜ | 总览页引言(默认空) | 我们为何教育…… |View the complete source on GitHubskill-open-sourcer
When your agent uses it
Audit, package, add, verify, and publish local Agent Skills through the canonical zjp1997720/zhijian-skills portfolio. Use when the user gives a SKILL.md or Skill directory and asks to open-source, publish, release, share, validate, manage versions, make installable with npx skills, prepare documentation, or generate launch copy. Every public Skill must live in the canonical repository's nested skills directory; never create or update a standalone Skill repository.
What it loads into context
Frontmatter
125 tokensAlways available to the agent
SKILL.md
2,565 tokensWhen the skill is activated
Reference documents
5,814 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Hard publishing boundary
- WorkBuddy marketplace branch
- Workflow
- Output contract
- Safety rules
- Packaging rules
- Publication verification
- Launch copy
Scripts executed separately
scripts/audit_release_readme.pyscripts/check_release_env.pyscripts/git_sync_guard.pyscripts/manage_local_links.pyscripts/portfolio.pyscripts/release_portfolio.pyscripts/scan_skill_release.pyscripts/verify_isolated_install.pytests/test_audit_release_readme.pytests/test_release_selection.pytests/test_scan_skill_release.pytests/test_skill_contract.pytests/test_verify_isolated_install.py
Files
LICENSEasset1,068 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesSKILL.mdcore11,286 bytesagents/interface.yamlasset236 bytesagents/openai.yamlasset236 bytesreferences/portfolio-mode.mddoc1,650 bytesreferences/readme-design.mddoc9,044 bytesreferences/registry-contract.mddoc868 bytesreferences/release-contract.mddoc2,229 bytesreferences/release-package.mddoc4,681 bytesreferences/security-contract.mddoc905 bytesreferences/third-party-notices.mddoc1,427 bytesreferences/version-contract.mddoc726 bytesreferences/workbuddy-marketplace.mddoc6,388 bytesscripts/audit_release_readme.pyruns13,523 bytesscripts/check_release_env.pyruns6,242 bytesscripts/git_sync_guard.pyruns7,267 bytesscripts/manage_local_links.pyruns10,929 bytesscripts/portfolio.pyruns14,743 bytesscripts/release_portfolio.pyruns23,184 bytesscripts/scan_skill_release.pyruns10,437 bytesscripts/verify_isolated_install.pyruns7,747 bytestests/test_audit_release_readme.pyruns7,873 bytestests/test_release_selection.pyruns10,795 bytestests/test_scan_skill_release.pyruns4,105 bytestests/test_skill_contract.pyruns3,081 bytestests/test_verify_isolated_install.pyruns6,089 bytes
Read SKILL.md
# Skill Open Sourcer
Publish every public Skill from the single canonical repository: `https://github.com/zjp1997720/zhijian-skills`.
## Hard publishing boundary
- A `SKILL.md` path or Skill directory is an import candidate, not a request to create a repository.
- Put the complete agent payload in `skills/<name>/`, human docs in `docs/skills/<name>/`, and release notes in `docs/changelogs/<name>.md`.
- Register the Skill in `registry/skills.json`. Never add `mirror`, `mirror_tag`, standalone repository, redirect workflow, or mirror-export metadata.
- Publish commits, per-Skill Tags, and install instructions only from `zjp1997720/zhijian-skills`.
- Stop on secrets, private paths, client data, unpublished proprietary material, unclear asset ownership, or an unverified canonical remote.
Read [Portfolio mode](references/portfolio-mode.md), [Registry contract](references/registry-contract.md), [Release package](references/release-package.md), and [README design](references/readme-design.md) before writing.
View the complete source on GitHubweb-clipper
When your agent uses it
从单篇文章 URL 或文章索引页/归档页中抓取正文并保存到本地 Markdown。用户提到“收藏文章”“保存网页”“批量抓取页面里的文章”“把这个 archive 页前 N 篇拉下来”“保存到 Obsidian / Clippings / 本地”时必须优先使用。尤其适合公开网页、Substack、博客文章页、文章归档页。遇到懒加载列表、动态页面、静态抓取不全时,先用 browser 收集文章 URL,再调用脚本批量落地,以成功率优先。
What it loads into context
Frontmatter
138 tokensAlways available to the agent
SKILL.md
3,841 tokensWhen the skill is activated
Reference documents
548 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 和 Obsidian / 本地知识库的关系
- 这个 skill 解决什么问题
- 成功率优先的执行策略
- 首次使用与依赖自检
- 输入澄清规则
- 推荐命令
- 浏览器收集 URL 的建议 JS
- 输出要求
- 文件命名
- 失败处理
- 当前已验证成功的站点模式
- 交付回执
- 不该触发这个 skill 的情况
- 安全边界
Scripts executed separately
scripts/bootstrap.shscripts/clip_articles.pyscripts/run_web_clipper.shtests/test_web_clipper.py
Files
LICENSEasset1,067 bytesSKILL.mdcore14,134 bytesSKILL.mdcore14,134 bytesSKILL.mdcore14,134 bytesSKILL.mdcore14,134 bytesSKILL.mdcore14,134 bytesSKILL.mdcore14,134 bytesSKILL.mdcore14,134 bytesSKILL.mdcore14,134 bytesagents/openai.yamlasset252 bytesevals/evals.jsonasset1,646 bytesreferences/config/first-time-setup.mddoc2,117 bytesscripts/bootstrap.shruns9,744 bytesscripts/clip_articles.pyruns30,420 bytesscripts/run_web_clipper.shruns2,952 bytestests/test_web_clipper.pyruns5,434 bytes
Read SKILL.md
# Web Clipper
目标:把「网页文章收藏」做成稳定工作流,而不是一次性手工操作。
## 和 Obsidian / 本地知识库的关系
本 Skill 是文章进入本地知识系统的入口。它不把网页直接冒充成已经整理好的知识,而是先保存为带来源信息的 `source_candidate`,供后续人工筛选、知识编译或写作流程继续处理。
默认分工:
- Obsidian Web Clipper:浏览器里手动剪藏,模板负责生成最小 OKF frontmatter。
- 本 skill:Agent 批量抓取、补抓失败页面、检查文章正文质量。
- 后续知识流程:把高价值候选资料编译成来源卡、概念、方法、案例、练习或写作素材。
View the complete source on GitHubwechat-article-search
When your agent uses it
搜索微信公众号文章技能。通过微信搜索获取文章列表,覆盖科技/AI、社会热点、财经、教育、职场等各类中文资讯;可按关键词检索并返回标题、概要、发布时间、来源公众号与链接。当用户需要查找微信公众号文章、整理参考资料或快速获取文章信息时使用此技能。
What it loads into context
Frontmatter
182 tokensAlways available to the agent
SKILL.md
1,441 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 适用场景
- 工作流程
- 特殊流程(可选)
- 参数说明
- 输出字段(文章对象)
- 常见问题处理
- 注意事项
- Vault 适配说明(deepsight_vault 专属,原版无此段)
Scripts executed separately
package.jsonscripts/search_wechat.jstests/parser.test.js
Files
LICENSEasset1,067 bytesSKILL.mdcore5,403 bytesSKILL.mdcore5,403 bytesSKILL.mdcore5,403 bytesSKILL.mdcore5,403 bytesSKILL.mdcore5,403 bytesSKILL.mdcore5,403 bytesSKILL.mdcore5,403 bytesagents/interface.yamlasset581 bytesagents/openai.yamlasset216 bytespackage-lock.jsonasset11,277 bytespackage.jsonruns299 bytesscripts/search_wechat.jsruns23,383 bytestests/fixtures/search-results.htmlasset438 bytestests/parser.test.jsruns1,405 bytes
Read SKILL.md
# 微信公众号文章搜索说明
## 适用场景
- 用户说“帮我搜某个关键词的公众号文章/最近文章”
- 需要快速拿到:标题、摘要、发布时间、公众号名称、可访问链接
## 工作流程
### 步骤1: 定位脚本和依赖
先把 `SKILL_DIR` 设为本次读取的 `SKILL.md` 所在目录(软链接先解析真实目录)。依赖在该目录内管理;已安装时直接使用,仅缺少依赖时按下文的仓库约定安装,不全局安装,也不在用户项目根目录安装。
### 步骤2: 使用已有输入View the complete source on GitHubwechat-styler
When your agent uses it
将Markdown排版为公众号HTML;组件、动画及已授权的编辑器注入按需启用。
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
1,900 tokensWhen the skill is activated
Reference documents
25,796 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 分支路由
- 授权与能力边界
- 工作流
- 输出合同
- References
Scripts executed separately
package.jsonscripts/brand-cta.mjsscripts/components.mjsscripts/content-density-audit.mjsscripts/convert.mjsscripts/generate-cover-animation.mjsscripts/generate-preview.mjsscripts/inject-to-wechat.mjsscripts/mobile-visual-qa.mjsscripts/qa-browser.mjsscripts/validate.mjsscripts/wechat-image-hosts.mjsscripts/wechat-image-pipeline.mjsscripts/wechat-opencli.mjsscripts/wechat-publish-core.mjstests/brand-cta.test.mjstests/content-density-audit.test.mjstests/cover-animation.test.mjstests/inject-cli.test.mjstests/output-contract.test.mjstests/qa-browser.test.mjstests/wechat-image-pipeline.test.mjstests/wechat-opencli-compat.test.mjstests/wechat-opencli.test.mjstests/wechat-publish-core.test.mjs
Files
LICENSEasset1,072 bytesSKILL.mdcore7,043 bytesagents/interface.yamlasset613 bytesagents/openai.yamlasset505 bytesassets/README.mddoc2,534 bytesassets/brand-cta/manifest.jsonasset4,760 bytesassets/brand-cta/zhijian-cta-ending.svgasset41,403 bytesassets/brand-cta/zhijian-cta-opening.svgasset29,705 bytesassets/xiaolan-terminal-pixel-closed.pngasset126,472 bytesassets/xiaolan-terminal-pixel-open.pngasset122,752 bytesassets/xiaolan-terminal-wave-high.pngasset39,979 bytesassets/xiaolan-terminal-wave-mid.pngasset40,094 bytesassets/zhijian-theme-mobile-baseline.pngasset159,041 bytesassets/zhijian-theme-version-comparison-2026-07.jpgasset493,545 bytespackage-lock.jsonasset3,586 bytespackage.jsonruns528 bytesreferences/brand-cta.mddoc7,157 bytesreferences/component-guide.mddoc15,655 bytesreferences/conversion-workflow.mddoc7,543 bytesreferences/opencli-injection.mddoc9,566 bytesreferences/svg-animation-design.mddoc20,102 bytesreferences/theme-guide.mddoc9,005 bytesreferences/wechat-compatibility.mddoc3,577 bytesreferences/zhijian-theme-baseline.mddoc7,726 bytesscripts/brand-cta.mjsruns5,499 bytesscripts/components.mjsruns17,629 bytesscripts/content-density-audit.mjsruns7,273 bytesscripts/convert.mjsruns67,965 bytesscripts/generate-cover-animation.mjsruns79,120 bytesscripts/generate-preview.mjsruns9,056 bytesscripts/inject-to-wechat.mjsruns17,666 bytesscripts/mobile-visual-qa.mjsruns10,505 bytesscripts/qa-browser.mjsruns1,566 bytesscripts/validate.mjsruns10,401 bytesscripts/wechat-image-hosts.mjsruns351 bytesscripts/wechat-image-pipeline.mjsruns8,114 bytesscripts/wechat-opencli.mjsruns22,319 bytesscripts/wechat-publish-core.mjsruns14,573 bytestests/brand-cta.test.mjsruns11,476 bytestests/content-density-audit.test.mjsruns2,500 bytestests/cover-animation.test.mjsruns20,330 bytestests/fixtures/zhijian-visual-baseline.mddoc1,162 bytestests/inject-cli.test.mjsruns11,528 bytestests/output-contract.test.mjsruns18,467 bytestests/qa-browser.test.mjsruns1,805 bytestests/wechat-image-pipeline.test.mjsruns5,563 bytestests/wechat-opencli-compat.test.mjsruns4,795 bytestests/wechat-opencli.test.mjsruns1,716 bytestests/wechat-publish-core.test.mjsruns4,783 bytesthemes/elegant.yamlasset1,067 bytesthemes/kami.yamlasset1,459 bytesthemes/magazine-forest.yamlasset1,393 bytesthemes/magazine-indigo.yamlasset1,403 bytesthemes/magazine-ink.yamlasset1,384 bytesthemes/minimal.yamlasset1,000 bytesthemes/modern.yamlasset1,075 bytesthemes/zhijian.yamlasset2,361 bytes
Read SKILL.md
# WeChat Styler
把已定稿或已授权排版的 Markdown 转成可评审公众号 HTML。默认保留正文并自动加入智见品牌首尾引导(默认 Flow 纸色底 GIF,SVG 为 `--cta-style svg` 备用);组件改写、主题开场动画和微信编辑器注入按需加载。

## 分支路由
先选分支,再读取对应 reference。默认转换无需读取组件、动画或编辑器细则。
| 用户需求 | 执行分支 | 读取 |
|---|---|---|
| 公众号排版、HTML、换主题、批量转换 | 默认转换 | `references/conversion-workflow.md`;主题需要判断时再读 `references/theme-guide.md` |
| 结构化组件、丰富排版、开场动画 | 组件与动画 | 默认转换 reference + `references/component-guide.md` + `references/svg-animation-design.md` |View the complete source on GitHubworkbuddy-cli-model-bridge
When your agent uses it
Install, audit, repair, and manage a loopback-only CLIProxyAPI bridge that registers subscription-backed Codex, Grok, Antigravity/Gemini, GLM Coding Plan, or newly added CLI models in WorkBuddy. Use whenever the user asks to connect a local CLI or agent model to WorkBuddy, install CLIProxyAPI, add GLM-5.3 from a Coding Plan key, add or repair a WorkBuddy custom model, preserve image/tool/reasoning/Fast capabilities, onboard another CLI provider, or diagnose a WorkBuddy model that stopped working. This Skill is macOS-first and should be used even when the user names only the model or says their local WorkBuddy API has expired.
What it loads into context
Frontmatter
176 tokensAlways available to the agent
SKILL.md
2,010 tokensWhen the skill is activated
Reference documents
5,104 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Resolve the Skill directory
- Default workflow
- Repair workflow
- Add a new CLI Provider
- Safety boundaries
- Completion gate
Scripts executed separately
scripts/bridge.pytests/test_bridge.py
Files
LICENSEasset1,067 bytesSKILL.mdcore9,635 bytesSKILL.mdcore9,635 bytesSKILL.mdcore9,635 bytesSKILL.mdcore9,635 bytesSKILL.mdcore9,635 bytesSKILL.mdcore9,635 bytesSKILL.mdcore9,635 bytesSKILL.mdcore9,635 bytesSKILL.mdcore9,635 bytesSKILL.mdcore9,635 bytesagents/openai.yamlasset330 bytesevals/evals.jsonasset6,114 bytesproviders/antigravity.jsonasset1,933 bytesproviders/codex.jsonasset3,231 bytesproviders/glm-coding.jsonasset845 bytesproviders/xai-grok.jsonasset2,070 bytesreferences/glm-coding-plan.mddoc2,740 bytesreferences/onboarding-new-cli.mddoc4,801 bytesreferences/provider-schema.mddoc5,803 bytesreferences/security-boundaries.mddoc2,658 bytesreferences/troubleshooting.mddoc7,419 bytesscripts/bridge.pyruns60,567 bytestests/test_bridge.pyruns27,843 bytes
Read SKILL.md
# WorkBuddy CLI Model Bridge
Turn supported CLI subscriptions into verified WorkBuddy custom-model entries through CLIProxyAPI. Use the bundled script for discovery, installation, OAuth handoff, capability probes, and idempotent WorkBuddy updates. Keep model claims tied to real probes; a model name or marketing page is not evidence that a particular proxy route preserves the capability.
## Resolve the Skill directory
Resolve this loaded Skill's directory and use its absolute path as `<skill-dir>`. Do not assume a specific installation root.
The deterministic entry point is:
```bash
python3 <skill-dir>/scripts/bridge.py
```
View the complete source on GitHubwxmp-article-harvester
When your agent uses it
抓取、筛选并导出微信公众号公开文章的独立 Skill。用户提到微信公众号、公众号文章、mp.weixin、wcx、搜索公众号、导出最近 N 天或某年度文章、批量抓取、断点续抓、正文补全、教程文章筛选、微信文章链接保存时使用。支持 Markdown/JSON/CSV,默认用 wcx 获取索引、Playwright 提取正文;付费 Metaso 兜底必须显式授权。
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
1,487 tokensWhen the skill is activated
Reference documents
1,958 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 运行架构
- 开始前
- 意图路由
- 硬规则
- 分批与恢复
- 常用命令
- 输出契约
Scripts executed separately
scripts/browser_reader.pyscripts/harvest_wxmp.pyscripts/metaso_reader.pyscripts/preflight.pyscripts/refresh_token_playwright.pyscripts/runtime_paths.pyscripts/wcx_batch_fetch.pyscripts/wcx_run.pytests/test_harvester.py
Files
SKILL.mdcore5,266 bytesSKILL.mdcore5,266 bytesSKILL.mdcore5,266 bytesSKILL.mdcore5,266 bytesagents/openai.yamlasset288 bytesevals/evals.jsonasset3,593 bytesreferences/troubleshooting.mddoc6,913 bytesscripts/browser_reader.pyruns10,576 bytesscripts/harvest_wxmp.pyruns61,501 bytesscripts/metaso_reader.pyruns6,328 bytesscripts/preflight.pyruns3,611 bytesscripts/refresh_token_playwright.pyruns4,124 bytesscripts/runtime_paths.pyruns5,213 bytesscripts/wcx_batch_fetch.pyruns6,212 bytesscripts/wcx_run.pyruns5,142 bytestests/test_harvester.pyruns14,970 bytes
Read SKILL.md
# wxmp-article-harvester
目标:把公开公众号文章稳定加工成可检索、可审计、可恢复的本地资料包。
## 运行架构
1. `preflight.py` 只检查依赖,不自动安装或升级任何软件。
2. `wcx_run.py` 搜索公众号、刷新登录态、抓元数据并导出索引。
3. `harvest_wxmp.py` 过滤日期和标题,复用一个 Playwright 上下文提取正文并保留图片顺序。
4. 首次命中微信验证码或风控页后打开浏览器熔断,停止本轮后续页面请求;刷新失败时保留已通过质量门的旧正文。
5. 没有可信正文时标记 `partial`。只有用户明确授权付费和第三方 URL 传输后,才加 `--allow-metaso`。
## 开始前
View the complete source on GitHubSkills included
- codex-cli-model-bridge
- codex-doctor
- codex-external-handoff
- codex-handoff
- codex-image-gen
- codex-model-routing-team
- codex-skill-admin
- codex-theme-studio
- enterprise-clone-builder
- gpt56-sol-pro-consult
- html-express
- leadbook
- light-plan-and-work
- scholar-stickers
- skill-open-sourcer
- web-clipper
- wechat-article-search
- wechat-styler
- workbuddy-cli-model-bridge
- wxmp-article-harvester
Repository facts
- License
- MIT
- Created
- Jul 17, 2026
- Last pushed
- Nov 6, 2026
- Forks
- 100
- Open issues
- 2
- Project activity
- Active
Rank over the last 12 weeks
Now #994 · best #732 · down 220 in 30 days
- #830 on Oct 12
- #837 on Oct 13
- #854 on Oct 14
- #857 on Oct 19
- #872 on Oct 23
- #994 since Oct 25
45 earlier periods
- #845 on Aug 2
- #849 on Aug 8
- #855 on Aug 9
- #892 on Aug 10
- #893 on Aug 11
- #890 on Aug 12
- #891 on Aug 13
- #871 on Aug 14
- #842 on Aug 15
- #866 on Aug 16
- #868 on Aug 17
- #887 on Aug 18
- #879 on Aug 19
- #872 on Aug 20
- #878 on Aug 21
- #826 on Aug 22
- #881 on Aug 23
- #905 on Aug 25
- #931 on Aug 28
- #848 on Aug 29
- #853 on Aug 30
- #899 on Aug 31
- #927 on Sep 1
- #887 on Sep 2
- #879 on Sep 3
- #840 on Sep 4
- #812 on Sep 5
- #847 on Sep 6
- #872 on Sep 7
- #892 on Sep 8
- #790 on Sep 11
- #746 on Sep 12
- #743 on Sep 13
- #772 on Sep 14
- #762 on Sep 15
- #770 on Sep 16
- #772 on Sep 17
- #758 on Sep 18
- #732 on Sep 19
- #744 on Sep 20
- #774 on Sep 21
- #818 on Sep 29
- #796 on Oct 5
- #800 on Oct 6
- #806 on Oct 10
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 7, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 123 notes
skills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-cli-model-bridge/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-doctor/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-doctor/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-doctor/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-doctor/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-doctor/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codex-doctor/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- 1 broad permissionin 1 file: wechat-article-search/SKILL.md:1
- 57 dangerous shell commandsin 11 files: web-clipper/scripts/bootstrap.sh:179 codex-theme-studio/scripts/restore-dream-skin-macos.sh:53 web-clipper/scripts/run_web_clipper.sh:69 and 8 more
- 753 network referencesin 86 files: wechat-article-search/package-lock.json:14 wechat-styler/tests/wechat-image-pipeline.test.mjs:23 web-clipper/scripts/clip_articles.py:20 and 83 more
- 7 obfuscation signalsin 6 files: wechat-styler/scripts/wechat-publish-core.mjs:125 codex-image-gen/scripts/codex_image.py:630 codex-theme-studio/assets/renderer-inject.js:46 and 3 more
- No instruction overrides
- 129 executable scriptsin 129 files: codex-cli-model-bridge/scripts/bridge.py:1 codex-cli-model-bridge/scripts/transparent_proxy.mjs:1 codex-cli-model-bridge/tests/test_bridge.py:1 and 126 more
- 127 references to secretsin 31 files: workbuddy-cli-model-bridge/scripts/bridge.py:261 codex-image-gen/scripts/codex_image.py:186 skill-open-sourcer/tests/test_scan_skill_release.py:34 and 28 more
- No requests to vote in Hot
Show all 1,074 signals by file
skills/codex-cli-model-bridge/SKILL.md
- Network accessline 145
It then keeps `model_provider = "openai"`, sets `openai_base_url = "http://127.0.0.1:8318/v1"`, activates the verified catalog, preserves ChatGPT login and unrelated TOML, creates a `0600` backup, and proves the task inventory digest did no
skills/codex-cli-model-bridge/references/glm-coding-plan.md
- Network accessline 13
| `openai_base_url` | Path | |---|---| | `http://127.0.0.1:4202/_codex-router/.../v1` | Codex Router. This is the verified coexistence path. | - Network accessline 14
|---|---| | `http://127.0.0.1:4202/_codex-router/.../v1` | Codex Router. This is the verified coexistence path. | | `http://127.0.0.1:8318/v1` | CLIProxyAPI transparent header proxy. Do not add GLM by switching the default Provider. | - Network accessline 15
| `http://127.0.0.1:4202/_codex-router/.../v1` | Codex Router. This is the verified coexistence path. | - Network accessline 16
| `http://127.0.0.1:8318/v1` | CLIProxyAPI transparent header proxy. Do not add GLM by switching the default Provider. | - Network accessline 19
Official Codex docs use Responses at `https://api.z.ai/api/v1`. Codex Router instead talks to the Coding Plan **Chat Completions** endpoint and keeps `model_provider = "openai"`. Prefer the Router path when Router is already the Desktop cat - Network accessline 23
1. Confirm the key is a Coding Plan key. The ordinary BigModel `/api/paas/v4` URL returns `1113`. 2. Write the key to `~/.codex/codex-router/zai-coding-api-key.secret` (mode `0600`). Do not put it on a command line. 3. For a mainland key, s - Network accessline 24
2. Write the key to `~/.codex/codex-router/zai-coding-api-key.secret` (mode `0600`). Do not put it on a command line. 3. For a mainland key, set `ZAI_CODING_BASE_URL=https://open.bigmodel.cn/api/coding/paas/v4` on the Router process. On mac - Network accessline 25
3. For a mainland key, set `ZAI_CODING_BASE_URL=https://open.bigmodel.cn/api/coding/paas/v4` on the Router process. On macOS that is usually a LaunchAgent env. On Windows, set it in the shell or process that starts Router. Keep the existing
skills/codex-cli-model-bridge/references/windows.md
- Network accessline 9
3. Node.js only if the user wants Desktop-transparent mode. 4. CLIProxyAPI on loopback. Practical sources: - [CLIProxyAPI GitHub Releases](https://github.com/router-for-me/CLIProxyAPI/releases) - Network accessline 10
4. CLIProxyAPI on loopback. Practical sources: - [CLIProxyAPI GitHub Releases](https://github.com/router-for-me/CLIProxyAPI/releases) - [EasyCLIProxyAPI](https://github.com/router-for-me/EasyCLIProxyAPI) if a tray app is easier - Network accessline 11
- [CLIProxyAPI GitHub Releases](https://github.com/router-for-me/CLIProxyAPI/releases) - Network accessline 12
- [EasyCLIProxyAPI](https://github.com/router-for-me/EasyCLIProxyAPI) if a tray app is easier
skills/codex-cli-model-bridge/scripts/bridge.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 35
[Credential-related source omitted] - Access to secretsline 35
[Credential-related source omitted] - Network accessline 36
DEFAULT_STATE_DIR = Path("~/.config/codex-cli-model-bridge").expanduser() DEFAULT_PROXY_URL = "http://127.0.0.1:8317/v1" DEFAULT_TRANSPARENT_PROXY_URL = "http://127.0.0.1:8318/v1" - Network accessline 37
DEFAULT_PROXY_URL = "http://127.0.0.1:8317/v1" - Network accessline 38
DEFAULT_TRANSPARENT_PROXY_URL = "http://127.0.0.1:8318/v1" - Access to secretsline 113
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Network accessline 307
payload = read_json(fixture) else: request = urllib.request.Request( - Network accessline 308
else: request = urllib.request.Request( f"{base_url.rstrip('/')}/models", - Network accessline 309
request = urllib.request.Request( - Network accessline 311
[Credential-related source omitted] - Network accessline 312
) with urllib.request.urlopen(request, timeout=12) as response: payload = json.load(response) - Network accessline 313
with urllib.request.urlopen(request, timeout=12) as response: - Access to secretsline 661
[Credential-related source omitted] - Network accessline 677
def wait_for_transparent_proxy(base_url: str, attempts: int = 20) -> bool: request = urllib.request.Request(transparent_health_url(base_url)) - Network accessline 678
request = urllib.request.Request(transparent_health_url(base_url)) - Network accessline 679
for _ in range(attempts): try: with urllib.request.urlopen(request, timeout=2) as response: - Network accessline 680
try: with urllib.request.urlopen(request, timeout=2) as response: payload = json.load(response) - Network accessline 681
with urllib.request.urlopen(request, timeout=2) as response: - Access to secretsline 722
[Credential-related source omitted] - Network accessline 802
[Credential-related source omitted] - Network accessline 803
[Credential-related source omitted] - Network accessline 804
for _ in range(attempts): try: with urllib.request.urlopen(request, timeout=2) as response: - Network accessline 805
try: with urllib.request.urlopen(request, timeout=2) as response: payload = json.load(response) - Network accessline 806
with urllib.request.urlopen(request, timeout=2) as response: - Network accessline 905
"stream": False, } request = urllib.request.Request( - Network accessline 906
} request = urllib.request.Request( f"{args.transparent_url.rstrip('/')}/responses", - Network accessline 907
request = urllib.request.Request( - Network accessline 915
) try: with urllib.request.urlopen(request, timeout=args.timeout) as response: - Network accessline 916
try: with urllib.request.urlopen(request, timeout=args.timeout) as response: response.read() - Network accessline 917
with urllib.request.urlopen(request, timeout=args.timeout) as response:
skills/codex-cli-model-bridge/scripts/transparent_proxy.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/codex-cli-model-bridge/tests/test_bridge.py
- Executable scriptline 1
Executable file - Network accessline 317
config.write_text( 'model = "keep-me"\npersonality = "pragmatic"\n\n' '[mcp_servers.keep]\ntype = "http"\nurl = "https://example.test"\n', - Network accessline 318
'model = "keep-me"\npersonality = "pragmatic"\n\n' '[mcp_servers.keep]\ntype = "http"\nurl = "https://example.test"\n', encoding="utf-8", - Network accessline 319
'[mcp_servers.keep]\ntype = "http"\nurl = "https://example.test"\n', - Access to secretsline 419
[Credential-related source omitted] - Network accessline 457
self.assertEqual(payload["status"], "planned") self.assertIn('model_provider = "openai"', payload["diff"]) self.assertIn('openai_base_url = "http://127.0.0.1:8318/v1"', payload["diff"]) - Network accessline 458
self.assertIn('model_provider = "openai"', payload["diff"]) self.assertIn('openai_base_url = "http://127.0.0.1:8318/v1"', payload["diff"]) self.assertFalse(runtime.exists()) - Network accessline 459
self.assertIn('openai_base_url = "http://127.0.0.1:8318/v1"', payload["diff"]) - Network accessline 503
state = root / "state" config.write_text( '[model_providers.cli_proxy]\nbase_url = "http://127.0.0.1:8317/v1"\nwire_api = "responses"\n', - Network accessline 504
config.write_text( '[model_providers.cli_proxy]\nbase_url = "http://127.0.0.1:8317/v1"\nwire_api = "responses"\n', encoding="utf-8", - Network accessline 505
'[model_providers.cli_proxy]\nbase_url = "http://127.0.0.1:8317/v1"\nwire_api = "responses"\n', - Network accessline 547
state = root / "state" config.write_text( '[model_providers.cli_proxy]\nbase_url = "http://127.0.0.1:8317/v1"\nwire_api = "responses"\n', - Network accessline 548
config.write_text( '[model_providers.cli_proxy]\nbase_url = "http://127.0.0.1:8317/v1"\nwire_api = "responses"\n', encoding="utf-8", - Network accessline 549
'[model_providers.cli_proxy]\nbase_url = "http://127.0.0.1:8317/v1"\nwire_api = "responses"\n',
skills/codex-doctor/scripts/scan_workspace.py
skills/codex-doctor/tests/test_scan_workspace.py
skills/codex-external-handoff/references/app-server-contract.md
- Network accessline 18
- [Codex App Server 文档](https://learn.chatgpt.com/docs/app-server) - Network accessline 19
- [OpenAI Codex App Server 源码说明](https://github.com/openai/codex/blob/main/codex-rs/app-server/README.md) - Network accessline 20
- [OpenAI Claude Code Codex 插件](https://github.com/openai/codex-plugin-cc)
skills/codex-external-handoff/scripts/codex_external_handoff.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 92
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 226
[Credential-related source omitted] - Access to secretsline 561
[Credential-related source omitted] - Access to secretsline 562
[Credential-related source omitted] - Access to secretsline 607
[Credential-related source omitted]
skills/codex-external-handoff/tests/test_codex_external_handoff.py
skills/codex-handoff/tests/test_contract.py
- Executable scriptline 1
Executable file
skills/codex-image-gen/SKILL.md
- Network accessline 22
3. `~/.codex/auth.json` 存在且可读 4. 机器可访问: - `https://chatgpt.com/backend-api/codex/responses` - Network accessline 23
4. 机器可访问: - `https://chatgpt.com/backend-api/codex/responses` - `https://auth.openai.com/oauth/token` - Network accessline 24
- `https://chatgpt.com/backend-api/codex/responses` - Network accessline 25
- `https://auth.openai.com/oauth/token`
skills/codex-image-gen/references/api-notes.md
- Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Network accessline 39
POST https://auth.openai.com/oauth/token - Network accessline 61
POST https://chatgpt.com/backend-api/codex/responses - Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted]
skills/codex-image-gen/scripts/codex_image.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 33
AUTH_PATH = pathlib.Path("~/.codex/auth.json").expanduser() RESPONSES_ENDPOINT = "https://chatgpt.com/backend-api/codex/responses" - Network accessline 34
RESPONSES_ENDPOINT = "https://chatgpt.com/backend-api/codex/responses" - Network accessline 35
REFRESH_ENDPOINT = "https://auth.openai.com/oauth/token" - Access to secretsline 186
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Access to secretsline 194
[Credential-related source omitted] - Access to secretsline 195
[Credential-related source omitted] - Network accessline 209
timeout: int = REQUEST_TIMEOUT, ) -> Tuple[int, Dict[str, Any]]: request = urllib.request.Request(url=url, data=body, headers=headers or {}, method=method) - Network accessline 210
) -> Tuple[int, Dict[str, Any]]: request = urllib.request.Request(url=url, data=body, headers=headers or {}, method=method) try: - Network accessline 211
request = urllib.request.Request(url=url, data=body, headers=headers or {}, method=method) - Network accessline 212
try: with urllib.request.urlopen(request, timeout=timeout) as response: charset = response.headers.get_content_charset() or "utf-8" - Network accessline 213
with urllib.request.urlopen(request, timeout=timeout) as response: - Access to secretsline 229
[Credential-related source omitted] - Access to secretsline 231
[Credential-related source omitted] - Access to secretsline 232
[Credential-related source omitted] - Access to secretsline 235
[Credential-related source omitted] - Access to secretsline 244
[Credential-related source omitted] - Access to secretsline 273
[Credential-related source omitted] - Access to secretsline 285
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 287
[Credential-related source omitted] - Access to secretsline 288
[Credential-related source omitted] - Network accessline 290
# Codex CLI / ChatGPT token 的常见位置: # {"https://api.openai.com/auth": {"chatgpt_account_id": "..."}} - Network accessline 291
# {"https://api.openai.com/auth": {"chatgpt_account_id": "..."}} - Network accessline 292
openai_auth = payload.get("https://api.openai.com/auth") - Access to secretsline 303
[Credential-related source omitted] - Access to secretsline 539
[Credential-related source omitted] - Access to secretsline 544
[Credential-related source omitted] - Network accessline 550
} body = json.dumps(request_body, ensure_ascii=False).encode("utf-8") request = urllib.request.Request( - Network accessline 551
body = json.dumps(request_body, ensure_ascii=False).encode("utf-8") request = urllib.request.Request( url=RESPONSES_ENDPOINT, - Network accessline 552
request = urllib.request.Request( - Network accessline 584
try: with urllib.request.urlopen(request, timeout=REQUEST_TIMEOUT) as response: - Network accessline 585
with urllib.request.urlopen(request, timeout=REQUEST_TIMEOUT) as response: - Possible obfuscationline 630
return base64.b64decode(image_b64, validate=False) - Access to secretsline 777
[Credential-related source omitted] - Access to secretsline 778
[Credential-related source omitted] - Access to secretsline 779
[Credential-related source omitted] - Access to secretsline 782
[Credential-related source omitted]
skills/codex-image-gen/tests/test_codex_image.py
- Executable scriptline 1
Executable file - Network accessline 104
def test_remote_and_data_sources_pass_through(self) -> None: args = codex_image.parse_args( ["--prompt", "x", "--reference-image", "https://example.com/ref.png"] - Network accessline 105
args = codex_image.parse_args( ["--prompt", "x", "--reference-image", "https://example.com/ref.png"] ) - Network accessline 106
["--prompt", "x", "--reference-image", "https://example.com/ref.png"] - Network accessline 107
) content = codex_image.build_request_body(args, "x")["input"][0]["content"] self.assertEqual(content[2]["image_url"], "https://example.com/ref.png") - Network accessline 109
self.assertEqual(content[2]["image_url"], "https://example.com/ref.png") - Network accessline 113
[ "--prompt", "x", "--image", "https://example.com/canvas.png", - Network accessline 114
"--prompt", "x", "--image", "https://example.com/canvas.png", "--reference-image", "https://example.com/face.png", - Network accessline 115
"--image", "https://example.com/canvas.png", - Network accessline 116
"--reference-image", "https://example.com/face.png", - Network accessline 119
content = codex_image.build_request_body(args, "x")["input"][0]["content"] self.assertIn("Target/input image 1", content[1]["text"]) self.assertEqual(content[2]["image_url"], "https://example.com/canvas.png") - Network accessline 120
self.assertIn("Target/input image 1", content[1]["text"]) self.assertEqual(content[2]["image_url"], "https://example.com/canvas.png") self.assertIn("Reference image 1", content[3]["text"]) - Network accessline 121
self.assertEqual(content[2]["image_url"], "https://example.com/canvas.png") - Network accessline 122
self.assertIn("Reference image 1", content[3]["text"]) self.assertIn("Do not treat it as the target canvas", content[3]["text"]) self.assertEqual(content[4]["image_url"], "https://example.com/face.png") - Network accessline 124
self.assertEqual(content[4]["image_url"], "https://example.com/face.png") - Access to secretsline 186
[Credential-related source omitted] - Network accessline 194
[Credential-related source omitted] - Network accessline 195
[Credential-related source omitted] - Access to secretsline 196
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Network accessline 263
image.write_bytes(b"png") refs = [ {"source": "https://example.com/face.png", "reusable": True}, - Network accessline 264
refs = [ {"source": "https://example.com/face.png", "reusable": True}, {"source": "data:image/png;base64,AAA", "reusable": False}, - Network accessline 265
{"source": "https://example.com/face.png", "reusable": True}, - Network accessline 269
args = codex_image.parse_args( ["--prompt", "fix hair", "--continue-from", str(manifest), "--reference-image", "https://example.com/style.png"] - Network accessline 270
["--prompt", "fix hair", "--continue-from", str(manifest), "--reference-image", "https://example.com/style.png"] ) - Network accessline 271
"--reference-image", "https://example.com/style.png"] - Network accessline 275
self.assertEqual( args.reference_image, ["https://example.com/face.png", "https://example.com/style.png"], - Network accessline 276
args.reference_image, ["https://example.com/face.png", "https://example.com/style.png"], ) - Network accessline 277
["https://example.com/face.png", "https://example.com/style.png"],
skills/codex-model-routing-team/references/audit-schema.json
skills/codex-model-routing-team/references/cli-audit-schema.json
skills/codex-model-routing-team/references/native-audit-schema.json
skills/codex-model-routing-team/references/official-multi-agent-v2-evidence.md
- Network accessline 7
- OpenAI Codex PR [Support leaf models in multi-agent v2](https://github.com/openai/codex/pull/36892) 把 V2 父 Agent 的子模型范围扩展到 picker 可见且未显式禁用的 leaf model。 - Network accessline 8
- Codex [rust-v0.147.0 release](https://github.com/openai/codex/releases/tag/rust-v0.147.0) 收录了 leaf-model support。 - Network accessline 9
- OpenAI [Codex Subagents documentation](https://developers.openai.com/codex/subagents) 说明本地 Codex 的多模型、每 Agent reasoning 与原生子任务 Surface。 - Network accessline 10
- 当前定位依据(2026-09-23):OpenAI [模型指南](https://learn.chatgpt.com/docs/models) 与 [GPT-6 Sol/Luna 发布说明](https://openai.com/index/introducing-gpt-6-sol-and-luna/)。Luna 适合明确、可验收的执行,Sol 保留未决判断与关键审查;评测不能替代当前任务验收。具体决策合同见 [路由策略](routing-policy.md)。 - Network accessline 17
- 用户要求直接替换 Sol 执行型号。当前路由中的 Sol 精确标识为 `gpt-6.1-sol`;GPT-6 Luna 的默认执行分工保持,主 Agent 不切换模型。 - Codex Desktop CLI `0.159.0` 使用已登录账号刷新官方目录,返回 `gpt-6.1-sol`、`multi_agent_version=v2` 和 Medium/High/XHigh/Max 等档位。本 Skill 继续禁止 Ultra;账号目录不代替当前宿主的 live sc - Network accessline 19
- [官方模型页](https://developers.openai.com/api/docs/models/gpt-6.1-sol)支持 Medium/High/XHigh/Max。上方 2026-09-23 的 GPT-6 Sol/Luna 记录保留为历史依据,不能视为 6.1 的重测成绩。
skills/codex-model-routing-team/references/provider-policy.md
- Network accessline 38
官方参考:[Grok 4.5 文档](https://docs.x.ai/developers/grok-4-5)、[Grok 使用与周配额说明](https://docs.x.ai/grok/faq)。 - Network accessline 57
官方参考:[Google Antigravity FAQ](https://antigravity.google/docs/faq)、[Gemini 3.6 Flash 模型页](https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash)、[Antigravity Plans](https://antigravity.google/docs/plans)。
skills/codex-model-routing-team/references/routing-policy.md
- Network accessline 58
本轮依据:官方 [模型定位](https://learn.chatgpt.com/docs/models) 将 Luna 用于明确、可重复且知道好结果是什么的任务;[发布说明](https://openai.com/index/introducing-gpt-6-sol-and-luna/) 的研究评估显示复杂能力差距较旧定位更小,但不保证任意任务等质。发布首日 X 用法与少量本地合成测试仅提供方向,不构成稳定胜率证据;高推理等级也不自动保证更快、更省或更准确。
skills/codex-model-routing-team/references/thread-lifecycle.md
- Network accessline 39
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted] - Network accessline 43
--provider-status allowed \ --data-allowed \ --probe-url http://127.0.0.1:8317/v1/responses \ - Network accessline 44
--data-allowed \ --probe-url http://127.0.0.1:8317/v1/responses \ --auth-env CLI_PROXY_API_KEY - Network accessline 45
--probe-url http://127.0.0.1:8317/v1/responses \ - Access to secretsline 46
[Credential-related source omitted]
skills/codex-model-routing-team/scripts/compile_route_plan.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codex-model-routing-team/scripts/model_preflight.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 29
def redirect_request( self, req: urllib.request.Request, - Network accessline 30
self, req: urllib.request.Request, fp: Any, - Network accessline 31
req: urllib.request.Request, - Access to secretsline 154
[Credential-related source omitted] - Network accessline 159
} headers["Authorization"] = f"Bearer {authorization_value}" request = urllib.request.Request( - Network accessline 160
headers["Authorization"] = f"Bearer {authorization_value}" request = urllib.request.Request( url, - Network accessline 161
request = urllib.request.Request(
skills/codex-model-routing-team/scripts/prepare_native_team.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codex-model-routing-team/scripts/route_policy.py
- Executable scriptline 1
Executable file
skills/codex-model-routing-team/scripts/validate_route_plan.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codex-model-routing-team/scripts/validate_team_ledger.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codex-model-routing-team/scripts/validate_team_plan.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codex-model-routing-team/tests/test_ephemeral_cli_routing.py
- Executable scriptline 1
Executable file
skills/codex-model-routing-team/tests/test_luna_routing.py
- Executable scriptline 1
Executable file
skills/codex-skill-admin/references/app-server-protocol.md
- Network accessline 68
http://127.0.0.1:PORT/readyz
skills/codex-skill-admin/scripts/codex_skill_admin.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 58
def free_port() -> int: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - Network accessline 59
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - Network accessline 75
text=True, ) ready_url = f"http://127.0.0.1:{self.port}/readyz" - Network accessline 76
) ready_url = f"http://127.0.0.1:{self.port}/readyz" deadline = time.time() + 15 - Network accessline 77
ready_url = f"http://127.0.0.1:{self.port}/readyz" - Network accessline 85
raise RuntimeError(f"codex app-server exited early:\n{output}") try: with urllib.request.urlopen(ready_url, timeout=1) as response: - Network accessline 86
try: with urllib.request.urlopen(ready_url, timeout=1) as response: if response.status == 200: - Network accessline 87
with urllib.request.urlopen(ready_url, timeout=1) as response: - Network accessline 141
"Sec-WebSocket-Version: 13\r\n\r\n" ) sock = socket.create_connection(("127.0.0.1", self.port), timeout=10) - Network accessline 142
) sock = socket.create_connection(("127.0.0.1", self.port), timeout=10) sock.settimeout(30) - Network accessline 143
sock = socket.create_connection(("127.0.0.1", self.port), timeout=10) - Access to secretsline 804
[Credential-related source omitted]
skills/codex-theme-studio/assets/generic-workflow.svg
- Network accessline 1
<svg xmlns="http://www.w3.org/2000/svg" width="1985" height="794" viewBox="0 0 1985 794" role="img" aria-label="Neutral workflow illustration">
skills/codex-theme-studio/assets/renderer-inject.js
skills/codex-theme-studio/package.json
- Executable scriptline 1
Executable file
skills/codex-theme-studio/references/asset-provenance.md
- Network accessline 5
- 项目:[Fei-Away/Codex-Dream-Skin](https://github.com/Fei-Away/Codex-Dream-Skin)
skills/codex-theme-studio/references/provenance.md
- Network accessline 3
This project was inspired by the MIT-licensed [Fei-Away/Codex-Dream-Skin](https://github.com/Fei-Away/Codex-Dream-Skin). Its injection architecture was derived from that project and pinned during development to commit `26c6c410e0e0bfc053356
skills/codex-theme-studio/scripts/audit-skill-package.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/scripts/base-theme-state.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/scripts/common-macos.sh
- Executable scriptline 1
#!/bin/bash - Network accessline 221
cdp_http_ready() { local port="$1" /usr/bin/curl --noproxy '*' --silent --fail --max-time 1 \ - Network accessline 222
local port="$1" /usr/bin/curl --noproxy '*' --silent --fail --max-time 1 \ "http://127.0.0.1:${port}/json/version" >/dev/null 2>&1 - Network accessline 223
/usr/bin/curl --noproxy '*' --silent --fail --max-time 1 \ - Network accessline 224
"http://127.0.0.1:${port}/json/version" >/dev/null 2>&1 - Dangerous shell operationline 447
/bin/rm -f "$RESIDENT_MANAGER_CONFIG" "$RESIDENT_MANAGER_PLIST"
skills/codex-theme-studio/scripts/customize-theme-macos.sh
- Executable scriptline 1
#!/bin/bash - Dangerous shell operationline 58
/bin/rm -rf "$THEME_DIR" - Dangerous shell operationline 85
cleanup_temporary() { /bin/rm -f "$temporary"; } - Dangerous shell operationline 104
/usr/bin/find "$THEME_DIR" -maxdepth 1 -type f -name 'background-*' ! -name "$image_name" -delete
skills/codex-theme-studio/scripts/doctor-macos.sh
- Executable scriptline 1
#!/bin/bash
skills/codex-theme-studio/scripts/import-preset-macos.sh
skills/codex-theme-studio/scripts/injector.mjs
- Executable scriptline 1
Executable file - Network accessline 207
const timeout = setTimeout(() => controller.abort(), 2000); try { const response = await fetch(`http://127.0.0.1:${port}/json/list`, { signal: controller.signal }); - Network accessline 208
try { const response = await fetch(`http://127.0.0.1:${port}/json/list`, { signal: controller.signal }); if (!response.ok) throw new Error(`HTTP ${response.status}`); - Network accessline 209
const response = await fetch(`http://127.0.0.1:${port}/json/list`, { signal: controller.signal });
skills/codex-theme-studio/scripts/install-dream-skin-macos.sh
skills/codex-theme-studio/scripts/install-resident-manager-macos.sh
- Executable scriptline 1
#!/bin/bash - Network accessline 41
}; const xml = `<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> - Network accessline 42
const xml = `<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"><dict> - Network accessline 43
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
skills/codex-theme-studio/scripts/list-presets.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/scripts/load-image-theme-macos.sh
skills/codex-theme-studio/scripts/pause-dream-skin-macos.sh
- Executable scriptline 1
#!/bin/bash
skills/codex-theme-studio/scripts/resident-manager-macos.sh
- Executable scriptline 1
#!/bin/bash
skills/codex-theme-studio/scripts/restore-dream-skin-macos.sh
- Executable scriptline 1
#!/bin/bash - Dangerous shell operationline 53
/bin/rm -f "$STATE_PATH" - Dangerous shell operationline 55
/bin/rm -f "$HOME/Desktop/Codex Dream Skin.command" - Dangerous shell operationline 56
/bin/rm -f "$HOME/Desktop/Codex Dream Skin - Customize.command" - Dangerous shell operationline 57
/bin/rm -f "$HOME/Desktop/Codex Dream Skin - Pause.command" - Dangerous shell operationline 58
/bin/rm -f "$HOME/Desktop/Codex Dream Skin - Verify.command" - Dangerous shell operationline 59
/bin/rm -f "$HOME/Desktop/Codex Dream Skin - Restore.command"
skills/codex-theme-studio/scripts/restore-version-macos.sh
- Executable scriptline 1
#!/bin/bash
skills/codex-theme-studio/scripts/start-dream-skin-macos.sh
- Executable scriptline 1
#!/bin/bash - Dangerous shell operationline 71
/bin/rm -f "$STATE_PATH" - Dangerous shell operationline 108
/bin/rm -f /tmp/dream-skin-verify.$$.json - Dangerous shell operationline 112
/bin/rm -f "$STATE_PATH" /tmp/dream-skin-verify.$$.json - Dangerous shell operationline 115
/bin/rm -f /tmp/dream-skin-verify.$$.json
skills/codex-theme-studio/scripts/status-dream-skin-macos.sh
- Executable scriptline 1
#!/bin/bash - Network accessline 74
if [ "$DEEP" = "true" ]; then if /usr/bin/curl --noproxy '*' --silent --fail --max-time 1 "http://127.0.0.1:${PORT}/json/version" >/dev/null 2>&1; then - Network accessline 75
if /usr/bin/curl --noproxy '*' --silent --fail --max-time 1 "http://127.0.0.1:${PORT}/json/version" >/dev/null 2>&1; then
skills/codex-theme-studio/scripts/switch-theme-macos.sh
skills/codex-theme-studio/scripts/theme-config.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/scripts/verification-contract.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/scripts/verify-dream-skin-macos.sh
- Executable scriptline 1
#!/bin/bash
skills/codex-theme-studio/scripts/version-backup-state.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/scripts/write-theme.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/tests/base-theme-state.test.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/tests/resident-manager.test.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/tests/run-tests.sh
skills/codex-theme-studio/tests/skill-package.test.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/tests/verifier-contract.test.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/tests/version-backup-state.test.mjs
- Executable scriptline 1
Executable file
skills/codex-theme-studio/tests/zhijian-theme.test.mjs
- Executable scriptline 1
Executable file
skills/enterprise-clone-builder/references/web-clipper-usage.md
- Network accessline 18
bash "<WEB_CLIPPER_ROOT>/scripts/run_web_clipper.sh" \ --url "https://example.com/article" \ - Network accessline 19
--url "https://example.com/article" \ - Network accessline 28
# 先准备URL列表文件 cat > /tmp/enterprise_urls.txt << 'EOF' https://example.com/page1 - Network accessline 29
cat > /tmp/enterprise_urls.txt << 'EOF' https://example.com/page1 https://example.com/page2 - Network accessline 30
https://example.com/page1 - Network accessline 31
https://example.com/page2 - Network accessline 32
https://example.com/page3 - Network accessline 48
bash "<WEB_CLIPPER_ROOT>/scripts/run_web_clipper.sh" \ --url "https://example.com/products.html" \ - Network accessline 49
--url "https://example.com/products.html" \
skills/gpt56-sol-pro-consult/references/chrome-workflow.md
- Network accessline 18
3. Initialize the browser runtime from the Chrome plugin's own absolute `scripts/browser-client.mjs` path. 4. Select the Chrome extension binding with `agent.browsers.get("extension")` and read its complete documentation before interacting. - Network accessline 20
5. Reuse an existing ChatGPT tab when available; otherwise create one and navigate directly to `https://chatgpt.com/`.
skills/gpt56-sol-pro-consult/scripts/build_attachment_bundle.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/gpt56-sol-pro-consult/scripts/check_packet_safety.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/gpt56-sol-pro-consult/scripts/extract_chatgpt_reply.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/gpt56-sol-pro-consult/scripts/run_gpt56_sol_pro_consult.py
skills/gpt56-sol-pro-consult/tests/test_model_selection.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/gpt56-sol-pro-consult/tests/test_skill_contract.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/leadbook/assets/repo-template/SOURCE_MAP.md
- Network accessline 21
- `CLAIM_LEDGER.md` 的 high confidence fact 必须能回到 L1-fact,或至少有两个独立公开来源交叉验证。 - 标记 `used / selected / fetched / exported / done` 的公开来源必须提供可直接打开的 `http://` 或 `https://` URL;“公开检索入口”“厂商案例页”等描述不算来源。 - Network accessline 22
- 标记 `used / selected / fetched / exported / done` 的公开来源必须提供可直接打开的 `http://` 或 `https://` URL;“公开检索入口”“厂商案例页”等描述不算来源。
skills/leadbook/assets/repo-template/scripts/auto-seed-behavior.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/leadbook/assets/repo-template/scripts/check-backend-language.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/leadbook/assets/repo-template/scripts/check-evidence-feasibility.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/leadbook/assets/repo-template/scripts/check-leadbook.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/leadbook/assets/repo-template/scripts/export-kami-html.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/leadbook/assets/repo-template/scripts/export-markdown.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/leadbook/assets/repo-template/scripts/generate-kami-diagrams.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 347
title = row.get("Visual Purpose") or row.get("Caption") or row.get("ID", "Diagram") pattern_id = f"dots-{slug(row.get('ID', 'diagram'))}" return f"""<svg xmlns="http://www.w3.org/2000/svg" width="{WIDTH}" height="{HEIGHT}" viewBox=" - Network accessline 348
pattern_id = f"dots-{slug(row.get('ID', 'diagram'))}" return f"""<svg xmlns="http://www.w3.org/2000/svg" width="{WIDTH}" height="{HEIGHT}" viewBox="0 0 {WIDTH} {HEIGHT}" role="img" aria-label="{esc(title)}"> <defs> - Network accessline 349
return f"""<svg xmlns="http://www.w3.org/2000/svg" width="{WIDTH}" height="{HEIGHT}" viewBox="0 0 {WIDTH} {HEIGHT}" role="img" aria-label="{esc(title)}">
skills/leadbook/assets/repo-template/scripts/leadbook-stage.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/leadbook/assets/repo-template/scripts/prepare-pdf-visual-audit.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/leadbook/assets/repo-template/scripts/render-pdf.py
skills/leadbook/assets/repo-template/scripts/sync-summary.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/leadbook/assets/repo-template/scripts/xhs-research.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 24
DEFAULT_BASE_URL = "http://127.0.0.1:18060" - Network accessline 52
req = urllib.request.Request(url, data=data, headers=headers, method=method) - Network accessline 53
try: with urllib.request.urlopen(req, timeout=timeout) as resp: body = resp.read().decode("utf-8") - Network accessline 54
with urllib.request.urlopen(req, timeout=timeout) as resp: - Network accessline 111
def note_url(feed_id: str) -> str: return f"https://www.xiaohongshu.com/explore/{feed_id}" - Network accessline 112
return f"https://www.xiaohongshu.com/explore/{feed_id}"
skills/leadbook/scripts/scaffold_leadbook.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/leadbook/tests/test_leadbook.py
- Executable scriptline 1
Executable file - Network accessline 196
self.assertNotIn("xsec_token", serialized) self.assertNotIn("raw", serialized) self.assertEqual(public["url"], "https://www.xiaohongshu.com/explore/note-1") - Network accessline 197
self.assertNotIn("raw", serialized) self.assertEqual(public["url"], "https://www.xiaohongshu.com/explore/note-1") with self.assertRaises(ValueError): - Network accessline 198
self.assertEqual(public["url"], "https://www.xiaohongshu.com/explore/note-1") - Network accessline 200
module.validate_base_url("https://example.com", allow_remote=False) - Network accessline 216
ledger.write_text( header + "| B001 | job-posting | https://example.com/jobs/ai-operator | 企业招聘 AI 应用岗 |\n", - Network accessline 217
header + "| B001 | job-posting | https://example.com/jobs/ai-operator | 企业招聘 AI 应用岗 |\n", encoding="utf-8", - Network accessline 218
+ "| B001 | job-posting | https://example.com/jobs/ai-operator | 企业招聘 AI 应用岗 |\n", - Network accessline 247
"dist/book.pdf": "fake-pdf", "dist/qa/pdf-visual-audit.md": "audit_state: passed", "bibliography.md": "1. https://example.com/report/1", - Network accessline 248
"dist/qa/pdf-visual-audit.md": "audit_state: passed", "bibliography.md": "1. https://example.com/report/1", }.items(): - Network accessline 249
"bibliography.md": "1. https://example.com/report/1",
skills/light-plan-and-work/tests/test_contract.py
- Executable scriptline 1
Executable file
skills/scholar-stickers/SKILL.md
- Network accessline 85
4. 参数:`image "<prompt>" --resolution 768:960 --token-stdin` 5. Token 管道传入:`echo -n "<token>" | <python> -u <script> image "..." --token-stdin` 6. 生成完 `curl -sS -L -o portraits/{id}.png "<result_url>"` 落到交付目录的 `portraits/` 子目录 - Network accessline 86
5. Token 管道传入:`echo -n "<token>" | <python> -u <script> image "..." --token-stdin` 6. 生成完 `curl -sS -L -o portraits/{id}.png "<result_url>"` 落到交付目录的 `portraits/` 子目录 7. 若报"250 个任务上限",等 30 秒重试一次;最多重试 1 次 - Network accessline 87
6. 生成完 `curl -sS -L -o portraits/{id}.png "<result_url>"` 落到交付目录的 `portraits/` 子目录
skills/scholar-stickers/template.html
- Network accessline 5
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>哲学,从惊讶与疑惑开始 · 教育哲学家贴纸(16:9 幻灯片版)</title> <link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 6
<title>哲学,从惊讶与疑惑开始 · 教育哲学家贴纸(16:9 幻灯片版)</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 7
<link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 8
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 9
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700;900&family=Noto+Sans+SC:wght@300;400;500;700&family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400;1,600&display=swap" rel="stylesheet">
skills/skill-open-sourcer/SKILL.md
- Network accessline 15
Publish every public Skill from the single canonical repository: `https://github.com/zjp1997720/zhijian-skills`.
skills/skill-open-sourcer/references/readme-design.md
- Network accessline 5
This method is adapted from [`oil-oil/beautify-github-readme`](https://github.com/oil-oil/beautify-github-readme), licensed under MIT. See `third-party-notices.md` for the attribution and license text.
skills/skill-open-sourcer/references/third-party-notices.md
skills/skill-open-sourcer/references/workbuddy-marketplace.md
- Network accessline 13
1. Use the cloneable repository source `zjp1997720/zhijian-skills` or `https://github.com/zjp1997720/zhijian-skills.git`. A `/tree/main/skills` page is not a Git source. Use Git distribution for this catalog's relative plugin paths and comp - Network accessline 65
The adapter-only branch does not require fabricated Skill Tags, release artwork, or launch posts. For initial evidence and the manifest-less cold-start regression, see [canonical PR #26](https://github.com/zjp1997720/zhijian-skills/pull/26)
skills/skill-open-sourcer/scripts/audit_release_readme.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/skill-open-sourcer/scripts/check_release_env.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/skill-open-sourcer/scripts/git_sync_guard.py
skills/skill-open-sourcer/scripts/manage_local_links.py
skills/skill-open-sourcer/scripts/portfolio.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/skill-open-sourcer/scripts/release_portfolio.py
skills/skill-open-sourcer/scripts/scan_skill_release.py
skills/skill-open-sourcer/scripts/verify_isolated_install.py
skills/skill-open-sourcer/tests/test_audit_release_readme.py
- Executable scriptline 1
Executable file - Network accessline 29
assets.mkdir(parents=True) (assets / "hero.svg").write_text( """<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 320" role="img" aria-labelledby="title desc" data-composition="input-to-output"> - Network accessline 30
(assets / "hero.svg").write_text( """<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 320" role="img" aria-labelledby="title desc" data-composition="input-to-output"> <title>Demo Skill</title><desc>A concrete demo workf - Network accessline 31
"""<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 320" role="img" aria-labelledby="title desc" data-composition="input-to-output"> - Network accessline 43
[](LICENSE) - Network accessline 99
svg = root / "assets" / "readme" / "hero.svg" svg.write_text( """<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 320" role="img" aria-labelledby="title desc" data-composition="input-to-output"> - Network accessline 100
svg.write_text( """<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 320" role="img" aria-labelledby="title desc" data-composition="input-to-output"> <title>Demo</title><desc>A concrete demo workflow</desc><script>al - Network accessline 101
"""<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 320" role="img" aria-labelledby="title desc" data-composition="input-to-output">
skills/skill-open-sourcer/tests/test_release_selection.py
skills/skill-open-sourcer/tests/test_scan_skill_release.py
- Executable scriptline 1
Executable file - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted]
skills/skill-open-sourcer/tests/test_skill_contract.py
- Executable scriptline 1
Executable file
skills/skill-open-sourcer/tests/test_verify_isolated_install.py
skills/web-clipper/SKILL.md
- Network accessline 32
title: "..." summary: "..." source: "https://..." - Network accessline 33
summary: "..." source: "https://..." resource: "https://..." - Network accessline 34
source: "https://..." - Network accessline 35
resource: "https://..." - Network accessline 158
- 脚本会自动调用 `https://r.jina.ai/<原始URL>` - Access to secretsline 173
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 404
[Credential-related source omitted] - Access to secretsline 435
[Credential-related source omitted]
skills/web-clipper/evals/evals.json
- Network accessline 4
{ "id": 1, "prompt": "把这篇文章保存到我的本地 clipping 目录:https://letters.thedankoe.com/p/how-to-articulate-yourself-intelligently,保留标题、原链接、日期和正文。", - Network accessline 5
"id": 1, "prompt": "把这篇文章保存到我的本地 clipping 目录:https://letters.thedankoe.com/p/how-to-articulate-yourself-intelligently,保留标题、原链接、日期和正文。", "expected_output": "生成 1 个 Markdown 文件,带 frontmatter,文件名包含日期和标题。", - Network accessline 6
"prompt": "把这篇文章保存到我的本地 clipping 目录:https://letters.thedankoe.com/p/how-to-articulate-yourself-intelligently,保留标题、原链接、日期和正文。", - Network accessline 10
{ "id": 2, "prompt": "把这个 archive 页里最热门的前 20 篇文章都拉到本地,放到同一个目录下面:https://letters.thedankoe.com/archive?sort=top。", - Network accessline 11
"id": 2, "prompt": "把这个 archive 页里最热门的前 20 篇文章都拉到本地,放到同一个目录下面:https://letters.thedankoe.com/archive?sort=top。", "expected_output": "批量保存 20 篇文章;若静态页面拿不全链接,应改用 browser 收集 URL 再交给脚本落地。", - Network accessline 12
"prompt": "把这个 archive 页里最热门的前 20 篇文章都拉到本地,放到同一个目录下面:https://letters.thedankoe.com/archive?sort=top。",
skills/web-clipper/scripts/bootstrap.sh
- Executable scriptline 1
#!/usr/bin/env bash - Dangerous shell operationline 179
rm -f "${PROJECT_ROOT}/.web-clipper-python3-check.log" - Dangerous shell operationline 183
rm -f "${PROJECT_ROOT}/.web-clipper-python3-check.log" - Dangerous shell operationline 186
rm -f "${PROJECT_ROOT}/.web-clipper-python-check.log" - Dangerous shell operationline 188
rm -f "${PROJECT_ROOT}/.web-clipper-python-version.log" - Dangerous shell operationline 192
rm -f "${PROJECT_ROOT}/.web-clipper-python-version.log" - Dangerous shell operationline 194
rm -f "${PROJECT_ROOT}/.web-clipper-python-check.log" - Dangerous shell operationline 203
if ! command -v sudo >"${PROJECT_ROOT}/.web-clipper-sudo-check.log" 2>&1; then - Dangerous shell operationline 204
rm -f "${PROJECT_ROOT}/.web-clipper-sudo-check.log" - Dangerous shell operationline 207
rm -f "${PROJECT_ROOT}/.web-clipper-sudo-check.log" - Dangerous shell operationline 209
if sudo -n true >"${PROJECT_ROOT}/.web-clipper-sudo-ready.log" 2>&1; then - Dangerous shell operationline 210
rm -f "${PROJECT_ROOT}/.web-clipper-sudo-ready.log" - Dangerous shell operationline 213
rm -f "${PROJECT_ROOT}/.web-clipper-sudo-ready.log" - Dangerous shell operationline 223
sudo -n "$@" - Dangerous shell operationline 234
rm -f "${PROJECT_ROOT}/.web-clipper-brew-check.log" - Dangerous shell operationline 237
rm -f "${PROJECT_ROOT}/.web-clipper-brew-check.log" - Dangerous shell operationline 245
rm -f "${PROJECT_ROOT}/.web-clipper-apt-check.log" - Dangerous shell operationline 248
rm -f "${PROJECT_ROOT}/.web-clipper-apt-check.log" - Dangerous shell operationline 251
rm -f "${PROJECT_ROOT}/.web-clipper-dnf-check.log" - Dangerous shell operationline 254
rm -f "${PROJECT_ROOT}/.web-clipper-dnf-check.log" - Dangerous shell operationline 257
rm -f "${PROJECT_ROOT}/.web-clipper-yum-check.log" - Dangerous shell operationline 260
rm -f "${PROJECT_ROOT}/.web-clipper-yum-check.log" - Dangerous shell operationline 263
rm -f "${PROJECT_ROOT}/.web-clipper-pacman-check.log" - Dangerous shell operationline 266
rm -f "${PROJECT_ROOT}/.web-clipper-pacman-check.log" - Dangerous shell operationline 269
rm -f "${PROJECT_ROOT}/.web-clipper-winget-check.log" - Dangerous shell operationline 272
rm -f "${PROJECT_ROOT}/.web-clipper-winget-check.log" - Dangerous shell operationline 275
rm -f "${PROJECT_ROOT}/.web-clipper-choco-check.log" - Dangerous shell operationline 278
rm -f "${PROJECT_ROOT}/.web-clipper-choco-check.log" - Dangerous shell operationline 364
rm -f "${PROJECT_ROOT}/.web-clipper-browser-check.log" - Dangerous shell operationline 367
rm -f "${PROJECT_ROOT}/.web-clipper-browser-check.log"
skills/web-clipper/scripts/clip_articles.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 20
DEFAULT_UA = "Mozilla/5.0 OpenClaw web-clipper" METASO_API_URL = "https://metaso.cn/api/v1/reader" - Network accessline 21
METASO_API_URL = "https://metaso.cn/api/v1/reader" - Network accessline 22
JINA_READER_PREFIX = "https://r.jina.ai/" - Network accessline 154
def fetch(self, url: str) -> str: - Network accessline 155
req = urllib.request.Request(url, headers={"User-Agent": self.user_agent}) - Network accessline 156
with urllib.request.urlopen(req, context=self.ctx, timeout=self.timeout) as r: - Network accessline 179
if host != "t.co": return url req = urllib.request.Request(url, headers={"User-Agent": self.user_agent}, method="HEAD") - Network accessline 180
return url req = urllib.request.Request(url, headers={"User-Agent": self.user_agent}, method="HEAD") try: - Network accessline 181
req = urllib.request.Request(url, headers={"User-Agent": self.user_agent}, method="HEAD") - Network accessline 182
try: with urllib.request.urlopen(req, context=self.ctx, timeout=self.timeout) as r: return r.geturl() or url - Network accessline 183
with urllib.request.urlopen(req, context=self.ctx, timeout=self.timeout) as r: - Network accessline 203
def fetch_fxtwitter_status(self, username: str, status_id: str) -> Optional[dict]: api_url = f"https://api.fxtwitter.com/{urllib.parse.quote(username)}/status/{status_id}" - Network accessline 204
api_url = f"https://api.fxtwitter.com/{urllib.parse.quote(username)}/status/{status_id}" - Network accessline 205
req = urllib.request.Request( - Network accessline 211
) try: with urllib.request.urlopen(req, context=self.ctx, timeout=self.timeout) as r: - Network accessline 212
try: with urllib.request.urlopen(req, context=self.ctx, timeout=self.timeout) as r: return json.loads(r.read().decode("utf-8", errors="ignore")) - Network accessline 213
with urllib.request.urlopen(req, context=self.ctx, timeout=self.timeout) as r: - Network accessline 229
screen_name = author.get("screen_name") or username tweet_id = tweet.get("id") or status_id return f"https://x.com/{screen_name}/article/{tweet_id}" - Network accessline 231
return f"https://x.com/{screen_name}/article/{tweet_id}" - Network accessline 481
def parse_via_jina(self, url: str, archive: Optional[str]) -> Optional[Article]: try: text = self.fetch(JINA_READER_PREFIX + url) - Network accessline 482
try: text = self.fetch(JINA_READER_PREFIX + url) except Exception: - Network accessline 483
text = self.fetch(JINA_READER_PREFIX + url) - Access to secretsline 493
[Credential-related source omitted] - Access to secretsline 494
[Credential-related source omitted] - Network accessline 495
return None payload = json.dumps({"url": url}).encode("utf-8") req = urllib.request.Request( - Network accessline 496
payload = json.dumps({"url": url}).encode("utf-8") req = urllib.request.Request( METASO_API_URL, - Network accessline 497
req = urllib.request.Request( - Access to secretsline 501
[Credential-related source omitted] - Network accessline 506
) try: with urllib.request.urlopen(req, context=self.ctx, timeout=self.timeout) as r: - Network accessline 507
try: with urllib.request.urlopen(req, context=self.ctx, timeout=self.timeout) as r: return r.read().decode("utf-8", errors="ignore") - Network accessline 508
with urllib.request.urlopen(req, context=self.ctx, timeout=self.timeout) as r: - Network accessline 533
try: tried.append("static") html_text = self.fetch(url) - Network accessline 534
tried.append("static") html_text = self.fetch(url) article = self.parse_from_html(url, html_text, archive) - Network accessline 535
html_text = self.fetch(url) - Network accessline 773
else: page_url = validate_http_url(args.url) html_text = clipper.fetch(page_url) - Network accessline 774
page_url = validate_http_url(args.url) html_text = clipper.fetch(page_url) urls = clipper.extract_links( - Network accessline 775
html_text = clipper.fetch(page_url)
skills/web-clipper/scripts/run_web_clipper.sh
- Executable scriptline 1
#!/usr/bin/env bash - Dangerous shell operationline 69
rm -f "${PROJECT_ROOT}/.web-clipper-python3-check.log" - Dangerous shell operationline 73
rm -f "${PROJECT_ROOT}/.web-clipper-python3-check.log" - Dangerous shell operationline 76
rm -f "${PROJECT_ROOT}/.web-clipper-python-check.log" - Dangerous shell operationline 78
rm -f "${PROJECT_ROOT}/.web-clipper-python-version.log" - Dangerous shell operationline 82
rm -f "${PROJECT_ROOT}/.web-clipper-python-version.log" - Dangerous shell operationline 84
rm -f "${PROJECT_ROOT}/.web-clipper-python-check.log"
skills/web-clipper/tests/test_web_clipper.py
- Executable scriptline 1
Executable file - Network accessline 24
<a href="/posts/one">Duplicate</a> <a href="/posts/two#comments">Comments</a> <a href="https://other.example/posts/three">Other</a> - Network accessline 25
<a href="/posts/two#comments">Comments</a> <a href="https://other.example/posts/three">Other</a> """ - Network accessline 26
<a href="https://other.example/posts/three">Other</a> - Network accessline 27
""" urls = clip_articles.Clipper().extract_links( "https://example.com/archive", - Network accessline 28
urls = clip_articles.Clipper().extract_links( "https://example.com/archive", html, - Network accessline 29
"https://example.com/archive", - Network accessline 32
same_origin_only=True, ) self.assertEqual(["https://example.com/posts/one"], urls) - Network accessline 34
self.assertEqual(["https://example.com/posts/one"], urls) - Network accessline 46
""" article = clip_articles.Clipper().parse_from_html( "https://example.com/posts/example", html, None - Network accessline 47
article = clip_articles.Clipper().parse_from_html( "https://example.com/posts/example", html, None ) - Network accessline 48
"https://example.com/posts/example", html, None - Network accessline 58
self.assertIn('title: "Example Article"', rendered) self.assertIn('extractor: "static"', rendered) self.assertIn('source: "https://example.com/posts/example"', rendered) - Network accessline 59
self.assertIn('extractor: "static"', rendered) self.assertIn('source: "https://example.com/posts/example"', rendered) self.assertIn("# Example Article", rendered) - Network accessline 60
self.assertIn('source: "https://example.com/posts/example"', rendered) - Network accessline 66
clip_articles.validate_http_url(url) self.assertEqual( "https://example.com/post", - Network accessline 67
self.assertEqual( "https://example.com/post", clip_articles.validate_http_url("https://example.com/post"), - Network accessline 68
"https://example.com/post", - Network accessline 69
clip_articles.validate_http_url("https://example.com/post"), - Network accessline 119
"single", "--url", "https://example.com/post", - Network accessline 120
"--url", "https://example.com/post", "--output-dir", - Network accessline 121
"https://example.com/post",
skills/wechat-article-search/SKILL.md
- Broad permissionsline 1
Bash,Read
skills/wechat-article-search/package-lock.json
- Network accessline 14
"node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - Network accessline 15
"version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - Network accessline 16
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - Network accessline 20
"node_modules/cheerio": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", - Network accessline 21
"version": "1.2.0", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", - Network accessline 22
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", - Network accessline 40
}, "funding": { "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - Network accessline 41
"funding": { "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } - Network accessline 42
"url": "https://github.com/cheeriojs/cheerio?sponsor=1" - Network accessline 45
"node_modules/cheerio-select": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - Network accessline 46
"version": "2.1.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - Network accessline 47
"resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - Network accessline 57
}, "funding": { "url": "https://github.com/sponsors/fb55" - Network accessline 58
"funding": { "url": "https://github.com/sponsors/fb55" } - Network accessline 59
"url": "https://github.com/sponsors/fb55" - Network accessline 62
"node_modules/css-select": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", - Network accessline 63
"version": "5.2.2", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", - Network accessline 64
"resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", - Network accessline 73
}, "funding": { "url": "https://github.com/sponsors/fb55" - Network accessline 74
"funding": { "url": "https://github.com/sponsors/fb55" } - Network accessline 75
"url": "https://github.com/sponsors/fb55" - Network accessline 78
"node_modules/css-what": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", - Network accessline 79
"version": "6.2.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - Network accessline 80
"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", - Network accessline 85
}, "funding": { "url": "https://github.com/sponsors/fb55" - Network accessline 86
"funding": { "url": "https://github.com/sponsors/fb55" } - Network accessline 87
"url": "https://github.com/sponsors/fb55" - Network accessline 90
"node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - Network accessline 91
"version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - Network accessline 92
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - Network accessline 99
}, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - Network accessline 100
"funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } - Network accessline 101
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - Network accessline 104
"node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - Network accessline 105
"version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - Network accessline 106
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - Network accessline 109
{ "type": "github", "url": "https://github.com/sponsors/fb55" - Network accessline 110
"type": "github", "url": "https://github.com/sponsors/fb55" } - Network accessline 111
"url": "https://github.com/sponsors/fb55" - Network accessline 116
"node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - Network accessline 117
"version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - Network accessline 118
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - Network accessline 126
}, "funding": { "url": "https://github.com/fb55/domhandler?sponsor=1" - Network accessline 127
"funding": { "url": "https://github.com/fb55/domhandler?sponsor=1" } - Network accessline 128
"url": "https://github.com/fb55/domhandler?sponsor=1" - Network accessline 131
"node_modules/domutils": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - Network accessline 132
"version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - Network accessline 133
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - Network accessline 140
}, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" - Network accessline 141
"funding": { "url": "https://github.com/fb55/domutils?sponsor=1" } - Network accessline 142
"url": "https://github.com/fb55/domutils?sponsor=1" - Network accessline 145
"node_modules/encoding-sniffer": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", - Network accessline 146
"version": "0.2.1", "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", - Network accessline 147
"resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", - Network accessline 153
}, "funding": { "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" - Network accessline 154
"funding": { "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" } - Network accessline 155
"url": "https://github.com/fb55/encoding-sniffer?sponsor=1" - Network accessline 158
"node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - Network accessline 159
"version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - Network accessline 160
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - Network accessline 165
}, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" - Network accessline 166
"funding": { "url": "https://github.com/fb55/entities?sponsor=1" } - Network accessline 167
"url": "https://github.com/fb55/entities?sponsor=1" - Network accessline 170
"node_modules/htmlparser2": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", - Network accessline 171
"version": "10.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", - Network accessline 172
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", - Network accessline 173
"integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", - Network accessline 174
"funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { - Network accessline 175
"https://github.com/fb55/htmlparser2?sponsor=1", - Network accessline 176
{ "type": "github", "url": "https://github.com/sponsors/fb55" - Network accessline 177
"type": "github", "url": "https://github.com/sponsors/fb55" } - Network accessline 178
"url": "https://github.com/sponsors/fb55" - Network accessline 189
"node_modules/htmlparser2/node_modules/entities": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", - Network accessline 190
"version": "7.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", - Network accessline 191
"resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", - Network accessline 196
}, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" - Network accessline 197
"funding": { "url": "https://github.com/fb55/entities?sponsor=1" } - Network accessline 198
"url": "https://github.com/fb55/entities?sponsor=1" - Network accessline 201
"node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - Network accessline 202
"version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - Network accessline 203
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - Network accessline 213
"node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - Network accessline 214
"version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - Network accessline 215
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - Network accessline 220
}, "funding": { "url": "https://github.com/fb55/nth-check?sponsor=1" - Network accessline 221
"funding": { "url": "https://github.com/fb55/nth-check?sponsor=1" } - Network accessline 222
"url": "https://github.com/fb55/nth-check?sponsor=1" - Network accessline 225
"node_modules/parse5": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", - Network accessline 226
"version": "7.3.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", - Network accessline 227
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", - Network accessline 232
}, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" - Network accessline 233
"funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } - Network accessline 234
"url": "https://github.com/inikulin/parse5?sponsor=1" - Network accessline 237
"node_modules/parse5-htmlparser2-tree-adapter": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", - Network accessline 238
"version": "7.1.0", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wT - Network accessline 239
"resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", - Network accessline 245
}, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" - Network accessline 246
"funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } - Network accessline 247
"url": "https://github.com/inikulin/parse5?sponsor=1" - Network accessline 250
"node_modules/parse5-parser-stream": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", - Network accessline 251
"version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", - Network accessline 252
"resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", - Network accessline 257
}, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" - Network accessline 258
"funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } - Network accessline 259
"url": "https://github.com/inikulin/parse5?sponsor=1" - Network accessline 262
"node_modules/parse5/node_modules/entities": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - Network accessline 263
"version": "6.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - Network accessline 264
"resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - Network accessline 269
}, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" - Network accessline 270
"funding": { "url": "https://github.com/fb55/entities?sponsor=1" } - Network accessline 271
"url": "https://github.com/fb55/entities?sponsor=1" - Network accessline 274
"node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - Network accessline 275
"version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - Network accessline 276
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - Network accessline 280
"node_modules/undici": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz", - Network accessline 281
"version": "7.28.0", "resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz", "integrity": "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==", - Network accessline 282
"resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz", - Network accessline 289
"node_modules/whatwg-encoding": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - Network accessline 290
"version": "3.1.1", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", - Network accessline 291
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - Network accessline 302
"node_modules/whatwg-mimetype": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - Network accessline 303
"version": "4.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", - Network accessline 304
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
skills/wechat-article-search/package.json
- Executable scriptline 1
Executable file
skills/wechat-article-search/scripts/search_wechat.js
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 43
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', 'Host': 'weixin.sogou.com', 'Referer': 'https://weixin.sogou.com/', - Network accessline 44
'Host': 'weixin.sogou.com', 'Referer': 'https://weixin.sogou.com/', }; - Network accessline 45
'Referer': 'https://weixin.sogou.com/', - Network accessline 166
try { const resp = await request({ url: 'https://v.sogou.com/v?ie=utf8&query=&p=40030600', - Network accessline 167
const resp = await request({ url: 'https://v.sogou.com/v?ie=utf8&query=&p=40030600', headers: { - Network accessline 168
url: 'https://v.sogou.com/v?ie=utf8&query=&p=40030600', - Network accessline 265
// 典型形态: // var url = ''; // url += 'https://mp.'; - Network accessline 266
// var url = ''; // url += 'https://mp.'; // url += 'weixin.qq.com/...'; - Network accessline 267
// url += 'https://mp.'; - Network accessline 522
if (url.startsWith('/')) { url = `https://weixin.sogou.com${url}`; - Network accessline 523
url = `https://weixin.sogou.com${url}`; - Network accessline 635
const encodedQuery = encodeURIComponent(query); const url = `https://weixin.sogou.com/weixin?query=${encodedQuery}&s_from=input&_sug_=n&type=2&page=${page}&ie=utf8`; - Network accessline 636
const url = `https://weixin.sogou.com/weixin?query=${encodedQuery}&s_from=input&_sug_=n&type=2&page=${page}&ie=utf8`;
skills/wechat-article-search/tests/parser.test.js
- Executable scriptline 1
Executable file - Network accessline 16
assert.equal(articles[0].title, 'Codex 模型路由实战'); assert.equal(articles[0].source, '智见 AI'); assert.equal(articles[0].url, 'https://weixin.sogou.com/link?url=demo'); - Network accessline 17
assert.equal(articles[0].source, '智见 AI'); assert.equal(articles[0].url, 'https://weixin.sogou.com/link?url=demo'); }); - Network accessline 18
assert.equal(articles[0].url, 'https://weixin.sogou.com/link?url=demo'); - Network accessline 21
test('extracts both meta and assembled JavaScript redirect URLs', () => { assert.equal( extractRedirectUrlFromHtml('<meta http-equiv="refresh" content="0; url=https://mp.weixin.qq.com/s/a">'), - Network accessline 22
assert.equal( extractRedirectUrlFromHtml('<meta http-equiv="refresh" content="0; url=https://mp.weixin.qq.com/s/a">'), 'https://mp.weixin.qq.com/s/a', - Network accessline 23
extractRedirectUrlFromHtml('<meta http-equiv="refresh" content="0; url=https://mp.weixin.qq.com/s/a">'), - Network accessline 24
'https://mp.weixin.qq.com/s/a', - Network accessline 25
); assert.equal( extractRedirectUrlFromHtml("var url='';url += 'https://mp.weixin.';url += 'qq.com/s/b';window.location.replace(url)"), - Network accessline 26
assert.equal( extractRedirectUrlFromHtml("var url='';url += 'https://mp.weixin.';url += 'qq.com/s/b';window.location.replace(url)"), 'https://mp.weixin.qq.com/s/b', - Network accessline 27
extractRedirectUrlFromHtml("var url='';url += 'https://mp.weixin.';url += 'qq.com/s/b';window.location.replace(url)"), - Network accessline 28
'https://mp.weixin.qq.com/s/b',
skills/wechat-styler/SKILL.md
- Network accessline 22

skills/wechat-styler/assets/brand-cta/manifest.json
- Network accessline 7
"opening": { "file": "zhijian-cta-opening-flow-376b7c890008.gif", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-opening-flow-376b7c890008.gif", - Network accessline 8
"file": "zhijian-cta-opening-flow-376b7c890008.gif", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-opening-flow-376b7c890008.gif", "sha256": "376b7c89000817b0d050bb1674578563ba35017 - Network accessline 9
"url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-opening-flow-376b7c890008.gif", - Network accessline 22
"ending": { "file": "zhijian-cta-ending-flow-5375c80db38d.gif", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-ending-flow-5375c80db38d.gif", - Network accessline 23
"file": "zhijian-cta-ending-flow-5375c80db38d.gif", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-ending-flow-5375c80db38d.gif", "sha256": "5375c80db38d67a5c1e11514f1c7bfab50311058a - Network accessline 24
"url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-ending-flow-5375c80db38d.gif", - Network accessline 74
"height": 272, "alt": "关注大鹏,把 AI 用进真实工作", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-opening-flow-f63ec0d7ddd0.gif" - Network accessline 75
"alt": "关注大鹏,把 AI 用进真实工作", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-opening-flow-f63ec0d7ddd0.gif" }, - Network accessline 76
"url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-opening-flow-f63ec0d7ddd0.gif" - Network accessline 82
"height": 300, "alt": "有用,就留一份,点赞 · 收藏 · 转给需要的人", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-ending-flow-da8009fbeaa2.gif" - Network accessline 83
"alt": "有用,就留一份,点赞 · 收藏 · 转给需要的人", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-ending-flow-da8009fbeaa2.gif" } - Network accessline 84
"url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-ending-flow-da8009fbeaa2.gif" - Network accessline 97
"height": 400, "alt": "关注大鹏,把 AI 用进真实工作", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-opening-094cbecddef5.gif" - Network accessline 98
"alt": "关注大鹏,把 AI 用进真实工作", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-opening-094cbecddef5.gif" }, - Network accessline 99
"url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-opening-094cbecddef5.gif" - Network accessline 105
"height": 500, "alt": "有用,就留一份:点赞、收藏、转给需要的人", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-ending-12ac690644ff.gif" - Network accessline 106
"alt": "有用,就留一份:点赞、收藏、转给需要的人", "url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-ending-12ac690644ff.gif" } - Network accessline 107
"url": "https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/zhijian-cta-ending-12ac690644ff.gif"
skills/wechat-styler/assets/brand-cta/zhijian-cta-ending.svg
- Network accessline 1
<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 360 150" preserveAspectRatio="xMidYMin meet" style="display:block;width:100%;max-width:480px;margin:0 auto;" role="img" aria-label="有用,就留一份:点赞、收藏、转给需要的人" data-semantic-text="
skills/wechat-styler/assets/brand-cta/zhijian-cta-opening.svg
- Network accessline 1
<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 360 136" preserveAspectRatio="xMidYMin meet" style="display:block;width:100%;max-width:480px;margin:0 auto;" role="img" aria-label="关注大鹏,把 AI 用进真实工作" data-semantic-text="关注大鹏
skills/wechat-styler/package-lock.json
- Network accessline 19
"node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - Network accessline 20
"version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - Network accessline 21
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - Network accessline 25
"node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - Network accessline 26
"version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - Network accessline 27
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - Network accessline 42
"node_modules/js-yaml": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", - Network accessline 43
"version": "4.3.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", - Network accessline 44
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", - Network accessline 47
{ "type": "github", "url": "https://github.com/sponsors/puzrin" - Network accessline 48
"type": "github", "url": "https://github.com/sponsors/puzrin" }, - Network accessline 49
"url": "https://github.com/sponsors/puzrin" - Network accessline 51
{ "type": "github", "url": "https://github.com/sponsors/nodeca" - Network accessline 52
"type": "github", "url": "https://github.com/sponsors/nodeca" } - Network accessline 53
"url": "https://github.com/sponsors/nodeca" - Network accessline 64
"node_modules/marked": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", - Network accessline 65
"version": "12.0.2", "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", - Network accessline 66
"resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", - Network accessline 76
"node_modules/picomatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - Network accessline 77
"version": "4.0.5", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", - Network accessline 78
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - Network accessline 83
}, "funding": { "url": "https://github.com/sponsors/jonschlinkert" - Network accessline 84
"funding": { "url": "https://github.com/sponsors/jonschlinkert" } - Network accessline 85
"url": "https://github.com/sponsors/jonschlinkert" - Network accessline 88
"node_modules/playwright-core": { "version": "1.61.1", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.61.1.tgz", - Network accessline 89
"version": "1.61.1", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.61.1.tgz", "integrity": "sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==", - Network accessline 90
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.61.1.tgz", - Network accessline 101
"node_modules/tinyglobby": { "version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - Network accessline 102
"version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - Network accessline 103
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - Network accessline 112
}, "funding": { "url": "https://github.com/sponsors/SuperchupuDev" - Network accessline 113
"funding": { "url": "https://github.com/sponsors/SuperchupuDev" } - Network accessline 114
"url": "https://github.com/sponsors/SuperchupuDev"
skills/wechat-styler/package.json
- Executable scriptline 1
Executable file
skills/wechat-styler/references/brand-cta.md
- Network accessline 32
<section data-wechat-cta="opening" data-zhijian-cta="v7-flow-gif" style="max-width:<主题宽度>px;margin:0 auto 18px;padding:24px 0 0;line-height:0;"><img data-wechat-cta-image="opening" src="https://…/zhijian-cta-opening-flow-376b7c890008.gif" a - Network accessline 38
<section data-wechat-cta="opening" data-zhijian-cta="v6" style="max-width:<主题宽度>px;margin:0 auto 18px;padding:24px 0 0;line-height:0;"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 360 136" style="display:block;width:100
skills/wechat-styler/references/opencli-injection.md
skills/wechat-styler/references/svg-animation-design.md
- Possible obfuscationline 184
const binary = atob(b64);
skills/wechat-styler/scripts/brand-cta.mjs
- Executable scriptline 1
Executable file - Network accessline 32
if (viewBox !== a.viewBox) throw new Error(`brand CTA ${a.file} viewBox ${viewBox} does not match manifest ${a.viewBox}`); const alt = escape(a.alt); const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="${a.viewBox - Network accessline 33
const alt = escape(a.alt); const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="${a.viewBox}" preserveAspectRatio="xMidYMin meet" style="display:block;width:100%;height:auto;" role="img" aria-label="${alt}" data-alt= - Network accessline 34
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="${a.viewBox}" preserveAspectRatio="xMidYMin meet" style="display:block;width:100%;height:auto;" role="img" aria-label="${alt}" data-alt="${alt}" data-semantic-text="
skills/wechat-styler/scripts/components.mjs
- Executable scriptline 1
Executable file
skills/wechat-styler/scripts/content-density-audit.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/wechat-styler/scripts/convert.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 534
const clay = theme.accent_color || '#B85235'; return `<!-- 文末结尾标记 --> <section data-wechat-block="end-mark" style="max-width:${theme.max_width}px;margin:0 auto;padding:0 16px 28px;line-height:0;text-align:left;background-color:${theme.bac - Network accessline 535
return `<!-- 文末结尾标记 --> <section data-wechat-block="end-mark" style="max-width:${theme.max_width}px;margin:0 auto;padding:0 16px 28px;line-height:0;text-align:left;background-color:${theme.background_color};"><svg xmlns="http://www.w3.org/2 - Network accessline 536
<section data-wechat-block="end-mark" style="max-width:${theme.max_width}px;margin:0 auto;padding:0 16px 28px;line-height:0;text-align:left;background-color:${theme.background_color};"><svg xmlns="http://www.w3.org/2000/svg" width="76" heig
skills/wechat-styler/scripts/generate-cover-animation.mjs
- Executable scriptline 1
Executable file - Network accessline 873
function coverSvgOpen(W, H, bg, extraAttrs = '') { return `<svg${extraAttrs} xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 ${W} ${n1(H)}" preserveAspectRatio="xMidYMin meet" style="display:block;width:100%;max-width:${COVER - Network accessline 874
return `<svg${extraAttrs} xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 ${W} ${n1(H)}" preserveAspectRatio="xMidYMin meet" style="display:block;width:100%;max-width:${COVER_MAX_W}px;margin:0 auto;"><rect x="0" y="0" width="${
skills/wechat-styler/scripts/generate-preview.mjs
skills/wechat-styler/scripts/inject-to-wechat.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/wechat-styler/scripts/mobile-visual-qa.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/wechat-styler/scripts/qa-browser.mjs
- Executable scriptline 1
Executable file
skills/wechat-styler/scripts/validate.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/wechat-styler/scripts/wechat-image-hosts.mjs
- Executable scriptline 1
Executable file
skills/wechat-styler/scripts/wechat-image-pipeline.mjs
- Executable scriptline 1
Executable file - Network accessline 25
async function request(url, options, timeoutMs) { const response = await fetch(url, { ...options, signal: AbortSignal.timeout(timeoutMs) }); - Network accessline 26
const response = await fetch(url, { ...options, signal: AbortSignal.timeout(timeoutMs) }); - Network accessline 200
quality: options.quality ?? 85, timeoutMs: options.timeoutMs ?? 30000, picgoServer: options.picgoServer ?? 'http://127.0.0.1:36677', - Network accessline 201
timeoutMs: options.timeoutMs ?? 30000, picgoServer: options.picgoServer ?? 'http://127.0.0.1:36677', }; - Network accessline 202
picgoServer: options.picgoServer ?? 'http://127.0.0.1:36677',
skills/wechat-styler/scripts/wechat-opencli.mjs
- Executable scriptline 1
Executable file - Network accessline 67
const appmsgid = typeof state.appmsgid === 'string' ? state.appmsgid : new URL(url || 'https://mp.weixin.qq.com/').searchParams.get('appmsgid') || ''; - Network accessline 68
? state.appmsgid : new URL(url || 'https://mp.weixin.qq.com/').searchParams.get('appmsgid') || ''; const evidence = { - Network accessline 69
: new URL(url || 'https://mp.weixin.qq.com/').searchParams.get('appmsgid') || ''; - Network accessline 107
let url; try { url = new URL(state.url); } catch { return null; } const isEditor = url.origin === 'https://mp.weixin.qq.com' - Network accessline 108
try { url = new URL(state.url); } catch { return null; } const isEditor = url.origin === 'https://mp.weixin.qq.com' && url.pathname === '/cgi-bin/appmsg' - Network accessline 109
const isEditor = url.origin === 'https://mp.weixin.qq.com' - Possible obfuscationline 405
const binary = atob(${JSON.stringify(payload.base64)});
skills/wechat-styler/scripts/wechat-publish-core.mjs
skills/wechat-styler/tests/brand-cta.test.mjs
- Executable scriptline 1
Executable file - Network accessline 18
const GIF_BASE='https://obsidian-1344509300.cos.ap-beijing.myqcloud.com/obsidian/2026/03/'; - Network accessline 97
const v6Html=applyBrandCta(shell,{style:'svg'}); const v7Html=applyBrandCta(shell); const loose=shell.replace('<p>',`<img src="${GIF_BASE+GIF.opening.file}?v=1"><img src="https://mmbiz.qpic.cn/x/${GIF.ending.file}"><p>`); - Network accessline 98
const v7Html=applyBrandCta(shell); const loose=shell.replace('<p>',`<img src="${GIF_BASE+GIF.opening.file}?v=1"><img src="https://mmbiz.qpic.cn/x/${GIF.ending.file}"><p>`); for(const input of [v5Html,v6Html,v7Html,loose]){ - Network accessline 99
const loose=shell.replace('<p>',`<img src="${GIF_BASE+GIF.opening.file}?v=1"><img src="https://mmbiz.qpic.cn/x/${GIF.ending.file}"><p>`); - Network accessline 141
const [op,en]=['opening','ending'].map(k=>legacyBrandCtaAssets.find(a=>a.file.includes(`-${k}-`))); const legacyWrapped=`<section data-wechat-cta="opening" style="background-color:#FFFFFF;"><img data-wechat-cta-image="opening" src="${op.ur - Network accessline 142
const legacyWrapped=`<section data-wechat-cta="opening" style="background-color:#FFFFFF;"><img data-wechat-cta-image="opening" src="${op.url}" alt="x" /></section>`; const html=shell.replace('<p>',`${legacyWrapped}<img src="${op.url}?v=2"> - Network accessline 143
const html=shell.replace('<p>',`${legacyWrapped}<img src="${op.url}?v=2"><img src="https://mmbiz.qpic.cn/x/${en.file}"><img data-wechat-cta-image="ending" src="https://mmbiz.qpic.cn/rehosted.gif"><img src="https://example.com/user.png"><p>`
skills/wechat-styler/tests/content-density-audit.test.mjs
skills/wechat-styler/tests/cover-animation.test.mjs
- Executable scriptline 1
Executable file
skills/wechat-styler/tests/fixtures/zhijian-visual-baseline.md
- Network accessline 12
**关键判断**使用赭石文字色建立阅读锚点,[资料链接](https://example.com)继续使用墨蓝表达理性与可信。
skills/wechat-styler/tests/inject-cli.test.mjs
- Executable scriptline 1
Executable file - Network accessline 37
const fakeOpencli = `#!/bin/sh case "$*" in *"JSON.stringify({url: window.location.href})"*) printf '%s\\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;; - Network accessline 38
case "$*" in *"JSON.stringify({url: window.location.href})"*) printf '%s\\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;; *" state") printf 'URL: https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_ed - Network accessline 39
*"JSON.stringify({url: window.location.href})"*) printf '%s\\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;; - Network accessline 40
*" state") printf 'URL: https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit\\n' ;; - Network accessline 41
*"hasTitleEditor"*) printf '%s\\n' '{"readyState":"complete","hasTitleEditor":true,"hasBodyEditor":true,"editorCount":2,"bodyHeight":500}' ;; *) printf '%s\\n' '{"ok":true,"title":"测试标题","visibleTitle":"测试标题","summary":"","svgCount":0,"an - Network accessline 42
[Credential-related source omitted] - Network accessline 77
const reportPath = path.join(workDir, 'report.json'); fs.mkdirSync(binDir); fs.writeFileSync(htmlPath, '<html><body><section data-wechat-root="article"><p>正文</p><img src="https://mmbiz.qpic.cn/a.jpg"></section></body></html>'); - Network accessline 78
fs.mkdirSync(binDir); fs.writeFileSync(htmlPath, '<html><body><section data-wechat-root="article"><p>正文</p><img src="https://mmbiz.qpic.cn/a.jpg"></section></body></html>'); fs.writeFileSync(coverPath, Buffer.from([0xff, 0xd8, 0xff, 0xd - Network accessline 79
fs.writeFileSync(htmlPath, '<html><body><section data-wechat-root="article"><p>正文</p><img src="https://mmbiz.qpic.cn/a.jpg"></section></body></html>'); - Network accessline 81
const fakeOpencli = `#!/bin/sh case "$*" in *"JSON.stringify({url: window.location.href})"*) printf '%s\\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;; - Network accessline 82
case "$*" in *"JSON.stringify({url: window.location.href})"*) printf '%s\\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;; *" state") printf 'URL: https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_ed - Network accessline 83
*"JSON.stringify({url: window.location.href})"*) printf '%s\\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;; - Network accessline 84
*" state") printf 'URL: https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit\\n' ;; - Network accessline 86
*"bodyEditor.innerHTML"*) printf '%s\\n' '{"ok":true,"svgCount":0,"animateCount":0,"imageCount":1,"textLength":2}' ;; *"setValue"*) printf '%s\\n' '{"title":"测试标题","visibleTitle":"测试标题","summary":"测试摘要","author":""}' ;; *"pendingImages" - Network accessline 87
*"setValue"*) printf '%s\\n' '{"title":"测试标题","visibleTitle":"测试标题","summary":"测试摘要","author":""}' ;; *"pendingImages"*) printf '%s\\n' '{"ok":true,"title":"测试标题","visibleTitle":"测试标题","summary":"测试摘要","svgCount":0,"animateCount":0,"image - Network accessline 88
[Credential-related source omitted] - Network accessline 89
*"cover area not found"*) if [ -f '${coverFlag}' ]; then printf '%s\\n' '{"ok":true,"hasImage":true,"sources":["https://mmbiz.qpic.cn/cover-new.jpg"]}'; else printf '%s\\n' '{"ok":true,"hasImage":true,"sources":["https://mmbiz.qpic.cn/cover - Network accessline 92
*"weui-desktop-img-picker__img-title"*) touch '${coverFlag}'; printf '%s\\n' '{"ok":true,"filename":"cover.jpg"}' ;; *"save button not found"*) printf '%s\\n' '{"ok":true}' ;; *"#history_pop tr"*) printf '%s\\n' '{"url":"https://mp.weix - Network accessline 93
[Credential-related source omitted] - Network accessline 94
[Credential-related source omitted] - Network accessline 141
const fakeOpencli = `#!/bin/sh case "$*" in *"JSON.stringify({url: window.location.href})"*) printf '%s\\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;; - Network accessline 142
case "$*" in *"JSON.stringify({url: window.location.href})"*) printf '%s\\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;; *" state") printf 'URL: https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_ed - Network accessline 143
*"JSON.stringify({url: window.location.href})"*) printf '%s\\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;; - Network accessline 144
*" state") printf 'URL: https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit\\n' ;; - Network accessline 146
*"bodyEditor.innerHTML"*) printf '%s\\n' '{"ok":true,"svgCount":0,"animateCount":0,"imageCount":0,"textLength":2}' ;; *"setValue"*) printf '%s\\n' '{"title":"测试标题","visibleTitle":"测试标题","summary":"","author":""}' ;; *"pendingImages"*) p - Network accessline 147
*"setValue"*) printf '%s\\n' '{"title":"测试标题","visibleTitle":"测试标题","summary":"","author":""}' ;; *"pendingImages"*) printf '%s\\n' '{"ok":true,"title":"测试标题","visibleTitle":"测试标题","summary":"","svgCount":0,"animateCount":0,"imageCount":0 - Network accessline 148
[Credential-related source omitted] - Network accessline 197
fs.writeFileSync(path.join(bin, 'opencli'), `#!/bin/sh case "$*" in *"JSON.stringify({url: window.location.href})"*) printf '%s\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;; - Network accessline 198
case "$*" in *"JSON.stringify({url: window.location.href})"*) printf '%s\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;; *"hasTitleEditor"*) printf '%s\n' '{"readyState":"complete","hasTitleEditor":true, - Network accessline 199
*"JSON.stringify({url: window.location.href})"*) printf '%s\n' '{"url":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2"}' ;;
skills/wechat-styler/tests/output-contract.test.mjs
- Executable scriptline 1
Executable file - Network accessline 113
'### 结构标题', '', '正文包含 **普通加粗** 和 [资料链接](https://example.com)。', - Network accessline 114
'', '正文包含 **普通加粗** 和 [资料链接](https://example.com)。', '', - Network accessline 115
'正文包含 **普通加粗** 和 [资料链接](https://example.com)。', - Network accessline 119
'> 一段用于交代上下文或证据的普通引用。', '', '', - Network accessline 120
'', '', '', - Network accessline 121
'', - Network accessline 246
const input = path.join(dir, 'article.md'); const output = path.join(dir, 'article.html'); const source = '\n\n\n'; - Network accessline 247
const output = path.join(dir, 'article.html'); const source = '\n\n\n'; fs.writeFileSync(input, source); - Network accessline 248
const source = '\n\n\n';
skills/wechat-styler/tests/qa-browser.test.mjs
- Executable scriptline 1
Executable file
skills/wechat-styler/tests/wechat-image-pipeline.test.mjs
- Executable scriptline 1
Executable file - Network accessline 23
test('collects only external content images that still need WeChat transfer', () => { const html = [ '<img src="https://img.test/a.png">', - Network accessline 24
const html = [ '<img src="https://img.test/a.png">', '<img src="https://mmbiz.qpic.cn/b.png">', - Network accessline 25
'<img src="https://img.test/a.png">', - Network accessline 26
'<img src="https://mmbiz.qpic.cn/b.png">', - Network accessline 27
'<img src="https://mmbiz.qlogo.cn/c.png">', - Network accessline 28
'<img src="https://wx.qlogo.cn/d.png">', - Network accessline 32
assert.deepEqual(findRemoteImageUrls(html), ['https://img.test/a.png']); - Network accessline 35
test('uses an exact WeChat image-host allowlist', () => { assert.equal(isWeChatHostedImageUrl('https://mmbiz.qlogo.cn/a.png'), true); - Network accessline 36
assert.equal(isWeChatHostedImageUrl('https://mmbiz.qlogo.cn/a.png'), true); - Network accessline 37
assert.equal(isWeChatHostedImageUrl('https://mmbiz.qpic.cn/a.png'), true); - Network accessline 38
assert.equal(isWeChatHostedImageUrl('https://evil-mmbiz.qpic.cn/a.png'), false); - Network accessline 42
test('replaces every occurrence of an optimized image URL', () => { const html = '<img src="https://img.test/a.png"><a href="https://img.test/a.png">A</a>'; - Network accessline 43
const html = '<img src="https://img.test/a.png"><a href="https://img.test/a.png">A</a>'; - Network accessline 44
const mapping = new Map([['https://img.test/a.png', 'https://cdn.test/a.jpg']]); - Network accessline 46
assert.equal(replaceImageUrls(html, mapping), '<img src="https://cdn.test/a.jpg"><a href="https://cdn.test/a.jpg">A</a>'); - Network accessline 49
test('uses a stable unique upload filename for each source URL', () => { const first = optimizedFilenameForUrl('https://img.test/a.png'); - Network accessline 50
const first = optimizedFilenameForUrl('https://img.test/a.png'); - Network accessline 51
const second = optimizedFilenameForUrl('https://img.test/b.png'); - Network accessline 53
assert.match(first, /^wechat-[a-f0-9]{16}\.jpg$/); assert.equal(first, optimizedFilenameForUrl('https://img.test/a.png')); - Network accessline 54
assert.equal(first, optimizedFilenameForUrl('https://img.test/a.png')); - Network accessline 58
test('recognizes GIF URLs and keeps a stable GIF upload filename', () => { assert.equal(isGifImageUrl('https://img.test/a.GIF?version=2'), true); - Network accessline 59
assert.equal(isGifImageUrl('https://img.test/a.GIF?version=2'), true); - Network accessline 60
assert.equal(isGifImageUrl('https://img.test/a.png'), false); - Network accessline 61
assert.equal(isGifImageUrl('not a URL'), false); assert.match(optimizedGifFilenameForUrl('https://img.test/a.gif'), /^wechat-[a-f0-9]{16}\.gif$/); }); - Network accessline 62
assert.match(optimizedGifFilenameForUrl('https://img.test/a.gif'), /^wechat-[a-f0-9]{16}\.gif$/); - Network accessline 66
assert.throws( () => assertDistinctUploadedUrls(new Map([ ['https://img.test/a.png', 'https://cdn.test/source-wechat.jpg'], - Network accessline 67
() => assertDistinctUploadedUrls(new Map([ ['https://img.test/a.png', 'https://cdn.test/source-wechat.jpg'], ['https://img.test/b.png', 'https://cdn.test/source-wechat.jpg'], - Network accessline 68
['https://img.test/a.png', 'https://cdn.test/source-wechat.jpg'], - Network accessline 69
['https://img.test/b.png', 'https://cdn.test/source-wechat.jpg'], - Network accessline 75
test('stops optimization before duplicate upload URLs can overwrite article images', async () => { const content = '<img src="https://img.test/a.png"><img src="https://img.test/b.png">'; - Network accessline 76
const content = '<img src="https://img.test/a.png"><img src="https://img.test/b.png">'; - Network accessline 78
await assert.rejects( optimizeContentImages(content, { forceUrls: ['https://img.test/a.png', 'https://img.test/b.png'], - Network accessline 79
optimizeContentImages(content, { forceUrls: ['https://img.test/a.png', 'https://img.test/b.png'], optimizeRemote: async () => 'https://cdn.test/source-wechat.jpg', - Network accessline 80
forceUrls: ['https://img.test/a.png', 'https://img.test/b.png'], - Network accessline 81
optimizeRemote: async () => 'https://cdn.test/source-wechat.jpg', - Network accessline 87
test('routes animated GIF URLs through optimization without changing them to JPEG', async () => { const content = [ '<img src="https://img.test/a.gif">', - Network accessline 88
const content = [ '<img src="https://img.test/a.gif">', '<img src="https://img.test/b.GIF">', - Network accessline 89
'<img src="https://img.test/a.gif">', - Network accessline 90
'<img src="https://img.test/b.GIF">', - Network accessline 91
'<img src="https://img.test/large.png">', - Network accessline 95
const result = await optimizeContentImages(content, { forceUrls: [ 'https://img.test/a.gif', - Network accessline 96
forceUrls: [ 'https://img.test/a.gif', 'https://img.test/b.GIF', - Network accessline 97
'https://img.test/a.gif', - Network accessline 98
'https://img.test/b.GIF', - Network accessline 99
'https://img.test/large.png', - Network accessline 102
optimizedUrls.push(url); const extension = isGifImageUrl(url) ? '.gif' : '.jpg'; return `https://cdn.test/${encodeURIComponent(url)}${extension}`; - Network accessline 103
const extension = isGifImageUrl(url) ? '.gif' : '.jpg'; return `https://cdn.test/${encodeURIComponent(url)}${extension}`; }, - Network accessline 104
return `https://cdn.test/${encodeURIComponent(url)}${extension}`; - Network accessline 108
assert.deepEqual(optimizedUrls, [ 'https://img.test/a.gif', - Network accessline 109
'https://img.test/a.gif', - Network accessline 110
'https://img.test/b.GIF', - Network accessline 111
'https://img.test/large.png',
skills/wechat-styler/tests/wechat-opencli-compat.test.mjs
- Executable scriptline 1
Executable file - Network accessline 6
[Credential-related source omitted] - Network accessline 7
[Credential-related source omitted] - Network accessline 31
test('does not switch away from a bound non-editor, lookalike domain, or permission denial', () => { for (const response of [ { url: 'https://mp.weixin.qq.com/cgi-bin/home' }, - Network accessline 32
for (const response of [ { url: 'https://mp.weixin.qq.com/cgi-bin/home' }, { url: 'https://mp.weixin.qq.com.evil.test/cgi-bin/appmsg?t=media/appmsg_edit' }, - Network accessline 33
{ url: 'https://mp.weixin.qq.com/cgi-bin/home' }, - Network accessline 34
{ url: 'https://mp.weixin.qq.com.evil.test/cgi-bin/appmsg?t=media/appmsg_edit' },
skills/wechat-styler/tests/wechat-opencli.test.mjs
- Executable scriptline 1
Executable file - Network accessline 10
test('normalizes missing OpenCLI arrays instead of throwing during verification', () => { const state = normalizeVerificationState({ ok: true, url: 'https://mp.weixin.qq.com/' }); - Network accessline 11
const state = normalizeVerificationState({ ok: true, url: 'https://mp.weixin.qq.com/' }); - Network accessline 18
test('confirms a draft with appmsgid and saved banner when history is unavailable', () => { const state = normalizeSaveState({ url: 'https://mp.weixin.qq.com/cgi-bin/appmsg?appmsgid=42', - Network accessline 19
const state = normalizeSaveState({ url: 'https://mp.weixin.qq.com/cgi-bin/appmsg?appmsgid=42', saved: true, - Network accessline 20
url: 'https://mp.weixin.qq.com/cgi-bin/appmsg?appmsgid=42', - Network accessline 34
test('does not claim save success from an existing appmsgid alone', () => { const state = normalizeSaveState({ url: 'https://mp.weixin.qq.com/cgi-bin/appmsg?appmsgid=42', - Network accessline 35
const state = normalizeSaveState({ url: 'https://mp.weixin.qq.com/cgi-bin/appmsg?appmsgid=42', }); - Network accessline 36
url: 'https://mp.weixin.qq.com/cgi-bin/appmsg?appmsgid=42', - Network accessline 42
test('requires a new save signal when editing an existing draft', () => { const before = { url: 'https://mp.weixin.qq.com/cgi-bin/appmsg?appmsgid=42', - Network accessline 43
const before = { url: 'https://mp.weixin.qq.com/cgi-bin/appmsg?appmsgid=42', saved: true, - Network accessline 44
url: 'https://mp.weixin.qq.com/cgi-bin/appmsg?appmsgid=42',
skills/wechat-styler/tests/wechat-publish-core.test.mjs
- Executable scriptline 1
Executable file - Network accessline 13
test('extracts the shared article root when generated HTML exposes the contract', () => { const html = '<html><head><title>示例</title><meta name="description" content="摘要"></head><body><section data-wechat-root="article"><section><img src= - Network accessline 14
const html = '<html><head><title>示例</title><meta name="description" content="摘要"></head><body><section data-wechat-root="article"><section><img src="https://img.test/a.png" alt="A"></section></section><aside>忽略</aside></body></html>'; - Network accessline 25
test('identifies local-preview image paths before WeChat injection', () => { const html = '<section data-wechat-root="article"><img src="图片和附件/封面.png"><img src="https://img.test/body.png"></section>'; - Network accessline 26
const html = '<section data-wechat-root="article"><img src="图片和附件/封面.png"><img src="https://img.test/body.png"></section>';
skills/workbuddy-cli-model-bridge/providers/antigravity.json
- Network accessline 22
"maxOutputTokens": 65536, "sources": { "maxInputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash", - Network accessline 23
"sources": { "maxInputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash", "maxOutputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash" - Network accessline 24
"maxInputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash", - Network accessline 25
"maxOutputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash" - Network accessline 30
"maxOutputTokens": 65536, "sources": { "maxInputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash", - Network accessline 31
"sources": { "maxInputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash", "maxOutputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash" - Network accessline 32
"maxInputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash", - Network accessline 33
"maxOutputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash" - Network accessline 38
"maxOutputTokens": 65536, "sources": { "maxInputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash", - Network accessline 39
"sources": { "maxInputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash", "maxOutputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash" - Network accessline 40
"maxInputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash", - Network accessline 41
"maxOutputTokens": "https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash"
skills/workbuddy-cli-model-bridge/providers/codex.json
- Network accessline 38
"maxOutputTokens": 128000, "sources": { "maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", - Network accessline 39
"sources": { "maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", "maxOutputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol" - Network accessline 40
"maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", - Network accessline 41
"maxOutputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol" - Network accessline 46
"maxOutputTokens": 128000, "sources": { "maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", - Network accessline 47
"sources": { "maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", "maxOutputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol" - Network accessline 48
"maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", - Network accessline 49
"maxOutputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol" - Network accessline 74
"maxOutputTokens": 128000, "sources": { "maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", - Network accessline 75
"sources": { "maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", "maxOutputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol" - Network accessline 76
"maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", - Network accessline 77
"maxOutputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol" - Network accessline 82
"maxOutputTokens": 128000, "sources": { "maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", - Network accessline 83
"sources": { "maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", "maxOutputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol" - Network accessline 84
"maxInputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", - Network accessline 85
"maxOutputTokens": "https://developers.openai.com/api/docs/models/gpt-5.6-sol"
skills/workbuddy-cli-model-bridge/providers/glm-coding.json
- Network accessline 18
"maxOutputTokens": 128000, "sources": { "maxInputTokens": "https://docs.z.ai/guides/overview/migrate-to-glm-new", - Network accessline 19
"sources": { "maxInputTokens": "https://docs.z.ai/guides/overview/migrate-to-glm-new", "maxOutputTokens": "https://docs.z.ai/guides/overview/migrate-to-glm-new" - Network accessline 20
"maxInputTokens": "https://docs.z.ai/guides/overview/migrate-to-glm-new", - Network accessline 21
"maxOutputTokens": "https://docs.z.ai/guides/overview/migrate-to-glm-new"
skills/workbuddy-cli-model-bridge/providers/xai-grok.json
- Network accessline 22
"maxOutputTokens": 8192, "sources": { "maxInputTokens": "https://docs.x.ai/developers/models/grok-4.5", - Network accessline 23
"sources": { "maxInputTokens": "https://docs.x.ai/developers/models/grok-4.5", "maxOutputTokens": "https://docs.x.ai/build/settings" - Network accessline 24
"maxInputTokens": "https://docs.x.ai/developers/models/grok-4.5", - Network accessline 25
"maxOutputTokens": "https://docs.x.ai/build/settings" - Network accessline 30
"maxOutputTokens": 8192, "sources": { "maxInputTokens": "https://docs.x.ai/developers/models/grok-4.5", - Network accessline 31
"sources": { "maxInputTokens": "https://docs.x.ai/developers/models/grok-4.5", "maxOutputTokens": "https://docs.x.ai/build/settings" - Network accessline 32
"maxInputTokens": "https://docs.x.ai/developers/models/grok-4.5", - Network accessline 33
"maxOutputTokens": "https://docs.x.ai/build/settings" - Network accessline 38
"maxOutputTokens": 8192, "sources": { "maxInputTokens": "https://docs.x.ai/developers/models/grok-4.5", - Network accessline 39
"sources": { "maxInputTokens": "https://docs.x.ai/developers/models/grok-4.5", "maxOutputTokens": "https://docs.x.ai/build/settings" - Network accessline 40
"maxInputTokens": "https://docs.x.ai/developers/models/grok-4.5", - Network accessline 41
"maxOutputTokens": "https://docs.x.ai/build/settings"
skills/workbuddy-cli-model-bridge/references/glm-coding-plan.md
- Network accessline 11
| Region | Base URL | Notes | |---|---|---| | China mainland (verified) | `https://open.bigmodel.cn/api/coding/paas/v4` | Set CLIProxyAPI per-key `proxy-url: "direct"` so the request does not enter a TUN Fake-IP path | - Network accessline 12
|---|---|---| | China mainland (verified) | `https://open.bigmodel.cn/api/coding/paas/v4` | Set CLIProxyAPI per-key `proxy-url: "direct"` so the request does not enter a TUN Fake-IP path | | International | `https://api.z.ai/api/coding/paas - Network accessline 13
| China mainland (verified) | `https://open.bigmodel.cn/api/coding/paas/v4` | Set CLIProxyAPI per-key `proxy-url: "direct"` so the request does not enter a TUN Fake-IP path | - Network accessline 14
| International | `https://api.z.ai/api/coding/paas/v4` | Use only when the key was minted on z.ai | - Network accessline 25
openai-compatibility: - name: "glm-coding" base-url: "https://open.bigmodel.cn/api/coding/paas/v4" - Network accessline 26
- name: "glm-coding" base-url: "https://open.bigmodel.cn/api/coding/paas/v4" api-key-entries: - Network accessline 27
base-url: "https://open.bigmodel.cn/api/coding/paas/v4"
skills/workbuddy-cli-model-bridge/references/provider-schema.md
- Network accessline 48
"maxOutputTokens": 32000, "sources": { "maxInputTokens": "https://docs.example.com/models/example-3-fast", - Network accessline 49
"sources": { "maxInputTokens": "https://docs.example.com/models/example-3-fast", "maxOutputTokens": "https://docs.example.com/models/example-3-fast" - Network accessline 50
"maxInputTokens": "https://docs.example.com/models/example-3-fast", - Network accessline 51
"maxOutputTokens": "https://docs.example.com/models/example-3-fast"
skills/workbuddy-cli-model-bridge/references/troubleshooting.md
- Network accessline 38
The key is a coding-subscription credential, not a general BigModel balance pack. Use `https://open.bigmodel.cn/api/coding/paas/v4` on mainland or `https://api.z.ai/api/coding/paas/v4` internationally. The ordinary `/api/paas/v4` URL is the
skills/workbuddy-cli-model-bridge/scripts/bridge.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 39
DEFAULT_STATE_RELATIVE = Path(".config/workbuddy-cli-model-bridge") DEFAULT_WORKBUDDY_RELATIVE = Path(".workbuddy/models.json") DEFAULT_PROXY_URL = "http://127.0.0.1:8317" - Network accessline 41
DEFAULT_PROXY_URL = "http://127.0.0.1:8317" - Access to secretsline 261
[Credential-related source omitted] - Access to secretsline 262
[Credential-related source omitted] - Access to secretsline 267
[Credential-related source omitted] - Access to secretsline 273
[Credential-related source omitted] - Access to secretsline 566
[Credential-related source omitted] - Access to secretsline 572
[Credential-related source omitted] - Network accessline 573
if data is not None: headers["Content-Type"] = "application/json" request = urllib.request.Request(url, data=data, headers=headers, method="POST" if data is not None else "GET") - Network accessline 574
headers["Content-Type"] = "application/json" request = urllib.request.Request(url, data=data, headers=headers, method="POST" if data is not None else "GET") try: - Network accessline 575
request = urllib.request.Request(url, data=data, headers=headers, method="POST" if data is not None else "GET") - Network accessline 576
try: with urllib.request.urlopen(request, timeout=timeout) as response: raw = response.read() - Network accessline 577
with urllib.request.urlopen(request, timeout=timeout) as response: - Access to secretsline 581
[Credential-related source omitted] - Access to secretsline 593
[Credential-related source omitted] - Access to secretsline 594
[Credential-related source omitted] - Network accessline 626
[Credential-related source omitted] - Access to secretsline 626
[Credential-related source omitted] - Network accessline 627
payload = {"model": model, "messages": [{"role": "user", "content": "Reply with OK."}], "stream": True, "max_tokens": 16} request = urllib.request.Request( endpoint, - Network accessline 628
request = urllib.request.Request( - Access to secretsline 631
[Credential-related source omitted] - Network accessline 633
) try: with urllib.request.urlopen(request, timeout=45) as response: - Network accessline 634
try: with urllib.request.urlopen(request, timeout=45) as response: chunk = response.read(8192) - Network accessline 635
with urllib.request.urlopen(request, timeout=45) as response: - Access to secretsline 648
[Credential-related source omitted] - Access to secretsline 650
[Credential-related source omitted] - Access to secretsline 682
[Credential-related source omitted] - Access to secretsline 687
[Credential-related source omitted] - Access to secretsline 694
[Credential-related source omitted] - Access to secretsline 706
[Credential-related source omitted] - Access to secretsline 719
[Credential-related source omitted] - Access to secretsline 741
[Credential-related source omitted] - Access to secretsline 746
[Credential-related source omitted] - Access to secretsline 770
[Credential-related source omitted] - Access to secretsline 782
[Credential-related source omitted] - Access to secretsline 916
[Credential-related source omitted] - Access to secretsline 922
[Credential-related source omitted] - Network accessline 986
facts = config_facts(config, home) proxy_url = args.proxy_url or ( f"http://127.0.0.1:{facts.get('port', 8317)}" if facts.get("exists") else DEFAULT_PROXY_URL - Network accessline 987
proxy_url = args.proxy_url or ( f"http://127.0.0.1:{facts.get('port', 8317)}" if facts.get("exists") else DEFAULT_PROXY_URL ) - Network accessline 988
f"http://127.0.0.1:{facts.get('port', 8317)}" if facts.get("exists") else DEFAULT_PROXY_URL - Access to secretsline 990
[Credential-related source omitted] - Access to secretsline 1059
[Credential-related source omitted] - Access to secretsline 1069
[Credential-related source omitted] - Access to secretsline 1118
[Credential-related source omitted] - Access to secretsline 1230
[Credential-related source omitted] - Access to secretsline 1232
[Credential-related source omitted]
skills/workbuddy-cli-model-bridge/tests/test_bridge.py
- Executable scriptline 1
Executable file - Network accessline 58
length = int(self.headers.get("Content-Length", "0")) payload = json.loads(self.rfile.read(length) or b"{}") self.requests.append(payload) - Network accessline 59
payload = json.loads(self.rfile.read(length) or b"{}") self.requests.append(payload) if self.fail_required: - Network accessline 60
self.requests.append(payload) - Network accessline 135
thread.start() try: yield f"http://127.0.0.1:{server.server_port}" - Network accessline 136
try: yield f"http://127.0.0.1:{server.server_port}" finally: - Network accessline 137
yield f"http://127.0.0.1:{server.server_port}" - Network accessline 169
def test_manifest_rejects_shell_shaped_login_flag(self): provider = json.loads((Path(__file__).parents[1] / "providers/codex.json").read_text(encoding="utf-8")) provider["cliproxy"]["login_flag"] = "--codex-login; curl bad.e - Network accessline 170
provider = json.loads((Path(__file__).parents[1] / "providers/codex.json").read_text(encoding="utf-8")) provider["cliproxy"]["login_flag"] = "--codex-login; curl bad.example" errors = BRIDGE.validate_provider(provider) - Network accessline 171
provider["cliproxy"]["login_flag"] = "--codex-login; curl bad.example" - Possible obfuscationline 221
raw = base64.b64decode(BRIDGE.PROBE_IMAGE_PNG) - Network accessline 288
self.assertEqual(1050000, settings["maxInputTokens"]) self.assertEqual( "https://developers.openai.com/api/docs/models/gpt-5.6-sol", - Network accessline 289
self.assertEqual( "https://developers.openai.com/api/docs/models/gpt-5.6-sol", sources["maxInputTokens"], - Network accessline 290
"https://developers.openai.com/api/docs/models/gpt-5.6-sol", - Access to secretsline 394
[Credential-related source omitted] - Access to secretsline 434
[Credential-related source omitted] - Access to secretsline 455
[Credential-related source omitted] - Access to secretsline 469
[Credential-related source omitted] - Access to secretsline 491
[Credential-related source omitted] - Access to secretsline 545
[Credential-related source omitted] - Network accessline 553
output = io.StringIO() with contextlib.redirect_stdout(output): BRIDGE.cmd_audit(argparse.Namespace(home=str(home), config=None, proxy_url="http://127.0.0.1:9")) - Network accessline 554
with contextlib.redirect_stdout(output): BRIDGE.cmd_audit(argparse.Namespace(home=str(home), config=None, proxy_url="http://127.0.0.1:9")) rendered = output.getvalue() - Network accessline 555
BRIDGE.cmd_audit(argparse.Namespace(home=str(home), config=None, proxy_url="http://127.0.0.1:9"))
skills/wxmp-article-harvester/SKILL.md
- Network accessline 35
| 教程类文章 | 在日期范围命令后加 `--title-regex '(教程|手把手|教你|技巧|实操|实践|工作流)'` | | 年度/深历史 | 首轮加 `--batch`,冷却后只用 `--resume`;状态会恢复账号、范围和全文策略 | | 保存单篇链接 | `python3 scripts/browser_reader.py --url "https://mp.weixin.qq.com/s/..." --output-dir "目录"` | - Network accessline 37
| 保存单篇链接 | `python3 scripts/browser_reader.py --url "https://mp.weixin.qq.com/s/..." --output-dir "目录"` | - Network accessline 43
- 只接受 `https://mp.weixin.qq.com/s...` 公开文章链接;拒绝其他域名、协议和带用户信息的 URL。 - 所有 `wcx search/fetch/list/export/status` 都走 `wcx_run.py`。运行时禁止自动 `pip install` 或强制升级。
skills/wxmp-article-harvester/evals/evals.json
- Network accessline 22
{ "id": 4, "prompt": "把这个微信公众号链接保存成 Markdown:https://mp.weixin.qq.com/s/example", - Network accessline 23
"id": 4, "prompt": "把这个微信公众号链接保存成 Markdown:https://mp.weixin.qq.com/s/example", "expected_output": "Treats the request as clip-url, validates the host as https://mp.weixin.qq.com/s..., uses browser_reader.py, and saves one Markd - Network accessline 24
"prompt": "把这个微信公众号链接保存成 Markdown:https://mp.weixin.qq.com/s/example", - Network accessline 25
"expected_output": "Treats the request as clip-url, validates the host as https://mp.weixin.qq.com/s..., uses browser_reader.py, and saves one Markdown clipping without calling Metaso unless explicitly authorized.",
skills/wxmp-article-harvester/references/troubleshooting.md
- Network accessline 136
- 某个号抓到一半停止,输出 `freq control` 或 `Rate limited (ret=200013)` - 后续账号全部被拒 - `curl 28 timeout` - Network accessline 137
- 后续账号全部被拒 - `curl 28 timeout` - `OperationalError: database is locked` - Network accessline 138
- `curl 28 timeout` - Access to secretsline 193
[Credential-related source omitted] - Access to secretsline 200
[Credential-related source omitted] - Network accessline 206
3. `python3 scripts/wcx_run.py -- search "<公众号名>"` 4. `python3 scripts/harvest_wxmp.py --account "<公众号名>" --limit 10 --no-fulltext` 5. `python3 scripts/browser_reader.py --url "https://mp.weixin.qq.com/s/..." --output-dir /tmp` - Network accessline 207
4. `python3 scripts/harvest_wxmp.py --account "<公众号名>" --limit 10 --no-fulltext` 5. `python3 scripts/browser_reader.py --url "https://mp.weixin.qq.com/s/..." --output-dir /tmp` 6. `python3 scripts/harvest_wxmp.py --account "<公众号名>" --limit - Network accessline 208
5. `python3 scripts/browser_reader.py --url "https://mp.weixin.qq.com/s/..." --output-dir /tmp`
skills/wxmp-article-harvester/scripts/browser_reader.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/wxmp-article-harvester/scripts/harvest_wxmp.py
skills/wxmp-article-harvester/scripts/metaso_reader.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 21
METASO_API_URL = "https://metaso.cn/api/v1/reader" - Access to secretsline 104
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Network accessline 108
payload = json.dumps({"url": url}).encode("utf-8") request = urllib.request.Request( - Network accessline 109
request = urllib.request.Request( - Network accessline 117
method="POST", ) with urllib.request.urlopen(request, context=ssl.create_default_context(), timeout=timeout) as response: - Network accessline 118
) with urllib.request.urlopen(request, context=ssl.create_default_context(), timeout=timeout) as response: markdown = response.read().decode("utf-8", errors="ignore").strip() - Network accessline 119
with urllib.request.urlopen(request, context=ssl.create_default_context(), timeout=timeout) as response:
skills/wxmp-article-harvester/scripts/preflight.py
skills/wxmp-article-harvester/scripts/refresh_token_playwright.py
skills/wxmp-article-harvester/scripts/runtime_paths.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 16
APP_NAME = "wxmp-article-harvester" WCX_COMMIT = "37cf4d5fd6a0677c2137601292f6942ff731d4b9" WCX_INSTALL_SPEC = f"wcx @ git+https://github.com/lovstudio/wcx.git@{WCX_COMMIT}" - Network accessline 18
WCX_INSTALL_SPEC = f"wcx @ git+https://github.com/lovstudio/wcx.git@{WCX_COMMIT}" - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Network accessline 74
[Credential-related source omitted] - Network accessline 75
[Credential-related source omitted] - Network accessline 76
raise ValueError("only public https://mp.weixin.qq.com/s... article URLs are allowed") - Network accessline 77
if not re.fullmatch(r"/s(?:/[^/?#]+)?", parsed.path or ""): raise ValueError("only public https://mp.weixin.qq.com/s... article URLs are allowed") if parsed.path == "/s": - Network accessline 78
raise ValueError("only public https://mp.weixin.qq.com/s... article URLs are allowed")
skills/wxmp-article-harvester/scripts/wcx_batch_fetch.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/wxmp-article-harvester/scripts/wcx_run.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/wxmp-article-harvester/tests/test_harvester.py
- Executable scriptline 1
Executable file - Network accessline 25
def article_url(mid: int) -> str: return f"https://mp.weixin.qq.com/s?__biz=test&mid={mid}&idx=1&sn=abc" - Network accessline 26
return f"https://mp.weixin.qq.com/s?__biz=test&mid={mid}&idx=1&sn=abc" - Network accessline 30
def test_normalizes_http_and_rejects_non_wechat_hosts(self) -> None: normalized = runtime_paths.normalize_wechat_url(article_url(1).replace("https://", "http://")) self.assertTrue(normalized.startswith("https://mp.weixin.qq. - Network accessline 31
normalized = runtime_paths.normalize_wechat_url(article_url(1).replace("https://", "http://")) self.assertTrue(normalized.startswith("https://mp.weixin.qq.com/s?")) with self.assertRaises(ValueError): - Network accessline 32
self.assertTrue(normalized.startswith("https://mp.weixin.qq.com/s?")) - Network accessline 33
with self.assertRaises(ValueError): runtime_paths.normalize_wechat_url("https://mp.weixin.qq.com.evil.example/s?id=1") with self.assertRaises(ValueError): - Network accessline 34
runtime_paths.normalize_wechat_url("https://mp.weixin.qq.com.evil.example/s?id=1") - Network accessline 36
runtime_paths.normalize_wechat_url("https://mp.weixin.qq.com/cgi-bin/home") - Network accessline 40
self.assertEqual(runtime_paths.normalize_wechat_url(value), article_url(2)) with self.assertRaises(ValueError): runtime_paths.normalize_wechat_url("https://mp.weixin.qq.com/s?__biz=test&mid=2&idx=1") - Network accessline 42
runtime_paths.normalize_wechat_url("https://mp.weixin.qq.com/s?__biz=test&mid=2&idx=1") - Network accessline 96
[Credential-related source omitted] - Network accessline 97
[Credential-related source omitted] - Network accessline 101
def test_browser_result_keeps_inline_image_order(self) -> None: text = "这是教程正文。" * 60 markdown = f"第一步 {text}\n\n\n\n第二步 {text}" - Network accessline 102
text = "这是教程正文。" * 60 markdown = f"第一步 {text}\n\n\n\n第二步 {text}" result = browser_reader.result_from_page_data( - Network accessline 103
markdown = f"第一步 {text}\n\n\n\n第二步 {text}" - Network accessline 112
}, ) image_position = result.markdown.index("") - Network accessline 113
) image_position = result.markdown.index("") self.assertLess(result.markdown.index("第一步"), image_position) - Network accessline 114
image_position = result.markdown.index("") - Access to secretsline 261
[Credential-related source omitted] - Access to secretsline 321
[Credential-related source omitted]
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 7 facts
- Contacts www.apple.com, which SKILL.md, the README and the plugin manifest do not mentioncodex-theme-studio/scripts/install-resident-manager-macos.sh:43High confidence
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentionleadbook/assets/repo-template/scripts/generate-kami-diagrams.py:349High confidence
- Contacts www.xiaohongshu.com, which SKILL.md, the README and the plugin manifest do not mentionleadbook/assets/repo-template/scripts/xhs-research.py:112High confidence
- Uses a credential store, which the skill description does not mentionskill-open-sourcer/scripts/scan_skill_release.py:59High confidence
- Contacts metaso.cn, which SKILL.md, the README and the plugin manifest do not mentionweb-clipper/scripts/clip_articles.py:21High confidence
- Contacts api.fxtwitter.com, which SKILL.md, the README and the plugin manifest do not mentionweb-clipper/scripts/clip_articles.py:204High confidence
- Contacts x.com, which SKILL.md, the README and the plugin manifest do not mentionweb-clipper/scripts/clip_articles.py:231High confidence
Signal confidence: 493 facts
- Network access in prose of the SKILL.mdcodex-cli-model-bridge/SKILL.md:145Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/glm-coding-plan.md:13Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/glm-coding-plan.md:14Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/glm-coding-plan.md:15Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/glm-coding-plan.md:16Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/glm-coding-plan.md:19Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/glm-coding-plan.md:23Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/glm-coding-plan.md:24Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/glm-coding-plan.md:25Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/windows.md:9Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/windows.md:10Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/windows.md:11Low confidence
- Network access in prose of documentationcodex-cli-model-bridge/references/windows.md:12Low confidence
- Executable script in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:1High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:35High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuecodex-cli-model-bridge/scripts/bridge.py:35Low confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:36High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:37High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:38High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuecodex-cli-model-bridge/scripts/bridge.py:113Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuecodex-cli-model-bridge/scripts/bridge.py:124Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuecodex-cli-model-bridge/scripts/bridge.py:125Low confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:307High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:308High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:309High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:311High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:312High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:313High confidence
- Access to secrets in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:661High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:677High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:678High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:679High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:680High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:681High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuecodex-cli-model-bridge/scripts/bridge.py:722Low confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:802High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:803High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:804High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:805High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:806High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:905High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:906High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:907High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:915High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:916High confidence
- Network access in code of a file that runscodex-cli-model-bridge/scripts/bridge.py:917High confidence
- Executable script in code of a file that runscodex-cli-model-bridge/scripts/transparent_proxy.mjs:1High confidence
- Executable script in code of a testcodex-cli-model-bridge/tests/test_bridge.py:1Low confidence
- Network access in code of a testcodex-cli-model-bridge/tests/test_bridge.py:317Low confidence
- Network access in code of a testcodex-cli-model-bridge/tests/test_bridge.py:318Low confidence
and 443 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Frontmatter field disable-model-invocation in skills/codex-handoff/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/codex-cli-model-bridge/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/codex-cli-model-bridge/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/codex-cli-model-bridge/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/codex-cli-model-bridge/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.