chore: import upstream snapshot with attribution
test / test (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-14 10:24:00 +08:00
commit 9e1b5784b8
651 changed files with 215449 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
name: test
on:
push:
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v6
with:
python-version: "3.11"
- run: python -m pip install --upgrade pip
- run: python -m pip install --requirement requirements-ci.txt
- run: make ci-test
+35
View File
@@ -0,0 +1,35 @@
.DS_Store
dist/
*.zip
__pycache__/
tests/tmp/
tests/tmp_*/
tests/tmp_snapshot/
tests/tmp_cli/
tests/tmp_skill_overview/
tests/tmp_skill_preview/
tests/tmp_reference_scan/
tests/tmp_iteration_directions/
tests/tmp_review_viewer/
tests/tmp_feedback/
tests/tmp_github_benchmark_scan/
tests/tmp_intent_confidence/
tests/tmp_reference_synthesis/
tests/tmp_output_risk_profile/
tests/tmp_artifact_design_profile/
tests/tmp_prompt_quality_profile/
tests/tmp_system_model/
tests/tmp_security/
tests/tmp_baseline_compare.*
reports/release_snapshots/
reports/telemetry_events.jsonl
.yao/
evidence/world_class/submission-kit/
evidence/world_class/submissions/
# Local business-skill experiments belong outside this meta-skill repo unless promoted intentionally.
geo-ranking-article-generator/
# Private or one-off pattern analysis reports should not be committed as factory evidence.
reports/*pattern-analysis*.md
reports/*research-plan*.md
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 771 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

@@ -0,0 +1,72 @@
# Geo Content Brief Skill
## What It Does
`geo-content-brief-skill` is a reusable skill package for this job:
> 将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。
## 中文使用方式
1. 输入访谈纪要、关键词、渠道限制、竞品摘要、品牌禁区或已有内容方向。
2. 先判断请求是否属于“生成内容简报”,而不是完整长文、广告口号或品牌策略。
3.`references/brief-structure.md` 输出一页中文简报。
4.`references/review-checklist.md` 检查事实、结构、证据、风险和下一步动作。
5.`evals/trigger_cases.jsonl``evals/output_cases.jsonl` 做轻量回归。
## How To Use
1. Load the skill through `SKILL.md`.
2. Start with `reports/intent-dialogue.md` to tighten the real job, outputs, exclusions, and the standards you care about.
3. Open `reports/reference-scan.md` to capture external benchmarks and any user-supplied references worth learning from.
4. Review `reports/intent-confidence.md` to see whether the real job, inputs, outputs, and exclusions are clear enough yet.
5. Open `reports/reference-synthesis.md` to see the GitHub benchmarks plus curated official, research, and principle tracks in one place.
6. Follow the workflow steps in `SKILL.md`.
7. Check `reports/skill-overview.html` for the generated bilingual HTML skill audit report: overview, metrics, capability profile, principle, contract, quality, risk, assets, and iteration roadmap. It defaults to Simplified Chinese and includes an English switch in the top right.
8. Open `reports/review-studio.html` for the one-page Review Studio 2.0 gate view.
9. Record source-line reviewer comments in `reports/review_annotations.md` when review needs follow-up.
10. Open `reports/review-viewer.html` for a compact visual review of the package.
11. Check `reports/output-risk-profile.md` to see likely output mistakes and self-repair checks.
12. Check `reports/artifact-design-profile.md` to see the intended artifact direction, layout patterns, visual quality gates, and anti-patterns.
13. Check `reports/prompt-quality-profile.md` to see the need model, RTF-to-skill mapping, complexity, and prompt-facing quality matrix.
14. Review `reports/skill-ir.json` for the platform-neutral Skill IR contract before platform-specific packaging.
15. Review `reports/compiled_targets.md` to see how Skill IR compiles into OpenAI, Claude, generic, and Agent Skills compatible target contracts.
16. Review `reports/iteration-directions.md` for the three most valuable next moves.
17. Review `reports/system-model.md` to understand the boundary, feedback loops, drift watch, failure map, and highest-leverage next changes.
18. Review `reports/adoption_drift_report.md` to see local-first metadata-only adoption and drift signals.
19. Review `reports/review_waivers.md` to see human reviewer risk approvals and expiry dates.
## Honest Boundaries
- This package starts from the current intent frame and should not pretend to cover unclear adjacent jobs.
- The first version should ask for clarification when the real input, output, or exclusion boundary is still fuzzy.
- New structure should be added only when it earns its keep through evidence, validation, or reviewer need.
- It should not fabricate search volume, competitor rankings, customer quotes, or third-party evidence.
## Package Map
- `SKILL.md`: trigger and workflow entrypoint
- `agents/interface.yaml`: portable interface metadata
- `manifest.json`: lifecycle and packaging metadata
- `references/brief-structure.md`: 中文 GEO 内容简报结构、字段说明和质量标准
- `references/review-checklist.md`: 交付前编辑复核清单
- `evals/trigger_cases.jsonl`: 应触发和不应触发样例
- `evals/output_cases.jsonl`: 输出结构验收样例
- `reports/intent-dialogue.md`: front-loaded discovery questions for better boundary design and clearer human alignment
- `reports/intent-confidence.md`: current clarity score, open gaps, and the next follow-up questions worth asking
- `reports/github-benchmark-scan.md`: top public benchmark repositories, extracted patterns, and borrow or avoid notes
- `reports/reference-scan.md`: benchmark notes from public references, user references, and local constraints
- `reports/reference-synthesis.md`: a combined view of GitHub benchmarks plus curated world-class pattern tracks
- `reports/output-risk-profile.md`: predicted output failure modes and self-repair constraints for this skill
- `reports/artifact-design-profile.md`: artifact-specific design direction, layout patterns, visual quality gates, and anti-patterns
- `reports/prompt-quality-profile.md`: prompt-facing need model, RTF mapping, complexity, and quality matrix
- `reports/system-model.md`: systems-thinking model for boundary, feedback loops, drift, failure patterns, and leverage points
- `reports/skill-ir.json`: platform-neutral 2.0 Skill IR contract for trigger, workflow, resources, evals, risk, and governance
- `reports/compiled_targets.md`: target compiler report showing generated contracts, adapter modes, preserved semantics, warnings, and unsupported features
- `reports/skill-overview.html`: white-background bilingual HTML skill audit report with sticky four-character Chinese navigation, a top-right language switch, metrics, SVG charts, contract boundary, quality review, risk governance, assets, and iteration roadmap
- `reports/review-studio.html`: Review Studio 2.0 gate page for intent, trigger, output eval, context, runtime conformance, trust, atlas, and release readiness
- `reports/review-viewer.html`: compact review page for architecture, usage, feedback, and next steps
- `reports/iteration-directions.md`: the top three next iteration directions
- `reports/adoption_drift_report.md`: local-first metadata-only telemetry summary for adoption, missed triggers, bad outputs, script errors, and review drift
- `reports/review_waivers.md`: human reviewer risk approval ledger for warning acceptance and expiry
- `reports/review_annotations.md`: source-line reviewer comments linked to Review Studio gates
@@ -0,0 +1,57 @@
---
name: geo-content-brief-skill
description: "将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。"
---
# Geo Content Brief Skill
## When To Use This Skill
- 用户提供访谈纪要、关键词、竞品片段、产品卖点或渠道限制,希望沉淀为中文内容简报。
- 团队需要把零散输入转换成可执行的 GEO 内容选题、角度、结构、证据和交付要求。
- 需要先明确触发边界、输入缺口和输出验收标准,再进入内容生产。
## Workflow
1. 读取用户输入,识别目标受众、内容渠道、关键词、品牌边界、禁止表达和必须覆盖的信息。
2. 对照 `references/brief-structure.md` 生成简报骨架:目标、洞察、角度、关键词、结构、证据、风险和验收标准。
3. 如果缺少核心输入,先提出最多三个澄清问题,不用假设补全用户没有提供的事实。
4.`evals/trigger_cases.jsonl` 检查当前请求是否属于 GEO 内容简报场景。
5.`evals/output_cases.jsonl` 检查输出是否包含输入摘要、内容结构、证据要求、禁区和下一步动作。
6. 交付前回看渠道限制和品牌禁区,删除空泛营销话术、无来源断言和不可执行建议。
## Inputs
- 访谈纪要、销售反馈、客户问题或专家观点。
- 关键词、搜索意图、竞品页面摘要或排名线索。
- 目标渠道、目标读者、品牌口径、禁用词和交付格式。
## Outputs
- 一页中文内容简报,包含目标、受众、核心洞察、推荐角度、文章结构、关键词布置、证据需求和风险提示。
- 缺口清单,说明继续生产前必须补齐的信息。
- 下一步动作,面向写作者、编辑或 SEO/GEO 负责人。
## Output Quality Guardrails
- Before final output, apply the likely failure modes in `reports/output-risk-profile.md` when that report is present.
- Before rendering reports, tutorials, review pages, dashboards, or visual artifacts, apply the artifact direction and visual quality gates in `reports/artifact-design-profile.md` when that report is present.
- When prompt behavior, role design, dialogue quality, or output contracts matter, apply `reports/prompt-quality-profile.md` when that report is present.
- Before adding more structure, apply the boundary, feedback-loop, drift, and leverage-point checks in `reports/system-model.md` when that report is present.
- Repair generic headings, cluttered notes, fragile visual assumptions, weak tables, and missing verification cues before handing work back.
- Map role, task, and format into skill behavior rather than copying a large prompt template into `SKILL.md`.
- Let the artifact's content choose the visual system; do not copy a fixed palette or report style from another skill without a clear reason.
- If output-specific evidence is missing, state the gap instead of inventing screenshots, citations, data, or examples.
## Honest Boundaries
- 不直接代写完整长文,不替代品牌策略判断,不伪造竞品数据、搜索量、排名或引用来源。
- 当用户只想要标题灵感、广告文案、舆情分析或完整文章撰写时,不应触发本 Skill。
- 缺少目标读者、渠道或关键词时,先收紧输入,再输出简报。
## Reference Map
- `references/brief-structure.md`: 中文 GEO 内容简报结构、字段说明和质量标准。
- `references/review-checklist.md`: 交付前的编辑复核清单。
- `evals/trigger_cases.jsonl`: 应触发和不应触发样例。
- `evals/output_cases.jsonl`: 输出结构验收样例。
@@ -0,0 +1,29 @@
interface:
display_name: "Geo Content Brief Skill"
short_description: "将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。"
default_prompt: "当你需要把访谈纪要、关键词、竞品线索和渠道限制整理成中文 GEO 内容简报时,使用 $geo-content-brief-skill。"
compatibility:
canonical_format: "agent-skills"
adapter_targets:
- "openai"
- "claude"
- "generic"
- "vscode"
activation:
mode: "manual"
paths:
- "SKILL.md"
- "references/brief-structure.md"
- "evals/trigger_cases.jsonl"
execution:
context: "inline"
shell: "bash"
trust:
source_tier: "local"
remote_inline_execution: "forbid"
remote_metadata_policy: "allow-metadata-only"
degradation:
openai: "metadata-adapter"
claude: "neutral-source-plus-adapter"
generic: "neutral-source"
vscode: "agent-skills-source-with-vscode-notes"
@@ -0,0 +1,2 @@
{"id":"brief_minimum_contract","input":"访谈纪要、关键词、渠道、品牌禁区","must_include":["输入摘要","目标读者","搜索意图","内容角度","结构建议","证据需求","风险禁区","下一步动作"],"must_not_include":["虚构搜索量","无来源竞品排名","完整长文正文"]}
{"id":"missing_evidence_behavior","input":"只有关键词,没有访谈、渠道和品牌限制","must_include":["缺口清单","最多三个澄清问题","待补充证据"],"must_not_include":["假设用户品牌口径","编造客户原话"]}
@@ -0,0 +1,4 @@
{"id":"should_geo_interview_notes","input":"这里有一段客户访谈和 8 个 GEO 关键词,帮我整理成一份中文内容简报,给写作者用。","expected":"trigger","reason":"用户明确要把访谈和关键词整理为内容简报。"}
{"id":"should_competitor_brief","input":"把这些竞品页面摘要、品牌禁区和知乎渠道限制整理成一页选题简报。","expected":"trigger","reason":"输入包含竞品、品牌边界和渠道约束,输出是一页简报。"}
{"id":"should_not_full_article","input":"根据这些关键词直接帮我写一篇 3000 字完整文章。","expected":"no_trigger","reason":"用户要完整长文写作,不是生成内容简报。"}
{"id":"should_not_ad_copy","input":"给这个活动想 20 条广告口号,越短越好。","expected":"no_trigger","reason":"广告口号生成不属于 GEO 内容简报。"}
@@ -0,0 +1,24 @@
{
"name": "geo-content-brief-skill",
"version": "0.1.0",
"owner": "Yao Team",
"updated_at": "2026-06-15",
"status": "active",
"maturity_tier": "production",
"lifecycle_stage": "production-preview",
"context_budget_tier": "production",
"review_cadence": "per-release",
"skill_archetype": "production",
"target_platforms": [
"openai",
"claude",
"generic",
"agent-skills-compatible",
"vscode"
],
"factory_components": [
"references",
"scripts",
"reports"
]
}
@@ -0,0 +1,23 @@
# GEO 内容简报结构
## 目标
把零散材料整理成写作者可以直接执行的一页内容简报。简报应帮助团队快速判断:写给谁、解决什么问题、采用什么角度、需要哪些证据、哪些话不能说。
## 推荐字段
- 项目背景:产品、业务目标、目标渠道和期望交付物。
- 目标读者:读者身份、已知问题、决策阶段和内容理解门槛。
- 搜索意图:核心关键词、近义词、长尾问题和需要避开的无关意图。
- 内容角度:建议主张、差异化角度、可引用观点和与竞品的区分点。
- 结构建议:标题方向、章节顺序、每节回答的问题和必要证据。
- 证据需求:内部数据、案例、截图、第三方来源、专家观点或客户原话。
- 风险禁区:禁止承诺、敏感表述、未证实数据、品牌不采用的语气。
- 验收标准:完成后需要检查的结构、事实、语气、关键词和行动建议。
## 质量标准
- 每个推荐角度都应能追溯到输入材料或明确标记为待验证假设。
- 缺少事实证据时写“待补充证据”,不要编造来源。
- 输出要服务内容生产交接,避免泛泛的市场建议。
- 中文表达要具体、可执行、便于编辑继续拆稿。
@@ -0,0 +1,11 @@
# 内容简报复核清单
交付前按以下顺序检查:
1. 输入摘要是否覆盖访谈、关键词、渠道限制和品牌禁区。
2. 目标读者是否具体到角色、问题和决策阶段。
3. 推荐角度是否能从输入材料中找到依据。
4. 文章结构是否能直接分配给写作者执行。
5. 证据需求是否列出已拥有证据和待补证据。
6. 风险提示是否包含禁用表达、未证实数据和不应承诺的结果。
7. 下一步动作是否明确谁继续补材料、谁写稿、谁审核。
@@ -0,0 +1,62 @@
{
"ok": true,
"schema_version": "2.0",
"generated_at": "2026-06-15T09:03:27Z",
"skill_dir": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill",
"privacy_contract": {
"storage": "local-first",
"event_scope": "metadata-only",
"raw_content_allowed": false,
"raw_event_log_packaged": false,
"blocked_fields": [
"content",
"input",
"inputs",
"message",
"messages",
"note",
"output",
"outputs",
"prompt",
"raw",
"text",
"transcript"
]
},
"summary": {
"event_count": 0,
"adoption_sample_count": 0,
"activation_count": 0,
"accepted_count": 0,
"edited_count": 0,
"rejected_count": 0,
"missed_count": 0,
"failed_count": 0,
"adoption_rate": 0,
"missed_trigger_count": 0,
"wrong_trigger_count": 0,
"bad_output_count": 0,
"script_error_count": 0,
"missing_resource_count": 0,
"review_overdue_count": 0,
"risk_band": "no-data",
"event_types": {},
"failure_types": {},
"source_types": {},
"command_counts": {}
},
"adoption_by_skill": [],
"next_iteration_candidates": [
{
"signal": "no telemetry",
"recommendation": "Start with a small metadata-only sample before using telemetry for release decisions."
}
],
"recent_events": [],
"failures": [],
"artifacts": {
"events_jsonl": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/telemetry_events.jsonl",
"json": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/adoption_drift_report.json",
"markdown": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/adoption_drift_report.md"
}
}
@@ -0,0 +1,36 @@
# Adoption And Drift Report
Local-first, metadata-only telemetry for skill operations. Raw prompts, outputs, transcripts, and notes are not allowed in the event stream.
## Summary
- Events: `0`
- Adoption samples: `0`
- Activation events: `0`
- Adoption rate: `0`
- Missed trigger signals: `0`
- Bad output signals: `0`
- Script error signals: `0`
- Review overdue signals: `0`
- Risk band: `no-data`
## Privacy Contract
- Storage is local-first.
- Events are metadata-only.
- Raw user prompts, model outputs, transcripts, notes, and messages are blocked.
- Distributed packages should include this aggregate report, not raw `reports/telemetry_events.jsonl`.
## Adoption By Skill
| Skill | Events | Adoption Samples | Accepted | Edited | Rejected | Missed | Adoption Rate |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| `none` | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
## Next Iteration Candidates
- `no telemetry`: Start with a small metadata-only sample before using telemetry for release decisions.
## Recent Metadata Events
- No metadata events captured yet.
@@ -0,0 +1,115 @@
{
"skill_name": "geo-content-brief-skill",
"design_system": "metric editorial",
"primary_artifact": {
"key": "report",
"label": "Report or brief",
"direction": "High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail.",
"matched_keywords": [
"report",
"brief",
"简报"
]
},
"artifact_families": [
{
"key": "report",
"label": "Report or brief",
"score": 3,
"matched_keywords": [
"report",
"brief",
"简报"
],
"direction": "High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail."
},
{
"key": "review_viewer",
"label": "Review viewer",
"score": 2,
"matched_keywords": [
"review",
"审查"
],
"direction": "Side-by-side reviewer studio with explicit tradeoffs, evidence readiness, and fast paths for approving, blocking, or requesting one focused fix."
},
{
"key": "dashboard",
"label": "Dashboard or metrics page",
"score": 2,
"matched_keywords": [
"dashboard",
"table"
],
"direction": "Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation."
},
{
"key": "tutorial",
"label": "Tutorial or guide",
"score": 1,
"matched_keywords": [
"tutorial"
],
"direction": "Progressive instructional layout with domain-specific section names, short success checks, and examples close to the user's real input."
},
{
"key": "visual_capture",
"label": "Screenshot or visual evidence",
"score": 1,
"matched_keywords": [
"screenshot"
],
"direction": "Evidence-led visual artifact that records source, viewport, crop intent, and the exact region the reader should inspect."
}
],
"layout_patterns": [
"thesis",
"evidence blocks",
"decision table",
"risks",
"next actions",
"summary",
"variant comparison",
"evidence"
],
"design_tokens": {
"type": [
"Use a distinctive display face or serif for major claims when the artifact is editorial.",
"Use a restrained sans for dense body text and technical details.",
"Use mono only for metadata, paths, commands, labels, and evidence tags."
],
"color": [
"Choose colors from the artifact's domain, brand, or evidence mood.",
"Do not default to Kami parchment, purple gradients, or generic SaaS blue unless the content justifies it.",
"Keep accent color limited to decisions, active states, risk, or section anchors."
],
"spacing": [
"Prefer clear grid rhythm over floating decorative cards.",
"Increase whitespace around decisions and shrink whitespace around supporting metadata.",
"Split dense content instead of shrinking type or adding scroll traps."
],
"components": [
"Use cards for grouped evidence, tables for comparisons, callouts for decisions, and timelines for sequence.",
"Avoid cards inside cards.",
"Keep reviewer-only detail visible but visually quieter than user-facing guidance."
]
},
"quality_gates": [
"Keep the first screen useful without requiring the reader to parse every detail.",
"Use tables only for comparisons; move explanations below the table.",
"Keep source notes readable without flooding the body with markers.",
"Make differences visible instead of hiding them in prose.",
"Separate author-facing recommendations from reviewer-only evidence.",
"Surface conflicts clearly and keep routine benchmark synthesis quiet.",
"Avoid paragraph-heavy table cells.",
"Keep charts tied to one analytical question each."
],
"anti_patterns": [
"Do not copy Kami's fixed parchment background as a default.",
"Do not use generic purple gradients, glass cards, or stock SaaS hero sections unless the content calls for them.",
"Do not let Markdown tables become the default shape for every comparison or explanation.",
"Do not turn reviewer evidence into user-facing clutter.",
"Do not invent screenshots, citations, charts, or UI states."
],
"reviewer_note": "Use this profile to judge whether the generated artifacts feel designed for their job, not merely rendered."
}
@@ -0,0 +1,93 @@
# Artifact Design Profile
Skill: `geo-content-brief-skill`
Design system: `metric editorial`
## Primary Artifact Direction
**Report or brief**
High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail.
## Matched Artifact Families
### Report or brief
- Matched keywords: report, brief, 简报
- Score: `3`
- Direction: High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail.
### Review viewer
- Matched keywords: review, 审查
- Score: `2`
- Direction: Side-by-side reviewer studio with explicit tradeoffs, evidence readiness, and fast paths for approving, blocking, or requesting one focused fix.
### Dashboard or metrics page
- Matched keywords: dashboard, table
- Score: `2`
- Direction: Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation.
### Tutorial or guide
- Matched keywords: tutorial
- Score: `1`
- Direction: Progressive instructional layout with domain-specific section names, short success checks, and examples close to the user's real input.
### Screenshot or visual evidence
- Matched keywords: screenshot
- Score: `1`
- Direction: Evidence-led visual artifact that records source, viewport, crop intent, and the exact region the reader should inspect.
## Layout Patterns To Prefer
- thesis
- evidence blocks
- decision table
- risks
- next actions
- summary
- variant comparison
- evidence
## Design Tokens
### Type
- Use a distinctive display face or serif for major claims when the artifact is editorial.
- Use a restrained sans for dense body text and technical details.
- Use mono only for metadata, paths, commands, labels, and evidence tags.
### Color
- Choose colors from the artifact's domain, brand, or evidence mood.
- Do not default to Kami parchment, purple gradients, or generic SaaS blue unless the content justifies it.
- Keep accent color limited to decisions, active states, risk, or section anchors.
### Spacing
- Prefer clear grid rhythm over floating decorative cards.
- Increase whitespace around decisions and shrink whitespace around supporting metadata.
- Split dense content instead of shrinking type or adding scroll traps.
### Components
- Use cards for grouped evidence, tables for comparisons, callouts for decisions, and timelines for sequence.
- Avoid cards inside cards.
- Keep reviewer-only detail visible but visually quieter than user-facing guidance.
## Quality Gates
- Keep the first screen useful without requiring the reader to parse every detail.
- Use tables only for comparisons; move explanations below the table.
- Keep source notes readable without flooding the body with markers.
- Make differences visible instead of hiding them in prose.
- Separate author-facing recommendations from reviewer-only evidence.
- Surface conflicts clearly and keep routine benchmark synthesis quiet.
- Avoid paragraph-heavy table cells.
- Keep charts tied to one analytical question each.
## Anti-Patterns
- Do not copy Kami's fixed parchment background as a default.
- Do not use generic purple gradients, glass cards, or stock SaaS hero sections unless the content calls for them.
- Do not let Markdown tables become the default shape for every comparison or explanation.
- Do not turn reviewer evidence into user-facing clutter.
- Do not invent screenshots, citations, charts, or UI states.
## Reviewer Note
Use this profile to judge whether the generated artifacts feel designed for their job, not merely rendered.
@@ -0,0 +1,73 @@
# Compiled Targets
- OK: `True`
- Targets: `5`
- Pass: `5`
- Warn: `0`
- Block: `0`
## Target Transforms
| Target | Status | Native Surface | Adapter Mode | Permissions | Degradation | Generated Files |
| --- | --- | --- | --- | --- | --- | --- |
| `openai` | `pass` | OpenAI-style interface metadata plus neutral Agent Skills source | `metadata-adapter` | `none` | `metadata-adapter` | targets/openai/adapter.json, targets/openai/agents/openai.yaml |
| `claude` | `pass` | Claude-compatible neutral source folder with adapter notes | `neutral-source-plus-adapter` | `none` | `neutral-source-plus-adapter` | targets/claude/adapter.json, targets/claude/README.md |
| `generic` | `pass` | Agent Skills compatible neutral package | `agent-skills-compatible` | `none` | `neutral-source` | targets/generic/adapter.json |
| `agent-skills-compatible` | `pass` | Agent Skills standard source tree | `neutral-agent-skills-source` | `none` | `neutral-source` | SKILL.md, agents/interface.yaml |
| `vscode` | `pass` | VS Code/Copilot Agent Skills project or user scope | `vscode-agent-skills-adapter` | `none` | `agent-skills-source-with-vscode-notes` | targets/vscode/adapter.json, targets/vscode/README.md |
## Native Behavior Contracts
### openai
- Native surface: OpenAI-style interface metadata plus neutral Agent Skills source
- Activation: Use frontmatter description for catalog routing and targets/openai/agents/openai.yaml for display name, default prompt, and compatibility metadata.
- Resources: Ship the neutral source tree and expose OpenAI-facing interface metadata as a generated companion file.
- Scripts: Keep scripts as local package resources; expose help-smoke and permission metadata for reviewer approval before execution.
- Permission enforcement: `metadata-only`; native enforcement `False`
- Review artifacts: targets/openai/agents/openai.yaml, targets/openai/adapter.json, reports/review-studio.html
### claude
- Native surface: Claude-compatible neutral source folder with adapter notes
- Activation: Use SKILL.md frontmatter description as the primary activation contract and adapter.json for review metadata.
- Resources: Preserve the source tree directly; write target notes in targets/claude/README.md.
- Scripts: Scripts remain local package resources and must be reviewed through trust and permission reports before use.
- Permission enforcement: `metadata-fallback`; native enforcement `False`
- Review artifacts: targets/claude/README.md, targets/claude/adapter.json, reports/review-studio.html
### generic
- Native surface: Agent Skills compatible neutral package
- Activation: Use SKILL.md name and description; consumers decide automatic or manual activation.
- Resources: Preserve references, scripts, assets, evals, reports, and adapter metadata as relative package resources.
- Scripts: Expose script and permission metadata for downstream clients or installers to enforce.
- Permission enforcement: `consumer-enforced-or-metadata-only`; native enforcement `False`
- Review artifacts: targets/generic/adapter.json, reports/review-studio.html
### agent-skills-compatible
- Native surface: Agent Skills standard source tree
- Activation: Use SKILL.md frontmatter name and description for progressive disclosure.
- Resources: Keep optional directories as relative resources next to SKILL.md.
- Scripts: Scripts remain local optional resources and should advertise --help when executable.
- Permission enforcement: `consumer-enforced-or-metadata-only`; native enforcement `False`
- Review artifacts: SKILL.md, agents/interface.yaml, reports/review-studio.html
### vscode
- Native surface: VS Code/Copilot Agent Skills project or user scope
- Activation: Use folder name plus SKILL.md name/description; keep description under platform limits.
- Resources: Install as project or user scoped skill source, preserving relative references and scripts.
- Scripts: Scripts require workspace trust and operator/client approval outside this compiler.
- Permission enforcement: `client-or-workspace-trust`; native enforcement `False`
- Review artifacts: SKILL.md, agents/interface.yaml, reports/review-studio.html
## Failures
- None
## Warnings
- None
@@ -0,0 +1,83 @@
{
"score": 10,
"band": "low",
"gate_passed": false,
"strengths": [],
"gaps": [
{
"key": "job_specificity",
"label": "Recurring job is still generic",
"reason": "The current job statement sounds more like a packaging goal than a concrete repeated task.",
"severity": "high"
},
{
"key": "real_inputs",
"label": "Real inputs are missing",
"reason": "Without real inputs, it is hard to choose assets, scripts, or examples.",
"severity": "high"
},
{
"key": "primary_output",
"label": "Primary output is missing",
"reason": "The package does not yet know what it must hand back.",
"severity": "high"
},
{
"key": "exclusions",
"label": "Near-neighbor exclusions are missing",
"reason": "The route may blur into nearby requests without an exclusion list.",
"severity": "high"
},
{
"key": "constraints",
"label": "Constraints are missing",
"reason": "The package does not yet know which tradeoffs matter most.",
"severity": "high"
},
{
"key": "standards",
"label": "Quality bar is implied, not explicit",
"reason": "The first evaluation target is still underspecified.",
"severity": "medium"
}
],
"follow_up_questions": [
{
"slot": "job",
"question": "If you say it plainly, what concrete repeated task should this skill own every time?",
"why": "A skill needs a real recurring job, not only a generic packaging goal.",
"list": false,
"label": "Recurring job is still generic",
"severity": "high"
},
{
"slot": "real_inputs",
"question": "What material will people actually hand to this skill in practice?",
"why": "Real input shape decides whether references, scripts, or examples are needed.",
"list": true,
"label": "Real inputs are missing",
"severity": "high"
},
{
"slot": "primary_output",
"question": "What finished hand-back should this skill return so the next person can keep moving?",
"why": "The output is the anchor for package design and review.",
"list": false,
"label": "Primary output is missing",
"severity": "high"
}
],
"anchor_sentence": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"recommended_action": "Pause before deep authoring and close the highest-leverage gaps first.",
"context": {
"job": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"real_inputs": [],
"primary_output": "",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"exclusions": [],
"constraints": [],
"standards": [],
"correction": "",
"user_references": []
}
}
@@ -0,0 +1,32 @@
# Intent Confidence
- Confidence score: `10/100`
- Confidence band: `low`
- Gate passed: `False`
- Recommended action: Pause before deep authoring and close the highest-leverage gaps first.
## Current Reading
将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
## Strong Signals
- No strong signals yet.
## Gaps To Close
- **Recurring job is still generic** (`high`): The current job statement sounds more like a packaging goal than a concrete repeated task.
- **Real inputs are missing** (`high`): Without real inputs, it is hard to choose assets, scripts, or examples.
- **Primary output is missing** (`high`): The package does not yet know what it must hand back.
- **Near-neighbor exclusions are missing** (`high`): The route may blur into nearby requests without an exclusion list.
- **Constraints are missing** (`high`): The package does not yet know which tradeoffs matter most.
- **Quality bar is implied, not explicit** (`medium`): The first evaluation target is still underspecified.
## Follow-Up Questions
- **If you say it plainly, what concrete repeated task should this skill own every time?**
- Why: A skill needs a real recurring job, not only a generic packaging goal.
- **What material will people actually hand to this skill in practice?**
- Why: Real input shape decides whether references, scripts, or examples are needed.
- **What finished hand-back should this skill return so the next person can keep moving?**
- Why: The output is the anchor for package design and review.
@@ -0,0 +1,11 @@
{
"job": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"real_inputs": [],
"primary_output": "",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"exclusions": [],
"constraints": [],
"standards": [],
"correction": "",
"user_references": []
}
@@ -0,0 +1,79 @@
{
"skill_name": "geo-content-brief-skill",
"title": "Geo Content Brief Skill",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"focus": "trigger-and-output",
"opening_frame": "Let's start from the real work, the result you care about, and the standards that matter here. We can make the structure clearer after that.",
"reference_note": "If you already have examples you admire, bring them in. We will learn the pattern, not copy the source.",
"conversation_path": [
"Start with the user's own words, not package vocabulary.",
"Reflect the job, output, and non-goals back in one clean sentence.",
"Only then offer a tiny scaffold if it would help the user move faster."
],
"opening_styles": [
{
"label": "温柔陪伴型",
"best_when": "用户想法还散、还在试探,或者需要先被接住。",
"message": "我们先不急着把它说成一个很完整的 skill。你就像跟我聊天一样,先说说你最想让它以后稳稳接住哪类重复工作;如果它做得很理想,最后应该交回你一个什么结果。"
},
{
"label": "专业教练型",
"best_when": "用户目标比较明确,希望被高效带着走。",
"message": "我们先把这件事讲清楚,再决定 skill 怎么设计。你先告诉我三件事:它要接住的重复任务是什么,别人通常会给它什么材料,最后你希望它交付什么结果。"
},
{
"label": "共创伙伴型",
"best_when": "用户已经有一些想法,希望一起打磨,不想被填表。",
"message": "我们把这次当成一次共创。你先给我一个粗糙版本就行,我先帮你看它真正的核心任务是什么,再一起决定边界、结构和接下来最值的一步。"
}
],
"optional_scaffold": [
"The repeated job it should reliably handle",
"The real inputs people will hand to it",
"The useful output it should hand back",
"What it should clearly refuse"
],
"questions": [
{
"question": "If this skill worked beautifully, what recurring job would it reliably handle for the user every time?",
"why": "This reveals the real job-to-be-done and gives the package a humane center instead of a guessed prompt shape."
},
{
"question": "When someone reaches for this skill in the real world, what materials will they actually hand to it?",
"why": "Input shape decides whether references, scripts, or templates are needed."
},
{
"question": "What finished output should it hand back so the user can immediately keep moving?",
"why": "Outputs should drive the package structure before extra guidance is added."
},
{
"question": "Which nearby requests should this skill politely refuse so the boundary stays clean?",
"why": "The exclusion list is the fastest route to better trigger quality."
},
{
"question": "What matters most here: speed, consistency, auditability, portability, governance, or tone/style fit?",
"why": "Constraints decide how much structure, packaging, and review the skill actually needs."
},
{
"question": "Do you already have any references you want this skill to learn from, such as a repo, product, page, workflow, or prompt example?",
"why": "A good reference can raise the quality bar quickly, but the skill should only borrow patterns and standards, never copy wording or confidential material."
},
{
"question": "What repeated manual step should become a deterministic asset first?",
"why": "This usually reveals whether a script or reference should be created next."
}
],
"output": {
"capability_sentence": "Geo Content Brief Skill should turn a recurring request into a reliable reusable output without widening the boundary unnecessarily.",
"required_capture": [
"recurring job",
"real inputs",
"required outputs",
"exclusions",
"constraints",
"reference preferences",
"first evaluation target"
],
"recommended_first_gate": "trigger and boundary"
}
}
@@ -0,0 +1,75 @@
# Intent Dialogue
Skill: `geo-content-brief-skill`
## Opening Frame
Let's start from the real work, the result you care about, and the standards that matter here. We can make the structure clearer after that.
## Opening Tone Options
### 温柔陪伴型
- Best when: 用户想法还散、还在试探,或者需要先被接住。
- Example: 我们先不急着把它说成一个很完整的 skill。你就像跟我聊天一样,先说说你最想让它以后稳稳接住哪类重复工作;如果它做得很理想,最后应该交回你一个什么结果。
### 专业教练型
- Best when: 用户目标比较明确,希望被高效带着走。
- Example: 我们先把这件事讲清楚,再决定 skill 怎么设计。你先告诉我三件事:它要接住的重复任务是什么,别人通常会给它什么材料,最后你希望它交付什么结果。
### 共创伙伴型
- Best when: 用户已经有一些想法,希望一起打磨,不想被填表。
- Example: 我们把这次当成一次共创。你先给我一个粗糙版本就行,我先帮你看它真正的核心任务是什么,再一起决定边界、结构和接下来最值的一步。
## Conversation Path
1. Start with the user's own words, not package vocabulary.
2. Reflect the job, output, and non-goals back in one clean sentence.
3. Only then offer a tiny scaffold if it would help the user move faster.
## Why Start Here
Use this short dialogue before deep authoring. The goal is to learn the real job, output, exclusions, and constraints so the first package is small but accurate.
## Current Anchor
- Title: `Geo Content Brief Skill`
- Description: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
- Focus: `trigger-and-output`
- Reference note: If you already have examples you admire, bring them in. We will learn the pattern, not copy the source.
## Questions To Ask
1. If this skill worked beautifully, what recurring job would it reliably handle for the user every time?
Why: This reveals the real job-to-be-done and gives the package a humane center instead of a guessed prompt shape.
2. When someone reaches for this skill in the real world, what materials will they actually hand to it?
Why: Input shape decides whether references, scripts, or templates are needed.
3. What finished output should it hand back so the user can immediately keep moving?
Why: Outputs should drive the package structure before extra guidance is added.
4. Which nearby requests should this skill politely refuse so the boundary stays clean?
Why: The exclusion list is the fastest route to better trigger quality.
5. What matters most here: speed, consistency, auditability, portability, governance, or tone/style fit?
Why: Constraints decide how much structure, packaging, and review the skill actually needs.
6. Do you already have any references you want this skill to learn from, such as a repo, product, page, workflow, or prompt example?
Why: A good reference can raise the quality bar quickly, but the skill should only borrow patterns and standards, never copy wording or confidential material.
7. What repeated manual step should become a deterministic asset first?
Why: This usually reveals whether a script or reference should be created next.
## Capture Before Drafting
- Capability sentence: Geo Content Brief Skill should turn a recurring request into a reliable reusable output without widening the boundary unnecessarily.
- Recommended first gate: `trigger and boundary`
- Tiny optional scaffold:
- The repeated job it should reliably handle
- The real inputs people will hand to it
- The useful output it should hand back
- What it should clearly refuse
- Capture: `recurring job`
- Capture: `real inputs`
- Capture: `required outputs`
- Capture: `exclusions`
- Capture: `constraints`
- Capture: `reference preferences`
- Capture: `first evaluation target`
@@ -0,0 +1,52 @@
{
"summary": {
"skill_name": "geo-content-brief-skill",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"maturity_tier": "scaffold",
"selection_rule": "Pick the three smallest next steps that increase reliability more than they increase context cost.",
"recommended_now": "Tighten trigger and exclusions",
"recommended_now_why": "The package needs clearer near-neighbor exclusions before it grows.",
"defer_for_now": "Promote from scaffold to production-ready"
},
"directions": [
{
"priority": 1,
"title": "Tighten trigger and exclusions",
"why": "The package needs clearer near-neighbor exclusions before it grows.",
"actions": [
"Add 3 to 5 should-trigger and should-not-trigger examples.",
"Refine the frontmatter description to name the recurring job and non-goals.",
"Run a first trigger evaluation pass before expanding the package."
],
"unlocks": "Cleaner routing and fewer accidental activations.",
"do_now": "Do this first.",
"wait_on": "Wait to add broader structure until this move clearly improves reliability."
},
{
"priority": 2,
"title": "Add the first execution asset",
"why": "The package is still mostly prose. Add one asset that removes repeated manual work.",
"actions": [
"Move stable procedural guidance into references if users will need it repeatedly.",
"Create one deterministic helper script if a repeated step can be executed instead of described.",
"Keep the main SKILL.md compact and route-oriented."
],
"unlocks": "Stronger execution quality without bloating the entrypoint.",
"do_now": "Do this after the first move lands cleanly.",
"wait_on": "Wait until the package has evidence that this extra structure is justified."
},
{
"priority": 3,
"title": "Promote from scaffold to production-ready",
"why": "The first version exists; the next gain usually comes from adding the smallest useful gates.",
"actions": [
"Decide whether this skill is personal, team-reused, or library-grade.",
"Add only the gates that match that risk level.",
"Record lifecycle metadata and review cadence once reuse becomes real."
],
"unlocks": "A clearer path from exploratory package to maintained asset.",
"do_now": "Do this after the first move lands cleanly.",
"wait_on": "Wait until the package has evidence that this extra structure is justified."
}
]
}
@@ -0,0 +1,62 @@
# Iteration Directions
Skill: `geo-content-brief-skill`
- Maturity tier: `scaffold`
- Selection rule: Pick the three smallest next steps that increase reliability more than they increase context cost.
- Start here: `Tighten trigger and exclusions`
- Why first: The package needs clearer near-neighbor exclusions before it grows.
- Defer for now: `Promote from scaffold to production-ready`
## Top 3 Next Moves
### 1. Tighten trigger and exclusions
- Why now: The package needs clearer near-neighbor exclusions before it grows.
- Timing: Do this first.
- Recommended actions:
- Add 3 to 5 should-trigger and should-not-trigger examples.
- Unlocks: Cleaner routing and fewer accidental activations.
- Wait on: Wait to add broader structure until this move clearly improves reliability.
- Refine the frontmatter description to name the recurring job and non-goals.
- Unlocks: Cleaner routing and fewer accidental activations.
- Wait on: Wait to add broader structure until this move clearly improves reliability.
- Run a first trigger evaluation pass before expanding the package.
- Unlocks: Cleaner routing and fewer accidental activations.
- Wait on: Wait to add broader structure until this move clearly improves reliability.
### 2. Add the first execution asset
- Why now: The package is still mostly prose. Add one asset that removes repeated manual work.
- Timing: Do this after the first move lands cleanly.
- Recommended actions:
- Move stable procedural guidance into references if users will need it repeatedly.
- Unlocks: Stronger execution quality without bloating the entrypoint.
- Wait on: Wait until the package has evidence that this extra structure is justified.
- Create one deterministic helper script if a repeated step can be executed instead of described.
- Unlocks: Stronger execution quality without bloating the entrypoint.
- Wait on: Wait until the package has evidence that this extra structure is justified.
- Keep the main SKILL.md compact and route-oriented.
- Unlocks: Stronger execution quality without bloating the entrypoint.
- Wait on: Wait until the package has evidence that this extra structure is justified.
### 3. Promote from scaffold to production-ready
- Why now: The first version exists; the next gain usually comes from adding the smallest useful gates.
- Timing: Do this after the first move lands cleanly.
- Recommended actions:
- Decide whether this skill is personal, team-reused, or library-grade.
- Unlocks: A clearer path from exploratory package to maintained asset.
- Wait on: Wait until the package has evidence that this extra structure is justified.
- Add only the gates that match that risk level.
- Unlocks: A clearer path from exploratory package to maintained asset.
- Wait on: Wait until the package has evidence that this extra structure is justified.
- Record lifecycle metadata and review cadence once reuse becomes real.
- Unlocks: A clearer path from exploratory package to maintained asset.
- Wait on: Wait until the package has evidence that this extra structure is justified.
@@ -0,0 +1,147 @@
{
"skill_name": "geo-content-brief-skill",
"risk_families": [
{
"key": "markdown_readability",
"label": "Markdown readability",
"matched_keywords": [
"md",
"table",
"report",
"brief"
],
"score": 4,
"risks": [
"Tables can render as dense grids with weak hierarchy or poor mobile readability.",
"Long bullets can make the output look complete while hiding the actual decision logic.",
"Mixed heading levels can reduce scanability."
],
"constraints": [
"Use tables only when comparison is the main job; otherwise prefer compact cards or grouped bullets.",
"Keep table cells short and move explanations below the table.",
"Use heading levels consistently and keep each section anchored to a user-facing outcome."
],
"self_repair": [
"Preview whether each table still reads well when columns are narrow.",
"Convert any table with paragraph-length cells into bullets or cards."
]
},
{
"key": "visual_capture",
"label": "Screenshot and visual capture",
"matched_keywords": [
"screenshot",
"visual",
"screen"
],
"score": 3,
"risks": [
"Screenshots can be captured from the wrong state, wrong viewport, or wrong crop.",
"Missing screenshots can cause the skill to invent visual references instead of declaring the gap.",
"Image descriptions can omit the action-relevant region."
],
"constraints": [
"Never invent a screenshot; state when visual evidence is missing.",
"Record the source, viewport, and crop intent for any screenshot-dependent output.",
"Describe what the reader should inspect in the image, not just that an image exists."
],
"self_repair": [
"Check that every screenshot reference points to a real provided or generated asset.",
"Reword any visual instruction that depends on an unseen screen state."
]
},
{
"key": "citation_clutter",
"label": "Citation and footnote clutter",
"matched_keywords": [
"citation",
"reference"
],
"score": 2,
"risks": [
"Footnote markers or dense citation notes can interrupt the reading flow.",
"Evidence can be over-attached to obvious statements and under-attached to risky claims.",
"Source notes may become more prominent than the tutorial itself."
],
"constraints": [
"Attach citations only to claims that need evidence, not to every sentence.",
"Group source notes at the end of a section when inline markers would hurt readability.",
"Keep the main sentence readable without requiring the reader to chase a footnote."
],
"self_repair": [
"Remove decorative citations that do not support a material claim.",
"Move repeated source explanations into one compact source note."
]
},
{
"key": "tone_and_specificity",
"label": "Tone and specificity",
"matched_keywords": [
"copy",
"content"
],
"score": 2,
"risks": [
"Headings and summaries can drift into generic, interchangeable language.",
"The output can sound polished but lose the user's actual taste, audience, or scenario.",
"Strong claims can appear without examples or constraints."
],
"constraints": [
"Anchor titles and summaries in the user's audience, object, and concrete outcome.",
"Avoid placeholder phrases such as comprehensive guide, ultimate solution, or key insights unless the source demands them.",
"Preserve one distinctive phrase, constraint, or standard from the user's input."
],
"self_repair": [
"Replace generic title candidates with scenario-specific alternatives.",
"Delete any polished sentence that could fit almost any project unchanged."
]
},
{
"key": "tutorial_quality",
"label": "Tutorial quality",
"matched_keywords": [
"tutorial"
],
"score": 1,
"risks": [
"Generic section headings make the tutorial feel templated instead of fitted to the learner's task.",
"Steps may explain what to do without naming the exact check that proves the step worked.",
"Examples can become too abstract when the input material is concrete."
],
"constraints": [
"Write headings from the user's domain nouns and desired outcome, not from generic labels like Overview or Key Points.",
"Pair each major step with a visible success check or expected intermediate output.",
"Use one concrete worked example before adding broad principles."
],
"self_repair": [
"Replace generic H2/H3 headings with task-specific headings before final output.",
"Scan every numbered step for a missing verification cue."
]
}
],
"top_risks": [
"Tables can render as dense grids with weak hierarchy or poor mobile readability.",
"Long bullets can make the output look complete while hiding the actual decision logic.",
"Screenshots can be captured from the wrong state, wrong viewport, or wrong crop.",
"Missing screenshots can cause the skill to invent visual references instead of declaring the gap.",
"Footnote markers or dense citation notes can interrupt the reading flow.",
"Evidence can be over-attached to obvious statements and under-attached to risky claims."
],
"output_constraints": [
"Use tables only when comparison is the main job; otherwise prefer compact cards or grouped bullets.",
"Keep table cells short and move explanations below the table.",
"Never invent a screenshot; state when visual evidence is missing.",
"Record the source, viewport, and crop intent for any screenshot-dependent output.",
"Attach citations only to claims that need evidence, not to every sentence.",
"Group source notes at the end of a section when inline markers would hurt readability."
],
"self_repair_checks": [
"Preview whether each table still reads well when columns are narrow.",
"Convert any table with paragraph-length cells into bullets or cards.",
"Check that every screenshot reference points to a real provided or generated asset.",
"Reword any visual instruction that depends on an unseen screen state.",
"Remove decorative citations that do not support a material claim.",
"Move repeated source explanations into one compact source note."
],
"reviewer_note": "Use this report before deepening the package and again before approving example outputs."
}
@@ -0,0 +1,60 @@
# Output Risk Profile
Skill: `geo-content-brief-skill`
## Why This Exists
Generated skills often fail in small output details: generic headings, cluttered citations, fragile screenshots, weak Markdown rendering, or missing execution assumptions. This profile predicts the most likely output mistakes before the skill is used heavily.
## Matched Risk Families
### Markdown readability
- Matched keywords: md, table, report, brief
- Score: `4`
### Screenshot and visual capture
- Matched keywords: screenshot, visual, screen
- Score: `3`
### Citation and footnote clutter
- Matched keywords: citation, reference
- Score: `2`
### Tone and specificity
- Matched keywords: copy, content
- Score: `2`
### Tutorial quality
- Matched keywords: tutorial
- Score: `1`
## Likely Output Mistakes
- Tables can render as dense grids with weak hierarchy or poor mobile readability.
- Long bullets can make the output look complete while hiding the actual decision logic.
- Screenshots can be captured from the wrong state, wrong viewport, or wrong crop.
- Missing screenshots can cause the skill to invent visual references instead of declaring the gap.
- Footnote markers or dense citation notes can interrupt the reading flow.
- Evidence can be over-attached to obvious statements and under-attached to risky claims.
## Output Constraints To Apply
- Use tables only when comparison is the main job; otherwise prefer compact cards or grouped bullets.
- Keep table cells short and move explanations below the table.
- Never invent a screenshot; state when visual evidence is missing.
- Record the source, viewport, and crop intent for any screenshot-dependent output.
- Attach citations only to claims that need evidence, not to every sentence.
- Group source notes at the end of a section when inline markers would hurt readability.
## Self-Repair Checks
- Preview whether each table still reads well when columns are narrow.
- Convert any table with paragraph-length cells into bullets or cards.
- Check that every screenshot reference points to a real provided or generated asset.
- Reword any visual instruction that depends on an unseen screen state.
- Remove decorative citations that do not support a material claim.
- Move repeated source explanations into one compact source note.
## Reviewer Note
Use this report before deepening the package and again before approving example outputs.
@@ -0,0 +1,146 @@
{
"skill_name": "geo-content-brief-skill",
"relevance": "prompt-heavy",
"primary_task_family": {
"key": "creative_generation",
"label": "Creative generation",
"matched_keywords": [
"copy",
"content",
"内容"
]
},
"task_families": [
{
"key": "creative_generation",
"label": "Creative generation",
"score": 3,
"matched_keywords": [
"copy",
"content",
"内容"
],
"role_guidance": "Use a taste-aware creator role with clear audience, tone, and originality boundaries.",
"task_guidance": "Generate variants, explain selection logic, and preserve the user's distinctive constraints.",
"format_guidance": "Return options with rationale, selection criteria, and refinement paths."
},
{
"key": "execution_operation",
"label": "Execution operation",
"score": 3,
"matched_keywords": [
"workflow",
"execute",
"执行"
],
"role_guidance": "Use an operator role with explicit boundaries, inputs, outputs, and failure handling.",
"task_guidance": "Convert the job into ordered steps with validation checks and stop conditions.",
"format_guidance": "Return a runbook-like handoff with commands, checks, owners, and next actions when relevant."
},
{
"key": "prompt_engineering",
"label": "Prompt engineering",
"score": 3,
"matched_keywords": [
"prompt",
"role",
"format"
],
"role_guidance": "Use a prompt engineer role only when role design materially improves execution.",
"task_guidance": "Map Role, Task, and Format into skill behavior rather than copying a large prompt template.",
"format_guidance": "Return a compact prompt contract plus tests, quality matrix, and usage notes."
},
{
"key": "dialogue_interaction",
"label": "Dialogue interaction",
"score": 2,
"matched_keywords": [
"dialogue",
"访谈"
],
"role_guidance": "Use a conversational role that asks only high-leverage questions and remembers the user's goal.",
"task_guidance": "Clarify intent, resolve uncertainty, and converge toward a recommendation instead of a long option list.",
"format_guidance": "Return concise prompts, decision points, and reviewer-visible assumptions."
}
],
"complexity": {
"band": "complex",
"score": 6,
"reason": "multiple inputs, constraints, or task families require tradeoff handling"
},
"need_model": {
"explicit_need": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"implicit_need": "The reusable skill needs a stable role, task, and output contract rather than a one-off prompt.",
"scenario": "not yet explicit",
"user_level": "infer from examples and standards; ask only if it changes output depth",
"success_standard": "usable output with clear validation cues"
},
"rtf_to_skill": {
"role": "Use a taste-aware creator role with clear audience, tone, and originality boundaries.",
"task": "Generate variants, explain selection logic, and preserve the user's distinctive constraints.",
"format": "Return options with rationale, selection criteria, and refinement paths."
},
"quality_matrix": [
{
"key": "completeness",
"label": "Completeness",
"score": 80,
"matched_signals": [
"input",
"output",
"constraint",
"example",
"约束"
],
"repair": "Name missing inputs, outputs, constraints, or success standards before deepening the package."
},
{
"key": "clarity",
"label": "Clarity",
"score": 90,
"matched_signals": [
"clear",
"specific"
],
"repair": "Replace broad verbs with observable actions and define what done means."
},
{
"key": "consistency",
"label": "Consistency",
"score": 90,
"matched_signals": [
"boundary",
"边界"
],
"repair": "Check that role, task, format, exclusions, and examples do not contradict each other."
},
{
"key": "practicality",
"label": "Practicality",
"score": 95,
"matched_signals": [
"execute",
"use",
"workflow",
"执行"
],
"repair": "Add runnable steps, examples, or verification cues instead of abstract advice."
},
{
"key": "specificity",
"label": "Specificity",
"score": 70,
"matched_signals": [],
"repair": "Anchor wording in the user's audience, domain nouns, and target outcome."
}
],
"overall_quality_score": 85.0,
"self_repair_checks": [
"Check explicit need, implicit need, scenario, user level, and success standard before deepening.",
"Map Role, Task, and Format into skill behavior, not decorative prompt labels.",
"Ask one focused clarification only when missing information changes the package boundary.",
"Add tests or examples for prompt-heavy behavior before treating it as reusable.",
"Keep prompt methodology in references and reports instead of bloating SKILL.md."
],
"reviewer_note": "Use this profile when the package depends on prompt behavior, role design, output contracts, or conversation quality."
}
@@ -0,0 +1,94 @@
# Prompt Quality Profile
Skill: `geo-content-brief-skill`
Relevance: `prompt-heavy`
Overall quality score: `85.0/100`
## Primary Task Family
**Creative generation**
- Matched keywords: copy, content, 内容
## Complexity
- Band: `complex`
- Score: `6`
- Reason: multiple inputs, constraints, or task families require tradeoff handling
## Need Model
- Explicit Need: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
- Implicit Need: The reusable skill needs a stable role, task, and output contract rather than a one-off prompt.
- Scenario: not yet explicit
- User Level: infer from examples and standards; ask only if it changes output depth
- Success Standard: usable output with clear validation cues
## RTF To Skill Mapping
- Role: Use a taste-aware creator role with clear audience, tone, and originality boundaries.
- Task: Generate variants, explain selection logic, and preserve the user's distinctive constraints.
- Format: Return options with rationale, selection criteria, and refinement paths.
## Quality Matrix
### Completeness — 80/100
- Matched signals: input, output, constraint, example, 约束
- Repair: Name missing inputs, outputs, constraints, or success standards before deepening the package.
### Clarity — 90/100
- Matched signals: clear, specific
- Repair: Replace broad verbs with observable actions and define what done means.
### Consistency — 90/100
- Matched signals: boundary, 边界
- Repair: Check that role, task, format, exclusions, and examples do not contradict each other.
### Practicality — 95/100
- Matched signals: execute, use, workflow, 执行
- Repair: Add runnable steps, examples, or verification cues instead of abstract advice.
### Specificity — 70/100
- Matched signals: none
- Repair: Anchor wording in the user's audience, domain nouns, and target outcome.
## Matched Task Families
### Creative generation
- Score: `3`
- Keywords: copy, content, 内容
- Role: Use a taste-aware creator role with clear audience, tone, and originality boundaries.
- Task: Generate variants, explain selection logic, and preserve the user's distinctive constraints.
- Format: Return options with rationale, selection criteria, and refinement paths.
### Execution operation
- Score: `3`
- Keywords: workflow, execute, 执行
- Role: Use an operator role with explicit boundaries, inputs, outputs, and failure handling.
- Task: Convert the job into ordered steps with validation checks and stop conditions.
- Format: Return a runbook-like handoff with commands, checks, owners, and next actions when relevant.
### Prompt engineering
- Score: `3`
- Keywords: prompt, role, format
- Role: Use a prompt engineer role only when role design materially improves execution.
- Task: Map Role, Task, and Format into skill behavior rather than copying a large prompt template.
- Format: Return a compact prompt contract plus tests, quality matrix, and usage notes.
### Dialogue interaction
- Score: `2`
- Keywords: dialogue, 访谈
- Role: Use a conversational role that asks only high-leverage questions and remembers the user's goal.
- Task: Clarify intent, resolve uncertainty, and converge toward a recommendation instead of a long option list.
- Format: Return concise prompts, decision points, and reviewer-visible assumptions.
## Self-Repair Checks
- Check explicit need, implicit need, scenario, user level, and success standard before deepening.
- Map Role, Task, and Format into skill behavior, not decorative prompt labels.
- Ask one focused clarification only when missing information changes the package boundary.
- Add tests or examples for prompt-heavy behavior before treating it as reusable.
- Keep prompt methodology in references and reports instead of bloating SKILL.md.
## Reviewer Note
Use this profile when the package depends on prompt behavior, role design, output contracts, or conversation quality.
@@ -0,0 +1,36 @@
{
"skill_name": "geo-content-brief-skill",
"title": "Geo Content Brief Skill",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"scan_focus": [
{
"label": "Execution pattern",
"reason": "There is deterministic logic in scripts, so compare how strong references separate prose from executable steps."
},
{
"label": "Portability pattern",
"reason": "The package carries neutral metadata, so scan how good references preserve semantics across targets without forking source."
},
{
"label": "Method pattern",
"reason": "Use the core job description as the anchor for comparison: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。"
}
],
"external_references": [],
"user_references": [],
"local_constraints": [],
"borrow_plan": [
"External benchmark first: let high-quality public references define the upper bound for method, structure, execution, or portability.",
"User references second: use them to understand taste, standards, and directional preferences without copying source phrasing.",
"Local fit third: use local assets only to detect naming conflicts, private dependencies, or compatibility constraints.",
"Borrow patterns, not prose: extract loops, boundaries, metadata, and operator flow without copying source-specific language.",
"Keep the package light: reject any borrowed pattern that increases context cost faster than it increases reliability."
],
"priority_rule": "External benchmark objects set the pattern ceiling. User references refine taste and standards. Local files only calibrate fit, risk, and compatibility.",
"non_goals": [
"Do not copy source prose or branding into the new skill.",
"Do not import gates that cost more context than they save.",
"Do not use benchmark scanning to justify scope creep.",
"Do not let local historical habits outrank stronger public benchmarks."
]
}
@@ -0,0 +1,54 @@
# Reference Scan
Skill: `geo-content-brief-skill`
## Why This Step Exists
Use a short benchmark pass before authoring the package in depth. External benchmark objects should define the pattern ceiling. Local files are used afterward only to calibrate fit, privacy, naming, and compatibility.
## Current Skill Anchor
- Title: `Geo Content Brief Skill`
- Description: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
## Scan Focus
- **Execution pattern**: There is deterministic logic in scripts, so compare how strong references separate prose from executable steps.
- **Portability pattern**: The package carries neutral metadata, so scan how good references preserve semantics across targets without forking source.
- **Method pattern**: Use the core job description as the anchor for comparison: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
## Priority Rule
- External benchmark objects set the pattern ceiling. User references refine taste and standards. Local files only calibrate fit, risk, and compatibility.
## External Benchmark Objects
- No explicit external benchmark objects recorded yet.
- Recommended: capture 2 to 5 external references at most.
- Suggested mix: one method reference, one structure reference, one execution or portability reference.
## User-Supplied References
- No user-supplied references recorded yet.
- Ask whether the user has a repo, product, page, workflow, or prompt example worth learning from.
- Treat these as pattern references only, not as text to be copied.
## Local Fit Check
- No local constraints recorded yet.
- Use this section for naming collisions, private dependencies, compatibility limits, or existing library conventions.
## Borrow Plan
- External benchmark first: let high-quality public references define the upper bound for method, structure, execution, or portability.
- User references second: use them to understand taste, standards, and directional preferences without copying source phrasing.
- Local fit third: use local assets only to detect naming conflicts, private dependencies, or compatibility constraints.
- Borrow patterns, not prose: extract loops, boundaries, metadata, and operator flow without copying source-specific language.
- Keep the package light: reject any borrowed pattern that increases context cost faster than it increases reliability.
## Non-Goals
- Do not copy source prose or branding into the new skill.
- Do not import gates that cost more context than they save.
- Do not use benchmark scanning to justify scope creep.
- Do not let local historical habits outrank stronger public benchmarks.
@@ -0,0 +1,171 @@
{
"skill_name": "geo-content-brief-skill",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"intent_confidence": {
"score": 10,
"band": "low",
"gate_passed": false
},
"github_benchmarks": [],
"source_tracks": [
{
"source_type": "official",
"name": "Official skill anatomy and context discipline",
"evidence_mode": "curated-pattern-track",
"matched_keywords": [
"general fit"
],
"borrow": "Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.",
"avoid": "Do not let packaging or platform concerns swallow the core job boundary.",
"why_relevant": "This track matches: general fit."
},
{
"source_type": "research",
"name": "Hypothesis-test-learn loop",
"evidence_mode": "curated-pattern-track",
"matched_keywords": [
"general fit"
],
"borrow": "Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.",
"avoid": "Do not create experimental overhead that exceeds the skill's real risk tier.",
"why_relevant": "This track matches: general fit."
},
{
"source_type": "principles",
"name": "Boundary-first design",
"evidence_mode": "curated-pattern-track",
"matched_keywords": [
"general fit"
],
"borrow": "Borrow the discipline of defining what the skill should not own before growing the package.",
"avoid": "Do not expand execution assets until route boundaries stay clean.",
"why_relevant": "This track matches: general fit."
}
],
"synthesis": {
"borrow_now": [
"Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.",
"Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.",
"Borrow the discipline of defining what the skill should not own before growing the package."
],
"avoid_now": [
"Do not let packaging or platform concerns swallow the core job boundary.",
"Do not create experimental overhead that exceeds the skill's real risk tier.",
"Do not expand execution assets until route boundaries stay clean."
],
"quality_risers": [
"Use GitHub repositories for concrete package and workflow patterns.",
"Use curated official or commercial tracks for entrypoint and operator ergonomics.",
"Use research tracks to justify the smallest evaluation loop that still catches regressions.",
"Use principle tracks to keep the package small, boundary-aware, and outcome-driven."
],
"pattern_gate": {
"threshold": 2,
"source_count": 3,
"accepted": [
{
"name": "Official skill anatomy and context discipline",
"source_type": "official",
"borrow": "Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.",
"avoid": "Do not let packaging or platform concerns swallow the core job boundary.",
"gates": {
"recurrence": true,
"generativity": true,
"distinctiveness": false,
"boundary": true
},
"passed": [
"recurrence",
"generativity",
"boundary"
],
"missing": [
"distinctiveness"
],
"score": 3
},
{
"name": "Hypothesis-test-learn loop",
"source_type": "research",
"borrow": "Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.",
"avoid": "Do not create experimental overhead that exceeds the skill's real risk tier.",
"gates": {
"recurrence": true,
"generativity": true,
"distinctiveness": false,
"boundary": true
},
"passed": [
"recurrence",
"generativity",
"boundary"
],
"missing": [
"distinctiveness"
],
"score": 3
},
{
"name": "Boundary-first design",
"source_type": "principles",
"borrow": "Borrow the discipline of defining what the skill should not own before growing the package.",
"avoid": "Do not expand execution assets until route boundaries stay clean.",
"gates": {
"recurrence": true,
"generativity": true,
"distinctiveness": false,
"boundary": true
},
"passed": [
"recurrence",
"generativity",
"boundary"
],
"missing": [
"distinctiveness"
],
"score": 3
}
],
"deferred": [],
"summary": "3 accepted, 0 deferred using threshold 2/4."
},
"conflicts": [
{
"key": "lightweight_vs_governance",
"summary": "The stated preference leans lightweight or speed-first, while the benchmark mix leans toward governance, review, or heavier evaluation structure.",
"user_preference": "lightweight or speed-first",
"benchmark_pressure": "governance or evaluation-heavy patterns"
}
],
"recommendation": {
"summary": "Start by borrowing this pattern: Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts. Avoid this for the first pass: Do not let packaging or platform concerns swallow the core job boundary.",
"borrow_now": [
"Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.",
"Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed."
],
"avoid_for_now": [
"Do not let packaging or platform concerns swallow the core job boundary.",
"Do not create experimental overhead that exceeds the skill's real risk tier."
],
"why": "There is a real design conflict to resolve: The stated preference leans lightweight or speed-first, while the benchmark mix leans toward governance, review, or heavier evaluation structure.",
"user_decision_required": true
},
"visibility": {
"mode": "explicit",
"user_decision_required": true,
"reasons": [
"intent_uncertain",
"design_conflict"
],
"user_note": "Surface the recommendation because intent is still settling or there is a real design conflict that needs a user call.",
"reviewer_note": "Keep the full benchmark and synthesis evidence visible for authors and reviewers."
},
"decision_prompt": "Use the recommendation by default. Only surface the underlying benchmark tradeoffs when intent is uncertain or a real design conflict needs a deliberate call.",
"source_mix": {
"github_benchmarks": 0,
"curated_tracks": 3,
"user_references": 0
}
}
}
@@ -0,0 +1,81 @@
# Reference Synthesis
Skill: `geo-content-brief-skill`
- Description: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
- Intent confidence: `10/100` (`low`)
## Live GitHub Benchmarks
- No live GitHub benchmarks are attached yet.
## Curated World-Class Pattern Tracks
### Official skill anatomy and context discipline
- Type: `official`
- Evidence mode: `curated-pattern-track`
- Why relevant: This track matches: general fit.
- Borrow: Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.
- Avoid: Do not let packaging or platform concerns swallow the core job boundary.
### Hypothesis-test-learn loop
- Type: `research`
- Evidence mode: `curated-pattern-track`
- Why relevant: This track matches: general fit.
- Borrow: Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.
- Avoid: Do not create experimental overhead that exceeds the skill's real risk tier.
### Boundary-first design
- Type: `principles`
- Evidence mode: `curated-pattern-track`
- Why relevant: This track matches: general fit.
- Borrow: Borrow the discipline of defining what the skill should not own before growing the package.
- Avoid: Do not expand execution assets until route boundaries stay clean.
## Borrow Now
- Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.
- Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.
- Borrow the discipline of defining what the skill should not own before growing the package.
## Avoid Now
- Do not let packaging or platform concerns swallow the core job boundary.
- Do not create experimental overhead that exceeds the skill's real risk tier.
- Do not expand execution assets until route boundaries stay clean.
## Pattern Gate
- Summary: 3 accepted, 0 deferred using threshold 2/4.
- Acceptance threshold: `2/4`
- Accepted patterns:
- **Official skill anatomy and context discipline**: 3/4 (recurrence, generativity, boundary)
- **Hypothesis-test-learn loop**: 3/4 (recurrence, generativity, boundary)
- **Boundary-first design**: 3/4 (recurrence, generativity, boundary)
## Default Recommendation
- Summary: Start by borrowing this pattern: Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts. Avoid this for the first pass: Do not let packaging or platform concerns swallow the core job boundary.
- Why: There is a real design conflict to resolve: The stated preference leans lightweight or speed-first, while the benchmark mix leans toward governance, review, or heavier evaluation structure.
- User decision required: `True`
## Visibility Mode
- Mode: `explicit`
- Reasons: intent_uncertain, design_conflict
- User note: Surface the recommendation because intent is still settling or there is a real design conflict that needs a user call.
- Reviewer note: Keep the full benchmark and synthesis evidence visible for authors and reviewers.
## Conflict Check
- **lightweight_vs_governance**: The stated preference leans lightweight or speed-first, while the benchmark mix leans toward governance, review, or heavier evaluation structure.
## Quality Lift Thesis
- Use GitHub repositories for concrete package and workflow patterns.
- Use curated official or commercial tracks for entrypoint and operator ergonomics.
- Use research tracks to justify the smallest evaluation loop that still catches regressions.
- Use principle tracks to keep the package small, boundary-aware, and outcome-driven.
## Decision Prompt
Use the recommendation by default. Only surface the underlying benchmark tradeoffs when intent is uncertain or a real design conflict needs a deliberate call.
File diff suppressed because one or more lines are too long
@@ -0,0 +1,376 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Geo Content Brief Skill Review Viewer</title>
<style>
:root {
--text: #111111;
--muted: #666666;
--line: #e8e8e8;
--soft: #f6f6f4;
--white: #ffffff;
}
* { box-sizing: border-box; }
body {
margin: 0;
background: var(--white);
color: var(--text);
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 1.6;
}
.page {
max-width: 1120px;
margin: 0 auto;
padding: 48px 32px 72px;
}
.hero {
padding-bottom: 28px;
border-bottom: 1px solid var(--line);
margin-bottom: 28px;
}
h1, h2, h3 {
margin: 0 0 12px;
letter-spacing: -0.02em;
font-weight: 600;
}
h1 { font-size: 40px; line-height: 1.08; }
h2 { font-size: 22px; margin-top: 34px; }
h3 { font-size: 16px; }
p, li, span { font-size: 15px; }
.lede {
max-width: 860px;
font-size: 18px;
color: var(--muted);
margin: 0 0 18px;
}
.meta {
display: flex;
gap: 10px;
flex-wrap: wrap;
margin-top: 16px;
}
.meta span {
border: 1px solid var(--line);
padding: 6px 10px;
background: var(--soft);
}
.arch-grid {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 12px;
margin-top: 16px;
}
.arch-step, .panel, .direction-card, .baseline-box {
border: 1px solid var(--line);
background: var(--white);
}
.arch-step {
padding: 14px;
min-height: 132px;
}
.step-label {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--muted);
margin-bottom: 10px;
}
.step-detail {
font-size: 14px;
}
.grid {
display: grid;
grid-template-columns: 1.1fr 0.9fr;
gap: 18px;
margin-top: 16px;
}
.panel {
padding: 18px;
}
.panel ul {
margin: 0;
padding-left: 18px;
}
.direction-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin-top: 16px;
}
.variant-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin-top: 16px;
}
.direction-card {
padding: 18px;
}
.direction-card ul {
margin: 12px 0;
padding-left: 18px;
}
.minor {
color: var(--muted);
font-size: 13px;
}
.variant-card {
border: 1px solid var(--line);
background: var(--white);
padding: 18px;
}
.variant-head {
display: flex;
justify-content: space-between;
gap: 12px;
align-items: baseline;
}
.variant-head span {
color: var(--muted);
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.variant-description {
margin: 14px 0;
padding-left: 14px;
border-left: 2px solid var(--line);
color: var(--text);
}
.variant-metrics {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 14px;
}
.variant-metrics span {
border: 1px solid var(--line);
background: var(--soft);
padding: 6px 10px;
font-size: 12px;
}
.variant-cues p {
margin: 8px 0 6px;
}
.variant-cues ul {
margin: 0 0 12px;
padding-left: 18px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 14px;
font-size: 14px;
}
th, td {
border-top: 1px solid var(--line);
text-align: left;
padding: 10px 8px;
vertical-align: top;
}
th {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--muted);
}
@media (max-width: 1000px) {
.arch-grid, .direction-grid, .variant-grid, .grid {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<div class="page">
<section class="hero">
<p class="minor">Review Viewer</p>
<h1>Geo Content Brief Skill</h1>
<p class="lede">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</p>
<div class="meta">
<span>maturity: production</span>
<span>archetype: production</span>
<span>format: agent-skills</span>
<span>updated: 2026-06-15</span>
<span>intent confidence: 10 / 100</span>
</div>
</section>
<section>
<h2>Architecture at a glance</h2>
<div class="arch-grid"><div class='arch-step'><div class='step-label'>Inputs</div><div class='step-detail'>workflow, prompt, transcript, docs, or notes</div></div><div class='arch-step'><div class='step-label'>Boundary</div><div class='step-detail'>将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</div></div><div class='arch-step'><div class='step-label'>Logic</div><div class='step-detail'>读取用户输入,识别目标受众、内容渠道、关键词、品牌边界、禁止表达和必须覆盖的信息。; 对照 `references/brief-structure.md` 生成简报骨架:目标、洞察、角度、关键词、结构、证据、风险和验收标准。; 如果缺少核心输入,先提出最多三个澄清问题,不用假设补全用户没有提供的事实。</div></div><div class='arch-step'><div class='step-label'>Usage</div><div class='step-detail'>当你需要把访谈纪要、关键词、竞品线索和渠道限制整理成中文 GEO 内容简报时,使用 $geo-content-brief-skill。; Use this skill when the request matches: 将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</div></div><div class='arch-step'><div class='step-label'>Next</div><div class='step-detail'>Review the top iteration directions before growing the package.</div></div></div>
</section>
<section class="grid">
<div class="panel">
<h2>Core logic</h2>
<ul><li>读取用户输入,识别目标受众、内容渠道、关键词、品牌边界、禁止表达和必须覆盖的信息。</li><li>对照 `references/brief-structure.md` 生成简报骨架:目标、洞察、角度、关键词、结构、证据、风险和验收标准。</li><li>如果缺少核心输入,先提出最多三个澄清问题,不用假设补全用户没有提供的事实。</li><li>用 `evals/trigger_cases.jsonl` 检查当前请求是否属于 GEO 内容简报场景。</li><li>用 `evals/output_cases.jsonl` 检查输出是否包含输入摘要、内容结构、证据要求、禁区和下一步动作。</li></ul>
</div>
<div class="panel">
<h2>How to use it</h2>
<ul><li>当你需要把访谈纪要、关键词、竞品线索和渠道限制整理成中文 GEO 内容简报时,使用 $geo-content-brief-skill。</li><li>Use this skill when the request matches: 将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</li></ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Intent questions</h2>
<ul><li><strong>If this skill worked beautifully, what recurring job would it reliably handle for the user every time?</strong><br><span>This reveals the real job-to-be-done and gives the package a humane center instead of a guessed prompt shape.</span></li><li><strong>When someone reaches for this skill in the real world, what materials will they actually hand to it?</strong><br><span>Input shape decides whether references, scripts, or templates are needed.</span></li><li><strong>What finished output should it hand back so the user can immediately keep moving?</strong><br><span>Outputs should drive the package structure before extra guidance is added.</span></li><li><strong>Which nearby requests should this skill politely refuse so the boundary stays clean?</strong><br><span>The exclusion list is the fastest route to better trigger quality.</span></li><li><strong>What matters most here: speed, consistency, auditability, portability, governance, or tone/style fit?</strong><br><span>Constraints decide how much structure, packaging, and review the skill actually needs.</span></li></ul>
</div>
<div class="panel">
<h2>Why this package is strong</h2>
<ul><li>触发面保持精简,并锚定在 frontmatter description。</li><li>已生成 Skill IR,核心语义可先于平台打包被审查和迁移。</li><li>已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。</li><li>已生成 Adoption Drift Report,可把本地使用反馈转为下一轮迭代信号。</li><li>已生成 Review Waivers 台账,可记录 reviewer 对 warning 风险的批准、理由和到期时间。</li><li>已生成 Review Annotations 台账,可把 reviewer 批注挂到 gate、文件和行号。</li></ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Borrow plan</h2>
<ul><li>No external benchmark objects recorded yet. Add 2 to 5 references before deepening the package.</li></ul>
</div>
<div class="panel">
<h2>Compare view</h2>
<p class='minor'>No baseline comparison has been recorded for this package yet.</p>
</div>
</section>
<section>
<h2>Variant diff studio</h2>
<div class="variant-grid"><p class='minor'>No description optimization compare payload is attached yet.</p></div>
</section>
<section class="grid">
<div class="panel">
<h2>Evidence readiness</h2>
<p class="minor">Readiness score: 57/100</p>
<ul><li><strong>Intent clarity</strong> · needs review<br><span>10/100 intent confidence.</span></li><li><strong>Benchmark coverage</strong> · needs evidence<br><span>0 GitHub benchmark repositories attached.</span></li><li><strong>Pattern gate</strong> · ready<br><span>3 accepted, 0 deferred using threshold 2/4.</span></li><li><strong>Conflict handling</strong> · decision needed<br><span>The stated preference leans lightweight or speed-first, while the benchmark mix leans toward governance, review, or heavier evaluation structure.</span></li><li><strong>Output risk profile</strong> · ready<br><span>5 output risk families attached.</span></li><li><strong>Artifact design profile</strong> · ready<br><span>High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail.</span></li><li><strong>Prompt quality profile</strong> · ready<br><span>85.0/100 prompt-facing quality score.</span></li></ul>
</div>
<div class="panel">
<h2>Honest boundary check</h2>
<ul>
<li>Are the known limits visible before the package deepens?</li>
<li>Does the evidence support the borrowed patterns?</li>
<li>Should uncertainty become a clarification question instead of more structure?</li>
</ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Output risk profile</h2>
<ul><li><strong>Markdown readability</strong><br><span>Tables can render as dense grids with weak hierarchy or poor mobile readability.; Long bullets can make the output look complete while hiding the actual decision logic.</span></li><li><strong>Screenshot and visual capture</strong><br><span>Screenshots can be captured from the wrong state, wrong viewport, or wrong crop.; Missing screenshots can cause the skill to invent visual references instead of declaring the gap.</span></li><li><strong>Citation and footnote clutter</strong><br><span>Footnote markers or dense citation notes can interrupt the reading flow.; Evidence can be over-attached to obvious statements and under-attached to risky claims.</span></li></ul>
</div>
<div class="panel">
<h2>Self-repair checks</h2>
<ul><li>Preview whether each table still reads well when columns are narrow.</li><li>Convert any table with paragraph-length cells into bullets or cards.</li><li>Check that every screenshot reference points to a real provided or generated asset.</li><li>Reword any visual instruction that depends on an unseen screen state.</li><li>Remove decorative citations that do not support a material claim.</li></ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Artifact design profile</h2>
<p class="minor">Design system: metric editorial</p>
<ul><li><strong>Report or brief</strong><br><span>High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail.</span></li><li><strong>Review viewer</strong><br><span>Side-by-side reviewer studio with explicit tradeoffs, evidence readiness, and fast paths for approving, blocking, or requesting one focused fix.</span></li><li><strong>Dashboard or metrics page</strong><br><span>Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation.</span></li></ul>
</div>
<div class="panel">
<h2>Visual quality gates</h2>
<ul><li>Keep the first screen useful without requiring the reader to parse every detail.</li><li>Use tables only for comparisons; move explanations below the table.</li><li>Keep source notes readable without flooding the body with markers.</li><li>Make differences visible instead of hiding them in prose.</li><li>Separate author-facing recommendations from reviewer-only evidence.</li></ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Prompt quality profile</h2>
<p class="minor">Relevance: prompt-heavy · score 85.0 / 100 · complexity complex</p>
<ul><li><strong>Completeness</strong> · 80 / 100<br><span>Name missing inputs, outputs, constraints, or success standards before deepening the package.</span></li><li><strong>Clarity</strong> · 90 / 100<br><span>Replace broad verbs with observable actions and define what done means.</span></li><li><strong>Consistency</strong> · 90 / 100<br><span>Check that role, task, format, exclusions, and examples do not contradict each other.</span></li><li><strong>Practicality</strong> · 95 / 100<br><span>Add runnable steps, examples, or verification cues instead of abstract advice.</span></li><li><strong>Specificity</strong> · 70 / 100<br><span>Anchor wording in the user&#x27;s audience, domain nouns, and target outcome.</span></li></ul>
</div>
<div class="panel">
<h2>RTF to skill mapping</h2>
<ul><li><strong>Role</strong><br><span>Use a taste-aware creator role with clear audience, tone, and originality boundaries.</span></li><li><strong>Task</strong><br><span>Generate variants, explain selection logic, and preserve the user&#x27;s distinctive constraints.</span></li><li><strong>Format</strong><br><span>Return options with rationale, selection criteria, and refinement paths.</span></li></ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Reference coach</h2>
<div class="direction-grid"><p class='minor'>No GitHub benchmark scan has been attached to this package yet.</p></div>
</div>
<div class="panel">
<h2>Decide before you deepen</h2>
<ul>
<li>Choose one pattern to borrow on purpose, not three at once.</li>
<li>State one thing this skill will not inherit from the benchmark objects.</li>
<li>Only deepen the package after that choice is visible in the boundary or execution flow.</li>
</ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Reference synthesis</h2>
<div class="direction-grid"><div class='direction-card'><h3>Official skill anatomy and context discipline</h3><p><strong>Borrow now</strong></p><ul><li>Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.</li></ul><p><strong>Avoid</strong></p><ul><li>Do not let packaging or platform concerns swallow the core job boundary.</li></ul></div><div class='direction-card'><h3>Hypothesis-test-learn loop</h3><p><strong>Borrow now</strong></p><ul><li>Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.</li></ul><p><strong>Avoid</strong></p><ul><li>Do not create experimental overhead that exceeds the skill&#x27;s real risk tier.</li></ul></div><div class='direction-card'><h3>Boundary-first design</h3><p><strong>Borrow now</strong></p><ul><li>Borrow the discipline of defining what the skill should not own before growing the package.</li></ul><p><strong>Avoid</strong></p><ul><li>Do not expand execution assets until route boundaries stay clean.</li></ul></div></div>
</div>
<div class="panel">
<h2>Borrow now</h2>
<ul><li>Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.</li><li>Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.</li><li>Borrow the discipline of defining what the skill should not own before growing the package.</li></ul>
<p class="minor">Use the recommendation by default. Only surface the underlying benchmark tradeoffs when intent is uncertain or a real design conflict needs a deliberate call.</p>
</div>
</section>
<section>
<h2>Top three next moves</h2>
<div class="direction-grid"><div class='direction-card'><h3>Tighten trigger and exclusions</h3><p>The package needs clearer near-neighbor exclusions before it grows.</p><ul><li>Add 3 to 5 should-trigger and should-not-trigger examples.</li><li>Refine the frontmatter description to name the recurring job and non-goals.</li><li>Run a first trigger evaluation pass before expanding the package.</li></ul><div class='minor'>Unlocks: Cleaner routing and fewer accidental activations.</div></div><div class='direction-card'><h3>Add the first execution asset</h3><p>The package is still mostly prose. Add one asset that removes repeated manual work.</p><ul><li>Move stable procedural guidance into references if users will need it repeatedly.</li><li>Create one deterministic helper script if a repeated step can be executed instead of described.</li><li>Keep the main SKILL.md compact and route-oriented.</li></ul><div class='minor'>Unlocks: Stronger execution quality without bloating the entrypoint.</div></div><div class='direction-card'><h3>Promote from scaffold to production-ready</h3><p>The first version exists; the next gain usually comes from adding the smallest useful gates.</p><ul><li>Decide whether this skill is personal, team-reused, or library-grade.</li><li>Add only the gates that match that risk level.</li><li>Record lifecycle metadata and review cadence once reuse becomes real.</li></ul><div class='minor'>Unlocks: A clearer path from exploratory package to maintained asset.</div></div></div>
</section>
<section class="grid">
<div class="panel">
<h2>Recent feedback</h2>
<ul><li>No lightweight feedback captured yet. Use `yao.py feedback` to record quick review notes.</li></ul>
</div>
<div class="panel">
<h2>Promotion status</h2>
<p class='minor'>No promotion summary is attached to this package yet.</p>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Package map</h2>
<ul><li><strong>SKILL.md</strong> — Skill entrypoint</li><li><strong>README.md</strong> — Human-readable usage guide</li><li><strong>agents/interface.yaml</strong> — Neutral interface metadata</li><li><strong>manifest.json</strong> — Lifecycle and portability metadata</li><li><strong>references</strong> — Extended guidance and reusable notes</li><li><strong>scripts</strong> — Deterministic helpers or local tooling</li><li><strong>evals</strong> — Trigger and quality checks</li><li><strong>reports</strong> — Generated evidence and overview artifacts</li></ul>
</div>
<div class="panel">
<h2>First-pass review frame</h2>
<ul>
<li>Does the trigger stay narrow enough for the intended job?</li>
<li>Does the archetype match the real reuse level?</li>
<li>Are we adding structure faster than we are adding reliability?</li>
<li>Should the next step be trigger tightening, execution assets, or portability hardening?</li>
</ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Authoring discipline</h2>
<ul>
<li>Name unresolved assumptions before deepening the package.</li>
<li>Keep the package no larger than the recurring job requires.</li>
<li>Touch only files that directly support the requested change.</li>
<li>Tie every meaningful new artifact to a check or reviewer note.</li>
</ul>
</div>
<div class="panel">
<h2>Reviewer guardrails</h2>
<ul>
<li>Block speculative features that are not backed by real workflow variation.</li>
<li>Move unverifiable ideas into next-step candidates instead of baseline structure.</li>
<li>Reject decorative folders, reports, or governance that do not reduce risk.</li>
<li>Ask for one high-leverage clarification when job, output, or exclusion is still fuzzy.</li>
</ul>
</div>
</section>
</div>
</body>
</html>
@@ -0,0 +1,24 @@
{
"schema_version": "1.0",
"ok": true,
"skill_dir": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill",
"source": "reports/review_annotations_input.json",
"summary": {
"annotation_count": 0,
"open_count": 0,
"resolved_count": 0,
"deferred_count": 0,
"open_blocker_count": 0,
"open_warning_count": 0,
"linked_gate_count": 0,
"target_missing_count": 0,
"failure_count": 0
},
"annotations": [],
"failures": [],
"template_written": false,
"artifacts": {
"json": "reports/review_annotations.json",
"markdown": "reports/review_annotations.md"
}
}
@@ -0,0 +1,19 @@
# Review Annotations
This report renders reviewer annotations attached to Review Studio gates and source/report paths.
- Annotations: `0`
- Open: `0`
- Resolved: `0`
- Deferred: `0`
- Open blockers: `0`
- Open warnings: `0`
No reviewer annotations recorded yet.
## Review Rule
- Use annotations for reviewer comments tied to a gate or source line.
- Use waivers only for explicit acceptance of warning-level release risk.
- Open blocker annotations should block a release decision until resolved or deferred with rationale.
@@ -0,0 +1,44 @@
{
"schema_version": "1.0",
"ok": true,
"skill_dir": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill",
"generated_at": "2026-06-15",
"summary": {
"waiver_count": 0,
"active_count": 0,
"expired_count": 0,
"invalid_count": 0,
"covered_gate_count": 0,
"covered_gate_keys": [],
"waiver_candidate_count": 0,
"waiverable_open_count": 0,
"non_waivable_count": 0
},
"policy": {
"blocker_waivers_allowed": false,
"minimum_reason_chars": 20,
"expires_required": true,
"known_gate_keys": [
"context-budget",
"intent-canvas",
"operations-loop",
"output-lab",
"permission-gates",
"permission-runtime",
"registry-audit",
"release-notes",
"runtime-matrix",
"skill-atlas",
"trigger-lab",
"trust-report"
]
},
"waivers": [],
"waiver_candidates": [],
"failures": [],
"warnings": [],
"artifacts": {
"json": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/review_waivers.json",
"markdown": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/review_waivers.md"
}
}
@@ -0,0 +1,34 @@
# Review Waivers
- OK: `True`
- Waivers: `0`
- Active: `0`
- Expired: `0`
- Invalid: `0`
- Covered gates: `none`
- Waiver candidates: `0`
- Open waiverable candidates: `0`
- Non-waivable boundaries: `0`
## Policy
- Blocker waivers allowed: `False`
- Minimum reason chars: `20`
- Expiry is required for every waiver.
- World-class evidence completion cannot be waived; it can only be proven by accepted ledger evidence.
## Waivers
- None
## Candidate Actions
- None
## Failures
- None
## Warnings
- None
@@ -0,0 +1,93 @@
{
"schema_version": "2.0.0",
"name": "geo-content-brief-skill",
"title": "Geo Content Brief Skill",
"job_to_be_done": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"trigger_surface": {
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"should_trigger": [
"将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。"
],
"should_not_trigger": [
"one-off adjacent requests that do not match the recurring job",
"private local material that was not intentionally included"
],
"edge_cases": []
},
"workflow": {
"steps": [
"Understand the request.",
"Execute the main task.",
"Validate the result."
],
"decision_points": [
"Ask one focused clarification when the real job, output, or exclusion boundary is unclear.",
"Escalate visible tradeoffs when benchmark patterns conflict with local privacy, naming, or governance constraints.",
"Do not silently broaden the skill into adjacent jobs just because the examples are nearby."
],
"failure_modes": [
"Tables can render as dense grids with weak hierarchy or poor mobile readability.",
"Long bullets can make the output look complete while hiding the actual decision logic.",
"Screenshots can be captured from the wrong state, wrong viewport, or wrong crop.",
"Missing screenshots can cause the skill to invent visual references instead of declaring the gap.",
"Footnote markers or dense citation notes can interrupt the reading flow.",
"Evidence can be over-attached to obvious statements and under-attached to risky claims.",
"Users start invoking the skill for adjacent one-off or explanation-only requests.",
"Outputs remain valid but become generic, cluttered, or weakly aligned with the user's domain.",
"Borrowed benchmark patterns no longer fit the local job or add ceremony without payoff.",
"Skill usage becomes team-critical while ownership, review cadence, or rollback evidence stays informal."
]
},
"resources": {
"references": [],
"scripts": [],
"assets": [],
"reports": [
"reports/intent-context.json",
"reports/intent-confidence.json",
"reports/intent-confidence.md",
"reports/reference-synthesis.json",
"reports/reference-synthesis.md",
"reports/output-risk-profile.json",
"reports/output-risk-profile.md",
"reports/artifact-design-profile.json",
"reports/artifact-design-profile.md",
"reports/prompt-quality-profile.json",
"reports/prompt-quality-profile.md",
"reports/system-model.json",
"reports/system-model.md"
]
},
"eval_plan": {
"trigger": [],
"output": [],
"adversarial": [],
"baseline": "without_skill"
},
"risk": {
"output_risk": "high",
"execution_risk": "low",
"trust_boundary": "personal"
},
"governance": {
"owner": "Yao Team",
"maturity": "scaffold",
"review_cadence": "per-release",
"review_due": ""
},
"targets": [
"openai",
"claude",
"generic",
"agent-skills-compatible",
"vscode"
],
"source_files": [
"SKILL.md",
"manifest.json",
"agents/interface.yaml",
"reports/intent-context.json",
"reports/output-risk-profile.json",
"reports/system-model.json"
]
}
@@ -0,0 +1,986 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>geo-content-brief-skill Skill 生成审计报告</title>
<style>
:root {
--paper: #ffffff;
--wash: #f8fafc;
--wash-strong: #f2f5f8;
--line: #e6e0d4;
--line-soft: #eee9df;
--brand: #1B365D;
--brand-soft: #EEF3F8;
--brand-mid: #315982;
--ink: #151515;
--text: #2f2d29;
--muted: #68625a;
--faint: #8b857b;
--success: #2f6f5e;
--warn: #8a5a19;
--serif: "TsangerJinKai02", "Source Han Serif SC", "Noto Serif CJK SC", "Songti SC", "STSong", Charter, Georgia, serif;
--mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, Consolas, monospace;
--shadow-soft: 0 1px 2px rgba(27, 54, 93, 0.06), 0 16px 44px rgba(27, 54, 93, 0.08);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background: #ffffff;
color: var(--ink);
font-family: var(--serif);
line-height: 1.62;
letter-spacing: 0;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}
body[data-report-lang="zh-CN"] [data-lang="en"],
body[data-report-lang="en"] [data-lang="zh-CN"] { display: none !important; }
.skip-link {
position: fixed;
left: 18px;
top: 10px;
z-index: 40;
transform: translateY(-140%);
padding: 8px 12px;
border-radius: 8px;
background: var(--brand);
color: #fff;
text-decoration: none;
transition: transform 160ms cubic-bezier(0.16, 1, 0.3, 1);
}
.skip-link:focus-visible { transform: translateY(0); outline: 2px solid var(--brand-mid); outline-offset: 2px; }
.topbar {
position: sticky;
top: 0;
z-index: 20;
background: rgba(255, 255, 255, 0.96);
border-bottom: 1px solid var(--line);
}
.progress-track {
height: 2px;
background: transparent;
}
.progress-bar {
display: block;
width: 100%;
height: 100%;
background: var(--brand);
transition: transform 160ms cubic-bezier(0.16, 1, 0.3, 1);
transform-origin: left center;
transform: scaleX(0);
}
.topbar-inner {
max-width: 1240px;
margin: 0 auto;
padding: 9px 28px;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 18px;
align-items: center;
}
.nav-shell {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 18px;
align-items: center;
min-width: 0;
}
.report-mark {
color: var(--brand);
font-family: var(--mono);
font-size: 11px;
line-height: 1;
text-transform: uppercase;
white-space: nowrap;
}
.report-nav {
display: flex;
gap: 4px;
overflow-x: auto;
scrollbar-width: none;
min-width: 0;
}
.report-nav::-webkit-scrollbar { display: none; }
.report-nav a {
flex: 0 0 auto;
min-width: 76px;
min-height: 40px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 10px;
color: var(--brand);
text-decoration: none;
text-align: center;
font-size: 13px;
border-radius: 8px;
white-space: nowrap;
transition-property: background-color, color, transform;
transition-duration: 160ms;
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}
@media (hover: hover) {
.report-nav a:hover { background: var(--brand-soft); }
}
.report-nav a:focus-visible {
outline: 2px solid var(--brand-mid);
outline-offset: 2px;
background: var(--brand-soft);
}
.report-nav a[aria-current="true"] {
background: var(--brand);
color: #ffffff;
}
.report-nav a[aria-current="true"] span { color: #ffffff; }
.language-switch {
display: inline-flex;
gap: 3px;
padding: 3px;
border: 1px solid var(--line);
border-radius: 8px;
background: var(--paper);
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.05);
}
.language-switch button {
appearance: none;
min-width: 42px;
min-height: 34px;
border: 0;
border-radius: 6px;
padding: 0 10px;
background: transparent;
color: var(--muted);
font: inherit;
font-size: 13px;
cursor: pointer;
transition-property: background-color, color, transform;
transition-duration: 160ms;
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}
.language-switch button:active { transform: scale(0.96); }
.language-switch button:focus-visible { outline: 2px solid var(--brand-mid); outline-offset: 2px; }
.language-switch button[aria-pressed="true"] {
background: var(--brand-soft);
color: var(--brand);
}
.wrap {
max-width: 1240px;
margin: 0 auto;
padding: 58px 28px 92px;
}
.hero {
padding: 16px 0 34px;
}
.hero-grid {
display: grid;
grid-template-columns: minmax(0, 1fr) 360px;
gap: 44px;
align-items: end;
}
.eyebrow, .report-mark {
letter-spacing: 0;
}
.eyebrow {
margin: 0 0 12px;
color: var(--brand);
font-family: var(--mono);
font-size: 12px;
text-transform: uppercase;
}
.slug {
margin: 0 0 18px;
color: var(--faint);
font-family: var(--mono);
font-size: 13px;
overflow-wrap: anywhere;
}
h1, h2, h3 {
margin: 0;
font-weight: 500;
letter-spacing: 0;
text-wrap: balance;
}
h1 {
max-width: 8em;
color: var(--ink);
font-size: 4rem;
line-height: 1.02;
}
.lead {
max-width: 760px;
margin: 20px 0 0;
color: var(--text);
font-size: 1.08rem;
text-wrap: pretty;
}
.hero-meta, .badges {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 20px;
}
.hero-meta span, .badges span, .tag {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 5px 10px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 13px;
font-variant-numeric: tabular-nums;
}
.hero-card {
position: relative;
padding: 22px 22px 24px;
border-radius: 8px;
background: linear-gradient(180deg, #ffffff 0%, #fbfaf7 100%);
box-shadow: var(--shadow-soft);
border: 1px solid var(--line-soft);
}
.hero-card::before {
content: "";
position: absolute;
top: 18px;
right: 18px;
width: 38px;
height: 2px;
background: var(--brand);
}
.score-strip {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
margin-top: 32px;
padding-top: 20px;
border-top: 1px solid var(--line);
}
.score-chip {
padding: 14px 14px 12px;
border-radius: 8px;
background: var(--wash);
border: 1px solid var(--line-soft);
}
.score-chip span {
display: block;
color: var(--muted);
font-size: 12px;
}
.score-chip strong {
display: block;
margin: 5px 0 8px;
color: var(--brand);
font-family: var(--mono);
font-size: 1.65rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.score-chip i {
display: block;
height: 3px;
border-radius: 999px;
background: linear-gradient(90deg, var(--brand) var(--score), #dfe6ee var(--score));
}
.score-chip small {
display: block;
margin-top: 8px;
color: var(--muted);
font-size: 12px;
line-height: 1.45;
}
section {
scroll-margin-top: 78px;
padding-top: 44px;
margin-top: 44px;
border-top: 1px solid var(--line);
}
section.hero {
scroll-margin-top: 0;
padding-top: 16px;
margin-top: 0;
border-top: 0;
}
.section-head {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 22px;
align-items: start;
}
h2 {
color: var(--ink);
font-size: 1.5rem;
line-height: 1.18;
}
h2::before {
content: "";
display: block;
width: 32px;
height: 2px;
margin-bottom: 12px;
background: var(--brand);
}
h3 {
color: var(--ink);
font-size: 1.02rem;
line-height: 1.3;
margin-bottom: 10px;
}
.section-head > div:first-child p {
margin: 12px 0 0;
color: var(--muted);
max-width: 68ch;
text-wrap: pretty;
}
.section-body {
margin-top: 24px;
}
.two-col, .metric-grid, .chart-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
align-items: stretch;
}
.quality-panels {
margin-top: 16px;
}
.metrics-flow {
display: grid;
gap: 24px;
}
.metrics-primary {
display: grid;
grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
gap: 18px;
align-items: start;
}
.metrics-primary .chart-figure {
min-height: 0;
display: grid;
align-content: center;
}
.metrics-primary .chart-figure svg {
max-height: 520px;
}
.metrics-note {
display: grid;
align-content: start;
gap: 16px;
}
.metrics-note p {
margin: 0;
max-width: none;
color: var(--text);
}
.metric-summary-list {
margin: 0;
padding: 0;
list-style: none;
display: grid;
gap: 10px;
}
.metric-summary-list li {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
gap: 8px 10px;
align-items: baseline;
padding: 10px 0;
border-bottom: 1px solid var(--line-soft);
}
.metric-summary-list li:last-child { border-bottom: 0; }
.metric-summary-list b {
color: var(--ink);
font-weight: 500;
}
.metric-summary-list em {
color: var(--brand);
font-family: var(--mono);
font-style: normal;
font-variant-numeric: tabular-nums;
}
.metric-summary-list small {
grid-column: 2 / 4;
color: var(--muted);
line-height: 1.5;
overflow-wrap: break-word;
}
.metric-status {
display: inline-flex;
align-items: center;
min-height: 24px;
padding: 2px 7px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 12px;
}
.metric-detail-grid {
grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
align-items: stretch;
}
.list, .compact-list, .step-list {
margin: 0;
padding-left: 1.15em;
display: grid;
gap: 8px;
}
.list li::marker, .compact-list li::marker, .step-list li::marker { color: var(--brand); }
.compact-list {
gap: 6px;
font-size: 13.5px;
color: var(--muted);
line-height: 1.55;
}
.compact-list li, .list li, .step-list li {
min-width: 0;
overflow-wrap: break-word;
}
.panel, .metric-card, .roadmap-item {
background: #ffffff;
border: 1px solid var(--line-soft);
border-radius: 8px;
padding: 22px;
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.04);
min-width: 0;
}
.metric-card {
display: grid;
grid-template-columns: 1fr;
gap: 14px;
align-content: start;
min-height: 0;
}
.metric-card-head {
display: flex;
gap: 14px;
align-items: flex-start;
justify-content: space-between;
}
.metric-card strong {
display: block;
margin: 0;
color: var(--brand);
font-family: var(--mono);
font-size: 2rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.metric-label {
color: var(--muted);
font-size: 13px;
line-height: 1.45;
}
.metric-card-body {
min-width: 0;
}
.metric-card-body .compact-list {
gap: 7px;
max-width: 62ch;
}
.metric-card-body .compact-list li {
overflow-wrap: break-word;
word-break: normal;
}
.chart-figure {
margin: 0;
padding: 18px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: #ffffff;
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.04);
}
.chart-figure svg {
width: 100%;
height: auto;
display: block;
overflow: visible;
}
.chart-figure text {
fill: var(--ink);
font-family: var(--serif);
font-size: 13px;
}
.chart-title {
fill: var(--brand);
font-size: 16px;
font-weight: 500;
}
.chart-line {
fill: none;
stroke: var(--brand);
stroke-width: 2;
}
figcaption {
margin-top: 12px;
padding-top: 10px;
border-top: 1px solid var(--line-soft);
color: var(--muted);
font-size: 13px;
line-height: 1.5;
text-wrap: pretty;
}
table {
width: 100%;
border-collapse: collapse;
font-size: 14px;
}
th, td {
padding: 12px 10px;
text-align: left;
border-bottom: 1px solid var(--line-soft);
vertical-align: top;
}
th {
color: var(--brand);
font-weight: 500;
font-size: 12px;
}
td:first-child, th:first-child { width: 96px; }
.world-readiness {
margin-top: 16px;
display: grid;
gap: 16px;
}
.section-head > .world-readiness { grid-column: 1; }
.world-readiness-head {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 16px;
align-items: start;
}
.world-readiness-head p {
margin-top: 8px;
max-width: 72ch;
}
.world-status {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 4px 10px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 13px;
white-space: nowrap;
}
.evidence-kpis {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 10px;
}
.evidence-kpi {
padding: 14px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: var(--wash);
min-width: 0;
}
.evidence-kpi span {
display: block;
color: var(--muted);
font-size: 12px;
}
.evidence-kpi strong {
display: block;
margin-top: 4px;
color: var(--brand);
font-family: var(--mono);
font-size: 1.5rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.evidence-kpi small {
display: block;
margin-top: 8px;
color: var(--muted);
line-height: 1.45;
overflow-wrap: break-word;
}
.evidence-list {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.evidence-item {
padding: 14px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: #ffffff;
min-width: 0;
}
.evidence-item span {
color: var(--brand);
font-family: var(--mono);
font-size: 11px;
text-transform: uppercase;
}
.evidence-item h4 {
margin: 4px 0 8px;
color: var(--ink);
font-size: 1rem;
font-weight: 500;
line-height: 1.3;
}
.evidence-item h5 {
margin: 12px 0 6px;
color: var(--brand);
font-size: 12px;
font-weight: 500;
}
.evidence-item p {
margin: 0;
max-width: none;
color: var(--muted);
overflow-wrap: break-word;
}
.blocked-checks {
margin: 0;
padding-left: 1.05em;
color: var(--muted);
font-size: 13px;
line-height: 1.45;
}
.blocked-checks li {
overflow-wrap: break-word;
}
.blocked-checks li::marker {
color: var(--brand);
}
.blocked-checks-empty {
font-size: 13px;
}
.roadmap {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
}
.step {
display: inline-flex;
margin-bottom: 12px;
min-height: 28px;
align-items: center;
padding: 3px 8px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 12px;
}
.unlock {
margin-top: 14px;
color: var(--muted);
font-size: 13px;
}
@media (max-width: 980px) {
.topbar-inner {
grid-template-columns: minmax(0, 1fr) auto;
padding: 8px 16px;
}
.nav-shell { grid-template-columns: 1fr; gap: 6px; }
.report-mark { display: none; }
.report-nav a { min-width: 72px; }
.hero-grid, .section-head { grid-template-columns: 1fr; }
.section-head > .world-readiness { grid-column: auto; }
.hero-grid { gap: 24px; }
.score-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.metrics-primary, .metric-detail-grid, .two-col, .metric-grid, .chart-grid, .roadmap { grid-template-columns: 1fr; }
.evidence-list { grid-template-columns: 1fr; }
.metric-card { grid-template-columns: 1fr; }
h1 { font-size: 2.75rem; }
}
@media (max-width: 540px) {
.wrap { padding: 34px 16px 72px; }
.topbar-inner { gap: 10px; }
.report-nav {
display: flex;
gap: 2px;
}
.report-nav a {
min-width: 66px;
min-height: 38px;
padding: 0 8px;
font-size: 12px;
}
.language-switch button { min-width: 38px; min-height: 32px; padding: 0 8px; }
.hero { padding-top: 8px; }
h1 { max-width: 8em; font-size: 2.35rem; }
.lead { font-size: 1rem; }
.hero-meta span, .badges span { font-size: 12px; }
.score-strip { grid-template-columns: 1fr; }
section { margin-top: 34px; padding-top: 34px; }
.panel, .metric-card, .roadmap-item, .chart-figure, .hero-card { padding: 18px; }
.world-readiness-head, .evidence-kpis { grid-template-columns: 1fr; }
.metric-card { grid-template-columns: 1fr; gap: 10px; }
.metric-card strong { margin-bottom: 2px; }
.metric-summary-list li { grid-template-columns: auto minmax(0, 1fr) auto; }
table { font-size: 13px; }
th, td { padding: 10px 7px; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
*, *::before, *::after { transition-duration: 0.01ms !important; }
}
</style>
</head>
<body data-report-lang="zh-CN">
<a class="skip-link" href="#overview"><span data-lang="zh-CN">跳到正文</span><span data-lang="en">Skip to content</span></a>
<header class="topbar">
<div class="progress-track" aria-hidden="true"><span class="progress-bar"></span></div>
<div class="topbar-inner">
<div class="nav-shell">
<span class="report-mark">Skill audit</span>
<nav class="report-nav" aria-label="报告导航"><a href="#overview"><span data-lang="zh-CN">技能概述</span><span data-lang="en">Overview</span></a><a href="#metrics"><span data-lang="zh-CN">总览指标</span><span data-lang="en">Metrics</span></a><a href="#capability"><span data-lang="zh-CN">能力画像</span><span data-lang="en">Profile</span></a><a href="#principle"><span data-lang="zh-CN">原理结构</span><span data-lang="en">Principle</span></a><a href="#contract"><span data-lang="zh-CN">契约边界</span><span data-lang="en">Contract</span></a><a href="#quality"><span data-lang="zh-CN">质量评估</span><span data-lang="en">Quality</span></a><a href="#risk"><span data-lang="zh-CN">风险治理</span><span data-lang="en">Risk</span></a><a href="#assets"><span data-lang="zh-CN">包体资产</span><span data-lang="en">Assets</span></a><a href="#roadmap"><span data-lang="zh-CN">迭代路线</span><span data-lang="en">Roadmap</span></a></nav>
</div>
<div class="language-switch" aria-label="语言切换"><button type="button" data-set-lang="zh-CN" aria-pressed="true">简体</button><button type="button" data-set-lang="en" aria-pressed="false">EN</button></div>
</div>
</header>
<main id="main-content" class="wrap">
<section class="hero" aria-labelledby="report-title">
<div class="hero-grid">
<div>
<p class="eyebrow"><span data-lang="zh-CN">YAO Skill 生成审计报告</span><span data-lang="en">YAO Skill Generation Audit</span></p>
<p class="slug">geo-content-brief-skill</p>
<h1 id="report-title"><span data-lang="zh-CN">技能审计报告</span><span data-lang="en">Geo Content Brief Skill Audit Report</span></h1>
<p class="lead"><span data-lang="zh-CN">这份报告默认使用中文简体,把新 Skill 的定位、指标、原理、契约、质量、风险、资产和迭代路线整理为一份可审计的 HTML 报告。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></p>
<div class="hero-meta"><span><span data-lang="zh-CN">技能名称:geo-content-brief-skill</span><span data-lang="en">Skill name: geo-content-brief-skill</span></span><span><span data-lang="zh-CN">成熟度:生产</span><span data-lang="en">Maturity: production</span></span><span><span data-lang="zh-CN">格式:Agent Skills</span><span data-lang="en">Format: agent-skills</span></span><span><span data-lang="zh-CN">更新时间:2026-06-15</span><span data-lang="en">Updated: 2026-06-15</span></span></div>
<div class="badges"><span><span data-lang="zh-CN">openai</span><span data-lang="en">openai</span></span><span><span data-lang="zh-CN">claude</span><span data-lang="en">claude</span></span><span><span data-lang="zh-CN">generic</span><span data-lang="en">generic</span></span><span><span data-lang="zh-CN">vscode</span><span data-lang="en">vscode</span></span></div>
</div>
<aside class="hero-card">
<h3><span data-lang="zh-CN">核心判断</span><span data-lang="en">Core reading</span></h3>
<ul class="list"><li><span data-lang="zh-CN">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span><span data-lang="en">Turn one-off experience into a reusable, evaluable, and portable skill package.</span></li><li><span data-lang="zh-CN">Skill 作者、复用团队和后续 reviewer。</span><span data-lang="en">Skill authors, reuse teams, and later reviewers.</span></li><li><span data-lang="zh-CN">创建完成后建议先打开 reports/skill-overview.html,再继续扩展包体。</span><span data-lang="en">After creation, open reports/skill-overview.html before expanding the package further.</span></li></ul>
</aside>
</div>
<div class="score-strip" aria-label="报告关键指标"><article class='score-chip'><span><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>92</strong><i style='--score:92%'></i><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>60</strong><i style='--score:60%'></i><small><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>78</strong><i style='--score:78%'></i><small><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">Entrypoint is about 864 words/characters; references are about 565.</span></small></article></div>
</section>
<section id="overview">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">技能概述</span><span data-lang="en">Overview</span></h2>
<p><span data-lang="zh-CN">先用一屏说明这个 Skill 是什么、给谁用、交付什么。</span><span data-lang="en">A first-screen explanation of what this skill is, who it serves, and what it delivers.</span></p>
</div>
<div class="two-col">
<article class="panel">
<h3><span data-lang="zh-CN">作用定位</span><span data-lang="en">Role</span></h3>
<ul class="list"><li><span data-lang="zh-CN">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span><span data-lang="en">Turn one-off experience into a reusable, evaluable, and portable skill package.</span></li><li><span data-lang="zh-CN">交付结果:SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/conformance_matrix.md, reports/security_trust_report.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-interpretation.html, reports/skill-overview.html</span><span data-lang="en">Deliverables: SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/conformance_matrix.md, reports/security_trust_report.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-interpretation.html, reports/skill-overview.html</span></li></ul>
</article>
<figure class="chart-figure" data-chart="flow"><svg viewBox="0 0 620 170" role="img" aria-label="交付流程"><text data-lang="zh-CN" x="20" y="28" class="chart-title">交付流程</text><text data-lang="en" x="20" y="28" class="chart-title">Delivery Flow</text><path d="M188 93 H248 M398 93 H458" class="chart-line"/><g><rect x="38" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="113" y="99" text-anchor="middle">输入材料</text><text data-lang="en" x="113" y="99" text-anchor="middle">Input material</text></g><g><rect x="248" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="323" y="99" text-anchor="middle">Skill 包体</text><text data-lang="en" x="323" y="99" text-anchor="middle">Skill package</text></g><g><rect x="458" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="533" y="99" text-anchor="middle">可复用能力</text><text data-lang="en" x="533" y="99" text-anchor="middle">Reusable capability</text></g></svg><figcaption><span data-lang="zh-CN">交付流程把用户输入、生成的包体和可复用能力放在一条线上。</span><span data-lang="en">The delivery flow places user input, generated package, and reusable capability on one path.</span></figcaption></figure>
</div>
</div>
</section>
<section id="metrics">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">总览指标</span><span data-lang="en">Metrics</span></h2>
<p><span data-lang="zh-CN">分数来自本地文件和 reports 证据,缺失时明确标为证据不足。</span><span data-lang="en">Scores are derived from package files and reports; missing inputs are shown as evidence gaps.</span></p>
</div>
<article class="panel metrics-note">
<h3><span data-lang="zh-CN">指标判读</span><span data-lang="en">Reading</span></h3>
<p><span data-lang="zh-CN">先看雷达图判断能力短板,再看每项分数的证据原因。分数不是装饰数字,必须和本地文件、reports 证据或证据不足提示对应。</span><span data-lang="en">Read the radar first for weak spots, then inspect each score with its evidence. Scores must map to local files, reports, or explicit evidence gaps.</span></p>
</article>
</div>
<div class="section-body metrics-report">
<div class="metrics-flow">
<div class="metrics-primary">
<figure class="chart-figure" data-chart="radar"><svg viewBox="0 0 300 300" role="img" aria-label="评分雷达"><text data-lang="zh-CN" x="20" y="28" class="chart-title">评分雷达</text><text data-lang="en" x="20" y="28" class="chart-title">Rating Radar</text><polygon points="150.0,127.0 171.9,142.9 163.5,168.6 136.5,168.6 128.1,142.9" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,104.0 193.7,135.8 177.0,187.2 123.0,187.2 106.3,135.8" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,81.0 215.6,128.7 190.6,205.8 109.4,205.8 84.4,128.7" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,58.0 237.5,121.6 204.1,224.4 95.9,224.4 62.5,121.6" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,65.4 237.5,121.6 182.4,194.7 104.0,213.3 62.5,121.6" fill="#E4ECF5" stroke="#1B365D" stroke-width="2"/><text data-lang="zh-CN" x="150.0" y="26.0" text-anchor="middle" dominant-baseline="middle">完整度</text><text data-lang="en" x="150.0" y="26.0" text-anchor="middle" dominant-baseline="middle">Completeness</text><text data-lang="zh-CN" x="267.9" y="111.7" text-anchor="middle" dominant-baseline="middle">触发清晰</text><text data-lang="en" x="267.9" y="111.7" text-anchor="middle" dominant-baseline="middle">Trigger clarity</text><text data-lang="zh-CN" x="222.9" y="250.3" text-anchor="middle" dominant-baseline="middle">证据充分</text><text data-lang="en" x="222.9" y="250.3" text-anchor="middle" dominant-baseline="middle">Evidence depth</text><text data-lang="zh-CN" x="77.1" y="250.3" text-anchor="middle" dominant-baseline="middle">可维护性</text><text data-lang="en" x="77.1" y="250.3" text-anchor="middle" dominant-baseline="middle">Maintainability</text><text data-lang="zh-CN" x="32.1" y="111.7" text-anchor="middle" dominant-baseline="middle">可迁移性</text><text data-lang="en" x="32.1" y="111.7" text-anchor="middle" dominant-baseline="middle">Portability</text></svg><figcaption><span data-lang="zh-CN">评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。</span><span data-lang="en">The radar chart compares completeness, trigger clarity, evidence, maintainability, and portability.</span></figcaption></figure>
<article class="panel metrics-note metrics-summary-panel">
<h3><span data-lang="zh-CN">成熟度条</span><span data-lang="en">Maturity Bar</span></h3>
<ol class='metric-summary-list'><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></b><em>92</em><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></b><em>100</em><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">关注</span><span data-lang="en">Watch</span></span><b><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></b><em>60</em><small><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></b><em>85</em><small><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md is about 864 words/characters.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></b><em>100</em><small><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">可用</span><span data-lang="en">Usable</span></span><b><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></b><em>78</em><small><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">Entrypoint is about 864 words/characters; references are about 565.</span></small></li></ol>
</article>
</div>
<div class="metric-grid metric-detail-grid"><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>92</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></li><li><span data-lang="zh-CN">README.md 已存在,便于人工阅读。</span><span data-lang="en">README.md exists for human-readable usage.</span></li><li><span data-lang="zh-CN">agents/interface.yaml 已存在,便于跨平台适配。</span><span data-lang="en">agents/interface.yaml exists for cross-platform adaptation.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></li><li><span data-lang="zh-CN">description 有足够长度说明任务边界。</span><span data-lang="en">The description is long enough to explain the task boundary.</span></li><li><span data-lang="zh-CN">description 已包含使用场景或排除边界信号。</span><span data-lang="en">The description includes usage-scenario or exclusion-boundary signals.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>60</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></li><li><span data-lang="zh-CN">skill-ir.json 已存在。</span><span data-lang="en">skill-ir.json exists.</span></li><li><span data-lang="zh-CN">compiled_targets.json 已存在。</span><span data-lang="en">compiled_targets.json exists.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></span><strong>85</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md is about 864 words/characters.</span></li><li><span data-lang="zh-CN">入口文件保持克制,可维护性较好。</span><span data-lang="en">The entrypoint stays restrained, which supports maintainability.</span></li><li><span data-lang="zh-CN">references/ 已承载扩展指导。</span><span data-lang="en">references/ carries extended guidance.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></li><li><span data-lang="zh-CN">manifest.json 已存在。</span><span data-lang="en">manifest.json exists.</span></li><li><span data-lang="zh-CN">目标平台或 adapter target 已声明。</span><span data-lang="en">Target platforms or adapter targets are declared.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>78</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">Entrypoint is about 864 words/characters; references are about 565.</span></li><li><span data-lang="zh-CN">分数越高代表上下文成本越低。</span><span data-lang="en">A higher score means lower context cost.</span></li><li><span data-lang="zh-CN">上下文成本处于可控区间。</span><span data-lang="en">Context cost is within a controlled range.</span></li></ul></div></article></div>
</div>
</div>
</section>
<section id="capability">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">能力画像</span><span data-lang="en">Capability</span></h2>
<p><span data-lang="zh-CN">判断这个 Skill 在能力地图中的位置和复用范围。</span><span data-lang="en">Places this skill on a capability map and clarifies reuse scope.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="matrix"><svg viewBox="0 0 520 460" role="img" aria-label="能力矩阵"><text data-lang="zh-CN" x="20" y="30" class="chart-title">能力矩阵</text><text data-lang="en" x="20" y="30" class="chart-title">Capability Matrix</text><rect x="70" y="70" width="380" height="320" fill="#faf9f5" stroke="#e8e6dc"/><line x1="260" y1="70" x2="260" y2="390" stroke="#e8e6dc"/><line x1="70" y1="230" x2="450" y2="230" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="424" text-anchor="middle">执行确定性</text><text data-lang="en" x="260" y="424" text-anchor="middle">Execution certainty</text><text data-lang="zh-CN" x="22" y="230" transform="rotate(-90 22 230)" text-anchor="middle">知识密度</text><text data-lang="en" x="22" y="230" transform="rotate(-90 22 230)" text-anchor="middle">Knowledge density</text><circle cx="343.6" cy="174.0" r="12" fill="#1B365D"/><text data-lang="zh-CN" x="361.6" y="179.0">Creative generation</text><text data-lang="en" x="361.6" y="179.0">Creative generation</text></svg><figcaption><span data-lang="zh-CN">能力矩阵说明这个 Skill 更偏知识密集还是执行确定。</span><span data-lang="en">The capability matrix shows whether the skill leans toward knowledge density or execution certainty.</span></figcaption></figure>
<article class="panel">
<h3><span data-lang="zh-CN">画像摘要</span><span data-lang="en">Profile</span></h3>
<ul class="list"><li><span data-lang="zh-CN">能力类型:Creative generation</span><span data-lang="en">Capability type: Creative generation</span></li><li><span data-lang="zh-CN">成熟度:production</span><span data-lang="en">Maturity: production</span></li><li><span data-lang="zh-CN">触发强度:手动触发 + description 路由</span><span data-lang="en">Trigger strength: Manual activation plus description-based routing</span></li><li><span data-lang="zh-CN">复用范围:跨平台</span><span data-lang="en">Reuse scope: Cross-platform</span></li></ul>
</article>
</div>
</div>
</section>
<section id="principle">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">原理结构</span><span data-lang="en">Principle</span></h2>
<p><span data-lang="zh-CN">说明入口、参考、脚本、评估和报告如何组成一个稳定闭环。</span><span data-lang="en">Explains how entrypoint, references, scripts, evals, and reports form a stable loop.</span></p>
</div>
<div>
<div class="chart-grid"><figure class="chart-figure" data-chart="layers"><svg viewBox="0 0 520 320" role="img" aria-label="Skill principle flow"><text data-lang="zh-CN" x="20" y="30" class="chart-title">分层结构</text><text data-lang="en" x="20" y="30" class="chart-title">Layered Structure</text><rect x="70" y="55" width="380" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="77" text-anchor="middle">入口层</text><text data-lang="en" x="260" y="77" text-anchor="middle">Entrypoint layer</text><rect x="88" y="103" width="344" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="125" text-anchor="middle">参考层</text><text data-lang="en" x="260" y="125" text-anchor="middle">Reference layer</text><rect x="106" y="151" width="308" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="173" text-anchor="middle">脚本层</text><text data-lang="en" x="260" y="173" text-anchor="middle">Script layer</text><rect x="124" y="199" width="272" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="221" text-anchor="middle">评估层</text><text data-lang="en" x="260" y="221" text-anchor="middle">Evaluation layer</text><rect x="142" y="247" width="236" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="269" text-anchor="middle">报告层</text><text data-lang="en" x="260" y="269" text-anchor="middle">Report layer</text></svg><figcaption><span data-lang="zh-CN">分层结构展示入口、参考、脚本、评估和报告如何各司其职。</span><span data-lang="en">The layered structure shows how entrypoint, references, scripts, evals, and reports each carry a distinct role.</span></figcaption></figure></div>
<div class="two-col">
<article class="panel">
<h3><span data-lang="zh-CN">执行流程</span><span data-lang="en">Execution Flow</span></h3>
<ol class="step-list"><li><span data-lang="zh-CN">读取用户输入,识别目标受众、内容渠道、关键词、品牌边界、禁止表达和必须覆盖的信息。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">对照 `references/brief-structure.md` 生成简报骨架:目标、洞察、角度、关键词、结构、证据、风险和验收标准。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">如果缺少核心输入,先提出最多三个澄清问题,不用假设补全用户没有提供的事实。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">用 `evals/trigger_cases.jsonl` 检查当前请求是否属于 GEO 内容简报场景。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">用 `evals/output_cases.jsonl` 检查输出是否包含输入摘要、内容结构、证据要求、禁区和下一步动作。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li></ol>
</article>
<article class="panel">
<h3><span data-lang="zh-CN">调用方式</span><span data-lang="en">How To Use</span></h3>
<ol class="step-list"><li><span data-lang="zh-CN">当你需要把访谈纪要、关键词、竞品线索和渠道限制整理成中文 GEO 内容简报时,使用 $geo-content-brief-skill。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">Use this skill when the request matches: 将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span><span data-lang="en">Use this skill when the request matches the frontmatter description.</span></li></ol>
</article>
</div>
</div>
</div>
</section>
<section id="contract">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">契约边界</span><span data-lang="en">Contract</span></h2>
<p><span data-lang="zh-CN">把触发、输入、输出和排除场景放在同一屏。</span><span data-lang="en">Keeps trigger, inputs, outputs, and exclusions on the same screen.</span></p>
</div>
<div class="two-col">
<article class="panel">
<h3><span data-lang="zh-CN">触发描述</span><span data-lang="en">Trigger</span></h3>
<p><span data-lang="zh-CN">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></p>
<h3><span data-lang="zh-CN">输入材料</span><span data-lang="en">Inputs</span></h3>
<ul class="list"><li><span data-lang="zh-CN">用户提供的工作流、提示词、文档、记录或散乱笔记</span><span data-lang="en">User-provided workflows, prompts, documents, records, or rough notes.</span></li><li><span data-lang="zh-CN">期望沉淀的复用场景、排除项、约束和质量标准</span><span data-lang="en">The reusable scenario, exclusions, constraints, and quality standards to capture.</span></li></ul>
</article>
<article class="panel">
<h3><span data-lang="zh-CN">输出结果</span><span data-lang="en">Outputs</span></h3>
<ul class="list"><li><span data-lang="zh-CN">可路由的 SKILL.md</span><span data-lang="en">A routeable SKILL.md.</span></li><li><span data-lang="zh-CN">agents/interface.yaml 元数据</span><span data-lang="en">agents/interface.yaml metadata.</span></li><li><span data-lang="zh-CN">必要的 references、scripts、evals、reports 证据</span><span data-lang="en">Necessary references, scripts, evals, and reports evidence.</span></li><li><span data-lang="zh-CN">结构化 Skill 目录,共 8 类关键资产。</span><span data-lang="en">Structured skill directory with 8 key asset groups.</span></li></ul>
<h3><span data-lang="zh-CN">不应触发</span><span data-lang="en">Should Not Trigger</span></h3>
<ul class="list"><li><span data-lang="zh-CN">只需要一次性回答、没有复用价值的临时请求。</span><span data-lang="en">One-off requests that do not need reusable skill behavior.</span></li><li><span data-lang="zh-CN">要求直接执行相邻任务,而不是沉淀或使用这个 Skill。</span><span data-lang="en">Requests to perform an adjacent task directly rather than create or use this skill.</span></li><li><span data-lang="zh-CN">缺少必要事实且用户不允许澄清的场景。</span><span data-lang="en">Cases that lack required facts and do not allow clarification.</span></li></ul>
</article>
</div>
</div>
</section>
<section id="quality">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">质量评估</span><span data-lang="en">Quality</span></h2>
<p><span data-lang="zh-CN">展示强项、缺口和建议,避免只给分不解释。</span><span data-lang="en">Shows strengths, gaps, and recommendations instead of scores without explanation.</span></p>
</div>
<div>
<table>
<thead><tr><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th><th><span data-lang="zh-CN">证据</span><span data-lang="en">Evidence</span></th><th><span data-lang="zh-CN">建议</span><span data-lang="en">Action</span></th></tr></thead>
<tbody><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">触发面保持精简,并锚定在 frontmatter description。</span><span data-lang="en">The trigger surface stays lean and anchored in the frontmatter description.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成 Skill IR,核心语义可先于平台打包被审查和迁移。</span><span data-lang="en">Skill IR is generated so core semantics can be reviewed and migrated before platform packaging.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。</span><span data-lang="en">Target compilation evidence is generated to review how IR maps to OpenAI, Claude, generic, and other target contracts.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">缺口</span><span data-lang="en">Gap</span></td><td><span data-lang="zh-CN">证据充分需要补强:已生成 12 / 20 类报告证据。</span><span data-lang="en">Evidence depth needs improvement: Generated 12 / 20 evidence report types.</span></td><td><span data-lang="zh-CN">纳入下一轮修复</span><span data-lang="en">Fix next</span></td></tr></tbody>
</table>
<div class="two-col quality-panels">
<article class="panel">
<h3><span data-lang="zh-CN">执行证据</span><span data-lang="en">Execution Evidence</span></h3>
<ul class="list"><li><span data-lang="zh-CN">尚未生成输出执行证据报告。</span><span data-lang="en">The output execution evidence report has not been generated yet.</span></li></ul>
</article>
<article class="panel">
<h3><span data-lang="zh-CN">盲评审定</span><span data-lang="en">Blind Adjudication</span></h3>
<ul class="list"><li><span data-lang="zh-CN">尚未生成盲评审定报告。</span><span data-lang="en">The blind review adjudication report has not been generated yet.</span></li></ul>
</article>
</div>
<div class="two-col quality-panels">
<article class="panel">
<h3><span data-lang="zh-CN">评审原则</span><span data-lang="en">Review Rule</span></h3>
<ul class="list"><li><span data-lang="zh-CN">先记录 reviewer 对 A/B 的选择,再打开答案 key 计算一致率。</span><span data-lang="en">Record the reviewer&#x27;s A/B choice before opening the answer key and calculating agreement.</span></li><li><span data-lang="zh-CN">缺少真实 reviewer 决策时只显示待评审,不伪造人工结论。</span><span data-lang="en">When real reviewer decisions are missing, show pending status instead of fabricating human conclusions.</span></li></ul>
</article>
<article class="panel">
<h3><span data-lang="zh-CN">运行原则</span><span data-lang="en">Run Rule</span></h3>
<ul class="list"><li><span data-lang="zh-CN">recorded fixture 只能证明可复现样本,不等同于模型执行。</span><span data-lang="en">A recorded fixture proves reproducible samples only; it is not model execution.</span></li><li><span data-lang="zh-CN">只有 provider runner 返回 model metadata 时才计入 model-executed。</span><span data-lang="en">Only provider runners that return model metadata count as model-executed.</span></li></ul>
</article>
</div>
</div>
</div>
</section>
<section id="risk">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">风险治理</span><span data-lang="en">Risk</span></h2>
<p><span data-lang="zh-CN">提前暴露误触发、漂移、证据不足和迁移风险。</span><span data-lang="en">Surfaces trigger, drift, evidence, and portability risks before the package grows.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="risk_heatmap"><svg viewBox="0 0 380 300" role="img" aria-label="风险热力"><text data-lang="zh-CN" x="20" y="30" class="chart-title">风险热力</text><text data-lang="en" x="20" y="30" class="chart-title">Risk Heatmap</text><rect x="80" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="119" y="224" text-anchor="middle">0</text><rect x="166" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="205" y="224" text-anchor="middle">0</text><rect x="252" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="224" text-anchor="middle">0</text><rect x="80" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="119" y="158" text-anchor="middle">0</text><rect x="166" y="124" width="78" height="58" rx="6" fill="#D0DCE9" stroke="#e8e6dc"/><text x="205" y="158" text-anchor="middle">2</text><rect x="252" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="158" text-anchor="middle">0</text><rect x="80" y="58" width="78" height="58" rx="6" fill="#D0DCE9" stroke="#e8e6dc"/><text x="119" y="92" text-anchor="middle">2</text><rect x="166" y="58" width="78" height="58" rx="6" fill="#EEF2F7" stroke="#e8e6dc"/><text x="205" y="92" text-anchor="middle">1</text><rect x="252" y="58" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="92" text-anchor="middle">0</text><text data-lang="zh-CN" x="210" y="278" text-anchor="middle">发生概率</text><text data-lang="en" x="210" y="278" text-anchor="middle">Probability</text><text data-lang="zh-CN" x="24" y="160" transform="rotate(-90 24 160)" text-anchor="middle">影响程度</text><text data-lang="en" x="24" y="160" transform="rotate(-90 24 160)" text-anchor="middle">Impact</text></svg><figcaption><span data-lang="zh-CN">风险热力图用影响程度和发生概率标出当前治理重点。</span><span data-lang="en">The risk heatmap marks governance priorities by impact and probability.</span></figcaption></figure>
<div>
<table>
<thead><tr><th><span data-lang="zh-CN">风险</span><span data-lang="en">Risk</span></th><th><span data-lang="zh-CN">信号</span><span data-lang="en">Signal</span></th><th><span data-lang="zh-CN">应对</span><span data-lang="en">Response</span></th></tr></thead>
<tbody><tr><td><span data-lang="zh-CN">误触发风险</span><span data-lang="en">Trigger risk</span></td><td><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">输出漂移风险</span><span data-lang="en">Output drift risk</span></td><td><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">证据不足风险</span><span data-lang="en">Evidence gap risk</span></td><td><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">包体膨胀风险</span><span data-lang="en">Package bloat risk</span></td><td><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md is about 864 words/characters.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">跨平台迁移风险</span><span data-lang="en">Portability risk</span></td><td><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr></tbody>
</table>
</div>
</div>
<article class='panel world-readiness'><div class='world-readiness-head'><div><h3><span data-lang="zh-CN">世界证据</span><span data-lang="en">World Evidence</span></h3><p><span data-lang="zh-CN">未生成 world-class ledger;当前报告不会宣称世界级完成。</span><span data-lang="en">No world-class ledger was generated; this report does not claim world-class completion.</span></p></div><span class='world-status'><span data-lang="zh-CN">证据待补</span><span data-lang="en">Evidence pending</span></span></div><div class='evidence-kpis'><article class='evidence-kpi'><span><span data-lang="zh-CN">待补证据</span><span data-lang="en">Pending</span></span><strong>0</strong><small><span data-lang="zh-CN">仍需外部或人工证据接受。</span><span data-lang="en">External or human evidence still needs acceptance.</span></small></article><article class='evidence-kpi'><span><span data-lang="zh-CN">已接受</span><span data-lang="en">Accepted</span></span><strong>0</strong><small><span data-lang="zh-CN">已通过 source check 与提交契约。</span><span data-lang="en">Passed source checks and submission contract.</span></small></article><article class='evidence-kpi'><span><span data-lang="zh-CN">源检查</span><span data-lang="en">Source Checks</span></span><strong>0 / 0</strong><small><span data-lang="zh-CN">通过数 / 总检查数。</span><span data-lang="en">Passed checks / total checks.</span></small></article></div><div class='evidence-list'><article class='evidence-item empty'><p><span data-lang="zh-CN">尚未生成 world-class ledger;这里只保留反过度承诺提示。</span><span data-lang="en">No world-class ledger has been generated; this panel keeps the anti-overclaim guard visible.</span></p></article></div></article>
</div>
</section>
<section id="assets">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">包体资产</span><span data-lang="en">Assets</span></h2>
<p><span data-lang="zh-CN">让 reviewer 快速确认关键文件、目录和资产分布。</span><span data-lang="en">Lets reviewers confirm key files, directories, and asset distribution quickly.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-14.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-28.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-42.9" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="28.6 71.4" stroke-dashoffset="-57.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-85.7" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">42项</text><text data-lang="en" x="130" y="136" text-anchor="middle">42 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
<table>
<thead><tr><th><span data-lang="zh-CN">路径</span><span data-lang="en">Path</span></th><th><span data-lang="zh-CN">作用</span><span data-lang="en">Role</span></th><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th></tr></thead>
<tbody><tr><td>SKILL.md</td><td><span data-lang="zh-CN">Skill 入口文件</span><span data-lang="en">Skill entrypoint</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>README.md</td><td><span data-lang="zh-CN">人类可读使用说明</span><span data-lang="en">Human-readable usage guide</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>agents/interface.yaml</td><td><span data-lang="zh-CN">跨平台接口元数据</span><span data-lang="en">Neutral interface metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>manifest.json</td><td><span data-lang="zh-CN">生命周期与打包元数据</span><span data-lang="en">Lifecycle and portability metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>references</td><td><span data-lang="zh-CN">扩展指导与复用资料</span><span data-lang="en">Extended guidance and reusable notes</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>scripts</td><td><span data-lang="zh-CN">确定性脚本或本地工具</span><span data-lang="en">Deterministic helpers or local tooling</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>evals</td><td><span data-lang="zh-CN">触发与质量检查</span><span data-lang="en">Trigger and quality checks</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>reports</td><td><span data-lang="zh-CN">生成的证据与总结报告</span><span data-lang="en">Generated evidence and overview artifacts</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr></tbody>
</table>
</div>
</div>
</section>
<section id="roadmap">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">迭代路线</span><span data-lang="en">Roadmap</span></h2>
<p><span data-lang="zh-CN">把下一步升级收束为少数高价值动作。</span><span data-lang="en">Keeps next iteration moves focused and actionable.</span></p>
</div>
<div>
<div class="chart-grid"><figure class="chart-figure" data-chart="timeline"><svg viewBox="0 0 520 210" role="img" aria-label="迭代时间"><text data-lang="zh-CN" x="20" y="30" class="chart-title">迭代时间</text><text data-lang="en" x="20" y="30" class="chart-title">Iteration Timeline</text><line x1="60" y1="92" x2="440" y2="92" class="chart-line"/><circle cx="60" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="60" y="126" text-anchor="middle">下一步 1</text><text data-lang="en" x="60" y="126" text-anchor="middle">Next 1</text><text data-lang="zh-CN" x="60" y="150" text-anchor="middle">Tighten trigger a…</text><text data-lang="en" x="60" y="150" text-anchor="middle">Tighten trigger a…</text><circle cx="250" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="250" y="126" text-anchor="middle">下一步 2</text><text data-lang="en" x="250" y="126" text-anchor="middle">Next 2</text><text data-lang="zh-CN" x="250" y="150" text-anchor="middle">Add the first exe…</text><text data-lang="en" x="250" y="150" text-anchor="middle">Add the first exe…</text><circle cx="440" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="440" y="126" text-anchor="middle">下一步 3</text><text data-lang="en" x="440" y="126" text-anchor="middle">Next 3</text><text data-lang="zh-CN" x="440" y="150" text-anchor="middle">Promote from scaf…</text><text data-lang="en" x="440" y="150" text-anchor="middle">Promote from scaf…</text></svg><figcaption><span data-lang="zh-CN">迭代时间线把下一步升级收束成少数可执行动作。</span><span data-lang="en">The iteration timeline narrows the next upgrade into a few executable moves.</span></figcaption></figure></div>
<div class="roadmap"><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 1</span><span data-lang="en">Next 1</span></span><h3><span data-lang="zh-CN">收紧触发与排除边界</span><span data-lang="en">Tighten trigger and exclusions</span></h3><p><span data-lang="zh-CN">在继续扩展前,需要先把相邻但不应触发的场景说清楚。</span><span data-lang="en">The package needs clearer near-neighbor exclusions before it grows.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">增加 3 到 5 个应触发和不应触发的例子。</span><span data-lang="en">Add 3 to 5 should-trigger and should-not-trigger examples.</span></li><li><span data-lang="zh-CN">精炼 frontmatter description,明确重复任务和非目标。</span><span data-lang="en">Refine the frontmatter description to name the recurring job and non-goals.</span></li><li><span data-lang="zh-CN">扩展包体前先跑一轮触发评估。</span><span data-lang="en">Run a first trigger evaluation pass before expanding the package.</span></li></ul><p class='unlock'><span data-lang="zh-CN">路由更清晰,误触发更少。</span><span data-lang="en">Cleaner routing and fewer accidental activations.</span></p></article><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 2</span><span data-lang="en">Next 2</span></span><h3><span data-lang="zh-CN">补上第一个执行资产</span><span data-lang="en">Add the first execution asset</span></h3><p><span data-lang="zh-CN">当前包体仍偏文本说明,应先增加一个能减少重复人工操作的资产。</span><span data-lang="en">The package is still mostly prose. Add one asset that removes repeated manual work.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">如果用户会反复使用某段流程说明,把它沉淀到 references。</span><span data-lang="en">Move stable procedural guidance into references if users will need it repeatedly.</span></li><li><span data-lang="zh-CN">如果某个重复步骤可以执行而不是描述,就沉淀成一个确定性 helper script。</span><span data-lang="en">Create one deterministic helper script if a repeated step can be executed instead of described.</span></li><li><span data-lang="zh-CN">保持主 SKILL.md 简洁,并围绕路由与入口组织。</span><span data-lang="en">Keep the main SKILL.md compact and route-oriented.</span></li></ul><p class='unlock'><span data-lang="zh-CN">在不膨胀入口文件的前提下提升执行质量。</span><span data-lang="en">Stronger execution quality without bloating the entrypoint.</span></p></article><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 3</span><span data-lang="en">Next 3</span></span><h3><span data-lang="zh-CN">从脚手架推进到生产可用</span><span data-lang="en">Promote from scaffold to production-ready</span></h3><p><span data-lang="zh-CN">第一版已经存在,下一步收益通常来自补上最小但有效的质量门禁。</span><span data-lang="en">The first version exists; the next gain usually comes from adding the smallest useful gates.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">判断这个 Skill 是个人使用、团队复用,还是库级基础能力。</span><span data-lang="en">Decide whether this skill is personal, team-reused, or library-grade.</span></li><li><span data-lang="zh-CN">只添加与风险等级匹配的质量门禁。</span><span data-lang="en">Add only the gates that match that risk level.</span></li><li><span data-lang="zh-CN">一旦进入真实复用,就记录生命周期元数据和评审节奏。</span><span data-lang="en">Record lifecycle metadata and review cadence once reuse becomes real.</span></li></ul><p class='unlock'><span data-lang="zh-CN">更清晰地从探索性包体走向可维护资产。</span><span data-lang="en">A clearer path from exploratory package to maintained asset.</span></p></article></div>
</div>
</div>
</section>
</main>
<script>
(function () {
var buttons = Array.prototype.slice.call(document.querySelectorAll("[data-set-lang]"));
var navLinks = Array.prototype.slice.call(document.querySelectorAll(".report-nav a"));
var sections = navLinks
.map(function (link) { return document.querySelector(link.getAttribute("href")); })
.filter(Boolean);
var progressBar = document.querySelector(".progress-bar");
function setLanguage(lang) {
document.body.setAttribute("data-report-lang", lang);
document.documentElement.setAttribute("lang", lang);
buttons.forEach(function (button) {
button.setAttribute("aria-pressed", button.getAttribute("data-set-lang") === lang ? "true" : "false");
});
}
function updateProgress() {
var scrollTop = window.scrollY || document.documentElement.scrollTop;
var height = Math.max(1, document.documentElement.scrollHeight - window.innerHeight);
var pct = Math.min(100, Math.max(0, (scrollTop / height) * 100));
if (progressBar) progressBar.style.transform = "scaleX(" + pct / 100 + ")";
var active = sections[0];
sections.forEach(function (section) {
if (section.getBoundingClientRect().top <= 110) active = section;
});
navLinks.forEach(function (link) {
link.setAttribute("aria-current", link.getAttribute("href") === "#" + active.id ? "true" : "false");
});
}
buttons.forEach(function (button) {
button.addEventListener("click", function () {
setLanguage(button.getAttribute("data-set-lang"));
});
});
window.addEventListener("scroll", updateProgress, { passive: true });
window.addEventListener("resize", updateProgress);
setLanguage("zh-CN");
updateProgress();
})();
</script>
</body>
</html>
@@ -0,0 +1,166 @@
{
"skill_name": "geo-content-brief-skill",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"systems_doctrine": "Structure drives behavior: improve the boundary, feedback loops, drift watch, and leverage points before adding weight.",
"stability": {
"score": 77,
"band": "stable-first-pass"
},
"boundary_map": {
"owned_job": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"input_boundary": [
"user-provided workflow notes, prompts, docs, or examples"
],
"output_boundary": "a reusable skill output",
"non_goals": [
"one-off adjacent requests that do not match the recurring job",
"private local material that was not intentionally included"
],
"constraints": [],
"standards": [],
"human_judgment_boundary": [
"Ask one focused clarification when the real job, output, or exclusion boundary is unclear.",
"Escalate visible tradeoffs when benchmark patterns conflict with local privacy, naming, or governance constraints.",
"Do not silently broaden the skill into adjacent jobs just because the examples are nearby."
],
"maturity_assumption": "scaffold"
},
"feedback_loops": [
{
"name": "Intent boundary loop",
"signal": "Intent confidence score is 10/100.",
"response": "Ask only the highest-leverage clarification before adding package weight.",
"evidence": "reports/intent-confidence.md and reports/intent-dialogue.md"
},
{
"name": "Reference synthesis loop",
"signal": "Benchmark patterns are useful only after they are abstracted into borrow and avoid guidance.",
"response": "Borrow one pattern at a time and keep the rest as reviewer-visible evidence.",
"evidence": "reports/reference-synthesis.md",
"current_patterns": [
"Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.",
"Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.",
"Borrow the discipline of defining what the skill should not own before growing the package.",
"Do not let packaging or platform concerns swallow the core job boundary.",
"Do not create experimental overhead that exceeds the skill's real risk tier."
]
},
{
"name": "Output quality loop",
"signal": "Generated output may fail in recurring domain-specific ways.",
"response": "Apply predicted output-risk families as self-repair checks before final output.",
"evidence": "reports/output-risk-profile.md",
"current_risk_families": [
"Markdown readability",
"Screenshot and visual capture",
"Citation and footnote clutter",
"Tone and specificity",
"Tutorial quality"
]
},
{
"name": "Reviewer feedback loop",
"signal": "Human review catches drift that static checks miss.",
"response": "Capture lightweight feedback and turn repeated findings into gates or references.",
"evidence": "reports/review-viewer.html and feedback records"
},
{
"name": "Lifecycle loop",
"signal": "As reuse grows, the skill needs stronger gates, ownership, and regression evidence.",
"response": "Promote only when the next gate improves reliability more than context cost.",
"evidence": "manifest.json, reports/iteration-directions.md, and governance checks"
}
],
"drift_watch": [
{
"name": "Trigger drift",
"watch_signal": "Users start invoking the skill for adjacent one-off or explanation-only requests.",
"countermeasure": "Add near-neighbor exclusions and route evals before expanding workflow steps.",
"cadence": "per trigger or description change"
},
{
"name": "Output drift",
"watch_signal": "Outputs remain valid but become generic, cluttered, or weakly aligned with the user's domain.",
"countermeasure": "Refresh output-risk and artifact-design profiles, then add one self-repair check.",
"cadence": "after the first 3-5 real uses",
"risk_families": [
"Markdown readability",
"Screenshot and visual capture",
"Citation and footnote clutter",
"Tone and specificity",
"Tutorial quality"
]
},
{
"name": "Reference drift",
"watch_signal": "Borrowed benchmark patterns no longer fit the local job or add ceremony without payoff.",
"countermeasure": "Re-run reference synthesis and keep only patterns that improve the current boundary.",
"cadence": "per material benchmark or product assumption change"
},
{
"name": "Governance drift",
"watch_signal": "Skill usage becomes team-critical while ownership, review cadence, or rollback evidence stays informal.",
"countermeasure": "Promote maturity tier and add reviewer-visible lifecycle evidence.",
"cadence": "when reuse becomes real"
}
],
"failure_pattern_map": [
{
"family": "Boundary failure",
"symptom": "The skill handles nearby requests that were never part of the recurring job.",
"repair": "Narrow the description and add explicit non-goals before adding more execution steps."
},
{
"family": "Feedback gap",
"symptom": "The skill has rules but no signal telling authors which rule should change after use.",
"repair": "Turn repeated reviewer feedback into one eval, one reference note, or one self-repair check."
},
{
"family": "Output degradation",
"symptom": "The result is structurally correct but generic, cluttered, or weakly matched to the user's domain.",
"repair": "Use output-risk families as pre-final checks.",
"current_risk_families": [
"Markdown readability",
"Screenshot and visual capture",
"Citation and footnote clutter",
"Tone and specificity",
"Tutorial quality"
]
},
{
"family": "Prompt-behavior mismatch",
"symptom": "The role, task, and format are copied from a prompt instead of becoming stable skill behavior.",
"repair": "Convert reusable role/task/format assumptions into workflow, reports, or references.",
"watch_axes": [
"Specificity"
]
}
],
"leverage_points": [
{
"rank": 1,
"point": "Clarify the real job boundary",
"why": "Intent uncertainty creates downstream trigger, output, and governance errors.",
"move": "Ask one focused question and update intent context before adding assets."
},
{
"rank": 2,
"point": "Tune the frontmatter description",
"why": "The description is the highest-leverage routing surface.",
"move": "Name the recurring job, expected input, output, and strongest non-goal in compact language."
},
{
"rank": 3,
"point": "Install output self-repair checks",
"why": "The likely failure families are: Markdown readability, Screenshot and visual capture, Citation and footnote clutter.",
"move": "Add only the checks that prevent recurring output mistakes."
},
{
"rank": 4,
"point": "Borrow one pattern, not a whole product",
"why": "External references improve quality when reduced to structure, not copied as surface style.",
"move": "Start from: Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts."
}
],
"reviewer_rule": "Reviewer should ask whether the skill's structure will keep producing the desired behavior after repeated real use."
}
@@ -0,0 +1,156 @@
# System Model
Skill: `geo-content-brief-skill`
- Stability score: `77/100`
- Stability band: `stable-first-pass`
- Doctrine: Structure drives behavior: improve the boundary, feedback loops, drift watch, and leverage points before adding weight.
## System Boundary Map
- Owned job: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
- Output boundary: a reusable skill output
- Maturity assumption: `scaffold`
- Input boundary:
- user-provided workflow notes, prompts, docs, or examples
- Non-goals:
- one-off adjacent requests that do not match the recurring job
- private local material that was not intentionally included
- Human judgment boundary:
- Ask one focused clarification when the real job, output, or exclusion boundary is unclear.
- Escalate visible tradeoffs when benchmark patterns conflict with local privacy, naming, or governance constraints.
- Do not silently broaden the skill into adjacent jobs just because the examples are nearby.
## Feedback Loops
### Intent boundary loop
- Signal: Intent confidence score is 10/100.
- Response: Ask only the highest-leverage clarification before adding package weight.
- Evidence: reports/intent-confidence.md and reports/intent-dialogue.md
### Reference synthesis loop
- Signal: Benchmark patterns are useful only after they are abstracted into borrow and avoid guidance.
- Response: Borrow one pattern at a time and keep the rest as reviewer-visible evidence.
- Evidence: reports/reference-synthesis.md
- Current patterns:
- Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.
- Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.
- Borrow the discipline of defining what the skill should not own before growing the package.
- Do not let packaging or platform concerns swallow the core job boundary.
- Do not create experimental overhead that exceeds the skill's real risk tier.
### Output quality loop
- Signal: Generated output may fail in recurring domain-specific ways.
- Response: Apply predicted output-risk families as self-repair checks before final output.
- Evidence: reports/output-risk-profile.md
- Current risk families:
- Markdown readability
- Screenshot and visual capture
- Citation and footnote clutter
- Tone and specificity
- Tutorial quality
### Reviewer feedback loop
- Signal: Human review catches drift that static checks miss.
- Response: Capture lightweight feedback and turn repeated findings into gates or references.
- Evidence: reports/review-viewer.html and feedback records
### Lifecycle loop
- Signal: As reuse grows, the skill needs stronger gates, ownership, and regression evidence.
- Response: Promote only when the next gate improves reliability more than context cost.
- Evidence: manifest.json, reports/iteration-directions.md, and governance checks
## Delay And Drift Watch
### Trigger drift
- Watch signal: Users start invoking the skill for adjacent one-off or explanation-only requests.
- Countermeasure: Add near-neighbor exclusions and route evals before expanding workflow steps.
- Cadence: per trigger or description change
### Output drift
- Watch signal: Outputs remain valid but become generic, cluttered, or weakly aligned with the user's domain.
- Countermeasure: Refresh output-risk and artifact-design profiles, then add one self-repair check.
- Cadence: after the first 3-5 real uses
- Risk families:
- Markdown readability
- Screenshot and visual capture
- Citation and footnote clutter
- Tone and specificity
- Tutorial quality
### Reference drift
- Watch signal: Borrowed benchmark patterns no longer fit the local job or add ceremony without payoff.
- Countermeasure: Re-run reference synthesis and keep only patterns that improve the current boundary.
- Cadence: per material benchmark or product assumption change
### Governance drift
- Watch signal: Skill usage becomes team-critical while ownership, review cadence, or rollback evidence stays informal.
- Countermeasure: Promote maturity tier and add reviewer-visible lifecycle evidence.
- Cadence: when reuse becomes real
## Failure Pattern Map
### Boundary failure
- Symptom: The skill handles nearby requests that were never part of the recurring job.
- Repair: Narrow the description and add explicit non-goals before adding more execution steps.
### Feedback gap
- Symptom: The skill has rules but no signal telling authors which rule should change after use.
- Repair: Turn repeated reviewer feedback into one eval, one reference note, or one self-repair check.
### Output degradation
- Symptom: The result is structurally correct but generic, cluttered, or weakly matched to the user's domain.
- Repair: Use output-risk families as pre-final checks.
- Current Risk Families:
- Markdown readability
- Screenshot and visual capture
- Citation and footnote clutter
- Tone and specificity
- Tutorial quality
### Prompt-behavior mismatch
- Symptom: The role, task, and format are copied from a prompt instead of becoming stable skill behavior.
- Repair: Convert reusable role/task/format assumptions into workflow, reports, or references.
- Watch Axes:
- Specificity
## Highest Leverage Moves
### 1. Clarify the real job boundary
- Why: Intent uncertainty creates downstream trigger, output, and governance errors.
- Move: Ask one focused question and update intent context before adding assets.
### 2. Tune the frontmatter description
- Why: The description is the highest-leverage routing surface.
- Move: Name the recurring job, expected input, output, and strongest non-goal in compact language.
### 3. Install output self-repair checks
- Why: The likely failure families are: Markdown readability, Screenshot and visual capture, Citation and footnote clutter.
- Move: Add only the checks that prevent recurring output mistakes.
### 4. Borrow one pattern, not a whole product
- Why: External references improve quality when reduced to structure, not copied as surface style.
- Move: Start from: Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.
## Reviewer Use
- Reviewer should ask whether the skill's structure will keep producing the desired behavior after repeated real use.
- Prefer changing the system boundary, feedback loop, or leverage point before adding more prose.
- If a problem repeats, convert it into a named failure pattern and one regression check.
+149
View File
@@ -0,0 +1,149 @@
# Agent Instructions
## Project Map
`yao-meta-skill` is the source repository for the Yao Meta Skill / Skill OS. Keep the root `SKILL.md` lean and route depth through the existing project layers:
- `SKILL.md`: public trigger surface, compact workflow, and Skill OS gates.
- `references/`: stable method doctrine and operating guidance.
- `scripts/`: executable logic, report generators, compilers, gates, and CLI entrypoints.
- `evals/`: trigger, output, packaging, semantic, and regression fixtures.
- `skill-ir/`: platform-neutral skill contract and examples.
- `agents/interface.yaml`: portable runtime and trust metadata.
- `security/`: script, dependency, network, permission, and trust policies.
- `registry/`: package metadata, installability evidence, and compatibility metadata.
- `skill_atlas/`: portfolio catalog, route overlap, ownership, stale-skill, and dependency evidence.
- `reports/`: generated review, trust, conformance, registry, overview, and release evidence.
- `docs/`: durable public docs such as migration notes and localized READMEs.
## Verification
Use `make ci-test` as the default full verification command before calling a change done. For focused work, run the smallest relevant target first, then finish with `make ci-test` when generated artifacts, packaging, registry, trust, or report UI changed.
Common focused checks:
- CLI changes: `python3 tests/verify_yao_cli.py`
- Operator UX changes: `python3 tests/verify_operator_ux.py`
- Skill overview report changes: `python3 tests/verify_skill_overview.py`
- Review Studio changes: `python3 tests/verify_review_studio.py`
- Trust or script inventory changes: `python3 tests/verify_trust_check.py`
- Packaging or registry changes: `python3 tests/verify_package_verification.py && python3 tests/verify_registry_audit.py`
After source changes that affect scripts, package contents, trust evidence, Review Studio, registry metadata, or generated reports, refresh the release evidence before final sign-off:
```bash
GENERATED_AT="${GENERATED_AT:-$(date +%F)}"
python3 scripts/run_output_execution.py --runner-command '["python3","scripts/local_output_eval_runner.py"]'
python3 scripts/compile_skill.py . --generated-at "$GENERATED_AT"
python3 scripts/cross_packager.py . --platform openai --platform claude --platform generic --platform vscode --expectations evals/packaging_expectations.json --output-dir dist --zip
python3 scripts/simulate_install.py . --package-dir dist --install-root dist/install-simulation --output-json reports/install_simulation.json --output-md reports/install_simulation.md --generated-at "$GENERATED_AT"
python3 scripts/trust_check.py . --output-json reports/security_trust_report.json --output-md reports/security_trust_report.md
python3 scripts/registry_audit.py . --generated-at "$GENERATED_AT"
python3 scripts/verify_package.py . --package-dir dist --expectations evals/packaging_expectations.json --registry-json reports/registry_audit.json --output-json reports/package_verification.json --output-md reports/package_verification.md --require-zip --generated-at "$GENERATED_AT"
python3 scripts/registry_audit.py . --generated-at "$GENERATED_AT"
python3 scripts/upgrade_check.py . --previous-package-json registry/examples/yao-meta-skill-1.0.0.json --current-package-json reports/registry_audit.json --output-json reports/upgrade_check.json --output-md reports/upgrade_check.md --generated-at "$GENERATED_AT"
python3 scripts/render_adoption_drift_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_architecture_maintainability.py . --generated-at "$GENERATED_AT"
python3 scripts/python_compat_check.py . --generated-at "$GENERATED_AT"
python3 scripts/probe_runtime_permissions.py . --package-dir dist
python3 scripts/render_review_waivers.py . --generated-at "$GENERATED_AT"
python3 scripts/render_review_annotations.py .
python3 scripts/build_skill_atlas.py --workspace-root . --output-dir skill_atlas --report-html reports/skill_atlas.html --report-json reports/skill_atlas.json --today "$GENERATED_AT"
python3 scripts/render_world_class_evidence_plan.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_evidence_ledger.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_evidence_intake.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_submission_review.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_operator_runbook.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_claim_guard.py . --generated-at "$GENERATED_AT"
python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_weekly_curator_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_skill_os2_audit.py . --generated-at "$GENERATED_AT"
python3 scripts/render_skill_os2_coverage.py . --generated-at "$GENERATED_AT"
python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT"
python3 scripts/render_benchmark_reproducibility.py . --generated-at "$GENERATED_AT"
python3 scripts/render_skill_overview.py .
python3 scripts/render_skill_interpretation.py .
python3 scripts/render_review_viewer.py .
python3 scripts/render_world_class_preflight.py . --generated-at "$GENERATED_AT"
python3 scripts/render_review_studio.py . --output-html reports/review-studio.html --output-json reports/review-studio.json
python3 scripts/render_evidence_consistency.py . --generated-at "$GENERATED_AT"
```
For final release evidence, commit source and generated package evidence first, then run the clean-lock reports from a clean worktree:
```bash
python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT"
python3 scripts/render_benchmark_reproducibility.py . --generated-at "$GENERATED_AT"
python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_weekly_curator_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_skill_overview.py .
python3 scripts/render_skill_interpretation.py .
python3 scripts/render_review_viewer.py .
python3 scripts/render_world_class_preflight.py . --generated-at "$GENERATED_AT"
python3 scripts/render_review_studio.py . --output-html reports/review-studio.html --output-json reports/review-studio.json
python3 scripts/render_evidence_consistency.py . --generated-at "$GENERATED_AT"
```
If `reports/benchmark_reproducibility.json` reports `release_lock_ready: false`, do not commit that benchmark as release evidence. Restore the transient dirty-lock reports, commit the source/generated evidence that caused the dirty state, and regenerate the clean-lock reports on the resulting clean tree.
Local sync into `~/.agents/skills.disabled/yao-meta-skill` or `~/.agents/skills/yao-meta-skill` must keep the install preflight enabled unless the user explicitly requests a diagnostic bypass. `make sync-local-install` and `make sync-active-install` rebuild the package first, then `scripts/sync_local_install.py` refuses to copy files when install simulation or installer permission enforcement fails.
Clean test-only scratch directories after verification with `find tests -maxdepth 1 \( -name 'tmp' -o -name 'tmp_*' \) -type d -exec rm -rf {} +`. Do not clean unrelated untracked files.
## Boundaries
- Do not expand root `SKILL.md` with long method text. Add durable guidance to `references/` or executable behavior to `scripts/`.
- Do not commit private customer work, one-off business skills, or local research reports unless the user explicitly promotes them into examples, fixtures, or public evidence.
- Treat untracked files outside `tests/tmp_*` as user work. Do not delete, move, or overwrite them without explicit approval.
- Do not hand-edit generated evidence when a generator exists. Regenerate the source report instead.
- Do not introduce external chart or UI dependencies for static reports unless the user explicitly approves them. The current report pattern is static HTML, local CSS, and inline SVG.
- Keep package artifacts, registry checksums, install simulation, trust reports, overview reports, and Review Studio evidence in sync after source changes.
## Hotspot Ownership
- `scripts/yao.py`: unified CLI orchestration. Keep command behavior stable; move pure config and side-effect-free helpers into small internal modules.
- `scripts/render_skill_overview.py`: v2 bilingual skill overview report. Preserve `reports/skill-overview.html` / `.json`, `body data-report-lang="zh-CN"`, default Simplified Chinese, English switch, and inline-chart/no-external-dependency behavior.
- `scripts/skill_report_layout.py` plus `assets/skill-overview.css` / `assets/skill-overview.js`: overview report layout contract and inline assets. Keep the generated report single-file at render time, but keep long CSS/JS source in `assets/` instead of embedding it inside Python.
- `scripts/render_review_studio.py`: Review Studio gate orchestration. Keep gate scoring, evidence links, and action generation separate from layout helpers.
- `scripts/review_studio_layout.py` plus `assets/review-studio.css`: Review Studio static layout and CSS contract. Keep the generated report single-file at render time, but keep long CSS source in `assets/` instead of embedding it inside Python.
- `scripts/review_studio_formatting.py`: Review Studio dictionary-to-panel formatting and Chinese metric labels.
- `scripts/review_studio_gates.py`: Review Studio gate evaluation, release decision scoring, and gate status labels.
- `scripts/render_skill_os2_audit.py`: requirement-by-requirement Skill OS 2.0 completion audit. Keep local evidence, human-required gaps, and external-required gaps separate so reports do not overclaim world-class readiness.
- `scripts/render_world_class_evidence_plan.py`: executable evidence task plan for the remaining world-class readiness gaps. Keep provider, human, native-permission, and real-client telemetry evidence requirements concrete without marking planned work as complete.
- `scripts/render_world_class_evidence_ledger.py`: machine-checkable acceptance ledger for the remaining world-class evidence gaps. Keep anti-overclaim guards explicit so planned work, metadata fallbacks, pending review, and local command runners never count as final evidence.
- `scripts/render_world_class_evidence_intake.py`: intake validator for external and human world-class evidence packets. Real submissions must reference concrete local aggregate artifacts with matching SHA-256 digests; templates may stay hash-free and must not count as evidence.
- `scripts/world_class_evidence_contract.py`: shared intake contract and artifact-integrity validator. Keep ledger, intake, and submission review aligned so source evidence cannot be accepted without a valid real submission and matching artifact SHA-256 checks.
- `scripts/render_world_class_submission_review.py`: read-only queue for external and human evidence packets after intake validation. Keep it from accepting evidence; it may only compare packet validity, source evidence checks, and ledger state.
- `scripts/render_world_class_operator_runbook.py`: operator-facing world-class evidence runbook. Keep it as coordination guidance only; it must not accept evidence or flip world-class readiness.
- `scripts/render_world_class_preflight.py` plus `scripts/world_class_preflight_layout.py`: operator-facing collection preflight for world-class evidence. Keep data assembly and CLI emission in the renderer, keep HTML layout in the layout helper, keep environment and external prerequisite checks redacted, and never let preflight count as accepted evidence.
- `scripts/render_benchmark_reproducibility.py`: release-facing benchmark reproducibility manifest. Keep methodology sections, required artifacts, failure disclosure, reproduction commands, and world-class limitations machine-checkable.
- `scripts/skill_report_model.py`, `scripts/skill_report_metrics.py`, `scripts/skill_report_charts.py`: skill overview data model, scoring, and inline SVG chart generation.
- `scripts/yao_cli_config.py`: CLI target maps, archetype heuristics, diagnosis copy, and side-effect-free shaping helpers.
- `scripts/yao_cli_parser.py`: CLI argparse command surface, flags, choices, and command handler binding.
- `scripts/yao_cli_operator_commands.py`: read-only operator diagnostics for active install status, localized homepage sync, and PR review reports. Keep install checks non-mutating, docs sync explicit, and PR review free of merge/write actions.
- `scripts/yao_cli_parser_operator.py`: argparse surface for operator UX commands. Keep command names stable and route all behavior into `yao_cli_operator_commands.py`.
- `scripts/yao_cli_telemetry.py`: opt-in metadata-only CLI run telemetry. Keep it free of prompt, argument, output, transcript, note, or message capture.
- `scripts/import_telemetry_events.py`: external telemetry importer. Validate the whole input before appending events, and keep raw prompt/output/transcript/message/note fields blocked.
- `scripts/emit_telemetry_event.py`: external client telemetry emitter. It may append one normalized metadata event to a local spool, but must never accept or write raw prompt, output, transcript, message, note, argument, or private content.
- `scripts/render_telemetry_hook_recipes.py`: client hook recipe report. Keep recipes metadata-only, mark native auto-capture as unclaimed unless a real client integration exists, and preserve dry-run commands for Browser/Chrome/IDE/wrapper adapters.
- `scripts/telemetry_native_host.py`: Browser/Chrome Native Messaging telemetry bridge. Preserve length-prefixed stdio behavior, raw-content blocking, and launcher/manifest generation tests.
New helper modules that are imported by CLI/report scripts but are not standalone commands must declare:
```python
SCRIPT_INTERFACE = "internal-module"
SCRIPT_INTERFACE_REASON = "Imported by <caller> for <purpose>."
```
Then update `tests/verify_trust_check.py` so help-smoke coverage and trust reporting stay explicit.
## Long-Running Work
Stop and surface state instead of retrying when any of these happens:
- Two consecutive checkpoints show no new files, no new passing test, and no new diagnosis.
- The same command fails with the same error three times.
- A required credential, network, package registry, or external service is unavailable.
- A generated package hash, registry checksum, install simulation, or trust summary cannot be reconciled after regeneration.
When stopping, report the exact command, current `git status --short --branch -uall`, and the smallest next diagnostic.
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Yao Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+283
View File
@@ -0,0 +1,283 @@
PYTHON ?= python3
REQUIRED_PYTHON_VERSION ?= 3.11
LOCAL_SKILL_INSTALL_DIR ?= $(HOME)/.agents/skills.disabled/yao-meta-skill
ACTIVE_SKILL_INSTALL_DIR ?= $(HOME)/.agents/skills/yao-meta-skill
.PHONY: python-version-check eval eval-suite route-scorecard route-confusion-check description-optimization judge-blind-eval description-optimization-check promotion-check python-compat-check architecture-maintainability-check yao-cli-check yao-cli-world-class-check operator-ux-check skill-overview-check skill-interpretation-check skill-report-metrics-check skill-report-charts-check html-rendering-check skill-ir-check compiler-check output-eval-check output-execution-check output-review-kit-check output-review-adjudication-check runtime-conformance-check runtime-permission-check trust-check skill-atlas-check registry-audit-check package-verify-check install-simulation-check upgrade-check review-viewer-check review-studio-check skill-os2-audit-check skill-os2-coverage-check world-class-evidence-check world-class-ledger-check world-class-intake-check world-class-submission-kit-check world-class-preflight-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check evidence-consistency-check feedback-check adaptation-safety-check skillops-opportunity-check daily-skillops-check weekly-curator-check adoption-drift-check telemetry-import-check telemetry-emit-check telemetry-hooks-check telemetry-native-host-check review-waivers-check review-annotations-check baseline-compare-check reference-scan-check github-benchmark-scan-check intent-confidence-check reference-synthesis-check output-risk-profile-check artifact-design-profile-check prompt-quality-profile-check system-model-check iteration-directions-check description-drift-history iteration-ledger results-panel regression-history context-reports portability-report portability-check failure-regression-check package-check package-failure-check security-boundary-check local-install-sync-check snapshot-check validate lint governance-check resource-boundary-check quality-check sync-local-install sync-active-install test ci-test clean
python-version-check:
@$(PYTHON) -c 'import sys; required=tuple(map(int, "$(REQUIRED_PYTHON_VERSION)".split("."))); actual=sys.version_info[:2]; raise SystemExit(0 if actual >= required else "Python {}.{}+ is required; {}.{} is active. Set PYTHON=/path/to/python{} or create a Python {} virtualenv.".format(*required, *actual, "$(REQUIRED_PYTHON_VERSION)", "$(REQUIRED_PYTHON_VERSION)"))'
eval:
$(PYTHON) scripts/trigger_eval.py --description-file evals/improved_description.txt --cases evals/trigger_cases.json --baseline-description-file evals/baseline_description.txt
eval-suite:
$(PYTHON) scripts/run_eval_suite.py
route-scorecard:
$(PYTHON) scripts/build_confusion_matrix.py --history-snapshot-output evals/history/2026-04-01-route-scorecard-foundation.json --snapshot-date 2026-04-01
route-confusion-check:
$(PYTHON) tests/verify_route_confusion.py
description-optimization:
$(PYTHON) scripts/run_description_optimization_suite.py
judge-blind-eval:
$(PYTHON) scripts/judge_blind_eval.py --description-file SKILL.md --cases evals/blind_holdout/trigger_cases.json --semantic-config evals/semantic_config.json
description-optimization-check:
$(PYTHON) tests/verify_description_optimization.py
promotion-check:
$(PYTHON) tests/verify_promotion_checker.py
python-compat-check:
$(PYTHON) tests/verify_python_compat_check.py
architecture-maintainability-check:
$(PYTHON) tests/verify_architecture_maintainability.py
yao-cli-check:
$(PYTHON) tests/verify_yao_cli.py
yao-cli-world-class-check:
$(PYTHON) tests/verify_yao_cli_world_class.py
operator-ux-check:
$(PYTHON) tests/verify_operator_ux.py
skill-overview-check:
$(PYTHON) tests/verify_skill_overview.py
skill-interpretation-check:
$(PYTHON) tests/verify_skill_interpretation.py
skill-report-metrics-check:
$(PYTHON) tests/verify_skill_report_metrics.py
skill-report-charts-check:
$(PYTHON) tests/verify_skill_report_charts.py
html-rendering-check:
$(PYTHON) tests/verify_html_rendering.py
skill-ir-check:
$(PYTHON) tests/verify_skill_ir.py
$(PYTHON) tests/verify_skill_ir_paths.py
compiler-check:
$(PYTHON) tests/verify_compile_skill.py
output-eval-check:
$(PYTHON) tests/verify_output_eval_lab.py
output-execution-check:
$(PYTHON) tests/verify_output_execution_runs.py
output-review-kit-check:
$(PYTHON) tests/verify_output_review_kit.py
output-review-adjudication-check:
$(PYTHON) tests/verify_output_review_adjudication.py
runtime-conformance-check:
$(PYTHON) tests/verify_conformance_suite.py
runtime-permission-check:
$(PYTHON) tests/verify_runtime_permission_probes.py
trust-check:
$(PYTHON) tests/verify_trust_check.py
skill-atlas-check:
$(PYTHON) tests/verify_skill_atlas.py
registry-audit-check:
$(PYTHON) tests/verify_registry_audit.py
package-verify-check:
$(PYTHON) tests/verify_package_verification.py
install-simulation-check:
$(PYTHON) tests/verify_install_simulation.py
upgrade-check:
$(PYTHON) tests/verify_upgrade_check.py
review-viewer-check:
$(PYTHON) tests/verify_review_viewer.py
review-studio-check:
$(PYTHON) tests/verify_review_studio.py
skill-os2-audit-check:
$(PYTHON) tests/verify_skill_os2_audit.py
skill-os2-coverage-check:
$(PYTHON) tests/verify_skill_os2_coverage.py
world-class-evidence-check:
$(PYTHON) tests/verify_world_class_evidence_plan.py
world-class-ledger-check:
$(PYTHON) tests/verify_world_class_evidence_ledger.py
world-class-intake-check:
$(PYTHON) tests/verify_world_class_evidence_intake.py
world-class-submission-kit-check:
$(PYTHON) tests/verify_world_class_submission_kit.py
world-class-preflight-check:
$(PYTHON) tests/verify_world_class_preflight.py
world-class-submission-review-check:
$(PYTHON) tests/verify_world_class_submission_review.py
world-class-runbook-check:
$(PYTHON) tests/verify_world_class_operator_runbook.py
world-class-claim-guard-check:
$(PYTHON) tests/verify_world_class_claim_guard.py
benchmark-reproducibility-check:
$(PYTHON) tests/verify_benchmark_reproducibility.py
evidence-consistency-check:
$(PYTHON) tests/verify_evidence_consistency.py
feedback-check:
$(PYTHON) tests/verify_feedback.py
adaptation-safety-check:
$(PYTHON) tests/verify_adaptation_safety.py
skillops-opportunity-check:
$(PYTHON) tests/verify_skillops_opportunity.py
daily-skillops-check:
$(PYTHON) tests/verify_daily_skillops.py
weekly-curator-check:
$(PYTHON) tests/verify_weekly_curator.py
adoption-drift-check:
$(PYTHON) tests/verify_adoption_drift.py
telemetry-import-check:
$(PYTHON) tests/verify_telemetry_import.py
telemetry-emit-check:
$(PYTHON) tests/verify_telemetry_emit.py
telemetry-hooks-check:
$(PYTHON) tests/verify_telemetry_hooks.py
telemetry-native-host-check:
$(PYTHON) tests/verify_telemetry_native_host.py
review-waivers-check:
$(PYTHON) tests/verify_review_waivers.py
review-annotations-check:
$(PYTHON) tests/verify_review_annotations.py
baseline-compare-check:
$(PYTHON) tests/verify_baseline_compare.py
reference-scan-check:
$(PYTHON) tests/verify_reference_scan.py
github-benchmark-scan-check:
$(PYTHON) tests/verify_github_benchmark_scan.py
intent-confidence-check:
$(PYTHON) tests/verify_intent_confidence.py
reference-synthesis-check:
$(PYTHON) tests/verify_reference_synthesis.py
output-risk-profile-check:
$(PYTHON) tests/verify_output_risk_profile.py
artifact-design-profile-check:
$(PYTHON) tests/verify_artifact_design_profile.py
prompt-quality-profile-check:
$(PYTHON) tests/verify_prompt_quality_profile.py
system-model-check:
$(PYTHON) tests/verify_system_model.py
iteration-directions-check:
$(PYTHON) tests/verify_iteration_directions.py
description-drift-history:
$(PYTHON) scripts/render_description_drift_history.py
iteration-ledger:
$(PYTHON) scripts/render_iteration_ledger.py
results-panel:
$(PYTHON) scripts/render_eval_dashboard.py
regression-history:
$(PYTHON) scripts/render_regression_history.py
context-reports:
$(PYTHON) scripts/render_context_reports.py
portability-report:
$(PYTHON) scripts/render_portability_report.py
portability-check:
$(PYTHON) tests/verify_portability_report.py
failure-regression-check:
$(PYTHON) tests/verify_failure_regressions.py
package-check:
$(PYTHON) scripts/cross_packager.py . --platform openai --platform claude --platform generic --platform vscode --expectations evals/packaging_expectations.json --output-dir dist --zip
package-failure-check:
$(PYTHON) tests/verify_packager_failures.py
security-boundary-check:
$(PYTHON) tests/verify_security_boundaries.py
local-install-sync-check:
$(PYTHON) tests/verify_local_install_sync.py
snapshot-check:
$(PYTHON) tests/verify_adapter_snapshots.py
validate:
$(PYTHON) scripts/validate_skill.py .
lint:
$(PYTHON) scripts/lint_skill.py .
governance-check:
$(PYTHON) scripts/governance_check.py . --require-manifest
resource-boundary-check:
$(PYTHON) scripts/resource_boundary_check.py .
quality-check:
$(PYTHON) tests/verify_quality_checks.py
sync-local-install: package-check
$(PYTHON) scripts/sync_local_install.py --install-dir "$(LOCAL_SKILL_INSTALL_DIR)"
sync-active-install: package-check
$(PYTHON) scripts/sync_local_install.py --install-dir "$(ACTIVE_SKILL_INSTALL_DIR)"
test: python-version-check eval eval-suite route-scorecard route-confusion-check description-optimization description-optimization-check promotion-check python-compat-check architecture-maintainability-check yao-cli-check operator-ux-check skill-overview-check skill-interpretation-check skill-report-metrics-check skill-report-charts-check html-rendering-check skill-ir-check compiler-check output-eval-check output-execution-check output-review-adjudication-check runtime-conformance-check runtime-permission-check trust-check skill-atlas-check registry-audit-check package-verify-check install-simulation-check upgrade-check review-viewer-check review-studio-check skill-os2-audit-check skill-os2-coverage-check world-class-evidence-check world-class-ledger-check world-class-intake-check world-class-submission-kit-check world-class-preflight-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check evidence-consistency-check feedback-check adaptation-safety-check skillops-opportunity-check daily-skillops-check weekly-curator-check adoption-drift-check telemetry-import-check telemetry-emit-check telemetry-hooks-check telemetry-native-host-check review-waivers-check review-annotations-check baseline-compare-check reference-scan-check github-benchmark-scan-check intent-confidence-check reference-synthesis-check output-risk-profile-check artifact-design-profile-check prompt-quality-profile-check system-model-check iteration-directions-check description-drift-history iteration-ledger regression-history context-reports portability-report portability-check failure-regression-check package-check package-failure-check security-boundary-check local-install-sync-check snapshot-check validate lint governance-check resource-boundary-check quality-check
ci-test: python-version-check
$(PYTHON) scripts/ci_test.py
clean:
rm -rf dist tests/tmp tests/tmp_snapshot tests/tmp_cli tests/tmp_operator_ux tests/tmp_python_compat tests/tmp_architecture_maintainability tests/tmp_skill_overview tests/tmp_skill_interpretation tests/tmp_skill_report_metrics tests/tmp_skill_report_charts tests/tmp_skill_ir tests/tmp_compile_skill tests/tmp_output_eval tests/tmp_output_execution tests/tmp_output_review_adjudication tests/tmp_conformance tests/tmp_runtime_permission tests/tmp_trust tests/tmp_skill_atlas tests/tmp_registry tests/tmp_package_verification tests/tmp_install_simulation tests/tmp_upgrade_check tests/tmp_reference_scan tests/tmp_iteration_directions tests/tmp_review_viewer tests/tmp_review_studio tests/tmp_skill_os2_audit tests/tmp_skill_os2_coverage tests/tmp_world_class_evidence tests/tmp_world_class_evidence_ledger tests/tmp_world_class_evidence_intake tests/tmp_world_class_submission_review tests/tmp_world_class_operator_runbook tests/tmp_world_class_claim_guard tests/tmp_benchmark_reproducibility tests/tmp_evidence_consistency tests/tmp_feedback tests/tmp_daily_skillops tests/tmp_weekly_curator tests/tmp_adoption_drift tests/tmp_telemetry_import tests/tmp_telemetry_emit tests/tmp_telemetry_hooks tests/tmp_telemetry_native_host tests/tmp_review_waivers tests/tmp_review_annotations tests/tmp_github_benchmark_scan tests/tmp_intent_confidence tests/tmp_reference_synthesis tests/tmp_output_risk_profile tests/tmp_artifact_design_profile tests/tmp_prompt_quality_profile tests/tmp_system_model tests/tmp_security tests/tmp_baseline_compare.json tests/tmp_baseline_compare.md
find . -type d -name __pycache__ -prune -exec rm -rf {} +
+729
View File
@@ -0,0 +1,729 @@
# Yao Meta Skill
[![CI](https://github.com/yaojingang/yao-meta-skill/actions/workflows/test.yml/badge.svg)](https://github.com/yaojingang/yao-meta-skill/actions/workflows/test.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-black.svg)](LICENSE)
[![English](https://img.shields.io/badge/Docs-English-black)](README.md)
[![中文](https://img.shields.io/badge/Docs-%E4%B8%AD%E6%96%87-red)](docs/README.zh-CN.md)
[![日本語](https://img.shields.io/badge/Docs-%E6%97%A5%E6%9C%AC%E8%AA%9E-blue)](docs/README.ja-JP.md)
[![Français](https://img.shields.io/badge/Docs-Fran%C3%A7ais-green)](docs/README.fr-FR.md)
[![Русский](https://img.shields.io/badge/Docs-%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9-purple)](docs/README.ru-RU.md)
`YAO` stands for `Yielding AI Outcomes`: the goal is not to generate more prompt text, but to produce reusable AI assets and real operational outcomes.
`yao-meta-skill` creates, evaluates, packages, and governs reusable agent skills. The 1.0 line focused on turning repeated workflows into installable, readable, cross-platform skill packages. The 2.0 line expands that factory into a Skill OS: a governed system for modeling a skill once, compiling it for multiple targets, testing its behavior, reviewing its release evidence, and tracking the next iteration.
[Quick Start](#quick-start) · [Skill OS 2.0](#skill-os-20-upgrade) · [1.0 vs 2.0](#from-10-to-20) · [Operator UX](#operator-ux-commands) · [Benchmark](#weighted-quality-benchmark) · [Examples](examples/README.md) · [Evals](evals/README.md) · [Failure Library](failures/README.md) · [Method Doctrine](#method-doctrine)
## Skill OS 2.0 Upgrade
Skill OS 2.0 keeps the original promise of `yao-meta-skill`, but makes the package lifecycle more explicit. Instead of stopping at `SKILL.md`, it adds a semantic contract, target compilers, evaluation evidence, release gates, and operation reports around the skill.
- **Skill IR**: a platform-neutral intermediate representation for intent, triggers, inputs, outputs, boundaries, references, and expected artifacts.
- **Target compilers and adapters**: generated surfaces for OpenAI, Claude, generic agent skills, Agent Skills compatible packages, and VS Code-oriented workflows.
- **Output Eval Lab**: trigger checks, output assertions, execution evidence, timing and token evidence, benchmark reproducibility, blind-review packs, answer keys, and adjudication reports.
- **Review Studio 2.0**: a single HTML gate page for intent, triggers, output eval, context cost, runtime checks, trust, Skill Atlas signals, adoption drift, waivers, annotations, release evidence, warnings, blockers, and fix actions.
- **Evidence and release governance**: evidence consistency checks, package verification, install simulation, runtime permission probes, world-class evidence intake, world-class ledger, operator runbook, and public claim guard.
- **SkillOps loop**: metadata-only adoption drift, telemetry hooks, adaptive proposals, daily and weekly curator reports, and portfolio-level drift signals.
Current posture: the repository is ready for beta and external testing, while stronger public "world-class" claims remain evidence-gated. Provider-backed production evidence, human blind-review evidence, native permission execution, and real-client telemetry are tracked as separate evidence tasks instead of being treated as completed work.
See the companion artifacts:
- [Visual 1.0 vs 2.0 comparison report](.previews/yao-meta-skill-2-comparison/index.html)
- [Chinese desktop preview](.previews/yao-meta-skill-2-comparison/yao-meta-skill-1-vs-2.png)
- [English desktop preview](.previews/yao-meta-skill-2-comparison/yao-meta-skill-1-vs-2-en.png)
## From 1.0 to 2.0
| Dimension | 1.0 focus | 2.0 upgrade |
| --- | --- | --- |
| Product role | Create, refactor, evaluate, and package reusable skills. | Govern the full lifecycle of a skill: creation, compilation, evaluation, review, release, telemetry, and iteration. |
| Architecture | `SKILL.md`, `agents/interface.yaml`, manifest files, and report artifacts. | Skill IR, target compilers, adapters, gate contracts, evidence ledgers, release locks, and action-oriented review pages. |
| Cross-platform delivery | OpenAI, Claude, and generic package targets. | Adds broader Agent Skills and VS Code-oriented compatibility, with registry-readable compatibility records. |
| Quality model | Trigger and structure checks plus report-based review. | Output eval, benchmark reproducibility, execution evidence, failure disclosure, blind-review packs, and evidence consistency checks. |
| Report experience | Overview HTML and first-pass review pages. | Bilingual Skill Overview v2, Review Studio 2.0, reviewer annotations, action cards, charts, and audit-oriented report contracts. |
| Release boundary | Package output with basic validation. | Package verification, install simulation, runtime permission probes, release locks, public claim guard, and operator runbooks. |
| Operating loop | Manual feedback and local iteration. | Adoption drift, metadata telemetry, SkillOps reports, adaptive proposals, and portfolio-level drift detection. |
## 2.0 Use Cases
- **Create a new skill from repeated work**: start with a workflow note, prompt set, transcript, runbook, or document pattern, then generate a package with a lean entrypoint, explicit inputs and outputs, references, reports, and the lightest justified gates.
- **Upgrade a personal skill into a team asset**: add interface contracts, manifests, target adapters, trust checks, output evals, reviewer waivers, release notes, and Review Studio evidence before other people depend on the skill.
- **Prepare a skill for beta release**: run package verification, install simulation, compatibility checks, runtime permission probes, and evidence consistency checks, then separate beta readiness from stronger public claims.
- **Keep a skill useful after release**: use metadata-only telemetry, adoption drift, feedback logs, SkillOps reports, and adaptive proposals to decide whether the next move should be documentation, an eval, a skill patch, or a governance update.
- **Compare with other meta-skill approaches**: keep Anthropic/OpenAI-style conversational creation and lean instruction writing where they fit, then use `yao-meta-skill` when the package needs evidence, portability, release gates, and repeatable maintenance.
## Operator UX Commands
These read-only helper commands turn common maintainer questions into repeatable diagnostics:
```bash
python3 scripts/yao.py install-status --expected-source .
python3 scripts/yao.py localized-doc-sync-check
python3 scripts/yao.py pr-review-report 4 --repo yaojingang/yao-meta-skill
```
- `install-status` explains whether the active skill is coming from `.codex/skills`, `.agents/skills`, or the disabled mirror, and flags duplicate active installs.
- `localized-doc-sync-check` verifies that the Chinese README carries the public homepage sections that were added to the English README.
- `pr-review-report` reads GitHub PR metadata, changed files, status checks, and suggested local commands without merging or mutating the PR.
## Capability Surface
It turns rough workflows, transcripts, prompts, notes, and runbooks into reusable skill packages with:
- a clear trigger surface
- a lean `SKILL.md`
- optional references, scripts, and evals
- a front-loaded intent dialogue with an intent confidence gate, so the system keeps clarifying when the true job, outputs, exclusions, or standards are still fuzzy
- a silent-by-default GitHub benchmark scan plus reference synthesis that studies top public repositories and world-class pattern tracks, then surfaces only real conflicts or uncertainty to the user
- a generated visual HTML overview for each newly initialized skill
- a Review Studio 2.0 HTML gate page that combines intent, trigger, output eval, context, runtime, trust, atlas, adoption drift, reviewer waivers, reviewer annotations, release evidence, and per-warning fix actions
- a Skill OS 2.0 audit that maps each world-class requirement to current evidence, human-required gaps, and external-required gaps
- a Skill OS 2.0 blueprint coverage report that maps the upgrade plan's core modules and recommended PRs to concrete artifacts, commands, and tests
- a world-class evidence plan that turns remaining provider, human, native-permission, and real-client telemetry gaps into executable evidence tasks
- a world-class evidence ledger that records which external and human evidence is accepted or still pending without treating planned work as proof
- a world-class evidence intake contract that validates external and human evidence packets for provenance, privacy, artifact refs, and anti-overclaim rules before ledger review
- a redacted world-class preflight report that checks local files, environment readiness, human/external prerequisites, and source blockers before operators collect evidence
- a world-class submission review queue that compares evidence packets, intake validation, source artifacts, and ledger state without accepting evidence
- a world-class operator runbook that gives reviewers the exact commands, artifacts, and collection checklist needed to close remaining evidence gaps
- a world-class claim guard that scans public claim surfaces and blocks premature completed/true claims while the evidence ledger still has pending external or human evidence
- a benchmark reproducibility manifest that checks methodology sections, required artifacts, failure disclosure, and reproduction commands
- an evidence consistency gate that compares generated reports against each other so benchmark, overview, interpretation, adoption, world-class ledger, coverage, and Review Studio facts do not drift silently
- Output Eval Lab evidence with assertion grading, execution/timing/token evidence, a blind A/B review pack, a separate answer key, and reviewer adjudication reports
- a runtime permission probe report that checks packaged target adapters for explicit permission metadata, native-enforcement flags, metadata fallback notes, and residual risks
- a Python compatibility gate that catches supported-runtime syntax hazards before they reach GitHub Actions or packaged distribution
- a side-by-side HTML review studio for first-pass human review
- an artifact design profile that defines visual direction, layout patterns, and quality gates for reports, tutorials, dashboards, screenshots, and review pages
- a prompt quality profile that abstracts need modeling, RTF mapping, complexity, and quality checks into reviewer-visible evidence instead of bloating `SKILL.md`
- a systems-thinking model that maps boundaries, feedback loops, drift risks, recurring failure patterns, and highest-leverage quality moves
- three high-value next iteration directions after the first package is created
- a lightweight feedback log that does not require a full promotion cycle
- a local-first metadata-only adoption and drift report that turns real usage signals into next iteration candidates, with optional `yao.py` CLI run capture, external client event emit hooks, hook recipes, and JSONL import that record command names and outcomes without arguments or raw content
- an explicit-source adaptive proposal loop that summarizes redacted repeated user preferences and generates approval-gated adaptation proposals without scanning private logs or writing source files
- a SkillOps opportunity scorer and decision policy that ranks redacted repeated signals, maps them to report-only, AGENTS update, existing-skill patch, or eval-addition actions, and keeps every durable write approval-gated
- a weekly SkillOps curator report that aggregates daily opportunities, Skill Atlas portfolio signals, release lock state, and world-class evidence gaps into a proposal-only maintenance queue
- a Browser/Chrome Native Messaging telemetry host that can receive length-prefixed metadata-only client events and generate a local launcher plus manifest without storing raw content
- a Skill Atlas drift layer that reads aggregate adoption reports and surfaces portfolio-level drift signals without packaging raw telemetry logs
- a baseline compare report for with-skill vs baseline review
- a conversation-style, archetype-aware quickstart that steers new packages toward scaffold, production, library, or governed fits
- Skill IR as the platform-neutral semantic contract, plus compiler reports and client-specific adapters
- Registry audit metadata with package version, owner, license, checksum, and compatibility matrix
- governance, promotion, and portability checks built into the default flow
## Architecture
Hero view: Skill OS 2.0 turns messy operational input into a governed, reusable skill package through a model, compile, evaluate, release, and operate loop.
```mermaid
flowchart LR
A["Inputs<br/>workflow / prompt / transcript / docs / notes"] --> B["Intent model<br/>job / outputs / exclusions / standards"]
B --> C["Skill IR<br/>trigger / contracts / resources / evidence"]
C --> D["Skill package<br/>SKILL.md / references / scripts / reports"]
C --> E["Target compilers<br/>OpenAI / Claude / generic / Agent Skills / VS Code"]
D --> F["Eval Lab<br/>trigger / output / benchmark / runtime"]
E --> F
F --> G["Review Studio<br/>gates / warnings / actions / waivers"]
G --> H["Release boundary<br/>package verification / install simulation / claim guard"]
H --> I["SkillOps loop<br/>feedback / adoption drift / next iteration"]
I --> B
```
Read it in 10 seconds:
- **Inputs**: start from rough operational material instead of a polished spec.
- **Intent model**: make the job, outputs, exclusions, constraints, and standards explicit before generating files.
- **Skill IR**: keep the semantic contract separate from any single platform format.
- **Package and compile**: generate the lean skill package and the target-specific adapters from the same source model.
- **Evaluate and review**: turn trigger behavior, output quality, runtime checks, and trust signals into reviewable evidence.
- **Release and operate**: publish only within the current evidence boundary, then feed adoption drift and reviewer feedback into the next iteration.
## Weighted Quality Benchmark
This benchmark is a project-level engineering review, scored from `0-10` per dimension and weighted to `100`. GitHub stars are intentionally excluded because they measure ecosystem heat, not meta-skill engineering quality.
The score is local engineering evidence, not a claim of world-class readiness. Public superiority claims still depend on accepted external and human evidence in the world-class ledger.
Weighted score formula: `sum(score / 10 * weight)`.
| Meta Skill | Method Depth 15 | Context Discipline 10 | Toolchain 15 | Eval/Test Rigor 20 | Governance 15 | Portability 10 | Onboarding/Review 5 | Local Reliability 10 | Weighted Score |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| Yao Meta Skill | 9.5 | 8.0 | 9.5 | 9.5 | 9.5 | 9.0 | 6.5 | 9.5 | 91.5 |
| Anthropic Skill Creator | 9.0 | 6.5 | 8.5 | 7.5 | 4.0 | 5.0 | 7.5 | 5.0 | 67.5 |
| OpenAI Skill Creator | 8.5 | 9.5 | 5.0 | 2.0 | 3.0 | 4.0 | 8.5 | 4.0 | 50.5 |
| Rank | Meta Skill | Score | Core Positioning |
| ---: | --- | ---: | --- |
| 1 | Yao Meta Skill | 91.5 | A complete engineering, evaluation, governance, and portability system for reusable skills. |
| 2 | Anthropic Skill Creator | 67.5 | Strong methodology and iteration loop, with weaker local execution reliability and governance coverage. |
| 3 | OpenAI Skill Creator | 50.5 | Best treated as a concise skill-writing method guide rather than a full engineering system. |
## Human Blind A/B Review Snapshot
On 2026-06-29, a single human reviewer compared `yao-meta-skill` with the bundled OpenAI `skill-creator` across five realistic skill-creation scenarios: support triage, revenue reconciliation, webinar repurposing, incident postmortems, and PR review follow-up. The reviewer confirmed decisions were completed before the answer key was opened.
Result: `yao-meta-skill` was selected in `5/5` cases.
Evidence:
- Review entrypoint: [reports/blind-human-review-2026-06-29/index.html](reports/blind-human-review-2026-06-29/index.html)
- Adjudication summary: [reports/blind-human-review-2026-06-29/adjudication.md](reports/blind-human-review-2026-06-29/adjudication.md)
- Recorded decisions: [reports/blind-human-review-2026-06-29/review-decisions.recorded.json](reports/blind-human-review-2026-06-29/review-decisions.recorded.json)
Boundary: this is single-reviewer blind preference evidence. It is not provider-backed independent model execution evidence, and the per-case rationale fields are still empty.
## Best-Fit Scenarios
- Choose **Yao Meta Skill** when the target is a reusable team asset with explicit boundaries, trigger evaluation, governance, packaging, portability, and local execution checks.
- Choose **Anthropic Skill Creator** when the target is a conversation-first creation loop and the priority is human-guided iteration over repository-level governance.
- Choose **OpenAI Skill Creator** when the target is a compact reference for writing lean skill instructions and keeping context small.
- A practical hybrid pattern is still useful: draft conversationally, then use `yao-meta-skill` to harden the package, add evidence, and make it team-ready.
## Quick Start
Install the skill globally for Codex first:
```bash
npx -y skills add yaojingang/yao-meta-skill -a codex -g -y
```
To install it for every supported agent, replace `-a codex` with `-a '*'`:
```bash
npx -y skills add yaojingang/yao-meta-skill -a '*' -g -y
```
After installation, restart the client. Then ask for tasks such as "create a skill from this workflow", "improve this existing skill", "evaluate this skill", or "add evals to this skill" to trigger `yao-meta-skill`.
1. Describe the workflow, prompt set, or repeated task you want to turn into a skill.
2. Start with a short, human intent dialogue so the real job, outputs, exclusions, constraints, and standards are explicit.
3. Let `quickstart` clarify intent first, then run silent benchmark scan and reference synthesis; it only surfaces explicit questions when intent is still unclear or when there is a real design conflict.
4. Use the archetype-aware `quickstart` or the full authoring flow to generate or improve the package in scaffold, production, library, or governed mode.
5. Review the generated `reports/skill-interpretation.html` first for the bilingual interpretation report. It defaults to Simplified Chinese and provides an English switch in the top right. Then open `reports/skill-overview.html` for the audit scorecard and `reports/review-studio.html` to inspect release blockers, permission approvals, and evidence paths in one page before adding more structure.
Or use the unified authoring CLI:
```bash
python3 scripts/yao.py quickstart --output-dir .
python3 scripts/yao.py github-benchmark-scan my-skill --query "release workflow portability"
python3 scripts/yao.py reference-scan my-skill \
--external-reference "World Class Method::method::Borrow a tight evaluation loop.::Do not copy heavy process." \
--user-reference "A product or repo I admire::taste::Learn the clarity and operating standard.::Do not copy wording." \
--local-constraint "Current Library Naming::structure::Keep naming aligned with the local skill library.::Do not inherit private references."
python3 scripts/yao.py skill-interpretation my-skill
python3 scripts/yao.py review-viewer my-skill
python3 scripts/yao.py review-studio my-skill
python3 scripts/yao.py artifact-design-profile my-skill
python3 scripts/yao.py prompt-quality-profile my-skill
python3 scripts/yao.py system-model my-skill
python3 scripts/yao.py feedback my-skill --note "Tighten exclusions before adding scripts." --rating 4 --category boundary
python3 scripts/yao.py adapt-scan my-skill --source ./curated-user-signals.jsonl
python3 scripts/yao.py adapt-propose my-skill
python3 scripts/yao.py daily-skillops my-skill --source ./curated-user-signals.jsonl
python3 scripts/yao.py weekly-curator my-skill
python3 scripts/yao.py adoption-drift my-skill --record-event skill_activation --activation-type explicit --outcome accepted
YAO_CLI_TELEMETRY=1 python3 scripts/yao.py validate my-skill
python3 scripts/yao.py telemetry-emit my-skill --event skill_activation --activation-type explicit --outcome accepted --command browser-extension
python3 scripts/yao.py telemetry-hooks my-skill
python3 scripts/telemetry_native_host.py my-skill --write-launcher /tmp/yao-telemetry-host.sh --write-manifest /tmp/yao-telemetry-host.json --allowed-origin chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/
python3 scripts/yao.py telemetry-import my-skill --input-jsonl /tmp/external-client-events.jsonl --command browser-extension
python3 scripts/yao.py review-waivers my-skill --add-waiver --gate-key trust-report --reviewer "Yao Team" --reason "Known warning accepted for this release with bounded follow-up." --expires-at 2026-09-30
python3 scripts/yao.py review-waivers my-skill --add-waiver --gate-key permission-gates --reviewer "Yao Team" --reason "Permission warning accepted only for this non-governed release window." --expires-at 2026-09-30
python3 scripts/yao.py review-annotations my-skill --add-annotation --gate-key output-lab --target-path reports/output_quality_scorecard.md --line 1 --body "Clarify recorded fixture vs model-executed evidence before release."
python3 scripts/yao.py baseline-compare
python3 scripts/yao.py check-update
python3 scripts/yao.py skill-ir . --output-json skill-ir/examples/yao-meta-skill.json
python3 scripts/yao.py compile-skill . --target openai --target claude --target generic --target vscode
python3 scripts/yao.py package . --platform generic --output-dir dist
python3 scripts/yao.py output-eval
python3 scripts/yao.py output-exec
python3 scripts/yao.py output-review
python3 scripts/yao.py conformance .
python3 scripts/yao.py trust .
python3 scripts/yao.py python-compat .
python3 scripts/yao.py runtime-permissions . --package-dir dist
python3 scripts/yao.py skill-atlas --workspace-root .
python3 scripts/yao.py registry-audit .
python3 scripts/yao.py package-verify . --package-dir dist --require-zip
python3 scripts/yao.py install-simulate . --package-dir dist
python3 scripts/yao.py upgrade-check . --previous-package-json registry/examples/yao-meta-skill-1.0.0.json
python3 scripts/yao.py world-class-evidence .
SUBMISSIONS_DIR="${SUBMISSIONS_DIR:-evidence/world_class/submissions}"
python3 scripts/yao.py world-class-preflight . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-submission-kit . --output-dir "$SUBMISSIONS_DIR"
# Alternative: prefill artifact SHA-256 digests while keeping drafts template-only.
python3 scripts/yao.py world-class-submission-kit . --output-dir "$SUBMISSIONS_DIR" --prefill-artifacts
python3 scripts/yao.py world-class-intake . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-submission-review . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-ledger . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-runbook . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-claim-guard .
python3 scripts/yao.py benchmark-reproducibility .
python3 scripts/yao.py evidence-consistency .
```
## Local Development Source
Development source: this repository is the source of truth for authoring and review.
Use Python 3.11 or newer for local development. GitHub Actions runs the test suite on Python 3.11, and the Makefile checks the active interpreter before running `make test` or `make ci-test`.
```bash
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install --requirement requirements-ci.txt
make ci-test
```
If `python3` points to an older system interpreter, pass the interpreter explicitly:
```bash
make PYTHON=python3.11 ci-test
```
Disabled mirror: `~/.agents/skills.disabled/yao-meta-skill` is the local backup mirror for this source. Keeping the mirror outside `~/.agents/skills` prevents Codex from showing a duplicate `Yao Meta Skill` while this repository is also visible in the active workspace.
Sync the current source into the disabled mirror:
```bash
make sync-local-install
```
The sync command first rebuilds the package and runs install preflight against `dist/yao-meta-skill.zip`. It refuses to sync when package extraction, adapter readability, or installer permission enforcement fails. After the preflight passes, it copies Git-tracked files plus new source files in code and guidance directories such as `scripts/`, `tests/`, `references/`, and `docs/`. It skips untracked business-skill folders and untracked private reports by default, so local experiments do not leak into the mirror.
Restore an active global Codex install only when you intentionally want this skill discoverable outside the development workspace:
```bash
make sync-active-install
```
That active install writes to `~/.agents/skills/yao-meta-skill` and can make Codex show a second `Yao Meta Skill` entry while this repository is open as a skills workspace.
## Generated Artifact Boundaries
Keep this repository focused on the meta-skill factory.
- Put reusable factory examples in `examples/`.
- Put reusable benchmark evidence, regression results, and release evidence in `reports/`.
- Keep private analysis reports, customer-specific outputs, and one-off generated business skills outside this repository unless they are intentionally promoted into an example or regression fixture.
- Place real generated skills as sibling skill directories under the local skill workspace, not as top-level folders inside `yao-meta-skill`.
## 5-Minute Workflow
1. Start from a raw workflow note.
2. Turn it into a skill package with `SKILL.md`, `agents/interface.yaml`, and only the folders the workflow actually needs.
3. Validate the trigger description with `evals/trigger_cases.json`.
4. Export compatibility artifacts for the clients you care about.
5. Compare the result against the examples in `examples/`.
Minimum commands:
```bash
python3 scripts/trigger_eval.py --description-file evals/improved_description.txt --cases evals/trigger_cases.json
python3 scripts/run_description_optimization_suite.py
python3 scripts/judge_blind_eval.py --description-file SKILL.md --cases evals/blind_holdout/trigger_cases.json --semantic-config evals/semantic_config.json
python3 scripts/context_sizer.py .
python3 scripts/resource_boundary_check.py .
python3 scripts/governance_check.py . --require-manifest
python3 scripts/compile_skill.py .
python3 scripts/cross_packager.py . --platform openai --platform claude --platform generic --platform vscode --expectations evals/packaging_expectations.json --zip
python3 scripts/probe_runtime_permissions.py . --package-dir dist
python3 tests/verify_packager_failures.py
```
Or run everything together:
```bash
make test
```
Unified authoring flow:
```bash
python3 scripts/yao.py init my-skill --description "Describe what the skill does."
python3 scripts/yao.py validate my-skill
python3 scripts/yao.py workspace-flow --target root --label first-pass
python3 scripts/yao.py review-viewer my-skill
python3 scripts/yao.py review --target root
python3 scripts/yao.py release-snapshot --target root --label release-candidate
python3 scripts/yao.py skill-ir . --output-json skill-ir/examples/yao-meta-skill.json
python3 scripts/yao.py compile-skill .
python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip
python3 scripts/yao.py runtime-permissions . --package-dir dist
python3 scripts/yao.py package-verify . --package-dir dist --require-zip
python3 scripts/yao.py test
```
## Results
The homepage panel below is generated from the current eval suite so the family-level outcome is visible without opening raw JSON.
<!-- BEGIN:EVAL_RESULTS -->
- regression corpus: `66` prompts across `21` families
- aggregate result: `0` false positives, `0` false negatives, average precision `1.0`, average recall `1.0`
- suite status:
| Suite | Cases | FP | FN | Precision | Recall |
| --- | ---: | ---: | ---: | ---: | ---: |
| train | 31 | 0 | 0 | 1.0 | 1.0 |
| dev | 22 | 0 | 0 | 1.0 | 1.0 |
| holdout | 13 | 0 | 0 | 1.0 | 1.0 |
| Family | Cases | Pass Rate |
| --- | ---: | ---: |
| `brainstorm_only` | 2 | 1.0 |
| `brainstorm_vs_build` | 1 | 1.0 |
| `complex_multi_asset` | 3 | 1.0 |
| `document_export_vs_agent_skill` | 4 | 1.0 |
| `document_only` | 3 | 1.0 |
| `explain_not_package` | 1 | 1.0 |
| `explain_only` | 5 | 1.0 |
| `future_outline_vs_build` | 4 | 1.0 |
| `iterate_existing_skill` | 5 | 1.0 |
| `long_context_document_only` | 3 | 1.0 |
| `long_context_near_neighbor` | 3 | 1.0 |
| `long_context_summary_only` | 2 | 1.0 |
| `long_context_trigger` | 4 | 1.0 |
| `meta_skill_creation` | 1 | 1.0 |
| `one_off_vs_reusable` | 2 | 1.0 |
| `package_for_team` | 2 | 1.0 |
| `paraphrase_trigger` | 5 | 1.0 |
| `partial_scaffold_not_full_skill` | 4 | 1.0 |
| `summary_only` | 3 | 1.0 |
| `translate_only` | 4 | 1.0 |
| `workflow_to_skill` | 5 | 1.0 |
Full reports: [reports/eval_suite.json](reports/eval_suite.json) and [reports/family_summary.md](reports/family_summary.md)
<!-- END:EVAL_RESULTS -->
- packaging validation: `openai`, `claude`, `generic`, and `vscode` targets pass contract checks and carry IR provenance, semantic parity metadata, and target-native behavior contracts
- target compiler validation: `openai`, `claude`, `generic`, Agent Skills compatible, and VS Code / Copilot contracts are compiled from Skill IR with generated-file mappings, adapter modes, native surfaces, permission enforcement notes, and unsupported-feature notes
- runtime permission probes: `openai`, `claude`, `generic`, and `vscode` adapters expose explicit permission contracts; current targets report `0` native-enforcement adapters and `4` metadata fallbacks with residual risks visible to reviewers
- portability score: `100/100` with neutral activation, execution, trust, and degradation metadata preserved across all exported targets
- description optimization suite: root, team frontend review, and governed incident command pass blind and adversarial holdout gates; governed incident command still carries one visible holdout miss, and adversarial calibration plus family drift are now tracked separately
- judge-backed blind eval: root, team frontend review, and governed incident command now pass an independent rubric judge on blind holdout prompts
- human blind A/B snapshot: a single reviewer selected `yao-meta-skill` over the bundled OpenAI `skill-creator` in `5/5` realistic skill-creation scenarios; evidence is published in [reports/blind-human-review-2026-06-29/adjudication.md](reports/blind-human-review-2026-06-29/adjudication.md)
- packaging failure fixtures: invalid metadata, invalid YAML, and unsupported targets fail as expected
- failure library regressions: anti-pattern families pass automated checks
- governance and resource-boundary checks are part of the default test path
- root governance maturity score: `90/100`; governed benchmark example: `95/100`
- CJK-aware trigger matching is now covered by explicit Chinese build, packaging, eval, and near-neighbor cases
- context budgets: root `944/1000`, complex benchmark `790/1000`, governed benchmark `760/1000`
- quality density: root `137.7`, complex benchmark `164.6`, governed benchmark `171.1`
- regression milestones are tracked in [reports/regression_history.md](reports/regression_history.md)
- description drift history is tracked in [reports/description_drift_history.md](reports/description_drift_history.md)
- route confusion is tracked in [reports/route_scorecard.md](reports/route_scorecard.md)
- promotion evidence is summarized in [reports/iteration_ledger.md](reports/iteration_ledger.md)
- promotion decisions are published in [reports/promotion_decisions.md](reports/promotion_decisions.md)
- candidate lifecycle states are published in [reports/candidate_registry.md](reports/candidate_registry.md)
- lightweight with-skill vs baseline comparison is published in [reports/baseline-compare.md](reports/baseline-compare.md)
- Review Studio 2.0 gate evidence is published in [reports/review-studio.html](reports/review-studio.html)
- Review Studio fix actions are embedded in [reports/review-studio.json](reports/review-studio.json)
- Skill OS 2.0 blueprint coverage is published in [reports/skill_os2_coverage.md](reports/skill_os2_coverage.md)
- reviewer waiver evidence is published in [reports/review_waivers.md](reports/review_waivers.md)
- remaining world-class evidence tasks are published in [reports/world_class_evidence_plan.md](reports/world_class_evidence_plan.md)
- current world-class evidence acceptance state is published in [reports/world_class_evidence_ledger.md](reports/world_class_evidence_ledger.md)
- world-class evidence intake readiness is published in [reports/world_class_evidence_intake.md](reports/world_class_evidence_intake.md)
- world-class submission review queue is published in [reports/world_class_submission_review.md](reports/world_class_submission_review.md)
- world-class operator runbook is published in [reports/world_class_operator_runbook.md](reports/world_class_operator_runbook.md) and [reports/world_class_operator_runbook.html](reports/world_class_operator_runbook.html)
- world-class public claim guard status is published in [reports/world_class_claim_guard.md](reports/world_class_claim_guard.md)
- benchmark reproducibility evidence is published in [reports/benchmark_reproducibility.md](reports/benchmark_reproducibility.md)
- cross-report evidence consistency is published in [reports/evidence_consistency.md](reports/evidence_consistency.md)
- target compiler evidence is published in [reports/compiled_targets.md](reports/compiled_targets.md)
- Python runtime compatibility evidence is published in [reports/python_compatibility.md](reports/python_compatibility.md)
- registry package metadata and audit status are published in [reports/registry_audit.md](reports/registry_audit.md)
- package archive verification is published in [reports/package_verification.md](reports/package_verification.md)
- temporary local install simulation is published in [reports/install_simulation.md](reports/install_simulation.md)
- upgrade diff, version-bump recommendation, and release-note evidence are published in [reports/upgrade_check.md](reports/upgrade_check.md)
- local-first adoption and drift telemetry is summarized in [reports/adoption_drift_report.md](reports/adoption_drift_report.md)
- context budget summaries are tracked in [reports/context_budget.md](reports/context_budget.md)
- portability status is tracked in [reports/portability_score.md](reports/portability_score.md)
## Current Strengths
The latest weighted review puts Yao at `91.5/100`. The strongest dimensions are the ones that matter most when skills become long-lived team assets:
- **Method depth `9.5`**: formal skill engineering doctrine, archetypes, gate selection, non-skill decisions, lifecycle governance, and resource boundaries.
- **Toolchain completeness `9.5`**: authoring, validation, benchmark scan, description optimization, report generation, promotion checks, packaging, CI, and portability checks are wired into one operational flow.
- **Eval and test rigor `9.5`**: trigger quality is checked with train/dev/holdout, blind holdout, adversarial holdout, judge-backed blind eval, route confusion, drift history, and promotion gates.
- **Governance and lifecycle `9.5`**: important skills can carry owner, lifecycle state, review cadence, maturity score, trust boundaries, promotion decisions, and regression history.
- **Local execution reliability `9.5`**: the repository is executable locally through `make test`, `make ci-test`, and the unified `scripts/yao.py` authoring CLI.
- **Portability and distribution `9.0`**: neutral source metadata, client adapters, degradation rules, packaging contracts, and portability scoring preserve reusable semantics across target environments.
- **Systems stability**: generated skills now include a system model that turns boundary discipline, feedback loops, drift watch, and leverage-point analysis into reviewer-visible evidence.
- **Context discipline `8.0`**: the entrypoint is still held under budget, but this is tracked as a live constraint because the system now carries more reports, examples, benchmark assets, and generated evidence.
- **Onboarding and review experience `6.5`**: quickstart, HTML overview, side-by-side review viewer, and feedback logs have improved the first-run experience, but this remains the clearest UX improvement area.
The current direction is deliberate: keep the entrypoint light, make evaluation hard to fake, make governance visible, and continue reducing the friction of first-time creation and review.
## Why Yao
- **Lightweight**: the entrypoint stays compact, context budgets are explicit, and extra structure is added only when it pays for itself.
- **Rigorous**: trigger quality is checked with family regressions, blind holdout, adversarial holdout, route confusion, judge-backed blind eval, and promotion gates.
- **Governed**: important skills are treated as maintainable assets with lifecycle state, maturity expectations, ownership, and review cadence.
- **Portable**: source metadata stays neutral while adapters, degradation rules, and packaging contracts preserve reusable semantics across environments.
## What It Does
This project helps you create, refactor, evaluate, and package skills as durable capability bundles rather than one-off prompts.
The design logic is simple:
1. Capture the real recurring job behind the user's request.
2. Set a clean skill boundary so one package does one coherent job.
3. Optimize the trigger description before over-writing the body.
4. Keep the main skill file small and move details into references or scripts.
5. Add quality gates only when they pay for themselves.
6. Export compatibility artifacts only for the clients you actually need.
## Method Doctrine
The repository now treats method as a first-class asset instead of scattered guidance.
- [Skill Engineering Method](references/skill-engineering-method.md)
- [Intent Dialogue](references/intent-dialogue.md)
- [Reference Scan Strategy](references/reference-scan.md)
- [Pattern Extraction Doctrine](references/pattern-extraction-doctrine.md)
- [Output Quality Risk](references/output-quality-risk.md)
- [Authoring Discipline](references/authoring-discipline.md)
- [Skill Archetypes](references/skill-archetypes.md)
- [Gate Selection](references/gate-selection.md)
- [Iteration Philosophy](references/iteration-philosophy.md)
- [Non-Skill Decision Tree](references/non-skill-decision-tree.md)
- [Regression Cause Taxonomy](references/regression-cause-taxonomy.md)
- [Human Review Template](references/human-review-template.md)
## Why It Exists
Most teams keep valuable operating knowledge scattered across chats, personal prompts, oral habits, and undocumented workflows. This project converts that hidden process knowledge into:
- discoverable skill packages
- repeatable execution flows
- lower-context instructions
- reusable team assets
- compatibility-ready distributions
## Repository Structure
```text
yao-meta-skill/
├── SKILL.md
├── README.md
├── VERSION
├── LICENSE
├── .gitignore
├── agents/
│ └── interface.yaml
├── evals/
├── examples/
├── references/
├── scripts/
└── templates/
```
## Core Components
### `SKILL.md`
The main skill entrypoint. It defines the trigger surface, operating modes, compact workflow, and output contract.
### `agents/interface.yaml`
The neutral metadata source of truth. It stores display and compatibility metadata without locking the source tree to one vendor-specific path.
### `references/`
Long-form material that should not bloat the main skill file. This includes design rules, evaluation guidance, compatibility strategy, and quality rubrics.
### `scripts/`
Utility scripts that make the meta-skill operational:
- `trigger_eval.py`: evaluates trigger descriptions with semantic intent concepts, explicit exclusions, and near-neighbor prompts
- `run_eval_suite.py`: runs train/dev/holdout trigger suites, reports family-level regressions, and fails if aggregate regressions appear
- `optimize_description.py`: generates candidate descriptions, scores them on dev, visible holdout, blind holdout, and adversarial holdout suites, then reports calibration and family health
- `judge_blind_eval.py`: applies an independent rubric judge to blind-holdout prompts so blind acceptance is not backed only by the main threshold scorer
- `run_description_optimization_suite.py`: runs description optimization across the root skill and governed examples, then writes reusable reports and optional drift snapshots with calibration and family summaries
- `promotion_checker.py`: applies promotion policy to current description candidates, writes promotion decisions, builds candidate registries, and emits iteration bundles with review stubs
- `create_iteration_snapshot.py`: freezes the current promotion decision into a versioned release snapshot with review, route, and context evidence
- `yao.py`: unified authoring CLI that exposes init, validate, optimize-description, promote-check, python-compat, review, release-snapshot, workspace-flow, report, skill-report, skill-interpretation, skill-ir, compile-skill, output-exec, output-review, skill-os2-audit, skill-os2-coverage, world-class-evidence, world-class-ledger, world-class-intake, world-class-preflight, world-class-submission-kit, world-class-submission-review, world-class-runbook, world-class-claim-guard, benchmark-reproducibility, evidence-consistency, adapt-scan, adapt-propose, adapt-apply, daily-skillops, weekly-curator, telemetry-emit, telemetry-hooks, telemetry-import, package, registry-audit, package-verify, install-simulate, upgrade-check, review-waivers, and test as one entrypoint
- `render_description_drift_history.py`: turns description-optimization snapshots into a readable drift-history report
- `build_confusion_matrix.py`: scores route confusion across tracked sibling skills and `no_route` cases, then writes a route scorecard and optional milestone snapshot
- `render_iteration_ledger.py`: compresses regression milestones, description optimization drift, and route scorecards into one iteration-facing ledger
- `context_sizer.py`: estimates context weight and warns when the initial load gets too large
- `resource_boundary_check.py`: audits whether detail is split across `SKILL.md`, `references/`, `scripts/`, `assets/`, and `evals/` appropriately
- `governance_check.py`: validates owner, review cadence, lifecycle stage, and maturity metadata
- `render_context_reports.py`: generates root and example context-budget reports plus a shared context summary
- `render_regression_history.py`: turns milestone snapshots into a readable regression history report
- `render_skill_os2_audit.py`: renders a requirement-by-requirement Skill OS 2.0 audit that separates landed local evidence from human-required and external-required gaps
- `render_skill_os2_coverage.py`: maps the Skill OS 2.0 upgrade blueprint to local artifacts, commands, tests, and remaining evidence boundaries
- `render_daily_skillops_report.py`: renders an explicit-source Daily SkillOps operations report that summarizes redacted user patterns, proposal-only adaptations, approval state, release evidence, and world-class evidence gaps without scanning private logs or applying patches
- `render_weekly_curator_report.py`: renders a weekly SkillOps curator report from generated daily reports, Skill Atlas, benchmark lock, evidence consistency, and world-class ledger state without scanning private logs or applying patches
- `skillops_opportunity.py`: scores redacted SkillOps opportunities and maps them to approval-gated action types such as report-only, AGENTS update, existing-skill patch, or eval addition
- `render_world_class_evidence_plan.py`: renders executable evidence tasks for remaining world-class gaps without treating planned external work as completed evidence
- `render_world_class_evidence_ledger.py`: renders a machine-checkable ledger for current world-class evidence acceptance, anti-overclaim guards, provenance requirements, and privacy contracts
- `render_world_class_evidence_intake.py`: validates world-class external and human evidence packets against provenance, privacy, artifact, and anti-overclaim requirements before ledger review
- `render_world_class_preflight.py`: renders redacted collection preflight checks for pending provider, human, native-permission, and native-client evidence without accepting evidence
- `render_world_class_submission_review.py`: renders a read-only queue that compares submissions, intake validation, source evidence, and ledger state without accepting evidence
- `render_world_class_operator_runbook.py`: renders an operator-facing checklist and command map for collecting pending world-class evidence without accepting evidence
- `render_world_class_claim_guard.py`: scans README, docs, and reports for premature world-class completion claims while accepted evidence is still pending
- `render_benchmark_reproducibility.py`: renders methodology, artifact, failure-disclosure, and reproduction-command evidence for public benchmark claims
- `render_evidence_consistency.py`: compares generated report facts across benchmark reproducibility, overview, interpretation, adoption drift, world-class ledger, coverage, and Review Studio artifacts
- `python_compat_check.py`: checks Python source for supported-runtime compatibility hazards such as Python 3.11 f-string expression backslashes
- `cross_packager.py`: builds client-specific export artifacts from Skill IR plus neutral metadata, with explicit platform contracts and validation
- `render_portability_report.py`: scores cross-environment portability from neutral metadata, degradation rules, and consumer validation coverage
- `render_skill_overview.py`: generates the white-background bilingual HTML skill audit report with sticky four-character Chinese navigation, top-right language switch, v2 scorecard, inline SVG charts, contract boundary, quality review, risk governance, assets, and iteration roadmap
- `render_skill_interpretation.py`: renders `reports/skill-interpretation.html/json` as the first-class post-creation interpretation report while reusing the Skill Overview v2 model and Kami white layout
- `export_skill_ir.py`: exports the 2.0 platform-neutral Skill IR contract from `SKILL.md`, manifest, interface metadata, evals, resources, and reports
- `compile_skill.py`: compiles Skill IR into target-specific semantic contracts, generated-file maps, adapter modes, target-native behavior contracts, preserved semantics, warnings, and unsupported-feature notes
- `run_output_eval.py`: runs the Output Eval Lab v0 with static with-skill vs baseline assertion grading, blind A/B review pack generation, and separate answer key artifacts
- `run_output_execution.py`: records output-eval execution evidence, distinguishing recorded fixtures, command runners, and provider-backed model runs with timing and token metadata
- `local_output_eval_runner.py`: deterministic local runner for command-executed output-eval smoke evidence without claiming provider-backed model generation
- `adjudicate_output_review.py`: records reviewer choices for blind A/B output evals, compares them with the answer key, and renders pending, match, disagreement, and invalid-decision audit reports
- `render_review_annotations.py`: records reviewer annotations tied to Review Studio gates, source/report paths, and optional line numbers, with open blocker annotations reflected in Review Studio decisions
- `run_conformance_suite.py`: verifies runtime conformance for OpenAI, Claude, Agent Skills, VS Code/Copilot-style, and generic targets
- `trust_check.py`: generates the trust/security report for scripts, dependencies, secret risk, bounded network host policy, execution-level `--help` smoke checks, permission inputs, trust metadata, and stable source-contract integrity
- `build_skill_atlas.py`: builds the Skill Atlas catalog, route-overlap matrix, dependency graph, stale report, owner gaps, aggregate drift signals, and HTML overview for a multi-skill workspace
- `registry_audit.py`: builds registry package metadata and audits version, owner, license, checksum, Skill IR source, and compatibility matrix
- `verify_package.py`: verifies generated package manifests, target adapters, zip archive safety, archive checksum, and registry parity
- `simulate_install.py`: extracts a generated zip into a temporary skill root and verifies entrypoint, manifest, interface, reports, and adapters can be loaded
- `upgrade_check.py`: compares current and previous registry package metadata, recommends a version bump, and blocks incompatible upgrade claims
- `render_adoption_drift_report.py`: records metadata-only local telemetry and renders adoption, missed-trigger, bad-output, script-error, and review-drift signals without packaging raw event logs
- `import_telemetry_events.py`: imports external metadata-only telemetry JSONL after whole-file privacy validation, then refreshes the aggregate adoption drift report
- `emit_telemetry_event.py`: emits one metadata-only external client event into a local spool for later `telemetry-import`, with dry-run validation and raw-content field blocking
- `render_telemetry_hook_recipes.py`: renders Browser, Chrome, VS Code, CLI wrapper, and provider-adapter telemetry hook recipes with dry-run commands and explicit native-integration caveats
- `telemetry_native_host.py`: receives Browser/Chrome Native Messaging length-prefixed JSON events, rejects raw-content fields, appends metadata-only events, and writes local launcher/manifest files for operator installation
- `yao_cli_telemetry.py`: opt-in metadata-only `yao.py` run capture for command name, source, outcome, and failure class without command arguments or raw content
- `render_review_waivers.py`: validates human reviewer risk approvals with gate keys, reasons, expiry dates, and blocker-safe waiver policy
- `init_skill.py`, `lint_skill.py`, `validate_skill.py`, `diff_eval.py`: minimal authoring toolchain
- `check_update.py`: checks GitHub for a newer `VERSION` or remote manifest version and reports a reinstall hint without modifying local files
- `render_output_risk_profile.py`: predicts output-specific failure modes such as generic headings, citation clutter, screenshot mistakes, weak Markdown tables, and missing execution assumptions
### `evals/`
Reusable trigger and packaging checks, including baseline and improved descriptions for comparison plus the root semantic configuration that drives description optimization.
This directory also contains route confusion fixtures and promotion policy rules for deciding when a route is promotable.
### `examples/`
End-to-end examples showing raw workflow input, design summary, final generated skill shape, and targeted description-optimization packs where route wording is tuned against example-specific dev and holdout cases.
### `.github/workflows/test.yml`
Continuous integration entrypoint that runs the full local regression suite on push and pull request.
## Validation Notes
- Trigger evaluation now uses a local semantic-intent model with explicit positive concepts, exclusion concepts, and boundary-case reporting.
- The sample trigger report now covers a larger positive, negative, and near-neighbor set rather than a tiny demo set.
- Train/dev/holdout trigger suites now separate iterative tuning from final verification.
- Description optimization now uses dev for ranking, visible holdout for non-regression, blind holdout for acceptance, and adversarial holdout for harder route-collision checks without feeding the ranking loop.
- Judge-backed blind eval now adds a rubric-based second opinion for blind prompts, so blind acceptance is not decided by one scorer alone.
- Description drift history now records adversarial calibration gaps and family coverage, so routing changes can be judged on confidence and family stability rather than raw error counts alone.
- Route confusion is now tracked explicitly across the root meta-skill, frontend review skill, governed incident skill, and `no_route` cases, so route theft is visible instead of implicit.
- Promotion policy now requires visible holdout, blind holdout, adversarial holdout, and route confusion to stay clean before a description should be considered promotable.
- Promotion checking now emits explicit decisions, candidate lifecycle states, iteration bundles, and human-review stubs rather than leaving promotion as a prose-only step.
- Promotion decisions now distinguish “no candidate beat current” from “current still has residual route risk,” so iteration can be audited without forcing every issue into a false block.
- Packaging validation now uses explicit contracts and YAML parsing, but it is still a lightweight local validation layer rather than a full platform integration suite.
- `evals/failure-cases.md` captures known weak spots that should remain part of regression checks.
- `failures/` captures reusable anti-pattern writeups and machine-runnable failure cases for routing, packaging, and authoring failures.
- `tests/verify_packager_failures.py` checks that invalid metadata, invalid YAML, and unsupported targets fail clearly.
- Governance metadata and resource-boundary rules now have runnable checks instead of staying as prose only.
- Governance checks now emit a maturity score so governed assets can be compared instead of only pass/fail checked.
- Description optimization drift history is now versioned separately from the main trigger regression history so routing improvements are visible over time.
- Iteration evidence now records why a candidate was kept, blocked, or promotable via a shared regression-cause taxonomy and bundle artifacts.
- Declared maturity tiers are checked against recommended minimum governance scores, so `production`, `library`, and `governed` assets can be compared without forcing every strong example into the same label.
- Context budgets are now tiered and explicit, so a governed skill can still choose a stricter `production`-sized initial-load budget.
- Resource-boundary checks now detect decorative directories and compute a local quality-density signal instead of only checking raw token counts.
### `templates/`
Starter templates for simple and more advanced skill packages.
## How To Use
### 1. Use the skill directly
Invoke `yao-meta-skill` when you want to:
- create a new skill
- improve an existing skill
- add evals to a skill
- convert a workflow into a reusable package
- prepare a skill for wider team adoption
### 2. Generate a new skill package
The typical flow is:
1. describe the workflow or capability
2. identify trigger phrases and outputs
3. choose scaffold, production, or library mode
4. generate the package
5. run the sizing and trigger checks if needed
6. export target-specific compatibility artifacts from the Skill IR contract
### 3. Export compatibility artifacts
Examples:
```bash
python3 scripts/export_skill_ir.py ./yao-meta-skill --output-json ./yao-meta-skill/reports/skill-ir.json
python3 scripts/compile_skill.py ./yao-meta-skill --target openai --target claude --target generic
python3 scripts/cross_packager.py ./yao-meta-skill --platform openai --platform claude --expectations evals/packaging_expectations.json --zip
python3 scripts/context_sizer.py ./yao-meta-skill
python3 scripts/resource_boundary_check.py ./yao-meta-skill
python3 scripts/governance_check.py ./yao-meta-skill --require-manifest
python3 scripts/trigger_eval.py --description-file evals/improved_description.txt --cases evals/trigger_cases.json --baseline-description-file evals/baseline_description.txt
```
## Advantages
- **Method-first, not prompt-first**: skill creation is treated as a formal engineering workflow with archetypes, gate selection, and non-skill decisions.
- **Trigger-aware by design**: descriptions are optimized with route confusion, blind holdout, adversarial families, and promotion policy instead of one-shot intuition.
- **Lightweight at the entrypoint**: `SKILL.md` stays compact while references, scripts, and evals are only added when they pay for themselves.
- **Toolchain-backed**: initialization, validation, optimization, reporting, packaging, and testing are available through one unified CLI and CI path.
- **Governed as an asset**: important skills can carry ownership, lifecycle state, maturity expectations, and review cadence.
- **Portable by default**: source metadata stays neutral while adapters and degradation rules preserve compatibility across target environments.
- **Evidence-rich**: route scorecards, regression history, context budgets, portability scores, and promotion decisions are published as artifacts instead of hidden implementation detail.
## Best Fit
This project is best for:
- agent builders
- internal tooling teams
- prompt engineers moving toward structured skills
- organizations building reusable skill libraries
## Documentation
| Language | Entry |
| --- | --- |
| English | [README.md](README.md) |
| 中文 | [docs/README.zh-CN.md](docs/README.zh-CN.md) |
| 日本語 | [docs/README.ja-JP.md](docs/README.ja-JP.md) |
| Français | [docs/README.fr-FR.md](docs/README.fr-FR.md) |
| Русский | [docs/README.ru-RU.md](docs/README.ru-RU.md) |
## Examples And Evals
- Examples: [examples/README.md](examples/README.md)
- Evals: [evals/README.md](evals/README.md)
- Failure library: [failures/README.md](failures/README.md)
- Failure regression check: [verify_failure_regressions.py](tests/verify_failure_regressions.py)
- Regression history: [reports/regression_history.md](reports/regression_history.md)
- Root governance score: [reports/governance_score.json](reports/governance_score.json)
- Packaging contracts: [references/packaging-contracts.md](references/packaging-contracts.md)
- Governance model: [references/governance.md](references/governance.md)
- Resource boundary spec: [references/resource-boundaries.md](references/resource-boundaries.md)
- Platform capability matrix: [references/platform-capability-matrix.md](references/platform-capability-matrix.md)
- Failure fixtures: [tests/fixtures](tests/fixtures)
- Adapter snapshots: [tests/snapshots](tests/snapshots)
- Evolution example: [examples/evolution-frontend-review/README.md](examples/evolution-frontend-review/README.md)
- Governed example: [examples/governed-incident-command/design-summary.md](examples/governed-incident-command/design-summary.md)
- Governed example score: [examples/governed-incident-command/generated-skill/reports/governance_score.json](examples/governed-incident-command/generated-skill/reports/governance_score.json)
## License
MIT. See [LICENSE](LICENSE).
+7
View File
@@ -0,0 +1,7 @@
# WeHub 来源说明
- 原始项目:`frostbyte_neo/yao-meta-skill`
- 原始仓库:https://gitea-dev.autobee.pro/frostbyte_neo/yao-meta-skill
- 导入方式:上游默认分支的最新快照
- 原作者、版权和许可证信息以原始仓库及本仓库 LICENSE 为准
- 本文件仅用于记录来源,不代表 WeHub 是原项目作者
+53
View File
@@ -0,0 +1,53 @@
---
name: yao-meta-skill
description: Create/improve/evaluate agent skills from workflows, prompts, SOPs, scripts. Use for migration/release/package, routing, evals/tests, install checks, 优化已有 skill, 补 trigger 评测. Exclude no-skill summary/translation/docs.
metadata:
author: Yao Team
---
# Yao Meta Skill
## Router Rules
- Route by frontmatter `description`.
- Keep `SKILL.md` lean; put guidance in `references/`, logic in `scripts/`, and evidence in `reports/`.
- Use the lightest reliable process.
## Modes
- `Scaffold`: exploratory/personal. `Production`: team reuse. `Library`: shared infra. `Governed`: high-trust/release-critical.
- Rules: [Method](references/skill-engineering-method.md), [Operating Modes](references/operating-modes.md), [Resource Boundaries](references/resource-boundaries.md).
## Compact Workflow
1. One-off/no reusable process: `Do not create a skill`; `near-neighbor`; require `repeated use` + `reusable output contract`.
2. Capture job, output, exclusions, constraints, standards, lightest fit.
3. Scan up to `3-5` references: external, user, local; skip tiny edits; surface only uncertainty/conflict.
4. Write `description` early; route/boundary edits need `trigger_eval.py`; releases need risk-matched gates before folders.
5. Add output-risk, artifact-design, prompt-quality, system-model, next directions only when earned.
Playbooks: [Method](references/skill-engineering-method.md), [Intent](references/intent-dialogue.md), [Skill IR](references/skill-ir-method.md), [Output Eval](references/output-eval-method.md), [Review Studio](references/review-studio-method.md).
## Skill OS 2.0 Gates
For production/library/governed/team releases, run Skill IR, compiler, trigger/output eval, Skill Atlas, conformance, trust, registry/package/install, upgrade, drift, waiver, Review Studio.
## Governed Package Boundary
For file-backed/release-critical/governed packages, name `input_files` as `file-backed fixture`; include `owner`, `review cadence`, `input_files`, `output contract`, `rollback boundary`; require `trust report` and `reports/output_quality_scorecard.md`; mark unavailable telemetry/approvals/metrics/benchmarks as `missing evidence`; do not fabricate evidence.
Preserve labels literally when they apply: `file-backed fixture`, `input_files`, `output contract`, `rollback boundary`, `trust report`, `reports/output_quality_scorecard.md`, `missing evidence`.
## First-Turn Style
- Start from the user's work/outcome before structure.
- Ask only `2-3` key questions unless enough detail exists.
- In Chinese, sound soft and companion-like; use [Intent Dialogue](references/intent-dialogue.md).
## Output Contract
Create/refactor/package: produce `SKILL.md`, aligned `agents/interface.yaml`, justified assets, boundary/exclusion/gate summary. Audit/evaluate-only: findings + proposed fixes; edit files only if asked. No-skill: no files.
## Reference Map
Primary: [Method](references/skill-engineering-method.md), [Artifact Design](references/artifact-design-doctrine.md), [Systems](references/systems-thinking-doctrine.md), [Governance](references/governance.md), [SkillOps](references/skillops-decision-policy.md).
+1
View File
@@ -0,0 +1 @@
1.1.0
+26
View File
@@ -0,0 +1,26 @@
interface:
display_name: "Yao Meta Skill"
short_description: "Create trigger-aware agent skills"
default_prompt: "Use $yao-meta-skill to turn my workflow or notes into a reusable skill with lean structure, clear triggering, and the right evals."
compatibility:
canonical_format: "agent-skills"
adapter_targets:
- "openai"
- "claude"
- "generic"
- "vscode"
activation:
mode: "manual"
paths: []
execution:
context: "inline"
shell: "bash"
trust:
source_tier: "local"
remote_inline_execution: "forbid"
remote_metadata_policy: "allow-metadata-only"
degradation:
openai: "metadata-adapter"
claude: "neutral-source-plus-adapter"
generic: "neutral-source"
vscode: "agent-skills-source-with-vscode-notes"
+749
View File
@@ -0,0 +1,749 @@
:root {
--ink: #1B365D;
--text: #24201d;
--muted: #746d66;
--line: #e7ded2;
--soft: #faf8f5;
--pass: #1e6b52;
--warn: #9a6718;
--block: #9b2c2c;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background: #ffffff;
color: var(--text);
font-family: Georgia, "Times New Roman", "Songti SC", serif;
line-height: 1.58;
}
nav {
position: sticky;
top: 0;
z-index: 10;
display: flex;
gap: 4px;
justify-content: center;
flex-wrap: wrap;
padding: 10px 16px;
background: rgba(255,255,255,0.94);
border-bottom: 1px solid var(--line);
backdrop-filter: blur(10px);
}
nav a {
color: var(--ink);
text-decoration: none;
font-size: 14px;
padding: 7px 10px;
border-radius: 6px;
}
nav a:hover { background: var(--soft); }
main { max-width: 1180px; margin: 0 auto; padding: 44px 28px 76px; }
header { border-bottom: 1px solid var(--line); padding-bottom: 28px; margin-bottom: 28px; }
.eyebrow { color: var(--ink); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
h1, h2, h3 { color: var(--text); font-weight: 500; margin: 0; letter-spacing: 0; }
h1 { font-size: clamp(34px, 5vw, 64px); line-height: 1.03; max-width: 920px; margin-top: 12px; }
h2 { font-size: 30px; margin-bottom: 14px; }
h3 { font-size: 19px; }
p { margin: 0; }
.lede { max-width: 820px; color: var(--muted); font-size: 20px; margin-top: 18px; }
.decision {
display: inline-flex;
align-items: baseline;
gap: 12px;
margin-top: 24px;
padding: 12px 16px;
border: 1px solid var(--line);
border-radius: 8px;
color: var(--ink);
background: var(--soft);
}
.decision strong { font-size: 28px; }
section { padding: 30px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 76px; }
.metrics, .gates {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 14px;
}
.gates { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.metric, .gate {
border: 1px solid var(--line);
border-radius: 8px;
padding: 16px;
background: #fff;
min-width: 0;
}
.metric span, .gate span { display: block; color: var(--muted); font-size: 13px; }
.metric strong { display: block; color: var(--ink); font-size: 34px; line-height: 1.1; margin: 8px 0; }
.metric p, .gate p, .gate footer, .issues span, .evidence span { color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.gate { display: flex; flex-direction: column; gap: 10px; }
.gate.pass { border-top: 4px solid var(--pass); }
.gate.warn { border-top: 4px solid var(--warn); }
.gate.block { border-top: 4px solid var(--block); }
.gate footer { border-top: 1px solid var(--line); padding-top: 10px; }
a { color: var(--ink); }
.twocol {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
gap: 22px;
align-items: start;
}
.panel {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
}
.panel p { color: var(--muted); }
.kv-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px 12px;
margin: 2px 0 0;
}
.kv-grid div {
min-width: 0;
padding: 9px 0 0;
border-top: 1px solid var(--line);
}
.kv-grid dt {
color: var(--muted);
font-size: 13px;
}
.kv-grid dd {
margin: 2px 0 0;
color: var(--ink);
font-size: 15px;
overflow-wrap: anywhere;
}
.issues, .evidence {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 12px;
}
.issues li, .evidence li {
border-left: 3px solid var(--line);
padding-left: 12px;
display: grid;
gap: 3px;
}
.muted { color: var(--muted); }
.actions-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.annotations-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.action-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 10px;
min-width: 0;
}
.action-card.warn { border-left: 4px solid var(--warn); }
.action-card.block { border-left: 4px solid var(--block); }
.action-card.with-evidence {
grid-column: 1 / -1;
}
.action-evidence-panel {
display: grid;
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
margin-top: 2px;
}
.action-evidence-panel h4 {
margin: 0;
color: var(--ink);
font-size: 16px;
font-weight: 500;
}
.action-evidence-panel p {
color: var(--muted);
font-size: 14px;
}
.action-evidence-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
}
.action-evidence-item {
border: 1px solid var(--line);
border-radius: 8px;
padding: 14px;
display: grid;
gap: 10px;
min-width: 0;
background: var(--soft);
}
.action-evidence-item.pending { border-left: 4px solid var(--warn); }
.action-evidence-item.accepted { border-left: 4px solid var(--pass); }
.action-evidence-item h4,
.action-evidence-item h5 {
margin: 0;
color: var(--ink);
font-weight: 500;
}
.action-evidence-item h4 { font-size: 16px; }
.action-evidence-item h5 { font-size: 14px; }
.action-evidence-item section {
border-top: 1px solid var(--line);
padding-top: 10px;
display: grid;
gap: 8px;
}
.action-command-details,
.action-phase-details,
.action-runbook-details,
.action-collection-details {
border-top: 1px solid var(--line);
padding-top: 10px;
display: grid;
gap: 8px;
}
.action-command-details summary,
.action-phase-details summary,
.action-runbook-details summary,
.action-collection-details summary {
cursor: pointer;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.action-command-details[open] summary,
.action-phase-details[open] summary,
.action-runbook-details[open] summary,
.action-collection-details[open] summary {
margin-bottom: 8px;
}
.action-collection-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.action-collection-grid section {
border-top: 1px solid var(--line);
padding-top: 8px;
display: grid;
gap: 6px;
}
.action-collection-grid ul,
.action-collection-grid ol {
margin: 0;
padding-left: 18px;
display: grid;
gap: 5px;
}
.action-collection-grid li {
color: var(--muted);
font-size: 13px;
overflow-wrap: anywhere;
}
.action-artifact-roles {
padding: 0;
margin: 0;
list-style: none;
display: grid;
gap: 8px;
}
.action-artifact-roles li {
border: 1px solid var(--line);
border-radius: 8px;
background: #fff;
padding: 10px;
display: grid;
gap: 4px;
min-width: 0;
}
.action-artifact-roles strong {
color: var(--ink);
font-weight: 500;
overflow-wrap: anywhere;
}
.action-artifact-roles span,
.action-artifact-roles code,
.action-artifact-roles small {
color: var(--muted);
font-size: 12px;
overflow-wrap: anywhere;
white-space: normal;
}
.action-evidence-item dl {
display: grid;
grid-template-columns: 76px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.action-evidence-item dt {
color: var(--ink);
font-size: 14px;
}
.action-evidence-item dd {
margin: 0;
min-width: 0;
}
.action-evidence-checks,
.action-phase-list,
.action-command-list,
.action-repair-list,
.action-runbook-list {
margin: 0;
display: grid;
gap: 8px;
}
.action-evidence-checks,
.action-phase-list,
.action-repair-list,
.action-command-list {
padding: 0;
list-style: none;
}
.action-runbook-list {
padding-left: 20px;
}
.action-evidence-check,
.action-phase-row,
.action-repair-row,
.action-command-list li {
display: grid;
gap: 3px;
min-width: 0;
border-top: 1px solid var(--line);
padding-top: 8px;
}
.action-evidence-check.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.action-evidence-check.pass { border-left: 3px solid var(--pass); padding-left: 8px; }
.action-phase-row.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.action-phase-row.ready { border-left: 3px solid var(--pass); padding-left: 8px; }
.action-repair-row.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.action-repair-row.ready { border-left: 3px solid var(--pass); padding-left: 8px; }
.action-evidence-check span,
.action-phase-row span,
.action-repair-row span,
.action-command-list span {
color: var(--ink);
font-size: 13px;
}
.action-phase-row strong,
.action-repair-row strong {
color: var(--ink);
font-size: 14px;
overflow-wrap: anywhere;
}
.action-phase-row em,
.action-repair-row em {
color: var(--muted);
font-size: 12px;
font-style: normal;
overflow-wrap: anywhere;
}
.action-evidence-check code,
.action-evidence-check small,
.action-phase-row code,
.action-phase-row small,
.action-repair-row code,
.action-repair-row small,
.action-command-list code,
.action-runbook-list li {
color: var(--muted);
font-size: 13px;
overflow-wrap: anywhere;
}
.action-command-list code {
display: block;
white-space: normal;
}
.annotation-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 10px;
min-width: 0;
}
.annotation-card.warning { border-left: 4px solid var(--warn); }
.annotation-card.blocker { border-left: 4px solid var(--block); }
.annotation-card.resolved { opacity: .72; }
.world-evidence-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.world-evidence-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.world-evidence-card.pending { border-left: 4px solid var(--warn); }
.world-evidence-card.accepted { border-left: 4px solid var(--pass); }
.world-evidence-card span,
.world-evidence-card p,
.world-evidence-card dd,
.world-evidence-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.world-evidence-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.world-evidence-card dt { color: var(--ink); font-size: 14px; }
.world-evidence-card dd { margin: 0; }
.world-evidence-columns {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-evidence-columns h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-evidence-columns ul {
margin: 0;
padding-left: 18px;
}
.world-source-panel {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-runbook-panel {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-runbook-panel h4,
.world-source-panel h4 {
margin: 0 0 8px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-runbook-panel ul {
margin: 0;
padding-left: 18px;
}
.world-source-checks {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 8px;
}
.world-source-check {
display: grid;
grid-template-columns: minmax(0, .7fr) minmax(0, .6fr) minmax(0, 1fr);
gap: 10px;
align-items: start;
min-width: 0;
padding: 9px 0 0;
border-top: 1px solid var(--line);
}
.world-source-check span {
color: var(--ink);
font-size: 14px;
}
.world-source-check code,
.world-source-check small {
color: var(--muted);
font-size: 13px;
overflow-wrap: anywhere;
}
.world-source-check.pass { border-left: 3px solid var(--pass); padding-left: 8px; }
.world-source-check.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.output-review-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.output-review-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.output-review-card.awaiting-decision,
.output-review-card.fix-decision { border-left: 4px solid var(--warn); }
.output-review-card.adjudicated { border-left: 4px solid var(--pass); }
.output-review-card span,
.output-review-card p,
.output-review-card dd,
.output-review-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.output-review-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.output-review-card dt { color: var(--ink); font-size: 14px; }
.output-review-card dd { margin: 0; min-width: 0; }
.output-review-steps {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.output-review-steps h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.output-review-steps ul {
margin: 0;
padding-left: 18px;
}
.output-review-commands,
.output-review-fields {
list-style: none;
padding: 0;
display: grid;
gap: 8px;
}
.output-review-commands li,
.output-review-fields li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.output-review-commands code {
overflow-wrap: anywhere;
white-space: normal;
display: block;
}
.world-intake-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.world-intake-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.world-intake-card.awaiting-submission,
.world-intake-card.fix-submission,
.world-intake-card.fix-template { border-left: 4px solid var(--warn); }
.world-intake-card.ready-for-ledger-review,
.world-intake-card.accepted { border-left: 4px solid var(--pass); }
.world-intake-card span,
.world-intake-card p,
.world-intake-card dd,
.world-intake-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.world-intake-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.world-intake-card dt { color: var(--ink); font-size: 14px; }
.world-intake-card dd { margin: 0; min-width: 0; }
.world-intake-steps {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-intake-steps h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-intake-steps ul {
margin: 0;
padding-left: 18px;
}
.world-intake-commands {
list-style: none;
padding: 0;
display: grid;
gap: 8px;
}
.world-intake-commands li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.world-intake-commands code {
overflow-wrap: anywhere;
white-space: normal;
display: block;
}
.section-subtitle {
margin-top: 22px;
margin-bottom: 12px;
color: var(--ink);
}
.waiver-summary { margin-top: 16px; }
.waiver-candidate-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
}
.waiver-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.waiver-card.allowed { border-left: 4px solid var(--warn); }
.waiver-card.blocked { border-left: 4px solid var(--block); }
.waiver-card span,
.waiver-card p,
.waiver-card dd,
.waiver-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.waiver-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.waiver-card dt {
color: var(--ink);
font-size: 14px;
}
.waiver-card dd { margin: 0; min-width: 0; }
.waiver-review {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.waiver-review h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.waiver-review ul {
margin: 0;
padding-left: 18px;
}
.waiver-command {
display: grid;
gap: 4px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.waiver-command span {
color: var(--ink);
font-size: 14px;
}
.waiver-command code {
display: block;
max-width: 100%;
overflow-wrap: anywhere;
white-space: normal;
}
.action-card span,
.annotation-card span,
.action-card small,
.annotation-card small,
.action-card footer,
.annotation-card footer,
.action-card dd {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.annotation-card dd { color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.action-card dl, .annotation-card dl {
display: grid;
grid-template-columns: 80px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.action-card dt, .annotation-card dt { color: var(--ink); font-size: 14px; }
.action-card dd, .annotation-card dd { margin: 0; }
.source-ref-list {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 6px;
}
.source-ref-list li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.source-ref-list a,
.source-ref-list span {
overflow-wrap: anywhere;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 13px;
}
.source-ref-list small {
font-size: 12px;
color: var(--muted);
}
.source-ref-list blockquote {
margin: 2px 0 0;
padding: 7px 9px;
border-left: 3px solid var(--line);
background: var(--soft);
color: var(--muted);
font-size: 12px;
overflow-wrap: anywhere;
}
code {
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 13px;
}
@media (max-width: 980px) {
.metrics, .gates, .twocol, .actions-grid, .annotations-grid, .action-evidence-grid, .action-evidence-item dl, .action-collection-grid, .output-review-grid, .output-review-steps, .world-evidence-grid, .world-evidence-columns, .world-source-check, .world-intake-grid, .world-intake-steps, .waiver-candidate-grid, .waiver-card dl, .kv-grid { grid-template-columns: 1fr; }
main { padding: 32px 18px 60px; }
nav { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; }
nav a { flex: 0 0 auto; }
}
+176
View File
@@ -0,0 +1,176 @@
:root {
--text: #111111;
--muted: #666666;
--line: #e8e8e8;
--soft: #f6f6f4;
--white: #ffffff;
}
* { box-sizing: border-box; }
body {
margin: 0;
background: var(--white);
color: var(--text);
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 1.6;
}
.page {
max-width: 1120px;
margin: 0 auto;
padding: 48px 32px 72px;
}
.hero {
padding-bottom: 28px;
border-bottom: 1px solid var(--line);
margin-bottom: 28px;
}
h1, h2, h3 {
margin: 0 0 12px;
letter-spacing: -0.02em;
font-weight: 600;
}
h1 { font-size: 40px; line-height: 1.08; }
h2 { font-size: 22px; margin-top: 34px; }
h3 { font-size: 16px; }
p, li, span { font-size: 15px; }
.lede {
max-width: 860px;
font-size: 18px;
color: var(--muted);
margin: 0 0 18px;
}
.meta {
display: flex;
gap: 10px;
flex-wrap: wrap;
margin-top: 16px;
}
.meta span {
border: 1px solid var(--line);
padding: 6px 10px;
background: var(--soft);
}
.arch-grid {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 12px;
margin-top: 16px;
}
.arch-step, .panel, .direction-card, .baseline-box {
border: 1px solid var(--line);
background: var(--white);
}
.arch-step {
padding: 14px;
min-height: 132px;
}
.step-label {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--muted);
margin-bottom: 10px;
}
.step-detail {
font-size: 14px;
}
.grid {
display: grid;
grid-template-columns: 1.1fr 0.9fr;
gap: 18px;
margin-top: 16px;
}
.panel {
padding: 18px;
}
.panel ul {
margin: 0;
padding-left: 18px;
}
.direction-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin-top: 16px;
}
.variant-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin-top: 16px;
}
.direction-card {
padding: 18px;
}
.direction-card ul {
margin: 12px 0;
padding-left: 18px;
}
.minor {
color: var(--muted);
font-size: 13px;
}
.variant-card {
border: 1px solid var(--line);
background: var(--white);
padding: 18px;
}
.variant-head {
display: flex;
justify-content: space-between;
gap: 12px;
align-items: baseline;
}
.variant-head span {
color: var(--muted);
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.variant-description {
margin: 14px 0;
padding-left: 14px;
border-left: 2px solid var(--line);
color: var(--text);
}
.variant-metrics {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 14px;
}
.variant-metrics span {
border: 1px solid var(--line);
background: var(--soft);
padding: 6px 10px;
font-size: 12px;
}
.variant-cues p {
margin: 8px 0 6px;
}
.variant-cues ul {
margin: 0 0 12px;
padding-left: 18px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 14px;
font-size: 14px;
}
th, td {
border-top: 1px solid var(--line);
text-align: left;
padding: 10px 8px;
vertical-align: top;
}
th {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--muted);
}
@media (max-width: 1000px) {
.arch-grid, .direction-grid, .variant-grid, .grid {
grid-template-columns: 1fr;
}
}
+735
View File
@@ -0,0 +1,735 @@
:root {
--paper: #ffffff;
--wash: #f8fafc;
--wash-strong: #f2f5f8;
--line: #e6e0d4;
--line-soft: #eee9df;
--brand: #1B365D;
--brand-soft: #EEF3F8;
--brand-mid: #315982;
--ink: #151515;
--text: #2f2d29;
--muted: #68625a;
--faint: #8b857b;
--success: #2f6f5e;
--warn: #8a5a19;
--serif: "TsangerJinKai02", "Source Han Serif SC", "Noto Serif CJK SC", "Songti SC", "STSong", Charter, Georgia, serif;
--mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, Consolas, monospace;
--shadow-soft: 0 1px 2px rgba(27, 54, 93, 0.06), 0 16px 44px rgba(27, 54, 93, 0.08);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background: #ffffff;
color: var(--ink);
font-family: var(--serif);
line-height: 1.62;
letter-spacing: 0;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}
body[data-report-lang="zh-CN"] [data-lang="en"],
body[data-report-lang="en"] [data-lang="zh-CN"] { display: none !important; }
.skip-link {
position: fixed;
left: 18px;
top: 10px;
z-index: 40;
transform: translateY(-140%);
padding: 8px 12px;
border-radius: 8px;
background: var(--brand);
color: #fff;
text-decoration: none;
transition: transform 160ms cubic-bezier(0.16, 1, 0.3, 1);
}
.skip-link:focus-visible { transform: translateY(0); outline: 2px solid var(--brand-mid); outline-offset: 2px; }
.topbar {
position: sticky;
top: 0;
z-index: 20;
background: rgba(255, 255, 255, 0.96);
border-bottom: 1px solid var(--line);
}
.progress-track {
height: 2px;
background: transparent;
}
.progress-bar {
display: block;
width: 100%;
height: 100%;
background: var(--brand);
transition: transform 160ms cubic-bezier(0.16, 1, 0.3, 1);
transform-origin: left center;
transform: scaleX(0);
}
.topbar-inner {
max-width: 1240px;
margin: 0 auto;
padding: 9px 28px;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 18px;
align-items: center;
}
.nav-shell {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 18px;
align-items: center;
min-width: 0;
}
.report-mark {
color: var(--brand);
font-family: var(--mono);
font-size: 11px;
line-height: 1;
text-transform: uppercase;
white-space: nowrap;
}
.report-nav {
display: flex;
gap: 4px;
overflow-x: auto;
scrollbar-width: none;
min-width: 0;
}
.report-nav::-webkit-scrollbar { display: none; }
.report-nav a {
flex: 0 0 auto;
min-width: 76px;
min-height: 40px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 10px;
color: var(--brand);
text-decoration: none;
text-align: center;
font-size: 13px;
border-radius: 8px;
white-space: nowrap;
transition-property: background-color, color, transform;
transition-duration: 160ms;
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}
@media (hover: hover) {
.report-nav a:hover { background: var(--brand-soft); }
}
.report-nav a:focus-visible {
outline: 2px solid var(--brand-mid);
outline-offset: 2px;
background: var(--brand-soft);
}
.report-nav a[aria-current="true"] {
background: var(--brand);
color: #ffffff;
}
.report-nav a[aria-current="true"] span { color: #ffffff; }
.language-switch {
display: inline-flex;
gap: 3px;
padding: 3px;
border: 1px solid var(--line);
border-radius: 8px;
background: var(--paper);
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.05);
}
.language-switch button {
appearance: none;
min-width: 42px;
min-height: 34px;
border: 0;
border-radius: 6px;
padding: 0 10px;
background: transparent;
color: var(--muted);
font: inherit;
font-size: 13px;
cursor: pointer;
transition-property: background-color, color, transform;
transition-duration: 160ms;
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}
.language-switch button:active { transform: scale(0.96); }
.language-switch button:focus-visible { outline: 2px solid var(--brand-mid); outline-offset: 2px; }
.language-switch button[aria-pressed="true"] {
background: var(--brand-soft);
color: var(--brand);
}
.wrap {
max-width: 1240px;
margin: 0 auto;
padding: 58px 28px 92px;
}
.hero {
padding: 16px 0 34px;
}
.hero-grid {
display: grid;
grid-template-columns: minmax(0, 1fr) 360px;
gap: 44px;
align-items: end;
}
.eyebrow, .report-mark {
letter-spacing: 0;
}
.eyebrow {
margin: 0 0 12px;
color: var(--brand);
font-family: var(--mono);
font-size: 12px;
text-transform: uppercase;
}
.slug {
margin: 0 0 18px;
color: var(--faint);
font-family: var(--mono);
font-size: 13px;
overflow-wrap: anywhere;
}
h1, h2, h3 {
margin: 0;
font-weight: 500;
letter-spacing: 0;
text-wrap: balance;
}
h1 {
max-width: 8em;
color: var(--ink);
font-size: 4rem;
line-height: 1.02;
}
.lead {
max-width: 760px;
margin: 20px 0 0;
color: var(--text);
font-size: 1.08rem;
text-wrap: pretty;
}
.hero-meta, .badges {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 20px;
}
.hero-meta span, .badges span, .tag {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 5px 10px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 13px;
font-variant-numeric: tabular-nums;
}
.hero-card {
position: relative;
padding: 22px 22px 24px;
border-radius: 8px;
background: linear-gradient(180deg, #ffffff 0%, #fbfaf7 100%);
box-shadow: var(--shadow-soft);
border: 1px solid var(--line-soft);
}
.hero-card::before {
content: "";
position: absolute;
top: 18px;
right: 18px;
width: 38px;
height: 2px;
background: var(--brand);
}
.score-strip {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
margin-top: 32px;
padding-top: 20px;
border-top: 1px solid var(--line);
}
.score-chip {
padding: 14px 14px 12px;
border-radius: 8px;
background: var(--wash);
border: 1px solid var(--line-soft);
}
.score-chip span {
display: block;
color: var(--muted);
font-size: 12px;
}
.score-chip strong {
display: block;
margin: 5px 0 8px;
color: var(--brand);
font-family: var(--mono);
font-size: 1.65rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.score-chip i {
display: block;
height: 3px;
border-radius: 999px;
background: linear-gradient(90deg, var(--brand) var(--score), #dfe6ee var(--score));
}
.score-chip small {
display: block;
margin-top: 8px;
color: var(--muted);
font-size: 12px;
line-height: 1.45;
}
section {
scroll-margin-top: 78px;
padding-top: 44px;
margin-top: 44px;
border-top: 1px solid var(--line);
}
section.hero {
scroll-margin-top: 0;
padding-top: 16px;
margin-top: 0;
border-top: 0;
}
.section-head {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 22px;
align-items: start;
}
h2 {
color: var(--ink);
font-size: 1.5rem;
line-height: 1.18;
}
h2::before {
content: "";
display: block;
width: 32px;
height: 2px;
margin-bottom: 12px;
background: var(--brand);
}
h3 {
color: var(--ink);
font-size: 1.02rem;
line-height: 1.3;
margin-bottom: 10px;
}
.section-head > div:first-child p {
margin: 12px 0 0;
color: var(--muted);
max-width: 68ch;
text-wrap: pretty;
}
.section-body {
margin-top: 24px;
}
.two-col, .metric-grid, .chart-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
align-items: stretch;
}
.quality-panels {
margin-top: 16px;
}
.metrics-flow {
display: grid;
gap: 30px;
}
.metrics-primary {
display: grid;
grid-template-columns: minmax(360px, 0.92fr) minmax(0, 1.08fr);
gap: 22px;
align-items: start;
}
.metrics-primary .chart-figure {
min-height: 0;
display: grid;
align-content: center;
}
.metrics-primary .chart-figure svg {
max-height: 520px;
}
.metrics-note {
display: grid;
align-content: start;
gap: 14px;
}
.metrics-note p {
margin: 0;
max-width: none;
color: var(--text);
}
.metric-summary-list {
margin: 0;
padding: 0;
list-style: none;
display: grid;
gap: 10px;
}
.metric-summary-list li {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
gap: 8px 10px;
align-items: baseline;
padding: 10px 0;
border-bottom: 1px solid var(--line-soft);
}
.metric-summary-list li:last-child { border-bottom: 0; }
.metric-summary-list b {
color: var(--ink);
font-weight: 500;
}
.metric-summary-list em {
color: var(--brand);
font-family: var(--mono);
font-style: normal;
font-variant-numeric: tabular-nums;
}
.metric-summary-list small {
grid-column: 2 / 4;
color: var(--muted);
line-height: 1.5;
overflow-wrap: break-word;
}
.metric-detail-section {
display: grid;
gap: 14px;
}
.detail-section-kicker {
display: inline-flex;
width: fit-content;
min-height: 28px;
align-items: center;
padding: 3px 8px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 12px;
}
.metric-status {
display: inline-flex;
align-items: center;
min-height: 24px;
padding: 2px 7px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 12px;
}
.metric-detail-grid {
grid-template-columns: repeat(2, minmax(min(100%, 420px), 1fr));
align-items: stretch;
}
.list, .compact-list, .step-list {
margin: 0;
padding-left: 1.15em;
display: grid;
gap: 8px;
}
.list li::marker, .compact-list li::marker, .step-list li::marker { color: var(--brand); }
.compact-list {
gap: 6px;
font-size: 13.5px;
color: var(--muted);
line-height: 1.55;
}
.compact-list li, .list li, .step-list li {
min-width: 0;
overflow-wrap: break-word;
}
.panel, .metric-card, .roadmap-item {
background: #ffffff;
border: 1px solid var(--line-soft);
border-radius: 8px;
padding: 22px;
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.04);
min-width: 0;
}
.metric-card {
display: grid;
grid-template-columns: minmax(112px, 0.28fr) minmax(0, 1fr);
gap: 18px;
align-content: start;
min-height: 0;
}
.metric-card-head {
display: grid;
gap: 10px;
align-content: start;
}
.metric-card strong {
display: block;
margin: 0;
color: var(--brand);
font-family: var(--mono);
font-size: 2rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.metric-label {
color: var(--muted);
font-size: 13px;
line-height: 1.45;
overflow-wrap: break-word;
}
.metric-card-body {
min-width: 0;
}
.metric-card-body .compact-list {
gap: 7px;
max-width: 76ch;
}
.metric-card-body .compact-list li {
overflow-wrap: break-word;
word-break: normal;
}
.chart-figure {
margin: 0;
padding: 18px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: #ffffff;
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.04);
}
.chart-figure svg {
width: 100%;
height: auto;
display: block;
overflow: visible;
}
.chart-figure text {
fill: var(--ink);
font-family: var(--serif);
font-size: 13px;
}
.chart-title {
fill: var(--brand);
font-size: 16px;
font-weight: 500;
}
.chart-line {
fill: none;
stroke: var(--brand);
stroke-width: 2;
}
figcaption {
margin-top: 12px;
padding-top: 10px;
border-top: 1px solid var(--line-soft);
color: var(--muted);
font-size: 13px;
line-height: 1.5;
text-wrap: pretty;
}
table {
width: 100%;
border-collapse: collapse;
font-size: 14px;
}
th, td {
padding: 12px 10px;
text-align: left;
border-bottom: 1px solid var(--line-soft);
vertical-align: top;
}
th {
color: var(--brand);
font-weight: 500;
font-size: 12px;
}
td:first-child, th:first-child { width: 96px; }
.world-readiness {
margin-top: 16px;
display: grid;
gap: 16px;
}
.section-head > .world-readiness { grid-column: 1; }
.world-readiness-head {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 16px;
align-items: start;
}
.world-readiness-head p {
margin-top: 8px;
max-width: 72ch;
}
.world-status {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 4px 10px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 13px;
white-space: nowrap;
}
.evidence-kpis {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 10px;
}
.evidence-kpi {
padding: 14px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: var(--wash);
min-width: 0;
}
.evidence-kpi span {
display: block;
color: var(--muted);
font-size: 12px;
}
.evidence-kpi strong {
display: block;
margin-top: 4px;
color: var(--brand);
font-family: var(--mono);
font-size: 1.5rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.evidence-kpi small {
display: block;
margin-top: 8px;
color: var(--muted);
line-height: 1.45;
overflow-wrap: break-word;
}
.evidence-list {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.evidence-item {
padding: 14px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: #ffffff;
min-width: 0;
}
.evidence-item span {
color: var(--brand);
font-family: var(--mono);
font-size: 11px;
text-transform: uppercase;
}
.evidence-item h4 {
margin: 4px 0 8px;
color: var(--ink);
font-size: 1rem;
font-weight: 500;
line-height: 1.3;
}
.evidence-item h5 {
margin: 12px 0 6px;
color: var(--brand);
font-size: 12px;
font-weight: 500;
}
.evidence-item p {
margin: 0;
max-width: none;
color: var(--muted);
overflow-wrap: break-word;
}
.blocked-checks {
margin: 0;
padding-left: 1.05em;
color: var(--muted);
font-size: 13px;
line-height: 1.45;
}
.blocked-checks li {
overflow-wrap: break-word;
}
.blocked-checks li::marker {
color: var(--brand);
}
.blocked-checks-empty {
font-size: 13px;
}
.roadmap {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
}
.step {
display: inline-flex;
margin-bottom: 12px;
min-height: 28px;
align-items: center;
padding: 3px 8px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 12px;
}
.unlock {
margin-top: 14px;
color: var(--muted);
font-size: 13px;
}
@media (max-width: 980px) {
.topbar-inner {
grid-template-columns: minmax(0, 1fr) auto;
padding: 8px 16px;
}
.nav-shell { grid-template-columns: 1fr; gap: 6px; }
.report-mark { display: none; }
.report-nav a { min-width: 72px; }
.hero-grid, .section-head { grid-template-columns: 1fr; }
.section-head > .world-readiness { grid-column: auto; }
.hero-grid { gap: 24px; }
.score-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.metrics-primary, .metric-detail-grid, .two-col, .metric-grid, .chart-grid, .roadmap { grid-template-columns: 1fr; }
.evidence-list { grid-template-columns: 1fr; }
.metric-card { grid-template-columns: 1fr; }
h1 { font-size: 2.75rem; }
}
@media (max-width: 540px) {
.wrap { padding: 34px 16px 72px; }
.topbar-inner { gap: 10px; }
.report-nav {
display: flex;
gap: 2px;
}
.report-nav a {
min-width: 66px;
min-height: 38px;
padding: 0 8px;
font-size: 12px;
}
.language-switch button { min-width: 38px; min-height: 32px; padding: 0 8px; }
.hero { padding-top: 8px; }
h1 { max-width: 8em; font-size: 2.35rem; }
.lead { font-size: 1rem; }
.hero-meta span, .badges span { font-size: 12px; }
.score-strip { grid-template-columns: 1fr; }
section { margin-top: 34px; padding-top: 34px; }
.panel, .metric-card, .roadmap-item, .chart-figure, .hero-card { padding: 18px; }
.world-readiness-head, .evidence-kpis { grid-template-columns: 1fr; }
.metric-card { grid-template-columns: 1fr; gap: 10px; }
.metric-card strong { margin-bottom: 2px; }
.metric-summary-list li { grid-template-columns: auto minmax(0, 1fr) auto; }
table { font-size: 13px; }
th, td { padding: 10px 7px; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
*, *::before, *::after { transition-duration: 0.01ms !important; }
}
+37
View File
@@ -0,0 +1,37 @@
(function () {
var buttons = Array.prototype.slice.call(document.querySelectorAll("[data-set-lang]"));
var navLinks = Array.prototype.slice.call(document.querySelectorAll(".report-nav a"));
var sections = navLinks
.map(function (link) { return document.querySelector(link.getAttribute("href")); })
.filter(Boolean);
var progressBar = document.querySelector(".progress-bar");
function setLanguage(lang) {
document.body.setAttribute("data-report-lang", lang);
document.documentElement.setAttribute("lang", lang);
buttons.forEach(function (button) {
button.setAttribute("aria-pressed", button.getAttribute("data-set-lang") === lang ? "true" : "false");
});
}
function updateProgress() {
var scrollTop = window.scrollY || document.documentElement.scrollTop;
var height = Math.max(1, document.documentElement.scrollHeight - window.innerHeight);
var pct = Math.min(100, Math.max(0, (scrollTop / height) * 100));
if (progressBar) progressBar.style.transform = "scaleX(" + pct / 100 + ")";
var active = sections[0];
sections.forEach(function (section) {
if (section.getBoundingClientRect().top <= 110) active = section;
});
navLinks.forEach(function (link) {
link.setAttribute("aria-current", link.getAttribute("href") === "#" + active.id ? "true" : "false");
});
}
buttons.forEach(function (button) {
button.addEventListener("click", function () {
setLanguage(button.getAttribute("data-set-lang"));
});
});
window.addEventListener("scroll", updateProgress, { passive: true });
window.addEventListener("resize", updateProgress);
setLanguage("zh-CN");
updateProgress();
})();
+240
View File
@@ -0,0 +1,240 @@
# Présentation de Yao Meta Skill
`YAO = Yielding AI Outcomes` signifie produire de vrais résultats grâce à l'IA. L'objectif n'est pas d'écrire davantage de texte de prompt, mais de livrer des actifs IA réutilisables et des résultats opérationnels concrets.
`yao-meta-skill` est un système léger mais rigoureux pour créer, évaluer, empaqueter et gouverner des agent skills réutilisables.
Il transforme des workflows bruts, des transcripts, des prompts, des notes et des runbooks en paquets de skills réutilisables avec :
- une surface de déclenchement claire
- un `SKILL.md` léger
- des references, scripts et evals optionnels
- un dialogue d'intention plus humain avant l'authoring approfondi, avec un intent confidence gate qui continue à clarifier si le vrai travail, la sortie, les exclusions ou les standards restent flous
- un benchmark scan GitHub silencieux par défaut, complété par une reference synthesis, qui étudie des dépôts publics de haute qualité et des patterns world-class, puis ne remonte à l'utilisateur que les vrais conflits ou les zones d'incertitude
- une demande explicite de références fournies par l'utilisateur quand elles existent, afin d'apprendre des modèles, pas de copier le texte ni du contenu privé
- un rapport HTML minimaliste en fond blanc généré automatiquement pour chaque nouveau skill
- un prompt quality profile qui transforme le need model, le mapping RTF, la complexité et les quality checks en preuves visibles pour le reviewer, sans alourdir `SKILL.md`
- trois directions d'itération à plus forte valeur après la première création
- un review viewer HTML compact pour accélérer la première revue humaine
- un feedback log léger pour éviter de lancer tout le flux de promotion à chaque tour
- un rapport with-skill vs baseline pour visualiser rapidement le gain incrémental
- un quickstart conversationnel, sensible aux archetypes, pour orienter un nouveau skill vers scaffold, production, library ou governed
- des métadonnées sources neutres et des adaptateurs spécifiques au client
- des contrôles de gouvernance, de promotion et de portabilité intégrés au flux standard
## Architecture
En version hero, le système tient sur une seule ligne : transformer une entrée brouillonne en skill package gouverné et réutilisable.
```mermaid
flowchart LR
A["Entrées<br/>workflow / prompt / transcript / docs / notes"] --> B["Routage<br/>SKILL.md"]
B --> C["Conception<br/>méthode + garde-fous"]
C --> D["Exécution<br/>create / validate / eval / promote"]
D --> E["Sorties<br/>skill package + rapports + adapters"]
```
Lecture en 10 secondes :
- **Entrées** : on part de workflows, prompts, documents et notes dispersés.
- **Routage** : un `SKILL.md` léger définit d'abord la frontière et le déclenchement.
- **Conception** : on choisit le bon archetype, les bons gates et la bonne séparation des ressources.
- **Exécution** : la CLI unifiée construit, valide, optimise et promeut le skill.
- **Sorties** : on obtient un skill package réutilisable avec ses preuves d'évaluation, de gouvernance et de portabilité.
## Benchmark qualité pondéré
Ce benchmark est une revue d'ingénierie du projet. Chaque dimension est notée de `0-10`, puis pondérée sur `100`. Les GitHub stars ne sont pas incluses, car elles mesurent la chaleur de l'écosystème, pas directement la qualité d'ingénierie d'une méta-skill.
Formule du score pondéré : `sum(score / 10 * poids)`.
| Méta-skill | Méthode 15 | Discipline contexte 10 | Toolchain 15 | Eval/tests 20 | Gouvernance 15 | Portabilité 10 | Onboarding/revue 5 | Fiabilité locale 10 | Score pondéré |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| Yao Meta Skill | 9.5 | 8.0 | 9.5 | 9.5 | 9.5 | 9.0 | 6.5 | 9.5 | 91.5 |
| Anthropic Skill Creator | 9.0 | 6.5 | 8.5 | 7.5 | 4.0 | 5.0 | 7.5 | 5.0 | 67.5 |
| OpenAI Skill Creator | 8.5 | 9.5 | 5.0 | 2.0 | 3.0 | 4.0 | 8.5 | 4.0 | 50.5 |
| Rang | Méta-skill | Score | Positionnement central |
| ---: | --- | ---: | --- |
| 1 | Yao Meta Skill | 91.5 | Système complet d'ingénierie, d'évaluation, de gouvernance et de portabilité pour skills réutilisables. |
| 2 | Anthropic Skill Creator | 67.5 | Méthode et boucle d'itération fortes, mais fiabilité locale et gouvernance plus faibles. |
| 3 | OpenAI Skill Creator | 50.5 | Très utile comme guide concis d'écriture de skills, moins comme système d'ingénierie complet. |
## Scénarios recommandés
- Choisissez **Yao Meta Skill** si vous voulez un actif d'équipe réutilisable avec frontières explicites, gates d'évaluation, gouvernance, portabilité et maintenance à long terme.
- Choisissez **Anthropic Skill Creator** si vous voulez une boucle de création d'abord conversationnelle et une itération guidée par l'humain.
- Choisissez **OpenAI Skill Creator** si vous cherchez surtout une référence concise pour écrire des skills légères avec une forte discipline de contexte.
- Un schéma hybride utile consiste à produire un premier jet avec un creator conversationnel, puis à utiliser `yao-meta-skill` pour durcir le package et le rendre prêt pour une équipe.
## Démarrage rapide
Pour utiliser cette skill directement dans Codex, installez-la d'abord dans les skills globales :
```bash
npx -y skills add yaojingang/yao-meta-skill -a codex -g -y
```
Pour l'installer dans tous les agents pris en charge, remplacez `-a codex` par `-a '*'` :
```bash
npx -y skills add yaojingang/yao-meta-skill -a '*' -g -y
```
Après l'installation, redémarrez le client. Demandez ensuite des tâches comme "create a skill from this workflow", "improve this existing skill", "evaluate this skill" ou "add evals to this skill" pour déclencher `yao-meta-skill`.
1. Décrivez le workflow, l'ensemble de prompts ou la tâche répétée que vous voulez transformer en skill.
2. Commencez par un court dialogue d'intention plus humain pour clarifier le vrai travail, les sorties attendues, les exclusions, les contraintes et les standards qui comptent pour vous.
3. Laissez d'abord `quickstart` clarifier l'intention, puis lancer silencieusement benchmark scan et reference synthesis ; des questions explicites ne remontent que si l'intention reste ambiguë ou si deux directions de conception se contredisent réellement.
4. Utilisez le `quickstart` sensible aux archetypes ou le flux complet d'authoring pour générer ou améliorer le paquet en mode scaffold, production, library ou governed.
5. Chaque nouveau skill reçoit aussi `reports/intent-dialogue.md`, `reports/intent-confidence.md`, `reports/reference-synthesis.md`, `reports/artifact-design-profile.md`, `reports/prompt-quality-profile.md`, `reports/skill-overview.html`, `reports/review-viewer.html` et `reports/iteration-directions.md`. Ensuite, le feedback log et le baseline compare permettent de boucler rapidement sans lancer tout le flux de promotion.
## Résultats actuels
- `make test` passe actuellement
- sur le jeu de régression courant, trigger eval a `0` faux positifs et `0` faux négatifs
- les suites train / dev / holdout passent toutes
- les expressions chinoises réelles sont maintenant couvertes dans trigger eval, par exemple `做一个 skill`, `沉淀成可复用能力`, `优化已有 skill`, `补 trigger 评测`
- les contrats de packaging `openai`, `claude` et `generic` sont validés
## Points forts actuels
Dans la dernière revue pondérée, Yao atteint `91.5/100`. Les points forts se concentrent sur ce qui rend une skill durablement exploitable par une équipe :
- **Profondeur méthodologique `9.5`** : doctrine de skill engineering, archetypes, gate selection, non-skill decisions, gouvernance et frontières de ressource sont formalisés.
- **Complétude de la toolchain `9.5`** : initialisation, validation, benchmark scan, description optimization, reporting, contrôle de promotion, packaging, CI et portability checks sont reliés dans un même flux.
- **Rigueur Eval / tests `9.5`** : train/dev/holdout, blind holdout, adversarial holdout, judge-backed blind eval, route confusion, drift history et promotion gates sont couverts.
- **Gouvernance / cycle de vie `9.5`** : les skills importantes peuvent porter owner, lifecycle, review cadence, maturity score, trust boundary, promotion decision et regression history.
- **Fiabilité d'exécution locale `9.5`** : le dépôt est vérifiable localement avec `make test`, `make ci-test` et la CLI unifiée.
- **Portabilité / distribution `9.0`** : métadonnées neutres, adaptateurs, règles de dégradation, contrats de packaging et score de portabilité conservent la sémantique réutilisable entre environnements.
- **Discipline de contexte `8.0`** : le point d'entrée reste sous budget, mais cette contrainte est suivie activement car le système porte davantage de rapports, exemples, benchmarks et preuves.
- **Onboarding / revue `6.5`** : quickstart, HTML overview, side-by-side review viewer et feedback log ont amélioré la première expérience, mais c'est encore la principale zone d'amélioration UX.
La direction est volontaire : garder une entrée légère, rendre l'évaluation difficile à simuler, rendre la gouvernance visible, et réduire encore la friction de création et de revue.
## Pourquoi Yao
- **Léger** : le point d'entrée reste compact, les budgets de contexte sont explicites, et la structure supplémentaire n'est ajoutée que lorsqu'elle apporte une vraie valeur.
- **Rigoureux** : la qualité de déclenchement est vérifiée par family regressions, blind holdout, adversarial holdout, route confusion, judge-backed blind eval et promotion gates.
- **Gouvernable** : les skills importantes sont traitées comme des actifs maintenables avec lifecycle, attentes de maturité, ownership et cadence de revue.
- **Portable** : les métadonnées source restent neutres, tandis que les adaptateurs, règles de dégradation et contrats de packaging préservent une sémantique réutilisable entre environnements.
## Ce que fait le projet
Ce projet permet de créer, refactoriser, évaluer et empaqueter des skills comme des briques de capacité durables plutôt que comme des prompts ponctuels.
Sa logique de conception est simple :
1. identifier le vrai travail récurrent derrière la demande
2. définir une frontière propre pour que chaque paquet fasse un travail cohérent
3. optimiser la description de déclenchement avant d'allonger le corps
4. garder le fichier principal compact et déplacer le détail vers les references ou les scripts
5. ajouter des garde-fous qualité seulement lorsqu'ils sont utiles
6. exporter des artefacts de compatibilité uniquement pour les clients nécessaires
## Pourquoi ce projet existe
Dans la plupart des équipes, la connaissance opérationnelle utile est dispersée dans les chats, les prompts personnels, les habitudes orales et les workflows non documentés. Ce projet convertit cette connaissance implicite en :
- paquets de skills découvrables
- flux d'exécution répétables
- instructions à faible coût de contexte
- actifs réutilisables pour l'équipe
- distributions prêtes pour la compatibilité
## Structure du dépôt
```text
yao-meta-skill/
├── SKILL.md
├── README.md
├── LICENSE
├── .gitignore
├── agents/
│ └── interface.yaml
├── references/
├── scripts/
└── templates/
```
## Composants principaux
### `SKILL.md`
Le point d'entrée principal. Il définit la surface de déclenchement, les modes opératoires, le workflow compact et le contrat de sortie.
### `agents/interface.yaml`
La source de vérité neutre pour les métadonnées. Ce fichier stocke les informations d'affichage et de compatibilité sans lier l'arborescence source à un chemin spécifique à un fournisseur.
### `references/`
Les documents longs qui ne doivent pas gonfler le fichier principal. On y trouve les règles de conception, les guides d'évaluation, la stratégie de compatibilité et les rubriques de qualité.
### `scripts/`
Des utilitaires qui rendent la méta-skill opérationnelle :
- `trigger_eval.py` : vérifie si une description de déclenchement est trop large ou trop faible
- `context_sizer.py` : estime le poids de contexte et avertit si le chargement initial devient trop grand
- `cross_packager.py` : génère des artefacts d'export spécifiques au client à partir du paquet source neutre
### `templates/`
Des modèles de départ pour des paquets simples ou plus avancés.
## Comment l'utiliser
### 1. Utiliser directement la skill
Invoquez `yao-meta-skill` lorsque vous souhaitez :
- créer une nouvelle skill
- améliorer une skill existante
- ajouter des evals à une skill
- transformer un workflow en paquet réutilisable
- préparer une skill pour une adoption plus large dans l'équipe
### 2. Générer un nouveau paquet de skill
Le flux typique est :
1. décrire le workflow ou la capacité
2. identifier les phrases de déclenchement et les sorties attendues
3. choisir le mode scaffold, production ou library
4. générer le paquet
5. lancer les vérifications de taille et de déclenchement si nécessaire
6. exporter les artefacts de compatibilité ciblés
### 3. Exporter des artefacts de compatibilité
Exemples :
```bash
python3 scripts/cross_packager.py ./yao-meta-skill --platform openai --platform claude --zip
python3 scripts/context_sizer.py ./yao-meta-skill
python3 scripts/trigger_eval.py --description "Create and improve agent skills..." --cases ./cases.json
```
## Avantages
- **Méthode d'abord, pas prompt d'abord** : la création de skill est traitée comme un workflow d'ingénierie formel
- **Pensé pour l'optimisation du déclenchement** : les descriptions passent par route confusion, blind holdout, familles adversariales et promotion policy
- **Léger au point d'entrée** : `SKILL.md` reste compact et les references, scripts, evals ne sont ajoutés que lorsqu'ils sont utiles
- **Outillage cohérent** : initialisation, validation, optimisation, reporting, packaging et test passent par un CLI et un chemin CI unifiés
- **Gouverné comme un actif** : les skills importantes peuvent porter ownership, lifecycle, attentes de maturité et cadence de revue
- **Portable par défaut** : les sources restent neutres et la compatibilité est gérée par des adaptateurs et des règles de dégradation
- **Riche en preuves** : route scorecards, regression history, context budgets, portability scores et promotion decisions sont publiés comme artefacts
## Public idéal
Ce projet est particulièrement adapté à :
- constructeurs d'agents
- équipes d'outillage interne
- prompt engineers évoluant vers des skills structurées
- organisations construisant des bibliothèques de skills réutilisables
## Licence
MIT. Voir [LICENSE](../LICENSE).
+240
View File
@@ -0,0 +1,240 @@
# Yao Meta Skill 日本語紹介
`YAO = Yielding AI Outcomes` は、「AI の結果を実際の成果として届ける」という意味です。単に prompt テキストを増やすのではなく、再利用可能な AI 資産と実運用の成果を作ることを重視します。
`yao-meta-skill` は、再利用可能な agent skill を作成・評価・パッケージ化・運用するための、軽量で厳密なシステムです。
粗い workflow、transcript、prompt、notes、runbook を、再利用可能な skill パッケージに変換し、次の性質を持たせます。
- 明確なトリガー面
- 軽量な `SKILL.md`
- 必要に応じた references、scripts、evals
- 深い authoring の前に、人間味のある短い intent dialogue を行い、intent confidence gate で理解が十分かを判定する。不十分なら 1〜2 個の高レバレッジ質問を追加する
- 深い authoring の前に、GitHub benchmark scan と reference synthesis を静かに実行し、高品質な公開リポジトリと world-class pattern tracks を参照する。実際に衝突や不確実性があるときだけユーザーに明示する
- ユーザー自身の参考例があれば、それも取り込み、文章ではなくパターン・構造・品質基準だけを学ぶ
- 新しい skill ごとに、白背景の簡潔な HTML overview を自動生成
- prompt quality profile により、need model、RTF mapping、complexity、prompt-facing quality checks を reviewer-visible な証拠として残し、`SKILL.md` を肥大化させない
- 初回作成後に自動で提示される 3 つの高価値な次の iteration direction
- 初回の人間レビューを助ける、コンパクトな HTML review viewer
- 毎回フル promotion flow を通さずに使える軽量 feedback log
- 増分価値をすばやく確認できる with-skill vs baseline 比較レポート
- 会話型 discovery flow として scaffold / production / library / governed を案内する archetype-aware quickstart
- 中立的なソースメタデータとクライアント別アダプタ
- ガバナンス、昇格判定、portability チェックを標準フローに内蔵
## アーキテクチャ
Hero 版では、全体の流れは 1 本です。ばらばらの入力を、統制された再利用可能な skill package に変えます。
```mermaid
flowchart LR
A["入力<br/>workflow / prompt / transcript / docs / notes"] --> B["ルート定義<br/>SKILL.md"]
B --> C["設計<br/>method + gates"]
C --> D["実行<br/>create / validate / eval / promote"]
D --> E["出力<br/>skill package + reports + adapters"]
```
10 秒で読むならこうです。
- **入力**: workflow、prompt、文書、メモなどの粗い素材から始めます。
- **ルート定義**: まず軽量な `SKILL.md` で境界と trigger を決めます。
- **設計**: 適切な archetype、gate、資源の分割を選びます。
- **実行**: 統一 CLI で作成、検証、最適化、昇格を進めます。
- **出力**: 最終的に skill package と、評価・ガバナンス・移植性の証拠が残ります。
## 加重品質ベンチマーク
これはプロジェクトのエンジニアリング品質レビューです。各項目を `0-10` で評価し、重みづけして `100` 点満点に換算します。GitHub stars は、エコシステム上の注目度を示すもので、meta-skill の工学的品質を直接示すものではないため、総合点には含めません。
加重スコアの式: `sum(score / 10 * weight)`
| Meta Skill | 方法論 15 | 文脈規律 10 | ツールチェーン 15 | Eval/テスト 20 | ガバナンス 15 | 移植性 10 | 導入/レビュー 5 | ローカル信頼性 10 | 加重スコア |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| Yao Meta Skill | 9.5 | 8.0 | 9.5 | 9.5 | 9.5 | 9.0 | 6.5 | 9.5 | 91.5 |
| Anthropic Skill Creator | 9.0 | 6.5 | 8.5 | 7.5 | 4.0 | 5.0 | 7.5 | 5.0 | 67.5 |
| OpenAI Skill Creator | 8.5 | 9.5 | 5.0 | 2.0 | 3.0 | 4.0 | 8.5 | 4.0 | 50.5 |
| 順位 | Meta Skill | スコア | 中核ポジション |
| ---: | --- | ---: | --- |
| 1 | Yao Meta Skill | 91.5 | 工学化、評価化、ガバナンス化、移植性まで含む完全な meta-skill システム。 |
| 2 | Anthropic Skill Creator | 67.5 | 方法論と反復ループは強いが、ローカル実行信頼性とガバナンス範囲は弱めです。 |
| 3 | OpenAI Skill Creator | 50.5 | 完全な工学システムというより、簡潔な skill 作成ガイドとして有用です。 |
## 適したシナリオ
- **チーム再利用、明確な境界、評価ゲート、ガバナンス、移植性、長期保守**を重視するなら `Yao Meta Skill` が向いています。
- **会話優先の作成ループと人間主導の反復**を重視するなら `Anthropic Skill Creator` が向いています。
- **簡潔な skill 作成ガイドと文脈規律の見本**が必要なら `OpenAI Skill Creator` が向いています。
- 実務的な組み合わせとしては、会話的な creator で初稿を作り、その後 `yao-meta-skill` で harden して team-ready な asset にする、という流れが有効です。
## クイックスタート
Codex でこの skill を直接使う場合は、まず global skills にインストールします。
```bash
npx -y skills add yaojingang/yao-meta-skill -a codex -g -y
```
対応しているすべての agent にインストールする場合は、`-a codex``-a '*'` に置き換えます。
```bash
npx -y skills add yaojingang/yao-meta-skill -a '*' -g -y
```
インストール後にクライアントを再起動してください。その後、"create a skill from this workflow"、"improve this existing skill"、"evaluate this skill"、"add evals to this skill" のような依頼で `yao-meta-skill` を起動できます。
1. skill 化したい workflow、prompt 集合、または反復タスクを説明します。
2. まず短いが人間味のある intent dialogue で、実際の job、outputs、boundary、constraints、重視する品質基準を明確にします。
3. まず `quickstart` で意図を澄ませ、その後 benchmark scan と reference synthesis を静かに実行します。意図がまだ曖昧なとき、または設計ルートに本当の衝突があるときだけ、追加確認を明示します。
4. archetype-aware な `quickstart` か完全な authoring flow を使い、scaffold、production、library、governed のいずれかでパッケージを生成または改善します。
5. 新しく作成した skill には `reports/intent-dialogue.md``reports/intent-confidence.md``reports/reference-synthesis.md``reports/artifact-design-profile.md``reports/prompt-quality-profile.md``reports/skill-overview.html``reports/review-viewer.html``reports/iteration-directions.md` が付きます。さらに feedback log と baseline compare を使えば、毎回フル promotion flow を回さずに短い改善ループを回せます。
## 現在の結果
- 現在 `make test` は通過
- 現在の回帰セットでは trigger eval が `0` false positives / `0` false negatives
- train / dev / holdout の 3 層評価が通過
- 中国語の実利用表現も trigger 評価に追加済みです。例: `做一个 skill``沉淀成可复用能力``优化已有 skill``补 trigger 评测`
- `openai``claude``generic` の packaging contract が通過
## 現在の強み
最新の加重レビューでは、Yao は `91.5/100` です。強みは、長く使うチーム資産としての skill に必要な領域に集中しています。
- **方法論の深さ `9.5`**: skill engineering doctrine、archetype、gate selection、non-skill decision、governance、resource boundary が体系化されています。
- **ツールチェーン完成度 `9.5`**: 初期化、検証、benchmark scan、description optimization、レポート、昇格判定、パッケージ化、CI、portability checks が一つの運用フローに接続されています。
- **Eval / テスト厳密性 `9.5`**: train/dev/holdout、blind holdout、adversarial holdout、judge-backed blind eval、route confusion、drift history、promotion gate を備えています。
- **ガバナンス / ライフサイクル `9.5`**: 重要な skill に owner、lifecycle、review cadence、maturity score、trust boundary、promotion decision、regression history を持たせられます。
- **ローカル実行信頼性 `9.5`**: `make test``make ci-test`、統一 CLI でローカル再現できます。
- **移植性 / 配布 `9.0`**: ソースは中立に保ち、adapter、degradation rule、packaging contract、portability score で環境間の再利用性を担保します。
- **文脈規律 / 精簡性 `8.0`**: エントリポイントは budget 内に保たれていますが、レポート、例、benchmark、証拠資産が増えたため、継続的な制約として追跡しています。
- **導入 / レビュー体験 `6.5`**: quickstart、HTML overview、side-by-side review viewer、feedback log により初回体験は改善しましたが、ここは次に最も伸ばすべき UX 領域です。
全体の方向性は明確です。入口は軽く、評価は厳しく、ガバナンスは見える形にし、初回作成と人間レビューの摩擦をさらに下げていきます。
## なぜ Yao なのか
- **軽量**: エントリポイントは小さく保たれ、context budget は明示され、追加構造は本当に価値がある場合にだけ導入されます。
- **厳密**: trigger 品質は family regression、blind holdout、adversarial holdout、route confusion、judge-backed blind eval、promotion gate で検証されます。
- **ガバナンス可能**: 重要な skill は lifecycle、maturity expectation、owner、review cadence を持つ保守対象の資産として扱われます。
- **移植可能**: ソースメタデータは中立のまま保たれ、adapter、degradation rule、packaging contract が環境間の再利用意味論を保持します。
## 何をするものか
このプロジェクトは、skill を単発の prompt ではなく、作成・改善・評価・配布できる持続的な能力パッケージとして扱えるようにします。
設計ロジックは次の通りです。
1. ユーザーの依頼の背後にある反復的な仕事を特定する
2. skill の境界を整理し、1 つのパッケージを 1 つの一貫した役割に保つ
3. 本文を長くする前に trigger description を最適化する
4. メインの skill ファイルを小さく保ち、詳細は references や scripts に移す
5. 品質ゲートは必要なときだけ追加する
6. 本当に必要なクライアント向けにだけ互換出力を生成する
## なぜ必要か
多くのチームでは、重要な運用知識が chat、個人 prompt、口頭の習慣、未整理の workflow に散在しています。このプロジェクトは、それらの暗黙知を次の形に変換します。
- 発見可能な skill パッケージ
- 再現可能な実行フロー
- 低コンテキストな指示
- 再利用可能なチーム資産
- 配布しやすい互換パッケージ
## リポジトリ構成
```text
yao-meta-skill/
├── SKILL.md
├── README.md
├── LICENSE
├── .gitignore
├── agents/
│ └── interface.yaml
├── references/
├── scripts/
└── templates/
```
## 主要コンポーネント
### `SKILL.md`
メインの skill エントリです。トリガー面、動作モード、圧縮された workflow、出力契約を定義します。
### `agents/interface.yaml`
中立的なメタデータの単一ソースです。表示情報と互換性情報を保持し、ソースツリーを特定ベンダーのパスに固定しません。
### `references/`
メイン skill ファイルを肥大化させないための長文資料です。設計ルール、評価方法、互換戦略、品質 rubric を含みます。
### `scripts/`
この meta-skill を実用的にする補助スクリプトです。
- `trigger_eval.py`: trigger description が広すぎるか弱すぎるかを確認する
- `context_sizer.py`: コンテキスト量を見積もり、初期ロードが大きすぎる場合に警告する
- `cross_packager.py`: 中立的なソースパッケージからクライアント別出力を生成する
### `templates/`
単純な skill と複雑な skill を始めるためのテンプレートです。
## 使い方
### 1. この skill を直接使う
次のようなときに `yao-meta-skill` を使います。
- 新しい skill を作る
- 既存の skill を改善する
- skill に eval を追加する
- workflow を再利用可能なパッケージにする
- チーム向けに skill を整備する
### 2. 新しい skill パッケージを生成する
一般的な流れは次の通りです。
1. workflow または能力を説明する
2. trigger フレーズと出力を特定する
3. scaffold、production、library のいずれかを選ぶ
4. パッケージを生成する
5. 必要に応じてサイズチェックと trigger チェックを行う
6. 対象クライアント向けの互換出力を生成する
### 3. 互換出力を生成する
例:
```bash
python3 scripts/cross_packager.py ./yao-meta-skill --platform openai --platform claude --zip
python3 scripts/context_sizer.py ./yao-meta-skill
python3 scripts/trigger_eval.py --description "Create and improve agent skills..." --cases ./cases.json
```
## 利点
- **prompt ではなく方法論が中心**: skill creation を正式な engineering workflow として扱います
- **トリガー最適化を前提に設計**: description は route confusion、blind holdout、adversarial family、promotion policy で検証されます
- **入口が軽い**: `SKILL.md` は最小限に保ち、references、scripts、evals は必要なときだけ追加します
- **ツールチェーンが一貫**: 初期化、検証、最適化、レポート、パッケージ化、テストを統一 CLI と CI で回せます
- **資産として運用できる**: owner、lifecycle、maturity expectation、review cadence を持つ skill として管理できます
- **移植前提**: ソースは中立、互換性は adapter と degradation rule で処理します
- **証拠が豊富**: route scorecard、regression history、context budget、portability score、promotion decision が公開アーティファクトとして残ります
## 最適な対象
このプロジェクトは次のような人や組織に向いています。
- agent builder
- 内部ツールチーム
- prompt engineering から skill engineering に移行したい人
- 再利用可能な skill ライブラリを構築したい組織
## ライセンス
MIT。詳細は [LICENSE](../LICENSE) を参照してください。
+240
View File
@@ -0,0 +1,240 @@
# Описание Yao Meta Skill
`YAO = Yielding AI Outcomes` означает ориентацию на реальные результаты от ИИ. Цель здесь не в том, чтобы написать больше prompt-текста, а в том, чтобы получать переиспользуемые AI-активы и прикладные операционные результаты.
`yao-meta-skill` — это легкая, но строгая система для создания, оценки, упаковки и управления переиспользуемыми agent skills.
Он преобразует сырые workflows, transcripts, prompts, notes и runbooks в переиспользуемые skill-пакеты с:
- понятной поверхностью срабатывания
- компактным `SKILL.md`
- необязательными references, scripts и evals
- более человечным коротким intent dialogue перед глубокой разработкой, с intent confidence gate: если реальная работа, результат, exclusions или стандарты все еще неясны, система продолжает уточнять
- silent-by-default GitHub benchmark scan и reference synthesis до глубокого authoring: система изучает сильные публичные репозитории и world-class pattern tracks, а пользователю явно показывает только реальные конфликты или неопределенность
- явным запросом пользовательских референсов, если они есть, чтобы перенимать паттерны, структуру и стандарты качества, а не копировать формулировки или приватный материал
- автоматически создаваемым минималистичным HTML-обзором на белом фоне для каждого нового skill
- prompt quality profile, который превращает need model, RTF mapping, complexity и prompt-facing quality checks в видимые для reviewer доказательства, не раздувая `SKILL.md`
- тремя наиболее ценными направлениями следующей итерации после первого создания
- компактным HTML review viewer для быстрой первой ручной оценки
- легким feedback log, чтобы не запускать полный promotion flow на каждом цикле
- отчетом with-skill vs baseline для быстрого сравнения инкрементальной пользы
- conversation-style archetype-aware quickstart, который ведет пользователя как discovery flow и помогает выбрать scaffold, production, library или governed форму
- нейтральными исходными метаданными и клиентскими адаптерами
- встроенными проверками governance, promotion и portability в стандартном потоке
## Архитектура
В hero-версии вся система сводится к одной линии: превратить разрозненный вход в управляемый и переиспользуемый skill package.
```mermaid
flowchart LR
A["Входы<br/>workflow / prompt / transcript / docs / notes"] --> B["Маршрут<br/>SKILL.md"]
B --> C["Проектирование<br/>method + gates"]
C --> D["Исполнение<br/>create / validate / eval / promote"]
D --> E["Выходы<br/>skill package + reports + adapters"]
```
Как читать это за 10 секунд:
- **Входы**: стартуем с workflow, prompt, документов и заметок.
- **Маршрут**: компактный `SKILL.md` сначала задает границу и trigger.
- **Проектирование**: выбираются нужные archetype, quality gates и разбиение ресурсов.
- **Исполнение**: единый CLI создает, проверяет, оптимизирует и продвигает skill.
- **Выходы**: результатом становится skill package плюс доказательства оценки, governance и portability.
## Взвешенный quality benchmark
Это инженерная оценка проекта. Каждое измерение оценивается по шкале `0-10`, затем пересчитывается в `100` баллов с учетом веса. GitHub stars не включаются, потому что они отражают популярность экосистемы, а не инженерное качество meta-skill.
Формула взвешенного балла: `sum(score / 10 * weight)`.
| Meta Skill | Методология 15 | Context discipline 10 | Toolchain 15 | Eval/tests 20 | Governance 15 | Portability 10 | Onboarding/review 5 | Local reliability 10 | Weighted score |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| Yao Meta Skill | 9.5 | 8.0 | 9.5 | 9.5 | 9.5 | 9.0 | 6.5 | 9.5 | 91.5 |
| Anthropic Skill Creator | 9.0 | 6.5 | 8.5 | 7.5 | 4.0 | 5.0 | 7.5 | 5.0 | 67.5 |
| OpenAI Skill Creator | 8.5 | 9.5 | 5.0 | 2.0 | 3.0 | 4.0 | 8.5 | 4.0 | 50.5 |
| Место | Meta Skill | Балл | Основное позиционирование |
| ---: | --- | ---: | --- |
| 1 | Yao Meta Skill | 91.5 | Полная система engineering, evaluation, governance и portability для переиспользуемых skills. |
| 2 | Anthropic Skill Creator | 67.5 | Сильная методология и итерационный цикл, но слабее local execution reliability и governance coverage. |
| 3 | OpenAI Skill Creator | 50.5 | Лучше как краткое руководство по написанию skills, чем как полноценная engineering system. |
## Подходящие сценарии
- Выбирайте **Yao Meta Skill**, если нужен командный переиспользуемый актив с явными границами, evaluation gates, governance, portability и долгосрочной поддержкой.
- Выбирайте **Anthropic Skill Creator**, если вам важнее conversation-first creation loop и итерация с сильным human guidance.
- Выбирайте **OpenAI Skill Creator**, если вам нужен краткий reference по написанию lean skills и context discipline.
- Практичный гибридный вариант: сначала получить первый черновик через conversation-driven creator, а затем использовать `yao-meta-skill`, чтобы усилить пакет и сделать его team-ready.
## Быстрый старт
Чтобы использовать эту skill напрямую в Codex, сначала установите ее в global skills:
```bash
npx -y skills add yaojingang/yao-meta-skill -a codex -g -y
```
Чтобы установить ее во все поддерживаемые agents, замените `-a codex` на `-a '*'`:
```bash
npx -y skills add yaojingang/yao-meta-skill -a '*' -g -y
```
После установки перезапустите клиент. Затем используйте запросы вроде "create a skill from this workflow", "improve this existing skill", "evaluate this skill" или "add evals to this skill", чтобы вызвать `yao-meta-skill`.
1. Опишите workflow, набор prompts или повторяющуюся задачу, которую хотите превратить в skill.
2. Сначала проведите короткий, но более человечный intent dialogue, чтобы уточнить реальную job-to-be-done, outputs, exclusions, constraints и те стандарты качества, которые для вас важны.
3. Сначала позвольте `quickstart` прояснить намерение, затем тихо выполнить benchmark scan и reference synthesis. Явные уточнения поднимаются только тогда, когда intent все еще неясен или между маршрутами проектирования есть реальный конфликт.
4. Используйте archetype-aware `quickstart` или полный authoring flow, чтобы сгенерировать или улучшить пакет в режиме scaffold, production, library или governed.
5. Каждый новый skill также получает `reports/intent-dialogue.md`, `reports/intent-confidence.md`, `reports/reference-synthesis.md`, `reports/artifact-design-profile.md`, `reports/prompt-quality-profile.md`, `reports/skill-overview.html`, `reports/review-viewer.html` и `reports/iteration-directions.md`. После этого feedback log и baseline compare позволяют запускать короткий цикл улучшений без полного promotion flow.
## Текущие результаты
- `make test` сейчас проходит
- на текущем regression-наборе trigger eval дает `0` false positives и `0` false negatives
- все три набора train / dev / holdout проходят
- реальные китайские формулировки теперь включены в trigger eval, например `做一个 skill`, `沉淀成可复用能力`, `优化已有 skill`, `补 trigger 评测`
- packaging contracts для `openai`, `claude` и `generic` проходят проверку
## Текущие сильные стороны
В последней взвешенной оценке Yao набирает `91.5/100`. Его сильные стороны сосредоточены в том, что нужно для долговечных командных skill-активов:
- **Глубина методологии `9.5`**: формальная skill engineering doctrine, archetypes, gate selection, non-skill decisions, governance и resource boundaries.
- **Полнота toolchain `9.5`**: initialization, validation, benchmark scan, description optimization, reporting, promotion checks, packaging, CI и portability checks связаны в один operational flow.
- **Строгость Eval / tests `9.5`**: train/dev/holdout, blind holdout, adversarial holdout, judge-backed blind eval, route confusion, drift history и promotion gates покрыты.
- **Governance / lifecycle `9.5`**: важные skills могут иметь owner, lifecycle, review cadence, maturity score, trust boundary, promotion decision и regression history.
- **Local execution reliability `9.5`**: репозиторий проверяется локально через `make test`, `make ci-test` и unified CLI.
- **Portability / distribution `9.0`**: neutral metadata, adapters, degradation rules, packaging contracts и portability score сохраняют переносимую семантику между средами.
- **Context discipline `8.0`**: entrypoint остается в рамках budget, но эта метрика отслеживается как живое ограничение, потому что система несет больше reports, examples, benchmark assets и evidence.
- **Onboarding / review experience `6.5`**: quickstart, HTML overview, side-by-side review viewer и feedback log улучшили первый опыт, но это все еще главный UX-направление для улучшения.
Общий вектор здесь осознанный: легкий вход, сложная для имитации evaluation, видимая governance и снижение трения первого создания и ручного review.
## Почему Yao
- **Легкий**: entrypoint остается компактным, context budgets заданы явно, а дополнительная структура добавляется только тогда, когда она действительно окупается.
- **Строгий**: качество trigger проверяется через family regressions, blind holdout, adversarial holdout, route confusion, judge-backed blind eval и promotion gates.
- **Управляемый**: важные skills рассматриваются как поддерживаемые активы с lifecycle, maturity expectation, owner и review cadence.
- **Портируемый**: source metadata остается нейтральной, а adapters, degradation rules и packaging contracts сохраняют переносимую семантику между средами.
## Что делает проект
Этот проект помогает создавать, перерабатывать, оценивать и упаковывать skills как долговечные capability-пакеты, а не как одноразовые prompts.
Его логика проста:
1. определить реальную повторяющуюся задачу за пользовательским запросом
2. задать чистую границу skill, чтобы один пакет решал одну связанную задачу
3. оптимизировать trigger description до того, как раздувать основное тело
4. держать основной файл маленьким, а детали переносить в references или scripts
5. добавлять quality gates только тогда, когда они действительно окупаются
6. экспортировать compatibility artifacts только для реально нужных клиентов
## Зачем нужен этот проект
У большинства команд важные операционные знания разбросаны по чатам, личным prompts, устным привычкам и недокументированным workflows. Этот проект превращает такое скрытое знание в:
- обнаруживаемые skill-пакеты
- повторяемые execution flows
- инструкции с меньшей нагрузкой на контекст
- переиспользуемые командные активы
- готовые к совместимости дистрибутивы
## Структура репозитория
```text
yao-meta-skill/
├── SKILL.md
├── README.md
├── LICENSE
├── .gitignore
├── agents/
│ └── interface.yaml
├── references/
├── scripts/
└── templates/
```
## Ключевые компоненты
### `SKILL.md`
Главная точка входа skill. Здесь задаются surface trigger, operating modes, compact workflow и output contract.
### `agents/interface.yaml`
Нейтральный единый источник метаданных. Он хранит display и compatibility metadata, не привязывая дерево исходников к vendor-specific path.
### `references/`
Длинные материалы, которые не должны раздувать основной skill-файл. Здесь находятся design rules, evaluation guidance, compatibility strategy и quality rubrics.
### `scripts/`
Утилиты, которые делают meta-skill по-настоящему рабочей:
- `trigger_eval.py`: проверяет, не слишком ли широкая или слабая trigger description
- `context_sizer.py`: оценивает вес контекста и предупреждает, если initial load становится слишком большим
- `cross_packager.py`: собирает client-specific export artifacts из нейтрального исходного пакета
### `templates/`
Стартовые шаблоны для простых и более сложных skill-пакетов.
## Как использовать
### 1. Использовать skill напрямую
Вызывайте `yao-meta-skill`, когда хотите:
- создать новую skill
- улучшить существующую skill
- добавить evals в skill
- превратить workflow в переиспользуемый пакет
- подготовить skill для более широкого использования в команде
### 2. Сгенерировать новый skill-пакет
Типичный поток:
1. описать workflow или capability
2. определить trigger phrases и expected outputs
3. выбрать режим scaffold, production или library
4. сгенерировать пакет
5. при необходимости запустить size и trigger checks
6. экспортировать targeted compatibility artifacts
### 3. Экспортировать compatibility artifacts
Примеры:
```bash
python3 scripts/cross_packager.py ./yao-meta-skill --platform openai --platform claude --zip
python3 scripts/context_sizer.py ./yao-meta-skill
python3 scripts/trigger_eval.py --description "Create and improve agent skills..." --cases ./cases.json
```
## Преимущества
- **Сначала метод, а не просто prompt**: skill creation рассматривается как формальный engineering workflow
- **Ориентация на trigger optimization**: description проходит через route confusion, blind holdout, adversarial families и promotion policy
- **Легкий entrypoint**: `SKILL.md` остается компактным, а references, scripts и evals добавляются только когда действительно нужны
- **Цельная toolchain**: init, validate, optimize, report, package и test проходят через единый CLI и CI path
- **Управляется как актив**: важные skills могут иметь owner, lifecycle, maturity expectation и review cadence
- **Портируемость по умолчанию**: исходники нейтральны, а совместимость обрабатывается через adapters и degradation rules
- **Высокая плотность доказательств**: route scorecards, regression history, context budgets, portability scores и promotion decisions публикуются как артефакты
## Для кого подходит
Проект лучше всего подходит для:
- agent builders
- команд внутреннего tooling
- prompt engineers, переходящих к skill engineering
- организаций, создающих библиотеки переиспользуемых skills
## Лицензия
MIT. См. [LICENSE](../LICENSE).
+333
View File
@@ -0,0 +1,333 @@
# Yao Meta Skill 中文介绍
`YAO = Yielding AI Outcomes`,中文可理解为:产出 AI 结果,交付真实成果。它强调的不是生成更多 prompt 文本,而是沉淀可复用的 AI 资产与可落地的实际结果。
`yao-meta-skill` 用来创建、评估、打包和治理可复用的 agent skill。1.0 的重点是把重复工作流整理成可安装、可阅读、可跨平台的 skill 包;2.0 进一步升级为 Skill OS,把建模、跨端编译、输出评测、评审工作台、证据账本、包体验证、发布门禁和后续迭代串成一套完整流程。
[快速开始](#快速开始) · [Skill OS 2.0 升级](#skill-os-20-升级) · [从 1.0 到 2.0](#从-10-到-20) · [Operator UX 命令](#operator-ux-命令) · [加权质量评测](#加权质量评测) · [与其他元 Skill 的适用差异](#与其他元-skill-的适用差异)
## Skill OS 2.0 升级
Skill OS 2.0 保留 `yao-meta-skill` 原来的轻量入口,但把 skill 的生命周期说得更清楚。它不止生成 `SKILL.md`,还会围绕这个 skill 生成结构化契约、目标平台适配、评测证据、发布门禁和运营报告。
- **Skill IR(技能中间表示)**:用平台无关的结构记录意图、触发方式、输入输出、边界、参考资料和交付产物。
- **目标编译与适配器**:把同一份 skill 语义编译到 OpenAI、Claude、通用 agent skill、Agent Skills 兼容包和 VS Code 使用场景。
- **输出评测实验室**:覆盖触发评测、输出断言、执行证据、耗时与 token 证据、基准复现、盲评材料包、答案钥匙和评审裁决报告。
- **Review Studio 2.0(评审工作台)**:把意图、触发、输出评测、上下文成本、运行时检查、信任扫描、Skill Atlas、采用漂移、豁免、批注、发布证据、警告、阻塞项和修复动作放在同一个 HTML 页面。
- **证据与发布治理**:提供证据一致性、包体验证、安装模拟、运行时权限探测、世界级证据接收、证据账本、操作运行手册和公开宣传守卫。
- **SkillOps 闭环**:通过元数据级采用漂移、遥测 hook、自适应建议、日报/周报和组合级漂移信号,把发布后的反馈带回下一轮迭代。
当前发布口径:仓库已经适合进入测试版和外部试用,但更强的“世界级”公开宣传仍然受证据门禁约束。真实生产模型证据、真人盲评证据、原生权限执行和真实客户端遥测会继续作为独立证据任务推进,不会被包装成已经完成。
相关产物:
- [1.0 vs 2.0 可视化对比报告](../.previews/yao-meta-skill-2-comparison/index.html)
- [中文桌面预览图](../.previews/yao-meta-skill-2-comparison/yao-meta-skill-1-vs-2.png)
- [英文桌面预览图](../.previews/yao-meta-skill-2-comparison/yao-meta-skill-1-vs-2-en.png)
## 从 1.0 到 2.0
| 维度 | 1.0 重点 | 2.0 升级 |
| --- | --- | --- |
| 产品定位 | 创建、重构、评估和打包可复用 skill。 | 治理 skill 的完整生命周期:创建、编译、评测、评审、发布、遥测和迭代。 |
| 架构模型 | 以 `SKILL.md``agents/interface.yaml`、manifest 和报告文件为主。 | 引入 Skill IR、目标编译器、适配器、门禁契约、证据账本、发布锁和行动型评审页面。 |
| 跨端交付 | 主要覆盖 OpenAI、Claude 和通用包体。 | 扩展到 Agent Skills 兼容包和 VS Code 使用场景,并把兼容结果写入 registry 可读记录。 |
| 质量模型 | 触发、结构和报告式评审。 | 输出评测、基准复现、执行证据、失败披露、盲评材料包和证据一致性检查。 |
| 报告体验 | 概览 HTML 和首次评审页面。 | 双语 Skill Overview v2、Review Studio 2.0、评审批注、行动卡片、图表和审计型报告契约。 |
| 发布边界 | 能生成包体并做基础校验。 | 包体验证、安装模拟、运行时权限探测、发布锁、公开宣传守卫和操作运行手册。 |
| 运营闭环 | 更多依赖手动反馈和本地迭代。 | 采用漂移、元数据遥测、SkillOps 报告、自适应建议和组合级漂移检测。 |
## 2.0 使用场景
- **从重复工作创建新 skill**:从 workflow 笔记、prompt 集合、转录、runbook 或文档模式出发,生成精简入口、明确输入输出、参考资料、报告和最轻量的必要门禁。
- **把个人 skill 升级成团队资产**:补齐接口契约、manifest、目标适配器、信任检查、输出评测、评审豁免、发布说明和 Review Studio 证据,再交给多人复用。
- **准备测试版发布**:运行包体验证、安装模拟、兼容检查、运行时权限探测和证据一致性检查,把测试版就绪和更强公开声明分开处理。
- **发布后继续迭代**:用元数据级遥测、采用漂移、feedback log、SkillOps 报告和自适应建议判断下一步是补文档、补 eval、改 skill,还是调整治理规则。
- **与其他元 skill 搭配使用**:保留 Anthropic/OpenAI 式对话创建和精简写作方法的优势,在需要证据、可移植性、发布门禁和长期维护时用 `yao-meta-skill` 加固。
## Operator UX 命令
这组只读辅助命令把维护者最常见的判断变成可复验诊断:
```bash
python3 scripts/yao.py install-status --expected-source .
python3 scripts/yao.py localized-doc-sync-check
python3 scripts/yao.py pr-review-report 4 --repo yaojingang/yao-meta-skill
```
- `install-status` 会说明当前 skill 是从 `.codex/skills``.agents/skills` 还是 disabled mirror(禁用镜像)被发现,并提示是否存在重复激活。
- `localized-doc-sync-check` 会检查中文 README 是否同步包含英文 README 首页新增的公开说明模块。
- `pr-review-report` 会只读获取 GitHub PR 元数据、变更文件、状态检查和建议本地命令,不会合并或修改 PR。
## 能力面
它把粗糙的 workflow、transcript、prompt、notes 和 runbook 转成可复用的 skill 包,并具备:
- 清晰的触发面
- 精简的 `SKILL.md`
- 可选的 references、scripts 和 evals
- 深度起草前先做一轮更有人味的意图对话,并通过 intent confidence gate 判断理解是否足够清楚;如果不够清楚,会继续补 1 到 2 个高杠杆问题
- 深度起草前会静默执行 GitHub benchmark scan 和 reference synthesis,优先学习高质量公开项目与世界级模式;只有遇到真实冲突或不确定性时才显式抬给用户
- 会主动询问用户是否有希望借鉴的参考对象,只学习其中的模式抽象、结构和标准,不复制原文或私密内容
- 新建 skill 时自动生成一份默认中文、可切换英文的 HTML 可视化说明报告
- 提供 Review Studio 2.0,把意图、触发、输出评测、上下文、运行时、信任、采用漂移、豁免、批注、发布证据和修复动作汇总到一个页面
- 提供 Skill OS 2.0 审计,把世界级要求拆成本地证据、人类证据缺口和外部证据缺口
- 提供证据计划、证据账本、证据接收契约、提交审查队列、操作运行手册和公开宣传守卫,避免把计划中的工作写成已经完成
- 提供基准复现 manifest、证据一致性检查、输出评测实验室、盲评包和评审裁决报告
- 提供运行时权限探测、Python 兼容性门禁、包体验证和安装模拟
- 提供 prompt quality profile,把需求模型、RTF 映射、复杂度和提示词质量检查沉淀成 reviewer 可见证据,而不是塞进 `SKILL.md`
- 提供 artifact design profile,约束报告、教程、仪表盘、截图和评审页的视觉与质量标准
- 提供系统思考模型,记录边界、反馈环、漂移风险、复发失败模式和高杠杆改进点
- 首次建包后会自动给出 3 个最有价值的下一步迭代方向
- 提供一个紧凑的 HTML review viewer,方便第一次人工理解和评审
- 提供一个轻量 feedback log,不必每次都走完整 promotion 流程
- 提供本地优先、只记录元数据的 adoption drift 报告、CLI 运行捕获、外部客户端事件 hook、hook recipe 和 JSONL 导入
- 提供显式来源的 adaptive proposal loop,从脱敏重复偏好里生成需要人工批准的改进建议
- 提供 SkillOps 机会评分、决策策略、日报、周报和组合级漂移信号
- 提供一个 with-skill vs baseline 的对比报告,便于快速看增量收益
- 提供一个更像对话发现流程的 archetype-aware quickstart,引导新 skill 落到 scaffold、production、library 或 governed 的合适形态
- Skill IR 作为平台无关语义契约,并提供编译报告和客户端适配层
- registry audit 元数据,包含 package version、owner、license、checksum 和 compatibility matrix
- 内建的治理、晋升和 portability 检查
## 架构图
Hero 版可以压缩成一条主线:Skill OS 2.0 把零散输入变成一个可治理、可评测、可发布、可持续迭代的 skill 包。
```mermaid
flowchart LR
A["输入<br/>workflow / prompt / transcript / docs / notes"] --> B["意图建模<br/>任务 / 输出 / 排除项 / 标准"]
B --> C["Skill IR<br/>触发 / 契约 / 资源 / 证据"]
C --> D["Skill 包<br/>SKILL.md / references / scripts / reports"]
C --> E["目标编译<br/>OpenAI / Claude / generic / Agent Skills / VS Code"]
D --> F["评测实验<br/>触发 / 输出 / 基准 / 运行时"]
E --> F
F --> G["Review Studio<br/>门禁 / 警告 / 动作 / 豁免"]
G --> H["发布边界<br/>包体验证 / 安装模拟 / 宣传守卫"]
H --> I["SkillOps 闭环<br/>反馈 / 采用漂移 / 下一轮迭代"]
I --> B
```
10 秒理解这张图:
- **输入**:从零散 workflow、prompt、文档和笔记出发,不要求一开始就有完整规格。
- **意图建模**:先把任务、输出物、排除项、约束和质量标准说清楚,再生成文件。
- **Skill IR**:把语义契约和具体平台格式拆开,避免被某一个客户端锁死。
- **打包与编译**:从同一份源模型生成精简 skill 包和目标平台适配产物。
- **评测与评审**:把触发行为、输出质量、运行时检查和信任信号变成可复查证据。
- **发布与运营**:只在当前证据边界内发布,再把采用漂移和评审反馈带回下一轮迭代。
## 加权质量评测
下面是当前项目采用的工程质量评测模型。每个维度按 `0-10` 评分,再按权重折算到 `100` 分。GitHub stars 不计入总分,因为它反映生态热度,不直接代表元 skill 工程质量。
这个分数是本地工程证据,不等同于 world-class ready。公开宣称“已证明优于其他方案”仍要以 world-class ledger 中已接受的外部证据和人工证据为准。
加权总分公式:`sum(单项评分 / 10 * 权重)`
| 元 Skill | 方法论深度 15 | 上下文纪律 10 | 工具链 15 | Eval/测试 20 | 治理 15 | 可移植 10 | 上手/评审 5 | 本地可靠性 10 | 加权总分 |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| Yao Meta Skill | 9.5 | 8.0 | 9.5 | 9.5 | 9.5 | 9.0 | 6.5 | 9.5 | 91.5 |
| Anthropic Skill Creator | 9.0 | 6.5 | 8.5 | 7.5 | 4.0 | 5.0 | 7.5 | 5.0 | 67.5 |
| OpenAI Skill Creator | 8.5 | 9.5 | 5.0 | 2.0 | 3.0 | 4.0 | 8.5 | 4.0 | 50.5 |
| 排名 | 元 Skill | 总分 | 核心定位 |
| ---: | --- | ---: | --- |
| 1 | Yao Meta Skill | 91.5 | 工程化、评测化、治理化、可移植的完整元 skill 系统。 |
| 2 | Anthropic Skill Creator | 67.5 | 方法论和迭代闭环强,但本地执行可靠性和治理覆盖较弱。 |
| 3 | OpenAI Skill Creator | 50.5 | 更适合作为精简 skill 写作方法论教材,而不是完整工程系统。 |
## 人工盲测快照
2026-06-29,一位人工评审者在 5 个真实常见的 skill 创建场景里,对比了 `yao-meta-skill` 和内置的 OpenAI `skill-creator`。5 个场景分别是客服工单分诊、月度收入对账、Webinar 内容复用、故障复盘和 PR Review 跟进。评审者确认:所有选择都在揭晓来源前完成。
结果:`yao-meta-skill``5/5` 个案例中胜出。
证据:
- 盲测入口:[reports/blind-human-review-2026-06-29/index.html](../reports/blind-human-review-2026-06-29/index.html)
- Adjudication 摘要:[reports/blind-human-review-2026-06-29/adjudication.md](../reports/blind-human-review-2026-06-29/adjudication.md)
- 已记录判断:[reports/blind-human-review-2026-06-29/review-decisions.recorded.json](../reports/blind-human-review-2026-06-29/review-decisions.recorded.json)
边界:这是单人盲测偏好证据,不是 provider-backed 的独立模型执行证据;每个案例的逐项理由仍为空。
## 与其他元 Skill 的适用差异
- 如果你要的是**团队复用、显式边界、质量门、治理、可移植性和长期维护**,更适合 `Yao Meta Skill`
- 如果你要的是**对话优先的创作循环和人工引导式迭代**,更适合 `Anthropic Skill Creator`
- 如果你要的是**精简的 skill 写作参考和上下文纪律示范**,更适合 `OpenAI Skill Creator`
- 一个很实用的组合方式是:先用更对话式的系统做第一版,再用 `yao-meta-skill` 把它加固成团队可复用的正式资产。
## 快速开始
如果你想直接在 Codex 里使用这个 skill,先安装到全局 skills
```bash
npx -y skills add yaojingang/yao-meta-skill -a codex -g -y
```
如果要安装到全部支持的 agent,把 `-a codex` 换成 `-a '*'`
```bash
npx -y skills add yaojingang/yao-meta-skill -a '*' -g -y
```
安装完成后重启客户端,再用“创建 skill”“改进已有 skill”“评估 skill”“给 skill 增加 eval”这类任务触发 `yao-meta-skill`
1. 先描述你想沉淀成 skill 的 workflow、prompt 集合或重复任务。
2. 先做一轮简短但更有人味的意图对话,把真实任务、输出物、边界、约束和你在意的质量标准说清楚。
3. 先让 `quickstart` 澄清意图,再静默跑 benchmark scan 和 reference synthesis;只有当意图还不清楚,或者设计路线真的冲突时,才会显式继续追问或让你拍板。
4. 使用 archetype-aware 的 `quickstart` 或完整作者流,在 scaffold、production、library 或 governed 模式下生成或改进 skill 包。
5. 新建 skill 后,先看 `reports/skill-interpretation.html` 理解双语解释报告,再打开 `reports/skill-overview.html` 查看概述、指标、原理、边界、质量、风险、资产和路线,最后用 `reports/review-studio.html` 检查发布阻塞、权限批准和证据路径。
## 当前结果
- 当前 `make test` 和 GitHub Actions `test` 可通过
- 当前回归集下 trigger eval 为 `0` 误触发、`0` 漏触发
- train / dev / holdout 三层评测均通过
- 中文真实表达已经纳入触发评测,覆盖“做一个 skill”“沉淀成可复用能力”“优化已有 skill”“补 trigger 评测”等常见说法
- registry 记录的目标平台从 OpenAI、Claude、Generic 扩展到 Agent Skills 和 VS Code 相关适配
- Review Studio 当前汇总 16 个门禁,包体验证、安装模拟、证据一致性和发布声明边界已经进入报告链路
- 单人盲测快照中,评审者在揭晓来源前完成判断,并在 `5/5` 个真实 skill 创建场景中选择 `yao-meta-skill`;证据见 [reports/blind-human-review-2026-06-29/adjudication.md](../reports/blind-human-review-2026-06-29/adjudication.md)
## 当前优势
最新加权评测中,Yao 的总分是 `91.5/100`。2.0 的强项集中在团队级 skill 资产真正需要的能力上:
- **方法论深度 `9.5`**:已经形成正式的 skill engineering doctrine,覆盖 archetype、gate selection、non-skill decision、governance 和 resource boundary。
- **工具链完整度 `9.5`**:初始化、校验、benchmark scan、description optimization、Skill IR、目标编译、报告、晋升检查、打包、CI 和 portability checks 已经串成一条完整工具链。
- **Eval / 测试严谨度 `9.5`**:触发评测覆盖 train/dev/holdout、blind holdout、adversarial holdout、judge-backed blind eval、route confusion、drift history、output eval 和 promotion gate。
- **治理 / 生命周期 `9.5`**:重要 skill 可以声明 owner、生命周期、review cadence、maturity score、trust boundary、promotion decision、regression history、release lock 和 evidence ledger。
- **本地可执行可靠性 `9.5`**:可以通过 `make test``make ci-test` 和统一 CLI 在本地复验。
- **可移植 / 分发能力 `9.0`**:源码保持中性,adapter、degradation rule、packaging contract 和 portability score 负责保留跨环境可复用语义。
- **上下文纪律 / 精简度 `8.0`**:入口仍保持在预算内,但因为系统承载了更多报告、案例、benchmark 和证据资产,这一项被持续作为约束跟踪。
- **上手 / 评审体验 `6.5`**quickstart、HTML overview、side-by-side review viewer 和 feedback log 已经改善首次体验,但仍是下一阶段最值得优化的 UX 维度。
整体方向很明确:入口尽量轻,评测尽量硬,治理显性化;测试版可以开放试用,但公开宣传会继续受证据账本约束。
## 为什么是 Yao
- **轻量**:入口保持紧凑,context budget 明确分层,只有在真正值得时才增加额外结构。
- **严谨**trigger 质量会经过 family regression、blind holdout、adversarial holdout、route confusion、judge-backed blind eval 和 promotion gate 的联合检查。
- **可治理**:重要 skill 被当成可维护资产处理,具备 lifecycle、maturity expectation、owner 和 review cadence。
- **可移植**:源码元数据保持中性,adapter、degradation rule 和 packaging contract 负责保留跨环境可复用语义。
## 它能做什么
这个项目帮助你把 skill 从一次性 prompt,升级成可创建、可重构、可评估、可打包、可审计、可发布、可持续迭代的长期能力包。
它的设计逻辑很简单:
1. 识别用户请求背后真正重复发生的工作
2. 划清 skill 边界,让一个包只做一个连贯的任务
3. 优先优化触发 description,而不是先把正文写长
4. 保持主 skill 文件精简,把细节移到 references 或 scripts
5. 只在值得时加入质量门槛
6. 只为真正需要的客户端导出兼容产物
## 为什么要做它
大多数团队的重要操作知识都散落在聊天记录、个人 prompt、口头习惯和未成文 workflow 中。这个项目的作用,是把这些隐性流程知识转成:
- 可发现的 skill 包
- 可重复的执行流程
- 更低上下文负担的指令
- 可复用的团队资产
- 可兼容分发的产物
## 仓库结构
```text
yao-meta-skill/
├── SKILL.md
├── README.md
├── LICENSE
├── .gitignore
├── agents/
│ └── interface.yaml
├── references/
├── scripts/
└── templates/
```
## 核心组成
### `SKILL.md`
主 skill 入口,定义触发面、工作模式、压缩后的工作流和输出契约。
### `agents/interface.yaml`
中性的元数据单一来源。它保存显示信息和兼容性信息,不把源码树锁定到某一家厂商的专属路径。
### `references/`
用于存放不应该塞进主 skill 文件的长文档,包括设计规则、评估方法、兼容策略和质量 rubric。
### `scripts/`
让这个元 skill 具备工程化能力的辅助脚本:
- `trigger_eval.py`:检查 trigger description 是否过宽或过弱
- `context_sizer.py`:估算上下文体积,并在初始加载过大时给出警告
- `cross_packager.py`:从中性的源码包生成客户端特定的导出产物
### `templates/`
用于生成简单 skill 和更复杂 skill 的起步模板。
## 如何使用
### 1. 直接使用这个 skill
当你想做以下事情时,可以调用 `yao-meta-skill`
- 创建新 skill
- 改进已有 skill
- 给 skill 增加 eval
- 把 workflow 变成可复用包
- 为更广泛的团队使用准备 skill
### 2. 生成一个新的 skill 包
典型流程是:
1. 描述 workflow 或能力
2. 识别触发语句和目标输出
3. 选择 scaffold、production 或 library 模式
4. 生成 skill 包
5. 在需要时运行体积检查和触发检查
6. 导出面向目标客户端的兼容产物
### 3. 导出兼容产物
示例:
```bash
python3 scripts/cross_packager.py ./yao-meta-skill --platform openai --platform claude --zip
python3 scripts/context_sizer.py ./yao-meta-skill
python3 scripts/trigger_eval.py --description "Create and improve agent skills..." --cases ./cases.json
```
## 优势
- **方法论优先,不是 prompt 优先**skill creation 被当成正式工程流程,而不是只写一段说明文字
- **天生面向触发优化**description 会经过 route confusion、blind holdout、adversarial family 和 promotion policy 的检查
- **入口轻量**`SKILL.md` 保持克制,references、scripts、evals 只在真正值得时加入
- **工具链完整**:初始化、校验、优化、报告、打包、测试,都能走统一 CLI 和 CI 路径
- **治理化资产**:重要 skill 可以带 owner、lifecycle、maturity expectation 和 review cadence
- **默认可移植**:源码中立,兼容性通过 adapter 和 degradation rule 处理
- **证据密度高**route scorecard、regression history、context budget、portability score、promotion decision 都是公开产物,而不是隐藏实现
## 最适合谁
这个项目尤其适合:
- agent 构建者
- 内部工具团队
- 正在从 prompt engineering 转向 skill engineering 的人
- 想构建可复用 skill 库的组织
## 许可证
MIT。见 [LICENSE](../LICENSE)。
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

+33
View File
@@ -0,0 +1,33 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1280" height="640" viewBox="0 0 1280 640">
<rect width="1280" height="640" fill="#FFFFFF"/>
<text x="92" y="142" font-family="Georgia, serif" font-size="74" fill="#111111">YAO</text>
<text x="92" y="206" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="34" fill="#111111">Yielding AI Outcomes</text>
<text x="92" y="266" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="21" fill="#111111">A rigorous engineering, evaluation, governance, and portability system</text>
<text x="92" y="300" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="21" fill="#111111">for reusable agent skills.</text>
<line x1="92" y1="362" x2="1188" y2="362" stroke="#D9DDE3" stroke-width="2"/>
<rect x="92" y="396" width="250" height="118" rx="18" fill="#FFFFFF" stroke="#D9DDE3" stroke-width="2"/>
<text x="114" y="430" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="18" fill="#4B5563">Weighted Score</text>
<text x="114" y="478" font-family="Georgia, serif" font-size="42" fill="#111111">91.5</text>
<text x="228" y="492" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="18" fill="#4B5563">/ 100</text>
<text x="114" y="514" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="16" fill="#4B5563">Method 9.5 · Eval 9.5 · Governance 9.5</text>
<rect x="378" y="400" width="400" height="68" rx="16" fill="#FFFFFF" stroke="#D9DDE3" stroke-width="2"/>
<text x="396" y="428" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="18" fill="#111111">Engineering</text>
<text x="396" y="452" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="16" fill="#4B5563">Unified CLI, CI, validation, reporting, and packaging.</text>
<rect x="802" y="400" width="400" height="68" rx="16" fill="#FFFFFF" stroke="#D9DDE3" stroke-width="2"/>
<text x="820" y="428" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="18" fill="#111111">Evaluation</text>
<text x="820" y="452" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="16" fill="#4B5563">Holdouts, route confusion, judge-backed blind evals.</text>
<rect x="378" y="486" width="400" height="68" rx="16" fill="#FFFFFF" stroke="#D9DDE3" stroke-width="2"/>
<text x="396" y="514" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="18" fill="#111111">Governance</text>
<text x="396" y="538" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="16" fill="#4B5563">Lifecycle, maturity, promotion, and review evidence.</text>
<rect x="802" y="486" width="400" height="68" rx="16" fill="#FFFFFF" stroke="#D9DDE3" stroke-width="2"/>
<text x="820" y="514" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="18" fill="#111111">Portability</text>
<text x="820" y="538" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="16" fill="#4B5563">Neutral metadata, adapters, contracts, and degradation.</text>
<line x1="92" y1="530" x2="1188" y2="530" stroke="transparent"/>
<line x1="92" y1="556" x2="1188" y2="556" stroke="#D9DDE3" stroke-width="2"/>
<text x="92" y="598" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="16" fill="#4B5563">Reusable agent skills with explicit boundaries, strict evaluation, visible governance, and local reliability.</text>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

+63
View File
@@ -0,0 +1,63 @@
# Migration To Skill OS 2.0
This document tracks the first migration path from Yao Meta Skill 1.x to the Skill OS 2.0 architecture.
## 1.x To 2.0 Mapping
| 1.x Asset | 2.0 Role |
| --- | --- |
| `SKILL.md` frontmatter | `skill-ir.trigger_surface.description` |
| `reports/intent-context.json` | `skill-ir.job_to_be_done` and input/output assumptions |
| `evals/trigger_cases.json` | `skill-ir.trigger_surface` samples and Trigger Eval Lab |
| `reports/baseline-compare.*` | legacy baseline evidence for Output Eval Lab |
| `reports/output-risk-profile.*` | failure taxonomy seed for Output Eval Lab |
| `agents/interface.yaml` | target compatibility seed for runtime conformance |
| `manifest.json` | governance and registry metadata seed |
## Migration Steps
1. Export Skill IR:
```bash
python3 scripts/export_skill_ir.py . --output-json skill-ir/examples/yao-meta-skill.json
```
2. Run Output Eval Lab:
```bash
python3 scripts/run_output_eval.py
```
3. Run runtime conformance and trust checks:
```bash
python3 scripts/run_conformance_suite.py .
python3 scripts/trust_check.py .
```
4. For library or team workspaces, build the Skill Atlas:
```bash
python3 scripts/build_skill_atlas.py --workspace-root . --output-dir skill_atlas --report-html reports/skill_atlas.html --report-json reports/skill_atlas.json
```
This also writes `skill_atlas/drift_signals.json` from aggregate `reports/adoption_drift_report.json` files. Do not migrate or publish raw `reports/telemetry_events.jsonl` logs.
5. Keep legacy trigger eval gates intact while output eval coverage grows.
6. Move adapter-specific logic toward future compiler commands after IR fields are stable.
7. Treat new 2.0 checks as tiered gates: scaffold stays light, production adds output eval, library adds conformance and atlas, governed adds trust and release evidence.
## Compatibility Strategy
No existing 1.x command is removed in the v0 migration. New commands produce additional artifacts and should become release gates only after their cases and schemas stabilize.
## Deprecation Notes
- Legacy baseline compare remains useful but should not be treated as full output quality proof.
- Platform packaging should continue to work directly until compiler-based packaging is introduced.
- Review Studio 2.0 should aggregate existing reports before replacing any current report.
- Conformance v0 is a structural and metadata gate; it does not yet simulate each client runtime.
- Trust v0 blocks obvious secret and remote-inline-execution risks, while surfacing script and dependency warnings for reviewer judgment.
- Skill Atlas v0 is local-first portfolio analysis; avoid committing reports generated from private parent workspaces unless the names and routes are intended to be shared.
+86
View File
@@ -0,0 +1,86 @@
# Evals
This directory makes trigger quality and packaging quality more reproducible.
Contents:
- `trigger_cases.json`: full regression set with `family` labels
- `train/`, `dev/`, `holdout/`: split trigger suites for iterative tuning and final verification
- `blind_holdout/`: description-optimization acceptance prompts that do not participate in candidate ranking
- `adversarial/`: harder route-collision prompts for description optimization, including noisy positives and deceptive non-trigger requests
- `confusion/`: sibling-skill routing prompts used to catch route theft and false `no_route` decisions
- `semantic_config.json`: local semantic-intent concepts, exclusions, and weights
- `promotion_policy.md`: formal rules for when a route is promotable
- `baseline_description.txt`: intentionally weaker trigger description
- `improved_description.txt`: current stronger trigger description
- `../reports/description_optimization*.{json,md}`: generated route-optimization reports for the root skill
- `failure-cases.md`: current weak spots and regression targets
- `packaging_expectations.json`: required packaging behaviors for supported targets, including IR provenance, compiler contracts, and semantic parity fields
- `output/`: Output Eval Lab cases, fixtures, and schema for with-skill vs baseline assertion grading
- registry audit tests verify package metadata, compatibility, checksum, owner, license, and Skill IR provenance
- package verification tests verify generated manifests, target adapters, zip archive safety, archive checksum, and registry parity
- install simulation tests verify archive extraction, entrypoint loading, manifest/interface readability, adapter loading, and unsafe zip blocking
- upgrade check tests verify version-bump recommendations, target diff detection, compatibility regression blocking, and release-note evidence
- adoption drift tests verify metadata-only telemetry aggregation, privacy-field blocking, and exclusion of raw local telemetry logs from zip packages
- review waiver tests verify reviewer, reason, expiry, active coverage, expired records, invalid records, and Review Studio integration
- compiler tests verify Skill IR target contracts, adapter modes, generated-file mappings, unsupported targets, and markdown/json report artifacts
- `../reports/`: generated suite JSON plus the homepage-visible family summary panel source
Use:
```bash
python3 scripts/trigger_eval.py --description-file evals/improved_description.txt --cases evals/trigger_cases.json
python3 scripts/trigger_eval.py --description-file evals/improved_description.txt --cases evals/trigger_cases.json --baseline-description-file evals/baseline_description.txt
python3 scripts/run_eval_suite.py
python3 scripts/judge_blind_eval.py --description-file SKILL.md --cases evals/blind_holdout/trigger_cases.json --semantic-config evals/semantic_config.json
python3 scripts/run_description_optimization_suite.py --history-snapshot-output evals/history/description_optimization/YYYY-MM-DD-adversarial-calibration-and-family-drift.json --snapshot-date YYYY-MM-DD --snapshot-id adversarial-calibration-and-family-drift --snapshot-label "Adversarial Calibration And Family Drift"
python3 scripts/build_confusion_matrix.py --history-snapshot-output evals/history/YYYY-MM-DD-route-scorecard-foundation.json --snapshot-date YYYY-MM-DD --snapshot-id route-scorecard-foundation --snapshot-label "Route Scorecard Foundation"
python3 scripts/render_eval_dashboard.py
python3 scripts/render_description_drift_history.py
python3 scripts/render_iteration_ledger.py
python3 tests/verify_description_optimization.py
python3 tests/verify_route_confusion.py
python3 tests/verify_failure_regressions.py
python3 scripts/compile_skill.py . --target openai --target claude --target generic
python3 tests/verify_compile_skill.py
python3 scripts/cross_packager.py . --platform openai --platform claude --expectations evals/packaging_expectations.json --zip
python3 scripts/verify_package.py . --package-dir dist --require-zip
python3 tests/verify_packager_failures.py
python3 tests/verify_package_verification.py
python3 scripts/simulate_install.py . --package-dir dist
python3 tests/verify_install_simulation.py
python3 scripts/run_output_eval.py
python3 tests/verify_output_eval_lab.py
python3 scripts/registry_audit.py .
python3 tests/verify_registry_audit.py
python3 scripts/upgrade_check.py . --previous-package-json registry/examples/yao-meta-skill-1.0.0.json
python3 tests/verify_upgrade_check.py
python3 scripts/render_adoption_drift_report.py . --record-event skill_activation --activation-type explicit --outcome accepted
python3 tests/verify_adoption_drift.py
python3 scripts/render_review_waivers.py .
python3 tests/verify_review_waivers.py
```
Regression scope now includes:
- direct positives
- direct negatives
- near neighbors
- long-context positives
- mixed-intent negatives
- explicit "do not build a skill" negatives
- semantic exclusion cases such as one-off, document-only, and future-outline prompts
- paraphrase families that avoid the original wording while preserving the same trigger intent
- long-context contamination cases where build intent or no-build intent appears after unrelated setup text
- family-based reporting across workflow-to-skill, iterate-existing-skill, document-only, one-off, and future-outline cases
- holdout verification
- description optimization reports that compare baseline, current, and optimized route wording across dev, holdout, blind holdout, and adversarial holdout gates
- judge-backed blind-holdout verification that adds a rubric-based second opinion for blind prompts
- calibration summaries that surface score gaps, threshold margins, and risk bands for each acceptance gate
- family-level drift history that records which blind and adversarial families stay clean over time
- output-quality scorecards that compare without-skill and with-skill artifacts through assertion grading, including near-neighbor and file-backed governed cases
- install-simulation checks that prove generated archives can be extracted into a temporary local skill root and loaded without touching the active global skills directory
- upgrade-readiness checks that compare registry package baselines, recommend semver bumps, and block breaking changes without an adequate declared version
- local-first adoption drift checks that turn accepted, edited, missed, rejected, script-error, and review-overdue metadata into next iteration candidates without storing raw prompts or outputs
- reviewer-waiver checks that keep warning acceptance explicit, expiring, and separate from non-waivable blockers
- compiler checks that turn Skill IR into reviewable target contracts before packaging embeds those contracts into adapters
@@ -0,0 +1,8 @@
{"text":"新生成的 Skill 报告默认使用中文简体,并在右上角提供英文切换。"}
{"text":"HTML 报告需要双语能力,但默认内容应该保持中文简体。"}
{"text":"报告排版采用白底 Kami 风格,图表、模块和导航都要清晰。"}
{"text":"Skill 概览报告需要更多图表模块,避免右侧文本挤在一起。"}
{"text":"自适应升级必须先生成提案,不能直接自动修改源文件。"}
{"text":"用户偏好扫描必须由用户提供明确路径,不要默认扫描私人日志。"}
{"text":"每次升级都需要测试、覆盖报告和可审计证据,推送前要跑 CI。"}
{"text":"涉及 GitHub 推送时,要保留证据链,避免把计划当作完成证明。"}
+33
View File
@@ -0,0 +1,33 @@
{
"recommended_threshold": 0.33,
"should_trigger": [
{
"family": "adversarial_noisy_operationalize",
"text": "Ignore the noisy meeting chatter and operationalize this support escalation workflow into a maintained skill package with trigger hardening."
},
{
"family": "adversarial_multi_asset_boundary",
"text": "Codify this routine into a reusable capability from docs, transcripts, and prompt history, then stress test the route boundary."
}
],
"should_not_trigger": [
{
"family": "adversarial_document_collision",
"text": "Create a wiki package from this runbook and do not generate any skill files."
},
{
"family": "adversarial_summary_translation_collision",
"text": "Summarize this SOP, translate it into Japanese for the knowledge base, and keep it as documentation only."
}
],
"near_neighbor": [
{
"family": "adversarial_future_outline_collision",
"text": "Outline a possible future skill from these notes, but stop short of making a full skill and keep it as a plain note."
},
{
"family": "adversarial_brainstorm_collision",
"text": "Brainstorm packaging improvements for later and keep this as discussion only."
}
]
}
+1
View File
@@ -0,0 +1 @@
Create and improve agent skills.
+42
View File
@@ -0,0 +1,42 @@
{
"recommended_threshold": 0.33,
"negative_patterns": [
"one-off",
"translate",
"summary",
"document",
"wiki",
"brainstorm",
"do not build"
],
"should_trigger": [
{
"text": "Operationalize this support escalation routine as a maintained skill and keep trigger eval coverage.",
"family": "blind_operationalize"
},
{
"text": "Take these SOP scraps, prompt notes, and transcript excerpts and formalize them into a reusable capability package.",
"family": "blind_multi_asset"
}
],
"should_not_trigger": [
{
"text": "Turn this workflow note into a wiki reference only, do not create any skill files, and keep it out of agent execution.",
"family": "blind_document_only"
},
{
"text": "Explain the differences between prompts and skills in plain English.",
"family": "blind_explain_only"
}
],
"near_neighbor": [
{
"text": "Sketch a future skill outline from these notes, but stop before generating files.",
"family": "blind_future_outline"
},
{
"text": "Review this process and suggest improvements for later; no packaging yet.",
"family": "blind_brainstorm_only"
}
]
}
+90
View File
@@ -0,0 +1,90 @@
{
"margin_warning_threshold": 0.08,
"routes": [
{
"name": "yao-meta-skill",
"description_file": "SKILL.md",
"semantic_config": "evals/semantic_config.json",
"threshold": 0.33
},
{
"name": "team-frontend-review",
"description_file": "examples/team-frontend-review/generated-skill/SKILL.md",
"semantic_config": "examples/team-frontend-review/optimization/semantic_config.json",
"threshold": 0.48
},
{
"name": "governed-incident-command",
"description_file": "examples/governed-incident-command/generated-skill/SKILL.md",
"semantic_config": "examples/governed-incident-command/optimization/semantic_config.json",
"threshold": 0.48
}
],
"cases": [
{
"family": "meta_create",
"expected_route": "yao-meta-skill",
"text": "Create a reusable skill from this workflow and add evals before sharing it with the team."
},
{
"family": "meta_iterate",
"expected_route": "yao-meta-skill",
"text": "Refactor this existing skill description, tighten the trigger boundary, and package it for reuse."
},
{
"family": "meta_operationalize",
"expected_route": "yao-meta-skill",
"text": "Turn these prompts, notes, and transcripts into a maintained skill package with references and scripts."
},
{
"family": "frontend_premerge",
"expected_route": "team-frontend-review",
"text": "Run a pre-merge frontend review for keyboard navigation issues and unsafe rendering."
},
{
"family": "frontend_states",
"expected_route": "team-frontend-review",
"text": "Run a pre-merge frontend review on this React diff for missing empty states, form handling, and UX regressions."
},
{
"family": "frontend_a11y",
"expected_route": "team-frontend-review",
"text": "Review React components for a11y regressions, unsafe rendering, and UI behavior before merge."
},
{
"family": "incident_packet",
"expected_route": "governed-incident-command",
"text": "Build a governed incident command packet from alerts, responder notes, incident communication needs, and severity findings."
},
{
"family": "incident_severity",
"expected_route": "governed-incident-command",
"text": "Run severity assessment and package incident communication from this outage review."
},
{
"family": "incident_governed_workflow",
"expected_route": "governed-incident-command",
"text": "Standardize this incident review into a reusable governed workflow with owner actions."
},
{
"family": "no_route_explain",
"expected_route": "no_route",
"text": "Explain keyboard accessibility basics in plain English."
},
{
"family": "no_route_build",
"expected_route": "no_route",
"text": "Build a React form page with loading and empty states."
},
{
"family": "no_route_single_update",
"expected_route": "no_route",
"text": "Write one short outage update for customers from these notes."
},
{
"family": "no_route_document_only",
"expected_route": "no_route",
"text": "Summarize this workflow and keep it as documentation only."
}
]
}
+106
View File
@@ -0,0 +1,106 @@
{
"recommended_threshold": 0.33,
"negative_patterns": [
"one-off",
"do not turn",
"without building",
"brainstorm",
"just explain",
"headline",
"summarize"
],
"should_trigger": [
{
"text": "Convert this operations checklist into a reusable skill.",
"family": "workflow_to_skill"
},
{
"text": "Add trigger evals to this skill before sharing it with the team.",
"family": "iterate_existing_skill"
},
{
"text": "We have a messy release runbook, export process, and a prompt history; turn all of that into one reusable skill package with evals and packaging checks.",
"family": "complex_multi_asset"
},
{
"text": "Turn these workflow fragments, transcripts, and prompts into one production-ready skill with scripts and references.",
"family": "complex_multi_asset"
},
{
"text": "Tighten the trigger boundary on this existing skill and prepare it for team distribution.",
"family": "iterate_existing_skill"
},
{
"text": "Turn the SOP, transcript, and cleanup notes into a maintained skill for the team library.",
"family": "paraphrase_trigger"
},
{
"text": "Codify this workflow into a shared capability package and validate the route boundary before distribution.",
"family": "paraphrase_trigger"
},
{
"text": "After the long handoff notes below, build a skill package for team reuse. The materials include a transcript, rough notes, and an onboarding flow, and the result should include references, scripts, and validation.",
"family": "long_context_trigger"
}
],
"should_not_trigger": [
{
"text": "Give me ideas for improving our process.",
"family": "brainstorm_only"
},
{
"text": "Review this note and tell me what it means in plain English.",
"family": "explain_only"
},
{
"text": "Help me brainstorm several ways to improve packaging, but do not generate any skill files.",
"family": "brainstorm_only"
},
{
"text": "Translate these notes into French and keep the structure exactly as-is.",
"family": "translate_only"
},
{
"text": "Summarize this workflow and list the main points only.",
"family": "summary_only"
},
{
"text": "This is a long incident write-up. Keep it as documentation only, explain it in simpler language, and do not convert it into a reusable capability.",
"family": "long_context_document_only"
},
{
"text": "I pasted a very long process note. For now I only need a recap and a short summary, not a skill package.",
"family": "long_context_summary_only"
}
],
"near_neighbor": [
{
"text": "Review this process note and explain it, no packaging needed.",
"family": "explain_not_package"
},
{
"text": "Turn this into a checklist and template, but stop short of making a full skill.",
"family": "partial_scaffold_not_full_skill"
},
{
"text": "Package this explanation as a document, not as an agent skill.",
"family": "document_export_vs_agent_skill"
},
{
"text": "Make a future-ready outline for this skill idea, but do not build the package.",
"family": "future_outline_vs_build"
},
{
"text": "Polish these notes into a reusable-looking document without turning them into an agent skill.",
"family": "document_export_vs_agent_skill"
},
{
"text": "Turn the workflow below into a wiki-ready reference document and template only. We may build a skill later, but not now.",
"family": "long_context_near_neighbor"
},
{
"text": "Shape this idea for later and produce a future-ready outline, but do not build the skill package yet.",
"family": "future_outline_vs_build"
}
]
}
+44
View File
@@ -0,0 +1,44 @@
# Failure Cases
These cases document where the current trigger strategy is still weak.
## Current Weak Spots
### 1. One-off prompt requests
Example:
`Create a one-off prompt for this task.`
Why it is hard:
- it overlaps strongly with skill-creation vocabulary
- but the user explicitly does not want a reusable package
### 2. Documentation improvement requests
Example:
`Improve this README but do not turn it into a skill.`
Why it is hard:
- it contains transformation language
- but the packaging intent is explicitly absent
### 3. Early-stage brainstorming
Example:
`Help me brainstorm process ideas without building a skill.`
Why it is hard:
- it is adjacent to skill-design work
- but it is still pre-packaging exploration
## How To Use These Failures
- keep them in `near_neighbor`
- use them when adjusting thresholds
- treat them as persistent regression checks
@@ -0,0 +1,27 @@
{
"snapshot_id": "context-first-pack",
"date": "2026-03-31",
"commit": "local-snapshot",
"label": "Context First Pack",
"trigger_summary": {
"total_cases": 66,
"family_count": 21,
"false_positives": 0,
"false_negatives": 0,
"average_precision": 1.0,
"average_recall": 1.0
},
"quality_gates": {
"packaging_contracts": true,
"failure_fixtures": true,
"governance_checks": true,
"resource_boundary_checks": true
},
"governance_score": 90,
"governed_examples": 1,
"notes": [
"added tiered context budgets",
"added unused resource detection and quality density",
"added root and example context budget reports"
]
}
@@ -0,0 +1,26 @@
{
"snapshot_id": "family-suite-expansion",
"date": "2026-03-31",
"commit": "bcadded",
"label": "Family Suite Expansion",
"trigger_summary": {
"total_cases": 66,
"family_count": 21,
"false_positives": 0,
"false_negatives": 0,
"average_precision": 1.0,
"average_recall": 1.0
},
"quality_gates": {
"packaging_contracts": true,
"failure_fixtures": true,
"governance_checks": false,
"resource_boundary_checks": false
},
"governance_score": null,
"governed_examples": 0,
"notes": [
"expanded the family-based trigger suite",
"published the homepage eval dashboard"
]
}
@@ -0,0 +1,27 @@
{
"snapshot_id": "governance-quality-gates",
"date": "2026-03-31",
"commit": "13319bf",
"label": "Governance Quality Gates",
"trigger_summary": {
"total_cases": 66,
"family_count": 21,
"false_positives": 0,
"false_negatives": 0,
"average_precision": 1.0,
"average_recall": 1.0
},
"quality_gates": {
"packaging_contracts": true,
"failure_fixtures": true,
"governance_checks": true,
"resource_boundary_checks": true
},
"governance_score": 90,
"governed_examples": 0,
"notes": [
"added runnable governance checks",
"added resource-boundary checks",
"wired both into make test"
]
}
@@ -0,0 +1,27 @@
{
"snapshot_id": "governed-assets-and-history",
"date": "2026-03-31",
"commit": "local-snapshot",
"label": "Governed Assets And History",
"trigger_summary": {
"total_cases": 66,
"family_count": 21,
"false_positives": 0,
"false_negatives": 0,
"average_precision": 1.0,
"average_recall": 1.0
},
"quality_gates": {
"packaging_contracts": true,
"failure_fixtures": true,
"governance_checks": true,
"resource_boundary_checks": true
},
"governance_score": 90,
"governed_examples": 1,
"notes": [
"added governance maturity scoring",
"added regression history snapshots and renderer",
"added governed incident-command example"
]
}
@@ -0,0 +1,30 @@
{
"snapshot_id": "route-scorecard-foundation",
"date": "2026-04-01",
"commit": "local-snapshot",
"label": "Route Scorecard Foundation",
"trigger_summary": {
"total_cases": 13,
"family_count": 13,
"false_positives": 0,
"false_negatives": 0,
"average_precision": 1.0,
"average_recall": 1.0
},
"route_summary": {
"accuracy": 1.0,
"ambiguous_case_count": 0,
"misroute_count": 0,
"no_route_accuracy": 1.0
},
"quality_gates": {
"route_confusion_checks": true,
"promotion_policy_present": true
},
"governance_score": null,
"governed_examples": 1,
"notes": [
"added route confusion matrix for sibling skills and no-route cases",
"published route scorecard and iteration ledger foundation"
]
}
+16
View File
@@ -0,0 +1,16 @@
# Regression History Snapshots
This directory stores milestone-level regression snapshots.
Each snapshot records:
- date
- label
- trigger-suite summary
- route-summary when route confusion tracking is active
- enabled quality gates
- governance score when available
- governed example count
- notable milestone notes
Use `python3 scripts/render_regression_history.py` to rebuild the markdown report in `reports/regression_history.md`.
@@ -0,0 +1,45 @@
{
"snapshot_id": "description-optimization-suite",
"date": "2026-03-31",
"commit": "e78602c",
"label": "Description Optimization Suite",
"targets": [
{
"name": "yao-meta-skill",
"winner_label": "Current",
"winner_tokens": 65,
"winner_holdout_fp": 0,
"winner_holdout_fn": 0,
"winner_blind_holdout_fp": null,
"winner_blind_holdout_fn": null,
"winner_blind_holdout_total_errors": null,
"drift_note": "initial description optimization suite without blind holdout"
},
{
"name": "team-frontend-review",
"winner_label": "Current",
"winner_tokens": 50,
"winner_holdout_fp": 0,
"winner_holdout_fn": 0,
"winner_blind_holdout_fp": null,
"winner_blind_holdout_fn": null,
"winner_blind_holdout_total_errors": null,
"drift_note": "compressed example description and stored first holdout report"
},
{
"name": "governed-incident-command",
"winner_label": "Current",
"winner_tokens": 37,
"winner_holdout_fp": 0,
"winner_holdout_fn": 1,
"winner_blind_holdout_fp": null,
"winner_blind_holdout_fn": null,
"winner_blind_holdout_total_errors": null,
"drift_note": "compressed governed description and reduced visible holdout misses"
}
],
"notes": [
"added dev and holdout description optimization reports",
"connected description optimization to make test"
]
}
@@ -0,0 +1,342 @@
{
"snapshot_id": "adversarial-calibration-and-family-drift",
"date": "2026-04-01",
"commit": "local-snapshot",
"label": "Adversarial Calibration And Family Drift",
"targets": [
{
"name": "yao-meta-skill",
"winner_label": "Current",
"winner_description": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.",
"winner_tokens": 65,
"current_tokens": 65,
"winner_holdout_fp": 0,
"winner_holdout_fn": 0,
"current_holdout_fp": 0,
"current_holdout_fn": 0,
"baseline_holdout_fp": 0,
"baseline_holdout_fn": 0,
"winner_blind_holdout_fp": 0,
"winner_blind_holdout_fn": 0,
"current_blind_holdout_fp": 0,
"current_blind_holdout_fn": 0,
"baseline_blind_holdout_fp": 0,
"baseline_blind_holdout_fn": 0,
"winner_blind_holdout_total_errors": 0,
"winner_adversarial_holdout_fp": 0,
"winner_adversarial_holdout_fn": 0,
"current_adversarial_holdout_fp": 0,
"current_adversarial_holdout_fn": 0,
"baseline_adversarial_holdout_fp": 0,
"baseline_adversarial_holdout_fn": 0,
"winner_adversarial_holdout_total_errors": 0,
"calibration": {
"holdout": {
"threshold": 0.33,
"mean_positive_score": 0.672,
"mean_non_trigger_score": 0.0,
"mean_near_neighbor_score": 0.0,
"min_positive_score": 0.468,
"max_non_trigger_score": 0.0,
"score_gap": 0.468,
"threshold_margin": 0.138,
"positive_threshold_buffer": 0.138,
"negative_threshold_buffer": 0.33,
"boundary_case_count": 0,
"boundary_case_rate": 0.0,
"risk_band": "healthy"
},
"blind_holdout": {
"threshold": 0.33,
"mean_positive_score": 0.399,
"mean_non_trigger_score": 0.013,
"mean_near_neighbor_score": 0.013,
"min_positive_score": 0.392,
"max_non_trigger_score": 0.026,
"score_gap": 0.366,
"threshold_margin": 0.062,
"positive_threshold_buffer": 0.062,
"negative_threshold_buffer": 0.304,
"boundary_case_count": 2,
"boundary_case_rate": 0.333,
"risk_band": "watch"
},
"adversarial_holdout": {
"threshold": 0.33,
"mean_positive_score": 0.838,
"mean_non_trigger_score": 0.0,
"mean_near_neighbor_score": 0.0,
"min_positive_score": 0.834,
"max_non_trigger_score": 0.0,
"score_gap": 0.834,
"threshold_margin": 0.33,
"positive_threshold_buffer": 0.504,
"negative_threshold_buffer": 0.33,
"boundary_case_count": 0,
"boundary_case_rate": 0.0,
"risk_band": "healthy"
}
},
"family_health": {
"holdout": {
"family_count": 12,
"clean_family_count": 12,
"failing_families": [],
"weakest_family": {
"family": "workflow_to_skill",
"pass_rate": 1.0,
"errors": 0
}
},
"blind_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "blind_operationalize",
"pass_rate": 1.0,
"errors": 0
}
},
"adversarial_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "adversarial_summary_translation_collision",
"pass_rate": 1.0,
"errors": 0
}
}
},
"drift_note": "tokens stable; blind stable at 0; adversarial gate added with 0 errors; holdout stable at 0; adversarial calibration +0.834; risk n/a -> healthy",
"ok": true
},
{
"name": "team-frontend-review",
"winner_label": "Current",
"winner_description": "Review frontend code for accessibility, UI security, missing states, and UX regressions. Use when asked to review React components, run a pre-merge frontend review, or check a11y and unsafe rendering.",
"winner_tokens": 50,
"current_tokens": 50,
"winner_holdout_fp": 0,
"winner_holdout_fn": 0,
"current_holdout_fp": 0,
"current_holdout_fn": 0,
"baseline_holdout_fp": 0,
"baseline_holdout_fn": 0,
"winner_blind_holdout_fp": 0,
"winner_blind_holdout_fn": 0,
"current_blind_holdout_fp": 0,
"current_blind_holdout_fn": 0,
"baseline_blind_holdout_fp": 0,
"baseline_blind_holdout_fn": 0,
"winner_blind_holdout_total_errors": 0,
"winner_adversarial_holdout_fp": 0,
"winner_adversarial_holdout_fn": 0,
"current_adversarial_holdout_fp": 0,
"current_adversarial_holdout_fn": 0,
"baseline_adversarial_holdout_fp": 0,
"baseline_adversarial_holdout_fn": 0,
"winner_adversarial_holdout_total_errors": 0,
"calibration": {
"holdout": {
"threshold": 0.48,
"mean_positive_score": 0.681,
"mean_non_trigger_score": 0.088,
"mean_near_neighbor_score": 0.042,
"min_positive_score": 0.49,
"max_non_trigger_score": 0.211,
"score_gap": 0.279,
"threshold_margin": 0.01,
"positive_threshold_buffer": 0.01,
"negative_threshold_buffer": 0.269,
"boundary_case_count": 1,
"boundary_case_rate": 0.167,
"risk_band": "tight"
},
"blind_holdout": {
"threshold": 0.48,
"mean_positive_score": 0.681,
"mean_non_trigger_score": 0.177,
"mean_near_neighbor_score": 0.226,
"min_positive_score": 0.504,
"max_non_trigger_score": 0.416,
"score_gap": 0.088,
"threshold_margin": 0.024,
"positive_threshold_buffer": 0.024,
"negative_threshold_buffer": 0.064,
"boundary_case_count": 2,
"boundary_case_rate": 0.333,
"risk_band": "tight"
},
"adversarial_holdout": {
"threshold": 0.34,
"mean_positive_score": 0.71,
"mean_non_trigger_score": 0.009,
"mean_near_neighbor_score": 0.018,
"min_positive_score": 0.544,
"max_non_trigger_score": 0.035,
"score_gap": 0.509,
"threshold_margin": 0.204,
"positive_threshold_buffer": 0.204,
"negative_threshold_buffer": 0.305,
"boundary_case_count": 0,
"boundary_case_rate": 0.0,
"risk_band": "healthy"
}
},
"family_health": {
"holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "security_and_a11y",
"pass_rate": 1.0,
"errors": 0
}
},
"blind_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "blind_premerge",
"pass_rate": 1.0,
"errors": 0
}
},
"adversarial_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "adversarial_quality_gate_review",
"pass_rate": 1.0,
"errors": 0
}
}
},
"drift_note": "tokens stable; blind stable at 0; adversarial gate added with 0 errors; holdout stable at 0; adversarial calibration +0.509; risk n/a -> healthy",
"ok": true
},
{
"name": "governed-incident-command",
"winner_label": "Current",
"winner_description": "Build governed incident command packets. Use when asked to standardize incident review, run severity assessment, or assemble incident communication.",
"winner_tokens": 37,
"current_tokens": 37,
"winner_holdout_fp": 0,
"winner_holdout_fn": 1,
"current_holdout_fp": 0,
"current_holdout_fn": 1,
"baseline_holdout_fp": 0,
"baseline_holdout_fn": 2,
"winner_blind_holdout_fp": 0,
"winner_blind_holdout_fn": 0,
"current_blind_holdout_fp": 0,
"current_blind_holdout_fn": 0,
"baseline_blind_holdout_fp": 0,
"baseline_blind_holdout_fn": 1,
"winner_blind_holdout_total_errors": 0,
"winner_adversarial_holdout_fp": 0,
"winner_adversarial_holdout_fn": 0,
"current_adversarial_holdout_fp": 0,
"current_adversarial_holdout_fn": 0,
"baseline_adversarial_holdout_fp": 0,
"baseline_adversarial_holdout_fn": 0,
"winner_adversarial_holdout_total_errors": 0,
"calibration": {
"holdout": {
"threshold": 0.48,
"mean_positive_score": 0.367,
"mean_non_trigger_score": 0.019,
"mean_near_neighbor_score": 0.038,
"min_positive_score": 0.08,
"max_non_trigger_score": 0.058,
"score_gap": 0.022,
"threshold_margin": -0.4,
"positive_threshold_buffer": -0.4,
"negative_threshold_buffer": 0.422,
"boundary_case_count": 0,
"boundary_case_rate": 0.0,
"risk_band": "overlap"
},
"blind_holdout": {
"threshold": 0.48,
"mean_positive_score": 0.899,
"mean_non_trigger_score": 0.168,
"mean_near_neighbor_score": 0.138,
"min_positive_score": 0.798,
"max_non_trigger_score": 0.386,
"score_gap": 0.412,
"threshold_margin": 0.094,
"positive_threshold_buffer": 0.318,
"negative_threshold_buffer": 0.094,
"boundary_case_count": 1,
"boundary_case_rate": 0.167,
"risk_band": "healthy"
},
"adversarial_holdout": {
"threshold": 0.34,
"mean_positive_score": 0.827,
"mean_non_trigger_score": 0.027,
"mean_near_neighbor_score": 0.011,
"min_positive_score": 0.654,
"max_non_trigger_score": 0.056,
"score_gap": 0.598,
"threshold_margin": 0.284,
"positive_threshold_buffer": 0.314,
"negative_threshold_buffer": 0.284,
"boundary_case_count": 0,
"boundary_case_rate": 0.0,
"risk_band": "healthy"
}
},
"family_health": {
"holdout": {
"family_count": 6,
"clean_family_count": 5,
"failing_families": [
{
"family": "packet_assembly",
"errors": 1,
"pass_rate": 0.0
}
],
"weakest_family": {
"family": "packet_assembly",
"pass_rate": 0.0,
"errors": 1
}
},
"blind_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "blind_summary_only",
"pass_rate": 1.0,
"errors": 0
}
},
"adversarial_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "adversarial_single_update_collision",
"pass_rate": 1.0,
"errors": 0
}
}
},
"drift_note": "tokens stable; blind stable at 0; adversarial gate added with 0 errors; holdout stable at 1; adversarial calibration +0.598; risk n/a -> healthy",
"ok": true
}
],
"notes": [
"recorded family-level blind and adversarial routing evidence",
"published calibration and drift history for description optimization"
]
}
@@ -0,0 +1,78 @@
{
"snapshot_id": "blind-holdout-and-drift-history",
"date": "2026-04-01",
"commit": "local-snapshot",
"label": "Blind Holdout And Drift History",
"targets": [
{
"name": "yao-meta-skill",
"winner_label": "Current",
"winner_description": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.",
"winner_tokens": 65,
"current_tokens": 65,
"winner_holdout_fp": 0,
"winner_holdout_fn": 0,
"current_holdout_fp": 0,
"current_holdout_fn": 0,
"baseline_holdout_fp": 0,
"baseline_holdout_fn": 0,
"winner_blind_holdout_fp": 0,
"winner_blind_holdout_fn": 0,
"current_blind_holdout_fp": 0,
"current_blind_holdout_fn": 0,
"baseline_blind_holdout_fp": 0,
"baseline_blind_holdout_fn": 0,
"winner_blind_holdout_total_errors": 0,
"drift_note": "tokens stable; blind gate added with 0 errors; holdout stable at 0",
"ok": true
},
{
"name": "team-frontend-review",
"winner_label": "Current",
"winner_description": "Review frontend code for accessibility, UI security, missing states, and UX regressions. Use when asked to review React components, run a pre-merge frontend review, or check a11y and unsafe rendering.",
"winner_tokens": 50,
"current_tokens": 50,
"winner_holdout_fp": 0,
"winner_holdout_fn": 0,
"current_holdout_fp": 0,
"current_holdout_fn": 0,
"baseline_holdout_fp": 0,
"baseline_holdout_fn": 0,
"winner_blind_holdout_fp": 0,
"winner_blind_holdout_fn": 0,
"current_blind_holdout_fp": 0,
"current_blind_holdout_fn": 0,
"baseline_blind_holdout_fp": 0,
"baseline_blind_holdout_fn": 0,
"winner_blind_holdout_total_errors": 0,
"drift_note": "tokens stable; blind gate added with 0 errors; holdout stable at 0",
"ok": true
},
{
"name": "governed-incident-command",
"winner_label": "Current",
"winner_description": "Build governed incident command packets. Use when asked to standardize incident review, run severity assessment, or assemble incident communication.",
"winner_tokens": 37,
"current_tokens": 37,
"winner_holdout_fp": 0,
"winner_holdout_fn": 1,
"current_holdout_fp": 0,
"current_holdout_fn": 1,
"baseline_holdout_fp": 0,
"baseline_holdout_fn": 2,
"winner_blind_holdout_fp": 0,
"winner_blind_holdout_fn": 0,
"current_blind_holdout_fp": 0,
"current_blind_holdout_fn": 0,
"baseline_blind_holdout_fp": 0,
"baseline_blind_holdout_fn": 1,
"winner_blind_holdout_total_errors": 0,
"drift_note": "tokens stable; blind gate added with 0 errors; holdout stable at 1",
"ok": true
}
],
"notes": [
"added blind holdout acceptance gates to description optimization",
"published description drift history report"
]
}
@@ -0,0 +1,444 @@
{
"snapshot_id": "judge-backed-blind-eval",
"date": "2026-04-01",
"commit": "ce6cc74",
"label": "Judge-Backed Blind Eval",
"targets": [
{
"name": "yao-meta-skill",
"winner_label": "Current",
"winner_description": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.",
"winner_tokens": 65,
"current_tokens": 65,
"winner_holdout_fp": 0,
"winner_holdout_fn": 0,
"current_holdout_fp": 0,
"current_holdout_fn": 0,
"baseline_holdout_fp": 0,
"baseline_holdout_fn": 0,
"winner_blind_holdout_fp": 0,
"winner_blind_holdout_fn": 0,
"current_blind_holdout_fp": 0,
"current_blind_holdout_fn": 0,
"baseline_blind_holdout_fp": 0,
"baseline_blind_holdout_fn": 0,
"winner_blind_holdout_total_errors": 0,
"winner_judge_blind_holdout_fp": 0,
"winner_judge_blind_holdout_fn": 0,
"current_judge_blind_holdout_fp": 0,
"current_judge_blind_holdout_fn": 0,
"baseline_judge_blind_holdout_fp": 0,
"baseline_judge_blind_holdout_fn": 0,
"winner_judge_blind_holdout_total_errors": 0,
"winner_adversarial_holdout_fp": 0,
"winner_adversarial_holdout_fn": 0,
"current_adversarial_holdout_fp": 0,
"current_adversarial_holdout_fn": 0,
"baseline_adversarial_holdout_fp": 0,
"baseline_adversarial_holdout_fn": 0,
"winner_adversarial_holdout_total_errors": 0,
"calibration": {
"holdout": {
"threshold": 0.33,
"mean_positive_score": 0.672,
"mean_non_trigger_score": 0.0,
"mean_near_neighbor_score": 0.0,
"min_positive_score": 0.468,
"max_non_trigger_score": 0.0,
"score_gap": 0.468,
"threshold_margin": 0.138,
"positive_threshold_buffer": 0.138,
"negative_threshold_buffer": 0.33,
"boundary_case_count": 0,
"boundary_case_rate": 0.0,
"risk_band": "healthy"
},
"blind_holdout": {
"threshold": 0.33,
"mean_positive_score": 0.399,
"mean_non_trigger_score": 0.013,
"mean_near_neighbor_score": 0.013,
"min_positive_score": 0.392,
"max_non_trigger_score": 0.026,
"score_gap": 0.366,
"threshold_margin": 0.062,
"positive_threshold_buffer": 0.062,
"negative_threshold_buffer": 0.304,
"boundary_case_count": 2,
"boundary_case_rate": 0.333,
"risk_band": "watch"
},
"adversarial_holdout": {
"threshold": 0.33,
"mean_positive_score": 0.838,
"mean_non_trigger_score": 0.0,
"mean_near_neighbor_score": 0.0,
"min_positive_score": 0.834,
"max_non_trigger_score": 0.0,
"score_gap": 0.834,
"threshold_margin": 0.33,
"positive_threshold_buffer": 0.504,
"negative_threshold_buffer": 0.33,
"boundary_case_count": 0,
"boundary_case_rate": 0.0,
"risk_band": "healthy"
}
},
"judge_blind": {
"winner": {
"agreement_rate": 1.0,
"mean_confidence": 0.66,
"rubric_version": "blind-v1"
},
"current": {
"agreement_rate": 1.0,
"mean_confidence": 0.66,
"rubric_version": "blind-v1"
},
"baseline": {
"agreement_rate": 1.0,
"mean_confidence": 0.66,
"rubric_version": "blind-v1"
}
},
"family_health": {
"holdout": {
"family_count": 12,
"clean_family_count": 12,
"failing_families": [],
"weakest_family": {
"family": "workflow_to_skill",
"pass_rate": 1.0,
"errors": 0
}
},
"blind_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "blind_operationalize",
"pass_rate": 1.0,
"errors": 0
}
},
"judge_blind_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "blind_operationalize",
"pass_rate": 1.0,
"errors": 0
}
},
"adversarial_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "adversarial_summary_translation_collision",
"pass_rate": 1.0,
"errors": 0
}
}
},
"drift_note": "tokens stable; blind stable at 0; adversarial gate added with 0 errors; holdout stable at 0; adversarial calibration +0.834; risk n/a -> healthy",
"ok": true
},
{
"name": "team-frontend-review",
"winner_label": "Current",
"winner_description": "Review frontend code for accessibility, UI security, missing states, and UX regressions. Use when asked to review React components, run a pre-merge frontend review, or check a11y and unsafe rendering.",
"winner_tokens": 50,
"current_tokens": 50,
"winner_holdout_fp": 0,
"winner_holdout_fn": 0,
"current_holdout_fp": 0,
"current_holdout_fn": 0,
"baseline_holdout_fp": 0,
"baseline_holdout_fn": 0,
"winner_blind_holdout_fp": 0,
"winner_blind_holdout_fn": 0,
"current_blind_holdout_fp": 0,
"current_blind_holdout_fn": 0,
"baseline_blind_holdout_fp": 0,
"baseline_blind_holdout_fn": 0,
"winner_blind_holdout_total_errors": 0,
"winner_judge_blind_holdout_fp": 0,
"winner_judge_blind_holdout_fn": 0,
"current_judge_blind_holdout_fp": 0,
"current_judge_blind_holdout_fn": 0,
"baseline_judge_blind_holdout_fp": 0,
"baseline_judge_blind_holdout_fn": 0,
"winner_judge_blind_holdout_total_errors": 0,
"winner_adversarial_holdout_fp": 0,
"winner_adversarial_holdout_fn": 0,
"current_adversarial_holdout_fp": 0,
"current_adversarial_holdout_fn": 0,
"baseline_adversarial_holdout_fp": 0,
"baseline_adversarial_holdout_fn": 0,
"winner_adversarial_holdout_total_errors": 0,
"calibration": {
"holdout": {
"threshold": 0.48,
"mean_positive_score": 0.681,
"mean_non_trigger_score": 0.088,
"mean_near_neighbor_score": 0.042,
"min_positive_score": 0.49,
"max_non_trigger_score": 0.211,
"score_gap": 0.279,
"threshold_margin": 0.01,
"positive_threshold_buffer": 0.01,
"negative_threshold_buffer": 0.269,
"boundary_case_count": 1,
"boundary_case_rate": 0.167,
"risk_band": "tight"
},
"blind_holdout": {
"threshold": 0.48,
"mean_positive_score": 0.681,
"mean_non_trigger_score": 0.177,
"mean_near_neighbor_score": 0.226,
"min_positive_score": 0.504,
"max_non_trigger_score": 0.416,
"score_gap": 0.088,
"threshold_margin": 0.024,
"positive_threshold_buffer": 0.024,
"negative_threshold_buffer": 0.064,
"boundary_case_count": 2,
"boundary_case_rate": 0.333,
"risk_band": "tight"
},
"adversarial_holdout": {
"threshold": 0.34,
"mean_positive_score": 0.71,
"mean_non_trigger_score": 0.009,
"mean_near_neighbor_score": 0.018,
"min_positive_score": 0.544,
"max_non_trigger_score": 0.035,
"score_gap": 0.509,
"threshold_margin": 0.204,
"positive_threshold_buffer": 0.204,
"negative_threshold_buffer": 0.305,
"boundary_case_count": 0,
"boundary_case_rate": 0.0,
"risk_band": "healthy"
}
},
"judge_blind": {
"winner": {
"agreement_rate": 1.0,
"mean_confidence": 0.703,
"rubric_version": "blind-v1"
},
"current": {
"agreement_rate": 1.0,
"mean_confidence": 0.703,
"rubric_version": "blind-v1"
},
"baseline": {
"agreement_rate": 1.0,
"mean_confidence": 0.703,
"rubric_version": "blind-v1"
}
},
"family_health": {
"holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "security_and_a11y",
"pass_rate": 1.0,
"errors": 0
}
},
"blind_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "blind_premerge",
"pass_rate": 1.0,
"errors": 0
}
},
"judge_blind_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "blind_premerge",
"pass_rate": 1.0,
"errors": 0
}
},
"adversarial_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "adversarial_quality_gate_review",
"pass_rate": 1.0,
"errors": 0
}
}
},
"drift_note": "tokens stable; blind stable at 0; adversarial gate added with 0 errors; holdout stable at 0; adversarial calibration +0.509; risk n/a -> healthy",
"ok": true
},
{
"name": "governed-incident-command",
"winner_label": "Current",
"winner_description": "Build governed incident command packets. Use when asked to standardize incident review, run severity assessment, or assemble incident communication.",
"winner_tokens": 37,
"current_tokens": 37,
"winner_holdout_fp": 0,
"winner_holdout_fn": 1,
"current_holdout_fp": 0,
"current_holdout_fn": 1,
"baseline_holdout_fp": 0,
"baseline_holdout_fn": 2,
"winner_blind_holdout_fp": 0,
"winner_blind_holdout_fn": 0,
"current_blind_holdout_fp": 0,
"current_blind_holdout_fn": 0,
"baseline_blind_holdout_fp": 0,
"baseline_blind_holdout_fn": 1,
"winner_blind_holdout_total_errors": 0,
"winner_judge_blind_holdout_fp": 0,
"winner_judge_blind_holdout_fn": 0,
"current_judge_blind_holdout_fp": 0,
"current_judge_blind_holdout_fn": 0,
"baseline_judge_blind_holdout_fp": 0,
"baseline_judge_blind_holdout_fn": 0,
"winner_judge_blind_holdout_total_errors": 0,
"winner_adversarial_holdout_fp": 0,
"winner_adversarial_holdout_fn": 0,
"current_adversarial_holdout_fp": 0,
"current_adversarial_holdout_fn": 0,
"baseline_adversarial_holdout_fp": 0,
"baseline_adversarial_holdout_fn": 0,
"winner_adversarial_holdout_total_errors": 0,
"calibration": {
"holdout": {
"threshold": 0.48,
"mean_positive_score": 0.367,
"mean_non_trigger_score": 0.019,
"mean_near_neighbor_score": 0.038,
"min_positive_score": 0.08,
"max_non_trigger_score": 0.058,
"score_gap": 0.022,
"threshold_margin": -0.4,
"positive_threshold_buffer": -0.4,
"negative_threshold_buffer": 0.422,
"boundary_case_count": 0,
"boundary_case_rate": 0.0,
"risk_band": "overlap"
},
"blind_holdout": {
"threshold": 0.48,
"mean_positive_score": 0.899,
"mean_non_trigger_score": 0.168,
"mean_near_neighbor_score": 0.138,
"min_positive_score": 0.798,
"max_non_trigger_score": 0.386,
"score_gap": 0.412,
"threshold_margin": 0.094,
"positive_threshold_buffer": 0.318,
"negative_threshold_buffer": 0.094,
"boundary_case_count": 1,
"boundary_case_rate": 0.167,
"risk_band": "healthy"
},
"adversarial_holdout": {
"threshold": 0.34,
"mean_positive_score": 0.827,
"mean_non_trigger_score": 0.027,
"mean_near_neighbor_score": 0.011,
"min_positive_score": 0.654,
"max_non_trigger_score": 0.056,
"score_gap": 0.598,
"threshold_margin": 0.284,
"positive_threshold_buffer": 0.314,
"negative_threshold_buffer": 0.284,
"boundary_case_count": 0,
"boundary_case_rate": 0.0,
"risk_band": "healthy"
}
},
"judge_blind": {
"winner": {
"agreement_rate": 1.0,
"mean_confidence": 0.657,
"rubric_version": "blind-v1"
},
"current": {
"agreement_rate": 1.0,
"mean_confidence": 0.657,
"rubric_version": "blind-v1"
},
"baseline": {
"agreement_rate": 1.0,
"mean_confidence": 0.69,
"rubric_version": "blind-v1"
}
},
"family_health": {
"holdout": {
"family_count": 6,
"clean_family_count": 5,
"failing_families": [
{
"family": "packet_assembly",
"errors": 1,
"pass_rate": 0.0
}
],
"weakest_family": {
"family": "packet_assembly",
"pass_rate": 0.0,
"errors": 1
}
},
"blind_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "blind_summary_only",
"pass_rate": 1.0,
"errors": 0
}
},
"judge_blind_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "blind_summary_only",
"pass_rate": 1.0,
"errors": 0
}
},
"adversarial_holdout": {
"family_count": 6,
"clean_family_count": 6,
"failing_families": [],
"weakest_family": {
"family": "adversarial_single_update_collision",
"pass_rate": 1.0,
"errors": 0
}
}
},
"drift_note": "tokens stable; blind stable at 0; adversarial gate added with 0 errors; holdout stable at 1; adversarial calibration +0.598; risk n/a -> healthy",
"ok": true
}
],
"notes": [
"recorded family-level blind, judge-backed blind, and adversarial routing evidence",
"published calibration and drift history for description optimization"
]
}
@@ -0,0 +1,18 @@
# Description Drift Snapshots
This directory stores description-optimization snapshots.
Each snapshot records:
- date
- label
- per-target winner token counts
- visible holdout errors
- blind holdout errors when available
- judge-backed blind holdout errors and agreement when available
- adversarial holdout errors when available
- calibration summaries for blind and adversarial gates when available
- family coverage summaries for blind and adversarial gates when available
- short drift notes for route wording changes or new acceptance gates
Use `python3 scripts/render_description_drift_history.py` to rebuild `reports/description_drift_history.md`.
+70
View File
@@ -0,0 +1,70 @@
{
"recommended_threshold": 0.33,
"negative_patterns": [
"one-off",
"do not turn",
"without building",
"brainstorm",
"just explain",
"headline",
"summarize"
],
"should_trigger": [
{
"text": "Build a reusable skill from this long internal process note, and make sure it has references, scripts, and a trigger description.",
"family": "complex_multi_asset"
},
{
"text": "Take this existing skill draft, tighten the trigger boundary, add near-neighbor evals, and package it for distribution.",
"family": "iterate_existing_skill"
},
{
"text": "Turn this recurring onboarding process into a reusable skill library entry with validation notes.",
"family": "workflow_to_skill"
},
{
"text": "Codify this quarterly release routine into a reusable skill package with scripts, references, and packaging checks.",
"family": "paraphrase_trigger"
},
{
"text": "Below is a noisy transcript plus release notes and prompt history. Ignore the chatter and turn this playbook into an agent capability package for the team library.",
"family": "long_context_trigger"
}
],
"should_not_trigger": [
{
"text": "I pasted a long process description below, but I only want a summary, not a reusable skill.",
"family": "summary_only"
},
{
"text": "Explain this release checklist in simpler language; do not package it.",
"family": "explain_only"
},
{
"text": "Keep this release workflow as documentation only for the wiki and produce a reference document, not for agent execution.",
"family": "long_context_document_only"
},
{
"text": "Translate this long runbook into Russian and keep it as documentation only with no skill package.",
"family": "translate_only"
}
],
"near_neighbor": [
{
"text": "Help me shape an idea before we decide whether to build a skill.",
"family": "future_outline_vs_build"
},
{
"text": "Create an outline for a possible future skill, but do not build the skill yet.",
"family": "future_outline_vs_build"
},
{
"text": "Turn this into a document package for the wiki, not an agent skill.",
"family": "document_export_vs_agent_skill"
},
{
"text": "From the long workflow below, create a template only and a checklist for discussion only. No skill package.",
"family": "long_context_near_neighbor"
}
]
}
+1
View File
@@ -0,0 +1 @@
Create/improve/evaluate agent skills from workflows, prompts, SOPs, scripts. Use for migration/release/package, routing, evals/tests, install checks, 优化已有 skill, 补 trigger 评测. Exclude no-skill summary/translation/docs.
+5
View File
@@ -0,0 +1,5 @@
{"id":"skill-package-contract","prompt":"Turn this repeated workflow into a reusable team skill package.","baseline_output":"I can write a prompt for that workflow and include a short checklist.","with_skill_output":"Create a routeable SKILL.md, agents/interface.yaml, reports/skill-overview.html, and a focused eval plan. Keep the root entrypoint lean, move durable guidance into references/, scripts into scripts/, and evidence into reports/.","assertions":[{"id":"has-entrypoint","description":"Output names the routeable Skill entrypoint.","required":["SKILL.md"],"weight":1,"failure_type":"missing_entrypoint"},{"id":"has-interface","description":"Output includes neutral interface metadata.","required":["agents/interface.yaml"],"weight":1,"failure_type":"missing_interface"},{"id":"has-report","description":"Output points reviewer to generated overview report.","required":["reports/skill-overview.html"],"weight":1,"failure_type":"missing_review_artifact"},{"id":"has-resource-boundary","description":"Output preserves entrypoint/resource separation.","required":["references/","scripts/","reports/"],"weight":1,"failure_type":"resource_boundary"}],"human_review":{"expected_winner":"with_skill"}}
{"id":"output-eval-expectation","prompt":"Upgrade this production skill so we know whether the generated output is better than baseline.","baseline_output":"Add more examples and run the trigger eval again.","with_skill_output":"Add Output Eval Lab cases with baseline_output and with_skill_output, run assertion grading, report with-skill vs baseline pass-rate delta, and record failure taxonomy plus next fixes in reports/output_quality_scorecard.md.","assertions":[{"id":"has-baseline-comparison","description":"Output explicitly compares with-skill and baseline outputs.","required":["with-skill","baseline"],"weight":1,"failure_type":"missing_baseline_delta"},{"id":"has-assertion-grading","description":"Output includes objective assertion grading.","required":["assertion grading"],"weight":1,"failure_type":"missing_assertions"},{"id":"has-scorecard","description":"Output produces a scorecard report path.","required":["reports/output_quality_scorecard.md"],"weight":1,"failure_type":"missing_scorecard"},{"id":"has-failure-taxonomy","description":"Output records failure taxonomy.","required":["failure taxonomy"],"weight":1,"failure_type":"missing_failure_taxonomy"}],"human_review":{"expected_winner":"with_skill"}}
{"id":"ir-before-packaging","prompt":"Package this skill for OpenAI, Claude, Agent Skills, and generic targets.","baseline_output":"Export folders for each platform and adjust files as needed.","with_skill_output":"Export Skill IR first with job_to_be_done, trigger_surface, workflow, resources, eval_plan, risk, and governance. Then compile or package targets from the IR so OpenAI, Claude, Agent Skills, and generic packages preserve the same capability contract.","assertions":[{"id":"has-ir-first","description":"Output requires Skill IR before packaging.","required":["Skill IR first"],"weight":1,"failure_type":"missing_ir"},{"id":"has-core-ir-fields","description":"Output lists core IR contract fields.","required":["job_to_be_done","trigger_surface","eval_plan","governance"],"weight":1,"failure_type":"incomplete_ir_contract"},{"id":"has-targets","description":"Output names requested runtime targets.","required":["OpenAI","Claude","Agent Skills","generic"],"weight":1,"failure_type":"missing_targets"},{"id":"has-semantic-preservation","description":"Output says targets must preserve the capability contract.","required":["preserve the same capability contract"],"weight":1,"failure_type":"semantic_drift"}],"human_review":{"expected_winner":"with_skill"}}
{"id":"near-neighbor-boundary","prompt":"I only need a one-off summary of these notes, not a reusable process.","baseline_output":"Create a SKILL.md and a reusable workflow anyway so future notes can use it.","with_skill_output":"Do not create a skill for this one-off request. Treat it as a near-neighbor: answer the summary directly unless the user confirms repeated use, shared ownership, or a reusable output contract.","assertions":[{"id":"declines-skill","description":"Output refuses unnecessary skill creation for one-off work.","required":["Do not create a skill"],"weight":1,"failure_type":"over_trigger"},{"id":"names-near-neighbor","description":"Output labels the request as near-neighbor instead of owned work.","required":["near-neighbor"],"weight":1,"failure_type":"missing_boundary_language"},{"id":"requires-reuse-signal","description":"Output asks for repeat-use evidence before packaging.","required":["repeated use","reusable output contract"],"weight":1,"failure_type":"missing_reuse_gate"}],"human_review":{"expected_winner":"with_skill"},"metadata":{"case_type":"near_neighbor","tier":"production"}}
{"id":"file-backed-governed-package","prompt":"Turn the attached release brief source into a governed skill package.","input_files":["fixtures/release-brief-source.md"],"baseline_output":"Draft a release announcement with the changelog, support notes, and owner name.","with_skill_output":"Use the file-backed fixture as source evidence, then create a governed skill package with SKILL.md, agents/interface.yaml, owner, review cadence, input_files, output contract, rollback boundary, trust report, and reports/output_quality_scorecard.md. Mark missing launch metrics as missing evidence instead of inventing them.","assertions":[{"id":"uses-file-backed-evidence","description":"Output names file-backed source evidence.","required":["file-backed fixture","input_files"],"weight":1,"failure_type":"missing_file_fixture"},{"id":"has-governance","description":"Output preserves governed ownership metadata.","required":["owner","review cadence"],"weight":1,"failure_type":"missing_governance"},{"id":"has-output-contract","description":"Output preserves output and rollback boundaries.","required":["output contract","rollback boundary"],"weight":1,"failure_type":"missing_contract_boundary"},{"id":"has-trust-and-scorecard","description":"Output requires trust and output scorecard artifacts.","required":["trust report","reports/output_quality_scorecard.md"],"weight":1,"failure_type":"missing_release_evidence"},{"id":"does-not-invent-evidence","description":"Output forbids invented launch evidence.","required":["missing evidence"],"forbidden":["invented launch metrics"],"weight":1,"failure_type":"invented_evidence"}],"human_review":{"expected_winner":"with_skill"},"metadata":{"case_type":"boundary","tier":"governed"}}
@@ -0,0 +1,14 @@
# Release Brief Source Fixture
## Source
- Raw changelog notes
- Support escalation summary
- Rollback checklist
- Internal launch owner
## Required Output Constraints
- Produce a reusable skill package, not a one-off announcement.
- Preserve owner, review cadence, input files, output contract, and rollback boundary.
- Surface missing evidence instead of inventing launch metrics.
+85
View File
@@ -0,0 +1,85 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://yao.example/output-eval-case.schema.json",
"title": "Yao Output Eval Case",
"description": "Output-eval case for comparing without-skill and with-skill outputs, with optional execution metadata.",
"type": "object",
"additionalProperties": false,
"required": ["id", "prompt", "baseline_output", "with_skill_output", "assertions"],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"prompt": {
"type": "string",
"minLength": 1
},
"input_files": {
"type": "array",
"items": {"type": "string"}
},
"baseline_output": {
"type": "string"
},
"with_skill_output": {
"type": "string"
},
"assertions": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["id", "description"],
"properties": {
"id": {"type": "string", "minLength": 1},
"description": {"type": "string", "minLength": 1},
"required": {
"type": "array",
"items": {"type": "string"}
},
"forbidden": {
"type": "array",
"items": {"type": "string"}
},
"weight": {
"type": "number",
"minimum": 0
},
"failure_type": {
"type": "string"
}
}
}
},
"human_review": {
"type": "object",
"additionalProperties": true
},
"execution": {
"type": "object",
"description": "Optional case-level execution metadata for fixture, command, or provider-backed output runs.",
"additionalProperties": true,
"properties": {
"mode": {
"type": "string",
"enum": ["recorded_fixture", "command", "model"]
},
"provider": {
"type": "string"
},
"model": {
"type": "string"
},
"holdout": {
"type": "boolean"
}
}
},
"metadata": {
"type": "object",
"additionalProperties": true
}
}
}
+35
View File
@@ -0,0 +1,35 @@
{
"required_targets": ["openai", "claude", "generic", "vscode"],
"required_fields": [
"name",
"description",
"version",
"display_name",
"short_description",
"default_prompt",
"job_to_be_done",
"ir_source",
"ir_schema_version",
"semantic_contract",
"semantic_parity",
"compiler",
"compiled_contract",
"permission_contract",
"target_permission_contract",
"target_native_contract",
"target_transform",
"canonical_metadata",
"canonical_format",
"activation_mode",
"execution_context",
"shell",
"trust_level",
"remote_inline_execution",
"degradation_strategy",
"portability_profile"
],
"openai_required_files": ["targets/openai/adapter.json", "targets/openai/agents/openai.yaml"],
"claude_required_files": ["targets/claude/adapter.json", "targets/claude/README.md"],
"generic_required_files": ["targets/generic/adapter.json"],
"vscode_required_files": ["targets/vscode/adapter.json", "targets/vscode/README.md"]
}
+92
View File
@@ -0,0 +1,92 @@
# Promotion Policy
This policy defines when a description candidate or skill route is promotable.
## Goal
Promote only when a candidate is not just locally better, but measurably safer across route boundaries.
## Promotion Gates
### 1. Dev Ranking
Use `dev` only to rank candidates.
- optimize for fewer false positives
- then fewer false negatives
- then stronger near-neighbor performance
- then shorter wording
`dev` does not authorize promotion by itself.
### 2. Visible Holdout Non-Regression
The winner must not regress against the current description on visible holdout.
Required:
- no additional false positives
- no additional false negatives
### 3. Blind Holdout Non-Regression
The winner must not regress on blind holdout.
Required:
- no additional blind false positives
- no additional blind false negatives
### 4. Adversarial Holdout Non-Regression
The winner must survive harder route-collision prompts.
Required:
- no additional adversarial false positives
- no additional adversarial false negatives
- adversarial risk band should be `healthy` for shared or governed assets
### 5. Route Confusion Gate
If the skill belongs to a library with sibling skills, the route scorecard must stay clean.
Required:
- no misroutes in the tracked confusion set
- no ambiguous routes above the configured margin-warning threshold
### 6. Family Stability
Promotion should not hide a family-specific regression.
Required:
- no new failing blind families
- no new failing adversarial families
## Promotion Outcomes
### Promote
Promote when all gates pass.
### Keep Current
Keep the current description when:
- the candidate is only better on `dev`
- a holdout gate regresses
- route confusion becomes ambiguous
### Block
Block promotion when:
- adversarial risk moves to `overlap`
- a sibling route is stolen
- no-route prompts start routing into the skill
## Why This Exists
This policy prevents a meta-skill from looking “optimized” only because it overfit a small benchmark. A promotion is only credible when routing quality, route boundaries, and iteration evidence stay aligned.
+490
View File
@@ -0,0 +1,490 @@
{
"optimizer_hints": {
"capability": "Create, refactor, evaluate, and package agent skills",
"inputs": [
"workflows",
"prompts",
"transcripts",
"docs",
"notes",
"流程",
"提示词",
"对话记录",
"文档",
"笔记"
],
"trigger_actions": [
"create a skill",
"turn a repeated process into a reusable skill",
"improve an existing skill",
"add evals",
"add tests",
"package a skill for team reuse",
"migrate an existing skill",
"prepare packaging, installation, or release",
"govern a reusable skill",
"做一个 skill",
"把流程沉淀成可复用 skill",
"优化现有 skill",
"补 trigger 评测",
"封装成团队可复用 skill",
"迁移 skill",
"发布 skill",
"打包发布检查"
],
"exclusions": [
"summary-only requests",
"translation-only requests",
"plain documentation tasks",
"brainstorming without building a skill",
"只要总结",
"只做翻译",
"只做文档",
"先 brainstorm 不建 skill"
],
"artifacts": [
"workflows",
"prompts",
"transcripts",
"docs",
"rough notes",
"流程",
"提示词",
"转录",
"文档",
"零散笔记"
]
},
"fallback_positive_concepts": [
"build_skill",
"transform_workflow",
"reuse_package",
"eval_optimize",
"iterate_existing_skill"
],
"positive_concepts": {
"build_skill": {
"weight": 0.34,
"phrases": [
"create a skill",
"build a skill",
"make a skill",
"generate a skill",
"agent skill",
"skill package",
"meta skill",
"meta-skill",
"turn this into a skill",
"turn all of that into one reusable skill package",
"codify this workflow",
"codify this routine",
"operationalize this workflow as a reusable skill",
"formalize this process into a reusable capability",
"turn this playbook into an agent capability package",
"convert this into a maintained skill",
"agent capability",
"reusable agent capability",
"skill library entry",
"skill authoring",
"做一个 skill",
"创建一个 skill",
"新建一个 skill",
"帮我做个 skill",
"改一个 skill",
"重构一个 skill",
"迁移一个 skill",
"发布一个 skill",
"这个 skill",
"已有 skill",
"现有 skill",
"做成一个 skill",
"封装成一个 skill",
"沉淀成一个 skill",
"整理成一个 skill",
"抽成一个 skill",
"可复用 skill",
"可执行 skill",
"团队 skill",
"agent 能力包",
"能力包",
"skill 包"
]
},
"transform_workflow": {
"weight": 0.2,
"phrases": [
"workflow",
"runbook",
"process",
"checklist",
"prompt history",
"operations checklist",
"internal process note",
"existing skill draft",
"rough notes",
"standard operating procedure",
"operating procedure",
"sop",
"playbook",
"transcript",
"chat transcript",
"meeting notes",
"workflow fragments",
"release notes",
"onboarding flow",
"support escalation routine",
"quarterly release routine",
"scripts",
"repeated team practice",
"流程",
"工作流",
"操作流程",
"做事流程",
"作业流程",
"方法",
"经验",
"复盘",
"sop 文档",
"会议纪要",
"对话记录",
"零散材料",
"提示词",
"话术"
]
},
"reuse_package": {
"weight": 0.2,
"phrases": [
"reusable",
"reuse",
"package",
"packaging",
"distribution",
"share it with the team",
"team reuse",
"internal workflows",
"production-ready",
"library entry",
"shared capability",
"team library",
"ops library",
"maintained",
"operationalize",
"release-ready",
"publish",
"release",
"installation",
"installable",
"portability",
"registry",
"governance",
"review gate",
"可复用",
"复用",
"封装",
"打包",
"沉淀",
"标准化",
"标准化下来",
"团队复用",
"给团队用",
"团队可用",
"安装复用",
"可安装",
"发布",
"上架",
"交付",
"治理",
"注册表",
"方法包",
"团队能力包",
"沉淀下来",
"skill 包"
]
},
"eval_optimize": {
"weight": 0.16,
"phrases": [
"evals",
"trigger evals",
"near-neighbor",
"trigger boundary",
"benchmark",
"validation",
"validate",
"packaging checks",
"false positives",
"false negatives",
"stress test",
"route boundary",
"routing",
"route evals",
"trigger routing",
"activation",
"description optimization",
"tests",
"install checks",
"release checks",
"hardening",
"评测",
"补评测",
"补 eval",
"补测试",
"触发测试",
"触发词",
"触发范围",
"召回",
"收紧触发边界",
"路由边界",
"路由评测",
"激活",
"误触发",
"漏触发",
"质量门",
"安装验证",
"发布检查",
"打包检查",
"边界测试"
]
},
"iterate_existing_skill": {
"weight": 0.16,
"phrases": [
"improve an existing skill",
"existing skill",
"this skill",
"skill description",
"optimize skill triggering",
"package this skill",
"sharing it with the team",
"before sharing it with the team",
"tighten the boundary",
"revise this skill",
"refactor this skill",
"migrate this skill",
"port this skill",
"convert this skill",
"release this skill",
"publish this skill",
"make this skill release-ready",
"codex-ready package",
"claude skill",
"codex format",
"interface metadata",
"manifest",
"install checks",
"draft skill",
"harden this skill for library reuse",
"优化这个 skill",
"改进这个 skill",
"重构这个 skill",
"扩大这个 skill",
"调整这个 skill",
"优化触发范围",
"扩大触发范围",
"迁移这个 skill",
"发布这个 skill",
"把这个 skill 迁移",
"让这个 skill 可发布",
"补一下评测",
"补 trigger 测试",
"加强路由判断",
"让它适合团队复用",
"收紧这个 skill 的边界",
"已有 skill",
"现有 skill",
"优化已有 skill"
]
},
"multi_asset": {
"weight": 0.06,
"phrases": [
"references",
"scripts",
"manifest",
"folder",
"directory",
"files",
"参考资料",
"脚本",
"目录",
"文件夹",
"文档",
"话术"
]
},
"team_operationalize": {
"weight": 0.04,
"phrases": [
"team",
"internal",
"standardize",
"shared",
"distribution",
"sharing it with the team",
"team reuse",
"团队",
"内部",
"统一标准",
"共用",
"给团队用",
"团队共享"
]
}
},
"negative_concepts": {
"explain_only": {
"weight": 0.26,
"exclusive": true,
"phrases": [
"explain what",
"just explain",
"explain it",
"explain this",
"in simpler language",
"tell me what it means",
"plain english",
"解释一下",
"给我讲讲",
"什么意思",
"说清楚一点",
"帮我理解一下"
]
},
"summarize_only": {
"weight": 0.3,
"exclusive": true,
"phrases": [
"summary",
"summarize",
"only want a summary",
"recap",
"总结一下",
"概括一下",
"提炼重点",
"简单总结"
]
},
"translate_only": {
"weight": 0.35,
"exclusive": true,
"phrases": [
"translate",
"into japanese",
"into french",
"into russian",
"翻译",
"译成中文",
"译成英文",
"译成日文"
]
},
"brainstorm_only": {
"weight": 0.24,
"exclusive": true,
"phrases": [
"brainstorm",
"ideas",
"improve packaging",
"shape an idea",
"头脑风暴",
"给点想法",
"一起想想",
"先想方向"
]
},
"one_off_request": {
"weight": 0.24,
"exclusive": true,
"phrases": [
"one-off",
"custom answer",
"for this request",
"just this task",
"一次性",
"就这一次",
"只处理这次",
"不用复用"
]
},
"no_build_directive": {
"weight": 0.42,
"exclusive": true,
"phrases": [
"do not build",
"don't build",
"without building",
"do not generate any skill files",
"not a reusable skill",
"not as an agent skill",
"not an agent skill",
"without turning them into an agent skill",
"do not turn it into a skill",
"do not package it",
"stop short of making a full skill",
"not a skill yet",
"not now",
"later but not now",
"maybe build later",
"plain note",
"keep it as a plain note",
"no packaging needed",
"not for agent execution",
"no skill package",
"do not convert it into a reusable capability",
"keep it as documentation only",
"discussion only",
"no agent execution",
"先不要做成 skill",
"先不做 skill",
"不要做成 skill",
"不用封装",
"不要打包",
"不要沉淀成能力",
"先别做成可复用能力",
"不需要 agent 执行",
"不做 agent 能力",
"只做文档",
"只做说明"
]
},
"document_only": {
"weight": 0.18,
"exclusive": false,
"phrases": [
"readme",
"document",
"document package",
"reusable-looking document",
"wiki",
"article",
"blog title",
"headline",
"landing page",
"reference document",
"knowledge base",
"template only",
"文档",
"说明文档",
"知识库",
"文章",
"汇报"
]
},
"future_outline": {
"weight": 0.22,
"exclusive": true,
"phrases": [
"future skill",
"possible future skill",
"before we decide whether to build",
"outline for a possible future skill",
"maybe later",
"for later",
"future-ready outline",
"not now",
"later but not now"
]
}
}
}
+142
View File
@@ -0,0 +1,142 @@
{
"recommended_threshold": 0.33,
"negative_patterns": [
"one-off",
"do not turn",
"without building",
"brainstorm",
"just explain",
"headline",
"summarize"
],
"should_trigger": [
{
"text": "Create a skill from this repeated workflow.",
"family": "workflow_to_skill"
},
{
"text": "Turn this runbook into a reusable agent skill.",
"family": "workflow_to_skill"
},
{
"text": "Convert this process note into a reusable skill package for the team.",
"family": "workflow_to_skill"
},
{
"text": "Improve this skill description and add evals.",
"family": "iterate_existing_skill"
},
{
"text": "Refactor this prompt into a proper skill package.",
"family": "iterate_existing_skill"
},
{
"text": "Package this skill for team reuse.",
"family": "package_for_team"
},
{
"text": "Create a meta-skill for packaging internal workflows.",
"family": "meta_skill_creation"
},
{
"text": "Standardize this recurring workflow as a shareable skill package with references.",
"family": "package_for_team"
},
{
"text": "Codify this recurring support escalation workflow into a maintained skill for the ops library.",
"family": "paraphrase_trigger"
},
{
"text": "Operationalize this workflow as a reusable skill with validation notes and team library metadata.",
"family": "paraphrase_trigger"
},
{
"text": "Below are release notes, rough notes, and a transcript from the last handoff. Ignore the noise and turn this runbook into a reusable agent skill with references and scripts so the team can reuse it every quarter.",
"family": "long_context_trigger"
},
{
"text": "We have a standard operating procedure, checklist, and prompt history scattered across docs. Formalize this process into a reusable capability, add validation, and package it for team reuse.",
"family": "long_context_trigger"
}
],
"should_not_trigger": [
{
"text": "Explain what a workflow is.",
"family": "explain_only"
},
{
"text": "Just explain what a skill is.",
"family": "explain_only"
},
{
"text": "Summarize this random note.",
"family": "summary_only"
},
{
"text": "Translate this README into Japanese.",
"family": "translate_only"
},
{
"text": "Write a product headline for this landing page.",
"family": "document_only"
},
{
"text": "Draft a blog title for this article.",
"family": "document_only"
},
{
"text": "Rewrite this paragraph more clearly, but do not package anything.",
"family": "document_only"
},
{
"text": "Explain the difference between a runbook and a workflow.",
"family": "explain_only"
},
{
"text": "Below is a long SOP, but I only want a summary for leadership and a recap of the main points. Do not build anything reusable.",
"family": "long_context_summary_only"
},
{
"text": "Keep this as documentation only for the knowledge base and rewrite it as a reference document.",
"family": "long_context_document_only"
},
{
"text": "Translate this long onboarding flow into French and keep it as documentation only with no skill package.",
"family": "translate_only"
}
],
"near_neighbor": [
{
"text": "Create a one-off prompt for this task.",
"family": "one_off_vs_reusable"
},
{
"text": "Write a custom answer for this request without creating a skill package.",
"family": "one_off_vs_reusable"
},
{
"text": "Help me brainstorm process ideas without building a skill.",
"family": "brainstorm_vs_build"
},
{
"text": "Improve this README but do not turn it into a skill.",
"family": "document_export_vs_agent_skill"
},
{
"text": "Make a checklist for this task, but not a reusable skill.",
"family": "partial_scaffold_not_full_skill"
},
{
"text": "Create a reusable-looking checklist, but keep it as a plain note instead of a skill.",
"family": "partial_scaffold_not_full_skill"
},
{
"text": "We may convert this workflow later, but for now keep it as documentation only and produce a reference document.",
"family": "long_context_near_neighbor"
},
{
"text": "Draft a template only from this process and stop short of making a full skill package.",
"family": "partial_scaffold_not_full_skill"
}
]
}
+390
View File
@@ -0,0 +1,390 @@
{
"recommended_threshold": 0.33,
"negative_patterns": [
"one-off",
"do not turn",
"without building",
"brainstorm",
"just explain",
"headline",
"summarize",
"不要做成 skill",
"只要总结",
"翻译一下",
"头脑风暴"
],
"should_trigger": [
{
"text": "Create a skill from this repeated workflow.",
"family": "workflow_to_skill"
},
{
"text": "Turn this runbook into a reusable agent skill.",
"family": "workflow_to_skill"
},
{
"text": "Convert this process note into a reusable skill package for the team.",
"family": "workflow_to_skill"
},
{
"text": "Improve this skill description and add evals.",
"family": "iterate_existing_skill"
},
{
"text": "Refactor this prompt into a proper skill package.",
"family": "iterate_existing_skill"
},
{
"text": "Package this skill for team reuse.",
"family": "package_for_team"
},
{
"text": "Create a meta-skill for packaging internal workflows.",
"family": "meta_skill_creation"
},
{
"text": "Standardize this recurring workflow as a shareable skill package with references.",
"family": "package_for_team"
},
{
"text": "Convert this operations checklist into a reusable skill.",
"family": "workflow_to_skill"
},
{
"text": "Add trigger evals to this skill before sharing it with the team.",
"family": "iterate_existing_skill"
},
{
"text": "Migrate this Claude skill into a Codex-ready package with interface metadata and install checks.",
"family": "migrate_existing_skill"
},
{
"text": "Make this existing skill release-ready: add manifest/interface metadata, packaging checks, and trigger evals.",
"family": "release_packaging"
},
{
"text": "Optimize the activation wording for this skill so broader skill-authoring requests are routed correctly.",
"family": "trigger_expansion"
},
{
"text": "We have a messy release runbook, export process, and a prompt history; turn all of that into one reusable skill package with evals and packaging checks.",
"family": "complex_multi_asset"
},
{
"text": "Turn these workflow fragments, transcripts, and prompts into one production-ready skill with scripts and references.",
"family": "complex_multi_asset"
},
{
"text": "Tighten the trigger boundary on this existing skill and prepare it for team distribution.",
"family": "iterate_existing_skill"
},
{
"text": "Build a reusable skill from this long internal process note, and make sure it has references, scripts, and a trigger description.",
"family": "complex_multi_asset"
},
{
"text": "Take this existing skill draft, tighten the trigger boundary, add near-neighbor evals, and package it for distribution.",
"family": "iterate_existing_skill"
},
{
"text": "Turn this recurring onboarding process into a reusable skill library entry with validation notes.",
"family": "workflow_to_skill"
},
{
"text": "Codify this recurring support escalation workflow into a maintained skill for the ops library.",
"family": "paraphrase_trigger"
},
{
"text": "Operationalize this workflow as a reusable skill with validation notes and team library metadata.",
"family": "paraphrase_trigger"
},
{
"text": "Turn the SOP, transcript, and cleanup notes into a maintained skill for the team library.",
"family": "paraphrase_trigger"
},
{
"text": "Codify this workflow into a shared capability package and validate the route boundary before distribution.",
"family": "paraphrase_trigger"
},
{
"text": "Codify this quarterly release routine into a reusable skill package with scripts, references, and packaging checks.",
"family": "paraphrase_trigger"
},
{
"text": "Below are release notes, rough notes, and a transcript from the last handoff. Ignore the noise and turn this runbook into a reusable agent skill with references and scripts so the team can reuse it every quarter.",
"family": "long_context_trigger"
},
{
"text": "We have a standard operating procedure, checklist, and prompt history scattered across docs. Formalize this process into a reusable capability, add validation, and package it for team reuse.",
"family": "long_context_trigger"
},
{
"text": "After the long handoff notes below, build a skill package for team reuse. The materials include a transcript, rough notes, and an onboarding flow, and the result should include references, scripts, and validation.",
"family": "long_context_trigger"
},
{
"text": "Below is a noisy transcript plus release notes and prompt history. Ignore the chatter and turn this playbook into an agent capability package for the team library.",
"family": "long_context_trigger"
},
{
"text": "用 yao-meta-skill 帮我把这套重复流程沉淀成一个可复用 skill。",
"family": "cn_workflow_to_skill"
},
{
"text": "把这套 SOP、提示词和对话记录封装成团队可复用的 agent 能力。",
"family": "cn_complex_multi_asset"
},
{
"text": "优化这个已有 skill,补一下 trigger 评测和打包检查。",
"family": "cn_iterate_existing_skill"
},
{
"text": "帮我把零散材料和脚本整理成一个给团队复用的 skill 包。",
"family": "cn_package_for_team"
},
{
"text": "把这个客服升级流程标准化成一个可执行的 skill,并加上边界测试。",
"family": "cn_eval_and_package"
},
{
"text": "把这个 Claude skill 迁移成 Codex 可用的 skill 包,补 interface、manifest 和安装验证。",
"family": "cn_migrate_existing_skill"
},
{
"text": "把这套提示词和脚本整理成团队能安装复用的 skill,并做打包发布检查。",
"family": "cn_release_packaging"
},
{
"text": "扩大这个 skill 的触发范围,同时补路由评测,避免漏触发。",
"family": "cn_trigger_expansion"
}
],
"should_not_trigger": [
{
"text": "Explain what a workflow is.",
"family": "explain_only"
},
{
"text": "Just explain what a skill is.",
"family": "explain_only"
},
{
"text": "Summarize this random note.",
"family": "summary_only"
},
{
"text": "Translate this README into Japanese.",
"family": "translate_only"
},
{
"text": "Write a product headline for this landing page.",
"family": "document_only"
},
{
"text": "Draft a blog title for this article.",
"family": "document_only"
},
{
"text": "Rewrite this paragraph more clearly, but do not package anything.",
"family": "document_only"
},
{
"text": "Explain the difference between a runbook and a workflow.",
"family": "explain_only"
},
{
"text": "Give me ideas for improving our process.",
"family": "brainstorm_only"
},
{
"text": "Review this note and tell me what it means in plain English.",
"family": "explain_only"
},
{
"text": "Help me brainstorm several ways to improve packaging, but do not generate any skill files.",
"family": "brainstorm_only"
},
{
"text": "Translate these notes into French and keep the structure exactly as-is.",
"family": "translate_only"
},
{
"text": "Summarize this workflow and list the main points only.",
"family": "summary_only"
},
{
"text": "I pasted a long process description below, but I only want a summary, not a reusable skill.",
"family": "summary_only"
},
{
"text": "Explain this release checklist in simpler language; do not package it.",
"family": "explain_only"
},
{
"text": "Below is a long SOP, but I only want a summary for leadership and a recap of the main points. Do not build anything reusable.",
"family": "long_context_summary_only"
},
{
"text": "Keep this as documentation only for the knowledge base and rewrite it as a reference document.",
"family": "long_context_document_only"
},
{
"text": "Translate this long onboarding flow into French and keep it as documentation only with no skill package.",
"family": "translate_only"
},
{
"text": "This is a long incident write-up. Keep it as documentation only, explain it in simpler language, and do not convert it into a reusable capability.",
"family": "long_context_document_only"
},
{
"text": "I pasted a very long process note. For now I only need a recap and a short summary, not a skill package.",
"family": "long_context_summary_only"
},
{
"text": "Keep this release workflow as documentation only for the wiki and produce a reference document, not for agent execution.",
"family": "long_context_document_only"
},
{
"text": "Translate this long runbook into Russian and keep it as documentation only with no skill package.",
"family": "translate_only"
},
{
"text": "解释一下这个 workflow 是什么意思。",
"family": "cn_explain_only"
},
{
"text": "把这段文档总结一下就行,不要做成 skill。",
"family": "cn_summary_only"
},
{
"text": "把这些笔记翻译成中文,保持原样。",
"family": "cn_translate_only"
},
{
"text": "先一起头脑风暴几个方向,不要封装成 skill。",
"family": "cn_brainstorm_only"
},
{
"text": "Polish this release note for publishing, but do not do any skill work.",
"family": "document_only"
},
{
"text": "Migrate this wiki article into a new docs folder; do not create an agent skill.",
"family": "document_only"
},
{
"text": "把这篇 SOP 改成知识库文档,不需要 agent 执行。",
"family": "cn_document_only"
},
{
"text": "检查安装步骤是否清楚,只做 README,不做 skill 包。",
"family": "cn_document_only"
}
],
"near_neighbor": [
{
"text": "Create a one-off prompt for this task.",
"family": "one_off_vs_reusable"
},
{
"text": "Write a custom answer for this request without creating a skill package.",
"family": "one_off_vs_reusable"
},
{
"text": "Help me brainstorm process ideas without building a skill.",
"family": "brainstorm_vs_build"
},
{
"text": "Improve this README but do not turn it into a skill.",
"family": "document_export_vs_agent_skill"
},
{
"text": "Make a checklist for this task, but not a reusable skill.",
"family": "partial_scaffold_not_full_skill"
},
{
"text": "Create a reusable-looking checklist, but keep it as a plain note instead of a skill.",
"family": "partial_scaffold_not_full_skill"
},
{
"text": "Review this process note and explain it, no packaging needed.",
"family": "explain_not_package"
},
{
"text": "Turn this into a checklist and template, but stop short of making a full skill.",
"family": "partial_scaffold_not_full_skill"
},
{
"text": "Package this explanation as a document, not as an agent skill.",
"family": "document_export_vs_agent_skill"
},
{
"text": "Make a future-ready outline for this skill idea, but do not build the package.",
"family": "future_outline_vs_build"
},
{
"text": "Polish these notes into a reusable-looking document without turning them into an agent skill.",
"family": "document_export_vs_agent_skill"
},
{
"text": "Help me shape an idea before we decide whether to build a skill.",
"family": "future_outline_vs_build"
},
{
"text": "Create an outline for a possible future skill, but do not build the skill yet.",
"family": "future_outline_vs_build"
},
{
"text": "Turn this into a document package for the wiki, not an agent skill.",
"family": "document_export_vs_agent_skill"
},
{
"text": "We may convert this workflow later, but for now keep it as documentation only and produce a reference document.",
"family": "long_context_near_neighbor"
},
{
"text": "Draft a template only from this process and stop short of making a full skill package.",
"family": "partial_scaffold_not_full_skill"
},
{
"text": "Turn the workflow below into a wiki-ready reference document and template only. We may build a skill later, but not now.",
"family": "long_context_near_neighbor"
},
{
"text": "Shape this idea for later and produce a future-ready outline, but do not build the skill package yet.",
"family": "future_outline_vs_build"
},
{
"text": "From the long workflow below, create a template only and a checklist for discussion only. No skill package.",
"family": "long_context_near_neighbor"
},
{
"text": "先做一个可复用风格的清单模板,但不要做成 skill。",
"family": "cn_partial_scaffold_not_full_skill"
},
{
"text": "帮我整理成 wiki 文档,不要做成 agent 能力。",
"family": "cn_document_export_vs_agent_skill"
},
{
"text": "给我一个未来可能做成 skill 的大纲,先不要真的生成包。",
"family": "cn_future_outline_vs_build"
},
{
"text": "这次只给我一个一次性 prompt,不用复用成 skill。",
"family": "cn_one_off_vs_reusable"
},
{
"text": "Create a reusable onboarding template for humans, not an agent skill.",
"family": "document_export_vs_agent_skill"
},
{
"text": "Draft a release checklist for a future skill, but do not package or evaluate the skill yet.",
"family": "future_outline_vs_build"
},
{
"text": "整理成团队发布流程文档即可,不要做成 skill,也不要做触发评测。",
"family": "cn_document_export_vs_agent_skill"
}
]
}
+45
View File
@@ -0,0 +1,45 @@
# World-Class Evidence Intake
This directory defines the intake contract for external and human evidence required before `yao-meta-skill` can honestly claim public world-class completion.
The templates in `templates/` are review aids only. They do not count as accepted evidence. Real submissions belong in `evidence/world_class/submissions/`, which is intentionally gitignored by default so provider metadata, reviewer identity, or client integration notes can be reviewed before anything is committed.
Run:
```bash
SUBMISSIONS_DIR="${SUBMISSIONS_DIR:-evidence/world_class/submissions}"
python3 scripts/yao.py world-class-preflight . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-submission-kit . --output-dir "$SUBMISSIONS_DIR"
# Alternative: prefill artifact SHA-256 digests while keeping drafts template-only.
python3 scripts/yao.py world-class-submission-kit . --output-dir "$SUBMISSIONS_DIR" --prefill-artifacts
python3 scripts/yao.py world-class-intake . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-submission-review . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-ledger . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-runbook . --submissions-dir "$SUBMISSIONS_DIR"
```
The intake validator checks:
- the evidence key matches the current world-class ledger
- the category and source type match the expected human or external evidence path
- artifact references are declared
- real submissions reference concrete files inside the skill directory and include a matching SHA-256 digest for each artifact
- real submissions use the canonical `<evidence-key>.json` filename expected by the ledger
- credentials, secrets, raw user content, and raw provider prompts are explicitly excluded
- raw prompt, output, transcript, message, credential, secret, token, and API-key fields are rejected even when nested
- human adjudication packets must preserve reviewer identity, review date, A/B winner, confidence, and a required rationale before answer-key reveal can count
- planned work, local command-only output, and metadata fallback are not claimed as completion evidence
Run `world-class-preflight` before assigning external or human work. It checks local files, redacted environment readiness, human/external prerequisites, and source-evidence blockers without accepting evidence or printing secrets.
The generated intake report also includes an `operator_checklist` for each pending evidence item. Use it to find the template path, target submission path, preparation command, validation command, required provenance, success checks, and privacy boundary before asking a reviewer or external operator to submit evidence.
The submission kit command creates editable JSON drafts plus a local README for an external operator or human reviewer. Use `--prefill-artifacts` when you want the kit to insert SHA-256 digests for currently available local aggregate artifacts. Prefill is operator convenience only: those drafts still keep `template_only: true` and do not count as evidence until the real run or review exists, the packet is edited truthfully, every artifact ref points to a local aggregate evidence file with a matching `sha256`, and `world-class-intake` validates it.
The submission kit separates artifact rows into `submission-ref` and `supporting-evidence`. `submission-ref` rows are the concrete paths expected in a real packet's `artifact_refs`; `supporting-evidence` rows help reviewers audit the packet and do not all need to be copied into the submission.
The submission review command renders a read-only queue that compares valid packets with the source evidence checks and current ledger state. It is for reviewer triage only; it does not accept evidence or make the world-class claim true.
The operator runbook is the step-by-step coordination cockpit for finishing the remaining real-world work. It includes a Coordination Plan that separates user-required provider, reviewer, native-client, and telemetry actions from assistant-run commands, plus a Release Gate that mirrors the ledger, claim guard, benchmark, Review Studio, evidence consistency, and final CI checks. The runbook is operational guidance only: planning rows, submission drafts, and release-gate rows keep `counts_as_completion: false`.
Accepted intake means "ready for ledger review", not evidence that the final public claim is ready. The ledger remains the source of truth for `ready_to_claim_world_class`.
+440
View File
@@ -0,0 +1,440 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.local/yao-meta-skill/world-class-evidence-intake.schema.json",
"title": "Yao World-Class Evidence Intake",
"description": "Real submissions must use the canonical <evidence-key>.json filename and the runtime validator rejects nested raw prompt, output, transcript, message, credential, secret, token, and API-key fields.",
"type": "object",
"required": [
"schema_version",
"evidence_key",
"template_only",
"category",
"source_type",
"submitted_by",
"submitted_at",
"summary",
"artifact_refs",
"provenance",
"privacy",
"anti_overclaim",
"attestation"
],
"properties": {
"schema_version": {
"const": "1.0"
},
"evidence_key": {
"enum": [
"provider-holdout",
"human-adjudication",
"native-permission-enforcement",
"native-client-telemetry"
]
},
"template_only": {
"type": "boolean"
},
"category": {
"enum": [
"human",
"external"
]
},
"source_type": {
"type": "string",
"minLength": 3
},
"submitted_by": {
"type": "string",
"minLength": 1
},
"submitted_at": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"artifact_refs": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": [
"path",
"kind",
"contains_raw_content"
],
"properties": {
"path": {
"type": "string",
"minLength": 1
},
"kind": {
"type": "string",
"minLength": 1
},
"contains_raw_content": {
"type": "boolean"
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-fA-F]{64}$"
},
"note": {
"type": "string"
}
},
"additionalProperties": true
}
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"privacy": {
"type": "object",
"required": [
"raw_user_content_included",
"raw_provider_prompt_included",
"credentials_included",
"secrets_included"
],
"properties": {
"raw_user_content_included": {
"type": "boolean"
},
"raw_provider_prompt_included": {
"type": "boolean"
},
"credentials_included": {
"type": "boolean"
},
"secrets_included": {
"type": "boolean"
},
"notes": {
"type": "string"
}
},
"additionalProperties": true
},
"anti_overclaim": {
"type": "object",
"required": [
"planned_work_counts_as_evidence",
"metadata_fallback_counts_as_native_enforcement",
"pending_review_counts_as_human_decision",
"local_command_runner_counts_as_provider_model"
],
"properties": {
"planned_work_counts_as_evidence": {
"const": false
},
"metadata_fallback_counts_as_native_enforcement": {
"const": false
},
"pending_review_counts_as_human_decision": {
"const": false
},
"local_command_runner_counts_as_provider_model": {
"const": false
}
},
"additionalProperties": false
},
"attestation": {
"type": "object",
"required": [
"real_external_or_human_evidence",
"reviewer_or_operator_identity_present",
"artifact_refs_reviewed",
"privacy_contract_satisfied",
"ledger_reviewer_approved",
"ledger_reviewer",
"ledger_reviewed_at"
],
"properties": {
"real_external_or_human_evidence": {
"type": "boolean"
},
"reviewer_or_operator_identity_present": {
"type": "boolean"
},
"artifact_refs_reviewed": {
"type": "boolean"
},
"privacy_contract_satisfied": {
"type": "boolean"
},
"ledger_reviewer_approved": {
"type": "boolean"
},
"ledger_reviewer": {
"type": "string"
},
"ledger_reviewed_at": {
"type": "string"
},
"notes": {
"type": "string"
}
},
"additionalProperties": true
}
},
"allOf": [
{
"if": {
"properties": {
"template_only": {
"const": false
}
},
"required": [
"template_only"
]
},
"then": {
"properties": {
"submitted_at": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}Z)?$"
},
"submitted_by": {
"not": {
"enum": [
"operator with provider credentials",
"human reviewer",
"target client or installer integrator",
"Browser/Chrome/IDE/provider client integrator"
]
}
},
"artifact_refs": {
"items": {
"required": [
"path",
"kind",
"contains_raw_content",
"sha256"
]
}
}
}
}
},
{
"if": {
"properties": {
"template_only": {
"const": false
},
"evidence_key": {
"const": "provider-holdout"
}
},
"required": [
"template_only",
"evidence_key"
]
},
"then": {
"properties": {
"artifact_refs": {
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/output_execution_runs.json"
},
"kind": {
"const": "aggregate-report"
}
},
"required": [
"path",
"kind"
]
}
}
}
}
},
{
"if": {
"properties": {
"template_only": {
"const": false
},
"evidence_key": {
"const": "human-adjudication"
}
},
"required": [
"template_only",
"evidence_key"
]
},
"then": {
"properties": {
"artifact_refs": {
"allOf": [
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/output_review_adjudication.json"
},
"kind": {
"const": "adjudication-report"
}
},
"required": [
"path",
"kind"
]
}
},
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/output_review_decisions.json"
},
"kind": {
"const": "review-decisions"
}
},
"required": [
"path",
"kind"
]
}
}
]
}
}
}
},
{
"if": {
"properties": {
"template_only": {
"const": false
},
"evidence_key": {
"const": "native-permission-enforcement"
}
},
"required": [
"template_only",
"evidence_key"
]
},
"then": {
"properties": {
"artifact_refs": {
"allOf": [
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/runtime_permission_probes.json"
},
"kind": {
"const": "runtime-probe-report"
}
},
"required": [
"path",
"kind"
]
}
},
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/install_simulation.json"
},
"kind": {
"const": "installer-enforcement-report"
}
},
"required": [
"path",
"kind"
]
}
}
]
}
}
}
},
{
"if": {
"properties": {
"template_only": {
"const": false
},
"evidence_key": {
"const": "native-client-telemetry"
}
},
"required": [
"template_only",
"evidence_key"
]
},
"then": {
"properties": {
"artifact_refs": {
"allOf": [
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/adoption_drift_report.json"
},
"kind": {
"const": "adoption-drift-report"
}
},
"required": [
"path",
"kind"
]
}
},
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/telemetry_hook_recipes.json"
},
"kind": {
"const": "hook-recipes"
}
},
"required": [
"path",
"kind"
]
}
}
]
}
}
}
}
],
"additionalProperties": true
}
@@ -0,0 +1,64 @@
{
"schema_version": "1.0",
"evidence_key": "human-adjudication",
"template_only": true,
"category": "human",
"source_type": "blind-ab-review",
"submitted_by": "human reviewer",
"submitted_at": "YYYY-MM-DD",
"summary": "Real blind A/B reviewer decisions recorded before the answer key was opened.",
"artifact_refs": [
{
"path": "reports/output_review_adjudication.json",
"kind": "adjudication-report",
"contains_raw_content": false,
"note": "Must show pending_count == 0, invalid_decision_count == 0, blind_review_attested == true, and review_integrity.blind_pack_sha256."
},
{
"path": "reports/output_review_decisions.json",
"kind": "review-decisions",
"contains_raw_content": false,
"note": "Reviewer identity, reviewed_at, winner_variant, confidence, required reason, reviewer_attestation, and review_integrity only."
}
],
"provenance": {
"reviewer": "name or team handle",
"reviewed_at": "YYYY-MM-DD",
"blind_pack_path": "reports/output_blind_review_pack.md",
"blind_pack_sha256": "sha256 from reports/output_review_adjudication.json review_integrity.blind_pack_sha256",
"answer_key_opened_after_decisions": true,
"blind_review_completed_before_answer_key": true,
"decision_fields": [
"case_id",
"winner_variant",
"confidence",
"reason",
"reviewer_attestation",
"review_integrity"
],
"reviewer_reason_required": true
},
"privacy": {
"raw_user_content_included": false,
"raw_provider_prompt_included": false,
"credentials_included": false,
"secrets_included": false,
"notes": "Reviewer reasons must be based on the visible rubric and must not include private customer data."
},
"anti_overclaim": {
"planned_work_counts_as_evidence": false,
"metadata_fallback_counts_as_native_enforcement": false,
"pending_review_counts_as_human_decision": false,
"local_command_runner_counts_as_provider_model": false
},
"attestation": {
"real_external_or_human_evidence": false,
"reviewer_or_operator_identity_present": false,
"artifact_refs_reviewed": false,
"privacy_contract_satisfied": false,
"ledger_reviewer_approved": false,
"ledger_reviewer": "",
"ledger_reviewed_at": "",
"notes": "Copy this template into submissions/ after a real reviewer completes blind decisions."
}
}
@@ -0,0 +1,53 @@
{
"schema_version": "1.0",
"evidence_key": "native-client-telemetry",
"template_only": true,
"category": "external",
"source_type": "native-client-telemetry",
"submitted_by": "Browser/Chrome/IDE/provider client integrator",
"submitted_at": "YYYY-MM-DD",
"summary": "Metadata-only production events imported from a real external client into the local drift loop.",
"artifact_refs": [
{
"path": "reports/adoption_drift_report.json",
"kind": "adoption-drift-report",
"contains_raw_content": false,
"note": "Must show summary.source_types.external > 0 and adoption_sample_count > 0."
},
{
"path": "reports/telemetry_hook_recipes.json",
"kind": "hook-recipes",
"contains_raw_content": false,
"note": "Documents local-first metadata-only client integration."
}
],
"provenance": {
"client": "Browser/Chrome/IDE/provider client",
"native_host_manifest": "/local/path/not/committed",
"event_source": "external",
"metadata_only": true
},
"privacy": {
"raw_user_content_included": false,
"raw_provider_prompt_included": false,
"credentials_included": false,
"secrets_included": false,
"notes": "Never commit telemetry JSONL with raw prompts, outputs, transcripts, notes, or messages."
},
"anti_overclaim": {
"planned_work_counts_as_evidence": false,
"metadata_fallback_counts_as_native_enforcement": false,
"pending_review_counts_as_human_decision": false,
"local_command_runner_counts_as_provider_model": false
},
"attestation": {
"real_external_or_human_evidence": false,
"reviewer_or_operator_identity_present": false,
"artifact_refs_reviewed": false,
"privacy_contract_satisfied": false,
"ledger_reviewer_approved": false,
"ledger_reviewer": "",
"ledger_reviewed_at": "",
"notes": "Copy this template into submissions/ after real client events have been imported."
}
}

Some files were not shown because too many files have changed in this diff Show More