feat: package vscode skill target

This commit is contained in:
yaojingang
2026-06-13 20:15:50 +08:00
parent f42bed2c98
commit 36dc46ab9b
55 changed files with 2586 additions and 284 deletions
+1 -1
View File
@@ -152,7 +152,7 @@ failure-regression-check:
$(PYTHON) tests/verify_failure_regressions.py
package-check:
$(PYTHON) scripts/cross_packager.py . --platform openai --platform claude --platform generic --expectations evals/packaging_expectations.json --output-dir dist --zip
$(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
+7 -7
View File
@@ -113,7 +113,7 @@ python3 scripts/yao.py review-annotations my-skill --add-annotation --gate-key o
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
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
@@ -177,7 +177,7 @@ 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 --expectations evals/packaging_expectations.json --zip
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
```
@@ -199,7 +199,7 @@ 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 --output-dir dist --zip
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
@@ -247,9 +247,9 @@ The homepage panel below is generated from the current eval suite so the family-
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`, and `generic` targets pass contract checks and carry IR provenance, semantic parity metadata, and target-native behavior contracts
- target compiler validation: `openai`, `claude`, `generic`, and Agent Skills compatible 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`, and `generic` adapters expose explicit permission contracts; current targets report `0` native-enforcement adapters and `3` metadata fallbacks with residual risks visible to reviewers
- 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
@@ -258,7 +258,7 @@ Full reports: [reports/eval_suite.json](reports/eval_suite.json) and [reports/fa
- 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 `987/1000`, complex benchmark `790/1000`, governed benchmark `760/1000`
- context budgets: root `944/1000`, complex benchmark `790/1000`, governed benchmark `760/1000`
- quality density: root `131.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)
+2 -2
View File
@@ -32,11 +32,11 @@ Mode rules: [Method](references/skill-engineering-method.md), [Operating Modes](
6. Add only folders and gates that earn their keep.
7. Surface the top three next iteration directions.
Core playbooks: [Method](references/skill-engineering-method.md), [Intent](references/intent-dialogue.md), [Reference Scan](references/reference-scan.md), [Skill IR](references/skill-ir-method.md), [Output Eval](references/output-eval-method.md), [Registry](references/distribution-registry-method.md), [Telemetry](references/telemetry-drift-method.md), [Waivers](references/review-waiver-method.md), [Review Studio](references/review-studio-method.md).
Core 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), [Registry](references/distribution-registry-method.md), [Review Studio](references/review-studio-method.md).
## Skill OS 2.0 Gates
For production, library, governed, or team-distributed work, use Skill IR, target compiler contracts, trigger + output eval, Skill Atlas, runtime conformance, trust report, registry metadata, package verification, install simulation, upgrade check, adoption/drift telemetry, reviewer waiver evidence, and Review Studio before release.
For production, library, governed, or team-distributed work, run Skill IR, target compiler, trigger + output eval, Skill Atlas, conformance, trust, registry/package/install, upgrade, drift, waiver, and Review Studio gates before release.
## First-Turn Style
+2
View File
@@ -8,6 +8,7 @@ compatibility:
- "openai"
- "claude"
- "generic"
- "vscode"
activation:
mode: "manual"
paths: []
@@ -22,3 +23,4 @@ compatibility:
openai: "metadata-adapter"
claude: "neutral-source-plus-adapter"
generic: "neutral-source"
vscode: "agent-skills-source-with-vscode-notes"
+3 -2
View File
@@ -1,5 +1,5 @@
{
"required_targets": ["openai", "claude", "generic"],
"required_targets": ["openai", "claude", "generic", "vscode"],
"required_fields": [
"name",
"description",
@@ -30,5 +30,6 @@
],
"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"]
"generic_required_files": ["targets/generic/adapter.json"],
"vscode_required_files": ["targets/vscode/adapter.json", "targets/vscode/README.md"]
}
+2 -1
View File
@@ -12,7 +12,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"factory_components": [
"templates",
+1 -1
View File
@@ -25,7 +25,7 @@ Do not publish a team package when registry audit reports missing version, hash,
For an installable archive, first build the distribution and run package verification:
```bash
python3 scripts/yao.py package . --platform openai --platform claude --platform generic --output-dir dist --zip
python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip
python3 scripts/yao.py package-verify . --package-dir dist --require-zip
python3 scripts/yao.py install-simulate . --package-dir dist
python3 scripts/yao.py registry-audit .
+2
View File
@@ -8,6 +8,7 @@ This matrix describes the current packaging targets and their support level.
| `claude` | Yes | Yes | Yes | Yes | Yes | activation, execution, trust, permissions, degradation, native behavior | Generates `targets/claude/README.md` plus adapter metadata |
| `generic` | Yes | Yes | Yes | Yes | Yes | activation, execution, trust, permissions, degradation, native behavior | Uses neutral adapter metadata only |
| `agent-skills-compatible` | Neutral source | Yes | Yes | Source-compatible | Yes | activation, execution, trust, permissions, degradation, native behavior | Keeps canonical `SKILL.md` plus `agents/interface.yaml` source shape |
| `vscode` | Yes | Yes | Yes | Yes | Yes | activation, execution, trust, permissions, degradation, native behavior, install scope | Generates `targets/vscode/README.md` plus adapter metadata for VS Code / Copilot Agent Skills review |
## Current Support Model
@@ -15,6 +16,7 @@ This matrix describes the current packaging targets and their support level.
- `claude`: lightweight compatibility adapter with an explicit compiler contract and fallback notes.
- `generic`: lowest-friction export for neutral Agent Skills consumers.
- `agent-skills-compatible`: canonical source shape with compiler evidence for review and distribution.
- `vscode`: VS Code / Copilot Agent Skills adapter that preserves the neutral source package and documents user/project scope plus workspace-trust review notes.
- runtime permission probes currently report metadata fallback for generated targets; no target is claimed as native-enforced until a client or installer integration can actually enforce the permission model.
## Portable Semantics
+3 -2
View File
@@ -12,10 +12,11 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
"package_sha256": "2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368"
"package_sha256": "7a8dab0d542d2994adec2045b54559612db36f14db8b7b66e4138fb0435ae3d3"
}
]
}
+5 -4
View File
@@ -7,7 +7,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"maturity": "governed",
"owner": "Yao Team",
@@ -15,8 +16,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368",
"archive_sha256": "27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353"
"package_sha256": "7a8dab0d542d2994adec2045b54559612db36f14db8b7b66e4138fb0435ae3d3",
"archive_sha256": "176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060"
},
"compatibility": {
"openai": "pass",
@@ -47,7 +48,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353",
"archive_sha256": "176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"ok": true,
"schema_version": "2.0",
"generated_at": "2026-06-13T12:00:19Z",
"generated_at": "2026-06-13T12:15:07Z",
"skill_dir": ".",
"privacy_contract": {
"storage": "local-first",
+810 -10
View File
@@ -4,8 +4,8 @@
"generated_at": "2026-06-13",
"skill_dir": ".",
"summary": {
"target_count": 4,
"pass_count": 4,
"target_count": 5,
"pass_count": 5,
"warn_count": 0,
"block_count": 0,
"failure_count": 0,
@@ -30,7 +30,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
]
},
"compiled_contract": {
@@ -341,7 +342,8 @@
"adapter_targets": [
"openai",
"claude",
"generic"
"generic",
"vscode"
],
"canonical_format": "agent-skills"
},
@@ -826,7 +828,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
]
},
"compiled_contract": {
@@ -1137,7 +1140,8 @@
"adapter_targets": [
"openai",
"claude",
"generic"
"generic",
"vscode"
],
"canonical_format": "agent-skills"
},
@@ -1622,7 +1626,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
]
},
"compiled_contract": {
@@ -1933,7 +1938,8 @@
"adapter_targets": [
"openai",
"claude",
"generic"
"generic",
"vscode"
],
"canonical_format": "agent-skills"
},
@@ -2402,7 +2408,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
]
},
"compiled_contract": {
@@ -2713,7 +2720,8 @@
"adapter_targets": [
"openai",
"claude",
"generic"
"generic",
"vscode"
],
"canonical_format": "agent-skills"
},
@@ -3163,6 +3171,798 @@
"unsupported_features": [],
"warnings": [],
"failures": []
},
{
"schema_version": "1.0",
"target": "vscode",
"status": "pass",
"compiler": {
"name": "yao-skill-ir-compiler",
"schema_version": "1.0",
"source": "skill-ir",
"ir_source": "skill-ir/examples/yao-meta-skill.json",
"ir_schema_version": "2.0.0"
},
"source": {
"skill_dir": ".",
"canonical_metadata": "agents/interface.yaml",
"declared_targets": [
"openai",
"claude",
"generic",
"agent-skills-compatible",
"vscode"
]
},
"compiled_contract": {
"name": "yao-meta-skill",
"title": "Yao Meta Skill",
"version": "1.1.0",
"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.",
"job_to_be_done": "Turn repeated workflows, prompts, transcripts, runbooks, documents, or existing skill packages into routeable, evaluable, packageable, and governable agent skills for personal, team, library, or governed reuse.",
"trigger": {
"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.",
"should_trigger": [
"Create a skill from this repeated workflow.",
"Turn this runbook into a reusable agent skill.",
"Convert this process note into a reusable skill package for the team.",
"Improve this skill description and add evals.",
"Refactor this prompt into a proper skill package.",
"Package this skill for team reuse.",
"Create a meta-skill for packaging internal workflows.",
"Standardize this recurring workflow as a shareable skill package with references."
],
"should_not_trigger": [
"Explain what a workflow is.",
"Just explain what a skill is.",
"Summarize this random note.",
"Translate this README into Japanese.",
"Write a product headline for this landing page.",
"Draft a blog title for this article.",
"Rewrite this paragraph more clearly, but do not package anything.",
"Explain the difference between a runbook and a workflow.",
"one-off writing, translation, explanation, or brainstorming requests that do not need a reusable skill",
"general code review or debugging unless the user is packaging that workflow as a skill"
],
"edge_cases": [
"Create a one-off prompt for this task.",
"Write a custom answer for this request without creating a skill package.",
"Help me brainstorm process ideas without building a skill.",
"Improve this README but do not turn it into a skill.",
"Make a checklist for this task, but not a reusable skill.",
"Create a reusable-looking checklist, but keep it as a plain note instead of a skill.",
"Review this process note and explain it, no packaging needed.",
"Turn this into a checklist and template, but stop short of making a full skill."
]
},
"workflow": {
"steps": [
"Decide whether the request should become a skill and choose the lightest fit.",
"Capture job, output, exclusions, constraints, and standards.",
"Run reference scan: external benchmarks first, user references second, local fit third; surface only uncertainty or conflict.",
"Write the `description` early and test route quality before expanding the package.",
"Add output-risk, artifact-design, prompt-quality, and system-model reports only when they matter.",
"Add only folders and gates that earn their keep.",
"Surface the top three next iteration directions."
],
"decision_points": [
"Route by frontmatter `description`.",
"Keep `SKILL.md` lean; put guidance in `references/`, logic in `scripts/`, and evidence in `reports/`.",
"Use the lightest reliable process.",
"`Scaffold`: exploratory or personal.",
"`Production`: team reuse.",
"`Library`: shared infrastructure.",
"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.",
"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.",
"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.",
"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": [
"references/artifact-design-doctrine.md",
"references/authoring-discipline.md",
"references/distribution-registry-method.md",
"references/eval-playbook.md",
"references/gate-selection.md",
"references/governance.md",
"references/human-review-template.md",
"references/intent-dialogue.md",
"references/iteration-philosophy.md",
"references/non-skill-decision-tree.md",
"references/operating-modes.md",
"references/output-eval-method.md",
"references/output-quality-risk.md",
"references/output-visual-quality.md",
"references/packaging-contracts.md",
"references/pattern-extraction-doctrine.md",
"references/platform-capability-matrix.md",
"references/prompt-engineering-doctrine.md",
"references/qa-ladder.md",
"references/reference-scan.md",
"references/regression-cause-taxonomy.md",
"references/resource-boundaries.md",
"references/review-studio-method.md",
"references/review-waiver-method.md",
"references/runtime-conformance-method.md",
"references/skill-archetypes.md",
"references/skill-atlas-method.md",
"references/skill-engineering-method.md",
"references/skill-ir-method.md",
"references/systems-thinking-doctrine.md",
"references/telemetry-drift-method.md",
"references/trust-security-method.md"
],
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/build_confusion_matrix.py",
"scripts/build_skill_atlas.py",
"scripts/check_update.py",
"scripts/ci_test.py",
"scripts/collect_feedback.py",
"scripts/compile_skill.py",
"scripts/context_sizer.py",
"scripts/create_iteration_snapshot.py",
"scripts/cross_packager.py",
"scripts/diff_eval.py",
"scripts/export_skill_ir.py",
"scripts/github_benchmark_scan.py",
"scripts/governance_check.py",
"scripts/init_skill.py",
"scripts/judge_blind_eval.py",
"scripts/lint_skill.py",
"scripts/local_output_eval_runner.py",
"scripts/optimize_description.py",
"scripts/probe_runtime_permissions.py",
"scripts/promotion_checker.py",
"scripts/provider_output_eval_runner.py",
"scripts/registry_audit.py",
"scripts/render_adoption_drift_report.py",
"scripts/render_artifact_design_profile.py",
"scripts/render_baseline_compare.py",
"scripts/render_context_reports.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_intent_confidence.py",
"scripts/render_intent_dialogue.py",
"scripts/render_iteration_directions.py",
"scripts/render_iteration_ledger.py",
"scripts/render_output_risk_profile.py",
"scripts/render_portability_report.py",
"scripts/render_prompt_quality_profile.py",
"scripts/render_reference_scan.py",
"scripts/render_reference_synthesis.py",
"scripts/render_regression_history.py",
"scripts/render_review_annotations.py",
"scripts/render_review_studio.py",
"scripts/render_review_viewer.py",
"scripts/render_review_waivers.py",
"scripts/render_skill_overview.py",
"scripts/render_social_preview.py",
"scripts/render_system_model.py",
"scripts/resource_boundary_check.py",
"scripts/review_studio_formatting.py",
"scripts/review_studio_gates.py",
"scripts/review_studio_layout.py",
"scripts/run_conformance_suite.py",
"scripts/run_description_optimization_suite.py",
"scripts/run_eval_suite.py",
"scripts/run_output_eval.py",
"scripts/run_output_execution.py",
"scripts/simulate_install.py",
"scripts/skill_report_charts.py",
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/sync_local_install.py",
"scripts/trigger_eval.py",
"scripts/trust_check.py",
"scripts/upgrade_check.py",
"scripts/validate_skill.py",
"scripts/verify_package.py",
"scripts/yao.py",
"scripts/yao_cli_config.py",
"scripts/yao_cli_parser.py"
],
"assets": [
"templates/basic_skill.md.j2",
"templates/complex_skill.md.j2"
],
"reports": [
"reports/benchmark_methodology.md",
"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",
"reports/iteration-directions.json",
"reports/iteration-directions.md",
"reports/skill-overview.json",
"reports/skill-overview.html",
"reports/output_quality_scorecard.json",
"reports/output_quality_scorecard.md",
"reports/output_execution_runs.json",
"reports/output_execution_runs.md",
"reports/output_blind_review_pack.json",
"reports/output_blind_review_pack.md",
"reports/output_blind_answer_key.json",
"reports/output_review_adjudication.json",
"reports/output_review_adjudication.md",
"reports/review_annotations.json",
"reports/review_annotations.md",
"reports/conformance_matrix.json",
"reports/conformance_matrix.md",
"reports/security_trust_report.json",
"reports/security_trust_report.md",
"reports/runtime_permission_probes.json",
"reports/runtime_permission_probes.md",
"reports/skill_atlas.json",
"reports/skill_atlas.html",
"reports/skill-os-2-review.md",
"reports/portability_score.json",
"reports/portability_score.md",
"reports/governance_score.json"
],
"counts": {
"references": 32,
"scripts": 69,
"assets": 2,
"reports": 41
}
},
"eval_plan": {
"trigger": [
"evals/README.md",
"evals/adversarial/trigger_cases.json",
"evals/blind_holdout/trigger_cases.json",
"evals/confusion/route_cases.json",
"evals/dev/trigger_cases.json",
"evals/failure-cases.md",
"evals/history/2026-03-31-context-first-pack.json",
"evals/history/2026-03-31-family-suite-expansion.json",
"evals/history/2026-03-31-governance-quality-gates.json",
"evals/history/2026-03-31-governed-assets-and-history.json",
"evals/history/2026-04-01-route-scorecard-foundation.json",
"evals/history/README.md",
"evals/history/description_optimization/2026-03-31-description-optimization-suite.json",
"evals/history/description_optimization/2026-04-01-adversarial-calibration-and-family-drift.json",
"evals/history/description_optimization/2026-04-01-blind-holdout-and-drift-history.json",
"evals/history/description_optimization/2026-04-01-judge-backed-blind-eval.json",
"evals/history/description_optimization/README.md",
"evals/holdout/trigger_cases.json",
"evals/output/cases.jsonl",
"evals/output/fixtures/release-brief-source.md",
"evals/output/schema.json",
"evals/packaging_expectations.json",
"evals/promotion_policy.md",
"evals/semantic_config.json",
"evals/train/trigger_cases.json",
"evals/trigger_cases.json"
],
"output": [
"evals/output/cases.jsonl",
"evals/output/fixtures/release-brief-source.md",
"evals/output/schema.json"
],
"adversarial": [
"evals/adversarial/trigger_cases.json"
],
"baseline": "without_skill",
"counts": {
"trigger": 26,
"output": 3,
"adversarial": 1,
"baseline": 1
}
},
"risk": {
"output_risk": "high",
"execution_risk": "medium",
"trust_boundary": "external"
},
"governance": {
"owner": "Yao Team",
"maturity": "governed",
"review_cadence": "quarterly",
"review_due": ""
},
"runtime": {
"activation": {
"mode": "manual",
"paths": []
},
"execution": {
"context": "inline",
"shell": "bash"
},
"trust": {
"source_tier": "local",
"remote_inline_execution": "forbid",
"remote_metadata_policy": "allow-metadata-only"
},
"adapter_targets": [
"openai",
"claude",
"generic",
"vscode"
],
"canonical_format": "agent-skills"
},
"permissions": {
"schema_version": "1.0",
"source": "reports/security_trust_report.json",
"source_available": true,
"declared_capabilities": [
"network",
"file_write",
"subprocess"
],
"review_required": true,
"capabilities": {
"network": {
"required": true,
"script_count": 3,
"scripts": [
"scripts/check_update.py",
"scripts/github_benchmark_scan.py",
"scripts/provider_output_eval_runner.py"
],
"review_reason": "Outbound hosts must match security/network_policy.json."
},
"file_write": {
"required": true,
"script_count": 47,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/build_confusion_matrix.py",
"scripts/build_skill_atlas.py",
"scripts/check_update.py",
"scripts/ci_test.py",
"scripts/collect_feedback.py",
"scripts/compile_skill.py",
"scripts/create_iteration_snapshot.py",
"scripts/cross_packager.py",
"scripts/export_skill_ir.py",
"scripts/github_benchmark_scan.py",
"scripts/init_skill.py",
"scripts/probe_runtime_permissions.py",
"scripts/promotion_checker.py",
"scripts/registry_audit.py",
"scripts/render_adoption_drift_report.py",
"scripts/render_artifact_design_profile.py",
"scripts/render_baseline_compare.py",
"scripts/render_context_reports.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_intent_confidence.py",
"scripts/render_intent_dialogue.py",
"scripts/render_iteration_directions.py",
"scripts/render_iteration_ledger.py",
"scripts/render_output_risk_profile.py",
"scripts/render_portability_report.py",
"scripts/render_prompt_quality_profile.py",
"scripts/render_reference_scan.py",
"scripts/render_reference_synthesis.py",
"scripts/render_regression_history.py",
"scripts/render_review_annotations.py",
"scripts/render_review_studio.py",
"scripts/render_review_viewer.py",
"scripts/render_review_waivers.py",
"scripts/render_skill_overview.py",
"scripts/render_social_preview.py",
"scripts/render_system_model.py",
"scripts/run_conformance_suite.py",
"scripts/run_description_optimization_suite.py",
"scripts/run_output_eval.py",
"scripts/run_output_execution.py",
"scripts/simulate_install.py",
"scripts/sync_local_install.py",
"scripts/trust_check.py",
"scripts/upgrade_check.py",
"scripts/verify_package.py"
],
"review_reason": "Scripts write local files or generated artifacts."
},
"subprocess": {
"required": true,
"script_count": 7,
"scripts": [
"scripts/ci_test.py",
"scripts/render_eval_dashboard.py",
"scripts/run_eval_suite.py",
"scripts/run_output_execution.py",
"scripts/sync_local_install.py",
"scripts/trust_check.py",
"scripts/yao.py"
],
"review_reason": "Scripts spawn local commands and need operator review."
},
"interactive": {
"required": false,
"script_count": 0,
"scripts": [],
"review_reason": ""
}
},
"network_policy": {
"source": "security/network_policy.json",
"covered_scripts": [
"scripts/check_update.py",
"scripts/github_benchmark_scan.py",
"scripts/provider_output_eval_runner.py"
],
"missing_scripts": [],
"mismatches": []
},
"help_smoke": {
"enabled": true,
"checked_count": 60,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 47,
"subprocess_script_count": 7,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
},
"source_files_count": 6,
"target": "vscode",
"target_permission_contract": {
"schema_version": "1.0",
"target": "vscode",
"permission_model": "vscode-workspace-trust-plus-metadata",
"native_enforcement": false,
"representation": "targets/vscode/adapter.json::target_permission_contract and targets/vscode/README.md install notes",
"review_required": true,
"declared_capabilities": [
"network",
"file_write",
"subprocess"
],
"capability_counts": {
"network": 3,
"file_write": 47,
"subprocess": 7,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
"operator_note": "VS Code target relies on project or user skill installation plus VS Code workspace trust; Yao preserves permission metadata for reviewer and installer checks."
},
"target_native_contract": {
"schema_version": "1.0",
"target": "vscode",
"native_surface": "VS Code/Copilot Agent Skills project or user scope",
"activation": {
"policy": "Use folder name plus SKILL.md name/description; keep description under platform limits.",
"trigger_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.",
"manual_activation_supported": true,
"automatic_activation_note": "Depends on the target client route/catalog implementation."
},
"resources": {
"strategy": "Install as project or user scoped skill source, preserving relative references and scripts.",
"counts": {
"references": 32,
"scripts": 69,
"assets": 2,
"reports": 41
},
"generated_files": [
"targets/vscode/adapter.json",
"targets/vscode/README.md"
]
},
"scripts": {
"strategy": "Scripts require workspace trust and operator/client approval outside this compiler.",
"script_count": 69,
"help_smoke_failed_count": 0
},
"permissions": {
"enforcement": "client-or-workspace-trust",
"native_enforcement": false,
"declared_capabilities": [
"network",
"file_write",
"subprocess"
],
"review_required": true
},
"review": {
"artifacts": [
"SKILL.md",
"agents/interface.yaml",
"reports/review-studio.html"
],
"fallback_behavior": "If VS Code scope is not installed, use the neutral Agent Skills source.",
"unsupported_native_features": [
"automatic VS Code installation",
"VS Code installation scope is documented but not installed by this compiler"
]
},
"install_scope": "VS Code user or project skills directory"
},
"degradation_strategy": "agent-skills-source-with-vscode-notes",
"target_runtime": {
"adapter_mode": "vscode-agent-skills-adapter",
"generated_files": [
"targets/vscode/adapter.json",
"targets/vscode/README.md"
],
"metadata_mapping": {
"name": "folder-name-and-SKILL.md::frontmatter.name",
"description": "SKILL.md::frontmatter.description",
"interface": "agents/interface.yaml",
"permissions": "targets/vscode/adapter.json::target_permission_contract",
"install_scope": "targets/vscode/README.md"
},
"preserved_semantics": [
"trigger",
"workflow",
"resources",
"eval-plan",
"risk",
"governance",
"runtime",
"trust",
"permissions"
],
"native_surface": "VS Code/Copilot Agent Skills project or user scope"
}
},
"permission_contract": {
"schema_version": "1.0",
"source": "reports/security_trust_report.json",
"source_available": true,
"declared_capabilities": [
"network",
"file_write",
"subprocess"
],
"review_required": true,
"capabilities": {
"network": {
"required": true,
"script_count": 3,
"scripts": [
"scripts/check_update.py",
"scripts/github_benchmark_scan.py",
"scripts/provider_output_eval_runner.py"
],
"review_reason": "Outbound hosts must match security/network_policy.json."
},
"file_write": {
"required": true,
"script_count": 47,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/build_confusion_matrix.py",
"scripts/build_skill_atlas.py",
"scripts/check_update.py",
"scripts/ci_test.py",
"scripts/collect_feedback.py",
"scripts/compile_skill.py",
"scripts/create_iteration_snapshot.py",
"scripts/cross_packager.py",
"scripts/export_skill_ir.py",
"scripts/github_benchmark_scan.py",
"scripts/init_skill.py",
"scripts/probe_runtime_permissions.py",
"scripts/promotion_checker.py",
"scripts/registry_audit.py",
"scripts/render_adoption_drift_report.py",
"scripts/render_artifact_design_profile.py",
"scripts/render_baseline_compare.py",
"scripts/render_context_reports.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_intent_confidence.py",
"scripts/render_intent_dialogue.py",
"scripts/render_iteration_directions.py",
"scripts/render_iteration_ledger.py",
"scripts/render_output_risk_profile.py",
"scripts/render_portability_report.py",
"scripts/render_prompt_quality_profile.py",
"scripts/render_reference_scan.py",
"scripts/render_reference_synthesis.py",
"scripts/render_regression_history.py",
"scripts/render_review_annotations.py",
"scripts/render_review_studio.py",
"scripts/render_review_viewer.py",
"scripts/render_review_waivers.py",
"scripts/render_skill_overview.py",
"scripts/render_social_preview.py",
"scripts/render_system_model.py",
"scripts/run_conformance_suite.py",
"scripts/run_description_optimization_suite.py",
"scripts/run_output_eval.py",
"scripts/run_output_execution.py",
"scripts/simulate_install.py",
"scripts/sync_local_install.py",
"scripts/trust_check.py",
"scripts/upgrade_check.py",
"scripts/verify_package.py"
],
"review_reason": "Scripts write local files or generated artifacts."
},
"subprocess": {
"required": true,
"script_count": 7,
"scripts": [
"scripts/ci_test.py",
"scripts/render_eval_dashboard.py",
"scripts/run_eval_suite.py",
"scripts/run_output_execution.py",
"scripts/sync_local_install.py",
"scripts/trust_check.py",
"scripts/yao.py"
],
"review_reason": "Scripts spawn local commands and need operator review."
},
"interactive": {
"required": false,
"script_count": 0,
"scripts": [],
"review_reason": ""
}
},
"network_policy": {
"source": "security/network_policy.json",
"covered_scripts": [
"scripts/check_update.py",
"scripts/github_benchmark_scan.py",
"scripts/provider_output_eval_runner.py"
],
"missing_scripts": [],
"mismatches": []
},
"help_smoke": {
"enabled": true,
"checked_count": 60,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 47,
"subprocess_script_count": 7,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
},
"target_permission_contract": {
"schema_version": "1.0",
"target": "vscode",
"permission_model": "vscode-workspace-trust-plus-metadata",
"native_enforcement": false,
"representation": "targets/vscode/adapter.json::target_permission_contract and targets/vscode/README.md install notes",
"review_required": true,
"declared_capabilities": [
"network",
"file_write",
"subprocess"
],
"capability_counts": {
"network": 3,
"file_write": 47,
"subprocess": 7,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
"operator_note": "VS Code target relies on project or user skill installation plus VS Code workspace trust; Yao preserves permission metadata for reviewer and installer checks."
},
"target_native_contract": {
"schema_version": "1.0",
"target": "vscode",
"native_surface": "VS Code/Copilot Agent Skills project or user scope",
"activation": {
"policy": "Use folder name plus SKILL.md name/description; keep description under platform limits.",
"trigger_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.",
"manual_activation_supported": true,
"automatic_activation_note": "Depends on the target client route/catalog implementation."
},
"resources": {
"strategy": "Install as project or user scoped skill source, preserving relative references and scripts.",
"counts": {
"references": 32,
"scripts": 69,
"assets": 2,
"reports": 41
},
"generated_files": [
"targets/vscode/adapter.json",
"targets/vscode/README.md"
]
},
"scripts": {
"strategy": "Scripts require workspace trust and operator/client approval outside this compiler.",
"script_count": 69,
"help_smoke_failed_count": 0
},
"permissions": {
"enforcement": "client-or-workspace-trust",
"native_enforcement": false,
"declared_capabilities": [
"network",
"file_write",
"subprocess"
],
"review_required": true
},
"review": {
"artifacts": [
"SKILL.md",
"agents/interface.yaml",
"reports/review-studio.html"
],
"fallback_behavior": "If VS Code scope is not installed, use the neutral Agent Skills source.",
"unsupported_native_features": [
"automatic VS Code installation",
"VS Code installation scope is documented but not installed by this compiler"
]
},
"install_scope": "VS Code user or project skills directory"
},
"target_transform": {
"target": "vscode",
"adapter_mode": "vscode-agent-skills-adapter",
"generated_files": [
"targets/vscode/adapter.json",
"targets/vscode/README.md"
],
"metadata_mapping": {
"name": "folder-name-and-SKILL.md::frontmatter.name",
"description": "SKILL.md::frontmatter.description",
"interface": "agents/interface.yaml",
"permissions": "targets/vscode/adapter.json::target_permission_contract",
"install_scope": "targets/vscode/README.md"
},
"preserved_semantics": [
"trigger",
"workflow",
"resources",
"eval-plan",
"risk",
"governance",
"runtime",
"trust",
"permissions"
],
"degradation_strategy": "agent-skills-source-with-vscode-notes",
"permission_representation": "targets/vscode/adapter.json::target_permission_contract and targets/vscode/README.md install notes",
"native_surface": "VS Code/Copilot Agent Skills project or user scope",
"activation_policy": "Use folder name plus SKILL.md name/description; keep description under platform limits.",
"resource_strategy": "Install as project or user scoped skill source, preserving relative references and scripts.",
"script_strategy": "Scripts require workspace trust and operator/client approval outside this compiler.",
"permission_enforcement": "client-or-workspace-trust"
},
"unsupported_features": [
"VS Code installation scope is documented but not installed by this compiler"
],
"warnings": [],
"failures": []
}
],
"failures": [],
+12 -2
View File
@@ -1,8 +1,8 @@
# Compiled Targets
- OK: `True`
- Targets: `4`
- Pass: `4`
- Targets: `5`
- Pass: `5`
- Warn: `0`
- Block: `0`
@@ -14,6 +14,7 @@
| `claude` | `pass` | Claude-compatible neutral source folder with adapter notes | `neutral-source-plus-adapter` | `network, file_write, subprocess` | `neutral-source-plus-adapter` | targets/claude/adapter.json, targets/claude/README.md |
| `generic` | `pass` | Agent Skills compatible neutral package | `agent-skills-compatible` | `network, file_write, subprocess` | `neutral-source` | targets/generic/adapter.json |
| `agent-skills-compatible` | `pass` | Agent Skills standard source tree | `neutral-agent-skills-source` | `network, file_write, subprocess` | `neutral-source` | SKILL.md, agents/interface.yaml |
| `vscode` | `pass` | VS Code/Copilot Agent Skills project or user scope | `vscode-agent-skills-adapter` | `network, file_write, subprocess` | `agent-skills-source-with-vscode-notes` | targets/vscode/adapter.json, targets/vscode/README.md |
## Native Behavior Contracts
@@ -53,6 +54,15 @@
- 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
+6 -6
View File
@@ -5,13 +5,13 @@
"stats": {
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 811,
"other_text_tokens": 880703,
"estimated_initial_load_tokens": 987,
"estimated_total_text_tokens": 881514,
"relevant_file_count": 374,
"skill_body_tokens": 751,
"other_text_tokens": 905782,
"estimated_initial_load_tokens": 944,
"estimated_total_text_tokens": 906533,
"relevant_file_count": 386,
"unused_resource_dirs": [],
"quality_signal_points": 130,
"quality_density": 131.7
"quality_density": 137.7
}
}
+1 -1
View File
@@ -2,7 +2,7 @@
| Target | Path | Tier | Limit | Initial | SKILL | Quality Density | Unused Dirs | Status |
| --- | --- | --- | ---: | ---: | ---: | ---: | --- | --- |
| root | `.` | `production` | 1000 | 987 | 811 | 131.7 | - | ok |
| root | `.` | `production` | 1000 | 944 | 751 | 137.7 | - | ok |
| complex-release-orchestrator | `examples/complex-release-orchestrator/generated-skill` | `production` | 1000 | 790 | 718 | 164.6 | - | ok |
| governed-incident-command | `examples/governed-incident-command/generated-skill` | `production` | 1000 | 760 | 658 | 171.1 | - | ok |
+3 -3
View File
@@ -6,9 +6,9 @@
"path": ".",
"budget_tier": "production",
"budget_limit": 1000,
"initial_tokens": 987,
"skill_body_tokens": 811,
"quality_density": 131.7,
"initial_tokens": 944,
"skill_body_tokens": 751,
"quality_density": 137.7,
"unused_resource_dirs": [],
"ok": true,
"warnings": []
+12 -2
View File
@@ -8,12 +8,12 @@
"installed_skill_dir": "dist/install-simulation/simulate-yao-meta-skill/yao-meta-skill",
"summary": {
"archive_present": true,
"archive_entry_count": 492,
"archive_entry_count": 493,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
"interface_loaded": true,
"adapter_count": 3,
"adapter_count": 4,
"install_root_is_temp": false,
"failure_count": 0,
"warning_count": 0
@@ -108,6 +108,16 @@
"id": "adapter-openai-name",
"status": "pass",
"detail": "openai adapter name matches package manifest"
},
{
"id": "adapter-vscode",
"status": "pass",
"detail": "vscode adapter is readable after package install simulation"
},
{
"id": "adapter-vscode-name",
"status": "pass",
"detail": "vscode adapter name matches package manifest"
}
],
"failures": [],
+3 -1
View File
@@ -6,7 +6,7 @@
- Entrypoint loaded: `True`
- Manifest loaded: `True`
- Interface loaded: `True`
- Adapters readable: `3`
- Adapters readable: `4`
- Failures: `0`
- Warnings: `0`
@@ -32,6 +32,8 @@
| `adapter-generic-name` | `pass` | generic adapter name matches package manifest |
| `adapter-openai` | `pass` | openai adapter is readable after package install simulation |
| `adapter-openai-name` | `pass` | openai adapter name matches package manifest |
| `adapter-vscode` | `pass` | vscode adapter is readable after package install simulation |
| `adapter-vscode-name` | `pass` | vscode adapter name matches package manifest |
## Failures
+10 -10
View File
@@ -34,7 +34,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 30.0,
"duration_ms": 28.86,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -62,7 +62,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 32.55,
"duration_ms": 28.72,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -85,7 +85,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 32.87,
"duration_ms": 29.59,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -113,7 +113,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 32.72,
"duration_ms": 30.19,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -136,7 +136,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 36.87,
"duration_ms": 31.03,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -164,7 +164,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 39.43,
"duration_ms": 29.71,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -187,7 +187,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 38.79,
"duration_ms": 32.23,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -214,7 +214,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 38.95,
"duration_ms": 31.55,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -237,7 +237,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 37.28,
"duration_ms": 32.21,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -266,7 +266,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 31.54,
"duration_ms": 31.89,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
+10 -10
View File
@@ -23,16 +23,16 @@ Command runner evidence is present. This proves the eval harness executed an ext
| Case | Variant | Mode | Model | Duration ms | Tokens | Score | Status |
| --- | --- | --- | --- | ---: | ---: | ---: | --- |
| skill-package-contract | baseline | command | local-output-eval-runner | 30.0 | 33 | 0.0 | pass |
| skill-package-contract | with_skill | command | local-output-eval-runner | 32.55 | 73 | 100.0 | pass |
| output-eval-expectation | baseline | command | local-output-eval-runner | 32.87 | 36 | 0.0 | pass |
| output-eval-expectation | with_skill | command | local-output-eval-runner | 32.72 | 80 | 100.0 | pass |
| ir-before-packaging | baseline | command | local-output-eval-runner | 36.87 | 33 | 0.0 | pass |
| ir-before-packaging | with_skill | command | local-output-eval-runner | 39.43 | 80 | 100.0 | pass |
| near-neighbor-boundary | baseline | command | local-output-eval-runner | 38.79 | 36 | 0.0 | pass |
| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 38.95 | 65 | 100.0 | pass |
| file-backed-governed-package | baseline | command | local-output-eval-runner | 37.28 | 37 | 0.0 | pass |
| file-backed-governed-package | with_skill | command | local-output-eval-runner | 31.54 | 98 | 100.0 | pass |
| skill-package-contract | baseline | command | local-output-eval-runner | 28.86 | 33 | 0.0 | pass |
| skill-package-contract | with_skill | command | local-output-eval-runner | 28.72 | 73 | 100.0 | pass |
| output-eval-expectation | baseline | command | local-output-eval-runner | 29.59 | 36 | 0.0 | pass |
| output-eval-expectation | with_skill | command | local-output-eval-runner | 30.19 | 80 | 100.0 | pass |
| ir-before-packaging | baseline | command | local-output-eval-runner | 31.03 | 33 | 0.0 | pass |
| ir-before-packaging | with_skill | command | local-output-eval-runner | 29.71 | 80 | 100.0 | pass |
| near-neighbor-boundary | baseline | command | local-output-eval-runner | 32.23 | 36 | 0.0 | pass |
| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 31.55 | 65 | 100.0 | pass |
| file-backed-governed-package | baseline | command | local-output-eval-runner | 32.21 | 37 | 0.0 | pass |
| file-backed-governed-package | with_skill | command | local-output-eval-runner | 31.89 | 98 | 100.0 | pass |
## Next Fixes
+154 -4
View File
@@ -5,11 +5,11 @@
"skill_dir": ".",
"package_dir": "dist",
"summary": {
"target_count": 3,
"adapter_count": 3,
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353",
"archive_entry_count": 492,
"archive_sha256": "176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060",
"archive_entry_count": 493,
"failure_count": 0,
"warning_count": 0
},
@@ -424,6 +424,141 @@
"status": "pass",
"detail": "generic adapter includes field: portability_profile"
},
{
"id": "vscode-adapter",
"status": "pass",
"detail": "Adapter exists for target: vscode"
},
{
"id": "vscode-field-name",
"status": "pass",
"detail": "vscode adapter includes field: name"
},
{
"id": "vscode-field-description",
"status": "pass",
"detail": "vscode adapter includes field: description"
},
{
"id": "vscode-field-version",
"status": "pass",
"detail": "vscode adapter includes field: version"
},
{
"id": "vscode-field-display_name",
"status": "pass",
"detail": "vscode adapter includes field: display_name"
},
{
"id": "vscode-field-short_description",
"status": "pass",
"detail": "vscode adapter includes field: short_description"
},
{
"id": "vscode-field-default_prompt",
"status": "pass",
"detail": "vscode adapter includes field: default_prompt"
},
{
"id": "vscode-field-job_to_be_done",
"status": "pass",
"detail": "vscode adapter includes field: job_to_be_done"
},
{
"id": "vscode-field-ir_source",
"status": "pass",
"detail": "vscode adapter includes field: ir_source"
},
{
"id": "vscode-field-ir_schema_version",
"status": "pass",
"detail": "vscode adapter includes field: ir_schema_version"
},
{
"id": "vscode-field-semantic_contract",
"status": "pass",
"detail": "vscode adapter includes field: semantic_contract"
},
{
"id": "vscode-field-semantic_parity",
"status": "pass",
"detail": "vscode adapter includes field: semantic_parity"
},
{
"id": "vscode-field-compiler",
"status": "pass",
"detail": "vscode adapter includes field: compiler"
},
{
"id": "vscode-field-compiled_contract",
"status": "pass",
"detail": "vscode adapter includes field: compiled_contract"
},
{
"id": "vscode-field-permission_contract",
"status": "pass",
"detail": "vscode adapter includes field: permission_contract"
},
{
"id": "vscode-field-target_permission_contract",
"status": "pass",
"detail": "vscode adapter includes field: target_permission_contract"
},
{
"id": "vscode-field-target_native_contract",
"status": "pass",
"detail": "vscode adapter includes field: target_native_contract"
},
{
"id": "vscode-field-target_transform",
"status": "pass",
"detail": "vscode adapter includes field: target_transform"
},
{
"id": "vscode-field-canonical_metadata",
"status": "pass",
"detail": "vscode adapter includes field: canonical_metadata"
},
{
"id": "vscode-field-canonical_format",
"status": "pass",
"detail": "vscode adapter includes field: canonical_format"
},
{
"id": "vscode-field-activation_mode",
"status": "pass",
"detail": "vscode adapter includes field: activation_mode"
},
{
"id": "vscode-field-execution_context",
"status": "pass",
"detail": "vscode adapter includes field: execution_context"
},
{
"id": "vscode-field-shell",
"status": "pass",
"detail": "vscode adapter includes field: shell"
},
{
"id": "vscode-field-trust_level",
"status": "pass",
"detail": "vscode adapter includes field: trust_level"
},
{
"id": "vscode-field-remote_inline_execution",
"status": "pass",
"detail": "vscode adapter includes field: remote_inline_execution"
},
{
"id": "vscode-field-degradation_strategy",
"status": "pass",
"detail": "vscode adapter includes field: degradation_strategy"
},
{
"id": "vscode-field-portability_profile",
"status": "pass",
"detail": "vscode adapter includes field: portability_profile"
},
{
"id": "openai-file-targets/openai/adapter.json",
"status": "pass",
@@ -449,6 +584,16 @@
"status": "pass",
"detail": "Package contains targets/generic/adapter.json"
},
{
"id": "vscode-file-targets/vscode/adapter.json",
"status": "pass",
"detail": "Package contains targets/vscode/adapter.json"
},
{
"id": "vscode-file-targets/vscode/README.md",
"status": "pass",
"detail": "Package contains targets/vscode/README.md"
},
{
"id": "archive-safe-paths",
"status": "pass",
@@ -503,6 +648,11 @@
"id": "registry-compat-generic",
"status": "pass",
"detail": "Registry compatibility is reviewable for target: generic"
},
{
"id": "registry-compat-vscode",
"status": "pass",
"detail": "Registry compatibility is reviewable for target: vscode"
}
],
"failures": [],
+32 -2
View File
@@ -2,9 +2,9 @@
- OK: `True`
- Package directory: `dist`
- Targets: `3 / 3` adapters present
- Targets: `4 / 4` adapters present
- Archive present: `True`
- Archive SHA256: `27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353`
- Archive SHA256: `176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060`
- Failures: `0`
- Warnings: `0`
@@ -94,11 +94,40 @@
| `generic-field-remote_inline_execution` | `pass` | generic adapter includes field: remote_inline_execution |
| `generic-field-degradation_strategy` | `pass` | generic adapter includes field: degradation_strategy |
| `generic-field-portability_profile` | `pass` | generic adapter includes field: portability_profile |
| `vscode-adapter` | `pass` | Adapter exists for target: vscode |
| `vscode-field-name` | `pass` | vscode adapter includes field: name |
| `vscode-field-description` | `pass` | vscode adapter includes field: description |
| `vscode-field-version` | `pass` | vscode adapter includes field: version |
| `vscode-field-display_name` | `pass` | vscode adapter includes field: display_name |
| `vscode-field-short_description` | `pass` | vscode adapter includes field: short_description |
| `vscode-field-default_prompt` | `pass` | vscode adapter includes field: default_prompt |
| `vscode-field-job_to_be_done` | `pass` | vscode adapter includes field: job_to_be_done |
| `vscode-field-ir_source` | `pass` | vscode adapter includes field: ir_source |
| `vscode-field-ir_schema_version` | `pass` | vscode adapter includes field: ir_schema_version |
| `vscode-field-semantic_contract` | `pass` | vscode adapter includes field: semantic_contract |
| `vscode-field-semantic_parity` | `pass` | vscode adapter includes field: semantic_parity |
| `vscode-field-compiler` | `pass` | vscode adapter includes field: compiler |
| `vscode-field-compiled_contract` | `pass` | vscode adapter includes field: compiled_contract |
| `vscode-field-permission_contract` | `pass` | vscode adapter includes field: permission_contract |
| `vscode-field-target_permission_contract` | `pass` | vscode adapter includes field: target_permission_contract |
| `vscode-field-target_native_contract` | `pass` | vscode adapter includes field: target_native_contract |
| `vscode-field-target_transform` | `pass` | vscode adapter includes field: target_transform |
| `vscode-field-canonical_metadata` | `pass` | vscode adapter includes field: canonical_metadata |
| `vscode-field-canonical_format` | `pass` | vscode adapter includes field: canonical_format |
| `vscode-field-activation_mode` | `pass` | vscode adapter includes field: activation_mode |
| `vscode-field-execution_context` | `pass` | vscode adapter includes field: execution_context |
| `vscode-field-shell` | `pass` | vscode adapter includes field: shell |
| `vscode-field-trust_level` | `pass` | vscode adapter includes field: trust_level |
| `vscode-field-remote_inline_execution` | `pass` | vscode adapter includes field: remote_inline_execution |
| `vscode-field-degradation_strategy` | `pass` | vscode adapter includes field: degradation_strategy |
| `vscode-field-portability_profile` | `pass` | vscode adapter includes field: portability_profile |
| `openai-file-targets/openai/adapter.json` | `pass` | Package contains targets/openai/adapter.json |
| `openai-file-targets/openai/agents/openai.yaml` | `pass` | Package contains targets/openai/agents/openai.yaml |
| `claude-file-targets/claude/adapter.json` | `pass` | Package contains targets/claude/adapter.json |
| `claude-file-targets/claude/README.md` | `pass` | Package contains targets/claude/README.md |
| `generic-file-targets/generic/adapter.json` | `pass` | Package contains targets/generic/adapter.json |
| `vscode-file-targets/vscode/adapter.json` | `pass` | Package contains targets/vscode/adapter.json |
| `vscode-file-targets/vscode/README.md` | `pass` | Package contains targets/vscode/README.md |
| `archive-safe-paths` | `pass` | Archive has no absolute or parent-traversal entries |
| `archive-entry-yao-meta-skill/SKILL.md` | `pass` | Archive contains yao-meta-skill/SKILL.md |
| `archive-entry-yao-meta-skill/manifest.json` | `pass` | Archive contains yao-meta-skill/manifest.json |
@@ -110,6 +139,7 @@
| `registry-compat-openai` | `pass` | Registry compatibility is reviewable for target: openai |
| `registry-compat-claude` | `pass` | Registry compatibility is reviewable for target: claude |
| `registry-compat-generic` | `pass` | Registry compatibility is reviewable for target: generic |
| `registry-compat-vscode` | `pass` | Registry compatibility is reviewable for target: vscode |
## Failures
+3 -3
View File
@@ -3,14 +3,14 @@
"score": 100,
"band": "world-class",
"summary": {
"adapter_target_count": 3,
"adapter_target_count": 4,
"activation_mode": "manual",
"execution_context": "inline",
"shell": "bash",
"trust_level": "local",
"remote_inline_execution": "forbid",
"degradation_coverage": 3,
"snapshot_count": 3,
"degradation_coverage": 4,
"snapshot_count": 4,
"ir_source": "skill-ir/examples/yao-meta-skill.json",
"ir_schema_version": "2.0.0"
},
+1 -1
View File
@@ -2,7 +2,7 @@
- score: `100/100`
- band: `world-class`
- adapter targets: `3`
- adapter targets: `4`
- activation mode: `manual`
- execution context: `inline`
- shell: `bash`
+8 -6
View File
@@ -12,7 +12,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"maturity": "governed",
"owner": "Yao Team",
@@ -20,8 +21,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368",
"archive_sha256": "27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353"
"package_sha256": "7a8dab0d542d2994adec2045b54559612db36f14db8b7b66e4138fb0435ae3d3",
"archive_sha256": "176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060"
},
"compatibility": {
"openai": "pass",
@@ -52,7 +53,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353",
"archive_sha256": "176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -73,10 +74,11 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
"package_sha256": "2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368"
"package_sha256": "7a8dab0d542d2994adec2045b54559612db36f14db8b7b66e4138fb0435ae3d3"
}
]
},
+2 -2
View File
@@ -6,8 +6,8 @@
- Maturity: `governed`
- Owner: `Yao Team`
- License: `MIT`
- Package SHA256: `2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368`
- Archive SHA256: `27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353`
- Package SHA256: `7a8dab0d542d2994adec2045b54559612db36f14db8b7b66e4138fb0435ae3d3`
- Archive SHA256: `176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060`
- Install simulated: `True`
## Compatibility
+10 -10
View File
@@ -242,12 +242,12 @@
<section>
<h2>核心指标</h2>
<div class="metrics"><article class='metric'><span>Skill IR</span><strong>2.0.0</strong><p>4 targets in platform-neutral contract</p></article><article class='metric'><span>Compiler</span><strong>4/4</strong><p>target contracts compiled from Skill IR</p></article><article class='metric'><span>Output Delta</span><strong>100.0</strong><p>5 cases; 1 file-backed</p></article><article class='metric'><span>Exec Runs</span><strong>10</strong><p>command 10; model 0; recorded 0</p></article><article class='metric'><span>Blind A/B</span><strong>5</strong><p>review pairs hide baseline vs with-skill labels</p></article><article class='metric'><span>Review A/B</span><strong>0/5</strong><p>adjudication decisions; pending 5</p></article><article class='metric'><span>Runtime</span><strong>5/5</strong><p>target conformance pass rate</p></article><article class='metric'><span>Perm Probe</span><strong>3/3</strong><p>0 native enforcement targets</p></article><article class='metric'><span>Trust</span><strong>0</strong><p>69 scripts scanned; secrets found</p></article><article class='metric'><span>Atlas</span><strong>5</strong><p>12 scanned skills; route collisions</p></article><article class='metric'><span>Drift</span><strong>low</strong><p>1 metadata events; 0 missed triggers</p></article><article class='metric'><span>Waivers</span><strong>0</strong><p>0 gates covered; human risk decisions</p></article><article class='metric'><span>Notes</span><strong>0/0</strong><p>0 open blocker annotations</p></article><article class='metric'><span>Registry</span><strong>1.1.0</strong><p>4 targets; MIT license</p></article><article class='metric'><span>Archive</span><strong>pass</strong><p>492 zip entries; package verification</p></article><article class='metric'><span>Install</span><strong>pass</strong><p>3 adapters readable; local install simulation</p></article><article class='metric'><span>Upgrade</span><strong>minor</strong><p>declared minor; 0 breaking changes</p></article></div>
<div class="metrics"><article class='metric'><span>Skill IR</span><strong>2.0.0</strong><p>5 targets in platform-neutral contract</p></article><article class='metric'><span>Compiler</span><strong>5/5</strong><p>target contracts compiled from Skill IR</p></article><article class='metric'><span>Output Delta</span><strong>100.0</strong><p>5 cases; 1 file-backed</p></article><article class='metric'><span>Exec Runs</span><strong>10</strong><p>command 10; model 0; recorded 0</p></article><article class='metric'><span>Blind A/B</span><strong>5</strong><p>review pairs hide baseline vs with-skill labels</p></article><article class='metric'><span>Review A/B</span><strong>0/5</strong><p>adjudication decisions; pending 5</p></article><article class='metric'><span>Runtime</span><strong>5/5</strong><p>target conformance pass rate</p></article><article class='metric'><span>Perm Probe</span><strong>4/4</strong><p>0 native enforcement targets</p></article><article class='metric'><span>Trust</span><strong>0</strong><p>69 scripts scanned; secrets found</p></article><article class='metric'><span>Atlas</span><strong>5</strong><p>12 scanned skills; route collisions</p></article><article class='metric'><span>Drift</span><strong>low</strong><p>1 metadata events; 0 missed triggers</p></article><article class='metric'><span>Waivers</span><strong>0</strong><p>0 gates covered; human risk decisions</p></article><article class='metric'><span>Notes</span><strong>0/0</strong><p>0 open blocker annotations</p></article><article class='metric'><span>Registry</span><strong>1.1.0</strong><p>5 targets; MIT license</p></article><article class='metric'><span>Archive</span><strong>pass</strong><p>493 zip entries; package verification</p></article><article class='metric'><span>Install</span><strong>pass</strong><p>4 adapters readable; local install simulation</p></article><article class='metric'><span>Upgrade</span><strong>minor</strong><p>declared minor; 0 breaking changes</p></article></div>
</section>
<section>
<h2>审查闸门</h2>
<div class="gates"><article class='gate pass'><div><span>通过</span><h3>意图画布</h3></div><p>intent confidence 100/100; Intent is clear enough to package the first routeable version.</p><footer>reports/intent-confidence.json <a href='intent-confidence.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>触发实验</h3></div><p>13 trigger cases; 0 misroutes; 0 ambiguous</p><footer>reports/route_scorecard.json <a href='route_scorecard.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>输出实验</h3></div><p>5/5 cases; with-skill 100.0; baseline 0.0; file-backed 1; near-neighbor 1; blind A/B 5; exec 10; command 10; model 0; recorded 0; reviewed 0/5; review pending 5</p><footer>reports/output_quality_scorecard.json <a href='output_quality_scorecard.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>上下文</h3></div><p>initial load 987/1000; quality density 131.7</p><footer>reports/context_budget.json <a href='context_budget.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运行矩阵</h3></div><p>5 / 5 targets pass</p><footer>reports/conformance_matrix.json <a href='conformance_matrix.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>信任报告</h3></div><p>0 secrets; 69 scripts; 3 network-capable scripts; 0 help smoke failures</p><footer>reports/security_trust_report.json <a href='security_trust_report.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限批准</h3></div><p>3/3 permissions approved; gaps 0; required file_write, network, subprocess</p><footer>reports/security_trust_report.json + security/permission_policy.json <a href='../security/permission_policy.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限探针</h3></div><p>3/3 targets probed; native 0; metadata fallback 3; residual risks 3</p><footer>reports/runtime_permission_probes.json <a href='runtime_permission_probes.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>组合治理</h3></div><p>12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 24 scoped non-actionable issues</p><footer>reports/skill_atlas.json <a href='skill_atlas.html'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运营回路</h3></div><p>1 metadata events; adoption 100.0; missed 0; bad-output 0; risk low</p><footer>reports/adoption_drift_report.json <a href='adoption_drift_report.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>人工批准</h3></div><p>0 active waivers; 1 warning gates still need reviewer decision</p><footer>reports/review_waivers.json <a href='review_waivers.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>注册审计</h3></div><p>yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 3 adapters</p><footer>reports/registry_audit.json + reports/install_simulation.json <a href='registry_audit.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>发布路线</h3></div><p>0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended</p><footer>reports/promotion_decisions.json + reports/upgrade_check.json + docs/migration-v2.md <a href='promotion_decisions.md'>证据</a></footer></article></div>
<div class="gates"><article class='gate pass'><div><span>通过</span><h3>意图画布</h3></div><p>intent confidence 100/100; Intent is clear enough to package the first routeable version.</p><footer>reports/intent-confidence.json <a href='intent-confidence.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>触发实验</h3></div><p>13 trigger cases; 0 misroutes; 0 ambiguous</p><footer>reports/route_scorecard.json <a href='route_scorecard.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>输出实验</h3></div><p>5/5 cases; with-skill 100.0; baseline 0.0; file-backed 1; near-neighbor 1; blind A/B 5; exec 10; command 10; model 0; recorded 0; reviewed 0/5; review pending 5</p><footer>reports/output_quality_scorecard.json <a href='output_quality_scorecard.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>上下文</h3></div><p>initial load 944/1000; quality density 137.7</p><footer>reports/context_budget.json <a href='context_budget.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运行矩阵</h3></div><p>5 / 5 targets pass</p><footer>reports/conformance_matrix.json <a href='conformance_matrix.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>信任报告</h3></div><p>0 secrets; 69 scripts; 3 network-capable scripts; 0 help smoke failures</p><footer>reports/security_trust_report.json <a href='security_trust_report.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限批准</h3></div><p>3/3 permissions approved; gaps 0; required file_write, network, subprocess</p><footer>reports/security_trust_report.json + security/permission_policy.json <a href='../security/permission_policy.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限探针</h3></div><p>4/4 targets probed; native 0; metadata fallback 4; residual risks 4</p><footer>reports/runtime_permission_probes.json <a href='runtime_permission_probes.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>组合治理</h3></div><p>12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 24 scoped non-actionable issues</p><footer>reports/skill_atlas.json <a href='skill_atlas.html'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运营回路</h3></div><p>1 metadata events; adoption 100.0; missed 0; bad-output 0; risk low</p><footer>reports/adoption_drift_report.json <a href='adoption_drift_report.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>人工批准</h3></div><p>0 active waivers; 1 warning gates still need reviewer decision</p><footer>reports/review_waivers.json <a href='review_waivers.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>注册审计</h3></div><p>yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters</p><footer>reports/registry_audit.json + reports/install_simulation.json <a href='registry_audit.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>发布路线</h3></div><p>0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended</p><footer>reports/promotion_decisions.json + reports/upgrade_check.json + docs/migration-v2.md <a href='promotion_decisions.md'>证据</a></footer></article></div>
</section>
<div class="twocol">
@@ -304,16 +304,16 @@
<section id="runtime" class="twocol">
<div class="panel"><h2>运行矩阵</h2><dl class='kv-grid'><div><dt>目标数</dt><dd>5</dd></div><div><dt>通过数</dt><dd>5</dd></div><div><dt>Fail Count</dt><dd>0</dd></div></dl></div>
<div class="panel"><h2>目标编译</h2><dl class='kv-grid'><div><dt>目标数</dt><dd>4</dd></div><div><dt>通过数</dt><dd>4</dd></div><div><dt>Warn Count</dt><dd>0</dd></div><div><dt>Block Count</dt><dd>0</dd></div><div><dt>失败数</dt><dd>0</dd></div></dl></div>
<div class="panel"><h2>目标编译</h2><dl class='kv-grid'><div><dt>目标数</dt><dd>5</dd></div><div><dt>通过数</dt><dd>5</dd></div><div><dt>Warn Count</dt><dd>0</dd></div><div><dt>Block Count</dt><dd>0</dd></div><div><dt>失败数</dt><dd>0</dd></div></dl></div>
</section>
<section class="twocol">
<div class="panel"><h2>上下文</h2><p>initial load 987/1000; quality density 131.7</p></div>
<div class="panel"><h2>上下文</h2><p>initial load 944/1000; quality density 137.7</p></div>
<div class="panel"><h2>编译证据</h2><p>Review reports/compiled_targets.md before packaging to inspect target adapter modes, generated files, preserved semantics, warnings, and unsupported features.</p></div>
</section>
<section id="trust" class="twocol">
<div class="panel"><h2>信任报告</h2><dl class='kv-grid'><div><dt>Secret</dt><dd>0</dd></div><div><dt>脚本数</dt><dd>69</dd></div><div><dt>网络脚本</dt><dd>3</dd></div><div><dt>Help 失败</dt><dd>0</dd></div><div><dt>包体哈希</dt><dd><code>2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368</code></dd></div></dl></div>
<div class="panel"><h2>信任报告</h2><dl class='kv-grid'><div><dt>Secret</dt><dd>0</dd></div><div><dt>脚本数</dt><dd>69</dd></div><div><dt>网络脚本</dt><dd>3</dd></div><div><dt>Help 失败</dt><dd>0</dd></div><div><dt>包体哈希</dt><dd><code>2109ae8e212111b1619d8d728e54c73425fecc174113b45629c656ecceb3fadd</code></dd></div></dl></div>
<div class="panel"><h2>安全边界</h2><p>高风险 secret、远程 inline execution、缺失依赖策略或无法解释的脚本接口应阻断 governed release。</p></div>
</section>
@@ -323,8 +323,8 @@
</section>
<section id="permission-probes" class="twocol">
<div class="panel"><h2>权限探针</h2><p>3/3 targets probed; native 0; metadata fallback 3; residual risks 3</p></div>
<div class="panel"><h2>运行边界</h2><dl class='kv-grid'><div><dt>目标数</dt><dd>3</dd></div><div><dt>通过数</dt><dd>3</dd></div><div><dt>原生执行</dt><dd>0</dd></div><div><dt>Metadata fallback</dt><dd>3</dd></div><div><dt>残余风险</dt><dd>3</dd></div><div><dt>失败数</dt><dd>0</dd></div></dl></div>
<div class="panel"><h2>权限探针</h2><p>4/4 targets probed; native 0; metadata fallback 4; residual risks 4</p></div>
<div class="panel"><h2>运行边界</h2><dl class='kv-grid'><div><dt>目标数</dt><dd>4</dd></div><div><dt>通过数</dt><dd>4</dd></div><div><dt>原生执行</dt><dd>0</dd></div><div><dt>Metadata fallback</dt><dd>4</dd></div><div><dt>残余风险</dt><dd>4</dd></div><div><dt>失败数</dt><dd>0</dd></div></dl></div>
</section>
<section id="atlas" class="twocol">
@@ -343,13 +343,13 @@
</section>
<section id="registry" class="twocol">
<div class="panel"><h2>注册审计</h2><p>yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 3 adapters</p></div>
<div class="panel"><h2>包体元数据</h2><dl class='kv-grid'><div><dt>名称</dt><dd>yao-meta-skill</dd></div><div><dt>版本</dt><dd>1.1.0</dd></div><div><dt>Maturity</dt><dd>governed</dd></div><div><dt>Owner</dt><dd>Yao Team</dd></div><div><dt>License</dt><dd>MIT</dd></div><div><dt>信任级别</dt><dd>local</dd></div><div><dt>目标平台</dt><dd>openai, claude, generic, agent-skills-compatible</dd></div><div><dt>兼容通过</dt><dd>6/6</dd></div><div><dt>归档哈希</dt><dd><code>27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353</code></dd></div></dl></div>
<div class="panel"><h2>注册审计</h2><p>yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters</p></div>
<div class="panel"><h2>包体元数据</h2><dl class='kv-grid'><div><dt>名称</dt><dd>yao-meta-skill</dd></div><div><dt>版本</dt><dd>1.1.0</dd></div><div><dt>Maturity</dt><dd>governed</dd></div><div><dt>Owner</dt><dd>Yao Team</dd></div><div><dt>License</dt><dd>MIT</dd></div><div><dt>信任级别</dt><dd>local</dd></div><div><dt>目标平台</dt><dd>openai, claude, generic, agent-skills-compatible, vscode</dd></div><div><dt>兼容通过</dt><dd>6/6</dd></div><div><dt>归档哈希</dt><dd><code>176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060</code></dd></div></dl></div>
</section>
<section id="release" class="twocol">
<div class="panel"><h2>发布路线</h2><p>0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended</p></div>
<div class="panel"><h2>包体验证</h2><dl class='kv-grid'><div><dt>目标数</dt><dd>3</dd></div><div><dt>Adapter</dt><dd>3</dd></div><div><dt>归档存在</dt><dd></dd></div><div><dt>Zip 条目</dt><dd>492</dd></div><div><dt>失败数</dt><dd>0</dd></div><div><dt>警告数</dt><dd>0</dd></div><div><dt>归档哈希</dt><dd><code>27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353</code></dd></div></dl></div>
<div class="panel"><h2>包体验证</h2><dl class='kv-grid'><div><dt>目标数</dt><dd>4</dd></div><div><dt>Adapter</dt><dd>4</dd></div><div><dt>归档存在</dt><dd></dd></div><div><dt>Zip 条目</dt><dd>493</dd></div><div><dt>失败数</dt><dd>0</dd></div><div><dt>警告数</dt><dd>0</dd></div><div><dt>归档哈希</dt><dd><code>176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060</code></dd></div></dl></div>
</section>
</main>
</body>
+1157 -90
View File
File diff suppressed because it is too large Load Diff
+74 -4
View File
@@ -9,12 +9,12 @@
"subprocess"
],
"summary": {
"target_count": 3,
"pass_count": 3,
"target_count": 4,
"pass_count": 4,
"fail_count": 0,
"native_enforcement_count": 0,
"metadata_fallback_count": 3,
"residual_risk_count": 3,
"metadata_fallback_count": 4,
"residual_risk_count": 4,
"required_capability_count": 3,
"failure_count": 0
},
@@ -243,6 +243,76 @@
"residual_risks": [
"Client-native permission enforcement is not provided by this target; installer or operator must honor metadata."
]
},
{
"target": "vscode",
"status": "pass",
"adapter": "tests/tmp_review_studio/dist/targets/vscode/adapter.json",
"permission_model": "vscode-workspace-trust-plus-metadata",
"native_enforcement": false,
"metadata_fallback_explicit": true,
"assurance": "metadata-fallback-explicit",
"declared_capabilities": [
"file_write",
"network",
"subprocess"
],
"checks": [
{
"key": "adapter-present",
"passed": true,
"detail": "vscode adapter.json is readable"
},
{
"key": "permission-contract-present",
"passed": true,
"detail": "vscode adapter includes permission_contract"
},
{
"key": "target-contract-present",
"passed": true,
"detail": "vscode adapter includes target_permission_contract"
},
{
"key": "source-available",
"passed": true,
"detail": "vscode permission_contract links to an available trust report"
},
{
"key": "declared-capabilities-match",
"passed": true,
"detail": "vscode target_permission_contract mirrors expected capabilities"
},
{
"key": "capability-counts-present",
"passed": true,
"detail": "vscode target_permission_contract includes capability_counts"
},
{
"key": "native-enforcement-boolean",
"passed": true,
"detail": "vscode target_permission_contract declares native_enforcement as a boolean"
},
{
"key": "representation-present",
"passed": true,
"detail": "vscode target_permission_contract declares where permission metadata is represented"
},
{
"key": "operator-note-present",
"passed": true,
"detail": "vscode target_permission_contract includes an operator_note"
},
{
"key": "review-required-matches",
"passed": true,
"detail": "vscode review_required matches whether capabilities are required"
}
],
"failures": [],
"residual_risks": [
"Client-native permission enforcement is not provided by this target; installer or operator must honor metadata."
]
}
],
"failures": [],
+4 -3
View File
@@ -5,11 +5,11 @@ Runtime permission probes verify that generated target adapters expose high-perm
## Summary
- OK: `True`
- Targets probed: `3`
- Passed: `3`
- Targets probed: `4`
- Passed: `4`
- Failed: `0`
- Native enforcement targets: `0`
- Explicit metadata fallbacks: `3`
- Explicit metadata fallbacks: `4`
- Required capabilities: `file_write, network, subprocess`
| Target | Status | Assurance | Native Enforcement | Metadata Fallback | Residual Risk |
@@ -17,6 +17,7 @@ Runtime permission probes verify that generated target adapters expose high-perm
| `openai` | `pass` | `metadata-fallback-explicit` | `False` | `True` | Client-native permission enforcement is not provided by this target; installer or operator must honor metadata. |
| `claude` | `pass` | `metadata-fallback-explicit` | `False` | `True` | Client-native permission enforcement is not provided by this target; installer or operator must honor metadata. |
| `generic` | `pass` | `metadata-fallback-explicit` | `False` | `True` | Client-native permission enforcement is not provided by this target; installer or operator must honor metadata. |
| `vscode` | `pass` | `metadata-fallback-explicit` | `False` | `True` | Client-native permission enforcement is not provided by this target; installer or operator must honor metadata. |
## Failures
+2 -2
View File
@@ -23,7 +23,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 153,
"package_sha256": "2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368"
"package_sha256": "7a8dab0d542d2994adec2045b54559612db36f14db8b7b66e4138fb0435ae3d3"
},
"failures": [],
"warnings": [],
@@ -1247,7 +1247,7 @@
"timed_out": false,
"passed": true,
"has_help_text": true,
"stdout_excerpt": "usage: probe_runtime_permissions.py [-h] [--package-dir PACKAGE_DIR]\n [--target {openai,claude,generic}]\n [--output-json OUTPUT_JSON]\n ",
"stdout_excerpt": "usage: probe_runtime_permissions.py [-h] [--package-dir PACKAGE_DIR]\n [--target {openai,claude,generic,vscode}]\n [--output-json OUTPUT_JSON]\n ",
"stderr_excerpt": ""
},
{
+1 -1
View File
@@ -16,7 +16,7 @@
- Interactive scripts: `0`
- Package hash scope: `source-contract-without-generated-reports`
- Package hash files: `153`
- Package SHA256: `2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368`
- Package SHA256: `7a8dab0d542d2994adec2045b54559612db36f14db8b7b66e4138fb0435ae3d3`
## Failures
+12 -12
View File
@@ -15,8 +15,8 @@ Yao Meta Skill is no longer only a Meta Skill factory. The current working tree
- Bilingual Skill Overview v2 that includes these evidence surfaces.
- Review Studio 2.0 v0 for one-page blocker, warning, evidence-path, review-action, and release-gate review.
- Review Studio Source Refs v0 so every non-pass review action can expose structured relative source/report links with best-effort line numbers.
- Target Compiler v0 so Skill IR compiles into OpenAI, Claude, generic, and Agent Skills compatible target contracts before packaging, including target-specific permission contracts and native behavior contracts.
- IR-first packaging v0 so adapters carry the platform-neutral semantic contract, compiler contract, parity checks, and IR provenance.
- Target Compiler v0 so Skill IR compiles into OpenAI, Claude, generic, Agent Skills compatible, and VS Code / Copilot target contracts before packaging, including target-specific permission contracts and native behavior contracts.
- IR-first packaging v0 so adapters carry the platform-neutral semantic contract, compiler contract, parity checks, IR provenance, and VS Code / Copilot install-scope notes where applicable.
- Registry & Distribution v0 for package metadata, checksum, owner, license, compatibility matrix, and audit reporting.
- Package Verification v0 for generated manifest, target adapters, zip archive safety, archive checksum, and registry parity.
- Install Simulation v0 for local extraction, entrypoint loading, interface loading, report presence, and adapter readability.
@@ -31,7 +31,7 @@ Yao Meta Skill is no longer only a Meta Skill factory. The current working tree
- Review Studio Output Lab actions now link directly to `reports/output_review_decisions.json`, so pending blind A/B reviewer decisions have a concrete template instead of only a general adjudication warning.
- Provider Output Eval Runner v0 so `python3 scripts/yao.py output-exec --provider-runner openai` can collect real provider-backed model evidence through a reviewed OpenAI Responses API compatible runner instead of ad hoc shell glue.
This is still not the final world-class state. Target-native behavior contracts are now explicit, local output-eval command execution is wired, and a provider-backed output runner exists. Review Studio now keeps pending human adjudication visible as a warning instead of treating it as a clean pass. Deeper provider-native execution transforms, real client telemetry capture, installer integration, real provider holdout runs, real human adjudication decisions, and native runtime permission enforcement remain open.
This is still not the final world-class state. Target-native behavior contracts are now explicit, VS Code / Copilot package metadata is auditable, local output-eval command execution is wired, and a provider-backed output runner exists. Review Studio keeps pending human adjudication visible as a warning instead of treating it as a clean pass. Deeper provider-native execution transforms, real client telemetry capture, installer integration, real provider holdout runs, real human adjudication decisions, and native runtime permission enforcement remain open.
## Coverage Matrix
@@ -63,7 +63,7 @@ This is still not the final world-class state. Target-native behavior contracts
### 1. Target-native behavior contracts are landed, but provider execution is still shallow
`scripts/compile_skill.py` now reads Skill IR and emits target-specific contracts for OpenAI, Claude, generic, and Agent Skills compatible outputs. The packager embeds `compiler`, `compiled_contract`, `permission_contract`, `target_permission_contract`, `target_native_contract`, `target_transform`, warnings, and unsupported-feature notes in each adapter. The native contract makes the target surface, activation policy, resource strategy, script strategy, permission enforcement mode, install scope, review artifacts, fallback behavior, and unsupported native features reviewable instead of implicit.
`scripts/compile_skill.py` now reads Skill IR and emits target-specific contracts for OpenAI, Claude, generic, Agent Skills compatible, and VS Code / Copilot outputs. The packager embeds `compiler`, `compiled_contract`, `permission_contract`, `target_permission_contract`, `target_native_contract`, `target_transform`, warnings, and unsupported-feature notes in each adapter. The native contract makes the target surface, activation policy, resource strategy, script strategy, permission enforcement mode, install scope, review artifacts, fallback behavior, and unsupported native features reviewable instead of implicit.
Next move: deepen provider-native execution transforms so OpenAI, Claude, VS Code/Copilot, and generic packages can express and verify behavior through real client or installer capabilities, not only auditable contracts and fallback notes.
@@ -97,22 +97,22 @@ Next move: add real client or installer permission enforcement integration.
| --- | --- |
| Output Eval | `5` cases, with-skill pass rate `100`, baseline pass rate `0`, with file-backed, near-neighbor, boundary coverage, `10` local command-runner execution runs, `0` recorded fixture runs, `0` provider model-executed runs in root release evidence, `10` estimated token counts, provider runner v0 available, `5` blind A/B review pairs, a generated `reports/output_review_decisions.json` template, and `0 / 5` reviewer decisions pending |
| Runtime Conformance | `5 / 5` targets passing |
| Target Compiler | compiled target contracts generated for OpenAI, Claude, generic, and Agent Skills compatible outputs, including target permission contracts and target-native behavior contracts |
| Target Compiler | `5 / 5` compiled target contracts generated for OpenAI, Claude, generic, Agent Skills compatible, and VS Code / Copilot outputs, including target permission contracts and target-native behavior contracts |
| Trust | `0` secret findings, `1` pinned dependency file, `9` declared internal modules, `3 / 3` network-capable scripts covered by bounded host policy, `60 / 60` CLI help smoke checks passing across `69` scripts, source-contract hash scope explicit |
| Permission Governance | `3 / 3` required high-permission capabilities approved, `0` missing, `0` invalid, `0` expired |
| Runtime Permission Probes | `3 / 3` target adapters probed, `0` native-enforcement adapters, `3` explicit metadata fallbacks, `3` residual risks retained for reviewer visibility |
| Runtime Permission Probes | `4 / 4` target adapters probed, `0` native-enforcement adapters, `4` explicit metadata fallbacks, `4` residual risks retained for reviewer visibility |
| Skill Atlas | `12` scanned skills, `1` actionable root skill, `0` actionable route collisions, `0` actionable owner gaps, `0` actionable stale skills, `24` scoped non-actionable issue signals retained for visibility |
| Registry Audit | package metadata generated with version, owner, license, source checksum, archive checksum, Skill IR provenance, and compatibility matrix |
| Package Verification | `3 / 3` target adapters present, archive verified, `492` zip entries, `0` failures, `0` warnings |
| Install Simulation | archive with `492` entries extracted into a local verification root, entrypoint/manifest/interface loaded, reports present, `3` adapters readable, `0` failures, `0` warnings |
| Package Verification | `4 / 4` target adapters present, archive verified, `493` zip entries, `0` failures, `0` warnings |
| Install Simulation | archive with `493` entries extracted into a local verification root, entrypoint/manifest/interface loaded, reports present, `4` adapters readable, `0` failures, `0` warnings |
| Upgrade Check | current package declares `minor` over the 1.0.0 baseline, recommended bump is `minor`, and release notes include added targets plus checksum changes |
| Adoption Drift | `1` metadata-only review event, `0` adoption samples, adoption `0`, risk band `low`; raw `reports/telemetry_events.jsonl` is gitignored and blocked from zip packages |
| Adoption Drift | `1` metadata-only activation event, `1` adoption sample, adoption `100.0`, risk band `low`; raw `reports/telemetry_events.jsonl` is gitignored and blocked from zip packages |
| Review Waivers | ledger generated; current release has `1` warning gate that still needs reviewer decision or a time-bounded waiver; blockers remain non-waivable in v0 |
| Review Annotations | ledger generated; current release has `0` reviewer annotations and `0` open annotation blockers |
| Review Studio | decision `review`, world-class score `92`, `13` gates, `0` blockers, `2` warnings, `2` review actions, `0` open annotation blockers |
| IR-first Packaging | `openai`, `claude`, and `generic` adapters include compiler contracts, permission contracts, target-native behavior contracts, IR provenance, and semantic parity checks |
| Context Budget | initial load `987/1000`, under the production budget |
| CI | `make ci-test` target count is now `56` after adding Review Annotations |
| IR-first Packaging | `openai`, `claude`, `generic`, and `vscode` adapters include compiler contracts, permission contracts, target-native behavior contracts, IR provenance, semantic parity checks, and install-scope notes where applicable |
| Context Budget | initial load `944/1000`, under the production budget |
| CI | `make ci-test` target count is `56` after the VS Code package target update |
## Next Highest-Leverage Moves
+6 -6
View File
@@ -602,14 +602,14 @@
<h1 id="report-title"><span data-lang="zh-CN">技能审计报告</span><span data-lang="en">Yao Meta Skill Audit Report</span></h1>
<p class="lead"><span data-lang="zh-CN">这份报告默认使用中文简体,把新 Skill 的定位、指标、原理、契约、质量、风险、资产和迭代路线整理为一份可审计的 HTML 报告。</span><span data-lang="en">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.</span></p>
<div class="hero-meta"><span><span data-lang="zh-CN">技能名称:yao-meta-skill</span><span data-lang="en">Skill name: yao-meta-skill</span></span><span><span data-lang="zh-CN">成熟度:治理</span><span data-lang="en">Maturity: governed</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-03-31</span><span data-lang="en">Updated: 2026-03-31</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></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">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span></li><li><span data-lang="zh-CN">Skill 作者、复用团队和后续 reviewer。</span><span data-lang="en">Skill 作者、复用团队和后续 reviewer。</span></li><li><span data-lang="zh-CN">创建完成后建议先打开 reports/skill-overview.html,再继续扩展包体。</span><span data-lang="en">创建完成后建议先打开 reports/skill-overview.html,再继续扩展包体。</span></li></ul>
</aside>
</div>
<div class="score-strip" aria-label="报告关键指标"><article class='score-chip'><span>完整度</span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md 已存在,是 Skill 的入口。</span></small></article><article class='score-chip'><span>触发清晰</span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></small></article><article class='score-chip'><span>证据充分</span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></small></article><article class='score-chip'><span>上下文成本</span><strong>42</strong><i style='--score:42%'></i><small><span data-lang="zh-CN">入口约 365 个词/字,references 约 14388 个词/字。</span><span data-lang="en">入口约 365 个词/字,references 约 14388 个词/字。</span></small></article></div>
<div class="score-strip" aria-label="报告关键指标"><article class='score-chip'><span>完整度</span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md 已存在,是 Skill 的入口。</span></small></article><article class='score-chip'><span>触发清晰</span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></small></article><article class='score-chip'><span>证据充分</span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></small></article><article class='score-chip'><span>上下文成本</span><strong>42</strong><i style='--score:42%'></i><small><span data-lang="zh-CN">入口约 350 个词/字,references 约 14450 个词/字。</span><span data-lang="en">入口约 350 个词/字,references 约 14450 个词/字。</span></small></article></div>
</section>
<section id="overview">
@@ -641,10 +641,10 @@
<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>
<ol class='metric-summary-list'><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>完整度</b><em>100</em><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md 已存在,是 Skill 的入口。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>触发清晰</b><em>100</em><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>证据充分</b><em>100</em><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>可维护性</b><em>100</em><small><span data-lang="zh-CN">SKILL.md 约 365 个词/字。</span><span data-lang="en">SKILL.md 约 365 个词/字。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>可迁移性</b><em>100</em><small><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml 已存在。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">关注</span><span data-lang="en">Watch</span></span><b>上下文成本</b><em>42</em><small><span data-lang="zh-CN">入口约 365 个词/字,references 约 14388 个词/字。</span><span data-lang="en">入口约 365 个词/字,references 约 14388 个词/字。</span></small></li></ol>
<ol class='metric-summary-list'><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>完整度</b><em>100</em><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md 已存在,是 Skill 的入口。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>触发清晰</b><em>100</em><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>证据充分</b><em>100</em><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>可维护性</b><em>100</em><small><span data-lang="zh-CN">SKILL.md 约 350 个词/字。</span><span data-lang="en">SKILL.md 约 350 个词/字。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>可迁移性</b><em>100</em><small><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml 已存在。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">关注</span><span data-lang="en">Watch</span></span><b>上下文成本</b><em>42</em><small><span data-lang="zh-CN">入口约 350 个词/字,references 约 14450 个词/字。</span><span data-lang="en">入口约 350 个词/字,references 约 14450 个词/字。</span></small></li></ol>
</article>
</div>
<div class="metric-grid"><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>完整度</span><strong>100</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 已存在,是 Skill 的入口。</span></li><li><span data-lang="zh-CN">README.md 已存在,便于人工阅读。</span><span data-lang="en">README.md 已存在,便于人工阅读。</span></li><li><span data-lang="zh-CN">agents/interface.yaml 已存在,便于跨平台适配。</span><span data-lang="en">agents/interface.yaml 已存在,便于跨平台适配。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>触发清晰</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">frontmatter description 已存在,具备基础路由面。</span></li><li><span data-lang="zh-CN">description 有足够长度说明任务边界。</span><span data-lang="en">description 有足够长度说明任务边界。</span></li><li><span data-lang="zh-CN">description 已包含使用场景或排除边界信号。</span><span data-lang="en">description 已包含使用场景或排除边界信号。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>证据充分</span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></li><li><span data-lang="zh-CN">skill-ir.json 已存在。</span><span data-lang="en">skill-ir.json 已存在。</span></li><li><span data-lang="zh-CN">compiled_targets.json 已存在。</span><span data-lang="en">compiled_targets.json 已存在。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>可维护性</span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 约 365 个词/字。</span><span data-lang="en">SKILL.md 约 365 个词/字。</span></li><li><span data-lang="zh-CN">入口文件保持克制,可维护性较好。</span><span data-lang="en">入口文件保持克制,可维护性较好。</span></li><li><span data-lang="zh-CN">references/ 已承载扩展指导。</span><span data-lang="en">references/ 已承载扩展指导。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>可迁移性</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 已存在。</span></li><li><span data-lang="zh-CN">manifest.json 已存在。</span><span data-lang="en">manifest.json 已存在。</span></li><li><span data-lang="zh-CN">目标平台或 adapter target 已声明。</span><span data-lang="en">目标平台或 adapter target 已声明。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>上下文成本</span><strong>42</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">入口约 365 个词/字,references 约 14388 个词/字。</span><span data-lang="en">入口约 365 个词/字,references 约 14388 个词/字。</span></li><li><span data-lang="zh-CN">分数越高代表上下文成本越低。</span><span data-lang="en">分数越高代表上下文成本越低。</span></li><li><span data-lang="zh-CN">上下文成本偏高,建议压缩入口或拆分 references。</span><span data-lang="en">上下文成本偏高,建议压缩入口或拆分 references。</span></li></ul></div></article></div>
<div class="metric-grid"><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>完整度</span><strong>100</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 已存在,是 Skill 的入口。</span></li><li><span data-lang="zh-CN">README.md 已存在,便于人工阅读。</span><span data-lang="en">README.md 已存在,便于人工阅读。</span></li><li><span data-lang="zh-CN">agents/interface.yaml 已存在,便于跨平台适配。</span><span data-lang="en">agents/interface.yaml 已存在,便于跨平台适配。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>触发清晰</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">frontmatter description 已存在,具备基础路由面。</span></li><li><span data-lang="zh-CN">description 有足够长度说明任务边界。</span><span data-lang="en">description 有足够长度说明任务边界。</span></li><li><span data-lang="zh-CN">description 已包含使用场景或排除边界信号。</span><span data-lang="en">description 已包含使用场景或排除边界信号。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>证据充分</span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></li><li><span data-lang="zh-CN">skill-ir.json 已存在。</span><span data-lang="en">skill-ir.json 已存在。</span></li><li><span data-lang="zh-CN">compiled_targets.json 已存在。</span><span data-lang="en">compiled_targets.json 已存在。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>可维护性</span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 约 350 个词/字。</span><span data-lang="en">SKILL.md 约 350 个词/字。</span></li><li><span data-lang="zh-CN">入口文件保持克制,可维护性较好。</span><span data-lang="en">入口文件保持克制,可维护性较好。</span></li><li><span data-lang="zh-CN">references/ 已承载扩展指导。</span><span data-lang="en">references/ 已承载扩展指导。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>可迁移性</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 已存在。</span></li><li><span data-lang="zh-CN">manifest.json 已存在。</span><span data-lang="en">manifest.json 已存在。</span></li><li><span data-lang="zh-CN">目标平台或 adapter target 已声明。</span><span data-lang="en">目标平台或 adapter target 已声明。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>上下文成本</span><strong>42</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">入口约 350 个词/字,references 约 14450 个词/字。</span><span data-lang="en">入口约 350 个词/字,references 约 14450 个词/字。</span></li><li><span data-lang="zh-CN">分数越高代表上下文成本越低。</span><span data-lang="en">分数越高代表上下文成本越低。</span></li><li><span data-lang="zh-CN">上下文成本偏高,建议压缩入口或拆分 references。</span><span data-lang="en">上下文成本偏高,建议压缩入口或拆分 references。</span></li></ul></div></article></div>
</div>
</div>
</div>
@@ -720,7 +720,7 @@
<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,核心语义可先于平台打包被审查和迁移。</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">已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。</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">上下文成本需要补强:入口约 365 个词/字,references 约 14388 个词/字。</span><span data-lang="en">上下文成本需要补强:入口约 365 个词/字,references 约 14388 个词/字。</span></td><td><span data-lang="zh-CN">纳入下一轮修复</span><span data-lang="en">Fix next</span></td></tr></tbody>
<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,核心语义可先于平台打包被审查和迁移。</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">已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。</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">上下文成本需要补强:入口约 350 个词/字,references 约 14450 个词/字。</span><span data-lang="en">上下文成本需要补强:入口约 350 个词/字,references 约 14450 个词/字。</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">
@@ -757,7 +757,7 @@
<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">误触发风险</span></td><td><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">输出漂移风险</span><span data-lang="en">输出漂移风险</span></td><td><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">证据不足风险</span><span data-lang="en">证据不足风险</span></td><td><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">包体膨胀风险</span><span data-lang="en">包体膨胀风险</span></td><td><span data-lang="zh-CN">SKILL.md 约 365 个词/字。</span><span data-lang="en">SKILL.md 约 365 个词/字。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">跨平台迁移风险</span><span data-lang="en">跨平台迁移风险</span></td><td><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml 已存在。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr></tbody>
<tbody><tr><td><span data-lang="zh-CN">误触发风险</span><span data-lang="en">误触发风险</span></td><td><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">输出漂移风险</span><span data-lang="en">输出漂移风险</span></td><td><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">证据不足风险</span><span data-lang="en">证据不足风险</span></td><td><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">包体膨胀风险</span><span data-lang="en">包体膨胀风险</span></td><td><span data-lang="zh-CN">SKILL.md 约 350 个词/字。</span><span data-lang="en">SKILL.md 约 350 个词/字。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">跨平台迁移风险</span><span data-lang="en">跨平台迁移风险</span></td><td><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml 已存在。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr></tbody>
</table>
</div>
</div>
+57 -28
View File
@@ -75,7 +75,7 @@
"label": "可维护性",
"score": 100,
"reasons": [
"SKILL.md 约 365 个词/字。",
"SKILL.md 约 350 个词/字。",
"入口文件保持克制,可维护性较好。",
"references/ 已承载扩展指导。",
"scripts/ 已承载确定性逻辑。",
@@ -96,7 +96,7 @@
"label": "上下文成本",
"score": 42,
"reasons": [
"入口约 365 个词/字,references 约 14388 个词/字。",
"入口约 350 个词/字,references 约 14450 个词/字。",
"分数越高代表上下文成本越低。",
"上下文成本偏高,建议压缩入口或拆分 references。"
]
@@ -200,7 +200,7 @@
"已生成 Output Review Adjudication,可记录盲评决策、一致率和待评审项。"
],
"gaps": [
"上下文成本需要补强:入口约 365 个词/字,references 约 14388 个词/字。"
"上下文成本需要补强:入口约 350 个词/字,references 约 14450 个词/字。"
],
"recommendations": [
"先改触发边界,再扩展工作流。",
@@ -265,7 +265,7 @@
"name": "包体膨胀风险",
"impact": 2,
"probability": 1,
"signal": "SKILL.md 约 365 个词/字。",
"signal": "SKILL.md 约 350 个词/字。",
"response": "先补证据和边界,再增加包体复杂度。"
},
{
@@ -716,7 +716,7 @@
"benchmark_highlights": [],
"skill_ir": {
"schema_version": "2.0.0",
"target_count": 4,
"target_count": 5,
"trigger_samples": 8,
"output_eval_cases": 3
},
@@ -724,8 +724,8 @@
"ok": true,
"schema_version": "1.0",
"summary": {
"target_count": 4,
"pass_count": 4,
"target_count": 5,
"pass_count": 5,
"warn_count": 0,
"block_count": 0,
"failure_count": 0,
@@ -790,6 +790,22 @@
],
"unsupported_features": [],
"warnings": []
},
{
"target": "vscode",
"status": "pass",
"adapter_mode": "vscode-agent-skills-adapter",
"degradation_strategy": "agent-skills-source-with-vscode-notes",
"native_surface": "VS Code/Copilot Agent Skills project or user scope",
"permission_enforcement": "client-or-workspace-trust",
"generated_files": [
"targets/vscode/adapter.json",
"targets/vscode/README.md"
],
"unsupported_features": [
"VS Code installation scope is documented but not installed by this compiler"
],
"warnings": []
}
],
"failures": [],
@@ -871,12 +887,12 @@
"runtime_permissions": {
"ok": true,
"summary": {
"target_count": 3,
"pass_count": 3,
"target_count": 4,
"pass_count": 4,
"fail_count": 0,
"native_enforcement_count": 0,
"metadata_fallback_count": 3,
"residual_risk_count": 3,
"metadata_fallback_count": 4,
"residual_risk_count": 4,
"required_capability_count": 3,
"failure_count": 0
},
@@ -915,6 +931,16 @@
"residual_risks": [
"Client-native permission enforcement is not provided by this target; installer or operator must honor metadata."
]
},
{
"target": "vscode",
"status": "pass",
"assurance": "metadata-fallback-explicit",
"native_enforcement": false,
"metadata_fallback_explicit": true,
"residual_risks": [
"Client-native permission enforcement is not provided by this target; installer or operator must honor metadata."
]
}
],
"failures": []
@@ -941,7 +967,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 153,
"package_sha256": "2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368"
"package_sha256": "2109ae8e212111b1619d8d728e54c73425fecc174113b45629c656ecceb3fadd"
},
"skill_atlas": {
"skill_count": 12,
@@ -967,7 +993,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"maturity": "governed",
"owner": "Yao Team",
@@ -975,8 +1002,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368",
"archive_sha256": "27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353"
"package_sha256": "2109ae8e212111b1619d8d728e54c73425fecc174113b45629c656ecceb3fadd",
"archive_sha256": "176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060"
},
"compatibility": {
"openai": "pass",
@@ -1007,7 +1034,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353",
"archive_sha256": "176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1020,11 +1047,11 @@
"package_verification": {
"ok": true,
"summary": {
"target_count": 3,
"adapter_count": 3,
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353",
"archive_entry_count": 492,
"archive_sha256": "176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060",
"archive_entry_count": 493,
"failure_count": 0,
"warning_count": 0
},
@@ -1035,12 +1062,12 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 492,
"archive_entry_count": 493,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
"interface_loaded": true,
"adapter_count": 3,
"adapter_count": 4,
"install_root_is_temp": false,
"failure_count": 0,
"warning_count": 0
@@ -1054,7 +1081,7 @@
"declared_bump": "minor",
"recommended_bump": "minor",
"breaking_change_count": 0,
"added_target_count": 1,
"added_target_count": 2,
"metadata_change_count": 1,
"checksum_change_count": 2,
"failure_count": 0,
@@ -1063,7 +1090,8 @@
"upgrade_diff": {
"name_changed": false,
"added_targets": [
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"removed_targets": [],
"compatibility_changes": [
@@ -1097,18 +1125,18 @@
{
"field": "archive_sha256",
"from": "",
"to": "27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353"
"to": "176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368"
"to": "2109ae8e212111b1619d8d728e54c73425fecc174113b45629c656ecceb3fadd"
}
]
},
"release_notes": [
"Recommended version bump: minor.",
"Added targets: agent-skills-compatible.",
"Added targets: agent-skills-compatible, vscode.",
"Package or archive checksum changed; reviewers should verify package artifacts before release.",
"Package verification evidence: reports/package_verification.md."
],
@@ -1250,7 +1278,8 @@
"targets": [
"openai",
"claude",
"generic"
"generic",
"vscode"
],
"maturity_tier": "governed",
"skill_archetype": "governed",
+2 -1
View File
@@ -57,7 +57,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"resources": [
"scripts/adjudicate_output_review.py",
+8 -6
View File
@@ -18,14 +18,15 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
]
},
"summary": {
"declared_bump": "minor",
"recommended_bump": "minor",
"breaking_change_count": 0,
"added_target_count": 1,
"added_target_count": 2,
"metadata_change_count": 1,
"checksum_change_count": 2,
"failure_count": 0,
@@ -34,7 +35,8 @@
"upgrade_diff": {
"name_changed": false,
"added_targets": [
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"removed_targets": [],
"compatibility_changes": [
@@ -68,18 +70,18 @@
{
"field": "archive_sha256",
"from": "",
"to": "27fb62524da6ed2ccda448b7725e0154ee0fd3eccd4fe69a88494e67f4050353"
"to": "176d93befb446985aaff7cd8325b05c4858da13177cb13db82d210aa2d264060"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "2984db5f8d02b147c86bf259679e247a10a6fa495d123032be46c2e7fdaf8368"
"to": "7a8dab0d542d2994adec2045b54559612db36f14db8b7b66e4138fb0435ae3d3"
}
]
},
"release_notes": [
"Recommended version bump: minor.",
"Added targets: agent-skills-compatible.",
"Added targets: agent-skills-compatible, vscode.",
"Package or archive checksum changed; reviewers should verify package artifacts before release.",
"Package verification evidence: reports/package_verification.md."
],
+2 -2
View File
@@ -9,7 +9,7 @@
## Upgrade Diff
- Added targets: `agent-skills-compatible`
- Added targets: `agent-skills-compatible, vscode`
- Removed targets: `none`
- Compatibility changes: `3`
- Metadata changes: `1`
@@ -18,7 +18,7 @@
## Release Notes
- Recommended version bump: minor.
- Added targets: agent-skills-compatible.
- Added targets: agent-skills-compatible, vscode.
- Package or archive checksum changed; reviewers should verify package artifacts before release.
- Package verification evidence: reports/package_verification.md.
+11 -3
View File
@@ -87,12 +87,14 @@ TARGET_TRANSFORMS: dict[str, dict[str, Any]] = {
"unsupported_features": [],
},
"vscode": {
"adapter_mode": "agent-skills-compatible-project-or-user-scope",
"generated_files": ["SKILL.md", "agents/interface.yaml"],
"adapter_mode": "vscode-agent-skills-adapter",
"generated_files": ["targets/vscode/adapter.json", "targets/vscode/README.md"],
"metadata_mapping": {
"name": "folder-name-and-SKILL.md::frontmatter.name",
"description": "SKILL.md::frontmatter.description",
"interface": "agents/interface.yaml",
"permissions": "targets/vscode/adapter.json::target_permission_contract",
"install_scope": "targets/vscode/README.md",
},
"preserved_semantics": ["trigger", "workflow", "resources", "eval-plan", "risk", "governance", "runtime", "trust", "permissions"],
"unsupported_features": ["VS Code installation scope is documented but not installed by this compiler"],
@@ -265,6 +267,12 @@ TARGET_PERMISSION_MODELS = {
"representation": "targets/generic/adapter.json::target_permission_contract",
"operator_note": "Generic target exposes permission metadata for downstream clients to enforce or review.",
},
"vscode": {
"model": "vscode-workspace-trust-plus-metadata",
"native_enforcement": False,
"representation": "targets/vscode/adapter.json::target_permission_contract and targets/vscode/README.md install notes",
"operator_note": "VS Code target relies on project or user skill installation plus VS Code workspace trust; Yao preserves permission metadata for reviewer and installer checks.",
},
}
@@ -545,7 +553,7 @@ def compile_target_contract(skill_dir: Path, target: str) -> dict[str, Any]:
"preserved_semantics": [],
"unsupported_features": [],
}
if target not in declared and not (target == "agent-skills" and "agent-skills-compatible" in declared):
if target not in declared and not (target in {"agent-skills", "vscode"} and "agent-skills-compatible" in declared):
warnings.append(f"Target is not declared in Skill IR or interface metadata: {target}")
if not sources["ir"]:
warnings.append("Skill IR is missing; compiler used frontmatter fallback")
+65 -5
View File
@@ -147,13 +147,17 @@ def build_semantic_contract(
"targets": target_values,
"source_files_count": count_list(ir, "source_files") if ir else 0,
}
alias_declared = (
platform in {"agent-skills", "vscode"} and "agent-skills-compatible" in target_values
)
semantic_parity = {
"source": "skill-ir" if ir else "frontmatter-fallback",
"ir_source": ir_source,
"name_matches_ir": bool(ir) and frontmatter_name == name,
"description_matches_ir": bool(ir) and frontmatter_description == description,
"platform_declared_in_ir": platform in target_values
or (platform == "generic" and "agent-skills-compatible" in target_values),
or (platform == "generic" and "agent-skills-compatible" in target_values)
or alias_declared,
"platform_declared_in_interface": platform in adapter_targets,
"display_name_present": bool(interface.get("display_name")),
"default_prompt_present": bool(interface.get("default_prompt")),
@@ -356,6 +360,44 @@ PLATFORM_CONTRACTS = {
"shell": "compatibility.execution.shell",
},
},
"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",
],
"required_files": ["targets/vscode/adapter.json", "targets/vscode/README.md"],
"field_mapping": {
"name": "SKILL.md::frontmatter.name and folder name",
"description": "SKILL.md::frontmatter.description",
"display_name": "agents/interface.yaml::interface.display_name",
"execution_context": "compatibility.execution.context",
"permissions": "adapter.target_permission_contract",
},
},
}
EXCLUDED_ARCHIVE_PARTS = {".git", "__pycache__", ".venv", "venv", "node_modules", "dist"}
@@ -463,6 +505,24 @@ def write_adapter(skill_dir: Path, out_dir: Path, platform: str) -> Path:
encoding="utf-8",
)
payload["install_hint"] = f"Use the packaged skill directly; this target relies on SKILL.md and optional neutral metadata."
elif platform == "vscode":
notes = target_dir / "README.md"
native = payload["target_native_contract"]
notes.write_text(
f"# VS Code / Copilot Agent Skills Package\n\n"
f"Install `{skill_dir.name}` as a VS Code user or project scoped Agent Skill. Keep the folder name aligned with `SKILL.md` frontmatter name.\n\n"
f"Native surface: {native['native_surface']}.\n\n"
f"Activation: {native['activation']['policy']}\n\n"
f"Resources: {native['resources']['strategy']}\n\n"
f"Scripts: {native['scripts']['strategy']}\n\n"
f"Permission model: {payload['target_permission_contract']['permission_model']}. "
"Review `target_permission_contract`, workspace trust, and `reports/security_trust_report.md` before running scripts.\n\n"
"This adapter does not perform automatic VS Code installation; it preserves the reviewed source package plus install notes.\n",
encoding="utf-8",
)
payload["install_hint"] = (
"Install the package as a VS Code user or project scoped Agent Skill; use targets/vscode/README.md for scope and trust notes."
)
else:
payload["install_hint"] = f"Use {skill_dir.name} as an Agent Skills compatible package."
path = target_dir / "adapter.json"
@@ -511,9 +571,9 @@ def validate_exports(out_dir: Path, expectations: dict) -> dict:
required_targets = expectations.get("required_targets", [])
required_fields = expectations.get("required_fields", [])
required_by_target = {
"openai": expectations.get("openai_required_files", []),
"claude": expectations.get("claude_required_files", []),
"generic": expectations.get("generic_required_files", []),
key[: -len("_required_files")]: value
for key, value in expectations.items()
if key.endswith("_required_files")
}
for target in required_targets:
@@ -534,7 +594,7 @@ def validate_exports(out_dir: Path, expectations: dict) -> dict:
def main() -> None:
parser = argparse.ArgumentParser(description="Generate lightweight cross-platform packaging artifacts.")
parser.add_argument("skill_dir", help="Path to the skill directory")
parser.add_argument("--platform", action="append", default=[], help="Target platform: openai, claude, generic")
parser.add_argument("--platform", action="append", default=[], help="Target platform: openai, claude, generic, vscode")
parser.add_argument("--output-dir", default="dist", help="Output directory")
parser.add_argument("--expectations", help="JSON file describing packaging expectations")
parser.add_argument("--zip", action="store_true", help="Create a zip package")
+3
View File
@@ -129,6 +129,7 @@ compatibility:
- "openai"
- "claude"
- "generic"
- "vscode"
activation:
mode: "manual"
paths: []
@@ -143,6 +144,7 @@ compatibility:
openai: "metadata-adapter"
claude: "neutral-source-plus-adapter"
generic: "neutral-source"
vscode: "agent-skills-source-with-vscode-notes"
"""
@@ -213,6 +215,7 @@ def build_manifest(name: str, mode: str, archetype: str) -> dict:
"claude",
"generic",
"agent-skills-compatible",
"vscode",
],
"factory_components": [
"references",
+1 -1
View File
@@ -10,7 +10,7 @@ except ImportError: # pragma: no cover
yaml = None
DEFAULT_TARGETS = ["openai", "claude", "generic"]
DEFAULT_TARGETS = ["openai", "claude", "generic", "vscode"]
def display_path(path: Path, root: Path) -> str:
+7 -6
View File
@@ -108,12 +108,13 @@ def verify_package(
field in adapter,
f"{target} adapter includes field: {field}",
)
for target, key in (
("openai", "openai_required_files"),
("claude", "claude_required_files"),
("generic", "generic_required_files"),
):
for rel in expectations.get(key, []):
required_files_by_target = {
key[: -len("_required_files")]: value
for key, value in expectations.items()
if key.endswith("_required_files")
}
for target, required_files in required_files_by_target.items():
for rel in required_files:
add_check(checks, failures, f"{target}-file-{rel}", (package_dir / rel).exists(), f"Package contains {rel}")
archive_path = package_dir / f"{skill_dir.name}.zip"
+2 -1
View File
@@ -280,7 +280,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"source_files": [
"SKILL.md",
+2 -1
View File
@@ -16,7 +16,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"resources": [
"scripts/adjudicate_output_review.py",
+26
View File
@@ -0,0 +1,26 @@
{
"platform": "vscode",
"canonical_metadata": "agents/interface.yaml",
"required_generated_file": "targets/vscode/README.md",
"required_fields": [
"canonical_format",
"activation_mode",
"execution_context",
"shell",
"trust_level",
"remote_inline_execution",
"degradation_strategy",
"portability_profile",
"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"
]
}
+7 -1
View File
@@ -39,6 +39,8 @@ def main() -> None:
"claude",
"--platform",
"generic",
"--platform",
"vscode",
"--expectations",
str(EXPECTATIONS),
"--output-dir",
@@ -54,7 +56,7 @@ def main() -> None:
raise SystemExit(proc.returncode)
failures = []
for name in ("openai", "claude", "generic"):
for name in ("openai", "claude", "generic", "vscode"):
snapshot = json.loads((SNAPSHOTS / f"{name}_adapter.json").read_text(encoding="utf-8"))
adapter = json.loads((TMP / "targets" / name / "adapter.json").read_text(encoding="utf-8"))
if adapter.get("platform") != snapshot["platform"]:
@@ -152,6 +154,10 @@ def main() -> None:
readme = (TMP / "targets" / "claude" / "README.md").read_text(encoding="utf-8")
if "Native surface:" not in readme or "Activation:" not in readme:
failures.append(f"{name}: generated README does not describe native behavior")
if name == "vscode":
readme = (TMP / "targets" / "vscode" / "README.md").read_text(encoding="utf-8")
if "VS Code / Copilot Agent Skills Package" not in readme or "workspace trust" not in readme:
failures.append(f"{name}: generated README does not describe VS Code install and trust behavior")
report = {"ok": not failures, "failures": failures}
print(json.dumps(report, ensure_ascii=False, indent=2))
+5 -3
View File
@@ -44,6 +44,8 @@ def main() -> None:
"claude",
"--target",
"generic",
"--target",
"vscode",
"--output-json",
str(output_json),
"--output-md",
@@ -54,13 +56,13 @@ def main() -> None:
payload = json.loads(proc.stdout)
assert payload["ok"], payload
assert payload["schema_version"] == "1.0", payload
assert payload["summary"]["target_count"] == 3, payload
assert payload["summary"]["pass_count"] == 3, payload
assert payload["summary"]["target_count"] == 4, payload
assert payload["summary"]["pass_count"] == 4, payload
assert output_json.exists(), output_json
assert output_md.exists(), output_md
assert "Compiled Targets" in output_md.read_text(encoding="utf-8")
by_target = {item["target"]: item for item in payload["targets"]}
for target in ("openai", "claude", "generic"):
for target in ("openai", "claude", "generic", "vscode"):
item = by_target[target]
assert item["compiler"]["name"] == "yao-skill-ir-compiler", item
assert item["compiler"]["source"] == "skill-ir", item
+3 -1
View File
@@ -40,6 +40,8 @@ def build_package(out_dir: Path) -> dict:
"claude",
"--platform",
"generic",
"--platform",
"vscode",
"--expectations",
str(EXPECTATIONS),
"--output-dir",
@@ -85,7 +87,7 @@ def main() -> None:
assert payload["summary"]["entrypoint_loaded"], payload
assert payload["summary"]["manifest_loaded"], payload
assert payload["summary"]["interface_loaded"], payload
assert payload["summary"]["adapter_count"] == 3, payload
assert payload["summary"]["adapter_count"] == 4, payload
assert not payload["failures"], payload
assert "Install Simulation" in (TMP / "install_simulation.md").read_text(encoding="utf-8")
+4 -2
View File
@@ -40,6 +40,8 @@ def build_package(out_dir: Path) -> dict:
"claude",
"--platform",
"generic",
"--platform",
"vscode",
"--expectations",
str(EXPECTATIONS),
"--output-dir",
@@ -84,8 +86,8 @@ def main() -> None:
payload = valid["payload"]
assert valid["ok"], valid
assert payload["ok"], payload
assert payload["summary"]["target_count"] == 3, payload
assert payload["summary"]["adapter_count"] == 3, payload
assert payload["summary"]["target_count"] == 4, payload
assert payload["summary"]["adapter_count"] == 4, payload
assert payload["summary"]["archive_present"], payload
assert payload["summary"]["archive_sha256"], payload
assert not payload["failures"], payload
+1
View File
@@ -59,6 +59,7 @@ def main() -> None:
assert package["compatibility"]["openai"] == "pass", package
assert package["compatibility"]["claude"] == "pass", package
assert package["compatibility"]["generic"] == "pass", package
assert package["compatibility"]["vscode"] == "pass", package
assert (registry_dir / "index.json").exists(), registry_dir
assert (registry_dir / "packages" / "yao-meta-skill.json").exists(), registry_dir
assert output_json.exists(), output_json
+4 -2
View File
@@ -59,6 +59,8 @@ def main() -> None:
"claude",
"--platform",
"generic",
"--platform",
"vscode",
"--expectations",
str(ROOT / "evals" / "packaging_expectations.json"),
"--output-dir",
@@ -266,7 +268,7 @@ def main() -> None:
assert "gaps 0" in permission_gate["detail"], permission_gate
permission_runtime_gate = next(item for item in payload["gates"] if item["key"] == "permission-runtime")
assert permission_runtime_gate["status"] == "pass", permission_runtime_gate
assert "metadata fallback 3" in permission_runtime_gate["detail"], permission_runtime_gate
assert "metadata fallback 4" in permission_runtime_gate["detail"], permission_runtime_gate
assert "native 0" in permission_runtime_gate["detail"], permission_runtime_gate
intent_gate = next(item for item in payload["gates"] if item["key"] == "intent-canvas")
assert intent_gate["status"] == "pass", intent_gate
@@ -300,7 +302,7 @@ def main() -> None:
assert full_payload["data"]["review_annotations"]["summary"]["annotation_count"] == 0, full_payload["data"]["review_annotations"]
assert full_payload["data"]["compiled_targets"]["summary"]["target_count"] >= 4, full_payload["data"]["compiled_targets"]
assert full_payload["data"]["compiled_targets"]["summary"]["block_count"] == 0, full_payload["data"]["compiled_targets"]
assert full_payload["data"]["runtime_permissions"]["summary"]["metadata_fallback_count"] == 3, full_payload["data"]["runtime_permissions"]
assert full_payload["data"]["runtime_permissions"]["summary"]["metadata_fallback_count"] == 4, full_payload["data"]["runtime_permissions"]
assert full_payload["evidence_paths"]["runtime_permissions"] == "reports/runtime_permission_probes.md", full_payload["evidence_paths"]
action_keys = {item["gate_key"] for item in full_payload["review_actions"]}
assert action_keys == {"output-lab", "review-waivers"}, full_payload["review_actions"]
+6 -4
View File
@@ -40,6 +40,8 @@ def main() -> None:
"claude",
"--platform",
"generic",
"--platform",
"vscode",
"--expectations",
str(ROOT / "evals" / "packaging_expectations.json"),
"--output-dir",
@@ -65,12 +67,12 @@ def main() -> None:
assert probe["ok"], probe
payload = probe["payload"]
summary = payload["summary"]
assert summary["target_count"] == 3, summary
assert summary["pass_count"] == 3, summary
assert summary["target_count"] == 4, summary
assert summary["pass_count"] == 4, summary
assert summary["fail_count"] == 0, summary
assert summary["native_enforcement_count"] == 0, summary
assert summary["metadata_fallback_count"] == 3, summary
assert summary["residual_risk_count"] == 3, summary
assert summary["metadata_fallback_count"] == 4, summary
assert summary["residual_risk_count"] == 4, summary
assert payload["expected_capabilities"] == ["file_write", "network", "subprocess"], payload
assert {item["assurance"] for item in payload["targets"]} == {"metadata-fallback-explicit"}, payload["targets"]
assert (TMP / "runtime_permission_probes.md").exists(), TMP
+1
View File
@@ -52,6 +52,7 @@ def main() -> None:
assert payload["summary"]["declared_bump"] == "minor", payload
assert payload["summary"]["recommended_bump"] == "minor", payload
assert "agent-skills-compatible" in payload["upgrade_diff"]["added_targets"], payload
assert "vscode" in payload["upgrade_diff"]["added_targets"], payload
assert output_json.exists(), output_json
assert "Upgrade Check" in output_md.read_text(encoding="utf-8"), output_md
+7 -5
View File
@@ -336,9 +336,9 @@ def main() -> None:
assert created_skill_ir["schema_version"] == "2.0.0", created_skill_ir
assert created_skill_ir["trigger_surface"]["description"], created_skill_ir
compile_result = run("compile-skill", str(created), "--target", "openai", "--target", "claude", "--target", "generic")
compile_result = run("compile-skill", str(created), "--target", "openai", "--target", "claude", "--target", "generic", "--target", "vscode")
assert compile_result["ok"], compile_result
assert compile_result["payload"]["summary"]["target_count"] == 3, compile_result
assert compile_result["payload"]["summary"]["target_count"] == 4, compile_result
assert compile_result["payload"]["summary"]["block_count"] == 0, compile_result
assert compile_result["payload"]["artifacts"]["markdown"].endswith("reports/compiled_targets.md"), compile_result
@@ -523,6 +523,8 @@ def main() -> None:
"claude",
"--platform",
"generic",
"--platform",
"vscode",
"--expectations",
str(ROOT / "evals" / "packaging_expectations.json"),
"--output-dir",
@@ -548,7 +550,7 @@ def main() -> None:
"2026-06-13",
)
assert package_verify_result["ok"], package_verify_result
assert package_verify_result["payload"]["summary"]["adapter_count"] == 3, package_verify_result
assert package_verify_result["payload"]["summary"]["adapter_count"] == 4, package_verify_result
assert package_verify_result["payload"]["summary"]["archive_sha256"], package_verify_result
runtime_permissions_result = run(
@@ -562,7 +564,7 @@ def main() -> None:
str(tmp_root / "runtime_permission_probes.md"),
)
assert runtime_permissions_result["ok"], runtime_permissions_result
assert runtime_permissions_result["payload"]["summary"]["metadata_fallback_count"] == 3, runtime_permissions_result
assert runtime_permissions_result["payload"]["summary"]["metadata_fallback_count"] == 4, runtime_permissions_result
assert runtime_permissions_result["payload"]["summary"]["native_enforcement_count"] == 0, runtime_permissions_result
install_simulate_result = run(
@@ -581,7 +583,7 @@ def main() -> None:
)
assert install_simulate_result["ok"], install_simulate_result
assert install_simulate_result["payload"]["summary"]["archive_extracted"], install_simulate_result
assert install_simulate_result["payload"]["summary"]["adapter_count"] == 3, install_simulate_result
assert install_simulate_result["payload"]["summary"]["adapter_count"] == 4, install_simulate_result
upgrade_result = run(
"upgrade-check",