Not in the top 1,000 by GitHub stars

ai-shifu/skills

Skills for creating 1v1 interactive courses with AI-Shifu

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/ai-shifu-course-creator/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 80926fab797c

No earlier version was observed for comparison.

Compare on GitHub

skills/ai-shifu-learning-report/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 80926fab797c

No earlier version was observed for comparison.

Compare on GitHub

skills/course-direction-advisor/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 80926fab797c

No earlier version was observed for comparison.

Compare on GitHub

tools/ai-shifu-skill-release/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 80926fab797c

No earlier version was observed for comparison.

Compare on GitHub

tools/ai-shifu-workbuddy-publisher/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 80926fab797c

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 80926fab797c635a95d41b57acbbc00223058956

git clone --filter=blob:none --no-checkout https://github.com/ai-shifu/skills.git .hotskills/ai-shifu-skills && git -C .hotskills/ai-shifu-skills checkout --detach 80926fab797c635a95d41b57acbbc00223058956 # Copy each selected skill directory from .hotskills/ai-shifu-skills into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/ai-shifu/skills.git .hotskills/ai-shifu-skills && git -C .hotskills/ai-shifu-skills checkout --detach 80926fab797c635a95d41b57acbbc00223058956 # Copy each selected skill directory from .hotskills/ai-shifu-skills into .agents/skills/<skill-name>/
11GitHub stars
0stars in 7 days
5skills in this repository
54commits in 30 days

Heat

1.7
  • 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

Oct 25, 2026Oct 25, 202611

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

ai-shifu-course-creator

When your agent uses it

Create, edit, review, publish, manage, or analyze AI-Shifu (AI师傅) courses and their Teaching Prompts and Course Prompts in MarkdownFlow (MDF). Use for course materials, lesson design, interactions, course memory, images, deployment, platform administration, learner progress, learner profile distributions, orders, revenue, and credit-consumption questions.

What it loads into context

Frontmatter

102 tokens

Always available to the agent

SKILL.md

2,822 tokens

When the skill is activated

Reference documents

64,361 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Collaborating With the Teacher
  2. Shared Conventions
  3. Capabilities
  4. Automatic Platform Updates
  5. Full-Course Creation Outcome

Scripts executed separately

  • scripts/agent_detection.py
  • scripts/image_preparation.py
  • scripts/profile_store.py
  • scripts/shifu-cli.py
  • scripts/skill_update_check.py

Files

  • .env.exampleasset909 bytes
  • AGENTS.mddoc14,268 bytes
  • SKILL.mdcore15,388 bytes
  • SKILL.mdcore15,388 bytes
  • SKILL.mdcore15,388 bytes
  • SKILL.mdcore15,388 bytes
  • SKILL.mdcore15,388 bytes
  • SKILL.mdcore15,388 bytes
  • SKILL.mdcore15,388 bytes
  • SKILL.mdcore15,388 bytes
  • SKILL.mdcore15,388 bytes
  • SKILL.mdcore15,388 bytes
  • agents/openai.yamlasset214 bytes
  • evals/README.mddoc7,403 bytes
  • evals/evals.jsonasset303,491 bytes
  • evals/trigger_eval.jsonasset11,569 bytes
  • references/analytics/guide.mddoc10,926 bytes
  • references/analytics/privacy-and-presentation.mddoc7,583 bytes
  • references/analytics/query-language.mddoc6,705 bytes
  • references/analytics/query-recipes.mddoc23,208 bytes
  • references/analytics/tables.mddoc18,932 bytes
  • references/authentication.mddoc8,690 bytes
  • references/authoring-contracts.mddoc5,166 bytes
  • references/build-and-import.mddoc4,737 bytes
  • references/cli/cli-reference.mddoc28,059 bytes
  • references/cli/course-directory-spec.mddoc13,944 bytes
  • references/course-description.mddoc1,707 bytes
  • references/course-design-choices.mddoc6,801 bytes
  • references/course-lookup.mddoc1,569 bytes
  • references/course-management.mddoc5,639 bytes
  • references/course-prompt.mddoc9,562 bytes
  • references/course-review.mddoc2,970 bytes
  • references/course-structure.mddoc4,636 bytes
  • references/course-sync.mddoc4,447 bytes
  • references/image-authoring.mddoc5,149 bytes
  • references/language-policy.mddoc7,738 bytes
  • references/markdownflow-syntax.mddoc8,034 bytes
  • references/open-in-app-browser.mddoc3,678 bytes
  • references/prompt-semantics.mddoc7,178 bytes
  • references/review-checklist.mddoc11,580 bytes
  • references/session-controls.mddoc9,497 bytes
  • references/source-preservation.mddoc1,553 bytes
  • references/teaching-design.mddoc33,321 bytes
  • references/teaching-prompt.mddoc36,773 bytes
  • scripts/agent_detection.pyruns8,402 bytes
  • scripts/image_preparation.pyruns6,206 bytes
  • scripts/profile_store.pyruns22,245 bytes
  • scripts/requirements.txtdoc67 bytes
  • scripts/shifu-cli.pyruns156,438 bytes
  • scripts/skill_update_check.pyruns19,924 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • ai-shifu-course-creator
  • ai-shifu-learning-report
  • course-direction-advisor
  • ai-shifu-skill-release
  • ai-shifu-workbuddy-publisher

Repository facts

License
No license detected
Created
Mar 4, 2026
Last pushed
Nov 4, 2026
Forks
2
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 51 notes
  • skills/ai-shifu-course-creator/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-course-creator/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-course-creator/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-course-creator/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-course-creator/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-course-creator/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-course-creator/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-course-creator/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-course-creator/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-learning-report/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-learning-report/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-learning-report/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ai-shifu-learning-report/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/course-direction-advisor/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/course-direction-advisor/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/course-direction-advisor/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/course-direction-advisor/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/course-direction-advisor/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/course-direction-advisor/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/course-direction-advisor/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 453 signals by file

skills/ai-shifu-course-creator/.env.example

  • Network accessline 1
    # Optional temporary configuration: supply BOTH a service URL and a token. # Leave empty to use the default named profile. Create one with # `shifu-cli.py profile set <name> --base-url cn|com|https://your-service.example`.
  • Network accessline 2
    # Leave empty to use the default named profile. Create one with # `shifu-cli.py profile set <name> --base-url cn|com|https://your-service.example`. # Explicit --profile <name> ignores both environment values for that invocation.
  • Network accessline 3
    # `shifu-cli.py profile set <name> --base-url cn|com|https://your-service.example`.

skills/ai-shifu-course-creator/evals/evals.json

  • Network accessline 213
    {       "id": 17,       "prompt": "Course Design Intake 和课节结构已经完成,personalization_directions=[\"examples\", \"analogies\", \"language_style\", \"value_relevance\"]。请只生成一节纯课堂幻灯片模式的授课提示词:课堂只投屏,由现场教师控制节奏,不需要 AI 旁白或长篇口头解释。lesson_id 固定为 L17,核心问题
  • Network accessline 214
    "id": 17,       "prompt": "Course Design Intake 和课节结构已经完成,personalization_directions=[\"examples\", \"analogies\", \"language_style\", \"value_relevance\"]。请只生成一节纯课堂幻灯片模式的授课提示词:课堂只投屏,由现场教师控制节奏,不需要 AI 旁白或长篇口头解释。lesson_id 固定为 L17,核心问题是‘向外部供应商
  • Network accessline 215
    "prompt": "Course Design Intake 和课节结构已经完成,personalization_directions=[\"examples\", \"analogies\", \"language_style\", \"value_relevance\"]。请只生成一节纯课堂幻灯片模式的授课提示词:课堂只投屏,由现场教师控制节奏,不需要 AI 旁白或长篇口头解释。lesson_id 固定为 L17,核心问题是‘向外部供应商发送客户数据前,如何确定合规动作
  • Network accessline 262
    {       "id": 20,       "prompt": "Course Design Intake 已全部完成,交付模式是纯课堂幻灯片:课堂只投屏,由现场教师控制节奏,不需要 AI 旁白。请用同一份材料分别生成 personalization_directions=[] 和 [\"examples\"] 的两份授课提示词;已知本次参训群体负责门店客户回访。两份都直接按下面顺序创建四页:第 1 页提出核心问题、呈现‘识别数据级别’,并完整放入一个简短、具体的客户数据
  • Network accessline 263
    "id": 20,       "prompt": "Course Design Intake 已全部完成,交付模式是纯课堂幻灯片:课堂只投屏,由现场教师控制节奏,不需要 AI 旁白。请用同一份材料分别生成 personalization_directions=[] 和 [\"examples\"] 的两份授课提示词;已知本次参训群体负责门店客户回访。两份都直接按下面顺序创建四页:第 1 页提出核心问题、呈现‘识别数据级别’,并完整放入一个简短、具体的客户数据例子;第 2 页
  • Network accessline 264
    "prompt": "Course Design Intake 已全部完成,交付模式是纯课堂幻灯片:课堂只投屏,由现场教师控制节奏,不需要 AI 旁白。请用同一份材料分别生成 personalization_directions=[] 和 [\"examples\"] 的两份授课提示词;已知本次参训群体负责门店客户回访。两份都直接按下面顺序创建四页:第 1 页提出核心问题、呈现‘识别数据级别’,并完整放入一个简短、具体的客户数据例子;第 2 页呈现‘确认接收方授权 → 完成审
  • Network accessline 372
    "expectations": [         "It explains a concrete, situation-appropriate production approach and useful preparation inputs without presenting a compulsory phase pipeline; the useful answer precedes any contextual contact mention.",         
  • Network accessline 373
    "It explains a concrete, situation-appropriate production approach and useful preparation inputs without presenting a compulsory phase pipeline; the useful answer precedes any contextual contact mention.",         "Once the site is resolved
  • Network accessline 374
    "Once the site is resolved (or the local-only contact fallback applies), the response contains exactly one Markdown link to the site-resolved official contact page (CN: `https://ai-shifu.cn/contact.html`; COM/custom: `https://ai-shifu.com/c
  • Network accessline 395
    "expectations": [         "The response first addresses the enterprise, bulk-production, or workflow-standardization context without inventing prices, contract terms, service guarantees, or unsupported capabilities.",         "Once the site
  • Network accessline 396
    "The response first addresses the enterprise, bulk-production, or workflow-standardization context without inventing prices, contract terms, service guarantees, or unsupported capabilities.",         "Once the site is resolved (or the local
  • Network accessline 397
    "Once the site is resolved (or the local-only contact fallback applies), the response contains exactly one Markdown link to the site-resolved official contact page (CN: `https://ai-shifu.cn/contact.html`; COM/custom: `https://ai-shifu.com/c
  • Network accessline 406
    "expectations": [         "Reply A asks or advances only the next missing intake item and contains no contact URL, contact invitation, or repeated promotional sentence.",         "Reply B reports the successful publishing result before any 
  • Network accessline 407
    "Reply A asks or advances only the next missing intake item and contains no contact URL, contact invitation, or repeated promotional sentence.",         "Reply B reports the successful publishing result before any optional next step and con
  • Network accessline 408
    "Reply B reports the successful publishing result before any optional next step and contains exactly one Markdown link to the site-resolved official contact page (CN: `https://ai-shifu.cn/contact.html`; COM/custom: `https://ai-shifu.com/con
  • Network accessline 418
    "expectations": [         "Reply A explains the expired-token impact and normal re-login recovery without any contact URL or invitation to contact the team.",         "Reply B explains that platform work remains blocked, separates any still
  • Network accessline 419
    "Reply A explains the expired-token impact and normal re-login recovery without any contact URL or invitation to contact the team.",         "Reply B explains that platform work remains blocked, separates any still-possible local work from 
  • Network accessline 420
    "Reply B explains that platform work remains blocked, separates any still-possible local work from blocked operations, and then contains exactly one Markdown link to the site-resolved official contact page (CN: `https://ai-shifu.cn/contact.
  • Network accessline 424
    {       "id": 33,       "prompt": "personalization_directions=[\"examples\", \"analogies\", \"language_style\", \"value_relevance\"]。请只修复下面这份已经完成的标准一对一授课提示词,不重做课程,不生成 Course Prompt,不部署,也不要输出审计报告。lesson_id 固定为 L33。\n\n这份提示词有 31 页,页序、三个互动的位置和
  • Network accessline 425
    "id": 33,       "prompt": "personalization_directions=[\"examples\", \"analogies\", \"language_style\", \"value_relevance\"]。请只修复下面这份已经完成的标准一对一授课提示词,不重做课程,不生成 Course Prompt,不部署,也不要输出审计报告。lesson_id 固定为 L33。\n\n这份提示词有 31 页,页序、三个互动的位置和下列精确内容都已
  • Network accessline 426
    "prompt": "personalization_directions=[\"examples\", \"analogies\", \"language_style\", \"value_relevance\"]。请只修复下面这份已经完成的标准一对一授课提示词,不重做课程,不生成 Course Prompt,不部署,也不要输出审计报告。lesson_id 固定为 L33。\n\n这份提示词有 31 页,页序、三个互动的位置和下列精确内容都已经批准。问题只在于开头混入了两段
  • Network accessline 545
    {       "id": 42,       "prompt": "Simulate a user saying, 'I want to view my courses.' site returns configured with profile=Daily and base_url=https://app.ai-shifu.com; verify returns 0, and the course list is empty. Do not call the real p
  • Network accessline 546
    "id": 42,       "prompt": "Simulate a user saying, 'I want to view my courses.' site returns configured with profile=Daily and base_url=https://app.ai-shifu.com; verify returns 0, and the course list is empty. Do not call the real platform.
  • Network accessline 547
    "prompt": "Simulate a user saying, 'I want to view my courses.' site returns configured with profile=Daily and base_url=https://app.ai-shifu.com; verify returns 0, and the course list is empty. Do not call the real platform. Output the inte
  • Network accessline 555
    {       "id": 43,       "prompt": "模拟用户说“使用我们自己的部署 https://school.example,帮我查看课程”。没有已保存配置或凭据,保存成功,verify 返回 0,列表为空。不要调用真实平台;输出内部命令顺序和用户回复。",
  • Network accessline 556
    "id": 43,       "prompt": "模拟用户说“使用我们自己的部署 https://school.example,帮我查看课程”。没有已保存配置或凭据,保存成功,verify 返回 0,列表为空。不要调用真实平台;输出内部命令顺序和用户回复。",       "expected_output": "Honors an explicit custom deployment without asking the regional question.",
  • Network accessline 557
    "prompt": "模拟用户说“使用我们自己的部署 https://school.example,帮我查看课程”。没有已保存配置或凭据,保存成功,verify 返回 0,列表为空。不要调用真实平台;输出内部命令顺序和用户回复。",
  • Network accessline 559
    "files": [],       "expectations": [         "Uses site --url https://school.example internally, then verifies and queries.",
  • Network accessline 560
    "expectations": [         "Uses site --url https://school.example internally, then verifies and queries.",         "Does not ask the user to select a region or request another confirmation, and does not repeat the URL as an initialization r
  • Network accessline 561
    "Uses site --url https://school.example internally, then verifies and queries.",
  • Network accessline 587
    {       "id": 46,       "prompt": "只做模拟,不调用真实平台、网络或浏览器。每个独立场景重新开始会话。技能初始化、鉴权和目标确认已完成,版本检查无需重复;上一条回复已给过联系入口。根据当前技能规则给出每个检查点此刻的浏览器调用决定和实际用户回复。浏览器工具清单是模拟的,不要真的调用。输出 JSON:scenarios 数组,每项含 name 和 checkpoints;每个 checkpoint 含 name、browser_calls 数组
  • Network accessline 588
    "id": 46,       "prompt": "只做模拟,不调用真实平台、网络或浏览器。每个独立场景重新开始会话。技能初始化、鉴权和目标确认已完成,版本检查无需重复;上一条回复已给过联系入口。根据当前技能规则给出每个检查点此刻的浏览器调用决定和实际用户回复。浏览器工具清单是模拟的,不要真的调用。输出 JSON:scenarios 数组,每项含 name 和 checkpoints;每个 checkpoint 含 name、browser_calls 数组(元素含 too
  • Network accessline 589
    "prompt": "只做模拟,不调用真实平台、网络或浏览器。每个独立场景重新开始会话。技能初始化、鉴权和目标确认已完成,版本检查无需重复;上一条回复已给过联系入口。根据当前技能规则给出每个检查点此刻的浏览器调用决定和实际用户回复。浏览器工具清单是模拟的,不要真的调用。输出 JSON:scenarios 数组,每项含 name 和 checkpoints;每个 checkpoint 含 name、browser_calls 数组(元素含 tool 和 arguments)及 
  • Network accessline 592
    "expectations": [         "No browser call occurs while import is running or verification is pending.",         "At final handoff the built-in browser opens https://app.ai-shifu.cn/shifu/course-a.",
  • Network accessline 593
    "No browser call occurs while import is running or verification is pending.",         "At final handoff the built-in browser opens https://app.ai-shifu.cn/shifu/course-a.",         "The final reply shows the same URL as a Markdown link and 
  • Network accessline 594
    "At final handoff the built-in browser opens https://app.ai-shifu.cn/shifu/course-a.",
  • Network accessline 599
    {       "id": 47,       "prompt": "只做模拟,不调用真实平台、网络或浏览器。每个场景独立开始,技能初始化、鉴权和目标确认已完成,上一条回复已给过联系入口。输出 JSON:scenarios 数组,每项含 name、browser_calls(元素含 tool 和 arguments)、cli_calls(模拟命令字符串数组)及 reply。\n\n用户要求:为《团队沟通》开启听课模式并汇报结果,保持草稿。目标课程 BID=course-b,已
  • Network accessline 600
    "id": 47,       "prompt": "只做模拟,不调用真实平台、网络或浏览器。每个场景独立开始,技能初始化、鉴权和目标确认已完成,上一条回复已给过联系入口。输出 JSON:scenarios 数组,每项含 name、browser_calls(元素含 tool 和 arguments)、cli_calls(模拟命令字符串数组)及 reply。\n\n用户要求:为《团队沟通》开启听课模式并汇报结果,保持草稿。目标课程 BID=course-b,已配置站点的 ba
  • Network accessline 601
    "prompt": "只做模拟,不调用真实平台、网络或浏览器。每个场景独立开始,技能初始化、鉴权和目标确认已完成,上一条回复已给过联系入口。输出 JSON:scenarios 数组,每项含 name、browser_calls(元素含 tool 和 arguments)、cli_calls(模拟命令字符串数组)及 reply。\n\n用户要求:为《团队沟通》开启听课模式并汇报结果,保持草稿。目标课程 BID=course-b,已配置站点的 base_url=https://s
  • Network accessline 604
    "expectations": [         "No scenario calls the CLI solely to obtain an admin URL or repeats a completed write.",         "Course scenarios use https://school.example:8443/training/shifu/course-b; the lesson scenario uses https://school.ex
  • Network accessline 605
    "No scenario calls the CLI solely to obtain an admin URL or repeats a completed write.",         "Course scenarios use https://school.example:8443/training/shifu/course-b; the lesson scenario uses https://school.example:8443/training/shifu/
  • Network accessline 606
    "Course scenarios use https://school.example:8443/training/shifu/course-b; the lesson scenario uses https://school.example:8443/training/shifu/course-b?lessonid=lesson-b.",
  • Network accessline 613
    {       "id": 48,       "prompt": "只做模拟,不调用真实平台、网络或浏览器。每个独立场景重新开始会话。技能初始化、鉴权和目标确认已完成,版本检查无需重复;上一条回复已给过联系入口。根据当前技能规则给出每个检查点此刻的浏览器调用决定和实际用户回复。浏览器工具清单是模拟的,不要真的调用。输出 JSON:scenarios 数组,每项含 name 和 checkpoints;每个 checkpoint 含 name、browser_calls 数组
  • Network accessline 614
    "id": 48,       "prompt": "只做模拟,不调用真实平台、网络或浏览器。每个独立场景重新开始会话。技能初始化、鉴权和目标确认已完成,版本检查无需重复;上一条回复已给过联系入口。根据当前技能规则给出每个检查点此刻的浏览器调用决定和实际用户回复。浏览器工具清单是模拟的,不要真的调用。输出 JSON:scenarios 数组,每项含 name 和 checkpoints;每个 checkpoint 含 name、browser_calls 数组(元素含 too
  • Network accessline 615
    "prompt": "只做模拟,不调用真实平台、网络或浏览器。每个独立场景重新开始会话。技能初始化、鉴权和目标确认已完成,版本检查无需重复;上一条回复已给过联系入口。根据当前技能规则给出每个检查点此刻的浏览器调用决定和实际用户回复。浏览器工具清单是模拟的,不要真的调用。输出 JSON:scenarios 数组,每项含 name 和 checkpoints;每个 checkpoint 含 name、browser_calls 数组(元素含 tool 和 arguments)及 
  • Network accessline 617
    "files": [],       "expectations": [         "The built-in browser opens the admin URL built from the known site and course BID: https://app.ai-shifu.com/shifu/course-c.",
  • Network accessline 618
    "expectations": [         "The built-in browser opens the admin URL built from the known site and course BID: https://app.ai-shifu.com/shifu/course-c.",         "The final reply shows Markdown links to the admin page and the public learner 
  • Network accessline 619
    "The built-in browser opens the admin URL built from the known site and course BID: https://app.ai-shifu.com/shifu/course-c.",
  • Network accessline 620
    "The final reply shows Markdown links to the admin page and the public learner URL returned by publish (https://app.ai-shifu.com/c/course-c), explaining that debugging starts at the admin page.",
  • Network accessline 813
    {       "id": 66,       "prompt": "只做流程模拟,不调用真实平台或网络。用户要求创建《AI 小侦探》课程,课程目录和本地检查均已完成,从未看过完整预览或另行确认上传,也从未要求不发布。site 已配置,verify 返回 0;以下模拟命令均成功。import --new 返回 BID=course-new,import 和 publish 返回的地址为 Admin console=https://app.ai-shifu.com/shifu/
  • Network accessline 814
    "id": 66,       "prompt": "只做流程模拟,不调用真实平台或网络。用户要求创建《AI 小侦探》课程,课程目录和本地检查均已完成,从未看过完整预览或另行确认上传,也从未要求不发布。site 已配置,verify 返回 0;以下模拟命令均成功。import --new 返回 BID=course-new,import 和 publish 返回的地址为 Admin console=https://app.ai-shifu.com/shifu/course-n
  • Network accessline 815
    "prompt": "只做流程模拟,不调用真实平台或网络。用户要求创建《AI 小侦探》课程,课程目录和本地检查均已完成,从未看过完整预览或另行确认上传,也从未要求不发布。site 已配置,verify 返回 0;以下模拟命令均成功。import --new 返回 BID=course-new,import 和 publish 返回的地址为 Admin console=https://app.ai-shifu.com/shifu/course-new、Preview URL=h
  • Network accessline 825
    {       "id": 67,       "prompt": "只做流程模拟,不调用真实平台或网络。用户明确说“这次只创建未发布草稿,不要发布”,完整目录完成后已自动上传。创建、同步及核验均成功,BID=course-draft。CLI 返回 Admin console=https://app.ai-shifu.com/shifu/course-draft、Preview URL=https://app.ai-shifu.com/c/course-draft?previ
  • Network accessline 826
    "id": 67,       "prompt": "只做流程模拟,不调用真实平台或网络。用户明确说“这次只创建未发布草稿,不要发布”,完整目录完成后已自动上传。创建、同步及核验均成功,BID=course-draft。CLI 返回 Admin console=https://app.ai-shifu.com/shifu/course-draft、Preview URL=https://app.ai-shifu.com/c/course-draft?preview=true;
  • Network accessline 827
    "prompt": "只做流程模拟,不调用真实平台或网络。用户明确说“这次只创建未发布草稿,不要发布”,完整目录完成后已自动上传。创建、同步及核验均成功,BID=course-draft。CLI 返回 Admin console=https://app.ai-shifu.com/shifu/course-draft、Preview URL=https://app.ai-shifu.com/c/course-draft?preview=true;show 还打印了 https:
  • Network accessline 857
    {       "id": 70,       "prompt": "只汇报已有执行结果,不调用工具或继续平台操作。新课已创建,内容回读通过,但 publish 返回网络错误,正式发布尚未验证成功。用户原本要求创建并发布,并未要求保留草稿。工具已返回后台 https://app.ai-shifu.com/shifu/course-p 和预览 https://app.ai-shifu.com/c/course-p?preview=true;show 也打印了 https://a
  • Network accessline 858
    "id": 70,       "prompt": "只汇报已有执行结果,不调用工具或继续平台操作。新课已创建,内容回读通过,但 publish 返回网络错误,正式发布尚未验证成功。用户原本要求创建并发布,并未要求保留草稿。工具已返回后台 https://app.ai-shifu.com/shifu/course-p 和预览 https://app.ai-shifu.com/c/course-p?preview=true;show 也打印了 https://app.ai-sh
  • Network accessline 859
    "prompt": "只汇报已有执行结果,不调用工具或继续平台操作。新课已创建,内容回读通过,但 publish 返回网络错误,正式发布尚未验证成功。用户原本要求创建并发布,并未要求保留草稿。工具已返回后台 https://app.ai-shifu.com/shifu/course-p 和预览 https://app.ai-shifu.com/c/course-p?preview=true;show 也打印了 https://app.ai-shifu.com/c/course
  • Network accessline 941
    {       "id": 76,       "prompt": "Simulate the workflow only; do not call the real platform or network. The user asks to view courses with profile 'Client A' for this request while keeping the default for later ordinary queries. The simula
  • Network accessline 942
    "id": 76,       "prompt": "Simulate the workflow only; do not call the real platform or network. The user asks to view courses with profile 'Client A' for this request while keeping the default for later ordinary queries. The simulated prof
  • Network accessline 943
    "prompt": "Simulate the workflow only; do not call the real platform or network. The user asks to view courses with profile 'Client A' for this request while keeping the default for later ordinary queries. The simulated profile list contain
  • Network accessline 953
    {       "id": 77,       "prompt": "Simulate the workflow only; do not call the real platform. The user says, 'View courses on the international service,' without naming a profile. The default profile 'Daily' points to https://app.ai-shifu.c
  • Network accessline 954
    "id": 77,       "prompt": "Simulate the workflow only; do not call the real platform. The user says, 'View courses on the international service,' without naming a profile. The default profile 'Daily' points to https://app.ai-shifu.cn; 'Pers
  • Network accessline 955
    "prompt": "Simulate the workflow only; do not call the real platform. The user says, 'View courses on the international service,' without naming a profile. The default profile 'Daily' points to https://app.ai-shifu.cn; 'Personal Demo' and '
  • Network accessline 964
    {       "id": 78,       "prompt": "Simulate the workflow only; do not call the real platform or modify files. The user explicitly selects profile 'Demo' at https://app.ai-shifu.com and asks to sync approved content to course-x. The supplied
  • Network accessline 965
    "id": 78,       "prompt": "Simulate the workflow only; do not call the real platform or modify files. The user explicitly selects profile 'Demo' at https://app.ai-shifu.com and asks to sync approved content to course-x. The supplied directo
  • Network accessline 966
    "prompt": "Simulate the workflow only; do not call the real platform or modify files. The user explicitly selects profile 'Demo' at https://app.ai-shifu.com and asks to sync approved content to course-x. The supplied directory's .shifu-sync
  • Network accessline 986
    {       "id": 80,       "prompt": "Simulate the workflow only; do not call the platform or modify configuration. The user requests a course query using temporary environment configuration. The process has only SHIFU_BASE_URL=https://school.
  • Network accessline 987
    "id": 80,       "prompt": "Simulate the workflow only; do not call the platform or modify configuration. The user requests a course query using temporary environment configuration. The process has only SHIFU_BASE_URL=https://school.example,
  • Network accessline 988
    [Credential-related source omitted]
  • Access to secretsline 988
    [Credential-related source omitted]
  • Network accessline 997
    {       "id": 81,       "prompt": "Simulate the workflow only; do not call the real platform. The user wants to use assets/raw/diagram.png in a course with profile 'Sandbox' at https://school.example/training. The directory has no .shifu-sy
  • Network accessline 998
    "id": 81,       "prompt": "Simulate the workflow only; do not call the real platform. The user wants to use assets/raw/diagram.png in a course with profile 'Sandbox' at https://school.example/training. The directory has no .shifu-sync.json.
  • Network accessline 999
    "prompt": "Simulate the workflow only; do not call the real platform. The user wants to use assets/raw/diagram.png in a course with profile 'Sandbox' at https://school.example/training. The directory has no .shifu-sync.json. Its image manif
  • Network accessline 1002
    "expectations": [         "It uploads with --profile Sandbox, --course-dir, and an informative alt; neither an unknown legacy entry nor a different service entry proves a reusable current-service upload.",         "The new record carries ba
  • Network accessline 1003
    "It uploads with --profile Sandbox, --course-dir, and an informative alt; neither an unknown legacy entry nor a different service entry proves a reusable current-service upload.",         "The new record carries base_url=https://school.exam
  • Network accessline 1004
    "The new record carries base_url=https://school.example/training and profile=Sandbox and is keyed by service URL plus local source; records A and B remain present.",
  • Network accessline 1005
    "The Teaching Prompt uses the exact returned https://media.school.example/new-diagram URL without rewriting its host to match a service address."
  • Network accessline 1793
    "id": 136,       "eval_name": "simulation-no-event-bridge-page-only",       "prompt": "只在本地写一个中文 MarkdownFlow 授课提示词片段,并在片段外简短说明目前能核实与不能核实的事。不打开网页、不连接平台。老师已有下列页面,要求保留原图片块与“只使用页面展示,不向学员另加文字问答、提交表单或背景收集”的限制;请按这个条件帮助学员比较排队模型的变化,不要擅自改成问答课。\n\n保留
  • Network accessline 1794
    "eval_name": "simulation-no-event-bridge-page-only",       "prompt": "只在本地写一个中文 MarkdownFlow 授课提示词片段,并在片段外简短说明目前能核实与不能核实的事。不打开网页、不连接平台。老师已有下列页面,要求保留原图片块与“只使用页面展示,不向学员另加文字问答、提交表单或背景收集”的限制;请按这个条件帮助学员比较排队模型的变化,不要擅自改成问答课。\n\n保留的图片块:\n![排队仿真(HTM
  • Network accessline 1795
    "prompt": "只在本地写一个中文 MarkdownFlow 授课提示词片段,并在片段外简短说明目前能核实与不能核实的事。不打开网页、不连接平台。老师已有下列页面,要求保留原图片块与“只使用页面展示,不向学员另加文字问答、提交表单或背景收集”的限制;请按这个条件帮助学员比较排队模型的变化,不要擅自改成问答课。\n\n保留的图片块:\n![排队仿真(HTML view)](https://example.com/queue-sim.html)\n\n页面契约:页面内有到达

skills/ai-shifu-course-creator/references/cli/cli-reference.md

  • Network accessline 55
    profile set Daily --base-url cn profile set Demo --base-url com profile set "Client A" --base-url https://school.example:8443/training
  • Network accessline 56
    profile set Demo --base-url com profile set "Client A" --base-url https://school.example:8443/training profile list
  • Network accessline 57
    profile set "Client A" --base-url https://school.example:8443/training
  • Network accessline 66
    `profile set` creates or updates a profile. `cn` and `com` (case-insensitive) expand to `https://app.ai-shifu.cn` and `https://app.ai-shifu.com`; storage contains full URLs, without a region type. Custom URLs support HTTPS, ports, and path 
  • Access to secretsline 71
    [Credential-related source omitted]
  • Network accessline 85
    "Daily": {       "id": "<generated internal ID>",       "base_url": "https://app.ai-shifu.cn"
  • Network accessline 86
    "id": "<generated internal ID>",       "base_url": "https://app.ai-shifu.cn"     }
  • Network accessline 87
    "base_url": "https://app.ai-shifu.cn"
  • Network accessline 109
    site --set cn site --set com site --url https://your-service.example
  • Network accessline 111
    site --url https://your-service.example

skills/ai-shifu-course-creator/references/cli/course-directory-spec.md

  • Network accessline 139
    "schema_version": 1,   "shifu_bid": "a1b2c3",   "base_url": "https://app.ai-shifu.cn",
  • Network accessline 140
    "shifu_bid": "a1b2c3",   "base_url": "https://app.ai-shifu.cn",   "profile": "Daily",
  • Network accessline 141
    "base_url": "https://app.ai-shifu.cn",
  • Network accessline 187
    {       "local": "assets/raw/gradient-descent.heic",       "base_url": "https://app.ai-shifu.cn",
  • Network accessline 188
    "local": "assets/raw/gradient-descent.heic",       "base_url": "https://app.ai-shifu.cn",       "profile": "Daily",
  • Network accessline 189
    "base_url": "https://app.ai-shifu.cn",
  • Network accessline 190
    "profile": "Daily",       "remote": "https://assets.example.com/abcd",       "alt": "Image description",
  • Network accessline 191
    "remote": "https://assets.example.com/abcd",
  • Network accessline 198
    },     {       "source_url": "https://example.com/diagram.png",
  • Network accessline 199
    {       "source_url": "https://example.com/diagram.png",       "base_url": "https://school.example/training",
  • Network accessline 200
    "source_url": "https://example.com/diagram.png",
  • Network accessline 201
    "base_url": "https://school.example/training",
  • Network accessline 202
    "profile": "Client A",       "remote": "https://assets.example.com/efgh",       "alt": "Image description",
  • Network accessline 203
    "remote": "https://assets.example.com/efgh",

skills/ai-shifu-course-creator/references/course-design-choices.md

  • Network accessline 21
    For example: "I recommend a worked example here: show how the solution develops step by step and explain the key judgments. This follows [MIT Teaching + Learning Lab's guidance](https://tll.mit.edu/teaching-resources/how-people-learn/worked

skills/ai-shifu-course-creator/references/session-controls.md

  • Network accessline 13
    Resolve the official contact page from the local `shifu-cli.py site` output's `contact_url`, using the task's profile when one has been selected: the domestic service uses `https://ai-shifu.cn/contact.html`; the international service uses `
  • Network accessline 44
    The version source is `https://api.github.com/repos/ai-shifu/skills/releases/latest`. Use only a published, non-prerelease Release with a `vMAJOR.MINOR.PATCH` tag; its `html_url` must match `https://github.com/ai-shifu/skills/releases/tag/<

skills/ai-shifu-course-creator/references/teaching-design.md

  • Network accessline 29
    For example: "Distinguish correlation from causation → may mistake simultaneous changes for causation → compare two cases with different conditions and explain the difference → identify the missing evidence in a new case." Choose the order 
  • Network accessline 31
    Evidence should match the objective: recalling a term does not establish the ability to apply a procedure or justify a decision. When learner responses are allowed, an explanation, attempted solution, classification, or small work product c
  • Network accessline 109
    | Strategy and source | Fit and possible teaching action | Boundary | | --- | --- | --- | | Worked examples — [MIT Teaching + Learning Lab](https://tll.mit.edu/teaching-resources/how-people-learn/worked-examples/) | A learner new to a proce
  • Network accessline 110
    | --- | --- | --- | | Worked examples — [MIT Teaching + Learning Lab](https://tll.mit.edu/teaching-resources/how-people-learn/worked-examples/) | A learner new to a procedure needs to see the reasoning behind a solution. Explain the steps a
  • Network accessline 111
    | Worked examples — [MIT Teaching + Learning Lab](https://tll.mit.edu/teaching-resources/how-people-learn/worked-examples/) | A learner new to a procedure needs to see the reasoning behind a solution. Explain the steps and why they work; su
  • Network accessline 112
    | Retrieval practice — [Washington University Center for Teaching and Learning](https://ctl.wustl.edu/resources/using-retrieval-practice-to-increase-student-learning/) | Previously taught knowledge needs to be recalled or used. Invite recal
  • Network accessline 113
    | Prior-knowledge assessment — [Carnegie Mellon's Eberly Center](https://www.cmu.edu/teaching/designteach/teach/priorknowledge.html) | Existing attempts may reveal missing prerequisites or a misconception. Use relevant available evidence to
  • Network accessline 114
    | Self-explanation — [MIT Teaching + Learning Lab](https://tll.mit.edu/teaching-resources/how-people-learn/worked-examples/) | A learner can follow a solution but may not understand its reasoning. Ask why a step or principle applies, then u
  • Network accessline 115
    | Case-based learning — [Columbia Center for Teaching and Learning](https://ctl.columbia.edu/resources-and-technology/resources/case-method/) | A learner needs to apply concepts to a contextual problem or decision. Provide case evidence and
  • Network accessline 116
    | Scaffolding — [review of contingency, fading, and transfer of responsibility](https://doi.org/10.1007/s10648-010-9127-6) | Adjust help to the actual difficulty, reduce it as performance permits, and return responsibility to the learner. |
  • Network accessline 117
    | Formative feedback — [Shute's review](https://doi.org/10.3102/0034654307313795) | Give specific, supportive information suited to the task and learner, with an opportunity to use it. | Feedback timing and form depend on context; this sour
  • Network accessline 118
    | Socratic questions — [University of Connecticut CETL](https://cetl.uconn.edu/resources/teaching-your-course/leading-effective-discussions/socratic-questions/) | Examine clarification, assumptions, reasons, perspectives, and consequences t
  • Network accessline 119
    | Interactive simulations — [PhET research](https://phet.colorado.edu/en/research) | Use a suitably designed model to explore conditions and connect observations with an explanation. | Evidence concerns particular simulation designs and use
  • Network accessline 120
    | Study and practice organization — [IES practice guide](https://ies.ed.gov/ncee/wwc/PracticeGuide/1) | For relevant consolidation needs, space revisits, use retrieval and explanatory questions, or alternate worked examples with problem sol
  • Network accessline 121
    | Role-playing — [Carnegie Mellon's active-learning strategies](https://www.cmu.edu/teaching/resources/instructionalstrategies/activelearningstrategies/index.html) | Take a stakeholder's role to compare perspectives or practice contextual e
  • Network accessline 122
    | Project-based learning — [PBLWorks design framework](https://www.pblworks.org/gold-standard/pbl-project-design) | A full project design connects a challenging problem, sustained inquiry, authenticity, student choice, reflection, critique 
  • Network accessline 177
    - Choose a visual where seeing elements together clarifies a structural or spatial relationship, a process, a comparison, or a change in evidence. Text can carry precise definitions, reasoning, contextual details, and response feedback; a c
  • Network accessline 178
    - A visual followed by explanation is one useful pattern: let the explanation develop relationships, reasoning, context, or application rather than merely repeat labels. Other coherent arrangements are valid. - Keep labels near their refere
  • Network accessline 179
    - Keep labels near their referents, signal the relevant relationship, and reveal complex information in manageable parts when useful. These recommendations follow [UCSB's guidance on explaining content and slide design](https://citral.ucsb.

skills/ai-shifu-course-creator/scripts/agent_detection.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 184
    [Credential-related source omitted]

skills/ai-shifu-course-creator/scripts/image_preparation.py

  • Executable scriptline 1
    Executable file

skills/ai-shifu-course-creator/scripts/profile_store.py

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    SITE_URLS = {"cn": "https://app.ai-shifu.cn", "com": "https://app.ai-shifu.com"}
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 277
    [Credential-related source omitted]
  • Access to secretsline 284
    [Credential-related source omitted]
  • Access to secretsline 285
    [Credential-related source omitted]
  • Access to secretsline 288
    [Credential-related source omitted]
  • Access to secretsline 290
    [Credential-related source omitted]
  • Access to secretsline 376
    [Credential-related source omitted]
  • Access to secretsline 414
    [Credential-related source omitted]
  • Access to secretsline 416
    [Credential-related source omitted]
  • Access to secretsline 438
    [Credential-related source omitted]
  • Access to secretsline 443
    [Credential-related source omitted]

skills/ai-shifu-course-creator/scripts/shifu-cli.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 84
    [Credential-related source omitted]
  • Access to secretsline 114
    [Credential-related source omitted]
  • Access to secretsline 126
    [Credential-related source omitted]
  • Access to secretsline 139
    [Credential-related source omitted]
  • Network accessline 151
    "base_url": base_url,         "contact_url": (             "https://ai-shifu.cn/contact.html" if base_url == SITE_URLS["cn"]
  • Network accessline 152
    "contact_url": (             "https://ai-shifu.cn/contact.html" if base_url == SITE_URLS["cn"]             else "https://ai-shifu.com/contact.html" if base_url else None
  • Network accessline 153
    "https://ai-shifu.cn/contact.html" if base_url == SITE_URLS["cn"]
  • Network accessline 154
    else "https://ai-shifu.com/contact.html" if base_url else None
  • Access to secretsline 165
    [Credential-related source omitted]
  • Access to secretsline 167
    [Credential-related source omitted]
  • Possible obfuscationline 222
    return json.loads(base64.b64decode(encoded))
  • Network accessline 339
    data = {"resource_id": resource_id} if resource_id else None     try:         resp = requests.post(url, headers=headers, files=files, data=data, timeout=60)
  • Network accessline 340
    try:         resp = requests.post(url, headers=headers, files=files, data=data, timeout=60)     except requests.RequestException as e:
  • Network accessline 341
    resp = requests.post(url, headers=headers, files=files, data=data, timeout=60)
  • Network accessline 552
    resp = requests.post(
  • Network accessline 620
    try:         resp = requests.post(
  • Network accessline 621
    resp = requests.post(
  • Network accessline 791
    [Credential-related source omitted]
  • Network accessline 792
    [Credential-related source omitted]
  • Network accessline 793
    resp = requests.get(url, headers=headers, timeout=15)
  • Network accessline 934
    with requests.Session() as session:
  • Network accessline 1058
    url = f"{base_url}/api/shifu/shifus/{shifu_bid}/export"     headers = _request_headers(token, json_content=False)     resp = requests.get(url, headers=headers, timeout=60)
  • Network accessline 1060
    resp = requests.get(url, headers=headers, timeout=60)
  • Network accessline 1562
    with requests.Session() as session:
  • Network accessline 2991
    with requests.Session() as session:
  • Access to secretsline 3612
    [Credential-related source omitted]
  • Access to secretsline 3666
    [Credential-related source omitted]
  • Access to secretsline 3676
    [Credential-related source omitted]

skills/ai-shifu-course-creator/scripts/skill_update_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 23
    SKILL_ROOT = Path(__file__).resolve().parent.parent SKILL_MD = SKILL_ROOT / "SKILL.md" GITHUB_RELEASES_URL = "https://github.com/ai-shifu/skills/releases"
  • Network accessline 24
    SKILL_MD = SKILL_ROOT / "SKILL.md" GITHUB_RELEASES_URL = "https://github.com/ai-shifu/skills/releases" MANIFEST_URL = "https://api.github.com/repos/ai-shifu/skills/releases/latest"
  • Network accessline 25
    GITHUB_RELEASES_URL = "https://github.com/ai-shifu/skills/releases"
  • Network accessline 26
    MANIFEST_URL = "https://api.github.com/repos/ai-shifu/skills/releases/latest"
  • Network accessline 422
    def get(url, **kwargs):         nonlocal retry_after_seconds         response = requests.get(url, **kwargs)
  • Network accessline 423
    nonlocal retry_after_seconds         response = requests.get(url, **kwargs)         final_url = getattr(response, "url", MANIFEST_URL) or MANIFEST_URL
  • Network accessline 424
    response = requests.get(url, **kwargs)

skills/ai-shifu-learning-report/references/report-data.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://ai-shifu.com/schemas/course-learning-report-1.0.json",

skills/ai-shifu-learning-report/scripts/render_report.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/course-direction-advisor/references/course-direction-advisor.schema.v1.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://ai-shifu.local/schemas/course-direction-advisor.v1.json",

tools/ai-shifu-skill-release/README.md

  • Network accessline 25
    The optional `preview_type=draft` mode on `main` still prepares an unpublished draft for its matching expected version. Pushing a formal `vX.Y.Z` tag also prepares a draft without publishing or starting platform jobs. An administrator can p

tools/ai-shifu-skill-release/channels/workbuddy/build-zip.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

tools/ai-shifu-skill-release/references/publishing-environment.md

  • Network accessline 30
    | Git | Fetch source; push branches for bump PRs | PATH | | Configured Node version and npx (default: Node 22) | ClawHub CLI | `CLAWHUB_NPX` or `--clawhub-npx`, then PATH, then nvm for the configured Node version | | SkillHub CLI | SkillHub
  • Network accessline 31
    | Configured Node version and npx (default: Node 22) | ClawHub CLI | `CLAWHUB_NPX` or `--clawhub-npx`, then PATH, then nvm for the configured Node version | | SkillHub CLI | SkillHub publication | PATH, overridden by `SKILLHUB_CLI` or `--sk
  • Network accessline 32
    | SkillHub CLI | SkillHub publication | PATH, overridden by `SKILLHUB_CLI` or `--skillhub-cli`; see the [installation guide](https://skillhub.cn/install/skillhub.md) |

tools/ai-shifu-skill-release/release.toml

  • Network accessline 5
    [channels.clawhub] owner = "heshaofu2" endpoint = "https://clawhub.ai"
  • Network accessline 6
    owner = "heshaofu2" endpoint = "https://clawhub.ai" package = "clawhub@latest"
  • Network accessline 7
    endpoint = "https://clawhub.ai"
  • Network accessline 11
    [channels.skillhub] endpoint = "https://api.skillhub.cn"
  • Network accessline 12
    endpoint = "https://api.skillhub.cn"
  • Network accessline 13
    cli_version = "2026.8.5" cli_url = "https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/skillhub-cli-2026.8.5.tar.gz" cli_sha256 = "3bbe2ba15ada2eb7a94a2b760fead83be5f4164ab28a6c8b0944dbc539f7e236"
  • Network accessline 14
    cli_url = "https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/skillhub-cli-2026.8.5.tar.gz"

tools/ai-shifu-skill-release/scripts/ai_shifu_release/__init__.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/scripts/ai_shifu_release/artifacts.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 50
    [Credential-related source omitted]

tools/ai-shifu-skill-release/scripts/ai_shifu_release/build.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/scripts/ai_shifu_release/channel_results.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/scripts/ai_shifu_release/channel_submission.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]

tools/ai-shifu-skill-release/scripts/ai_shifu_release/channels/__init__.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/scripts/ai_shifu_release/channels/clawhub_skillhub.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/scripts/ai_shifu_release/channels/doubao.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/scripts/ai_shifu_release/channels/workbuddy.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/scripts/ai_shifu_release/cli.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 237
    [Credential-related source omitted]
  • Access to secretsline 276
    [Credential-related source omitted]

tools/ai-shifu-skill-release/scripts/ai_shifu_release/config.py

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    class ClawHubConfig:     owner: str = "heshaofu2"     endpoint: str = "https://clawhub.ai"
  • Network accessline 24
    owner: str = "heshaofu2"     endpoint: str = "https://clawhub.ai"     package: str = "clawhub@latest"
  • Network accessline 25
    endpoint: str = "https://clawhub.ai"
  • Network accessline 30
    @dataclass(frozen=True) class SkillHubConfig:     endpoint: str = "https://api.skillhub.cn"
  • Network accessline 31
    class SkillHubConfig:     endpoint: str = "https://api.skillhub.cn"     cli_version: str = "2026.8.5"
  • Network accessline 32
    endpoint: str = "https://api.skillhub.cn"
  • Network accessline 33
    cli_version: str = "2026.8.5"     cli_url: str = (         "https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/"
  • Network accessline 34
    cli_url: str = (         "https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/"         "install/skillhub-cli-2026.8.5.tar.gz"
  • Network accessline 35
    "https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/"
  • Access to secretsline 85
    [Credential-related source omitted]

tools/ai-shifu-skill-release/scripts/ai_shifu_release/github_releases.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 145
    [Credential-related source omitted]
  • Network accessline 437
    expected_dir = build.build(             SimpleNamespace(                 source_repo_url=f"https://github.com/{repository}.git",
  • Network accessline 438
    SimpleNamespace(                 source_repo_url=f"https://github.com/{repository}.git",                 source_ref=commit,
  • Network accessline 439
    source_repo_url=f"https://github.com/{repository}.git",

tools/ai-shifu-skill-release/scripts/ai_shifu_release/publishing.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 49
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]
  • Access to secretsline 80
    [Credential-related source omitted]
  • Network accessline 82
    if not command:         raise ValueError(             "skillhub CLI is not installed; see https://skillhub.cn/install/skillhub.md"
  • Network accessline 83
    raise ValueError(             "skillhub CLI is not installed; see https://skillhub.cn/install/skillhub.md"         )
  • Network accessline 84
    "skillhub CLI is not installed; see https://skillhub.cn/install/skillhub.md"
  • Access to secretsline 122
    [Credential-related source omitted]

tools/ai-shifu-skill-release/scripts/ai_shifu_release/release_notes.py

  • Executable scriptline 1
    Executable file
  • Network accessline 504
    if (                     url.rstrip("/").lower()                     != f"https://github.com/{repository}/pull/{number}".lower()
  • Network accessline 505
    url.rstrip("/").lower()                     != f"https://github.com/{repository}/pull/{number}".lower()                 ):
  • Network accessline 506
    != f"https://github.com/{repository}/pull/{number}".lower()
  • Network accessline 541
    "author": commit["author"],                 "author_is_login": False,                 "url": f"https://github.com/{repository}/commit/{sha}"
  • Network accessline 542
    "author_is_login": False,                 "url": f"https://github.com/{repository}/commit/{sha}"                 if repository
  • Network accessline 543
    "url": f"https://github.com/{repository}/commit/{sha}"
  • Network accessline 790
    lines += ["## Changelog", "", render_changelog(snapshot), ""]     if snapshot.get("repository") and snapshot.get("base_sha"):         url = f"https://github.com/{snapshot['repository']}/compare/{snapshot['base_sha']}...{snapshot['head_sha']
  • Network accessline 791
    if snapshot.get("repository") and snapshot.get("base_sha"):         url = f"https://github.com/{snapshot['repository']}/compare/{snapshot['base_sha']}...{snapshot['head_sha']}"         lines += [f"[Full comparison]({url})", ""]
  • Network accessline 792
    url = f"https://github.com/{snapshot['repository']}/compare/{snapshot['base_sha']}...{snapshot['head_sha']}"

tools/ai-shifu-skill-release/scripts/ai_shifu_release/release_state.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/scripts/ai_shifu_release/skill_metadata.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/scripts/ai_shifu_release/source.py

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    SOURCE_REPOSITORY = "https://github.com/ai-shifu/skills.git"

tools/ai-shifu-skill-release/scripts/ai_shifu_release/verify.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/scripts/ai_shifu_release/version_bump.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/scripts/release.py

  • Executable scriptline 1
    #!/usr/bin/env python3

tools/ai-shifu-skill-release/tests/support.py

  • Executable scriptline 1
    Executable file
  • Network accessline 56
    [Credential-related source omitted]
  • Network accessline 57
    [Credential-related source omitted]
  • Network accessline 58
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 124
    [Credential-related source omitted]

tools/ai-shifu-skill-release/tests/test_archive_integrity.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/tests/test_build_release.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 144
    [Credential-related source omitted]
  • Access to secretsline 254
    [Credential-related source omitted]
  • Access to secretsline 397
    [Credential-related source omitted]

tools/ai-shifu-skill-release/tests/test_bump_version.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 49
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]
  • Access to secretsline 52
    [Credential-related source omitted]
  • Access to secretsline 53
    [Credential-related source omitted]

tools/ai-shifu-skill-release/tests/test_channel_results.py

  • Executable scriptline 1
    Executable file
  • Network accessline 52
    "workbuddy": {                 "status": "submitted",                 "url": "https://example.com/workbuddy",
  • Network accessline 53
    "status": "submitted",                 "url": "https://example.com/workbuddy",                 "note": "Awaiting platform review",
  • Network accessline 54
    "url": "https://example.com/workbuddy",
  • Network accessline 57
    "doubao": {                 "status": "verified",                 "url": "https://example.com/doubao",
  • Network accessline 58
    "status": "verified",                 "url": "https://example.com/doubao",                 "note": "Runtime checks passed",
  • Network accessline 59
    "url": "https://example.com/doubao",
  • Network accessline 79
    retained = {             "skillhub": {"status": "verified", "submission_status": "already_verified"},             "workbuddy": {"status": "submitted", "url": "https://example.com/workbuddy"},
  • Network accessline 80
    "skillhub": {"status": "verified", "submission_status": "already_verified"},             "workbuddy": {"status": "submitted", "url": "https://example.com/workbuddy"},             "doubao": {"status": "verified", "url": "https://example.com/
  • Network accessline 81
    "workbuddy": {"status": "submitted", "url": "https://example.com/workbuddy"},
  • Network accessline 82
    "doubao": {"status": "verified", "url": "https://example.com/doubao"},

tools/ai-shifu-skill-release/tests/test_channel_submission.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 53
    [Credential-related source omitted]
  • Access to secretsline 94
    [Credential-related source omitted]
  • Access to secretsline 129
    [Credential-related source omitted]
  • Access to secretsline 146
    [Credential-related source omitted]
  • Access to secretsline 177
    [Credential-related source omitted]
  • Access to secretsline 203
    [Credential-related source omitted]
  • Access to secretsline 250
    [Credential-related source omitted]
  • Access to secretsline 283
    [Credential-related source omitted]
  • Access to secretsline 309
    [Credential-related source omitted]
  • Network accessline 338
    )         old_metadata = json.loads((candidate / "release.json").read_text())         source_repository = "https://github.com/ai-shifu/skills.git"
  • Network accessline 339
    old_metadata = json.loads((candidate / "release.json").read_text())         source_repository = "https://github.com/ai-shifu/skills.git"         old_metadata["source"]["repository"] = source_repository
  • Network accessline 340
    source_repository = "https://github.com/ai-shifu/skills.git"
  • Access to secretsline 412
    [Credential-related source omitted]

tools/ai-shifu-skill-release/tests/test_config.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 85
    [Credential-related source omitted]
  • Access to secretsline 86
    [Credential-related source omitted]
  • Network accessline 141
    ):             for url in (                 "http://example.com/cli",
  • Network accessline 142
    for url in (                 "http://example.com/cli",                 "https://user:secret@example.com/cli",
  • Network accessline 143
    "http://example.com/cli",
  • Network accessline 144
    "https://user:secret@example.com/cli",
  • Network accessline 145
    [Credential-related source omitted]
  • Network accessline 146
    "https://example.com/cli#fragment",
  • Network accessline 205
    )         self.assertEqual(loaded.clawhub.owner, "heshaofu2")         self.assertEqual(loaded.clawhub.endpoint, "https://clawhub.ai")
  • Network accessline 206
    self.assertEqual(loaded.clawhub.owner, "heshaofu2")         self.assertEqual(loaded.clawhub.endpoint, "https://clawhub.ai")         self.assertEqual(loaded.clawhub.package, "clawhub@latest")
  • Network accessline 207
    self.assertEqual(loaded.clawhub.endpoint, "https://clawhub.ai")
  • Network accessline 208
    self.assertEqual(loaded.clawhub.package, "clawhub@latest")         self.assertEqual(loaded.clawhub.node_version, "22")         self.assertEqual(loaded.skillhub.endpoint, "https://api.skillhub.cn")
  • Network accessline 209
    self.assertEqual(loaded.clawhub.node_version, "22")         self.assertEqual(loaded.skillhub.endpoint, "https://api.skillhub.cn")         self.assertEqual(loaded.skillhub.cli_version, "2026.8.5")
  • Network accessline 210
    self.assertEqual(loaded.skillhub.endpoint, "https://api.skillhub.cn")

tools/ai-shifu-skill-release/tests/test_doubao_integrity.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/tests/test_doubao_package.py

  • Executable scriptline 1
    Executable file

tools/ai-shifu-skill-release/tests/test_download_release.py

  • Executable scriptline 1
    Executable file
  • Network accessline 68
    report["builder"] = {                     "repository": "https://example.invalid/old-builder.git",
  • Network accessline 69
    "repository": "https://example.invalid/old-builder.git",
  • Network accessline 242
    def test_repository_spoof_cannot_choose_a_source_fetch(self) -> None:         for repository in (             "https://github.com/attacker/skills.git",
  • Network accessline 243
    for repository in (             "https://github.com/attacker/skills.git",             "https://evil.example/github.com/ai-shifu/skills.git",
  • Network accessline 244
    "https://github.com/attacker/skills.git",
  • Network accessline 245
    "https://evil.example/github.com/ai-shifu/skills.git",
  • Network accessline 246
    "https://github.com@evil.example/ai-shifu/skills.git",

tools/ai-shifu-skill-release/tests/test_entrypoints.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 196
    [Credential-related source omitted]
  • Network accessline 304
    assets = [self.release_dir / "release.json"]         notes = "Formal release notes"         draft_url = "https://github.com/example/skills/releases/untagged-fixture"
  • Network accessline 305
    notes = "Formal release notes"         draft_url = "https://github.com/example/skills/releases/untagged-fixture"         output = io.StringIO()
  • Network accessline 306
    draft_url = "https://github.com/example/skills/releases/untagged-fixture"
  • Access to secretsline 309
    [Credential-related source omitted]
  • Access to secretsline 403
    [Credential-related source omitted]
  • Access to secretsline 451
    [Credential-related source omitted]

tools/ai-shifu-skill-release/tests/test_github_release.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 98
    [Credential-related source omitted]
  • Access to secretsline 126
    [Credential-related source omitted]
  • Network accessline 158
    "assets": [{"name": asset.name} for asset in assets],                             "tagName": "v1.2.3",                             "url": "https://example.test/release",
  • Network accessline 159
    "tagName": "v1.2.3",                             "url": "https://example.test/release",                         }),
  • Network accessline 160
    "url": "https://example.test/release",
  • Access to secretsline 166
    [Credential-related source omitted]
  • Network accessline 198
    "body": notes,                         "assets": [{"name": name} for name in remote],                         "url": "https://github.com/ai-shifu/skills/releases/tag/v1.2.3"
  • Network accessline 199
    "assets": [{"name": name} for name in remote],                         "url": "https://github.com/ai-shifu/skills/releases/tag/v1.2.3"                         if published
  • Network accessline 200
    "url": "https://github.com/ai-shifu/skills/releases/tag/v1.2.3"
  • Network accessline 201
    if published                         else "https://github.com/ai-shifu/skills/releases/tag/untagged-fixture",                     }
  • Network accessline 202
    else "https://github.com/ai-shifu/skills/releases/tag/untagged-fixture",
  • Access to secretsline 225
    [Credential-related source omitted]
  • Network accessline 233
    self.assertEqual(calls[-2:], ["edit", "view"])             self.assertEqual(                 url, "https://github.com/ai-shifu/skills/releases/tag/v1.2.3"
  • Network accessline 234
    self.assertEqual(                 url, "https://github.com/ai-shifu/skills/releases/tag/v1.2.3"             )
  • Network accessline 235
    url, "https://github.com/ai-shifu/skills/releases/tag/v1.2.3"
  • Network accessline 260
    "body": body,                         "assets": [{"name": name} for name in remote],                         "url": f"https://github.com/ai-shifu/skills/releases/tag/{preview_tag}",
  • Network accessline 261
    "assets": [{"name": name} for name in remote],                         "url": f"https://github.com/ai-shifu/skills/releases/tag/{preview_tag}",                     }
  • Network accessline 262
    "url": f"https://github.com/ai-shifu/skills/releases/tag/{preview_tag}",
  • Access to secretsline 289
    [Credential-related source omitted]
  • Network accessline 332
    "body": notes,                                 "assets": [{"name": asset.name} for asset in assets],                                 "url": "https://example.test/release",
  • Network accessline 333
    "assets": [{"name": asset.name} for asset in assets],                                 "url": "https://example.test/release",                             }
  • Network accessline 334
    "url": "https://example.test/release",
  • Access to secretsline 356
    [Credential-related source omitted]
  • Network accessline 371
    mutations = []             downloads = 0             url = "https://github.com/ai-shifu/skills/releases/tag/v1.2.3"
  • Network accessline 373
    url = "https://github.com/ai-shifu/skills/releases/tag/v1.2.3"
  • Access to secretsline 411
    [Credential-related source omitted]
  • Network accessline 430
    created = False             interrupt = True             draft_url = "https://github.com/ai-shifu/skills/releases/untagged-fixture"
  • Network accessline 432
    draft_url = "https://github.com/ai-shifu/skills/releases/untagged-fixture"
  • Access to secretsline 482
    [Credential-related source omitted]
  • Access to secretsline 518
    [Credential-related source omitted]
  • Access to secretsline 540
    [Credential-related source omitted]
  • Access to secretsline 590
    [Credential-related source omitted]
  • Network accessline 623
    "body": notes,                         "assets": [{"name": name} for name in remote],                         "url": "https://github.com/ai-shifu/skills/releases/tag/v1.2.3",
  • Network accessline 624
    "assets": [{"name": name} for name in remote],                         "url": "https://github.com/ai-shifu/skills/releases/tag/v1.2.3",                     }
  • Network accessline 625
    "url": "https://github.com/ai-shifu/skills/releases/tag/v1.2.3",
  • Access to secretsline 645
    [Credential-related source omitted]
  • Network accessline 694
    "body": body,                         "assets": [{"name": asset.name} for asset in assets],                         "url": "https://example.test/release",
  • Network accessline 695
    "assets": [{"name": asset.name} for asset in assets],                         "url": "https://example.test/release",                     }
  • Network accessline 696
    "url": "https://example.test/release",
  • Access to secretsline 714
    [Credential-related source omitted]
  • Access to secretsline 744
    [Credential-related source omitted]
  • Access to secretsline 781
    [Credential-related source omitted]

tools/ai-shifu-skill-release/tests/test_publish_release.py

  • Executable scriptline 1
    Executable file
  • Network accessline 163
    )         self.assertNotIn("--json", skillhub_command)         self.assertIn("https://api.skillhub.cn", skillhub_command)
  • Network accessline 164
    self.assertNotIn("--json", skillhub_command)         self.assertIn("https://api.skillhub.cn", skillhub_command)         self.assertIn(
  • Network accessline 165
    self.assertIn("https://api.skillhub.cn", skillhub_command)
  • Network accessline 187
    self.config.clawhub,                 owner="configured-owner",                 endpoint="https://clawhub.example",
  • Network accessline 188
    owner="configured-owner",                 endpoint="https://clawhub.example",                 package="clawhub@1.2.3",
  • Network accessline 189
    endpoint="https://clawhub.example",
  • Network accessline 190
    package="clawhub@1.2.3",             ),             skillhub=replace(self.config.skillhub, endpoint="https://skillhub.example"),
  • Network accessline 191
    ),             skillhub=replace(self.config.skillhub, endpoint="https://skillhub.example"),         )
  • Network accessline 192
    skillhub=replace(self.config.skillhub, endpoint="https://skillhub.example"),
  • Access to secretsline 194
    [Credential-related source omitted]
  • Network accessline 201
    for command in clawhub_commands:             self.assertEqual(                 command[command.index("--registry") + 1], "https://clawhub.example"
  • Network accessline 202
    self.assertEqual(                 command[command.index("--registry") + 1], "https://clawhub.example"             )
  • Network accessline 203
    command[command.index("--registry") + 1], "https://clawhub.example"
  • Network accessline 212
    if command[0] == "/bin/skillhub":                 self.assertEqual(                     command[command.index("--host") + 1], "https://skillhub.example"
  • Network accessline 213
    self.assertEqual(                     command[command.index("--host") + 1], "https://skillhub.example"                 )
  • Network accessline 214
    command[command.index("--host") + 1], "https://skillhub.example"
  • Access to secretsline 219
    [Credential-related source omitted]
  • Access to secretsline 221
    [Credential-related source omitted]
  • Network accessline 331
    "workbuddy",             "verified",             url="https://workbuddy.example/releases/1.1.0",
  • Network accessline 332
    "verified",             url="https://workbuddy.example/releases/1.1.0",         )
  • Network accessline 333
    url="https://workbuddy.example/releases/1.1.0",
  • Network accessline 341
    "doubao",             "submitted",             url="https://doubao.example/submissions/123",
  • Network accessline 342
    "submitted",             url="https://doubao.example/submissions/123",         )
  • Network accessline 343
    url="https://doubao.example/submissions/123",

tools/ai-shifu-skill-release/tests/test_pull_request_preview.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 115
    [Credential-related source omitted]
  • Network accessline 157
    "number": 77,                     "title": "feat: Improve course authoring and continuation",                     "html_url": "https://github.com/example/skills/pull/77",
  • Network accessline 158
    "title": "feat: Improve course authoring and continuation",                     "html_url": "https://github.com/example/skills/pull/77",                     "user": {"login": "author"},
  • Network accessline 159
    "html_url": "https://github.com/example/skills/pull/77",
  • Network accessline 206
    "number": 77,                     "title": "feat: Improve course authoring and continuation",                     "html_url": "https://github.com/example/skills/pull/77",
  • Network accessline 207
    "title": "feat: Improve course authoring and continuation",                     "html_url": "https://github.com/example/skills/pull/77",                     "user": {"login": "author"},
  • Network accessline 208
    "html_url": "https://github.com/example/skills/pull/77",

tools/ai-shifu-skill-release/tests/test_release_notes.py

  • Executable scriptline 1
    Executable file
  • Network accessline 52
    "number": number,             "title": title,             "html_url": f"https://github.com/example/skills/pull/{number}",
  • Network accessline 53
    "title": title,             "html_url": f"https://github.com/example/skills/pull/{number}",             "user": {"login": "author"},
  • Network accessline 54
    "html_url": f"https://github.com/example/skills/pull/{number}",
  • Network accessline 71
    files=None,     ):         def fetch(endpoint: str, *, paginate: bool = False):
  • Network accessline 72
    ):         def fetch(endpoint: str, *, paginate: bool = False):             if endpoint == "repos/example/skills":
  • Network accessline 73
    def fetch(endpoint: str, *, paginate: bool = False):
  • Network accessline 234
    for number in (100, 200, 300):             self.assertEqual(text.count(f"[#{number}]"), 1)             self.assertIn(f"https://github.com/example/skills/pull/{number}", text)
  • Network accessline 235
    self.assertEqual(text.count(f"[#{number}]"), 1)             self.assertIn(f"https://github.com/example/skills/pull/{number}", text)         self.assertIn(" by @author", text)
  • Network accessline 236
    self.assertIn(f"https://github.com/example/skills/pull/{number}", text)
  • Network accessline 381
    self.assertIn("### Additional commits", text)         self.assertIn("### Unmerged preview changes", text)         self.assertIn(f"https://github.com/example/skills/commit/{direct}", text)
  • Network accessline 382
    self.assertIn("### Unmerged preview changes", text)         self.assertIn(f"https://github.com/example/skills/commit/{direct}", text)         self.assertEqual(snapshot["pr_count"], 0)
  • Network accessline 383
    self.assertIn(f"https://github.com/example/skills/commit/{direct}", text)
  • Network accessline 631
    with self.assertRaisesRegex(ValueError, "differs from the source"):             release_notes.collect_changes(                 "https://github.com/example/skills.git",
  • Network accessline 632
    release_notes.collect_changes(                 "https://github.com/example/skills.git",                 head,
  • Network accessline 633
    "https://github.com/example/skills.git",
  • Network accessline 684
    "author": "sunner",                     "author_is_login": True,                     "url": "https://github.com/ai-shifu/skills/pull/196",
  • Network accessline 685
    "author_is_login": True,                     "url": "https://github.com/ai-shifu/skills/pull/196",                     "merged_at": "2026-10-20T08:25:29Z",
  • Network accessline 686
    "url": "https://github.com/ai-shifu/skills/pull/196",
  • Network accessline 694
    "author": "sunner",                     "author_is_login": True,                     "url": "https://github.com/ai-shifu/skills/pull/195",
  • Network accessline 695
    "author_is_login": True,                     "url": "https://github.com/ai-shifu/skills/pull/195",                     "merged_at": "2026-10-20T08:21:48Z",
  • Network accessline 696
    "url": "https://github.com/ai-shifu/skills/pull/195",
  • Network accessline 706
    "### Bug Fixes\n\n"             "- reject invalid course imports before changing content "             "([#195](https://github.com/ai-shifu/skills/pull/195)) by @sunner\n\n"
  • Network accessline 707
    "- reject invalid course imports before changing content "             "([#195](https://github.com/ai-shifu/skills/pull/195)) by @sunner\n\n"             "### Maintenance\n\n"
  • Network accessline 708
    "([#195](https://github.com/ai-shifu/skills/pull/195)) by @sunner\n\n"
  • Network accessline 709
    "### Maintenance\n\n"             "- flow version to v2.1.1 "             "([#196](https://github.com/ai-shifu/skills/pull/196)) by @sunner\n\n"
  • Network accessline 710
    "- flow version to v2.1.1 "             "([#196](https://github.com/ai-shifu/skills/pull/196)) by @sunner\n\n"             "[Full comparison](https://github.com/ai-shifu/skills/compare/"
  • Network accessline 711
    "([#196](https://github.com/ai-shifu/skills/pull/196)) by @sunner\n\n"
  • Network accessline 712
    "[Full comparison](https://github.com/ai-shifu/skills/compare/"

tools/ai-shifu-skill-release/tests/test_release_workflow.py

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 106
    return eval(  # noqa: S307 - AST and execution context are explicitly restricted.
  • Access to secretsline 303
    [Credential-related source omitted]
  • Access to secretsline 355
    [Credential-related source omitted]
  • Network accessline 408
    'mkdir -p release-notes\n'                     'printf "%s\\n" "Release notes" > release-notes/release-notes.md\n'                     'printf "%s\\n" "https://github.com/example/skills/releases/tag/v1.2.3"\n'
  • Network accessline 409
    'printf "%s\\n" "Release notes" > release-notes/release-notes.md\n'                     'printf "%s\\n" "https://github.com/example/skills/releases/tag/v1.2.3"\n'                     'exit "$PUBLICATION_EXIT_CODE"\n'
  • Network accessline 410
    'printf "%s\\n" "https://github.com/example/skills/releases/tag/v1.2.3"\n'
  • Access to secretsline 420
    [Credential-related source omitted]
  • Access to secretsline 421
    [Credential-related source omitted]
  • Access to secretsline 508
    [Credential-related source omitted]

tools/ai-shifu-skill-release/tests/test_source_export.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 23
    [Credential-related source omitted]

tools/ai-shifu-workbuddy-publisher/SKILL.md

  • Network accessline 21
    1. Read `https://api.github.com/repos/ai-shifu/skills/releases/latest`, or the Release for the requested tag. Record the tag, Release URL, asset name, size, and available SHA-256 digest. Confirm that the Release is published and stable. 2. 
  • Network accessline 35
    1. Open `https://open.workbuddy.cn/expert/all` in the authenticated browser, under `发布管理` → `专家`. If login is needed, let the user complete it; never store credentials in this skill or its outputs.

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: 8 facts
Signal confidence: 356 facts

and 306 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativePath CLAUDE.md.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/ai-shifu-course-creator/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/ai-shifu-course-creator/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/ai-shifu-course-creator/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/ai-shifu-course-creator/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.