511 Commits

Author SHA1 Message Date
yaojingang f5f5128437 docs: add skill install quickstart 2026-07-06 08:10:46 +08:00
yaojingang cf70bbe6c2 Improve yao meta skill trigger coverage 2026-07-02 11:29:19 +08:00
yaojingang ab2b0e9fb5 Refresh ledger-driven beta evidence reports 2026-06-17 16:59:45 +08:00
yaojingang e79050ed12 Make beta evidence deferrals ledger-driven 2026-06-17 16:58:32 +08:00
yaojingang 6426f9c6c9 Refresh beta test evidence reports 2026-06-17 16:27:39 +08:00
yaojingang ed975a2bf2 Add beta test release boundary 2026-06-17 16:25:47 +08:00
yaojingang 9c193f2e91 Refresh public evidence reports 2026-06-17 16:09:03 +08:00
yaojingang d845e9513c Allow private evidence states in review studio tests 2026-06-17 16:07:29 +08:00
yaojingang a19d29f97b Refresh post-CI evidence reports 2026-06-17 15:57:16 +08:00
yaojingang e39be9d5d4 Refresh clean release evidence reports 2026-06-17 15:53:58 +08:00
yaojingang cece6f9b04 Harden world-class release gates 2026-06-17 15:52:33 +08:00
yaojingang e503cd6333 Add world-class release coordination gate 2026-06-17 12:07:04 +08:00
yaojingang ff0473ac02 Refresh review action contract release evidence 2026-06-17 05:27:05 +08:00
yaojingang 4c30a659ef Add review action contract fields 2026-06-17 05:25:52 +08:00
yaojingang 10dd886ae7 Refresh gate action mirror release evidence 2026-06-17 05:18:35 +08:00
yaojingang cd71fd61e4 Mirror review actions into gates 2026-06-17 05:17:41 +08:00
yaojingang 7050664b48 Refresh operator phase queue release lock 2026-06-17 05:11:16 +08:00
yaojingang 4309d9bbcd Mirror phase queues into operator runbook 2026-06-17 05:10:31 +08:00
yaojingang 6ece6407e8 Refresh final phase queue release lock 2026-06-17 05:02:06 +08:00
yaojingang 136654cda9 Refresh full phase queue evidence bundle 2026-06-17 05:01:41 +08:00
yaojingang 28c48ec248 Refresh phase queue consistency evidence 2026-06-17 05:00:28 +08:00
yaojingang 9eaa8f6cec Add phase queue consistency gate 2026-06-17 04:59:46 +08:00
yaojingang c30882468f Refresh preflight phase queue evidence 2026-06-17 04:48:38 +08:00
yaojingang 0f97b66ed8 Expose preflight phase queues 2026-06-17 04:47:48 +08:00
yaojingang ca23db4296 Refresh phase queue clean-lock evidence 2026-06-17 04:32:58 +08:00
yaojingang 7512dc3309 Add world-class submission phase queue 2026-06-17 04:32:28 +08:00
yaojingang 2efe6413f0 Refresh clean-lock release evidence 2026-06-17 04:24:04 +08:00
yaojingang ed6960f65d Separate source and generated release locks 2026-06-17 04:23:04 +08:00
yaojingang 4a1a529570 Prioritize world-class repair actions 2026-06-17 04:10:13 +08:00
yaojingang f2cf8a9e53 Surface preflight repair rows in Review Studio 2026-06-17 04:01:58 +08:00
yaojingang e336777575 Expose world-class preflight repair rows 2026-06-17 03:49:07 +08:00
yaojingang 48a503f8f6 Add world-class submission repair checklist 2026-06-17 03:41:22 +08:00
yaojingang 2241b0e344 Harden blind review evidence integrity 2026-06-17 03:31:42 +08:00
yaojingang 00a8265b81 Refresh clean-lock evidence after source anchors 2026-06-17 03:13:45 +08:00
yaojingang 360f05503d Refresh context budget after source anchor update 2026-06-17 03:11:34 +08:00
yaojingang 52ec9e3720 Tighten Review Studio source anchors 2026-06-17 03:10:24 +08:00
yaojingang c4f903bf8a Refresh clean-lock report evidence 2026-06-17 03:05:56 +08:00
yaojingang d709f043a2 Refresh context budget after evidence updates 2026-06-17 03:03:18 +08:00
yaojingang 8aca34cec3 Surface human adjudication privacy evidence 2026-06-17 03:00:51 +08:00
yaojingang 774b77632a Hash prompts in human adjudication evidence 2026-06-17 02:50:36 +08:00
yaojingang 651792dc3d Reject raw fields in external evidence artifacts 2026-06-17 02:43:28 +08:00
yaojingang 84560371a2 Reject raw fields in native telemetry evidence 2026-06-17 02:38:46 +08:00
yaojingang 96d1fbe209 Tighten human evidence intake validation 2026-06-17 02:34:17 +08:00
yaojingang 8c18faf49b Align human evidence rationale contract 2026-06-17 02:29:35 +08:00
yaojingang f9fc7d333b Refresh clean benchmark evidence 2026-06-17 02:23:23 +08:00
yaojingang 61898d145c Harden human output review evidence 2026-06-17 02:20:13 +08:00
yaojingang f295fdf610 Refine skill overview metrics layout 2026-06-17 02:05:45 +08:00
yaojingang f7f3c7c806 Stabilize Review Studio release lock 2026-06-17 01:55:20 +08:00
yaojingang 4047cfdb1a Refresh Review Studio release context 2026-06-17 01:55:02 +08:00
yaojingang c8febd1a7b Refresh Review Studio watchlist evidence 2026-06-17 01:54:37 +08:00
yaojingang 569d8fa019 Align Review Studio architecture watchlist test 2026-06-17 01:53:41 +08:00
yaojingang 5b52d7db65 Stabilize cross-packager contract release lock 2026-06-17 01:50:54 +08:00
yaojingang 6155195b86 Refresh cross-packager contract reports 2026-06-17 01:50:33 +08:00
yaojingang 3841c074e3 Split cross-packager contracts 2026-06-17 01:50:01 +08:00
yaojingang 7f91c2dd36 Refresh Review Studio gate helper release lock 2026-06-17 01:40:53 +08:00
yaojingang 5e28861c41 Stabilize Review Studio gate helper context reports 2026-06-17 01:40:29 +08:00
yaojingang 5c1ff9f94a Refresh Review Studio gate helper reports 2026-06-17 01:40:06 +08:00
yaojingang fb00ecbd5a Split Review Studio gate helpers 2026-06-17 01:39:41 +08:00
yaojingang 5e2163683a Refresh Review Studio panel release lock 2026-06-17 01:32:00 +08:00
yaojingang d5beede0a6 Stabilize Review Studio panel context reports 2026-06-17 01:31:37 +08:00
yaojingang 10114cc408 Refresh Review Studio panel reports 2026-06-17 01:31:17 +08:00
yaojingang bc74e896e0 Split Review Studio panel renderers 2026-06-17 01:30:53 +08:00
yaojingang 2ca48b21ec Refresh skill overview section release lock 2026-06-17 01:23:00 +08:00
yaojingang 7e6dc148c9 Stabilize skill overview section context reports 2026-06-17 01:22:30 +08:00
yaojingang cea008afc1 Refresh skill overview section reports 2026-06-17 01:22:04 +08:00
yaojingang f37fd3a073 Split skill overview report sections 2026-06-17 01:21:34 +08:00
yaojingang 421bd08909 Refresh Skill Atlas helper release lock 2026-06-17 01:15:46 +08:00
yaojingang 5b7e118c2e Stabilize Skill Atlas helper context reports 2026-06-17 01:15:18 +08:00
yaojingang e3f90164f0 Refresh Skill Atlas helper reports 2026-06-17 01:14:54 +08:00
yaojingang 1f5419e919 Split Skill Atlas opportunity helpers 2026-06-17 01:14:21 +08:00
yaojingang 4db372a568 Refresh reference synthesis release lock 2026-06-17 01:07:21 +08:00
yaojingang 5f2bcbf029 Refresh reference synthesis context timestamp 2026-06-17 01:06:29 +08:00
yaojingang dac2654a87 Split reference synthesis markdown renderer 2026-06-17 01:06:04 +08:00
yaojingang 6385cb14fa Refresh coverage renderer release lock 2026-06-17 00:59:37 +08:00
yaojingang 223ff6dc51 Stabilize coverage report lock inputs 2026-06-17 00:58:56 +08:00
yaojingang 3281a40960 Refresh coverage context reports 2026-06-17 00:58:28 +08:00
yaojingang 9172b6719c Split Skill OS coverage markdown renderer 2026-06-17 00:57:52 +08:00
yaojingang cf17324889 Refresh review viewer asset release lock 2026-06-17 00:51:28 +08:00
yaojingang de1a50f0ce Refresh context budget timestamp 2026-06-17 00:51:00 +08:00
yaojingang 71d880076e Split review viewer CSS asset 2026-06-17 00:50:31 +08:00
yaojingang 548e225c3e Refresh final early watch release lock 2026-06-17 00:40:12 +08:00
yaojingang 070a89afc2 Stabilize context budget after CI evidence 2026-06-17 00:39:35 +08:00
yaojingang bd9aff0d9f Refresh post-CI dirty release evidence 2026-06-17 00:39:00 +08:00
yaojingang 65b7bb5e03 Refresh CI generated evidence after early watch 2026-06-17 00:38:26 +08:00
yaojingang ddbb51f33b Refresh early watch clean release evidence 2026-06-17 00:36:04 +08:00
yaojingang e4473fc852 Add early architecture watch evidence 2026-06-17 00:35:26 +08:00
yaojingang 59ec05a775 Record clean stale-lock freshness check 2026-06-17 00:27:21 +08:00
yaojingang cdc6b9d042 Refresh final stale-lock release reports 2026-06-17 00:27:01 +08:00
yaojingang 9da8d0e08b Refresh evidence after stale lock guard 2026-06-17 00:26:39 +08:00
yaojingang 67058ceceb Record final clean lock consistency 2026-06-17 00:24:27 +08:00
yaojingang ac32763091 Refresh clean stale-lock release reports 2026-06-17 00:24:10 +08:00
yaojingang b6ded57f9c Refresh stale lock guard report mirrors 2026-06-17 00:23:45 +08:00
yaojingang 7476c7ccbf Detect stale clean release locks 2026-06-17 00:22:57 +08:00
yaojingang 108f4d8b87 Refresh registry and atlas metadata 2026-06-17 00:17:57 +08:00
yaojingang 97edbb16ce Refresh submission privacy release locks 2026-06-17 00:15:46 +08:00
yaojingang 3961b60341 Block answer-key fields in evidence submissions 2026-06-17 00:15:07 +08:00
yaojingang 500f8cc34e Refresh clean privacy guard release locks 2026-06-17 00:09:52 +08:00
yaojingang 4a5880bea1 Refresh context budget report totals 2026-06-17 00:09:30 +08:00
yaojingang f3957bfc06 Refresh output review privacy guard locks 2026-06-17 00:08:54 +08:00
yaojingang a5810d90e5 Refresh generated reports after privacy guard 2026-06-17 00:08:17 +08:00
yaojingang 1945775f93 Share output review privacy guard 2026-06-17 00:07:59 +08:00
yaojingang 190700c7d5 Refresh human evidence privacy locks 2026-06-17 00:00:53 +08:00
yaojingang 2a6970e54f Refresh context budget totals 2026-06-17 00:00:33 +08:00
yaojingang 33762684cc Align human evidence privacy guard 2026-06-17 00:00:05 +08:00
yaojingang c07161a46c Refresh output review privacy locks 2026-06-16 23:56:32 +08:00
yaojingang 780710bcff Refresh context budget totals 2026-06-16 23:56:12 +08:00
yaojingang 3dfac4bead Align output review import privacy guard 2026-06-16 23:55:40 +08:00
yaojingang 44c6abc4f8 Refresh output review import locks 2026-06-16 23:51:18 +08:00
yaojingang c2c543fb76 Refresh context budget totals 2026-06-16 23:50:56 +08:00
yaojingang a943662be1 Reject nested output review import leaks 2026-06-16 23:50:18 +08:00
yaojingang 81496933d7 Refresh human evidence guard locks 2026-06-16 23:46:22 +08:00
yaojingang 53ef4d394c Refresh context budget summary date 2026-06-16 23:45:27 +08:00
yaojingang 0e71032de4 Reject nested human adjudication leaks 2026-06-16 23:44:44 +08:00
yaojingang 69f5dc3f9e Refresh native telemetry evidence locks 2026-06-16 23:39:55 +08:00
yaojingang 03aa628712 Validate native telemetry evidence rows 2026-06-16 23:39:13 +08:00
yaojingang dfda1fc0c0 Refresh native permission evidence locks 2026-06-16 23:27:24 +08:00
yaojingang 1be80208f3 Refresh context budget summary date 2026-06-16 23:26:54 +08:00
yaojingang c550afc657 Validate native permission evidence rows 2026-06-16 23:26:15 +08:00
yaojingang 9f7f2fc61f Refresh artifact kind validation locks 2026-06-16 23:20:10 +08:00
yaojingang 9bf9b1ca20 Bind world-class artifact refs to expected kinds 2026-06-16 23:19:51 +08:00
yaojingang 59762cf679 Refresh duplicate artifact guard locks 2026-06-16 23:15:06 +08:00
yaojingang 9a269bda3c Reject duplicate world-class artifact refs 2026-06-16 23:14:47 +08:00
yaojingang 8e6df3b5c2 Refresh human evidence validation locks 2026-06-16 23:10:54 +08:00
yaojingang c7d04459c1 Refresh context budget summary date 2026-06-16 23:10:35 +08:00
yaojingang b0591dd2ab Validate human adjudication evidence rows 2026-06-16 23:09:48 +08:00
yaojingang 6c2a070b59 Refresh provider evidence validation locks 2026-06-16 22:57:22 +08:00
yaojingang 46716b5330 Refresh context budget after provider guard 2026-06-16 22:56:53 +08:00
yaojingang 965e91043b Tighten provider evidence run validation 2026-06-16 22:56:04 +08:00
yaojingang 87e29704a7 Refresh ledger review timestamp locks 2026-06-16 22:46:57 +08:00
yaojingang 768f61ee47 Validate ledger review timestamp order 2026-06-16 22:46:33 +08:00
yaojingang 9abc16d3ed Refresh ledger reviewer identity locks 2026-06-16 22:40:02 +08:00
yaojingang 4f3d9af19f Require ledger reviewer identity for world-class evidence 2026-06-16 22:39:27 +08:00
yaojingang acafafcdd3 Refresh reviewer approval evidence locks 2026-06-16 22:33:24 +08:00
yaojingang a5bdd57ea1 Require reviewer approval for world-class evidence 2026-06-16 22:32:44 +08:00
yaojingang 1e1cb52f5d Refresh world-class handoff evidence locks 2026-06-16 22:25:33 +08:00
yaojingang 63eb98df75 Refresh context summary date 2026-06-16 22:25:03 +08:00
yaojingang 00ee3a61aa Add world-class submission handoff steps 2026-06-16 22:24:13 +08:00
yaojingang 2e040a0c95 Refresh adaptation evidence locks 2026-06-16 22:17:33 +08:00
yaojingang 001210458f Extract adaptation safety helpers 2026-06-16 22:17:09 +08:00
yaojingang 8babdd42f1 Refresh gate contract release lock 2026-06-16 22:10:24 +08:00
yaojingang 6fd6399ed2 Extract Review Studio gate contract helpers 2026-06-16 22:10:00 +08:00
yaojingang 5736959abe Refresh trust helper release lock 2026-06-16 22:03:41 +08:00
yaojingang 13baae414a Sync Skill OS review trust evidence 2026-06-16 22:03:14 +08:00
yaojingang ee62291551 Extract trust check script inventory helpers 2026-06-16 22:02:30 +08:00
yaojingang a37b760e72 Refresh zero-watchlist release lock 2026-06-16 21:56:35 +08:00
yaojingang 46b9f7a260 Align Yao CLI architecture watchlist expectation 2026-06-16 21:56:10 +08:00
yaojingang 361d3c8104 Refresh Review Studio helper release lock 2026-06-16 21:54:55 +08:00
yaojingang de51f71ec3 Extract Review Studio test helpers 2026-06-16 21:54:29 +08:00
yaojingang 3316b11cec Refresh review studio release lock 2026-06-16 21:47:33 +08:00
yaojingang abe4ecf3bf Refresh context budget after review test fix 2026-06-16 21:47:11 +08:00
yaojingang ac3be40c6a Accept singular Review Studio watchlist text 2026-06-16 21:46:31 +08:00
yaojingang 220b198763 Refresh Yao CLI helper release lock 2026-06-16 21:43:49 +08:00
yaojingang c86602332d Extract Yao CLI test helpers 2026-06-16 21:42:08 +08:00
yaojingang 1ae595bdd5 Refresh description optimizer release lock 2026-06-16 17:23:47 +08:00
yaojingang bc2e300fe9 Refresh description optimizer context budget lock 2026-06-16 17:22:51 +08:00
yaojingang c0abbc5e7d Extract description optimizer reporting 2026-06-16 17:20:19 +08:00
yaojingang 614c048c61 Refresh compile target release lock 2026-06-16 17:11:08 +08:00
yaojingang ee8e56b1a9 Extract compile skill target models 2026-06-16 17:10:06 +08:00
yaojingang e0b66672f7 Refresh Skill Atlas layout release lock 2026-06-16 16:55:26 +08:00
yaojingang 3e48ee1ad2 Extract Skill Atlas layout renderer 2026-06-16 16:54:45 +08:00
yaojingang ecfe1d77a5 Refresh CLI parser release lock 2026-06-16 16:15:37 +08:00
yaojingang 8d254d1db3 Extract CLI operating loop parser 2026-06-16 16:15:04 +08:00
yaojingang 5aa16d5d48 Refresh report source release lock 2026-06-16 16:01:38 +08:00
yaojingang 3b19cf5690 Extract skill overview source helpers 2026-06-16 16:00:25 +08:00
yaojingang 1ad559bf22 Refresh overview layout release lock 2026-06-16 15:45:26 +08:00
yaojingang f16f783c7c Refine skill overview report layout 2026-06-16 15:44:26 +08:00
yaojingang f25f3f52b1 Refresh evidence core release lock 2026-06-16 15:30:31 +08:00
yaojingang ac4222b442 Refresh evidence core context budget 2026-06-16 15:29:57 +08:00
yaojingang 39dd91322c Extract evidence consistency core helpers 2026-06-16 15:29:34 +08:00
yaojingang ae3d47a168 Refresh renderer line budget release lock 2026-06-16 15:19:27 +08:00
yaojingang c2aa90b85d Refresh context budget before release lock 2026-06-16 15:18:58 +08:00
yaojingang 649abe05ca Keep review studio renderer within line budget 2026-06-16 15:18:31 +08:00
yaojingang 355a3cce36 Refresh report layout release lock evidence 2026-06-16 15:15:28 +08:00
yaojingang 026efd17e3 Refresh clean-lock context reports 2026-06-16 15:14:47 +08:00
yaojingang e23f3ffdcf Tighten report layout and gate contract evidence 2026-06-16 15:12:32 +08:00
yaojingang 538d7ed401 Refresh gate contract release evidence lock 2026-06-16 14:57:18 +08:00
yaojingang 0ee209e7fd Centralize review studio gate contract 2026-06-16 14:56:43 +08:00
yaojingang ca94d734ee Refresh waiver policy release evidence lock 2026-06-16 14:51:14 +08:00
yaojingang 499214b052 Align review waiver gate policy with studio gates 2026-06-16 14:50:44 +08:00
yaojingang 6a87913221 Refresh bilingual report release evidence lock 2026-06-16 14:43:48 +08:00
yaojingang be399c8b60 Improve skill overview bilingual report copy 2026-06-16 14:43:14 +08:00
yaojingang 5b858a903d Refresh evidence review release evidence lock 2026-06-16 09:59:12 +08:00
yaojingang 07380f06b3 Refresh evidence review clean-lock inputs 2026-06-16 09:58:51 +08:00
yaojingang ca6afbde87 Split Skill OS review consistency check 2026-06-16 09:58:18 +08:00
yaojingang 129ab2a1c7 Refresh preflight release evidence lock 2026-06-16 09:48:56 +08:00
yaojingang d3076c3561 Refresh preflight clean-lock inputs 2026-06-16 09:48:26 +08:00
yaojingang 74e666e79a Split world-class preflight layout 2026-06-16 09:47:48 +08:00
yaojingang 553836e2bd Refresh clean release evidence lock 2026-06-16 09:36:43 +08:00
yaojingang 61e44005c4 Stabilize clean-lock context reports 2026-06-16 09:36:08 +08:00
yaojingang e5580d2777 Refresh clean-lock report inputs 2026-06-16 09:35:36 +08:00
yaojingang 7d72ea9a75 Split evidence CLI parser declarations 2026-06-16 09:34:59 +08:00
yaojingang 94a331ca89 Refresh clean world-class CLI test lock 2026-06-16 09:22:08 +08:00
yaojingang 4f339c5366 Stabilize context budget prelock reports 2026-06-16 09:21:33 +08:00
yaojingang 7df231b6d2 Normalize context summary prelock reports 2026-06-16 09:20:54 +08:00
yaojingang 9e02e6f509 Split world-class CLI smoke tests 2026-06-16 09:19:41 +08:00
yaojingang 7f8942327a Refresh submission kit verifier evidence lock 2026-06-16 08:21:07 +08:00
yaojingang 7c44c9af88 Split world-class submission kit verifier 2026-06-16 08:19:07 +08:00
yaojingang e74ebe2359 Refresh clean provider runbook evidence lock 2026-06-16 08:08:59 +08:00
yaojingang 0ee1f89637 Make provider evidence runbook copy safe 2026-06-16 08:08:26 +08:00
yaojingang 54851019f5 Refresh clean report audit release lock 2026-06-16 07:57:36 +08:00
yaojingang 4b2767900b Include Skill OS audit in report refresh 2026-06-16 07:57:05 +08:00
yaojingang 9b3b3af304 Refresh clean artifact role release lock 2026-06-16 07:50:18 +08:00
yaojingang 044abd49ec Refresh context evidence after artifact roles 2026-06-16 07:49:44 +08:00
yaojingang 5517bcf7a4 Mirror artifact roles in Review Studio 2026-06-16 07:49:02 +08:00
yaojingang a441abf61b Refresh clean preflight role reports 2026-06-16 07:30:35 +08:00
yaojingang 89637b99a2 Refresh context summary date 2026-06-16 07:29:58 +08:00
yaojingang b26eda78c1 Expose preflight artifact role contract 2026-06-16 07:28:39 +08:00
yaojingang 220f68a066 Refresh downstream reports for artifact roles 2026-06-16 07:12:08 +08:00
yaojingang e81337c7db Refresh clean benchmark for artifact roles 2026-06-16 07:11:43 +08:00
yaojingang 28c83c6976 Clarify world-class submission artifact roles 2026-06-16 07:11:23 +08:00
yaojingang e0a19e9b24 Refresh downstream reports for review studio cards 2026-06-16 07:02:50 +08:00
yaojingang 39e9cecc34 Refresh clean benchmark for review studio cards 2026-06-16 07:02:24 +08:00
yaojingang 30451d41f6 Expand review studio world-class action cards 2026-06-16 07:02:02 +08:00
yaojingang 5338a77016 Refresh downstream reports for source excerpts 2026-06-16 06:48:00 +08:00
yaojingang 580253f34a Refresh clean benchmark for source excerpts 2026-06-16 06:47:23 +08:00
yaojingang c325269f10 Add review studio source excerpts 2026-06-16 06:47:07 +08:00
yaojingang be7fce3108 Refresh downstream reports for overview assets 2026-06-16 06:39:14 +08:00
yaojingang 27203c7ace Refresh clean benchmark for overview assets 2026-06-16 06:38:57 +08:00
yaojingang 15c743370e Extract overview report assets 2026-06-16 06:36:45 +08:00
yaojingang 62c319c779 Refresh downstream reports for renderer split 2026-06-16 06:26:11 +08:00
yaojingang 1416fe8303 Refresh clean benchmark lock 2026-06-16 06:25:44 +08:00
yaojingang 11c3941440 Extract submission kit renderers 2026-06-16 06:25:29 +08:00
yaojingang dc638da4d9 Refresh downstream reports for submission matrix 2026-06-16 06:15:19 +08:00
yaojingang 85442f654d Refresh clean benchmark for submission matrix 2026-06-16 06:14:50 +08:00
yaojingang 842717311a Add world-class submission readiness matrix 2026-06-16 06:14:31 +08:00
yaojingang 1e6c3a8398 Refresh downstream evidence reports 2026-06-16 06:02:56 +08:00
yaojingang 18d5279c9c Refresh clean benchmark after intake hardening 2026-06-16 06:01:06 +08:00
yaojingang a99c44d318 Harden world-class evidence intake contract 2026-06-16 06:00:53 +08:00
yaojingang 69a3441696 Refresh evidence consistency report 2026-06-16 05:52:54 +08:00
yaojingang 8bab818bec Refresh review reports after evidence update 2026-06-16 05:52:38 +08:00
yaojingang 283c2d6ccf Refresh clean benchmark lock 2026-06-16 05:52:16 +08:00
yaojingang a7f3cdad84 Refresh context budget after review importer 2026-06-16 05:51:58 +08:00
yaojingang d36bc8422f Add safe output review decision importer 2026-06-16 05:51:36 +08:00
yaojingang 266dfe3f9a Refresh final consistency after SkillOps panel extraction 2026-06-16 05:36:21 +08:00
yaojingang 2a115d79ca Refresh clean Review Studio reports after SkillOps panel extraction 2026-06-16 05:36:09 +08:00
yaojingang f877e99250 Refresh clean benchmark after SkillOps panel extraction 2026-06-16 05:35:53 +08:00
yaojingang 6e04832315 Refresh clean context budget after SkillOps panel extraction 2026-06-16 05:35:43 +08:00
yaojingang 9e0022ebd4 Extract Review Studio SkillOps panels 2026-06-16 05:35:24 +08:00
yaojingang 762fe3ee9a Refresh final consistency for Review Studio SkillOps 2026-06-16 05:32:15 +08:00
yaojingang b7f16b37d9 Refresh clean Review Studio SkillOps reports 2026-06-16 05:32:04 +08:00
yaojingang 323258395c Refresh clean benchmark lock for Review Studio SkillOps 2026-06-16 05:31:38 +08:00
yaojingang 69e1f7a898 Refresh clean context budget for Review Studio SkillOps 2026-06-16 05:31:18 +08:00
yaojingang 8338eccf01 Refresh Review Studio SkillOps source evidence 2026-06-16 05:30:41 +08:00
yaojingang 36160e9466 Surface SkillOps curator in Review Studio 2026-06-16 05:25:58 +08:00
yaojingang 0051dad489 Refresh final consistency after test isolation 2026-06-16 05:19:15 +08:00
yaojingang 8ecf245d4c Refresh clean downstream reports after test isolation 2026-06-16 05:19:03 +08:00
yaojingang 72859b1736 Refresh benchmark lock after test isolation 2026-06-16 05:18:47 +08:00
yaojingang 03718ae7ad Refresh context budget after test isolation 2026-06-16 05:18:32 +08:00
yaojingang 92a4c53f16 Refresh python compat isolation package evidence 2026-06-16 05:18:10 +08:00
yaojingang d9e07da031 Keep python compatibility fixture output isolated 2026-06-16 05:17:08 +08:00
yaojingang e1b0e71135 Refresh final evidence consistency 2026-06-16 05:15:15 +08:00
yaojingang 4cb9f928c4 Refresh clean weekly curator reports 2026-06-16 05:15:03 +08:00
yaojingang 8a9d76f7c0 Refresh clean benchmark lock 2026-06-16 05:14:44 +08:00
yaojingang aee5491032 Refresh clean context budget evidence 2026-06-16 05:14:31 +08:00
yaojingang ee8e207e8b Refresh weekly curator source evidence 2026-06-16 05:13:52 +08:00
yaojingang 089d0a77f2 Integrate weekly curator into report flow 2026-06-16 05:09:49 +08:00
yaojingang 3bfc56f026 Add weekly SkillOps curator report 2026-06-16 05:01:15 +08:00
yaojingang 44cfb472fc Refresh final evidence consistency 2026-06-16 04:49:58 +08:00
yaojingang 5457ad2d23 Refresh benchmark-dependent reports 2026-06-16 04:49:44 +08:00
yaojingang ea0601a0bb Refresh clean benchmark lock 2026-06-16 04:49:04 +08:00
yaojingang 904969b91f Refresh SkillOps evidence reports 2026-06-16 04:48:33 +08:00
yaojingang 3677dd4664 Add SkillOps opportunity scoring 2026-06-16 04:46:26 +08:00
yaojingang 2a9c127c13 Lock evidence consistency after review studio update 2026-06-16 04:36:11 +08:00
yaojingang 9be9656e0e Refresh clean-lock consumers after review studio update 2026-06-16 04:35:46 +08:00
yaojingang 7e726daaf3 Relock benchmark after review studio test update 2026-06-16 04:35:21 +08:00
yaojingang 3ea32f51a5 Update Review Studio coverage expectations 2026-06-16 04:35:07 +08:00
yaojingang e65ee917b7 Lock evidence consistency 2026-06-16 04:32:09 +08:00
yaojingang e8ddd55efd Refresh clean-lock report consumers 2026-06-16 04:31:48 +08:00
yaojingang a80da65f8c Lock benchmark evidence 2026-06-16 04:31:25 +08:00
yaojingang 5e72c0c8f8 Stage clean-lock report prerequisites 2026-06-16 04:31:03 +08:00
yaojingang cd4c8036a9 Refresh Daily SkillOps evidence 2026-06-16 04:30:00 +08:00
yaojingang cf4da35499 Add Daily SkillOps reporting 2026-06-16 04:29:24 +08:00
yaojingang 5cb10444c4 Refresh prefilled submission lock reports 2026-06-16 04:08:05 +08:00
yaojingang c5165be99c Refresh context budget for preflight handoff 2026-06-16 04:07:24 +08:00
yaojingang b9016b76d8 Refresh prefilled submission preflight evidence 2026-06-16 04:06:37 +08:00
yaojingang cba7aad149 Expose prefilled submission kit in preflight 2026-06-16 04:04:24 +08:00
yaojingang 7c8bf844af Refresh submission prefill lock reports 2026-06-16 03:59:38 +08:00
yaojingang 85ff9e41b1 Refresh submission prefill evidence reports 2026-06-16 03:59:04 +08:00
yaojingang fa4067771b Prefill world-class submission artifact hashes 2026-06-16 03:58:05 +08:00
yaojingang 7b21b9f633 Harden world-class external evidence intake 2026-06-16 03:50:10 +08:00
yaojingang 171962b23d Refresh shared report flow lock reports 2026-06-16 03:38:51 +08:00
yaojingang 58fd1326d0 Refresh shared report flow context lock reports 2026-06-16 03:38:24 +08:00
yaojingang 3844ff2b3b Refresh shared report flow source evidence 2026-06-16 03:38:00 +08:00
yaojingang dd3c260ff2 Share telemetry aggregate protection across report flows 2026-06-16 03:37:05 +08:00
yaojingang f930167d5a Refresh report command lock reports 2026-06-16 03:34:03 +08:00
yaojingang 2590cafd98 Refresh report command context lock reports 2026-06-16 03:33:36 +08:00
yaojingang b830d19a23 Refresh report command source evidence 2026-06-16 03:33:16 +08:00
yaojingang 7d19feb9cb Keep report command telemetry aggregate stable 2026-06-16 03:32:11 +08:00
yaojingang 61e71de7a4 Refresh human evidence lock reports 2026-06-16 03:26:39 +08:00
yaojingang 3323880da2 Refresh human evidence context lock reports 2026-06-16 03:26:02 +08:00
yaojingang 9b9ea7d4fb Harden human adjudication evidence intake 2026-06-16 03:25:39 +08:00
yaojingang 9d1e401088 Refresh shared Skill IR lock reports 2026-06-16 03:13:29 +08:00
yaojingang 290134b4d1 Refresh context budget lock reports 2026-06-16 03:13:03 +08:00
yaojingang 291e649fac Centralize Skill IR artifact discovery 2026-06-16 03:12:10 +08:00
yaojingang e31eee53f3 Refresh Skill IR path lock reports 2026-06-16 02:55:34 +08:00
yaojingang c617e4719e Align Skill IR evidence paths 2026-06-16 02:54:52 +08:00
yaojingang a25567963e Refresh clean benchmark release lock 2026-06-16 02:46:51 +08:00
yaojingang aa72595e56 Refresh preflight review lock reports 2026-06-16 02:45:59 +08:00
yaojingang f6d3bb523f Add world-class preflight HTML cockpit 2026-06-16 02:45:01 +08:00
yaojingang 858d96b8c5 Refresh expanded evidence flow lock reports 2026-06-16 02:32:36 +08:00
yaojingang f682bf9376 Broaden release evidence refresh coverage 2026-06-16 02:32:01 +08:00
yaojingang a7f422e296 Refresh context-stable release lock reports 2026-06-16 02:26:39 +08:00
yaojingang 78904abae1 Stabilize context sizing around volatile reports 2026-06-16 02:26:04 +08:00
yaojingang 8b10217bbb Make context budget reports idempotent 2026-06-16 02:21:56 +08:00
yaojingang fc5f1dbca2 Govern context report freshness in release evidence 2026-06-16 02:17:02 +08:00
yaojingang ae9d65aeff Refresh preflight handoff release lock 2026-06-16 02:06:23 +08:00
yaojingang 713831ab3a Expose preflight submission kit handoff 2026-06-16 02:05:34 +08:00
yaojingang c91d01bc1b Refresh release flow evidence lock 2026-06-16 01:56:34 +08:00
yaojingang 959fcaee08 Harden release evidence flow checks 2026-06-16 01:56:03 +08:00
yaojingang 4187d92ac3 Refresh benchmark preflight release lock 2026-06-16 01:50:24 +08:00
yaojingang d3fb78f4fe Include preflight in benchmark reproducibility 2026-06-16 01:49:51 +08:00
yaojingang dd33d55b62 Refresh preflight release evidence lock 2026-06-16 01:41:09 +08:00
yaojingang 6713b56d6b Add world-class evidence preflight 2026-06-16 01:40:37 +08:00
yaojingang 7314c3c1c8 Refresh release flow consistency lock 2026-06-16 01:23:40 +08:00
yaojingang 0cc661195f Check release evidence flow consistency 2026-06-16 01:23:08 +08:00
yaojingang 0c6b0b8c13 Refresh complete release evidence lock 2026-06-16 01:15:51 +08:00
yaojingang ef36a74204 Document complete release evidence refresh flow 2026-06-16 01:15:22 +08:00
yaojingang bc999b9508 Refresh extracted consistency release lock 2026-06-16 01:09:34 +08:00
yaojingang a7960d4cfd Extract world-class evidence consistency checks 2026-06-16 01:08:23 +08:00
yaojingang 391821240b Refresh workflow coverage release lock 2026-06-16 00:58:42 +08:00
yaojingang 09518a4d86 Refresh workflow coverage report evidence 2026-06-16 00:58:16 +08:00
yaojingang 65e906d88e Check world-class evidence workflow coverage 2026-06-16 00:57:50 +08:00
yaojingang c9a7842991 Refresh report consistency release lock 2026-06-16 00:51:48 +08:00
yaojingang 0979c8753e Allow report consistency without dist 2026-06-16 00:51:19 +08:00
yaojingang bf1499d9b8 Refresh claim guard release lock 2026-06-16 00:48:45 +08:00
yaojingang b9b0ad18cf Check claim guard package surfaces 2026-06-16 00:48:16 +08:00
yaojingang cd933046c8 Refresh stable claim guard release lock 2026-06-16 00:41:47 +08:00
yaojingang ae5ce88ea7 Stabilize claim guard surface test 2026-06-16 00:41:20 +08:00
yaojingang a8d99a6afe Refresh package claim release lock 2026-06-16 00:39:12 +08:00
yaojingang d8e73d5b53 Guard package world-class claim surfaces 2026-06-16 00:38:47 +08:00
yaojingang f135ebcb89 Refresh clean release lock 2026-06-16 00:30:37 +08:00
yaojingang 92ff8bd10f Expand world-class claim guard coverage 2026-06-16 00:30:11 +08:00
yaojingang 03a0fc0107 Refresh clean architecture watchlist reports 2026-06-16 00:22:59 +08:00
yaojingang 71f1ebea17 Track architecture watchlist in Review Studio 2026-06-16 00:22:16 +08:00
yaojingang 909597f71d Guard Skill OS review evidence drift 2026-06-16 00:12:19 +08:00
yaojingang b280fb79e0 Refresh final reports for roadmap count alignment 2026-06-15 23:58:01 +08:00
yaojingang 2204e7ce7f Refresh evidence after roadmap count alignment 2026-06-15 23:57:18 +08:00
yaojingang 11fce1f339 Align world-class roadmap counts with ledger 2026-06-15 23:55:35 +08:00
yaojingang 0f51f74fb6 Refresh final reports for adaptive contract data 2026-06-15 23:48:03 +08:00
yaojingang dc7cc48a1d Refresh evidence for Review Studio adaptive data 2026-06-15 23:47:29 +08:00
yaojingang be0976ad30 Expose adaptive reports in Review Studio data 2026-06-15 23:46:57 +08:00
yaojingang 1af4f3cd42 Refresh evidence for adaptive report contracts 2026-06-15 23:44:32 +08:00
yaojingang a5a8f915d0 Add adaptive report contract mirrors 2026-06-15 23:43:52 +08:00
yaojingang f2c036eff4 Refresh final reports for world-class report contracts 2026-06-15 23:36:10 +08:00
yaojingang 51a946594a Refresh evidence for world-class report contracts 2026-06-15 23:35:33 +08:00
yaojingang 687aefebc2 Add world-class report contract mirrors 2026-06-15 23:34:48 +08:00
yaojingang 781fbe971e Refresh final reports for adaptive approval drafts 2026-06-15 23:25:43 +08:00
yaojingang b5c185deb5 Refresh evidence for adaptive approval drafts 2026-06-15 23:25:12 +08:00
yaojingang f324a78e29 Add adaptive approval draft workflow 2026-06-15 23:23:18 +08:00
yaojingang c971c02d87 Refresh final reports for adaptive baseline guard 2026-06-15 23:12:24 +08:00
yaojingang a0e7b5197d Refresh evidence for adaptive baseline guard 2026-06-15 23:12:07 +08:00
yaojingang b18a134497 Harden adaptive apply approval baselines 2026-06-15 23:11:31 +08:00
yaojingang 10a1b1d963 Refresh final reports after archive evidence 2026-06-15 23:05:06 +08:00
yaojingang afdd533271 Refresh archive evidence after review test update 2026-06-15 23:04:50 +08:00
yaojingang f9ba9b7b53 Update review studio coverage expectations 2026-06-15 23:04:05 +08:00
yaojingang 16ee1d80de Refresh final adaptive apply reports 2026-06-15 23:01:20 +08:00
yaojingang 14ad95850f Refresh claim guard surfaces 2026-06-15 23:00:42 +08:00
yaojingang b261f089c3 Refresh adaptive apply evidence 2026-06-15 23:00:12 +08:00
yaojingang 817aef179f Add approval-gated adaptive apply 2026-06-15 22:58:21 +08:00
yaojingang 73968fa404 Refresh final clean architecture evidence 2026-06-15 22:40:00 +08:00
yaojingang adba42a7c7 Refresh package hash after conformance fixture fix 2026-06-15 22:39:27 +08:00
yaojingang a291f4f104 Harden conformance renamed-checkout fixture 2026-06-15 22:37:39 +08:00
yaojingang 7353612be2 Refresh clean CLI architecture evidence 2026-06-15 22:36:08 +08:00
yaojingang 0e6327ca93 Refresh CLI architecture evidence artifacts 2026-06-15 22:35:36 +08:00
yaojingang e3583647c7 Refactor Yao CLI command domains 2026-06-15 22:32:57 +08:00
yaojingang a266ab7c8f Refresh clean conformance evidence 2026-06-15 22:18:38 +08:00
yaojingang 2df5c9acd0 Allow conformance checks in renamed checkouts 2026-06-15 22:18:13 +08:00
yaojingang 6e2dfd48d0 Refresh clean archive identity evidence 2026-06-15 22:16:15 +08:00
yaojingang 27a5c12008 Use package manifest name for archives 2026-06-15 22:15:53 +08:00
yaojingang db1b24cbda Refresh clean renamed-checkout evidence 2026-06-15 22:12:01 +08:00
yaojingang c169e61dd4 Find skill IR in renamed checkouts 2026-06-15 22:11:41 +08:00
yaojingang c1505fa6f1 Refresh clean portability evidence 2026-06-15 22:09:48 +08:00
yaojingang ad40ed8693 Accept explicit portability report skill path 2026-06-15 22:08:46 +08:00
yaojingang 84b761abce Refresh clean evidence consistency reports 2026-06-15 22:00:41 +08:00
yaojingang a5dab4779d Add cross-report evidence consistency gate 2026-06-15 21:58:35 +08:00
yaojingang effbf3f74c Refresh clean report evidence 2026-06-15 21:40:52 +08:00
yaojingang 038891715d Add first-class skill interpretation report 2026-06-15 21:34:45 +08:00
yaojingang 5495734e7e Refresh adaptive clean-lock evidence 2026-06-15 21:09:55 +08:00
yaojingang aacf3282f5 Add proposal-only adaptive iteration loop 2026-06-15 21:09:25 +08:00
yaojingang 180dbf4a41 Refresh clean-lock extension evidence 2026-06-15 19:09:40 +08:00
yaojingang ee2130176f Refresh generated evidence after extension tracking 2026-06-15 19:09:06 +08:00
yaojingang f0be4dba34 Track 2.0 reference extension gaps 2026-06-15 19:07:51 +08:00
yaojingang 7acc6d9cf7 Refresh clean-lock overview evidence 2026-06-15 18:56:44 +08:00
yaojingang 5f187cdb46 Refresh package evidence after overview helper split 2026-06-15 18:54:51 +08:00
yaojingang f2fdcce071 Improve skill overview world-class roadmap 2026-06-15 18:47:15 +08:00
yaojingang c6584482c6 Add world-class readiness to overview report 2026-06-15 18:31:29 +08:00
yaojingang f3e7831a3b Improve bilingual skill overview reports 2026-06-15 18:11:09 +08:00
yaojingang 78430c6b7f Add world-class evidence actions to Review Studio 2026-06-15 17:42:51 +08:00
yaojingang 48eb0d10ce Fix skill overview metrics layout 2026-06-15 17:27:48 +08:00
yaojingang 7a6a172d4a chore: refresh overview clean lock 2026-06-15 17:12:34 +08:00
yaojingang 30a787a5e6 chore: refresh report package evidence 2026-06-15 17:11:56 +08:00
yaojingang 1c225f1bde feat: reflow skill overview metrics report 2026-06-15 17:10:14 +08:00
yaojingang 3de19f3d82 chore: refresh review studio runbook clean lock 2026-06-14 15:20:02 +08:00
yaojingang cd70c64a4c chore: refresh review studio runbook evidence 2026-06-14 15:19:25 +08:00
yaojingang b7ec1ac393 feat: show evidence runbooks in review studio 2026-06-14 15:16:56 +08:00
yaojingang b6a4a8a50d chore: refresh evidence runbook clean lock 2026-06-14 15:07:49 +08:00
yaojingang 2dc8bad3e0 chore: refresh evidence runbook artifacts 2026-06-14 15:07:01 +08:00
yaojingang 44fe310092 feat: surface world-class evidence runbooks 2026-06-14 15:03:15 +08:00
yaojingang 537cd89ed6 chore: refresh shared html rendering clean-lock evidence 2026-06-14 14:48:59 +08:00
yaojingang 4e9a516485 chore: refresh shared html rendering evidence 2026-06-14 14:48:05 +08:00
yaojingang 6f5f4db4a7 refactor: share falsey-safe html rendering 2026-06-14 14:46:44 +08:00
yaojingang 7b210a5417 chore: refresh output review clean-lock evidence 2026-06-14 14:36:45 +08:00
yaojingang a39964faef chore: refresh output review falsey evidence 2026-06-14 14:36:07 +08:00
yaojingang f210f20c46 fix: preserve falsey values in output review HTML 2026-06-14 14:34:47 +08:00
yaojingang 59a2d644e3 chore: refresh falsey world-class clean-lock evidence 2026-06-14 14:27:48 +08:00
yaojingang 7ae32ed87e chore: refresh falsey world-class HTML evidence 2026-06-14 14:27:15 +08:00
yaojingang fd5a790df9 fix: preserve falsey values in world-class HTML 2026-06-14 14:26:13 +08:00
yaojingang 5651053b8b test: avoid fixed runbook blocked count 2026-06-14 14:18:23 +08:00
yaojingang 7bbc75e4f3 chore: refresh runbook source action clean-lock evidence 2026-06-14 14:16:53 +08:00
yaojingang a5d6a39782 chore: refresh runbook source action evidence 2026-06-14 14:16:23 +08:00
yaojingang 0fb2ebdeea feat: expose next source actions in world-class runbook 2026-06-14 14:15:28 +08:00
yaojingang 727c0239ed chore: refresh public claim source check evidence 2026-06-14 14:08:35 +08:00
yaojingang 6cb499cb50 feat: block public claims on incomplete source checks 2026-06-14 14:08:00 +08:00
yaojingang 02a90704fd chore: refresh top-level source maturity clean-lock evidence 2026-06-14 14:01:59 +08:00
yaojingang c2f5672b2c chore: refresh top-level source maturity evidence 2026-06-14 14:01:23 +08:00
yaojingang 88cec0e51e feat: surface source check maturity in top reports 2026-06-14 14:00:26 +08:00
yaojingang ef289e3429 chore: refresh ledger clean-lock evidence 2026-06-14 13:50:55 +08:00
yaojingang 9067c9e211 chore: refresh ledger source check evidence 2026-06-14 13:50:31 +08:00
yaojingang 2abc2252e0 feat: expose source checks in world-class ledger 2026-06-14 13:49:13 +08:00
yaojingang a619a17ea2 chore: refresh source check clean-lock evidence 2026-06-14 13:42:51 +08:00
yaojingang 0936ce727e chore: refresh source check evidence reports 2026-06-14 13:42:18 +08:00
yaojingang 6ca6f9d609 feat: share world-class source evidence checks 2026-06-14 13:41:22 +08:00
yaojingang 30ca020403 chore: refresh source snapshot clean-lock evidence 2026-06-14 13:27:58 +08:00
yaojingang 7cbbf58078 chore: refresh source snapshot package evidence 2026-06-14 13:27:19 +08:00
yaojingang b7c779453d feat: add source evidence snapshot to submission kit 2026-06-14 13:24:23 +08:00
yaojingang 27a2ff7e7a chore: refresh CI-compatible clean-lock evidence 2026-06-14 13:16:13 +08:00
yaojingang a364f5766f chore: refresh CI-compatible package evidence 2026-06-14 13:15:54 +08:00
yaojingang 35e194ae06 test: allow missing dist artifacts in submission kit check 2026-06-14 13:15:05 +08:00
yaojingang 7e5cafbcac chore: refresh submission kit clean-lock evidence 2026-06-14 13:08:58 +08:00
yaojingang ef0089170c chore: refresh submission kit package evidence 2026-06-14 13:08:25 +08:00
yaojingang 6fc7a130ce feat: add world-class submission artifact checklist 2026-06-14 13:07:12 +08:00
yaojingang e83ee842b2 chore: refresh clean-lock report evidence 2026-06-14 12:54:50 +08:00
yaojingang b9d502bc96 chore: refresh package evidence 2026-06-14 12:53:54 +08:00
yaojingang 38c5785ff3 docs: document clean-lock report refresh 2026-06-14 12:52:36 +08:00
yaojingang ec9474d0a6 docs: refresh review viewer evidence lock 2026-06-14 12:40:28 +08:00
yaojingang 17db8f0498 docs: refresh review viewer package evidence 2026-06-14 12:39:38 +08:00
yaojingang bfc1ac39d7 fix: refresh review viewer in report workflow 2026-06-14 12:38:28 +08:00
yaojingang 0a482d3529 docs: refresh submission workflow review lock 2026-06-14 12:26:53 +08:00
yaojingang 328be185f6 docs: refresh submission command evidence 2026-06-14 12:26:04 +08:00
yaojingang b186b6ab47 docs: align world-class submission commands 2026-06-14 12:24:45 +08:00
yaojingang c8b2fdf886 docs: refresh submission workflow review lock 2026-06-14 12:11:16 +08:00
yaojingang 07274b4c50 docs: refresh world-class submission evidence 2026-06-14 12:10:31 +08:00
yaojingang e03d5b2c74 fix: preserve world-class submission directory context 2026-06-14 12:08:54 +08:00
yaojingang 22c7145db7 docs: refresh governed review lock 2026-06-14 11:58:00 +08:00
yaojingang ab58c97bce docs: refresh governed mode evidence 2026-06-14 11:56:07 +08:00
yaojingang 3b88d5c4bf docs: clarify governed operating mode 2026-06-14 11:55:00 +08:00
yaojingang c2d15206e2 docs: refresh review studio atlas evidence 2026-06-14 11:45:23 +08:00
yaojingang fbaa3c8212 docs: refresh atlas telemetry evidence 2026-06-14 11:44:38 +08:00
yaojingang fac15545b0 feat: derive atlas no-route opportunities from telemetry 2026-06-14 11:42:54 +08:00
yaojingang a25be312bc docs: refresh review studio waiver page 2026-06-14 11:34:38 +08:00
yaojingang 78f94e47fd docs: refresh review studio waiver evidence 2026-06-14 11:33:51 +08:00
yaojingang 9184fc4807 feat: show waiver candidates in review studio 2026-06-14 11:32:40 +08:00
yaojingang 20a3e5a60b docs: refresh review studio claim evidence 2026-06-14 11:20:10 +08:00
yaojingang 1488957a6c docs: refresh review studio package evidence 2026-06-14 11:19:18 +08:00
yaojingang 17000ab0fd feat: surface public claim gate in review studio 2026-06-14 11:17:35 +08:00
yaojingang 6fd49c90b1 docs: refresh benchmark claim boundary 2026-06-14 11:07:14 +08:00
yaojingang 340cc9773b feat: gate public benchmark claims 2026-06-14 11:06:14 +08:00
yaojingang 2ea9aa8495 feat: gate intake readiness on source evidence 2026-06-14 10:57:14 +08:00
yaojingang 985eaee14b feat: reject placeholder evidence submissions 2026-06-14 10:43:19 +08:00
yaojingang 3f0b262e5f feat: require world-class evidence artifacts 2026-06-14 10:32:25 +08:00
yaojingang d808071fb5 feat: govern deferred resource budget 2026-06-14 10:16:09 +08:00
yaojingang dfab5924c3 refactor: split review studio action guidance 2026-06-14 09:55:58 +08:00
yaojingang c6ee987bb5 feat: surface deferred resource context cost 2026-06-14 09:29:05 +08:00
yaojingang f03189a8b4 docs: refresh benchmark evidence bundle reports 2026-06-14 09:07:33 +08:00
yaojingang 165ef11daf feat: anchor benchmark reproducibility to evidence bundle 2026-06-14 09:03:26 +08:00
yaojingang c319a6fe99 feat: require validated world-class evidence submissions 2026-06-14 08:53:16 +08:00
yaojingang 48f2826b8c feat: verify world-class intake artifact integrity 2026-06-14 08:33:58 +08:00
yaojingang bd7f1d8ccc feat: include world-class runbook in benchmark evidence 2026-06-14 08:19:16 +08:00
yaojingang 5d1d3bbd30 feat: add world-class operator runbook 2026-06-14 08:06:56 +08:00
yaojingang 08347d5c2c feat: add world-class evidence cockpit 2026-06-14 07:45:14 +08:00
yaojingang 6b71aa2fb1 feat: add output review cockpit 2026-06-14 07:33:39 +08:00
yaojingang 834665b73c feat: link installer enforcement evidence 2026-06-14 07:16:41 +08:00
yaojingang 0cf7f32e32 feat: add output review kit 2026-06-14 06:56:44 +08:00
yaojingang ecdb16dd90 feat: add world-class submission review queue 2026-06-14 06:38:16 +08:00
yaojingang 30539bed7a feat: add world-class submission kit 2026-06-14 06:22:09 +08:00
yaojingang b540f580b3 feat: surface world-class submission state 2026-06-14 06:01:09 +08:00
yaojingang c5e7b05faa feat: add review waiver candidate guidance 2026-06-14 05:51:05 +08:00
yaojingang 8af7d75347 feat: add output review checklist 2026-06-14 05:40:37 +08:00
yaojingang 810885d70e feat: add world-class evidence intake checklist 2026-06-14 05:29:26 +08:00
yaojingang 088904f519 refactor: split yao creation commands 2026-06-14 05:16:15 +08:00
yaojingang 628acc5c35 refactor: split review viewer data assembly 2026-06-14 02:28:03 +08:00
yaojingang 479b098ccf refactor: split review studio data helpers 2026-06-14 02:18:09 +08:00
yaojingang d7018dac55 refactor: split yao cli report commands 2026-06-14 02:05:31 +08:00
yaojingang 7afde5ebaf feat: add architecture maintainability review gate 2026-06-14 01:54:00 +08:00
yaojingang ae0f72cccb feat: add python compatibility review gate 2026-06-14 01:35:36 +08:00
yaojingang 4737358f3c feat: add python compatibility gate 2026-06-14 01:21:21 +08:00
yaojingang ee4879f296 fix: keep claim guard compatible with python 3.11 2026-06-14 01:03:21 +08:00
yaojingang 2afb802a87 feat: guard world class completion claims 2026-06-14 01:00:44 +08:00
yaojingang c1c85093d1 feat: add world class evidence intake gate 2026-06-14 00:45:12 +08:00
yaojingang 60995ed569 feat: add skill os blueprint coverage audit 2026-06-14 00:25:01 +08:00
yaojingang 95a91bcb26 feat: add world class evidence details to review studio 2026-06-14 00:07:33 +08:00
yaojingang acc2cc2571 feat: surface world class evidence in review studio 2026-06-13 23:56:49 +08:00
yaojingang f3b23ea9b9 feat: add world class evidence ledger 2026-06-13 23:42:31 +08:00
yaojingang be3fe00161 feat: add benchmark reproducibility gate 2026-06-13 23:25:47 +08:00
yaojingang c2507af526 feat: add world class evidence plan 2026-06-13 23:10:35 +08:00
yaojingang 1b54596a82 feat: add skill os audit gate 2026-06-13 22:52:24 +08:00
yaojingang 164f33f818 feat: add telemetry native host 2026-06-13 22:33:28 +08:00
yaojingang 313fe0b37c feat: add telemetry hook recipes 2026-06-13 22:11:26 +08:00
yaojingang 8a10c43e86 feat: add telemetry emit hook 2026-06-13 21:56:31 +08:00
yaojingang 722b631412 feat: import external telemetry events 2026-06-13 21:39:20 +08:00
yaojingang d8a9fa6ebc feat: add opt-in CLI telemetry capture 2026-06-13 21:28:55 +08:00
yaojingang deedd557e6 feat: gate local install sync with preflight 2026-06-13 21:16:39 +08:00
yaojingang d9514412f0 feat: enforce permissions during install simulation 2026-06-13 21:01:27 +08:00
yaojingang e8cebf93bb fix: preserve blind review answer integrity 2026-06-13 20:44:46 +08:00
yaojingang 74541dd689 test: build drift evidence before atlas review 2026-06-13 20:34:51 +08:00
yaojingang e2933ce516 feat: surface telemetry drift in skill atlas 2026-06-13 20:29:01 +08:00
yaojingang 36dc46ab9b feat: package vscode skill target 2026-06-13 20:15:50 +08:00
yaojingang f42bed2c98 feat: add provider-backed output eval runner 2026-06-13 20:00:50 +08:00
yaojingang 233a8130b1 fix: expose output review decision template 2026-06-13 19:30:58 +08:00
yaojingang 1e0837122d fix: surface pending output review in studio 2026-06-13 19:24:33 +08:00
yaojingang e5c85b394f refactor: split meta skill CLI and review gates 2026-06-13 19:17:27 +08:00
390 changed files with 105925 additions and 10110 deletions
+4
View File
@@ -3,6 +3,7 @@ dist/
*.zip
__pycache__/
tests/tmp/
tests/tmp_*/
tests/tmp_snapshot/
tests/tmp_cli/
tests/tmp_skill_overview/
@@ -23,9 +24,12 @@ tests/tmp_baseline_compare.*
reports/release_snapshots/
reports/telemetry_events.jsonl
.yao/
evidence/world_class/submission-kit/
evidence/world_class/submissions/
# Local business-skill experiments belong outside this meta-skill repo unless promoted intentionally.
geo-ranking-article-generator/
# Private or one-off pattern analysis reports should not be committed as factory evidence.
reports/*pattern-analysis*.md
reports/*research-plan*.md
@@ -0,0 +1,72 @@
# Geo Content Brief Skill
## What It Does
`geo-content-brief-skill` is a reusable skill package for this job:
> 将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。
## 中文使用方式
1. 输入访谈纪要、关键词、渠道限制、竞品摘要、品牌禁区或已有内容方向。
2. 先判断请求是否属于“生成内容简报”,而不是完整长文、广告口号或品牌策略。
3.`references/brief-structure.md` 输出一页中文简报。
4.`references/review-checklist.md` 检查事实、结构、证据、风险和下一步动作。
5.`evals/trigger_cases.jsonl``evals/output_cases.jsonl` 做轻量回归。
## How To Use
1. Load the skill through `SKILL.md`.
2. Start with `reports/intent-dialogue.md` to tighten the real job, outputs, exclusions, and the standards you care about.
3. Open `reports/reference-scan.md` to capture external benchmarks and any user-supplied references worth learning from.
4. Review `reports/intent-confidence.md` to see whether the real job, inputs, outputs, and exclusions are clear enough yet.
5. Open `reports/reference-synthesis.md` to see the GitHub benchmarks plus curated official, research, and principle tracks in one place.
6. Follow the workflow steps in `SKILL.md`.
7. Check `reports/skill-overview.html` for the generated bilingual HTML skill audit report: overview, metrics, capability profile, principle, contract, quality, risk, assets, and iteration roadmap. It defaults to Simplified Chinese and includes an English switch in the top right.
8. Open `reports/review-studio.html` for the one-page Review Studio 2.0 gate view.
9. Record source-line reviewer comments in `reports/review_annotations.md` when review needs follow-up.
10. Open `reports/review-viewer.html` for a compact visual review of the package.
11. Check `reports/output-risk-profile.md` to see likely output mistakes and self-repair checks.
12. Check `reports/artifact-design-profile.md` to see the intended artifact direction, layout patterns, visual quality gates, and anti-patterns.
13. Check `reports/prompt-quality-profile.md` to see the need model, RTF-to-skill mapping, complexity, and prompt-facing quality matrix.
14. Review `reports/skill-ir.json` for the platform-neutral Skill IR contract before platform-specific packaging.
15. Review `reports/compiled_targets.md` to see how Skill IR compiles into OpenAI, Claude, generic, and Agent Skills compatible target contracts.
16. Review `reports/iteration-directions.md` for the three most valuable next moves.
17. Review `reports/system-model.md` to understand the boundary, feedback loops, drift watch, failure map, and highest-leverage next changes.
18. Review `reports/adoption_drift_report.md` to see local-first metadata-only adoption and drift signals.
19. Review `reports/review_waivers.md` to see human reviewer risk approvals and expiry dates.
## Honest Boundaries
- This package starts from the current intent frame and should not pretend to cover unclear adjacent jobs.
- The first version should ask for clarification when the real input, output, or exclusion boundary is still fuzzy.
- New structure should be added only when it earns its keep through evidence, validation, or reviewer need.
- It should not fabricate search volume, competitor rankings, customer quotes, or third-party evidence.
## Package Map
- `SKILL.md`: trigger and workflow entrypoint
- `agents/interface.yaml`: portable interface metadata
- `manifest.json`: lifecycle and packaging metadata
- `references/brief-structure.md`: 中文 GEO 内容简报结构、字段说明和质量标准
- `references/review-checklist.md`: 交付前编辑复核清单
- `evals/trigger_cases.jsonl`: 应触发和不应触发样例
- `evals/output_cases.jsonl`: 输出结构验收样例
- `reports/intent-dialogue.md`: front-loaded discovery questions for better boundary design and clearer human alignment
- `reports/intent-confidence.md`: current clarity score, open gaps, and the next follow-up questions worth asking
- `reports/github-benchmark-scan.md`: top public benchmark repositories, extracted patterns, and borrow or avoid notes
- `reports/reference-scan.md`: benchmark notes from public references, user references, and local constraints
- `reports/reference-synthesis.md`: a combined view of GitHub benchmarks plus curated world-class pattern tracks
- `reports/output-risk-profile.md`: predicted output failure modes and self-repair constraints for this skill
- `reports/artifact-design-profile.md`: artifact-specific design direction, layout patterns, visual quality gates, and anti-patterns
- `reports/prompt-quality-profile.md`: prompt-facing need model, RTF mapping, complexity, and quality matrix
- `reports/system-model.md`: systems-thinking model for boundary, feedback loops, drift, failure patterns, and leverage points
- `reports/skill-ir.json`: platform-neutral 2.0 Skill IR contract for trigger, workflow, resources, evals, risk, and governance
- `reports/compiled_targets.md`: target compiler report showing generated contracts, adapter modes, preserved semantics, warnings, and unsupported features
- `reports/skill-overview.html`: white-background bilingual HTML skill audit report with sticky four-character Chinese navigation, a top-right language switch, metrics, SVG charts, contract boundary, quality review, risk governance, assets, and iteration roadmap
- `reports/review-studio.html`: Review Studio 2.0 gate page for intent, trigger, output eval, context, runtime conformance, trust, atlas, and release readiness
- `reports/review-viewer.html`: compact review page for architecture, usage, feedback, and next steps
- `reports/iteration-directions.md`: the top three next iteration directions
- `reports/adoption_drift_report.md`: local-first metadata-only telemetry summary for adoption, missed triggers, bad outputs, script errors, and review drift
- `reports/review_waivers.md`: human reviewer risk approval ledger for warning acceptance and expiry
- `reports/review_annotations.md`: source-line reviewer comments linked to Review Studio gates
@@ -0,0 +1,57 @@
---
name: geo-content-brief-skill
description: "将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。"
---
# Geo Content Brief Skill
## When To Use This Skill
- 用户提供访谈纪要、关键词、竞品片段、产品卖点或渠道限制,希望沉淀为中文内容简报。
- 团队需要把零散输入转换成可执行的 GEO 内容选题、角度、结构、证据和交付要求。
- 需要先明确触发边界、输入缺口和输出验收标准,再进入内容生产。
## Workflow
1. 读取用户输入,识别目标受众、内容渠道、关键词、品牌边界、禁止表达和必须覆盖的信息。
2. 对照 `references/brief-structure.md` 生成简报骨架:目标、洞察、角度、关键词、结构、证据、风险和验收标准。
3. 如果缺少核心输入,先提出最多三个澄清问题,不用假设补全用户没有提供的事实。
4.`evals/trigger_cases.jsonl` 检查当前请求是否属于 GEO 内容简报场景。
5.`evals/output_cases.jsonl` 检查输出是否包含输入摘要、内容结构、证据要求、禁区和下一步动作。
6. 交付前回看渠道限制和品牌禁区,删除空泛营销话术、无来源断言和不可执行建议。
## Inputs
- 访谈纪要、销售反馈、客户问题或专家观点。
- 关键词、搜索意图、竞品页面摘要或排名线索。
- 目标渠道、目标读者、品牌口径、禁用词和交付格式。
## Outputs
- 一页中文内容简报,包含目标、受众、核心洞察、推荐角度、文章结构、关键词布置、证据需求和风险提示。
- 缺口清单,说明继续生产前必须补齐的信息。
- 下一步动作,面向写作者、编辑或 SEO/GEO 负责人。
## Output Quality Guardrails
- Before final output, apply the likely failure modes in `reports/output-risk-profile.md` when that report is present.
- Before rendering reports, tutorials, review pages, dashboards, or visual artifacts, apply the artifact direction and visual quality gates in `reports/artifact-design-profile.md` when that report is present.
- When prompt behavior, role design, dialogue quality, or output contracts matter, apply `reports/prompt-quality-profile.md` when that report is present.
- Before adding more structure, apply the boundary, feedback-loop, drift, and leverage-point checks in `reports/system-model.md` when that report is present.
- Repair generic headings, cluttered notes, fragile visual assumptions, weak tables, and missing verification cues before handing work back.
- Map role, task, and format into skill behavior rather than copying a large prompt template into `SKILL.md`.
- Let the artifact's content choose the visual system; do not copy a fixed palette or report style from another skill without a clear reason.
- If output-specific evidence is missing, state the gap instead of inventing screenshots, citations, data, or examples.
## Honest Boundaries
- 不直接代写完整长文,不替代品牌策略判断,不伪造竞品数据、搜索量、排名或引用来源。
- 当用户只想要标题灵感、广告文案、舆情分析或完整文章撰写时,不应触发本 Skill。
- 缺少目标读者、渠道或关键词时,先收紧输入,再输出简报。
## Reference Map
- `references/brief-structure.md`: 中文 GEO 内容简报结构、字段说明和质量标准。
- `references/review-checklist.md`: 交付前的编辑复核清单。
- `evals/trigger_cases.jsonl`: 应触发和不应触发样例。
- `evals/output_cases.jsonl`: 输出结构验收样例。
@@ -0,0 +1,29 @@
interface:
display_name: "Geo Content Brief Skill"
short_description: "将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。"
default_prompt: "当你需要把访谈纪要、关键词、竞品线索和渠道限制整理成中文 GEO 内容简报时,使用 $geo-content-brief-skill。"
compatibility:
canonical_format: "agent-skills"
adapter_targets:
- "openai"
- "claude"
- "generic"
- "vscode"
activation:
mode: "manual"
paths:
- "SKILL.md"
- "references/brief-structure.md"
- "evals/trigger_cases.jsonl"
execution:
context: "inline"
shell: "bash"
trust:
source_tier: "local"
remote_inline_execution: "forbid"
remote_metadata_policy: "allow-metadata-only"
degradation:
openai: "metadata-adapter"
claude: "neutral-source-plus-adapter"
generic: "neutral-source"
vscode: "agent-skills-source-with-vscode-notes"
@@ -0,0 +1,2 @@
{"id":"brief_minimum_contract","input":"访谈纪要、关键词、渠道、品牌禁区","must_include":["输入摘要","目标读者","搜索意图","内容角度","结构建议","证据需求","风险禁区","下一步动作"],"must_not_include":["虚构搜索量","无来源竞品排名","完整长文正文"]}
{"id":"missing_evidence_behavior","input":"只有关键词,没有访谈、渠道和品牌限制","must_include":["缺口清单","最多三个澄清问题","待补充证据"],"must_not_include":["假设用户品牌口径","编造客户原话"]}
@@ -0,0 +1,4 @@
{"id":"should_geo_interview_notes","input":"这里有一段客户访谈和 8 个 GEO 关键词,帮我整理成一份中文内容简报,给写作者用。","expected":"trigger","reason":"用户明确要把访谈和关键词整理为内容简报。"}
{"id":"should_competitor_brief","input":"把这些竞品页面摘要、品牌禁区和知乎渠道限制整理成一页选题简报。","expected":"trigger","reason":"输入包含竞品、品牌边界和渠道约束,输出是一页简报。"}
{"id":"should_not_full_article","input":"根据这些关键词直接帮我写一篇 3000 字完整文章。","expected":"no_trigger","reason":"用户要完整长文写作,不是生成内容简报。"}
{"id":"should_not_ad_copy","input":"给这个活动想 20 条广告口号,越短越好。","expected":"no_trigger","reason":"广告口号生成不属于 GEO 内容简报。"}
@@ -0,0 +1,24 @@
{
"name": "geo-content-brief-skill",
"version": "0.1.0",
"owner": "Yao Team",
"updated_at": "2026-06-15",
"status": "active",
"maturity_tier": "production",
"lifecycle_stage": "production-preview",
"context_budget_tier": "production",
"review_cadence": "per-release",
"skill_archetype": "production",
"target_platforms": [
"openai",
"claude",
"generic",
"agent-skills-compatible",
"vscode"
],
"factory_components": [
"references",
"scripts",
"reports"
]
}
@@ -0,0 +1,23 @@
# GEO 内容简报结构
## 目标
把零散材料整理成写作者可以直接执行的一页内容简报。简报应帮助团队快速判断:写给谁、解决什么问题、采用什么角度、需要哪些证据、哪些话不能说。
## 推荐字段
- 项目背景:产品、业务目标、目标渠道和期望交付物。
- 目标读者:读者身份、已知问题、决策阶段和内容理解门槛。
- 搜索意图:核心关键词、近义词、长尾问题和需要避开的无关意图。
- 内容角度:建议主张、差异化角度、可引用观点和与竞品的区分点。
- 结构建议:标题方向、章节顺序、每节回答的问题和必要证据。
- 证据需求:内部数据、案例、截图、第三方来源、专家观点或客户原话。
- 风险禁区:禁止承诺、敏感表述、未证实数据、品牌不采用的语气。
- 验收标准:完成后需要检查的结构、事实、语气、关键词和行动建议。
## 质量标准
- 每个推荐角度都应能追溯到输入材料或明确标记为待验证假设。
- 缺少事实证据时写“待补充证据”,不要编造来源。
- 输出要服务内容生产交接,避免泛泛的市场建议。
- 中文表达要具体、可执行、便于编辑继续拆稿。
@@ -0,0 +1,11 @@
# 内容简报复核清单
交付前按以下顺序检查:
1. 输入摘要是否覆盖访谈、关键词、渠道限制和品牌禁区。
2. 目标读者是否具体到角色、问题和决策阶段。
3. 推荐角度是否能从输入材料中找到依据。
4. 文章结构是否能直接分配给写作者执行。
5. 证据需求是否列出已拥有证据和待补证据。
6. 风险提示是否包含禁用表达、未证实数据和不应承诺的结果。
7. 下一步动作是否明确谁继续补材料、谁写稿、谁审核。
@@ -0,0 +1,62 @@
{
"ok": true,
"schema_version": "2.0",
"generated_at": "2026-06-15T09:03:27Z",
"skill_dir": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill",
"privacy_contract": {
"storage": "local-first",
"event_scope": "metadata-only",
"raw_content_allowed": false,
"raw_event_log_packaged": false,
"blocked_fields": [
"content",
"input",
"inputs",
"message",
"messages",
"note",
"output",
"outputs",
"prompt",
"raw",
"text",
"transcript"
]
},
"summary": {
"event_count": 0,
"adoption_sample_count": 0,
"activation_count": 0,
"accepted_count": 0,
"edited_count": 0,
"rejected_count": 0,
"missed_count": 0,
"failed_count": 0,
"adoption_rate": 0,
"missed_trigger_count": 0,
"wrong_trigger_count": 0,
"bad_output_count": 0,
"script_error_count": 0,
"missing_resource_count": 0,
"review_overdue_count": 0,
"risk_band": "no-data",
"event_types": {},
"failure_types": {},
"source_types": {},
"command_counts": {}
},
"adoption_by_skill": [],
"next_iteration_candidates": [
{
"signal": "no telemetry",
"recommendation": "Start with a small metadata-only sample before using telemetry for release decisions."
}
],
"recent_events": [],
"failures": [],
"artifacts": {
"events_jsonl": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/telemetry_events.jsonl",
"json": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/adoption_drift_report.json",
"markdown": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/adoption_drift_report.md"
}
}
@@ -0,0 +1,36 @@
# Adoption And Drift Report
Local-first, metadata-only telemetry for skill operations. Raw prompts, outputs, transcripts, and notes are not allowed in the event stream.
## Summary
- Events: `0`
- Adoption samples: `0`
- Activation events: `0`
- Adoption rate: `0`
- Missed trigger signals: `0`
- Bad output signals: `0`
- Script error signals: `0`
- Review overdue signals: `0`
- Risk band: `no-data`
## Privacy Contract
- Storage is local-first.
- Events are metadata-only.
- Raw user prompts, model outputs, transcripts, notes, and messages are blocked.
- Distributed packages should include this aggregate report, not raw `reports/telemetry_events.jsonl`.
## Adoption By Skill
| Skill | Events | Adoption Samples | Accepted | Edited | Rejected | Missed | Adoption Rate |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| `none` | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
## Next Iteration Candidates
- `no telemetry`: Start with a small metadata-only sample before using telemetry for release decisions.
## Recent Metadata Events
- No metadata events captured yet.
@@ -0,0 +1,115 @@
{
"skill_name": "geo-content-brief-skill",
"design_system": "metric editorial",
"primary_artifact": {
"key": "report",
"label": "Report or brief",
"direction": "High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail.",
"matched_keywords": [
"report",
"brief",
"简报"
]
},
"artifact_families": [
{
"key": "report",
"label": "Report or brief",
"score": 3,
"matched_keywords": [
"report",
"brief",
"简报"
],
"direction": "High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail."
},
{
"key": "review_viewer",
"label": "Review viewer",
"score": 2,
"matched_keywords": [
"review",
"审查"
],
"direction": "Side-by-side reviewer studio with explicit tradeoffs, evidence readiness, and fast paths for approving, blocking, or requesting one focused fix."
},
{
"key": "dashboard",
"label": "Dashboard or metrics page",
"score": 2,
"matched_keywords": [
"dashboard",
"table"
],
"direction": "Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation."
},
{
"key": "tutorial",
"label": "Tutorial or guide",
"score": 1,
"matched_keywords": [
"tutorial"
],
"direction": "Progressive instructional layout with domain-specific section names, short success checks, and examples close to the user's real input."
},
{
"key": "visual_capture",
"label": "Screenshot or visual evidence",
"score": 1,
"matched_keywords": [
"screenshot"
],
"direction": "Evidence-led visual artifact that records source, viewport, crop intent, and the exact region the reader should inspect."
}
],
"layout_patterns": [
"thesis",
"evidence blocks",
"decision table",
"risks",
"next actions",
"summary",
"variant comparison",
"evidence"
],
"design_tokens": {
"type": [
"Use a distinctive display face or serif for major claims when the artifact is editorial.",
"Use a restrained sans for dense body text and technical details.",
"Use mono only for metadata, paths, commands, labels, and evidence tags."
],
"color": [
"Choose colors from the artifact's domain, brand, or evidence mood.",
"Do not default to Kami parchment, purple gradients, or generic SaaS blue unless the content justifies it.",
"Keep accent color limited to decisions, active states, risk, or section anchors."
],
"spacing": [
"Prefer clear grid rhythm over floating decorative cards.",
"Increase whitespace around decisions and shrink whitespace around supporting metadata.",
"Split dense content instead of shrinking type or adding scroll traps."
],
"components": [
"Use cards for grouped evidence, tables for comparisons, callouts for decisions, and timelines for sequence.",
"Avoid cards inside cards.",
"Keep reviewer-only detail visible but visually quieter than user-facing guidance."
]
},
"quality_gates": [
"Keep the first screen useful without requiring the reader to parse every detail.",
"Use tables only for comparisons; move explanations below the table.",
"Keep source notes readable without flooding the body with markers.",
"Make differences visible instead of hiding them in prose.",
"Separate author-facing recommendations from reviewer-only evidence.",
"Surface conflicts clearly and keep routine benchmark synthesis quiet.",
"Avoid paragraph-heavy table cells.",
"Keep charts tied to one analytical question each."
],
"anti_patterns": [
"Do not copy Kami's fixed parchment background as a default.",
"Do not use generic purple gradients, glass cards, or stock SaaS hero sections unless the content calls for them.",
"Do not let Markdown tables become the default shape for every comparison or explanation.",
"Do not turn reviewer evidence into user-facing clutter.",
"Do not invent screenshots, citations, charts, or UI states."
],
"reviewer_note": "Use this profile to judge whether the generated artifacts feel designed for their job, not merely rendered."
}
@@ -0,0 +1,93 @@
# Artifact Design Profile
Skill: `geo-content-brief-skill`
Design system: `metric editorial`
## Primary Artifact Direction
**Report or brief**
High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail.
## Matched Artifact Families
### Report or brief
- Matched keywords: report, brief, 简报
- Score: `3`
- Direction: High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail.
### Review viewer
- Matched keywords: review, 审查
- Score: `2`
- Direction: Side-by-side reviewer studio with explicit tradeoffs, evidence readiness, and fast paths for approving, blocking, or requesting one focused fix.
### Dashboard or metrics page
- Matched keywords: dashboard, table
- Score: `2`
- Direction: Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation.
### Tutorial or guide
- Matched keywords: tutorial
- Score: `1`
- Direction: Progressive instructional layout with domain-specific section names, short success checks, and examples close to the user's real input.
### Screenshot or visual evidence
- Matched keywords: screenshot
- Score: `1`
- Direction: Evidence-led visual artifact that records source, viewport, crop intent, and the exact region the reader should inspect.
## Layout Patterns To Prefer
- thesis
- evidence blocks
- decision table
- risks
- next actions
- summary
- variant comparison
- evidence
## Design Tokens
### Type
- Use a distinctive display face or serif for major claims when the artifact is editorial.
- Use a restrained sans for dense body text and technical details.
- Use mono only for metadata, paths, commands, labels, and evidence tags.
### Color
- Choose colors from the artifact's domain, brand, or evidence mood.
- Do not default to Kami parchment, purple gradients, or generic SaaS blue unless the content justifies it.
- Keep accent color limited to decisions, active states, risk, or section anchors.
### Spacing
- Prefer clear grid rhythm over floating decorative cards.
- Increase whitespace around decisions and shrink whitespace around supporting metadata.
- Split dense content instead of shrinking type or adding scroll traps.
### Components
- Use cards for grouped evidence, tables for comparisons, callouts for decisions, and timelines for sequence.
- Avoid cards inside cards.
- Keep reviewer-only detail visible but visually quieter than user-facing guidance.
## Quality Gates
- Keep the first screen useful without requiring the reader to parse every detail.
- Use tables only for comparisons; move explanations below the table.
- Keep source notes readable without flooding the body with markers.
- Make differences visible instead of hiding them in prose.
- Separate author-facing recommendations from reviewer-only evidence.
- Surface conflicts clearly and keep routine benchmark synthesis quiet.
- Avoid paragraph-heavy table cells.
- Keep charts tied to one analytical question each.
## Anti-Patterns
- Do not copy Kami's fixed parchment background as a default.
- Do not use generic purple gradients, glass cards, or stock SaaS hero sections unless the content calls for them.
- Do not let Markdown tables become the default shape for every comparison or explanation.
- Do not turn reviewer evidence into user-facing clutter.
- Do not invent screenshots, citations, charts, or UI states.
## Reviewer Note
Use this profile to judge whether the generated artifacts feel designed for their job, not merely rendered.
@@ -0,0 +1,73 @@
# Compiled Targets
- OK: `True`
- Targets: `5`
- Pass: `5`
- Warn: `0`
- Block: `0`
## Target Transforms
| Target | Status | Native Surface | Adapter Mode | Permissions | Degradation | Generated Files |
| --- | --- | --- | --- | --- | --- | --- |
| `openai` | `pass` | OpenAI-style interface metadata plus neutral Agent Skills source | `metadata-adapter` | `none` | `metadata-adapter` | targets/openai/adapter.json, targets/openai/agents/openai.yaml |
| `claude` | `pass` | Claude-compatible neutral source folder with adapter notes | `neutral-source-plus-adapter` | `none` | `neutral-source-plus-adapter` | targets/claude/adapter.json, targets/claude/README.md |
| `generic` | `pass` | Agent Skills compatible neutral package | `agent-skills-compatible` | `none` | `neutral-source` | targets/generic/adapter.json |
| `agent-skills-compatible` | `pass` | Agent Skills standard source tree | `neutral-agent-skills-source` | `none` | `neutral-source` | SKILL.md, agents/interface.yaml |
| `vscode` | `pass` | VS Code/Copilot Agent Skills project or user scope | `vscode-agent-skills-adapter` | `none` | `agent-skills-source-with-vscode-notes` | targets/vscode/adapter.json, targets/vscode/README.md |
## Native Behavior Contracts
### openai
- Native surface: OpenAI-style interface metadata plus neutral Agent Skills source
- Activation: Use frontmatter description for catalog routing and targets/openai/agents/openai.yaml for display name, default prompt, and compatibility metadata.
- Resources: Ship the neutral source tree and expose OpenAI-facing interface metadata as a generated companion file.
- Scripts: Keep scripts as local package resources; expose help-smoke and permission metadata for reviewer approval before execution.
- Permission enforcement: `metadata-only`; native enforcement `False`
- Review artifacts: targets/openai/agents/openai.yaml, targets/openai/adapter.json, reports/review-studio.html
### claude
- Native surface: Claude-compatible neutral source folder with adapter notes
- Activation: Use SKILL.md frontmatter description as the primary activation contract and adapter.json for review metadata.
- Resources: Preserve the source tree directly; write target notes in targets/claude/README.md.
- Scripts: Scripts remain local package resources and must be reviewed through trust and permission reports before use.
- Permission enforcement: `metadata-fallback`; native enforcement `False`
- Review artifacts: targets/claude/README.md, targets/claude/adapter.json, reports/review-studio.html
### generic
- Native surface: Agent Skills compatible neutral package
- Activation: Use SKILL.md name and description; consumers decide automatic or manual activation.
- Resources: Preserve references, scripts, assets, evals, reports, and adapter metadata as relative package resources.
- Scripts: Expose script and permission metadata for downstream clients or installers to enforce.
- Permission enforcement: `consumer-enforced-or-metadata-only`; native enforcement `False`
- Review artifacts: targets/generic/adapter.json, reports/review-studio.html
### agent-skills-compatible
- Native surface: Agent Skills standard source tree
- Activation: Use SKILL.md frontmatter name and description for progressive disclosure.
- Resources: Keep optional directories as relative resources next to SKILL.md.
- Scripts: Scripts remain local optional resources and should advertise --help when executable.
- Permission enforcement: `consumer-enforced-or-metadata-only`; native enforcement `False`
- Review artifacts: SKILL.md, agents/interface.yaml, reports/review-studio.html
### vscode
- Native surface: VS Code/Copilot Agent Skills project or user scope
- Activation: Use folder name plus SKILL.md name/description; keep description under platform limits.
- Resources: Install as project or user scoped skill source, preserving relative references and scripts.
- Scripts: Scripts require workspace trust and operator/client approval outside this compiler.
- Permission enforcement: `client-or-workspace-trust`; native enforcement `False`
- Review artifacts: SKILL.md, agents/interface.yaml, reports/review-studio.html
## Failures
- None
## Warnings
- None
@@ -0,0 +1,83 @@
{
"score": 10,
"band": "low",
"gate_passed": false,
"strengths": [],
"gaps": [
{
"key": "job_specificity",
"label": "Recurring job is still generic",
"reason": "The current job statement sounds more like a packaging goal than a concrete repeated task.",
"severity": "high"
},
{
"key": "real_inputs",
"label": "Real inputs are missing",
"reason": "Without real inputs, it is hard to choose assets, scripts, or examples.",
"severity": "high"
},
{
"key": "primary_output",
"label": "Primary output is missing",
"reason": "The package does not yet know what it must hand back.",
"severity": "high"
},
{
"key": "exclusions",
"label": "Near-neighbor exclusions are missing",
"reason": "The route may blur into nearby requests without an exclusion list.",
"severity": "high"
},
{
"key": "constraints",
"label": "Constraints are missing",
"reason": "The package does not yet know which tradeoffs matter most.",
"severity": "high"
},
{
"key": "standards",
"label": "Quality bar is implied, not explicit",
"reason": "The first evaluation target is still underspecified.",
"severity": "medium"
}
],
"follow_up_questions": [
{
"slot": "job",
"question": "If you say it plainly, what concrete repeated task should this skill own every time?",
"why": "A skill needs a real recurring job, not only a generic packaging goal.",
"list": false,
"label": "Recurring job is still generic",
"severity": "high"
},
{
"slot": "real_inputs",
"question": "What material will people actually hand to this skill in practice?",
"why": "Real input shape decides whether references, scripts, or examples are needed.",
"list": true,
"label": "Real inputs are missing",
"severity": "high"
},
{
"slot": "primary_output",
"question": "What finished hand-back should this skill return so the next person can keep moving?",
"why": "The output is the anchor for package design and review.",
"list": false,
"label": "Primary output is missing",
"severity": "high"
}
],
"anchor_sentence": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"recommended_action": "Pause before deep authoring and close the highest-leverage gaps first.",
"context": {
"job": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"real_inputs": [],
"primary_output": "",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"exclusions": [],
"constraints": [],
"standards": [],
"correction": "",
"user_references": []
}
}
@@ -0,0 +1,32 @@
# Intent Confidence
- Confidence score: `10/100`
- Confidence band: `low`
- Gate passed: `False`
- Recommended action: Pause before deep authoring and close the highest-leverage gaps first.
## Current Reading
将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
## Strong Signals
- No strong signals yet.
## Gaps To Close
- **Recurring job is still generic** (`high`): The current job statement sounds more like a packaging goal than a concrete repeated task.
- **Real inputs are missing** (`high`): Without real inputs, it is hard to choose assets, scripts, or examples.
- **Primary output is missing** (`high`): The package does not yet know what it must hand back.
- **Near-neighbor exclusions are missing** (`high`): The route may blur into nearby requests without an exclusion list.
- **Constraints are missing** (`high`): The package does not yet know which tradeoffs matter most.
- **Quality bar is implied, not explicit** (`medium`): The first evaluation target is still underspecified.
## Follow-Up Questions
- **If you say it plainly, what concrete repeated task should this skill own every time?**
- Why: A skill needs a real recurring job, not only a generic packaging goal.
- **What material will people actually hand to this skill in practice?**
- Why: Real input shape decides whether references, scripts, or examples are needed.
- **What finished hand-back should this skill return so the next person can keep moving?**
- Why: The output is the anchor for package design and review.
@@ -0,0 +1,11 @@
{
"job": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"real_inputs": [],
"primary_output": "",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"exclusions": [],
"constraints": [],
"standards": [],
"correction": "",
"user_references": []
}
@@ -0,0 +1,79 @@
{
"skill_name": "geo-content-brief-skill",
"title": "Geo Content Brief Skill",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"focus": "trigger-and-output",
"opening_frame": "Let's start from the real work, the result you care about, and the standards that matter here. We can make the structure clearer after that.",
"reference_note": "If you already have examples you admire, bring them in. We will learn the pattern, not copy the source.",
"conversation_path": [
"Start with the user's own words, not package vocabulary.",
"Reflect the job, output, and non-goals back in one clean sentence.",
"Only then offer a tiny scaffold if it would help the user move faster."
],
"opening_styles": [
{
"label": "温柔陪伴型",
"best_when": "用户想法还散、还在试探,或者需要先被接住。",
"message": "我们先不急着把它说成一个很完整的 skill。你就像跟我聊天一样,先说说你最想让它以后稳稳接住哪类重复工作;如果它做得很理想,最后应该交回你一个什么结果。"
},
{
"label": "专业教练型",
"best_when": "用户目标比较明确,希望被高效带着走。",
"message": "我们先把这件事讲清楚,再决定 skill 怎么设计。你先告诉我三件事:它要接住的重复任务是什么,别人通常会给它什么材料,最后你希望它交付什么结果。"
},
{
"label": "共创伙伴型",
"best_when": "用户已经有一些想法,希望一起打磨,不想被填表。",
"message": "我们把这次当成一次共创。你先给我一个粗糙版本就行,我先帮你看它真正的核心任务是什么,再一起决定边界、结构和接下来最值的一步。"
}
],
"optional_scaffold": [
"The repeated job it should reliably handle",
"The real inputs people will hand to it",
"The useful output it should hand back",
"What it should clearly refuse"
],
"questions": [
{
"question": "If this skill worked beautifully, what recurring job would it reliably handle for the user every time?",
"why": "This reveals the real job-to-be-done and gives the package a humane center instead of a guessed prompt shape."
},
{
"question": "When someone reaches for this skill in the real world, what materials will they actually hand to it?",
"why": "Input shape decides whether references, scripts, or templates are needed."
},
{
"question": "What finished output should it hand back so the user can immediately keep moving?",
"why": "Outputs should drive the package structure before extra guidance is added."
},
{
"question": "Which nearby requests should this skill politely refuse so the boundary stays clean?",
"why": "The exclusion list is the fastest route to better trigger quality."
},
{
"question": "What matters most here: speed, consistency, auditability, portability, governance, or tone/style fit?",
"why": "Constraints decide how much structure, packaging, and review the skill actually needs."
},
{
"question": "Do you already have any references you want this skill to learn from, such as a repo, product, page, workflow, or prompt example?",
"why": "A good reference can raise the quality bar quickly, but the skill should only borrow patterns and standards, never copy wording or confidential material."
},
{
"question": "What repeated manual step should become a deterministic asset first?",
"why": "This usually reveals whether a script or reference should be created next."
}
],
"output": {
"capability_sentence": "Geo Content Brief Skill should turn a recurring request into a reliable reusable output without widening the boundary unnecessarily.",
"required_capture": [
"recurring job",
"real inputs",
"required outputs",
"exclusions",
"constraints",
"reference preferences",
"first evaluation target"
],
"recommended_first_gate": "trigger and boundary"
}
}
@@ -0,0 +1,75 @@
# Intent Dialogue
Skill: `geo-content-brief-skill`
## Opening Frame
Let's start from the real work, the result you care about, and the standards that matter here. We can make the structure clearer after that.
## Opening Tone Options
### 温柔陪伴型
- Best when: 用户想法还散、还在试探,或者需要先被接住。
- Example: 我们先不急着把它说成一个很完整的 skill。你就像跟我聊天一样,先说说你最想让它以后稳稳接住哪类重复工作;如果它做得很理想,最后应该交回你一个什么结果。
### 专业教练型
- Best when: 用户目标比较明确,希望被高效带着走。
- Example: 我们先把这件事讲清楚,再决定 skill 怎么设计。你先告诉我三件事:它要接住的重复任务是什么,别人通常会给它什么材料,最后你希望它交付什么结果。
### 共创伙伴型
- Best when: 用户已经有一些想法,希望一起打磨,不想被填表。
- Example: 我们把这次当成一次共创。你先给我一个粗糙版本就行,我先帮你看它真正的核心任务是什么,再一起决定边界、结构和接下来最值的一步。
## Conversation Path
1. Start with the user's own words, not package vocabulary.
2. Reflect the job, output, and non-goals back in one clean sentence.
3. Only then offer a tiny scaffold if it would help the user move faster.
## Why Start Here
Use this short dialogue before deep authoring. The goal is to learn the real job, output, exclusions, and constraints so the first package is small but accurate.
## Current Anchor
- Title: `Geo Content Brief Skill`
- Description: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
- Focus: `trigger-and-output`
- Reference note: If you already have examples you admire, bring them in. We will learn the pattern, not copy the source.
## Questions To Ask
1. If this skill worked beautifully, what recurring job would it reliably handle for the user every time?
Why: This reveals the real job-to-be-done and gives the package a humane center instead of a guessed prompt shape.
2. When someone reaches for this skill in the real world, what materials will they actually hand to it?
Why: Input shape decides whether references, scripts, or templates are needed.
3. What finished output should it hand back so the user can immediately keep moving?
Why: Outputs should drive the package structure before extra guidance is added.
4. Which nearby requests should this skill politely refuse so the boundary stays clean?
Why: The exclusion list is the fastest route to better trigger quality.
5. What matters most here: speed, consistency, auditability, portability, governance, or tone/style fit?
Why: Constraints decide how much structure, packaging, and review the skill actually needs.
6. Do you already have any references you want this skill to learn from, such as a repo, product, page, workflow, or prompt example?
Why: A good reference can raise the quality bar quickly, but the skill should only borrow patterns and standards, never copy wording or confidential material.
7. What repeated manual step should become a deterministic asset first?
Why: This usually reveals whether a script or reference should be created next.
## Capture Before Drafting
- Capability sentence: Geo Content Brief Skill should turn a recurring request into a reliable reusable output without widening the boundary unnecessarily.
- Recommended first gate: `trigger and boundary`
- Tiny optional scaffold:
- The repeated job it should reliably handle
- The real inputs people will hand to it
- The useful output it should hand back
- What it should clearly refuse
- Capture: `recurring job`
- Capture: `real inputs`
- Capture: `required outputs`
- Capture: `exclusions`
- Capture: `constraints`
- Capture: `reference preferences`
- Capture: `first evaluation target`
@@ -0,0 +1,52 @@
{
"summary": {
"skill_name": "geo-content-brief-skill",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"maturity_tier": "scaffold",
"selection_rule": "Pick the three smallest next steps that increase reliability more than they increase context cost.",
"recommended_now": "Tighten trigger and exclusions",
"recommended_now_why": "The package needs clearer near-neighbor exclusions before it grows.",
"defer_for_now": "Promote from scaffold to production-ready"
},
"directions": [
{
"priority": 1,
"title": "Tighten trigger and exclusions",
"why": "The package needs clearer near-neighbor exclusions before it grows.",
"actions": [
"Add 3 to 5 should-trigger and should-not-trigger examples.",
"Refine the frontmatter description to name the recurring job and non-goals.",
"Run a first trigger evaluation pass before expanding the package."
],
"unlocks": "Cleaner routing and fewer accidental activations.",
"do_now": "Do this first.",
"wait_on": "Wait to add broader structure until this move clearly improves reliability."
},
{
"priority": 2,
"title": "Add the first execution asset",
"why": "The package is still mostly prose. Add one asset that removes repeated manual work.",
"actions": [
"Move stable procedural guidance into references if users will need it repeatedly.",
"Create one deterministic helper script if a repeated step can be executed instead of described.",
"Keep the main SKILL.md compact and route-oriented."
],
"unlocks": "Stronger execution quality without bloating the entrypoint.",
"do_now": "Do this after the first move lands cleanly.",
"wait_on": "Wait until the package has evidence that this extra structure is justified."
},
{
"priority": 3,
"title": "Promote from scaffold to production-ready",
"why": "The first version exists; the next gain usually comes from adding the smallest useful gates.",
"actions": [
"Decide whether this skill is personal, team-reused, or library-grade.",
"Add only the gates that match that risk level.",
"Record lifecycle metadata and review cadence once reuse becomes real."
],
"unlocks": "A clearer path from exploratory package to maintained asset.",
"do_now": "Do this after the first move lands cleanly.",
"wait_on": "Wait until the package has evidence that this extra structure is justified."
}
]
}
@@ -0,0 +1,62 @@
# Iteration Directions
Skill: `geo-content-brief-skill`
- Maturity tier: `scaffold`
- Selection rule: Pick the three smallest next steps that increase reliability more than they increase context cost.
- Start here: `Tighten trigger and exclusions`
- Why first: The package needs clearer near-neighbor exclusions before it grows.
- Defer for now: `Promote from scaffold to production-ready`
## Top 3 Next Moves
### 1. Tighten trigger and exclusions
- Why now: The package needs clearer near-neighbor exclusions before it grows.
- Timing: Do this first.
- Recommended actions:
- Add 3 to 5 should-trigger and should-not-trigger examples.
- Unlocks: Cleaner routing and fewer accidental activations.
- Wait on: Wait to add broader structure until this move clearly improves reliability.
- Refine the frontmatter description to name the recurring job and non-goals.
- Unlocks: Cleaner routing and fewer accidental activations.
- Wait on: Wait to add broader structure until this move clearly improves reliability.
- Run a first trigger evaluation pass before expanding the package.
- Unlocks: Cleaner routing and fewer accidental activations.
- Wait on: Wait to add broader structure until this move clearly improves reliability.
### 2. Add the first execution asset
- Why now: The package is still mostly prose. Add one asset that removes repeated manual work.
- Timing: Do this after the first move lands cleanly.
- Recommended actions:
- Move stable procedural guidance into references if users will need it repeatedly.
- Unlocks: Stronger execution quality without bloating the entrypoint.
- Wait on: Wait until the package has evidence that this extra structure is justified.
- Create one deterministic helper script if a repeated step can be executed instead of described.
- Unlocks: Stronger execution quality without bloating the entrypoint.
- Wait on: Wait until the package has evidence that this extra structure is justified.
- Keep the main SKILL.md compact and route-oriented.
- Unlocks: Stronger execution quality without bloating the entrypoint.
- Wait on: Wait until the package has evidence that this extra structure is justified.
### 3. Promote from scaffold to production-ready
- Why now: The first version exists; the next gain usually comes from adding the smallest useful gates.
- Timing: Do this after the first move lands cleanly.
- Recommended actions:
- Decide whether this skill is personal, team-reused, or library-grade.
- Unlocks: A clearer path from exploratory package to maintained asset.
- Wait on: Wait until the package has evidence that this extra structure is justified.
- Add only the gates that match that risk level.
- Unlocks: A clearer path from exploratory package to maintained asset.
- Wait on: Wait until the package has evidence that this extra structure is justified.
- Record lifecycle metadata and review cadence once reuse becomes real.
- Unlocks: A clearer path from exploratory package to maintained asset.
- Wait on: Wait until the package has evidence that this extra structure is justified.
@@ -0,0 +1,147 @@
{
"skill_name": "geo-content-brief-skill",
"risk_families": [
{
"key": "markdown_readability",
"label": "Markdown readability",
"matched_keywords": [
"md",
"table",
"report",
"brief"
],
"score": 4,
"risks": [
"Tables can render as dense grids with weak hierarchy or poor mobile readability.",
"Long bullets can make the output look complete while hiding the actual decision logic.",
"Mixed heading levels can reduce scanability."
],
"constraints": [
"Use tables only when comparison is the main job; otherwise prefer compact cards or grouped bullets.",
"Keep table cells short and move explanations below the table.",
"Use heading levels consistently and keep each section anchored to a user-facing outcome."
],
"self_repair": [
"Preview whether each table still reads well when columns are narrow.",
"Convert any table with paragraph-length cells into bullets or cards."
]
},
{
"key": "visual_capture",
"label": "Screenshot and visual capture",
"matched_keywords": [
"screenshot",
"visual",
"screen"
],
"score": 3,
"risks": [
"Screenshots can be captured from the wrong state, wrong viewport, or wrong crop.",
"Missing screenshots can cause the skill to invent visual references instead of declaring the gap.",
"Image descriptions can omit the action-relevant region."
],
"constraints": [
"Never invent a screenshot; state when visual evidence is missing.",
"Record the source, viewport, and crop intent for any screenshot-dependent output.",
"Describe what the reader should inspect in the image, not just that an image exists."
],
"self_repair": [
"Check that every screenshot reference points to a real provided or generated asset.",
"Reword any visual instruction that depends on an unseen screen state."
]
},
{
"key": "citation_clutter",
"label": "Citation and footnote clutter",
"matched_keywords": [
"citation",
"reference"
],
"score": 2,
"risks": [
"Footnote markers or dense citation notes can interrupt the reading flow.",
"Evidence can be over-attached to obvious statements and under-attached to risky claims.",
"Source notes may become more prominent than the tutorial itself."
],
"constraints": [
"Attach citations only to claims that need evidence, not to every sentence.",
"Group source notes at the end of a section when inline markers would hurt readability.",
"Keep the main sentence readable without requiring the reader to chase a footnote."
],
"self_repair": [
"Remove decorative citations that do not support a material claim.",
"Move repeated source explanations into one compact source note."
]
},
{
"key": "tone_and_specificity",
"label": "Tone and specificity",
"matched_keywords": [
"copy",
"content"
],
"score": 2,
"risks": [
"Headings and summaries can drift into generic, interchangeable language.",
"The output can sound polished but lose the user's actual taste, audience, or scenario.",
"Strong claims can appear without examples or constraints."
],
"constraints": [
"Anchor titles and summaries in the user's audience, object, and concrete outcome.",
"Avoid placeholder phrases such as comprehensive guide, ultimate solution, or key insights unless the source demands them.",
"Preserve one distinctive phrase, constraint, or standard from the user's input."
],
"self_repair": [
"Replace generic title candidates with scenario-specific alternatives.",
"Delete any polished sentence that could fit almost any project unchanged."
]
},
{
"key": "tutorial_quality",
"label": "Tutorial quality",
"matched_keywords": [
"tutorial"
],
"score": 1,
"risks": [
"Generic section headings make the tutorial feel templated instead of fitted to the learner's task.",
"Steps may explain what to do without naming the exact check that proves the step worked.",
"Examples can become too abstract when the input material is concrete."
],
"constraints": [
"Write headings from the user's domain nouns and desired outcome, not from generic labels like Overview or Key Points.",
"Pair each major step with a visible success check or expected intermediate output.",
"Use one concrete worked example before adding broad principles."
],
"self_repair": [
"Replace generic H2/H3 headings with task-specific headings before final output.",
"Scan every numbered step for a missing verification cue."
]
}
],
"top_risks": [
"Tables can render as dense grids with weak hierarchy or poor mobile readability.",
"Long bullets can make the output look complete while hiding the actual decision logic.",
"Screenshots can be captured from the wrong state, wrong viewport, or wrong crop.",
"Missing screenshots can cause the skill to invent visual references instead of declaring the gap.",
"Footnote markers or dense citation notes can interrupt the reading flow.",
"Evidence can be over-attached to obvious statements and under-attached to risky claims."
],
"output_constraints": [
"Use tables only when comparison is the main job; otherwise prefer compact cards or grouped bullets.",
"Keep table cells short and move explanations below the table.",
"Never invent a screenshot; state when visual evidence is missing.",
"Record the source, viewport, and crop intent for any screenshot-dependent output.",
"Attach citations only to claims that need evidence, not to every sentence.",
"Group source notes at the end of a section when inline markers would hurt readability."
],
"self_repair_checks": [
"Preview whether each table still reads well when columns are narrow.",
"Convert any table with paragraph-length cells into bullets or cards.",
"Check that every screenshot reference points to a real provided or generated asset.",
"Reword any visual instruction that depends on an unseen screen state.",
"Remove decorative citations that do not support a material claim.",
"Move repeated source explanations into one compact source note."
],
"reviewer_note": "Use this report before deepening the package and again before approving example outputs."
}
@@ -0,0 +1,60 @@
# Output Risk Profile
Skill: `geo-content-brief-skill`
## Why This Exists
Generated skills often fail in small output details: generic headings, cluttered citations, fragile screenshots, weak Markdown rendering, or missing execution assumptions. This profile predicts the most likely output mistakes before the skill is used heavily.
## Matched Risk Families
### Markdown readability
- Matched keywords: md, table, report, brief
- Score: `4`
### Screenshot and visual capture
- Matched keywords: screenshot, visual, screen
- Score: `3`
### Citation and footnote clutter
- Matched keywords: citation, reference
- Score: `2`
### Tone and specificity
- Matched keywords: copy, content
- Score: `2`
### Tutorial quality
- Matched keywords: tutorial
- Score: `1`
## Likely Output Mistakes
- Tables can render as dense grids with weak hierarchy or poor mobile readability.
- Long bullets can make the output look complete while hiding the actual decision logic.
- Screenshots can be captured from the wrong state, wrong viewport, or wrong crop.
- Missing screenshots can cause the skill to invent visual references instead of declaring the gap.
- Footnote markers or dense citation notes can interrupt the reading flow.
- Evidence can be over-attached to obvious statements and under-attached to risky claims.
## Output Constraints To Apply
- Use tables only when comparison is the main job; otherwise prefer compact cards or grouped bullets.
- Keep table cells short and move explanations below the table.
- Never invent a screenshot; state when visual evidence is missing.
- Record the source, viewport, and crop intent for any screenshot-dependent output.
- Attach citations only to claims that need evidence, not to every sentence.
- Group source notes at the end of a section when inline markers would hurt readability.
## Self-Repair Checks
- Preview whether each table still reads well when columns are narrow.
- Convert any table with paragraph-length cells into bullets or cards.
- Check that every screenshot reference points to a real provided or generated asset.
- Reword any visual instruction that depends on an unseen screen state.
- Remove decorative citations that do not support a material claim.
- Move repeated source explanations into one compact source note.
## Reviewer Note
Use this report before deepening the package and again before approving example outputs.
@@ -0,0 +1,146 @@
{
"skill_name": "geo-content-brief-skill",
"relevance": "prompt-heavy",
"primary_task_family": {
"key": "creative_generation",
"label": "Creative generation",
"matched_keywords": [
"copy",
"content",
"内容"
]
},
"task_families": [
{
"key": "creative_generation",
"label": "Creative generation",
"score": 3,
"matched_keywords": [
"copy",
"content",
"内容"
],
"role_guidance": "Use a taste-aware creator role with clear audience, tone, and originality boundaries.",
"task_guidance": "Generate variants, explain selection logic, and preserve the user's distinctive constraints.",
"format_guidance": "Return options with rationale, selection criteria, and refinement paths."
},
{
"key": "execution_operation",
"label": "Execution operation",
"score": 3,
"matched_keywords": [
"workflow",
"execute",
"执行"
],
"role_guidance": "Use an operator role with explicit boundaries, inputs, outputs, and failure handling.",
"task_guidance": "Convert the job into ordered steps with validation checks and stop conditions.",
"format_guidance": "Return a runbook-like handoff with commands, checks, owners, and next actions when relevant."
},
{
"key": "prompt_engineering",
"label": "Prompt engineering",
"score": 3,
"matched_keywords": [
"prompt",
"role",
"format"
],
"role_guidance": "Use a prompt engineer role only when role design materially improves execution.",
"task_guidance": "Map Role, Task, and Format into skill behavior rather than copying a large prompt template.",
"format_guidance": "Return a compact prompt contract plus tests, quality matrix, and usage notes."
},
{
"key": "dialogue_interaction",
"label": "Dialogue interaction",
"score": 2,
"matched_keywords": [
"dialogue",
"访谈"
],
"role_guidance": "Use a conversational role that asks only high-leverage questions and remembers the user's goal.",
"task_guidance": "Clarify intent, resolve uncertainty, and converge toward a recommendation instead of a long option list.",
"format_guidance": "Return concise prompts, decision points, and reviewer-visible assumptions."
}
],
"complexity": {
"band": "complex",
"score": 6,
"reason": "multiple inputs, constraints, or task families require tradeoff handling"
},
"need_model": {
"explicit_need": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"implicit_need": "The reusable skill needs a stable role, task, and output contract rather than a one-off prompt.",
"scenario": "not yet explicit",
"user_level": "infer from examples and standards; ask only if it changes output depth",
"success_standard": "usable output with clear validation cues"
},
"rtf_to_skill": {
"role": "Use a taste-aware creator role with clear audience, tone, and originality boundaries.",
"task": "Generate variants, explain selection logic, and preserve the user's distinctive constraints.",
"format": "Return options with rationale, selection criteria, and refinement paths."
},
"quality_matrix": [
{
"key": "completeness",
"label": "Completeness",
"score": 80,
"matched_signals": [
"input",
"output",
"constraint",
"example",
"约束"
],
"repair": "Name missing inputs, outputs, constraints, or success standards before deepening the package."
},
{
"key": "clarity",
"label": "Clarity",
"score": 90,
"matched_signals": [
"clear",
"specific"
],
"repair": "Replace broad verbs with observable actions and define what done means."
},
{
"key": "consistency",
"label": "Consistency",
"score": 90,
"matched_signals": [
"boundary",
"边界"
],
"repair": "Check that role, task, format, exclusions, and examples do not contradict each other."
},
{
"key": "practicality",
"label": "Practicality",
"score": 95,
"matched_signals": [
"execute",
"use",
"workflow",
"执行"
],
"repair": "Add runnable steps, examples, or verification cues instead of abstract advice."
},
{
"key": "specificity",
"label": "Specificity",
"score": 70,
"matched_signals": [],
"repair": "Anchor wording in the user's audience, domain nouns, and target outcome."
}
],
"overall_quality_score": 85.0,
"self_repair_checks": [
"Check explicit need, implicit need, scenario, user level, and success standard before deepening.",
"Map Role, Task, and Format into skill behavior, not decorative prompt labels.",
"Ask one focused clarification only when missing information changes the package boundary.",
"Add tests or examples for prompt-heavy behavior before treating it as reusable.",
"Keep prompt methodology in references and reports instead of bloating SKILL.md."
],
"reviewer_note": "Use this profile when the package depends on prompt behavior, role design, output contracts, or conversation quality."
}
@@ -0,0 +1,94 @@
# Prompt Quality Profile
Skill: `geo-content-brief-skill`
Relevance: `prompt-heavy`
Overall quality score: `85.0/100`
## Primary Task Family
**Creative generation**
- Matched keywords: copy, content, 内容
## Complexity
- Band: `complex`
- Score: `6`
- Reason: multiple inputs, constraints, or task families require tradeoff handling
## Need Model
- Explicit Need: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
- Implicit Need: The reusable skill needs a stable role, task, and output contract rather than a one-off prompt.
- Scenario: not yet explicit
- User Level: infer from examples and standards; ask only if it changes output depth
- Success Standard: usable output with clear validation cues
## RTF To Skill Mapping
- Role: Use a taste-aware creator role with clear audience, tone, and originality boundaries.
- Task: Generate variants, explain selection logic, and preserve the user's distinctive constraints.
- Format: Return options with rationale, selection criteria, and refinement paths.
## Quality Matrix
### Completeness — 80/100
- Matched signals: input, output, constraint, example, 约束
- Repair: Name missing inputs, outputs, constraints, or success standards before deepening the package.
### Clarity — 90/100
- Matched signals: clear, specific
- Repair: Replace broad verbs with observable actions and define what done means.
### Consistency — 90/100
- Matched signals: boundary, 边界
- Repair: Check that role, task, format, exclusions, and examples do not contradict each other.
### Practicality — 95/100
- Matched signals: execute, use, workflow, 执行
- Repair: Add runnable steps, examples, or verification cues instead of abstract advice.
### Specificity — 70/100
- Matched signals: none
- Repair: Anchor wording in the user's audience, domain nouns, and target outcome.
## Matched Task Families
### Creative generation
- Score: `3`
- Keywords: copy, content, 内容
- Role: Use a taste-aware creator role with clear audience, tone, and originality boundaries.
- Task: Generate variants, explain selection logic, and preserve the user's distinctive constraints.
- Format: Return options with rationale, selection criteria, and refinement paths.
### Execution operation
- Score: `3`
- Keywords: workflow, execute, 执行
- Role: Use an operator role with explicit boundaries, inputs, outputs, and failure handling.
- Task: Convert the job into ordered steps with validation checks and stop conditions.
- Format: Return a runbook-like handoff with commands, checks, owners, and next actions when relevant.
### Prompt engineering
- Score: `3`
- Keywords: prompt, role, format
- Role: Use a prompt engineer role only when role design materially improves execution.
- Task: Map Role, Task, and Format into skill behavior rather than copying a large prompt template.
- Format: Return a compact prompt contract plus tests, quality matrix, and usage notes.
### Dialogue interaction
- Score: `2`
- Keywords: dialogue, 访谈
- Role: Use a conversational role that asks only high-leverage questions and remembers the user's goal.
- Task: Clarify intent, resolve uncertainty, and converge toward a recommendation instead of a long option list.
- Format: Return concise prompts, decision points, and reviewer-visible assumptions.
## Self-Repair Checks
- Check explicit need, implicit need, scenario, user level, and success standard before deepening.
- Map Role, Task, and Format into skill behavior, not decorative prompt labels.
- Ask one focused clarification only when missing information changes the package boundary.
- Add tests or examples for prompt-heavy behavior before treating it as reusable.
- Keep prompt methodology in references and reports instead of bloating SKILL.md.
## Reviewer Note
Use this profile when the package depends on prompt behavior, role design, output contracts, or conversation quality.
@@ -0,0 +1,36 @@
{
"skill_name": "geo-content-brief-skill",
"title": "Geo Content Brief Skill",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"scan_focus": [
{
"label": "Execution pattern",
"reason": "There is deterministic logic in scripts, so compare how strong references separate prose from executable steps."
},
{
"label": "Portability pattern",
"reason": "The package carries neutral metadata, so scan how good references preserve semantics across targets without forking source."
},
{
"label": "Method pattern",
"reason": "Use the core job description as the anchor for comparison: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。"
}
],
"external_references": [],
"user_references": [],
"local_constraints": [],
"borrow_plan": [
"External benchmark first: let high-quality public references define the upper bound for method, structure, execution, or portability.",
"User references second: use them to understand taste, standards, and directional preferences without copying source phrasing.",
"Local fit third: use local assets only to detect naming conflicts, private dependencies, or compatibility constraints.",
"Borrow patterns, not prose: extract loops, boundaries, metadata, and operator flow without copying source-specific language.",
"Keep the package light: reject any borrowed pattern that increases context cost faster than it increases reliability."
],
"priority_rule": "External benchmark objects set the pattern ceiling. User references refine taste and standards. Local files only calibrate fit, risk, and compatibility.",
"non_goals": [
"Do not copy source prose or branding into the new skill.",
"Do not import gates that cost more context than they save.",
"Do not use benchmark scanning to justify scope creep.",
"Do not let local historical habits outrank stronger public benchmarks."
]
}
@@ -0,0 +1,54 @@
# Reference Scan
Skill: `geo-content-brief-skill`
## Why This Step Exists
Use a short benchmark pass before authoring the package in depth. External benchmark objects should define the pattern ceiling. Local files are used afterward only to calibrate fit, privacy, naming, and compatibility.
## Current Skill Anchor
- Title: `Geo Content Brief Skill`
- Description: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
## Scan Focus
- **Execution pattern**: There is deterministic logic in scripts, so compare how strong references separate prose from executable steps.
- **Portability pattern**: The package carries neutral metadata, so scan how good references preserve semantics across targets without forking source.
- **Method pattern**: Use the core job description as the anchor for comparison: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
## Priority Rule
- External benchmark objects set the pattern ceiling. User references refine taste and standards. Local files only calibrate fit, risk, and compatibility.
## External Benchmark Objects
- No explicit external benchmark objects recorded yet.
- Recommended: capture 2 to 5 external references at most.
- Suggested mix: one method reference, one structure reference, one execution or portability reference.
## User-Supplied References
- No user-supplied references recorded yet.
- Ask whether the user has a repo, product, page, workflow, or prompt example worth learning from.
- Treat these as pattern references only, not as text to be copied.
## Local Fit Check
- No local constraints recorded yet.
- Use this section for naming collisions, private dependencies, compatibility limits, or existing library conventions.
## Borrow Plan
- External benchmark first: let high-quality public references define the upper bound for method, structure, execution, or portability.
- User references second: use them to understand taste, standards, and directional preferences without copying source phrasing.
- Local fit third: use local assets only to detect naming conflicts, private dependencies, or compatibility constraints.
- Borrow patterns, not prose: extract loops, boundaries, metadata, and operator flow without copying source-specific language.
- Keep the package light: reject any borrowed pattern that increases context cost faster than it increases reliability.
## Non-Goals
- Do not copy source prose or branding into the new skill.
- Do not import gates that cost more context than they save.
- Do not use benchmark scanning to justify scope creep.
- Do not let local historical habits outrank stronger public benchmarks.
@@ -0,0 +1,171 @@
{
"skill_name": "geo-content-brief-skill",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"intent_confidence": {
"score": 10,
"band": "low",
"gate_passed": false
},
"github_benchmarks": [],
"source_tracks": [
{
"source_type": "official",
"name": "Official skill anatomy and context discipline",
"evidence_mode": "curated-pattern-track",
"matched_keywords": [
"general fit"
],
"borrow": "Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.",
"avoid": "Do not let packaging or platform concerns swallow the core job boundary.",
"why_relevant": "This track matches: general fit."
},
{
"source_type": "research",
"name": "Hypothesis-test-learn loop",
"evidence_mode": "curated-pattern-track",
"matched_keywords": [
"general fit"
],
"borrow": "Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.",
"avoid": "Do not create experimental overhead that exceeds the skill's real risk tier.",
"why_relevant": "This track matches: general fit."
},
{
"source_type": "principles",
"name": "Boundary-first design",
"evidence_mode": "curated-pattern-track",
"matched_keywords": [
"general fit"
],
"borrow": "Borrow the discipline of defining what the skill should not own before growing the package.",
"avoid": "Do not expand execution assets until route boundaries stay clean.",
"why_relevant": "This track matches: general fit."
}
],
"synthesis": {
"borrow_now": [
"Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.",
"Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.",
"Borrow the discipline of defining what the skill should not own before growing the package."
],
"avoid_now": [
"Do not let packaging or platform concerns swallow the core job boundary.",
"Do not create experimental overhead that exceeds the skill's real risk tier.",
"Do not expand execution assets until route boundaries stay clean."
],
"quality_risers": [
"Use GitHub repositories for concrete package and workflow patterns.",
"Use curated official or commercial tracks for entrypoint and operator ergonomics.",
"Use research tracks to justify the smallest evaluation loop that still catches regressions.",
"Use principle tracks to keep the package small, boundary-aware, and outcome-driven."
],
"pattern_gate": {
"threshold": 2,
"source_count": 3,
"accepted": [
{
"name": "Official skill anatomy and context discipline",
"source_type": "official",
"borrow": "Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.",
"avoid": "Do not let packaging or platform concerns swallow the core job boundary.",
"gates": {
"recurrence": true,
"generativity": true,
"distinctiveness": false,
"boundary": true
},
"passed": [
"recurrence",
"generativity",
"boundary"
],
"missing": [
"distinctiveness"
],
"score": 3
},
{
"name": "Hypothesis-test-learn loop",
"source_type": "research",
"borrow": "Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.",
"avoid": "Do not create experimental overhead that exceeds the skill's real risk tier.",
"gates": {
"recurrence": true,
"generativity": true,
"distinctiveness": false,
"boundary": true
},
"passed": [
"recurrence",
"generativity",
"boundary"
],
"missing": [
"distinctiveness"
],
"score": 3
},
{
"name": "Boundary-first design",
"source_type": "principles",
"borrow": "Borrow the discipline of defining what the skill should not own before growing the package.",
"avoid": "Do not expand execution assets until route boundaries stay clean.",
"gates": {
"recurrence": true,
"generativity": true,
"distinctiveness": false,
"boundary": true
},
"passed": [
"recurrence",
"generativity",
"boundary"
],
"missing": [
"distinctiveness"
],
"score": 3
}
],
"deferred": [],
"summary": "3 accepted, 0 deferred using threshold 2/4."
},
"conflicts": [
{
"key": "lightweight_vs_governance",
"summary": "The stated preference leans lightweight or speed-first, while the benchmark mix leans toward governance, review, or heavier evaluation structure.",
"user_preference": "lightweight or speed-first",
"benchmark_pressure": "governance or evaluation-heavy patterns"
}
],
"recommendation": {
"summary": "Start by borrowing this pattern: Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts. Avoid this for the first pass: Do not let packaging or platform concerns swallow the core job boundary.",
"borrow_now": [
"Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.",
"Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed."
],
"avoid_for_now": [
"Do not let packaging or platform concerns swallow the core job boundary.",
"Do not create experimental overhead that exceeds the skill's real risk tier."
],
"why": "There is a real design conflict to resolve: The stated preference leans lightweight or speed-first, while the benchmark mix leans toward governance, review, or heavier evaluation structure.",
"user_decision_required": true
},
"visibility": {
"mode": "explicit",
"user_decision_required": true,
"reasons": [
"intent_uncertain",
"design_conflict"
],
"user_note": "Surface the recommendation because intent is still settling or there is a real design conflict that needs a user call.",
"reviewer_note": "Keep the full benchmark and synthesis evidence visible for authors and reviewers."
},
"decision_prompt": "Use the recommendation by default. Only surface the underlying benchmark tradeoffs when intent is uncertain or a real design conflict needs a deliberate call.",
"source_mix": {
"github_benchmarks": 0,
"curated_tracks": 3,
"user_references": 0
}
}
}
@@ -0,0 +1,81 @@
# Reference Synthesis
Skill: `geo-content-brief-skill`
- Description: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
- Intent confidence: `10/100` (`low`)
## Live GitHub Benchmarks
- No live GitHub benchmarks are attached yet.
## Curated World-Class Pattern Tracks
### Official skill anatomy and context discipline
- Type: `official`
- Evidence mode: `curated-pattern-track`
- Why relevant: This track matches: general fit.
- Borrow: Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.
- Avoid: Do not let packaging or platform concerns swallow the core job boundary.
### Hypothesis-test-learn loop
- Type: `research`
- Evidence mode: `curated-pattern-track`
- Why relevant: This track matches: general fit.
- Borrow: Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.
- Avoid: Do not create experimental overhead that exceeds the skill's real risk tier.
### Boundary-first design
- Type: `principles`
- Evidence mode: `curated-pattern-track`
- Why relevant: This track matches: general fit.
- Borrow: Borrow the discipline of defining what the skill should not own before growing the package.
- Avoid: Do not expand execution assets until route boundaries stay clean.
## Borrow Now
- Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.
- Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.
- Borrow the discipline of defining what the skill should not own before growing the package.
## Avoid Now
- Do not let packaging or platform concerns swallow the core job boundary.
- Do not create experimental overhead that exceeds the skill's real risk tier.
- Do not expand execution assets until route boundaries stay clean.
## Pattern Gate
- Summary: 3 accepted, 0 deferred using threshold 2/4.
- Acceptance threshold: `2/4`
- Accepted patterns:
- **Official skill anatomy and context discipline**: 3/4 (recurrence, generativity, boundary)
- **Hypothesis-test-learn loop**: 3/4 (recurrence, generativity, boundary)
- **Boundary-first design**: 3/4 (recurrence, generativity, boundary)
## Default Recommendation
- Summary: Start by borrowing this pattern: Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts. Avoid this for the first pass: Do not let packaging or platform concerns swallow the core job boundary.
- Why: There is a real design conflict to resolve: The stated preference leans lightweight or speed-first, while the benchmark mix leans toward governance, review, or heavier evaluation structure.
- User decision required: `True`
## Visibility Mode
- Mode: `explicit`
- Reasons: intent_uncertain, design_conflict
- User note: Surface the recommendation because intent is still settling or there is a real design conflict that needs a user call.
- Reviewer note: Keep the full benchmark and synthesis evidence visible for authors and reviewers.
## Conflict Check
- **lightweight_vs_governance**: The stated preference leans lightweight or speed-first, while the benchmark mix leans toward governance, review, or heavier evaluation structure.
## Quality Lift Thesis
- Use GitHub repositories for concrete package and workflow patterns.
- Use curated official or commercial tracks for entrypoint and operator ergonomics.
- Use research tracks to justify the smallest evaluation loop that still catches regressions.
- Use principle tracks to keep the package small, boundary-aware, and outcome-driven.
## Decision Prompt
Use the recommendation by default. Only surface the underlying benchmark tradeoffs when intent is uncertain or a real design conflict needs a deliberate call.
File diff suppressed because one or more lines are too long
@@ -0,0 +1,376 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Geo Content Brief Skill Review Viewer</title>
<style>
:root {
--text: #111111;
--muted: #666666;
--line: #e8e8e8;
--soft: #f6f6f4;
--white: #ffffff;
}
* { box-sizing: border-box; }
body {
margin: 0;
background: var(--white);
color: var(--text);
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 1.6;
}
.page {
max-width: 1120px;
margin: 0 auto;
padding: 48px 32px 72px;
}
.hero {
padding-bottom: 28px;
border-bottom: 1px solid var(--line);
margin-bottom: 28px;
}
h1, h2, h3 {
margin: 0 0 12px;
letter-spacing: -0.02em;
font-weight: 600;
}
h1 { font-size: 40px; line-height: 1.08; }
h2 { font-size: 22px; margin-top: 34px; }
h3 { font-size: 16px; }
p, li, span { font-size: 15px; }
.lede {
max-width: 860px;
font-size: 18px;
color: var(--muted);
margin: 0 0 18px;
}
.meta {
display: flex;
gap: 10px;
flex-wrap: wrap;
margin-top: 16px;
}
.meta span {
border: 1px solid var(--line);
padding: 6px 10px;
background: var(--soft);
}
.arch-grid {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 12px;
margin-top: 16px;
}
.arch-step, .panel, .direction-card, .baseline-box {
border: 1px solid var(--line);
background: var(--white);
}
.arch-step {
padding: 14px;
min-height: 132px;
}
.step-label {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--muted);
margin-bottom: 10px;
}
.step-detail {
font-size: 14px;
}
.grid {
display: grid;
grid-template-columns: 1.1fr 0.9fr;
gap: 18px;
margin-top: 16px;
}
.panel {
padding: 18px;
}
.panel ul {
margin: 0;
padding-left: 18px;
}
.direction-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin-top: 16px;
}
.variant-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin-top: 16px;
}
.direction-card {
padding: 18px;
}
.direction-card ul {
margin: 12px 0;
padding-left: 18px;
}
.minor {
color: var(--muted);
font-size: 13px;
}
.variant-card {
border: 1px solid var(--line);
background: var(--white);
padding: 18px;
}
.variant-head {
display: flex;
justify-content: space-between;
gap: 12px;
align-items: baseline;
}
.variant-head span {
color: var(--muted);
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.variant-description {
margin: 14px 0;
padding-left: 14px;
border-left: 2px solid var(--line);
color: var(--text);
}
.variant-metrics {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 14px;
}
.variant-metrics span {
border: 1px solid var(--line);
background: var(--soft);
padding: 6px 10px;
font-size: 12px;
}
.variant-cues p {
margin: 8px 0 6px;
}
.variant-cues ul {
margin: 0 0 12px;
padding-left: 18px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 14px;
font-size: 14px;
}
th, td {
border-top: 1px solid var(--line);
text-align: left;
padding: 10px 8px;
vertical-align: top;
}
th {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--muted);
}
@media (max-width: 1000px) {
.arch-grid, .direction-grid, .variant-grid, .grid {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<div class="page">
<section class="hero">
<p class="minor">Review Viewer</p>
<h1>Geo Content Brief Skill</h1>
<p class="lede">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</p>
<div class="meta">
<span>maturity: production</span>
<span>archetype: production</span>
<span>format: agent-skills</span>
<span>updated: 2026-06-15</span>
<span>intent confidence: 10 / 100</span>
</div>
</section>
<section>
<h2>Architecture at a glance</h2>
<div class="arch-grid"><div class='arch-step'><div class='step-label'>Inputs</div><div class='step-detail'>workflow, prompt, transcript, docs, or notes</div></div><div class='arch-step'><div class='step-label'>Boundary</div><div class='step-detail'>将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</div></div><div class='arch-step'><div class='step-label'>Logic</div><div class='step-detail'>读取用户输入,识别目标受众、内容渠道、关键词、品牌边界、禁止表达和必须覆盖的信息。; 对照 `references/brief-structure.md` 生成简报骨架:目标、洞察、角度、关键词、结构、证据、风险和验收标准。; 如果缺少核心输入,先提出最多三个澄清问题,不用假设补全用户没有提供的事实。</div></div><div class='arch-step'><div class='step-label'>Usage</div><div class='step-detail'>当你需要把访谈纪要、关键词、竞品线索和渠道限制整理成中文 GEO 内容简报时,使用 $geo-content-brief-skill。; Use this skill when the request matches: 将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</div></div><div class='arch-step'><div class='step-label'>Next</div><div class='step-detail'>Review the top iteration directions before growing the package.</div></div></div>
</section>
<section class="grid">
<div class="panel">
<h2>Core logic</h2>
<ul><li>读取用户输入,识别目标受众、内容渠道、关键词、品牌边界、禁止表达和必须覆盖的信息。</li><li>对照 `references/brief-structure.md` 生成简报骨架:目标、洞察、角度、关键词、结构、证据、风险和验收标准。</li><li>如果缺少核心输入,先提出最多三个澄清问题,不用假设补全用户没有提供的事实。</li><li>用 `evals/trigger_cases.jsonl` 检查当前请求是否属于 GEO 内容简报场景。</li><li>用 `evals/output_cases.jsonl` 检查输出是否包含输入摘要、内容结构、证据要求、禁区和下一步动作。</li></ul>
</div>
<div class="panel">
<h2>How to use it</h2>
<ul><li>当你需要把访谈纪要、关键词、竞品线索和渠道限制整理成中文 GEO 内容简报时,使用 $geo-content-brief-skill。</li><li>Use this skill when the request matches: 将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</li></ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Intent questions</h2>
<ul><li><strong>If this skill worked beautifully, what recurring job would it reliably handle for the user every time?</strong><br><span>This reveals the real job-to-be-done and gives the package a humane center instead of a guessed prompt shape.</span></li><li><strong>When someone reaches for this skill in the real world, what materials will they actually hand to it?</strong><br><span>Input shape decides whether references, scripts, or templates are needed.</span></li><li><strong>What finished output should it hand back so the user can immediately keep moving?</strong><br><span>Outputs should drive the package structure before extra guidance is added.</span></li><li><strong>Which nearby requests should this skill politely refuse so the boundary stays clean?</strong><br><span>The exclusion list is the fastest route to better trigger quality.</span></li><li><strong>What matters most here: speed, consistency, auditability, portability, governance, or tone/style fit?</strong><br><span>Constraints decide how much structure, packaging, and review the skill actually needs.</span></li></ul>
</div>
<div class="panel">
<h2>Why this package is strong</h2>
<ul><li>触发面保持精简,并锚定在 frontmatter description。</li><li>已生成 Skill IR,核心语义可先于平台打包被审查和迁移。</li><li>已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。</li><li>已生成 Adoption Drift Report,可把本地使用反馈转为下一轮迭代信号。</li><li>已生成 Review Waivers 台账,可记录 reviewer 对 warning 风险的批准、理由和到期时间。</li><li>已生成 Review Annotations 台账,可把 reviewer 批注挂到 gate、文件和行号。</li></ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Borrow plan</h2>
<ul><li>No external benchmark objects recorded yet. Add 2 to 5 references before deepening the package.</li></ul>
</div>
<div class="panel">
<h2>Compare view</h2>
<p class='minor'>No baseline comparison has been recorded for this package yet.</p>
</div>
</section>
<section>
<h2>Variant diff studio</h2>
<div class="variant-grid"><p class='minor'>No description optimization compare payload is attached yet.</p></div>
</section>
<section class="grid">
<div class="panel">
<h2>Evidence readiness</h2>
<p class="minor">Readiness score: 57/100</p>
<ul><li><strong>Intent clarity</strong> · needs review<br><span>10/100 intent confidence.</span></li><li><strong>Benchmark coverage</strong> · needs evidence<br><span>0 GitHub benchmark repositories attached.</span></li><li><strong>Pattern gate</strong> · ready<br><span>3 accepted, 0 deferred using threshold 2/4.</span></li><li><strong>Conflict handling</strong> · decision needed<br><span>The stated preference leans lightweight or speed-first, while the benchmark mix leans toward governance, review, or heavier evaluation structure.</span></li><li><strong>Output risk profile</strong> · ready<br><span>5 output risk families attached.</span></li><li><strong>Artifact design profile</strong> · ready<br><span>High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail.</span></li><li><strong>Prompt quality profile</strong> · ready<br><span>85.0/100 prompt-facing quality score.</span></li></ul>
</div>
<div class="panel">
<h2>Honest boundary check</h2>
<ul>
<li>Are the known limits visible before the package deepens?</li>
<li>Does the evidence support the borrowed patterns?</li>
<li>Should uncertainty become a clarification question instead of more structure?</li>
</ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Output risk profile</h2>
<ul><li><strong>Markdown readability</strong><br><span>Tables can render as dense grids with weak hierarchy or poor mobile readability.; Long bullets can make the output look complete while hiding the actual decision logic.</span></li><li><strong>Screenshot and visual capture</strong><br><span>Screenshots can be captured from the wrong state, wrong viewport, or wrong crop.; Missing screenshots can cause the skill to invent visual references instead of declaring the gap.</span></li><li><strong>Citation and footnote clutter</strong><br><span>Footnote markers or dense citation notes can interrupt the reading flow.; Evidence can be over-attached to obvious statements and under-attached to risky claims.</span></li></ul>
</div>
<div class="panel">
<h2>Self-repair checks</h2>
<ul><li>Preview whether each table still reads well when columns are narrow.</li><li>Convert any table with paragraph-length cells into bullets or cards.</li><li>Check that every screenshot reference points to a real provided or generated asset.</li><li>Reword any visual instruction that depends on an unseen screen state.</li><li>Remove decorative citations that do not support a material claim.</li></ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Artifact design profile</h2>
<p class="minor">Design system: metric editorial</p>
<ul><li><strong>Report or brief</strong><br><span>High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail.</span></li><li><strong>Review viewer</strong><br><span>Side-by-side reviewer studio with explicit tradeoffs, evidence readiness, and fast paths for approving, blocking, or requesting one focused fix.</span></li><li><strong>Dashboard or metrics page</strong><br><span>Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation.</span></li></ul>
</div>
<div class="panel">
<h2>Visual quality gates</h2>
<ul><li>Keep the first screen useful without requiring the reader to parse every detail.</li><li>Use tables only for comparisons; move explanations below the table.</li><li>Keep source notes readable without flooding the body with markers.</li><li>Make differences visible instead of hiding them in prose.</li><li>Separate author-facing recommendations from reviewer-only evidence.</li></ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Prompt quality profile</h2>
<p class="minor">Relevance: prompt-heavy · score 85.0 / 100 · complexity complex</p>
<ul><li><strong>Completeness</strong> · 80 / 100<br><span>Name missing inputs, outputs, constraints, or success standards before deepening the package.</span></li><li><strong>Clarity</strong> · 90 / 100<br><span>Replace broad verbs with observable actions and define what done means.</span></li><li><strong>Consistency</strong> · 90 / 100<br><span>Check that role, task, format, exclusions, and examples do not contradict each other.</span></li><li><strong>Practicality</strong> · 95 / 100<br><span>Add runnable steps, examples, or verification cues instead of abstract advice.</span></li><li><strong>Specificity</strong> · 70 / 100<br><span>Anchor wording in the user&#x27;s audience, domain nouns, and target outcome.</span></li></ul>
</div>
<div class="panel">
<h2>RTF to skill mapping</h2>
<ul><li><strong>Role</strong><br><span>Use a taste-aware creator role with clear audience, tone, and originality boundaries.</span></li><li><strong>Task</strong><br><span>Generate variants, explain selection logic, and preserve the user&#x27;s distinctive constraints.</span></li><li><strong>Format</strong><br><span>Return options with rationale, selection criteria, and refinement paths.</span></li></ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Reference coach</h2>
<div class="direction-grid"><p class='minor'>No GitHub benchmark scan has been attached to this package yet.</p></div>
</div>
<div class="panel">
<h2>Decide before you deepen</h2>
<ul>
<li>Choose one pattern to borrow on purpose, not three at once.</li>
<li>State one thing this skill will not inherit from the benchmark objects.</li>
<li>Only deepen the package after that choice is visible in the boundary or execution flow.</li>
</ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Reference synthesis</h2>
<div class="direction-grid"><div class='direction-card'><h3>Official skill anatomy and context discipline</h3><p><strong>Borrow now</strong></p><ul><li>Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.</li></ul><p><strong>Avoid</strong></p><ul><li>Do not let packaging or platform concerns swallow the core job boundary.</li></ul></div><div class='direction-card'><h3>Hypothesis-test-learn loop</h3><p><strong>Borrow now</strong></p><ul><li>Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.</li></ul><p><strong>Avoid</strong></p><ul><li>Do not create experimental overhead that exceeds the skill&#x27;s real risk tier.</li></ul></div><div class='direction-card'><h3>Boundary-first design</h3><p><strong>Borrow now</strong></p><ul><li>Borrow the discipline of defining what the skill should not own before growing the package.</li></ul><p><strong>Avoid</strong></p><ul><li>Do not expand execution assets until route boundaries stay clean.</li></ul></div></div>
</div>
<div class="panel">
<h2>Borrow now</h2>
<ul><li>Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.</li><li>Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.</li><li>Borrow the discipline of defining what the skill should not own before growing the package.</li></ul>
<p class="minor">Use the recommendation by default. Only surface the underlying benchmark tradeoffs when intent is uncertain or a real design conflict needs a deliberate call.</p>
</div>
</section>
<section>
<h2>Top three next moves</h2>
<div class="direction-grid"><div class='direction-card'><h3>Tighten trigger and exclusions</h3><p>The package needs clearer near-neighbor exclusions before it grows.</p><ul><li>Add 3 to 5 should-trigger and should-not-trigger examples.</li><li>Refine the frontmatter description to name the recurring job and non-goals.</li><li>Run a first trigger evaluation pass before expanding the package.</li></ul><div class='minor'>Unlocks: Cleaner routing and fewer accidental activations.</div></div><div class='direction-card'><h3>Add the first execution asset</h3><p>The package is still mostly prose. Add one asset that removes repeated manual work.</p><ul><li>Move stable procedural guidance into references if users will need it repeatedly.</li><li>Create one deterministic helper script if a repeated step can be executed instead of described.</li><li>Keep the main SKILL.md compact and route-oriented.</li></ul><div class='minor'>Unlocks: Stronger execution quality without bloating the entrypoint.</div></div><div class='direction-card'><h3>Promote from scaffold to production-ready</h3><p>The first version exists; the next gain usually comes from adding the smallest useful gates.</p><ul><li>Decide whether this skill is personal, team-reused, or library-grade.</li><li>Add only the gates that match that risk level.</li><li>Record lifecycle metadata and review cadence once reuse becomes real.</li></ul><div class='minor'>Unlocks: A clearer path from exploratory package to maintained asset.</div></div></div>
</section>
<section class="grid">
<div class="panel">
<h2>Recent feedback</h2>
<ul><li>No lightweight feedback captured yet. Use `yao.py feedback` to record quick review notes.</li></ul>
</div>
<div class="panel">
<h2>Promotion status</h2>
<p class='minor'>No promotion summary is attached to this package yet.</p>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Package map</h2>
<ul><li><strong>SKILL.md</strong> — Skill entrypoint</li><li><strong>README.md</strong> — Human-readable usage guide</li><li><strong>agents/interface.yaml</strong> — Neutral interface metadata</li><li><strong>manifest.json</strong> — Lifecycle and portability metadata</li><li><strong>references</strong> — Extended guidance and reusable notes</li><li><strong>scripts</strong> — Deterministic helpers or local tooling</li><li><strong>evals</strong> — Trigger and quality checks</li><li><strong>reports</strong> — Generated evidence and overview artifacts</li></ul>
</div>
<div class="panel">
<h2>First-pass review frame</h2>
<ul>
<li>Does the trigger stay narrow enough for the intended job?</li>
<li>Does the archetype match the real reuse level?</li>
<li>Are we adding structure faster than we are adding reliability?</li>
<li>Should the next step be trigger tightening, execution assets, or portability hardening?</li>
</ul>
</div>
</section>
<section class="grid">
<div class="panel">
<h2>Authoring discipline</h2>
<ul>
<li>Name unresolved assumptions before deepening the package.</li>
<li>Keep the package no larger than the recurring job requires.</li>
<li>Touch only files that directly support the requested change.</li>
<li>Tie every meaningful new artifact to a check or reviewer note.</li>
</ul>
</div>
<div class="panel">
<h2>Reviewer guardrails</h2>
<ul>
<li>Block speculative features that are not backed by real workflow variation.</li>
<li>Move unverifiable ideas into next-step candidates instead of baseline structure.</li>
<li>Reject decorative folders, reports, or governance that do not reduce risk.</li>
<li>Ask for one high-leverage clarification when job, output, or exclusion is still fuzzy.</li>
</ul>
</div>
</section>
</div>
</body>
</html>
@@ -0,0 +1,24 @@
{
"schema_version": "1.0",
"ok": true,
"skill_dir": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill",
"source": "reports/review_annotations_input.json",
"summary": {
"annotation_count": 0,
"open_count": 0,
"resolved_count": 0,
"deferred_count": 0,
"open_blocker_count": 0,
"open_warning_count": 0,
"linked_gate_count": 0,
"target_missing_count": 0,
"failure_count": 0
},
"annotations": [],
"failures": [],
"template_written": false,
"artifacts": {
"json": "reports/review_annotations.json",
"markdown": "reports/review_annotations.md"
}
}
@@ -0,0 +1,19 @@
# Review Annotations
This report renders reviewer annotations attached to Review Studio gates and source/report paths.
- Annotations: `0`
- Open: `0`
- Resolved: `0`
- Deferred: `0`
- Open blockers: `0`
- Open warnings: `0`
No reviewer annotations recorded yet.
## Review Rule
- Use annotations for reviewer comments tied to a gate or source line.
- Use waivers only for explicit acceptance of warning-level release risk.
- Open blocker annotations should block a release decision until resolved or deferred with rationale.
@@ -0,0 +1,44 @@
{
"schema_version": "1.0",
"ok": true,
"skill_dir": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill",
"generated_at": "2026-06-15",
"summary": {
"waiver_count": 0,
"active_count": 0,
"expired_count": 0,
"invalid_count": 0,
"covered_gate_count": 0,
"covered_gate_keys": [],
"waiver_candidate_count": 0,
"waiverable_open_count": 0,
"non_waivable_count": 0
},
"policy": {
"blocker_waivers_allowed": false,
"minimum_reason_chars": 20,
"expires_required": true,
"known_gate_keys": [
"context-budget",
"intent-canvas",
"operations-loop",
"output-lab",
"permission-gates",
"permission-runtime",
"registry-audit",
"release-notes",
"runtime-matrix",
"skill-atlas",
"trigger-lab",
"trust-report"
]
},
"waivers": [],
"waiver_candidates": [],
"failures": [],
"warnings": [],
"artifacts": {
"json": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/review_waivers.json",
"markdown": ".previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/review_waivers.md"
}
}
@@ -0,0 +1,34 @@
# Review Waivers
- OK: `True`
- Waivers: `0`
- Active: `0`
- Expired: `0`
- Invalid: `0`
- Covered gates: `none`
- Waiver candidates: `0`
- Open waiverable candidates: `0`
- Non-waivable boundaries: `0`
## Policy
- Blocker waivers allowed: `False`
- Minimum reason chars: `20`
- Expiry is required for every waiver.
- World-class evidence completion cannot be waived; it can only be proven by accepted ledger evidence.
## Waivers
- None
## Candidate Actions
- None
## Failures
- None
## Warnings
- None
@@ -0,0 +1,93 @@
{
"schema_version": "2.0.0",
"name": "geo-content-brief-skill",
"title": "Geo Content Brief Skill",
"job_to_be_done": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"trigger_surface": {
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"should_trigger": [
"将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。"
],
"should_not_trigger": [
"one-off adjacent requests that do not match the recurring job",
"private local material that was not intentionally included"
],
"edge_cases": []
},
"workflow": {
"steps": [
"Understand the request.",
"Execute the main task.",
"Validate the result."
],
"decision_points": [
"Ask one focused clarification when the real job, output, or exclusion boundary is unclear.",
"Escalate visible tradeoffs when benchmark patterns conflict with local privacy, naming, or governance constraints.",
"Do not silently broaden the skill into adjacent jobs just because the examples are nearby."
],
"failure_modes": [
"Tables can render as dense grids with weak hierarchy or poor mobile readability.",
"Long bullets can make the output look complete while hiding the actual decision logic.",
"Screenshots can be captured from the wrong state, wrong viewport, or wrong crop.",
"Missing screenshots can cause the skill to invent visual references instead of declaring the gap.",
"Footnote markers or dense citation notes can interrupt the reading flow.",
"Evidence can be over-attached to obvious statements and under-attached to risky claims.",
"Users start invoking the skill for adjacent one-off or explanation-only requests.",
"Outputs remain valid but become generic, cluttered, or weakly aligned with the user's domain.",
"Borrowed benchmark patterns no longer fit the local job or add ceremony without payoff.",
"Skill usage becomes team-critical while ownership, review cadence, or rollback evidence stays informal."
]
},
"resources": {
"references": [],
"scripts": [],
"assets": [],
"reports": [
"reports/intent-context.json",
"reports/intent-confidence.json",
"reports/intent-confidence.md",
"reports/reference-synthesis.json",
"reports/reference-synthesis.md",
"reports/output-risk-profile.json",
"reports/output-risk-profile.md",
"reports/artifact-design-profile.json",
"reports/artifact-design-profile.md",
"reports/prompt-quality-profile.json",
"reports/prompt-quality-profile.md",
"reports/system-model.json",
"reports/system-model.md"
]
},
"eval_plan": {
"trigger": [],
"output": [],
"adversarial": [],
"baseline": "without_skill"
},
"risk": {
"output_risk": "high",
"execution_risk": "low",
"trust_boundary": "personal"
},
"governance": {
"owner": "Yao Team",
"maturity": "scaffold",
"review_cadence": "per-release",
"review_due": ""
},
"targets": [
"openai",
"claude",
"generic",
"agent-skills-compatible",
"vscode"
],
"source_files": [
"SKILL.md",
"manifest.json",
"agents/interface.yaml",
"reports/intent-context.json",
"reports/output-risk-profile.json",
"reports/system-model.json"
]
}
@@ -0,0 +1,986 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>geo-content-brief-skill Skill 生成审计报告</title>
<style>
:root {
--paper: #ffffff;
--wash: #f8fafc;
--wash-strong: #f2f5f8;
--line: #e6e0d4;
--line-soft: #eee9df;
--brand: #1B365D;
--brand-soft: #EEF3F8;
--brand-mid: #315982;
--ink: #151515;
--text: #2f2d29;
--muted: #68625a;
--faint: #8b857b;
--success: #2f6f5e;
--warn: #8a5a19;
--serif: "TsangerJinKai02", "Source Han Serif SC", "Noto Serif CJK SC", "Songti SC", "STSong", Charter, Georgia, serif;
--mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, Consolas, monospace;
--shadow-soft: 0 1px 2px rgba(27, 54, 93, 0.06), 0 16px 44px rgba(27, 54, 93, 0.08);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background: #ffffff;
color: var(--ink);
font-family: var(--serif);
line-height: 1.62;
letter-spacing: 0;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}
body[data-report-lang="zh-CN"] [data-lang="en"],
body[data-report-lang="en"] [data-lang="zh-CN"] { display: none !important; }
.skip-link {
position: fixed;
left: 18px;
top: 10px;
z-index: 40;
transform: translateY(-140%);
padding: 8px 12px;
border-radius: 8px;
background: var(--brand);
color: #fff;
text-decoration: none;
transition: transform 160ms cubic-bezier(0.16, 1, 0.3, 1);
}
.skip-link:focus-visible { transform: translateY(0); outline: 2px solid var(--brand-mid); outline-offset: 2px; }
.topbar {
position: sticky;
top: 0;
z-index: 20;
background: rgba(255, 255, 255, 0.96);
border-bottom: 1px solid var(--line);
}
.progress-track {
height: 2px;
background: transparent;
}
.progress-bar {
display: block;
width: 100%;
height: 100%;
background: var(--brand);
transition: transform 160ms cubic-bezier(0.16, 1, 0.3, 1);
transform-origin: left center;
transform: scaleX(0);
}
.topbar-inner {
max-width: 1240px;
margin: 0 auto;
padding: 9px 28px;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 18px;
align-items: center;
}
.nav-shell {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 18px;
align-items: center;
min-width: 0;
}
.report-mark {
color: var(--brand);
font-family: var(--mono);
font-size: 11px;
line-height: 1;
text-transform: uppercase;
white-space: nowrap;
}
.report-nav {
display: flex;
gap: 4px;
overflow-x: auto;
scrollbar-width: none;
min-width: 0;
}
.report-nav::-webkit-scrollbar { display: none; }
.report-nav a {
flex: 0 0 auto;
min-width: 76px;
min-height: 40px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 10px;
color: var(--brand);
text-decoration: none;
text-align: center;
font-size: 13px;
border-radius: 8px;
white-space: nowrap;
transition-property: background-color, color, transform;
transition-duration: 160ms;
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}
@media (hover: hover) {
.report-nav a:hover { background: var(--brand-soft); }
}
.report-nav a:focus-visible {
outline: 2px solid var(--brand-mid);
outline-offset: 2px;
background: var(--brand-soft);
}
.report-nav a[aria-current="true"] {
background: var(--brand);
color: #ffffff;
}
.report-nav a[aria-current="true"] span { color: #ffffff; }
.language-switch {
display: inline-flex;
gap: 3px;
padding: 3px;
border: 1px solid var(--line);
border-radius: 8px;
background: var(--paper);
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.05);
}
.language-switch button {
appearance: none;
min-width: 42px;
min-height: 34px;
border: 0;
border-radius: 6px;
padding: 0 10px;
background: transparent;
color: var(--muted);
font: inherit;
font-size: 13px;
cursor: pointer;
transition-property: background-color, color, transform;
transition-duration: 160ms;
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}
.language-switch button:active { transform: scale(0.96); }
.language-switch button:focus-visible { outline: 2px solid var(--brand-mid); outline-offset: 2px; }
.language-switch button[aria-pressed="true"] {
background: var(--brand-soft);
color: var(--brand);
}
.wrap {
max-width: 1240px;
margin: 0 auto;
padding: 58px 28px 92px;
}
.hero {
padding: 16px 0 34px;
}
.hero-grid {
display: grid;
grid-template-columns: minmax(0, 1fr) 360px;
gap: 44px;
align-items: end;
}
.eyebrow, .report-mark {
letter-spacing: 0;
}
.eyebrow {
margin: 0 0 12px;
color: var(--brand);
font-family: var(--mono);
font-size: 12px;
text-transform: uppercase;
}
.slug {
margin: 0 0 18px;
color: var(--faint);
font-family: var(--mono);
font-size: 13px;
overflow-wrap: anywhere;
}
h1, h2, h3 {
margin: 0;
font-weight: 500;
letter-spacing: 0;
text-wrap: balance;
}
h1 {
max-width: 8em;
color: var(--ink);
font-size: 4rem;
line-height: 1.02;
}
.lead {
max-width: 760px;
margin: 20px 0 0;
color: var(--text);
font-size: 1.08rem;
text-wrap: pretty;
}
.hero-meta, .badges {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 20px;
}
.hero-meta span, .badges span, .tag {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 5px 10px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 13px;
font-variant-numeric: tabular-nums;
}
.hero-card {
position: relative;
padding: 22px 22px 24px;
border-radius: 8px;
background: linear-gradient(180deg, #ffffff 0%, #fbfaf7 100%);
box-shadow: var(--shadow-soft);
border: 1px solid var(--line-soft);
}
.hero-card::before {
content: "";
position: absolute;
top: 18px;
right: 18px;
width: 38px;
height: 2px;
background: var(--brand);
}
.score-strip {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
margin-top: 32px;
padding-top: 20px;
border-top: 1px solid var(--line);
}
.score-chip {
padding: 14px 14px 12px;
border-radius: 8px;
background: var(--wash);
border: 1px solid var(--line-soft);
}
.score-chip span {
display: block;
color: var(--muted);
font-size: 12px;
}
.score-chip strong {
display: block;
margin: 5px 0 8px;
color: var(--brand);
font-family: var(--mono);
font-size: 1.65rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.score-chip i {
display: block;
height: 3px;
border-radius: 999px;
background: linear-gradient(90deg, var(--brand) var(--score), #dfe6ee var(--score));
}
.score-chip small {
display: block;
margin-top: 8px;
color: var(--muted);
font-size: 12px;
line-height: 1.45;
}
section {
scroll-margin-top: 78px;
padding-top: 44px;
margin-top: 44px;
border-top: 1px solid var(--line);
}
section.hero {
scroll-margin-top: 0;
padding-top: 16px;
margin-top: 0;
border-top: 0;
}
.section-head {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 22px;
align-items: start;
}
h2 {
color: var(--ink);
font-size: 1.5rem;
line-height: 1.18;
}
h2::before {
content: "";
display: block;
width: 32px;
height: 2px;
margin-bottom: 12px;
background: var(--brand);
}
h3 {
color: var(--ink);
font-size: 1.02rem;
line-height: 1.3;
margin-bottom: 10px;
}
.section-head > div:first-child p {
margin: 12px 0 0;
color: var(--muted);
max-width: 68ch;
text-wrap: pretty;
}
.section-body {
margin-top: 24px;
}
.two-col, .metric-grid, .chart-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
align-items: stretch;
}
.quality-panels {
margin-top: 16px;
}
.metrics-flow {
display: grid;
gap: 24px;
}
.metrics-primary {
display: grid;
grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
gap: 18px;
align-items: start;
}
.metrics-primary .chart-figure {
min-height: 0;
display: grid;
align-content: center;
}
.metrics-primary .chart-figure svg {
max-height: 520px;
}
.metrics-note {
display: grid;
align-content: start;
gap: 16px;
}
.metrics-note p {
margin: 0;
max-width: none;
color: var(--text);
}
.metric-summary-list {
margin: 0;
padding: 0;
list-style: none;
display: grid;
gap: 10px;
}
.metric-summary-list li {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
gap: 8px 10px;
align-items: baseline;
padding: 10px 0;
border-bottom: 1px solid var(--line-soft);
}
.metric-summary-list li:last-child { border-bottom: 0; }
.metric-summary-list b {
color: var(--ink);
font-weight: 500;
}
.metric-summary-list em {
color: var(--brand);
font-family: var(--mono);
font-style: normal;
font-variant-numeric: tabular-nums;
}
.metric-summary-list small {
grid-column: 2 / 4;
color: var(--muted);
line-height: 1.5;
overflow-wrap: break-word;
}
.metric-status {
display: inline-flex;
align-items: center;
min-height: 24px;
padding: 2px 7px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 12px;
}
.metric-detail-grid {
grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
align-items: stretch;
}
.list, .compact-list, .step-list {
margin: 0;
padding-left: 1.15em;
display: grid;
gap: 8px;
}
.list li::marker, .compact-list li::marker, .step-list li::marker { color: var(--brand); }
.compact-list {
gap: 6px;
font-size: 13.5px;
color: var(--muted);
line-height: 1.55;
}
.compact-list li, .list li, .step-list li {
min-width: 0;
overflow-wrap: break-word;
}
.panel, .metric-card, .roadmap-item {
background: #ffffff;
border: 1px solid var(--line-soft);
border-radius: 8px;
padding: 22px;
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.04);
min-width: 0;
}
.metric-card {
display: grid;
grid-template-columns: 1fr;
gap: 14px;
align-content: start;
min-height: 0;
}
.metric-card-head {
display: flex;
gap: 14px;
align-items: flex-start;
justify-content: space-between;
}
.metric-card strong {
display: block;
margin: 0;
color: var(--brand);
font-family: var(--mono);
font-size: 2rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.metric-label {
color: var(--muted);
font-size: 13px;
line-height: 1.45;
}
.metric-card-body {
min-width: 0;
}
.metric-card-body .compact-list {
gap: 7px;
max-width: 62ch;
}
.metric-card-body .compact-list li {
overflow-wrap: break-word;
word-break: normal;
}
.chart-figure {
margin: 0;
padding: 18px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: #ffffff;
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.04);
}
.chart-figure svg {
width: 100%;
height: auto;
display: block;
overflow: visible;
}
.chart-figure text {
fill: var(--ink);
font-family: var(--serif);
font-size: 13px;
}
.chart-title {
fill: var(--brand);
font-size: 16px;
font-weight: 500;
}
.chart-line {
fill: none;
stroke: var(--brand);
stroke-width: 2;
}
figcaption {
margin-top: 12px;
padding-top: 10px;
border-top: 1px solid var(--line-soft);
color: var(--muted);
font-size: 13px;
line-height: 1.5;
text-wrap: pretty;
}
table {
width: 100%;
border-collapse: collapse;
font-size: 14px;
}
th, td {
padding: 12px 10px;
text-align: left;
border-bottom: 1px solid var(--line-soft);
vertical-align: top;
}
th {
color: var(--brand);
font-weight: 500;
font-size: 12px;
}
td:first-child, th:first-child { width: 96px; }
.world-readiness {
margin-top: 16px;
display: grid;
gap: 16px;
}
.section-head > .world-readiness { grid-column: 1; }
.world-readiness-head {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 16px;
align-items: start;
}
.world-readiness-head p {
margin-top: 8px;
max-width: 72ch;
}
.world-status {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 4px 10px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 13px;
white-space: nowrap;
}
.evidence-kpis {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 10px;
}
.evidence-kpi {
padding: 14px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: var(--wash);
min-width: 0;
}
.evidence-kpi span {
display: block;
color: var(--muted);
font-size: 12px;
}
.evidence-kpi strong {
display: block;
margin-top: 4px;
color: var(--brand);
font-family: var(--mono);
font-size: 1.5rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.evidence-kpi small {
display: block;
margin-top: 8px;
color: var(--muted);
line-height: 1.45;
overflow-wrap: break-word;
}
.evidence-list {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.evidence-item {
padding: 14px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: #ffffff;
min-width: 0;
}
.evidence-item span {
color: var(--brand);
font-family: var(--mono);
font-size: 11px;
text-transform: uppercase;
}
.evidence-item h4 {
margin: 4px 0 8px;
color: var(--ink);
font-size: 1rem;
font-weight: 500;
line-height: 1.3;
}
.evidence-item h5 {
margin: 12px 0 6px;
color: var(--brand);
font-size: 12px;
font-weight: 500;
}
.evidence-item p {
margin: 0;
max-width: none;
color: var(--muted);
overflow-wrap: break-word;
}
.blocked-checks {
margin: 0;
padding-left: 1.05em;
color: var(--muted);
font-size: 13px;
line-height: 1.45;
}
.blocked-checks li {
overflow-wrap: break-word;
}
.blocked-checks li::marker {
color: var(--brand);
}
.blocked-checks-empty {
font-size: 13px;
}
.roadmap {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
}
.step {
display: inline-flex;
margin-bottom: 12px;
min-height: 28px;
align-items: center;
padding: 3px 8px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 12px;
}
.unlock {
margin-top: 14px;
color: var(--muted);
font-size: 13px;
}
@media (max-width: 980px) {
.topbar-inner {
grid-template-columns: minmax(0, 1fr) auto;
padding: 8px 16px;
}
.nav-shell { grid-template-columns: 1fr; gap: 6px; }
.report-mark { display: none; }
.report-nav a { min-width: 72px; }
.hero-grid, .section-head { grid-template-columns: 1fr; }
.section-head > .world-readiness { grid-column: auto; }
.hero-grid { gap: 24px; }
.score-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.metrics-primary, .metric-detail-grid, .two-col, .metric-grid, .chart-grid, .roadmap { grid-template-columns: 1fr; }
.evidence-list { grid-template-columns: 1fr; }
.metric-card { grid-template-columns: 1fr; }
h1 { font-size: 2.75rem; }
}
@media (max-width: 540px) {
.wrap { padding: 34px 16px 72px; }
.topbar-inner { gap: 10px; }
.report-nav {
display: flex;
gap: 2px;
}
.report-nav a {
min-width: 66px;
min-height: 38px;
padding: 0 8px;
font-size: 12px;
}
.language-switch button { min-width: 38px; min-height: 32px; padding: 0 8px; }
.hero { padding-top: 8px; }
h1 { max-width: 8em; font-size: 2.35rem; }
.lead { font-size: 1rem; }
.hero-meta span, .badges span { font-size: 12px; }
.score-strip { grid-template-columns: 1fr; }
section { margin-top: 34px; padding-top: 34px; }
.panel, .metric-card, .roadmap-item, .chart-figure, .hero-card { padding: 18px; }
.world-readiness-head, .evidence-kpis { grid-template-columns: 1fr; }
.metric-card { grid-template-columns: 1fr; gap: 10px; }
.metric-card strong { margin-bottom: 2px; }
.metric-summary-list li { grid-template-columns: auto minmax(0, 1fr) auto; }
table { font-size: 13px; }
th, td { padding: 10px 7px; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
*, *::before, *::after { transition-duration: 0.01ms !important; }
}
</style>
</head>
<body data-report-lang="zh-CN">
<a class="skip-link" href="#overview"><span data-lang="zh-CN">跳到正文</span><span data-lang="en">Skip to content</span></a>
<header class="topbar">
<div class="progress-track" aria-hidden="true"><span class="progress-bar"></span></div>
<div class="topbar-inner">
<div class="nav-shell">
<span class="report-mark">Skill audit</span>
<nav class="report-nav" aria-label="报告导航"><a href="#overview"><span data-lang="zh-CN">技能概述</span><span data-lang="en">Overview</span></a><a href="#metrics"><span data-lang="zh-CN">总览指标</span><span data-lang="en">Metrics</span></a><a href="#capability"><span data-lang="zh-CN">能力画像</span><span data-lang="en">Profile</span></a><a href="#principle"><span data-lang="zh-CN">原理结构</span><span data-lang="en">Principle</span></a><a href="#contract"><span data-lang="zh-CN">契约边界</span><span data-lang="en">Contract</span></a><a href="#quality"><span data-lang="zh-CN">质量评估</span><span data-lang="en">Quality</span></a><a href="#risk"><span data-lang="zh-CN">风险治理</span><span data-lang="en">Risk</span></a><a href="#assets"><span data-lang="zh-CN">包体资产</span><span data-lang="en">Assets</span></a><a href="#roadmap"><span data-lang="zh-CN">迭代路线</span><span data-lang="en">Roadmap</span></a></nav>
</div>
<div class="language-switch" aria-label="语言切换"><button type="button" data-set-lang="zh-CN" aria-pressed="true">简体</button><button type="button" data-set-lang="en" aria-pressed="false">EN</button></div>
</div>
</header>
<main id="main-content" class="wrap">
<section class="hero" aria-labelledby="report-title">
<div class="hero-grid">
<div>
<p class="eyebrow"><span data-lang="zh-CN">YAO Skill 生成审计报告</span><span data-lang="en">YAO Skill Generation Audit</span></p>
<p class="slug">geo-content-brief-skill</p>
<h1 id="report-title"><span data-lang="zh-CN">技能审计报告</span><span data-lang="en">Geo Content Brief Skill Audit Report</span></h1>
<p class="lead"><span data-lang="zh-CN">这份报告默认使用中文简体,把新 Skill 的定位、指标、原理、契约、质量、风险、资产和迭代路线整理为一份可审计的 HTML 报告。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></p>
<div class="hero-meta"><span><span data-lang="zh-CN">技能名称:geo-content-brief-skill</span><span data-lang="en">Skill name: geo-content-brief-skill</span></span><span><span data-lang="zh-CN">成熟度:生产</span><span data-lang="en">Maturity: production</span></span><span><span data-lang="zh-CN">格式:Agent Skills</span><span data-lang="en">Format: agent-skills</span></span><span><span data-lang="zh-CN">更新时间:2026-06-15</span><span data-lang="en">Updated: 2026-06-15</span></span></div>
<div class="badges"><span><span data-lang="zh-CN">openai</span><span data-lang="en">openai</span></span><span><span data-lang="zh-CN">claude</span><span data-lang="en">claude</span></span><span><span data-lang="zh-CN">generic</span><span data-lang="en">generic</span></span><span><span data-lang="zh-CN">vscode</span><span data-lang="en">vscode</span></span></div>
</div>
<aside class="hero-card">
<h3><span data-lang="zh-CN">核心判断</span><span data-lang="en">Core reading</span></h3>
<ul class="list"><li><span data-lang="zh-CN">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span><span data-lang="en">Turn one-off experience into a reusable, evaluable, and portable skill package.</span></li><li><span data-lang="zh-CN">Skill 作者、复用团队和后续 reviewer。</span><span data-lang="en">Skill authors, reuse teams, and later reviewers.</span></li><li><span data-lang="zh-CN">创建完成后建议先打开 reports/skill-overview.html,再继续扩展包体。</span><span data-lang="en">After creation, open reports/skill-overview.html before expanding the package further.</span></li></ul>
</aside>
</div>
<div class="score-strip" aria-label="报告关键指标"><article class='score-chip'><span><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>92</strong><i style='--score:92%'></i><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>60</strong><i style='--score:60%'></i><small><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>78</strong><i style='--score:78%'></i><small><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">Entrypoint is about 864 words/characters; references are about 565.</span></small></article></div>
</section>
<section id="overview">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">技能概述</span><span data-lang="en">Overview</span></h2>
<p><span data-lang="zh-CN">先用一屏说明这个 Skill 是什么、给谁用、交付什么。</span><span data-lang="en">A first-screen explanation of what this skill is, who it serves, and what it delivers.</span></p>
</div>
<div class="two-col">
<article class="panel">
<h3><span data-lang="zh-CN">作用定位</span><span data-lang="en">Role</span></h3>
<ul class="list"><li><span data-lang="zh-CN">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span><span data-lang="en">Turn one-off experience into a reusable, evaluable, and portable skill package.</span></li><li><span data-lang="zh-CN">交付结果:SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/conformance_matrix.md, reports/security_trust_report.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-interpretation.html, reports/skill-overview.html</span><span data-lang="en">Deliverables: SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/conformance_matrix.md, reports/security_trust_report.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-interpretation.html, reports/skill-overview.html</span></li></ul>
</article>
<figure class="chart-figure" data-chart="flow"><svg viewBox="0 0 620 170" role="img" aria-label="交付流程"><text data-lang="zh-CN" x="20" y="28" class="chart-title">交付流程</text><text data-lang="en" x="20" y="28" class="chart-title">Delivery Flow</text><path d="M188 93 H248 M398 93 H458" class="chart-line"/><g><rect x="38" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="113" y="99" text-anchor="middle">输入材料</text><text data-lang="en" x="113" y="99" text-anchor="middle">Input material</text></g><g><rect x="248" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="323" y="99" text-anchor="middle">Skill 包体</text><text data-lang="en" x="323" y="99" text-anchor="middle">Skill package</text></g><g><rect x="458" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="533" y="99" text-anchor="middle">可复用能力</text><text data-lang="en" x="533" y="99" text-anchor="middle">Reusable capability</text></g></svg><figcaption><span data-lang="zh-CN">交付流程把用户输入、生成的包体和可复用能力放在一条线上。</span><span data-lang="en">The delivery flow places user input, generated package, and reusable capability on one path.</span></figcaption></figure>
</div>
</div>
</section>
<section id="metrics">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">总览指标</span><span data-lang="en">Metrics</span></h2>
<p><span data-lang="zh-CN">分数来自本地文件和 reports 证据,缺失时明确标为证据不足。</span><span data-lang="en">Scores are derived from package files and reports; missing inputs are shown as evidence gaps.</span></p>
</div>
<article class="panel metrics-note">
<h3><span data-lang="zh-CN">指标判读</span><span data-lang="en">Reading</span></h3>
<p><span data-lang="zh-CN">先看雷达图判断能力短板,再看每项分数的证据原因。分数不是装饰数字,必须和本地文件、reports 证据或证据不足提示对应。</span><span data-lang="en">Read the radar first for weak spots, then inspect each score with its evidence. Scores must map to local files, reports, or explicit evidence gaps.</span></p>
</article>
</div>
<div class="section-body metrics-report">
<div class="metrics-flow">
<div class="metrics-primary">
<figure class="chart-figure" data-chart="radar"><svg viewBox="0 0 300 300" role="img" aria-label="评分雷达"><text data-lang="zh-CN" x="20" y="28" class="chart-title">评分雷达</text><text data-lang="en" x="20" y="28" class="chart-title">Rating Radar</text><polygon points="150.0,127.0 171.9,142.9 163.5,168.6 136.5,168.6 128.1,142.9" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,104.0 193.7,135.8 177.0,187.2 123.0,187.2 106.3,135.8" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,81.0 215.6,128.7 190.6,205.8 109.4,205.8 84.4,128.7" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,58.0 237.5,121.6 204.1,224.4 95.9,224.4 62.5,121.6" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,65.4 237.5,121.6 182.4,194.7 104.0,213.3 62.5,121.6" fill="#E4ECF5" stroke="#1B365D" stroke-width="2"/><text data-lang="zh-CN" x="150.0" y="26.0" text-anchor="middle" dominant-baseline="middle">完整度</text><text data-lang="en" x="150.0" y="26.0" text-anchor="middle" dominant-baseline="middle">Completeness</text><text data-lang="zh-CN" x="267.9" y="111.7" text-anchor="middle" dominant-baseline="middle">触发清晰</text><text data-lang="en" x="267.9" y="111.7" text-anchor="middle" dominant-baseline="middle">Trigger clarity</text><text data-lang="zh-CN" x="222.9" y="250.3" text-anchor="middle" dominant-baseline="middle">证据充分</text><text data-lang="en" x="222.9" y="250.3" text-anchor="middle" dominant-baseline="middle">Evidence depth</text><text data-lang="zh-CN" x="77.1" y="250.3" text-anchor="middle" dominant-baseline="middle">可维护性</text><text data-lang="en" x="77.1" y="250.3" text-anchor="middle" dominant-baseline="middle">Maintainability</text><text data-lang="zh-CN" x="32.1" y="111.7" text-anchor="middle" dominant-baseline="middle">可迁移性</text><text data-lang="en" x="32.1" y="111.7" text-anchor="middle" dominant-baseline="middle">Portability</text></svg><figcaption><span data-lang="zh-CN">评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。</span><span data-lang="en">The radar chart compares completeness, trigger clarity, evidence, maintainability, and portability.</span></figcaption></figure>
<article class="panel metrics-note metrics-summary-panel">
<h3><span data-lang="zh-CN">成熟度条</span><span data-lang="en">Maturity Bar</span></h3>
<ol class='metric-summary-list'><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></b><em>92</em><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></b><em>100</em><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">关注</span><span data-lang="en">Watch</span></span><b><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></b><em>60</em><small><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></b><em>85</em><small><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md is about 864 words/characters.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></b><em>100</em><small><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">可用</span><span data-lang="en">Usable</span></span><b><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></b><em>78</em><small><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">Entrypoint is about 864 words/characters; references are about 565.</span></small></li></ol>
</article>
</div>
<div class="metric-grid metric-detail-grid"><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>92</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></li><li><span data-lang="zh-CN">README.md 已存在,便于人工阅读。</span><span data-lang="en">README.md exists for human-readable usage.</span></li><li><span data-lang="zh-CN">agents/interface.yaml 已存在,便于跨平台适配。</span><span data-lang="en">agents/interface.yaml exists for cross-platform adaptation.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></li><li><span data-lang="zh-CN">description 有足够长度说明任务边界。</span><span data-lang="en">The description is long enough to explain the task boundary.</span></li><li><span data-lang="zh-CN">description 已包含使用场景或排除边界信号。</span><span data-lang="en">The description includes usage-scenario or exclusion-boundary signals.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>60</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></li><li><span data-lang="zh-CN">skill-ir.json 已存在。</span><span data-lang="en">skill-ir.json exists.</span></li><li><span data-lang="zh-CN">compiled_targets.json 已存在。</span><span data-lang="en">compiled_targets.json exists.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></span><strong>85</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md is about 864 words/characters.</span></li><li><span data-lang="zh-CN">入口文件保持克制,可维护性较好。</span><span data-lang="en">The entrypoint stays restrained, which supports maintainability.</span></li><li><span data-lang="zh-CN">references/ 已承载扩展指导。</span><span data-lang="en">references/ carries extended guidance.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></li><li><span data-lang="zh-CN">manifest.json 已存在。</span><span data-lang="en">manifest.json exists.</span></li><li><span data-lang="zh-CN">目标平台或 adapter target 已声明。</span><span data-lang="en">Target platforms or adapter targets are declared.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>78</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">Entrypoint is about 864 words/characters; references are about 565.</span></li><li><span data-lang="zh-CN">分数越高代表上下文成本越低。</span><span data-lang="en">A higher score means lower context cost.</span></li><li><span data-lang="zh-CN">上下文成本处于可控区间。</span><span data-lang="en">Context cost is within a controlled range.</span></li></ul></div></article></div>
</div>
</div>
</section>
<section id="capability">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">能力画像</span><span data-lang="en">Capability</span></h2>
<p><span data-lang="zh-CN">判断这个 Skill 在能力地图中的位置和复用范围。</span><span data-lang="en">Places this skill on a capability map and clarifies reuse scope.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="matrix"><svg viewBox="0 0 520 460" role="img" aria-label="能力矩阵"><text data-lang="zh-CN" x="20" y="30" class="chart-title">能力矩阵</text><text data-lang="en" x="20" y="30" class="chart-title">Capability Matrix</text><rect x="70" y="70" width="380" height="320" fill="#faf9f5" stroke="#e8e6dc"/><line x1="260" y1="70" x2="260" y2="390" stroke="#e8e6dc"/><line x1="70" y1="230" x2="450" y2="230" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="424" text-anchor="middle">执行确定性</text><text data-lang="en" x="260" y="424" text-anchor="middle">Execution certainty</text><text data-lang="zh-CN" x="22" y="230" transform="rotate(-90 22 230)" text-anchor="middle">知识密度</text><text data-lang="en" x="22" y="230" transform="rotate(-90 22 230)" text-anchor="middle">Knowledge density</text><circle cx="343.6" cy="174.0" r="12" fill="#1B365D"/><text data-lang="zh-CN" x="361.6" y="179.0">Creative generation</text><text data-lang="en" x="361.6" y="179.0">Creative generation</text></svg><figcaption><span data-lang="zh-CN">能力矩阵说明这个 Skill 更偏知识密集还是执行确定。</span><span data-lang="en">The capability matrix shows whether the skill leans toward knowledge density or execution certainty.</span></figcaption></figure>
<article class="panel">
<h3><span data-lang="zh-CN">画像摘要</span><span data-lang="en">Profile</span></h3>
<ul class="list"><li><span data-lang="zh-CN">能力类型:Creative generation</span><span data-lang="en">Capability type: Creative generation</span></li><li><span data-lang="zh-CN">成熟度:production</span><span data-lang="en">Maturity: production</span></li><li><span data-lang="zh-CN">触发强度:手动触发 + description 路由</span><span data-lang="en">Trigger strength: Manual activation plus description-based routing</span></li><li><span data-lang="zh-CN">复用范围:跨平台</span><span data-lang="en">Reuse scope: Cross-platform</span></li></ul>
</article>
</div>
</div>
</section>
<section id="principle">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">原理结构</span><span data-lang="en">Principle</span></h2>
<p><span data-lang="zh-CN">说明入口、参考、脚本、评估和报告如何组成一个稳定闭环。</span><span data-lang="en">Explains how entrypoint, references, scripts, evals, and reports form a stable loop.</span></p>
</div>
<div>
<div class="chart-grid"><figure class="chart-figure" data-chart="layers"><svg viewBox="0 0 520 320" role="img" aria-label="Skill principle flow"><text data-lang="zh-CN" x="20" y="30" class="chart-title">分层结构</text><text data-lang="en" x="20" y="30" class="chart-title">Layered Structure</text><rect x="70" y="55" width="380" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="77" text-anchor="middle">入口层</text><text data-lang="en" x="260" y="77" text-anchor="middle">Entrypoint layer</text><rect x="88" y="103" width="344" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="125" text-anchor="middle">参考层</text><text data-lang="en" x="260" y="125" text-anchor="middle">Reference layer</text><rect x="106" y="151" width="308" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="173" text-anchor="middle">脚本层</text><text data-lang="en" x="260" y="173" text-anchor="middle">Script layer</text><rect x="124" y="199" width="272" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="221" text-anchor="middle">评估层</text><text data-lang="en" x="260" y="221" text-anchor="middle">Evaluation layer</text><rect x="142" y="247" width="236" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="269" text-anchor="middle">报告层</text><text data-lang="en" x="260" y="269" text-anchor="middle">Report layer</text></svg><figcaption><span data-lang="zh-CN">分层结构展示入口、参考、脚本、评估和报告如何各司其职。</span><span data-lang="en">The layered structure shows how entrypoint, references, scripts, evals, and reports each carry a distinct role.</span></figcaption></figure></div>
<div class="two-col">
<article class="panel">
<h3><span data-lang="zh-CN">执行流程</span><span data-lang="en">Execution Flow</span></h3>
<ol class="step-list"><li><span data-lang="zh-CN">读取用户输入,识别目标受众、内容渠道、关键词、品牌边界、禁止表达和必须覆盖的信息。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">对照 `references/brief-structure.md` 生成简报骨架:目标、洞察、角度、关键词、结构、证据、风险和验收标准。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">如果缺少核心输入,先提出最多三个澄清问题,不用假设补全用户没有提供的事实。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">用 `evals/trigger_cases.jsonl` 检查当前请求是否属于 GEO 内容简报场景。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">用 `evals/output_cases.jsonl` 检查输出是否包含输入摘要、内容结构、证据要求、禁区和下一步动作。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li></ol>
</article>
<article class="panel">
<h3><span data-lang="zh-CN">调用方式</span><span data-lang="en">How To Use</span></h3>
<ol class="step-list"><li><span data-lang="zh-CN">当你需要把访谈纪要、关键词、竞品线索和渠道限制整理成中文 GEO 内容简报时,使用 $geo-content-brief-skill。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">Use this skill when the request matches: 将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span><span data-lang="en">Use this skill when the request matches the frontmatter description.</span></li></ol>
</article>
</div>
</div>
</div>
</section>
<section id="contract">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">契约边界</span><span data-lang="en">Contract</span></h2>
<p><span data-lang="zh-CN">把触发、输入、输出和排除场景放在同一屏。</span><span data-lang="en">Keeps trigger, inputs, outputs, and exclusions on the same screen.</span></p>
</div>
<div class="two-col">
<article class="panel">
<h3><span data-lang="zh-CN">触发描述</span><span data-lang="en">Trigger</span></h3>
<p><span data-lang="zh-CN">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></p>
<h3><span data-lang="zh-CN">输入材料</span><span data-lang="en">Inputs</span></h3>
<ul class="list"><li><span data-lang="zh-CN">用户提供的工作流、提示词、文档、记录或散乱笔记</span><span data-lang="en">User-provided workflows, prompts, documents, records, or rough notes.</span></li><li><span data-lang="zh-CN">期望沉淀的复用场景、排除项、约束和质量标准</span><span data-lang="en">The reusable scenario, exclusions, constraints, and quality standards to capture.</span></li></ul>
</article>
<article class="panel">
<h3><span data-lang="zh-CN">输出结果</span><span data-lang="en">Outputs</span></h3>
<ul class="list"><li><span data-lang="zh-CN">可路由的 SKILL.md</span><span data-lang="en">A routeable SKILL.md.</span></li><li><span data-lang="zh-CN">agents/interface.yaml 元数据</span><span data-lang="en">agents/interface.yaml metadata.</span></li><li><span data-lang="zh-CN">必要的 references、scripts、evals、reports 证据</span><span data-lang="en">Necessary references, scripts, evals, and reports evidence.</span></li><li><span data-lang="zh-CN">结构化 Skill 目录,共 8 类关键资产。</span><span data-lang="en">Structured skill directory with 8 key asset groups.</span></li></ul>
<h3><span data-lang="zh-CN">不应触发</span><span data-lang="en">Should Not Trigger</span></h3>
<ul class="list"><li><span data-lang="zh-CN">只需要一次性回答、没有复用价值的临时请求。</span><span data-lang="en">One-off requests that do not need reusable skill behavior.</span></li><li><span data-lang="zh-CN">要求直接执行相邻任务,而不是沉淀或使用这个 Skill。</span><span data-lang="en">Requests to perform an adjacent task directly rather than create or use this skill.</span></li><li><span data-lang="zh-CN">缺少必要事实且用户不允许澄清的场景。</span><span data-lang="en">Cases that lack required facts and do not allow clarification.</span></li></ul>
</article>
</div>
</div>
</section>
<section id="quality">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">质量评估</span><span data-lang="en">Quality</span></h2>
<p><span data-lang="zh-CN">展示强项、缺口和建议,避免只给分不解释。</span><span data-lang="en">Shows strengths, gaps, and recommendations instead of scores without explanation.</span></p>
</div>
<div>
<table>
<thead><tr><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th><th><span data-lang="zh-CN">证据</span><span data-lang="en">Evidence</span></th><th><span data-lang="zh-CN">建议</span><span data-lang="en">Action</span></th></tr></thead>
<tbody><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">触发面保持精简,并锚定在 frontmatter description。</span><span data-lang="en">The trigger surface stays lean and anchored in the frontmatter description.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成 Skill IR,核心语义可先于平台打包被审查和迁移。</span><span data-lang="en">Skill IR is generated so core semantics can be reviewed and migrated before platform packaging.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。</span><span data-lang="en">Target compilation evidence is generated to review how IR maps to OpenAI, Claude, generic, and other target contracts.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">缺口</span><span data-lang="en">Gap</span></td><td><span data-lang="zh-CN">证据充分需要补强:已生成 12 / 20 类报告证据。</span><span data-lang="en">Evidence depth needs improvement: Generated 12 / 20 evidence report types.</span></td><td><span data-lang="zh-CN">纳入下一轮修复</span><span data-lang="en">Fix next</span></td></tr></tbody>
</table>
<div class="two-col quality-panels">
<article class="panel">
<h3><span data-lang="zh-CN">执行证据</span><span data-lang="en">Execution Evidence</span></h3>
<ul class="list"><li><span data-lang="zh-CN">尚未生成输出执行证据报告。</span><span data-lang="en">The output execution evidence report has not been generated yet.</span></li></ul>
</article>
<article class="panel">
<h3><span data-lang="zh-CN">盲评审定</span><span data-lang="en">Blind Adjudication</span></h3>
<ul class="list"><li><span data-lang="zh-CN">尚未生成盲评审定报告。</span><span data-lang="en">The blind review adjudication report has not been generated yet.</span></li></ul>
</article>
</div>
<div class="two-col quality-panels">
<article class="panel">
<h3><span data-lang="zh-CN">评审原则</span><span data-lang="en">Review Rule</span></h3>
<ul class="list"><li><span data-lang="zh-CN">先记录 reviewer 对 A/B 的选择,再打开答案 key 计算一致率。</span><span data-lang="en">Record the reviewer&#x27;s A/B choice before opening the answer key and calculating agreement.</span></li><li><span data-lang="zh-CN">缺少真实 reviewer 决策时只显示待评审,不伪造人工结论。</span><span data-lang="en">When real reviewer decisions are missing, show pending status instead of fabricating human conclusions.</span></li></ul>
</article>
<article class="panel">
<h3><span data-lang="zh-CN">运行原则</span><span data-lang="en">Run Rule</span></h3>
<ul class="list"><li><span data-lang="zh-CN">recorded fixture 只能证明可复现样本,不等同于模型执行。</span><span data-lang="en">A recorded fixture proves reproducible samples only; it is not model execution.</span></li><li><span data-lang="zh-CN">只有 provider runner 返回 model metadata 时才计入 model-executed。</span><span data-lang="en">Only provider runners that return model metadata count as model-executed.</span></li></ul>
</article>
</div>
</div>
</div>
</section>
<section id="risk">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">风险治理</span><span data-lang="en">Risk</span></h2>
<p><span data-lang="zh-CN">提前暴露误触发、漂移、证据不足和迁移风险。</span><span data-lang="en">Surfaces trigger, drift, evidence, and portability risks before the package grows.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="risk_heatmap"><svg viewBox="0 0 380 300" role="img" aria-label="风险热力"><text data-lang="zh-CN" x="20" y="30" class="chart-title">风险热力</text><text data-lang="en" x="20" y="30" class="chart-title">Risk Heatmap</text><rect x="80" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="119" y="224" text-anchor="middle">0</text><rect x="166" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="205" y="224" text-anchor="middle">0</text><rect x="252" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="224" text-anchor="middle">0</text><rect x="80" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="119" y="158" text-anchor="middle">0</text><rect x="166" y="124" width="78" height="58" rx="6" fill="#D0DCE9" stroke="#e8e6dc"/><text x="205" y="158" text-anchor="middle">2</text><rect x="252" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="158" text-anchor="middle">0</text><rect x="80" y="58" width="78" height="58" rx="6" fill="#D0DCE9" stroke="#e8e6dc"/><text x="119" y="92" text-anchor="middle">2</text><rect x="166" y="58" width="78" height="58" rx="6" fill="#EEF2F7" stroke="#e8e6dc"/><text x="205" y="92" text-anchor="middle">1</text><rect x="252" y="58" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="92" text-anchor="middle">0</text><text data-lang="zh-CN" x="210" y="278" text-anchor="middle">发生概率</text><text data-lang="en" x="210" y="278" text-anchor="middle">Probability</text><text data-lang="zh-CN" x="24" y="160" transform="rotate(-90 24 160)" text-anchor="middle">影响程度</text><text data-lang="en" x="24" y="160" transform="rotate(-90 24 160)" text-anchor="middle">Impact</text></svg><figcaption><span data-lang="zh-CN">风险热力图用影响程度和发生概率标出当前治理重点。</span><span data-lang="en">The risk heatmap marks governance priorities by impact and probability.</span></figcaption></figure>
<div>
<table>
<thead><tr><th><span data-lang="zh-CN">风险</span><span data-lang="en">Risk</span></th><th><span data-lang="zh-CN">信号</span><span data-lang="en">Signal</span></th><th><span data-lang="zh-CN">应对</span><span data-lang="en">Response</span></th></tr></thead>
<tbody><tr><td><span data-lang="zh-CN">误触发风险</span><span data-lang="en">Trigger risk</span></td><td><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">输出漂移风险</span><span data-lang="en">Output drift risk</span></td><td><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">证据不足风险</span><span data-lang="en">Evidence gap risk</span></td><td><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">包体膨胀风险</span><span data-lang="en">Package bloat risk</span></td><td><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md is about 864 words/characters.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">跨平台迁移风险</span><span data-lang="en">Portability risk</span></td><td><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr></tbody>
</table>
</div>
</div>
<article class='panel world-readiness'><div class='world-readiness-head'><div><h3><span data-lang="zh-CN">世界证据</span><span data-lang="en">World Evidence</span></h3><p><span data-lang="zh-CN">未生成 world-class ledger;当前报告不会宣称世界级完成。</span><span data-lang="en">No world-class ledger was generated; this report does not claim world-class completion.</span></p></div><span class='world-status'><span data-lang="zh-CN">证据待补</span><span data-lang="en">Evidence pending</span></span></div><div class='evidence-kpis'><article class='evidence-kpi'><span><span data-lang="zh-CN">待补证据</span><span data-lang="en">Pending</span></span><strong>0</strong><small><span data-lang="zh-CN">仍需外部或人工证据接受。</span><span data-lang="en">External or human evidence still needs acceptance.</span></small></article><article class='evidence-kpi'><span><span data-lang="zh-CN">已接受</span><span data-lang="en">Accepted</span></span><strong>0</strong><small><span data-lang="zh-CN">已通过 source check 与提交契约。</span><span data-lang="en">Passed source checks and submission contract.</span></small></article><article class='evidence-kpi'><span><span data-lang="zh-CN">源检查</span><span data-lang="en">Source Checks</span></span><strong>0 / 0</strong><small><span data-lang="zh-CN">通过数 / 总检查数。</span><span data-lang="en">Passed checks / total checks.</span></small></article></div><div class='evidence-list'><article class='evidence-item empty'><p><span data-lang="zh-CN">尚未生成 world-class ledger;这里只保留反过度承诺提示。</span><span data-lang="en">No world-class ledger has been generated; this panel keeps the anti-overclaim guard visible.</span></p></article></div></article>
</div>
</section>
<section id="assets">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">包体资产</span><span data-lang="en">Assets</span></h2>
<p><span data-lang="zh-CN">让 reviewer 快速确认关键文件、目录和资产分布。</span><span data-lang="en">Lets reviewers confirm key files, directories, and asset distribution quickly.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-14.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-28.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-42.9" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="28.6 71.4" stroke-dashoffset="-57.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-85.7" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">42项</text><text data-lang="en" x="130" y="136" text-anchor="middle">42 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
<table>
<thead><tr><th><span data-lang="zh-CN">路径</span><span data-lang="en">Path</span></th><th><span data-lang="zh-CN">作用</span><span data-lang="en">Role</span></th><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th></tr></thead>
<tbody><tr><td>SKILL.md</td><td><span data-lang="zh-CN">Skill 入口文件</span><span data-lang="en">Skill entrypoint</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>README.md</td><td><span data-lang="zh-CN">人类可读使用说明</span><span data-lang="en">Human-readable usage guide</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>agents/interface.yaml</td><td><span data-lang="zh-CN">跨平台接口元数据</span><span data-lang="en">Neutral interface metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>manifest.json</td><td><span data-lang="zh-CN">生命周期与打包元数据</span><span data-lang="en">Lifecycle and portability metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>references</td><td><span data-lang="zh-CN">扩展指导与复用资料</span><span data-lang="en">Extended guidance and reusable notes</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>scripts</td><td><span data-lang="zh-CN">确定性脚本或本地工具</span><span data-lang="en">Deterministic helpers or local tooling</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>evals</td><td><span data-lang="zh-CN">触发与质量检查</span><span data-lang="en">Trigger and quality checks</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>reports</td><td><span data-lang="zh-CN">生成的证据与总结报告</span><span data-lang="en">Generated evidence and overview artifacts</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr></tbody>
</table>
</div>
</div>
</section>
<section id="roadmap">
<div class="section-head">
<div>
<h2><span data-lang="zh-CN">迭代路线</span><span data-lang="en">Roadmap</span></h2>
<p><span data-lang="zh-CN">把下一步升级收束为少数高价值动作。</span><span data-lang="en">Keeps next iteration moves focused and actionable.</span></p>
</div>
<div>
<div class="chart-grid"><figure class="chart-figure" data-chart="timeline"><svg viewBox="0 0 520 210" role="img" aria-label="迭代时间"><text data-lang="zh-CN" x="20" y="30" class="chart-title">迭代时间</text><text data-lang="en" x="20" y="30" class="chart-title">Iteration Timeline</text><line x1="60" y1="92" x2="440" y2="92" class="chart-line"/><circle cx="60" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="60" y="126" text-anchor="middle">下一步 1</text><text data-lang="en" x="60" y="126" text-anchor="middle">Next 1</text><text data-lang="zh-CN" x="60" y="150" text-anchor="middle">Tighten trigger a…</text><text data-lang="en" x="60" y="150" text-anchor="middle">Tighten trigger a…</text><circle cx="250" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="250" y="126" text-anchor="middle">下一步 2</text><text data-lang="en" x="250" y="126" text-anchor="middle">Next 2</text><text data-lang="zh-CN" x="250" y="150" text-anchor="middle">Add the first exe…</text><text data-lang="en" x="250" y="150" text-anchor="middle">Add the first exe…</text><circle cx="440" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="440" y="126" text-anchor="middle">下一步 3</text><text data-lang="en" x="440" y="126" text-anchor="middle">Next 3</text><text data-lang="zh-CN" x="440" y="150" text-anchor="middle">Promote from scaf…</text><text data-lang="en" x="440" y="150" text-anchor="middle">Promote from scaf…</text></svg><figcaption><span data-lang="zh-CN">迭代时间线把下一步升级收束成少数可执行动作。</span><span data-lang="en">The iteration timeline narrows the next upgrade into a few executable moves.</span></figcaption></figure></div>
<div class="roadmap"><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 1</span><span data-lang="en">Next 1</span></span><h3><span data-lang="zh-CN">收紧触发与排除边界</span><span data-lang="en">Tighten trigger and exclusions</span></h3><p><span data-lang="zh-CN">在继续扩展前,需要先把相邻但不应触发的场景说清楚。</span><span data-lang="en">The package needs clearer near-neighbor exclusions before it grows.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">增加 3 到 5 个应触发和不应触发的例子。</span><span data-lang="en">Add 3 to 5 should-trigger and should-not-trigger examples.</span></li><li><span data-lang="zh-CN">精炼 frontmatter description,明确重复任务和非目标。</span><span data-lang="en">Refine the frontmatter description to name the recurring job and non-goals.</span></li><li><span data-lang="zh-CN">扩展包体前先跑一轮触发评估。</span><span data-lang="en">Run a first trigger evaluation pass before expanding the package.</span></li></ul><p class='unlock'><span data-lang="zh-CN">路由更清晰,误触发更少。</span><span data-lang="en">Cleaner routing and fewer accidental activations.</span></p></article><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 2</span><span data-lang="en">Next 2</span></span><h3><span data-lang="zh-CN">补上第一个执行资产</span><span data-lang="en">Add the first execution asset</span></h3><p><span data-lang="zh-CN">当前包体仍偏文本说明,应先增加一个能减少重复人工操作的资产。</span><span data-lang="en">The package is still mostly prose. Add one asset that removes repeated manual work.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">如果用户会反复使用某段流程说明,把它沉淀到 references。</span><span data-lang="en">Move stable procedural guidance into references if users will need it repeatedly.</span></li><li><span data-lang="zh-CN">如果某个重复步骤可以执行而不是描述,就沉淀成一个确定性 helper script。</span><span data-lang="en">Create one deterministic helper script if a repeated step can be executed instead of described.</span></li><li><span data-lang="zh-CN">保持主 SKILL.md 简洁,并围绕路由与入口组织。</span><span data-lang="en">Keep the main SKILL.md compact and route-oriented.</span></li></ul><p class='unlock'><span data-lang="zh-CN">在不膨胀入口文件的前提下提升执行质量。</span><span data-lang="en">Stronger execution quality without bloating the entrypoint.</span></p></article><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 3</span><span data-lang="en">Next 3</span></span><h3><span data-lang="zh-CN">从脚手架推进到生产可用</span><span data-lang="en">Promote from scaffold to production-ready</span></h3><p><span data-lang="zh-CN">第一版已经存在,下一步收益通常来自补上最小但有效的质量门禁。</span><span data-lang="en">The first version exists; the next gain usually comes from adding the smallest useful gates.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">判断这个 Skill 是个人使用、团队复用,还是库级基础能力。</span><span data-lang="en">Decide whether this skill is personal, team-reused, or library-grade.</span></li><li><span data-lang="zh-CN">只添加与风险等级匹配的质量门禁。</span><span data-lang="en">Add only the gates that match that risk level.</span></li><li><span data-lang="zh-CN">一旦进入真实复用,就记录生命周期元数据和评审节奏。</span><span data-lang="en">Record lifecycle metadata and review cadence once reuse becomes real.</span></li></ul><p class='unlock'><span data-lang="zh-CN">更清晰地从探索性包体走向可维护资产。</span><span data-lang="en">A clearer path from exploratory package to maintained asset.</span></p></article></div>
</div>
</div>
</section>
</main>
<script>
(function () {
var buttons = Array.prototype.slice.call(document.querySelectorAll("[data-set-lang]"));
var navLinks = Array.prototype.slice.call(document.querySelectorAll(".report-nav a"));
var sections = navLinks
.map(function (link) { return document.querySelector(link.getAttribute("href")); })
.filter(Boolean);
var progressBar = document.querySelector(".progress-bar");
function setLanguage(lang) {
document.body.setAttribute("data-report-lang", lang);
document.documentElement.setAttribute("lang", lang);
buttons.forEach(function (button) {
button.setAttribute("aria-pressed", button.getAttribute("data-set-lang") === lang ? "true" : "false");
});
}
function updateProgress() {
var scrollTop = window.scrollY || document.documentElement.scrollTop;
var height = Math.max(1, document.documentElement.scrollHeight - window.innerHeight);
var pct = Math.min(100, Math.max(0, (scrollTop / height) * 100));
if (progressBar) progressBar.style.transform = "scaleX(" + pct / 100 + ")";
var active = sections[0];
sections.forEach(function (section) {
if (section.getBoundingClientRect().top <= 110) active = section;
});
navLinks.forEach(function (link) {
link.setAttribute("aria-current", link.getAttribute("href") === "#" + active.id ? "true" : "false");
});
}
buttons.forEach(function (button) {
button.addEventListener("click", function () {
setLanguage(button.getAttribute("data-set-lang"));
});
});
window.addEventListener("scroll", updateProgress, { passive: true });
window.addEventListener("resize", updateProgress);
setLanguage("zh-CN");
updateProgress();
})();
</script>
</body>
</html>
@@ -0,0 +1,166 @@
{
"skill_name": "geo-content-brief-skill",
"description": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"systems_doctrine": "Structure drives behavior: improve the boundary, feedback loops, drift watch, and leverage points before adding weight.",
"stability": {
"score": 77,
"band": "stable-first-pass"
},
"boundary_map": {
"owned_job": "将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。",
"input_boundary": [
"user-provided workflow notes, prompts, docs, or examples"
],
"output_boundary": "a reusable skill output",
"non_goals": [
"one-off adjacent requests that do not match the recurring job",
"private local material that was not intentionally included"
],
"constraints": [],
"standards": [],
"human_judgment_boundary": [
"Ask one focused clarification when the real job, output, or exclusion boundary is unclear.",
"Escalate visible tradeoffs when benchmark patterns conflict with local privacy, naming, or governance constraints.",
"Do not silently broaden the skill into adjacent jobs just because the examples are nearby."
],
"maturity_assumption": "scaffold"
},
"feedback_loops": [
{
"name": "Intent boundary loop",
"signal": "Intent confidence score is 10/100.",
"response": "Ask only the highest-leverage clarification before adding package weight.",
"evidence": "reports/intent-confidence.md and reports/intent-dialogue.md"
},
{
"name": "Reference synthesis loop",
"signal": "Benchmark patterns are useful only after they are abstracted into borrow and avoid guidance.",
"response": "Borrow one pattern at a time and keep the rest as reviewer-visible evidence.",
"evidence": "reports/reference-synthesis.md",
"current_patterns": [
"Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.",
"Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.",
"Borrow the discipline of defining what the skill should not own before growing the package.",
"Do not let packaging or platform concerns swallow the core job boundary.",
"Do not create experimental overhead that exceeds the skill's real risk tier."
]
},
{
"name": "Output quality loop",
"signal": "Generated output may fail in recurring domain-specific ways.",
"response": "Apply predicted output-risk families as self-repair checks before final output.",
"evidence": "reports/output-risk-profile.md",
"current_risk_families": [
"Markdown readability",
"Screenshot and visual capture",
"Citation and footnote clutter",
"Tone and specificity",
"Tutorial quality"
]
},
{
"name": "Reviewer feedback loop",
"signal": "Human review catches drift that static checks miss.",
"response": "Capture lightweight feedback and turn repeated findings into gates or references.",
"evidence": "reports/review-viewer.html and feedback records"
},
{
"name": "Lifecycle loop",
"signal": "As reuse grows, the skill needs stronger gates, ownership, and regression evidence.",
"response": "Promote only when the next gate improves reliability more than context cost.",
"evidence": "manifest.json, reports/iteration-directions.md, and governance checks"
}
],
"drift_watch": [
{
"name": "Trigger drift",
"watch_signal": "Users start invoking the skill for adjacent one-off or explanation-only requests.",
"countermeasure": "Add near-neighbor exclusions and route evals before expanding workflow steps.",
"cadence": "per trigger or description change"
},
{
"name": "Output drift",
"watch_signal": "Outputs remain valid but become generic, cluttered, or weakly aligned with the user's domain.",
"countermeasure": "Refresh output-risk and artifact-design profiles, then add one self-repair check.",
"cadence": "after the first 3-5 real uses",
"risk_families": [
"Markdown readability",
"Screenshot and visual capture",
"Citation and footnote clutter",
"Tone and specificity",
"Tutorial quality"
]
},
{
"name": "Reference drift",
"watch_signal": "Borrowed benchmark patterns no longer fit the local job or add ceremony without payoff.",
"countermeasure": "Re-run reference synthesis and keep only patterns that improve the current boundary.",
"cadence": "per material benchmark or product assumption change"
},
{
"name": "Governance drift",
"watch_signal": "Skill usage becomes team-critical while ownership, review cadence, or rollback evidence stays informal.",
"countermeasure": "Promote maturity tier and add reviewer-visible lifecycle evidence.",
"cadence": "when reuse becomes real"
}
],
"failure_pattern_map": [
{
"family": "Boundary failure",
"symptom": "The skill handles nearby requests that were never part of the recurring job.",
"repair": "Narrow the description and add explicit non-goals before adding more execution steps."
},
{
"family": "Feedback gap",
"symptom": "The skill has rules but no signal telling authors which rule should change after use.",
"repair": "Turn repeated reviewer feedback into one eval, one reference note, or one self-repair check."
},
{
"family": "Output degradation",
"symptom": "The result is structurally correct but generic, cluttered, or weakly matched to the user's domain.",
"repair": "Use output-risk families as pre-final checks.",
"current_risk_families": [
"Markdown readability",
"Screenshot and visual capture",
"Citation and footnote clutter",
"Tone and specificity",
"Tutorial quality"
]
},
{
"family": "Prompt-behavior mismatch",
"symptom": "The role, task, and format are copied from a prompt instead of becoming stable skill behavior.",
"repair": "Convert reusable role/task/format assumptions into workflow, reports, or references.",
"watch_axes": [
"Specificity"
]
}
],
"leverage_points": [
{
"rank": 1,
"point": "Clarify the real job boundary",
"why": "Intent uncertainty creates downstream trigger, output, and governance errors.",
"move": "Ask one focused question and update intent context before adding assets."
},
{
"rank": 2,
"point": "Tune the frontmatter description",
"why": "The description is the highest-leverage routing surface.",
"move": "Name the recurring job, expected input, output, and strongest non-goal in compact language."
},
{
"rank": 3,
"point": "Install output self-repair checks",
"why": "The likely failure families are: Markdown readability, Screenshot and visual capture, Citation and footnote clutter.",
"move": "Add only the checks that prevent recurring output mistakes."
},
{
"rank": 4,
"point": "Borrow one pattern, not a whole product",
"why": "External references improve quality when reduced to structure, not copied as surface style.",
"move": "Start from: Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts."
}
],
"reviewer_rule": "Reviewer should ask whether the skill's structure will keep producing the desired behavior after repeated real use."
}
@@ -0,0 +1,156 @@
# System Model
Skill: `geo-content-brief-skill`
- Stability score: `77/100`
- Stability band: `stable-first-pass`
- Doctrine: Structure drives behavior: improve the boundary, feedback loops, drift watch, and leverage points before adding weight.
## System Boundary Map
- Owned job: 将 GEO 内容访谈、关键词笔记和渠道约束整理成可执行的中文内容简报 Skill,适用于团队复用、触发边界审查和后续质量评估。
- Output boundary: a reusable skill output
- Maturity assumption: `scaffold`
- Input boundary:
- user-provided workflow notes, prompts, docs, or examples
- Non-goals:
- one-off adjacent requests that do not match the recurring job
- private local material that was not intentionally included
- Human judgment boundary:
- Ask one focused clarification when the real job, output, or exclusion boundary is unclear.
- Escalate visible tradeoffs when benchmark patterns conflict with local privacy, naming, or governance constraints.
- Do not silently broaden the skill into adjacent jobs just because the examples are nearby.
## Feedback Loops
### Intent boundary loop
- Signal: Intent confidence score is 10/100.
- Response: Ask only the highest-leverage clarification before adding package weight.
- Evidence: reports/intent-confidence.md and reports/intent-dialogue.md
### Reference synthesis loop
- Signal: Benchmark patterns are useful only after they are abstracted into borrow and avoid guidance.
- Response: Borrow one pattern at a time and keep the rest as reviewer-visible evidence.
- Evidence: reports/reference-synthesis.md
- Current patterns:
- Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.
- Borrow a small hypothesis-test-learn loop so the first revision is evidence-backed.
- Borrow the discipline of defining what the skill should not own before growing the package.
- Do not let packaging or platform concerns swallow the core job boundary.
- Do not create experimental overhead that exceeds the skill's real risk tier.
### Output quality loop
- Signal: Generated output may fail in recurring domain-specific ways.
- Response: Apply predicted output-risk families as self-repair checks before final output.
- Evidence: reports/output-risk-profile.md
- Current risk families:
- Markdown readability
- Screenshot and visual capture
- Citation and footnote clutter
- Tone and specificity
- Tutorial quality
### Reviewer feedback loop
- Signal: Human review catches drift that static checks miss.
- Response: Capture lightweight feedback and turn repeated findings into gates or references.
- Evidence: reports/review-viewer.html and feedback records
### Lifecycle loop
- Signal: As reuse grows, the skill needs stronger gates, ownership, and regression evidence.
- Response: Promote only when the next gate improves reliability more than context cost.
- Evidence: manifest.json, reports/iteration-directions.md, and governance checks
## Delay And Drift Watch
### Trigger drift
- Watch signal: Users start invoking the skill for adjacent one-off or explanation-only requests.
- Countermeasure: Add near-neighbor exclusions and route evals before expanding workflow steps.
- Cadence: per trigger or description change
### Output drift
- Watch signal: Outputs remain valid but become generic, cluttered, or weakly aligned with the user's domain.
- Countermeasure: Refresh output-risk and artifact-design profiles, then add one self-repair check.
- Cadence: after the first 3-5 real uses
- Risk families:
- Markdown readability
- Screenshot and visual capture
- Citation and footnote clutter
- Tone and specificity
- Tutorial quality
### Reference drift
- Watch signal: Borrowed benchmark patterns no longer fit the local job or add ceremony without payoff.
- Countermeasure: Re-run reference synthesis and keep only patterns that improve the current boundary.
- Cadence: per material benchmark or product assumption change
### Governance drift
- Watch signal: Skill usage becomes team-critical while ownership, review cadence, or rollback evidence stays informal.
- Countermeasure: Promote maturity tier and add reviewer-visible lifecycle evidence.
- Cadence: when reuse becomes real
## Failure Pattern Map
### Boundary failure
- Symptom: The skill handles nearby requests that were never part of the recurring job.
- Repair: Narrow the description and add explicit non-goals before adding more execution steps.
### Feedback gap
- Symptom: The skill has rules but no signal telling authors which rule should change after use.
- Repair: Turn repeated reviewer feedback into one eval, one reference note, or one self-repair check.
### Output degradation
- Symptom: The result is structurally correct but generic, cluttered, or weakly matched to the user's domain.
- Repair: Use output-risk families as pre-final checks.
- Current Risk Families:
- Markdown readability
- Screenshot and visual capture
- Citation and footnote clutter
- Tone and specificity
- Tutorial quality
### Prompt-behavior mismatch
- Symptom: The role, task, and format are copied from a prompt instead of becoming stable skill behavior.
- Repair: Convert reusable role/task/format assumptions into workflow, reports, or references.
- Watch Axes:
- Specificity
## Highest Leverage Moves
### 1. Clarify the real job boundary
- Why: Intent uncertainty creates downstream trigger, output, and governance errors.
- Move: Ask one focused question and update intent context before adding assets.
### 2. Tune the frontmatter description
- Why: The description is the highest-leverage routing surface.
- Move: Name the recurring job, expected input, output, and strongest non-goal in compact language.
### 3. Install output self-repair checks
- Why: The likely failure families are: Markdown readability, Screenshot and visual capture, Citation and footnote clutter.
- Move: Add only the checks that prevent recurring output mistakes.
### 4. Borrow one pattern, not a whole product
- Why: External references improve quality when reduced to structure, not copied as surface style.
- Move: Start from: Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.
## Reviewer Use
- Reviewer should ask whether the skill's structure will keep producing the desired behavior after repeated real use.
- Prefer changing the system boundary, feedback loop, or leverage point before adding more prose.
- If a problem repeats, convert it into a named failure pattern and one regression check.
+62 -3
View File
@@ -34,18 +34,60 @@ After source changes that affect scripts, package contents, trust evidence, Revi
GENERATED_AT="${GENERATED_AT:-$(date +%F)}"
python3 scripts/run_output_execution.py --runner-command '["python3","scripts/local_output_eval_runner.py"]'
python3 scripts/compile_skill.py . --generated-at "$GENERATED_AT"
python3 scripts/cross_packager.py . --platform openai --platform claude --platform generic --expectations evals/packaging_expectations.json --output-dir dist --zip
python3 scripts/cross_packager.py . --platform openai --platform claude --platform generic --platform vscode --expectations evals/packaging_expectations.json --output-dir dist --zip
python3 scripts/simulate_install.py . --package-dir dist --install-root dist/install-simulation --output-json reports/install_simulation.json --output-md reports/install_simulation.md --generated-at "$GENERATED_AT"
python3 scripts/trust_check.py . --output-json reports/security_trust_report.json --output-md reports/security_trust_report.md
python3 scripts/registry_audit.py . --generated-at "$GENERATED_AT"
python3 scripts/verify_package.py . --package-dir dist --expectations evals/packaging_expectations.json --registry-json reports/registry_audit.json --output-json reports/package_verification.json --output-md reports/package_verification.md --require-zip --generated-at "$GENERATED_AT"
python3 scripts/registry_audit.py . --generated-at "$GENERATED_AT"
python3 scripts/upgrade_check.py . --previous-package-json registry/examples/yao-meta-skill-1.0.0.json --current-package-json reports/registry_audit.json --output-json reports/upgrade_check.json --output-md reports/upgrade_check.md --generated-at "$GENERATED_AT"
python3 scripts/render_adoption_drift_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_architecture_maintainability.py . --generated-at "$GENERATED_AT"
python3 scripts/python_compat_check.py . --generated-at "$GENERATED_AT"
python3 scripts/probe_runtime_permissions.py . --package-dir dist
python3 scripts/render_review_waivers.py . --generated-at "$GENERATED_AT"
python3 scripts/render_review_annotations.py .
python3 scripts/build_skill_atlas.py --workspace-root . --output-dir skill_atlas --report-html reports/skill_atlas.html --report-json reports/skill_atlas.json --today "$GENERATED_AT"
python3 scripts/render_world_class_evidence_plan.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_evidence_ledger.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_evidence_intake.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_submission_review.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_operator_runbook.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_claim_guard.py . --generated-at "$GENERATED_AT"
python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_weekly_curator_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_skill_os2_audit.py . --generated-at "$GENERATED_AT"
python3 scripts/render_skill_os2_coverage.py . --generated-at "$GENERATED_AT"
python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT"
python3 scripts/render_benchmark_reproducibility.py . --generated-at "$GENERATED_AT"
python3 scripts/render_skill_overview.py .
python3 scripts/render_skill_interpretation.py .
python3 scripts/render_review_viewer.py .
python3 scripts/render_world_class_preflight.py . --generated-at "$GENERATED_AT"
python3 scripts/render_review_studio.py . --output-html reports/review-studio.html --output-json reports/review-studio.json
python3 scripts/render_evidence_consistency.py . --generated-at "$GENERATED_AT"
```
Clean test-only scratch directories after verification with `rm -rf tests/tmp_*`. Do not clean unrelated untracked files.
For final release evidence, commit source and generated package evidence first, then run the clean-lock reports from a clean worktree:
```bash
python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT"
python3 scripts/render_benchmark_reproducibility.py . --generated-at "$GENERATED_AT"
python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_weekly_curator_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_skill_overview.py .
python3 scripts/render_skill_interpretation.py .
python3 scripts/render_review_viewer.py .
python3 scripts/render_world_class_preflight.py . --generated-at "$GENERATED_AT"
python3 scripts/render_review_studio.py . --output-html reports/review-studio.html --output-json reports/review-studio.json
python3 scripts/render_evidence_consistency.py . --generated-at "$GENERATED_AT"
```
If `reports/benchmark_reproducibility.json` reports `release_lock_ready: false`, do not commit that benchmark as release evidence. Restore the transient dirty-lock reports, commit the source/generated evidence that caused the dirty state, and regenerate the clean-lock reports on the resulting clean tree.
Local sync into `~/.agents/skills.disabled/yao-meta-skill` or `~/.agents/skills/yao-meta-skill` must keep the install preflight enabled unless the user explicitly requests a diagnostic bypass. `make sync-local-install` and `make sync-active-install` rebuild the package first, then `scripts/sync_local_install.py` refuses to copy files when install simulation or installer permission enforcement fails.
Clean test-only scratch directories after verification with `find tests -maxdepth 1 \( -name 'tmp' -o -name 'tmp_*' \) -type d -exec rm -rf {} +`. Do not clean unrelated untracked files.
## Boundaries
@@ -60,11 +102,28 @@ Clean test-only scratch directories after verification with `rm -rf tests/tmp_*`
- `scripts/yao.py`: unified CLI orchestration. Keep command behavior stable; move pure config and side-effect-free helpers into small internal modules.
- `scripts/render_skill_overview.py`: v2 bilingual skill overview report. Preserve `reports/skill-overview.html` / `.json`, `body data-report-lang="zh-CN"`, default Simplified Chinese, English switch, and inline-chart/no-external-dependency behavior.
- `scripts/skill_report_layout.py` plus `assets/skill-overview.css` / `assets/skill-overview.js`: overview report layout contract and inline assets. Keep the generated report single-file at render time, but keep long CSS/JS source in `assets/` instead of embedding it inside Python.
- `scripts/render_review_studio.py`: Review Studio gate orchestration. Keep gate scoring, evidence links, and action generation separate from layout helpers.
- `scripts/review_studio_layout.py`: Review Studio static layout and CSS contract.
- `scripts/review_studio_layout.py` plus `assets/review-studio.css`: Review Studio static layout and CSS contract. Keep the generated report single-file at render time, but keep long CSS source in `assets/` instead of embedding it inside Python.
- `scripts/review_studio_formatting.py`: Review Studio dictionary-to-panel formatting and Chinese metric labels.
- `scripts/review_studio_gates.py`: Review Studio gate evaluation, release decision scoring, and gate status labels.
- `scripts/render_skill_os2_audit.py`: requirement-by-requirement Skill OS 2.0 completion audit. Keep local evidence, human-required gaps, and external-required gaps separate so reports do not overclaim world-class readiness.
- `scripts/render_world_class_evidence_plan.py`: executable evidence task plan for the remaining world-class readiness gaps. Keep provider, human, native-permission, and real-client telemetry evidence requirements concrete without marking planned work as complete.
- `scripts/render_world_class_evidence_ledger.py`: machine-checkable acceptance ledger for the remaining world-class evidence gaps. Keep anti-overclaim guards explicit so planned work, metadata fallbacks, pending review, and local command runners never count as final evidence.
- `scripts/render_world_class_evidence_intake.py`: intake validator for external and human world-class evidence packets. Real submissions must reference concrete local aggregate artifacts with matching SHA-256 digests; templates may stay hash-free and must not count as evidence.
- `scripts/world_class_evidence_contract.py`: shared intake contract and artifact-integrity validator. Keep ledger, intake, and submission review aligned so source evidence cannot be accepted without a valid real submission and matching artifact SHA-256 checks.
- `scripts/render_world_class_submission_review.py`: read-only queue for external and human evidence packets after intake validation. Keep it from accepting evidence; it may only compare packet validity, source evidence checks, and ledger state.
- `scripts/render_world_class_operator_runbook.py`: operator-facing world-class evidence runbook. Keep it as coordination guidance only; it must not accept evidence or flip world-class readiness.
- `scripts/render_world_class_preflight.py` plus `scripts/world_class_preflight_layout.py`: operator-facing collection preflight for world-class evidence. Keep data assembly and CLI emission in the renderer, keep HTML layout in the layout helper, keep environment and external prerequisite checks redacted, and never let preflight count as accepted evidence.
- `scripts/render_benchmark_reproducibility.py`: release-facing benchmark reproducibility manifest. Keep methodology sections, required artifacts, failure disclosure, reproduction commands, and world-class limitations machine-checkable.
- `scripts/skill_report_model.py`, `scripts/skill_report_metrics.py`, `scripts/skill_report_charts.py`: skill overview data model, scoring, and inline SVG chart generation.
- `scripts/yao_cli_config.py`: CLI target maps, archetype heuristics, diagnosis copy, and side-effect-free shaping helpers.
- `scripts/yao_cli_parser.py`: CLI argparse command surface, flags, choices, and command handler binding.
- `scripts/yao_cli_telemetry.py`: opt-in metadata-only CLI run telemetry. Keep it free of prompt, argument, output, transcript, note, or message capture.
- `scripts/import_telemetry_events.py`: external telemetry importer. Validate the whole input before appending events, and keep raw prompt/output/transcript/message/note fields blocked.
- `scripts/emit_telemetry_event.py`: external client telemetry emitter. It may append one normalized metadata event to a local spool, but must never accept or write raw prompt, output, transcript, message, note, argument, or private content.
- `scripts/render_telemetry_hook_recipes.py`: client hook recipe report. Keep recipes metadata-only, mark native auto-capture as unclaimed unless a real client integration exists, and preserve dry-run commands for Browser/Chrome/IDE/wrapper adapters.
- `scripts/telemetry_native_host.py`: Browser/Chrome Native Messaging telemetry bridge. Preserve length-prefixed stdio behavior, raw-content blocking, and launcher/manifest generation tests.
New helper modules that are imported by CLI/report scripts but are not standalone commands must declare:
+85 -6
View File
@@ -2,7 +2,7 @@ PYTHON ?= python3
LOCAL_SKILL_INSTALL_DIR ?= $(HOME)/.agents/skills.disabled/yao-meta-skill
ACTIVE_SKILL_INSTALL_DIR ?= $(HOME)/.agents/skills/yao-meta-skill
.PHONY: eval eval-suite route-scorecard route-confusion-check description-optimization judge-blind-eval description-optimization-check promotion-check yao-cli-check skill-overview-check skill-report-metrics-check skill-report-charts-check skill-ir-check compiler-check output-eval-check output-execution-check output-review-adjudication-check runtime-conformance-check runtime-permission-check trust-check skill-atlas-check registry-audit-check package-verify-check install-simulation-check upgrade-check review-viewer-check review-studio-check feedback-check adoption-drift-check review-waivers-check review-annotations-check baseline-compare-check reference-scan-check github-benchmark-scan-check intent-confidence-check reference-synthesis-check output-risk-profile-check artifact-design-profile-check prompt-quality-profile-check system-model-check iteration-directions-check description-drift-history iteration-ledger results-panel regression-history context-reports portability-report portability-check failure-regression-check package-check package-failure-check security-boundary-check local-install-sync-check snapshot-check validate lint governance-check resource-boundary-check quality-check sync-local-install sync-active-install test ci-test clean
.PHONY: eval eval-suite route-scorecard route-confusion-check description-optimization judge-blind-eval description-optimization-check promotion-check python-compat-check architecture-maintainability-check yao-cli-check yao-cli-world-class-check skill-overview-check skill-interpretation-check skill-report-metrics-check skill-report-charts-check html-rendering-check skill-ir-check compiler-check output-eval-check output-execution-check output-review-kit-check output-review-adjudication-check runtime-conformance-check runtime-permission-check trust-check skill-atlas-check registry-audit-check package-verify-check install-simulation-check upgrade-check review-viewer-check review-studio-check skill-os2-audit-check skill-os2-coverage-check world-class-evidence-check world-class-ledger-check world-class-intake-check world-class-submission-kit-check world-class-preflight-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check evidence-consistency-check feedback-check adaptation-safety-check skillops-opportunity-check daily-skillops-check weekly-curator-check adoption-drift-check telemetry-import-check telemetry-emit-check telemetry-hooks-check telemetry-native-host-check review-waivers-check review-annotations-check baseline-compare-check reference-scan-check github-benchmark-scan-check intent-confidence-check reference-synthesis-check output-risk-profile-check artifact-design-profile-check prompt-quality-profile-check system-model-check iteration-directions-check description-drift-history iteration-ledger results-panel regression-history context-reports portability-report portability-check failure-regression-check package-check package-failure-check security-boundary-check local-install-sync-check snapshot-check validate lint governance-check resource-boundary-check quality-check sync-local-install sync-active-install test ci-test clean
eval:
$(PYTHON) scripts/trigger_eval.py --description-file evals/improved_description.txt --cases evals/trigger_cases.json --baseline-description-file evals/baseline_description.txt
@@ -28,20 +28,36 @@ description-optimization-check:
promotion-check:
$(PYTHON) tests/verify_promotion_checker.py
python-compat-check:
$(PYTHON) tests/verify_python_compat_check.py
architecture-maintainability-check:
$(PYTHON) tests/verify_architecture_maintainability.py
yao-cli-check:
$(PYTHON) tests/verify_yao_cli.py
yao-cli-world-class-check:
$(PYTHON) tests/verify_yao_cli_world_class.py
skill-overview-check:
$(PYTHON) tests/verify_skill_overview.py
skill-interpretation-check:
$(PYTHON) tests/verify_skill_interpretation.py
skill-report-metrics-check:
$(PYTHON) tests/verify_skill_report_metrics.py
skill-report-charts-check:
$(PYTHON) tests/verify_skill_report_charts.py
html-rendering-check:
$(PYTHON) tests/verify_html_rendering.py
skill-ir-check:
$(PYTHON) tests/verify_skill_ir.py
$(PYTHON) tests/verify_skill_ir_paths.py
compiler-check:
$(PYTHON) tests/verify_compile_skill.py
@@ -52,6 +68,9 @@ output-eval-check:
output-execution-check:
$(PYTHON) tests/verify_output_execution_runs.py
output-review-kit-check:
$(PYTHON) tests/verify_output_review_kit.py
output-review-adjudication-check:
$(PYTHON) tests/verify_output_review_adjudication.py
@@ -85,12 +104,72 @@ review-viewer-check:
review-studio-check:
$(PYTHON) tests/verify_review_studio.py
skill-os2-audit-check:
$(PYTHON) tests/verify_skill_os2_audit.py
skill-os2-coverage-check:
$(PYTHON) tests/verify_skill_os2_coverage.py
world-class-evidence-check:
$(PYTHON) tests/verify_world_class_evidence_plan.py
world-class-ledger-check:
$(PYTHON) tests/verify_world_class_evidence_ledger.py
world-class-intake-check:
$(PYTHON) tests/verify_world_class_evidence_intake.py
world-class-submission-kit-check:
$(PYTHON) tests/verify_world_class_submission_kit.py
world-class-preflight-check:
$(PYTHON) tests/verify_world_class_preflight.py
world-class-submission-review-check:
$(PYTHON) tests/verify_world_class_submission_review.py
world-class-runbook-check:
$(PYTHON) tests/verify_world_class_operator_runbook.py
world-class-claim-guard-check:
$(PYTHON) tests/verify_world_class_claim_guard.py
benchmark-reproducibility-check:
$(PYTHON) tests/verify_benchmark_reproducibility.py
evidence-consistency-check:
$(PYTHON) tests/verify_evidence_consistency.py
feedback-check:
$(PYTHON) tests/verify_feedback.py
adaptation-safety-check:
$(PYTHON) tests/verify_adaptation_safety.py
skillops-opportunity-check:
$(PYTHON) tests/verify_skillops_opportunity.py
daily-skillops-check:
$(PYTHON) tests/verify_daily_skillops.py
weekly-curator-check:
$(PYTHON) tests/verify_weekly_curator.py
adoption-drift-check:
$(PYTHON) tests/verify_adoption_drift.py
telemetry-import-check:
$(PYTHON) tests/verify_telemetry_import.py
telemetry-emit-check:
$(PYTHON) tests/verify_telemetry_emit.py
telemetry-hooks-check:
$(PYTHON) tests/verify_telemetry_hooks.py
telemetry-native-host-check:
$(PYTHON) tests/verify_telemetry_native_host.py
review-waivers-check:
$(PYTHON) tests/verify_review_waivers.py
@@ -152,7 +231,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
@@ -181,17 +260,17 @@ resource-boundary-check:
quality-check:
$(PYTHON) tests/verify_quality_checks.py
sync-local-install:
sync-local-install: package-check
$(PYTHON) scripts/sync_local_install.py --install-dir "$(LOCAL_SKILL_INSTALL_DIR)"
sync-active-install:
sync-active-install: package-check
$(PYTHON) scripts/sync_local_install.py --install-dir "$(ACTIVE_SKILL_INSTALL_DIR)"
test: eval eval-suite route-scorecard route-confusion-check description-optimization description-optimization-check promotion-check yao-cli-check skill-overview-check skill-report-metrics-check skill-report-charts-check skill-ir-check compiler-check output-eval-check output-execution-check output-review-adjudication-check runtime-conformance-check runtime-permission-check trust-check skill-atlas-check registry-audit-check package-verify-check install-simulation-check upgrade-check review-viewer-check review-studio-check feedback-check adoption-drift-check review-waivers-check review-annotations-check baseline-compare-check reference-scan-check github-benchmark-scan-check intent-confidence-check reference-synthesis-check output-risk-profile-check artifact-design-profile-check prompt-quality-profile-check system-model-check iteration-directions-check description-drift-history iteration-ledger regression-history context-reports portability-report portability-check failure-regression-check package-check package-failure-check security-boundary-check local-install-sync-check snapshot-check validate lint governance-check resource-boundary-check quality-check
test: eval eval-suite route-scorecard route-confusion-check description-optimization description-optimization-check promotion-check python-compat-check architecture-maintainability-check yao-cli-check skill-overview-check skill-interpretation-check skill-report-metrics-check skill-report-charts-check html-rendering-check skill-ir-check compiler-check output-eval-check output-execution-check output-review-adjudication-check runtime-conformance-check runtime-permission-check trust-check skill-atlas-check registry-audit-check package-verify-check install-simulation-check upgrade-check review-viewer-check review-studio-check skill-os2-audit-check skill-os2-coverage-check world-class-evidence-check world-class-ledger-check world-class-intake-check world-class-submission-kit-check world-class-preflight-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check evidence-consistency-check feedback-check adaptation-safety-check skillops-opportunity-check daily-skillops-check weekly-curator-check adoption-drift-check telemetry-import-check telemetry-emit-check telemetry-hooks-check telemetry-native-host-check review-waivers-check review-annotations-check baseline-compare-check reference-scan-check github-benchmark-scan-check intent-confidence-check reference-synthesis-check output-risk-profile-check artifact-design-profile-check prompt-quality-profile-check system-model-check iteration-directions-check description-drift-history iteration-ledger regression-history context-reports portability-report portability-check failure-regression-check package-check package-failure-check security-boundary-check local-install-sync-check snapshot-check validate lint governance-check resource-boundary-check quality-check
ci-test:
$(PYTHON) scripts/ci_test.py
clean:
rm -rf dist tests/tmp tests/tmp_snapshot tests/tmp_cli tests/tmp_skill_overview tests/tmp_skill_report_metrics tests/tmp_skill_report_charts tests/tmp_skill_ir tests/tmp_compile_skill tests/tmp_output_eval tests/tmp_output_execution tests/tmp_output_review_adjudication tests/tmp_conformance tests/tmp_runtime_permission tests/tmp_trust tests/tmp_skill_atlas tests/tmp_registry tests/tmp_package_verification tests/tmp_install_simulation tests/tmp_upgrade_check tests/tmp_reference_scan tests/tmp_iteration_directions tests/tmp_review_viewer tests/tmp_review_studio tests/tmp_feedback tests/tmp_adoption_drift tests/tmp_review_waivers tests/tmp_review_annotations tests/tmp_github_benchmark_scan tests/tmp_intent_confidence tests/tmp_reference_synthesis tests/tmp_output_risk_profile tests/tmp_artifact_design_profile tests/tmp_prompt_quality_profile tests/tmp_system_model tests/tmp_security tests/tmp_baseline_compare.json tests/tmp_baseline_compare.md
rm -rf dist tests/tmp tests/tmp_snapshot tests/tmp_cli tests/tmp_python_compat tests/tmp_architecture_maintainability tests/tmp_skill_overview tests/tmp_skill_interpretation tests/tmp_skill_report_metrics tests/tmp_skill_report_charts tests/tmp_skill_ir tests/tmp_compile_skill tests/tmp_output_eval tests/tmp_output_execution tests/tmp_output_review_adjudication tests/tmp_conformance tests/tmp_runtime_permission tests/tmp_trust tests/tmp_skill_atlas tests/tmp_registry tests/tmp_package_verification tests/tmp_install_simulation tests/tmp_upgrade_check tests/tmp_reference_scan tests/tmp_iteration_directions tests/tmp_review_viewer tests/tmp_review_studio tests/tmp_skill_os2_audit tests/tmp_skill_os2_coverage tests/tmp_world_class_evidence tests/tmp_world_class_evidence_ledger tests/tmp_world_class_evidence_intake tests/tmp_world_class_submission_review tests/tmp_world_class_operator_runbook tests/tmp_world_class_claim_guard tests/tmp_benchmark_reproducibility tests/tmp_evidence_consistency tests/tmp_feedback tests/tmp_daily_skillops tests/tmp_weekly_curator tests/tmp_adoption_drift tests/tmp_telemetry_import tests/tmp_telemetry_emit tests/tmp_telemetry_hooks tests/tmp_telemetry_native_host tests/tmp_review_waivers tests/tmp_review_annotations tests/tmp_github_benchmark_scan tests/tmp_intent_confidence tests/tmp_reference_synthesis tests/tmp_output_risk_profile tests/tmp_artifact_design_profile tests/tmp_prompt_quality_profile tests/tmp_system_model tests/tmp_security tests/tmp_baseline_compare.json tests/tmp_baseline_compare.md
find . -type d -name __pycache__ -prune -exec rm -rf {} +
+117 -14
View File
@@ -8,7 +8,7 @@
[![Français](https://img.shields.io/badge/Docs-Fran%C3%A7ais-green)](docs/README.fr-FR.md)
[![Русский](https://img.shields.io/badge/Docs-%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9-purple)](docs/README.ru-RU.md)
`YAO` stands for `Yielding AI Outcomes` the goal is not to generate more prompt text, but to produce reusable AI assets and real operational outcomes.
`YAO` stands for `Yielding AI Outcomes`: the goal is not to generate more prompt text, but to produce reusable AI assets and real operational outcomes.
`yao-meta-skill` is a lightweight but rigorous system for creating, evaluating, packaging, and governing reusable agent skills.
@@ -23,15 +23,32 @@ It turns rough workflows, transcripts, prompts, notes, and runbooks into reusabl
- a silent-by-default GitHub benchmark scan plus reference synthesis that studies top public repositories and world-class pattern tracks, then surfaces only real conflicts or uncertainty to the user
- a generated visual HTML overview for each newly initialized skill
- a Review Studio 2.0 HTML gate page that combines intent, trigger, output eval, context, runtime, trust, atlas, adoption drift, reviewer waivers, reviewer annotations, release evidence, and per-warning fix actions
- a Skill OS 2.0 audit that maps each world-class requirement to current evidence, human-required gaps, and external-required gaps
- a Skill OS 2.0 blueprint coverage report that maps the upgrade plan's core modules and recommended PRs to concrete artifacts, commands, and tests
- a world-class evidence plan that turns remaining provider, human, native-permission, and real-client telemetry gaps into executable evidence tasks
- a world-class evidence ledger that records which external and human evidence is accepted or still pending without treating planned work as proof
- a world-class evidence intake contract that validates external and human evidence packets for provenance, privacy, artifact refs, and anti-overclaim rules before ledger review
- a redacted world-class preflight report that checks local files, environment readiness, human/external prerequisites, and source blockers before operators collect evidence
- a world-class submission review queue that compares evidence packets, intake validation, source artifacts, and ledger state without accepting evidence
- a world-class operator runbook that gives reviewers the exact commands, artifacts, and collection checklist needed to close remaining evidence gaps
- a world-class claim guard that scans public claim surfaces and blocks premature completed/true claims while the evidence ledger still has pending external or human evidence
- a benchmark reproducibility manifest that checks methodology sections, required artifacts, failure disclosure, and reproduction commands
- an evidence consistency gate that compares generated reports against each other so benchmark, overview, interpretation, adoption, world-class ledger, coverage, and Review Studio facts do not drift silently
- Output Eval Lab evidence with assertion grading, execution/timing/token evidence, a blind A/B review pack, a separate answer key, and reviewer adjudication reports
- a runtime permission probe report that checks packaged target adapters for explicit permission metadata, native-enforcement flags, metadata fallback notes, and residual risks
- a Python compatibility gate that catches supported-runtime syntax hazards before they reach GitHub Actions or packaged distribution
- a side-by-side HTML review studio for first-pass human review
- an artifact design profile that defines visual direction, layout patterns, and quality gates for reports, tutorials, dashboards, screenshots, and review pages
- a prompt quality profile that abstracts need modeling, RTF mapping, complexity, and quality checks into reviewer-visible evidence instead of bloating `SKILL.md`
- a systems-thinking model that maps boundaries, feedback loops, drift risks, recurring failure patterns, and highest-leverage quality moves
- three high-value next iteration directions after the first package is created
- a lightweight feedback log that does not require a full promotion cycle
- a local-first metadata-only adoption and drift report that turns real usage signals into next iteration candidates
- a local-first metadata-only adoption and drift report that turns real usage signals into next iteration candidates, with optional `yao.py` CLI run capture, external client event emit hooks, hook recipes, and JSONL import that record command names and outcomes without arguments or raw content
- an explicit-source adaptive proposal loop that summarizes redacted repeated user preferences and generates approval-gated adaptation proposals without scanning private logs or writing source files
- a SkillOps opportunity scorer and decision policy that ranks redacted repeated signals, maps them to report-only, AGENTS update, existing-skill patch, or eval-addition actions, and keeps every durable write approval-gated
- a weekly SkillOps curator report that aggregates daily opportunities, Skill Atlas portfolio signals, release lock state, and world-class evidence gaps into a proposal-only maintenance queue
- a Browser/Chrome Native Messaging telemetry host that can receive length-prefixed metadata-only client events and generate a local launcher plus manifest without storing raw content
- a Skill Atlas drift layer that reads aggregate adoption reports and surfaces portfolio-level drift signals without packaging raw telemetry logs
- a baseline compare report for with-skill vs baseline review
- a conversation-style, archetype-aware quickstart that steers new packages toward scaffold, production, library, or governed fits
- Skill IR as the platform-neutral semantic contract, plus compiler reports and client-specific adapters
@@ -62,6 +79,8 @@ Read it in 10 seconds:
This benchmark is a project-level engineering review, scored from `0-10` per dimension and weighted to `100`. GitHub stars are intentionally excluded because they measure ecosystem heat, not meta-skill engineering quality.
The score is local engineering evidence, not a claim of world-class readiness. Public superiority claims still depend on accepted external and human evidence in the world-class ledger.
Weighted score formula: `sum(score / 10 * weight)`.
| Meta Skill | Method Depth 15 | Context Discipline 10 | Toolchain 15 | Eval/Test Rigor 20 | Governance 15 | Portability 10 | Onboarding/Review 5 | Local Reliability 10 | Weighted Score |
@@ -76,6 +95,20 @@ Weighted score formula: `sum(score / 10 * weight)`.
| 2 | Anthropic Skill Creator | 67.5 | Strong methodology and iteration loop, with weaker local execution reliability and governance coverage. |
| 3 | OpenAI Skill Creator | 50.5 | Best treated as a concise skill-writing method guide rather than a full engineering system. |
## Human Blind A/B Review Snapshot
On 2026-06-29, a single human reviewer compared `yao-meta-skill` with the bundled OpenAI `skill-creator` across five realistic skill-creation scenarios: support triage, revenue reconciliation, webinar repurposing, incident postmortems, and PR review follow-up. The reviewer confirmed decisions were completed before the answer key was opened.
Result: `yao-meta-skill` was selected in `5/5` cases.
Evidence:
- Review entrypoint: [reports/blind-human-review-2026-06-29/index.html](reports/blind-human-review-2026-06-29/index.html)
- Adjudication summary: [reports/blind-human-review-2026-06-29/adjudication.md](reports/blind-human-review-2026-06-29/adjudication.md)
- Recorded decisions: [reports/blind-human-review-2026-06-29/review-decisions.recorded.json](reports/blind-human-review-2026-06-29/review-decisions.recorded.json)
Boundary: this is single-reviewer blind preference evidence. It is not provider-backed independent model execution evidence, and the per-case rationale fields are still empty.
## Best-Fit Scenarios
- Choose **Yao Meta Skill** when the target is a reusable team asset with explicit boundaries, trigger evaluation, governance, packaging, portability, and local execution checks.
@@ -85,11 +118,25 @@ Weighted score formula: `sum(score / 10 * weight)`.
## Quick Start
Install the skill globally for Codex first:
```bash
npx -y skills add yaojingang/yao-meta-skill -a codex -g -y
```
To install it for every supported agent, replace `-a codex` with `-a '*'`:
```bash
npx -y skills add yaojingang/yao-meta-skill -a '*' -g -y
```
After installation, restart the client. Then ask for tasks such as "create a skill from this workflow", "improve this existing skill", "evaluate this skill", or "add evals to this skill" to trigger `yao-meta-skill`.
1. Describe the workflow, prompt set, or repeated task you want to turn into a skill.
2. Start with a short, human intent dialogue so the real job, outputs, exclusions, constraints, and standards are explicit.
3. Let `quickstart` clarify intent first, then run silent benchmark scan and reference synthesis; it only surfaces explicit questions when intent is still unclear or when there is a real design conflict.
4. Use the archetype-aware `quickstart` or the full authoring flow to generate or improve the package in scaffold, production, library, or governed mode.
5. Review the generated `reports/skill-overview.html` first for the bilingual HTML skill report. It defaults to Simplified Chinese and provides an English switch in the top right. Then open `reports/review-studio.html` to inspect release blockers, permission approvals, and evidence paths in one page before adding more structure.
5. Review the generated `reports/skill-interpretation.html` first for the bilingual interpretation report. It defaults to Simplified Chinese and provides an English switch in the top right. Then open `reports/skill-overview.html` for the audit scorecard and `reports/review-studio.html` to inspect release blockers, permission approvals, and evidence paths in one page before adding more structure.
Or use the unified authoring CLI:
@@ -100,32 +147,56 @@ python3 scripts/yao.py reference-scan my-skill \
--external-reference "World Class Method::method::Borrow a tight evaluation loop.::Do not copy heavy process." \
--user-reference "A product or repo I admire::taste::Learn the clarity and operating standard.::Do not copy wording." \
--local-constraint "Current Library Naming::structure::Keep naming aligned with the local skill library.::Do not inherit private references."
python3 scripts/yao.py skill-interpretation my-skill
python3 scripts/yao.py review-viewer my-skill
python3 scripts/yao.py review-studio my-skill
python3 scripts/yao.py artifact-design-profile my-skill
python3 scripts/yao.py prompt-quality-profile my-skill
python3 scripts/yao.py system-model my-skill
python3 scripts/yao.py feedback my-skill --note "Tighten exclusions before adding scripts." --rating 4 --category boundary
python3 scripts/yao.py adapt-scan my-skill --source ./curated-user-signals.jsonl
python3 scripts/yao.py adapt-propose my-skill
python3 scripts/yao.py daily-skillops my-skill --source ./curated-user-signals.jsonl
python3 scripts/yao.py weekly-curator my-skill
python3 scripts/yao.py adoption-drift my-skill --record-event skill_activation --activation-type explicit --outcome accepted
YAO_CLI_TELEMETRY=1 python3 scripts/yao.py validate my-skill
python3 scripts/yao.py telemetry-emit my-skill --event skill_activation --activation-type explicit --outcome accepted --command browser-extension
python3 scripts/yao.py telemetry-hooks my-skill
python3 scripts/telemetry_native_host.py my-skill --write-launcher /tmp/yao-telemetry-host.sh --write-manifest /tmp/yao-telemetry-host.json --allowed-origin chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/
python3 scripts/yao.py telemetry-import my-skill --input-jsonl /tmp/external-client-events.jsonl --command browser-extension
python3 scripts/yao.py review-waivers my-skill --add-waiver --gate-key trust-report --reviewer "Yao Team" --reason "Known warning accepted for this release with bounded follow-up." --expires-at 2026-09-30
python3 scripts/yao.py review-waivers my-skill --add-waiver --gate-key permission-gates --reviewer "Yao Team" --reason "Permission warning accepted only for this non-governed release window." --expires-at 2026-09-30
python3 scripts/yao.py review-annotations my-skill --add-annotation --gate-key output-lab --target-path reports/output_quality_scorecard.md --line 1 --body "Clarify recorded fixture vs model-executed evidence before release."
python3 scripts/yao.py baseline-compare
python3 scripts/yao.py check-update
python3 scripts/yao.py skill-ir . --output-json skill-ir/examples/yao-meta-skill.json
python3 scripts/yao.py compile-skill . --target openai --target claude --target generic
python3 scripts/yao.py compile-skill . --target openai --target claude --target generic --target vscode
python3 scripts/yao.py package . --platform generic --output-dir dist
python3 scripts/yao.py output-eval
python3 scripts/yao.py output-exec
python3 scripts/yao.py output-review
python3 scripts/yao.py conformance .
python3 scripts/yao.py trust .
python3 scripts/yao.py python-compat .
python3 scripts/yao.py runtime-permissions . --package-dir dist
python3 scripts/yao.py skill-atlas --workspace-root .
python3 scripts/yao.py registry-audit .
python3 scripts/yao.py package-verify . --package-dir dist --require-zip
python3 scripts/yao.py install-simulate . --package-dir dist
python3 scripts/yao.py upgrade-check . --previous-package-json registry/examples/yao-meta-skill-1.0.0.json
python3 scripts/yao.py world-class-evidence .
SUBMISSIONS_DIR="${SUBMISSIONS_DIR:-evidence/world_class/submissions}"
python3 scripts/yao.py world-class-preflight . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-submission-kit . --output-dir "$SUBMISSIONS_DIR"
# Alternative: prefill artifact SHA-256 digests while keeping drafts template-only.
python3 scripts/yao.py world-class-submission-kit . --output-dir "$SUBMISSIONS_DIR" --prefill-artifacts
python3 scripts/yao.py world-class-intake . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-submission-review . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-ledger . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-runbook . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-claim-guard .
python3 scripts/yao.py benchmark-reproducibility .
python3 scripts/yao.py evidence-consistency .
```
## Local Development Source
@@ -140,7 +211,7 @@ Sync the current source into the disabled mirror:
make sync-local-install
```
The sync command copies Git-tracked files plus new source files in code and guidance directories such as `scripts/`, `tests/`, `references/`, and `docs/`. It skips untracked business-skill folders and untracked private reports by default, so local experiments do not leak into the mirror.
The sync command first rebuilds the package and runs install preflight against `dist/yao-meta-skill.zip`. It refuses to sync when package extraction, adapter readability, or installer permission enforcement fails. After the preflight passes, it copies Git-tracked files plus new source files in code and guidance directories such as `scripts/`, `tests/`, `references/`, and `docs/`. It skips untracked business-skill folders and untracked private reports by default, so local experiments do not leak into the mirror.
Restore an active global Codex install only when you intentionally want this skill discoverable outside the development workspace:
@@ -177,7 +248,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 +270,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,19 +318,20 @@ 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
- human blind A/B snapshot: a single reviewer selected `yao-meta-skill` over the bundled OpenAI `skill-creator` in `5/5` realistic skill-creation scenarios; evidence is published in [reports/blind-human-review-2026-06-29/adjudication.md](reports/blind-human-review-2026-06-29/adjudication.md)
- packaging failure fixtures: invalid metadata, invalid YAML, and unsupported targets fail as expected
- failure library regressions: anti-pattern families pass automated checks
- governance and resource-boundary checks are part of the default test path
- root governance maturity score: `90/100`; governed benchmark example: `95/100`
- CJK-aware trigger matching is now covered by explicit Chinese build, packaging, eval, and near-neighbor cases
- context budgets: root `987/1000`, complex benchmark `790/1000`, governed benchmark `760/1000`
- quality density: root `131.7`, complex benchmark `164.6`, governed benchmark `171.1`
- context budgets: root `944/1000`, complex benchmark `790/1000`, governed benchmark `760/1000`
- quality density: root `137.7`, complex benchmark `164.6`, governed benchmark `171.1`
- regression milestones are tracked in [reports/regression_history.md](reports/regression_history.md)
- description drift history is tracked in [reports/description_drift_history.md](reports/description_drift_history.md)
- route confusion is tracked in [reports/route_scorecard.md](reports/route_scorecard.md)
@@ -269,8 +341,18 @@ Full reports: [reports/eval_suite.json](reports/eval_suite.json) and [reports/fa
- lightweight with-skill vs baseline comparison is published in [reports/baseline-compare.md](reports/baseline-compare.md)
- Review Studio 2.0 gate evidence is published in [reports/review-studio.html](reports/review-studio.html)
- Review Studio fix actions are embedded in [reports/review-studio.json](reports/review-studio.json)
- Skill OS 2.0 blueprint coverage is published in [reports/skill_os2_coverage.md](reports/skill_os2_coverage.md)
- reviewer waiver evidence is published in [reports/review_waivers.md](reports/review_waivers.md)
- remaining world-class evidence tasks are published in [reports/world_class_evidence_plan.md](reports/world_class_evidence_plan.md)
- current world-class evidence acceptance state is published in [reports/world_class_evidence_ledger.md](reports/world_class_evidence_ledger.md)
- world-class evidence intake readiness is published in [reports/world_class_evidence_intake.md](reports/world_class_evidence_intake.md)
- world-class submission review queue is published in [reports/world_class_submission_review.md](reports/world_class_submission_review.md)
- world-class operator runbook is published in [reports/world_class_operator_runbook.md](reports/world_class_operator_runbook.md) and [reports/world_class_operator_runbook.html](reports/world_class_operator_runbook.html)
- world-class public claim guard status is published in [reports/world_class_claim_guard.md](reports/world_class_claim_guard.md)
- benchmark reproducibility evidence is published in [reports/benchmark_reproducibility.md](reports/benchmark_reproducibility.md)
- cross-report evidence consistency is published in [reports/evidence_consistency.md](reports/evidence_consistency.md)
- target compiler evidence is published in [reports/compiled_targets.md](reports/compiled_targets.md)
- Python runtime compatibility evidence is published in [reports/python_compatibility.md](reports/python_compatibility.md)
- registry package metadata and audit status are published in [reports/registry_audit.md](reports/registry_audit.md)
- package archive verification is published in [reports/package_verification.md](reports/package_verification.md)
- temporary local install simulation is published in [reports/install_simulation.md](reports/install_simulation.md)
@@ -385,7 +467,7 @@ Utility scripts that make the meta-skill operational:
- `run_description_optimization_suite.py`: runs description optimization across the root skill and governed examples, then writes reusable reports and optional drift snapshots with calibration and family summaries
- `promotion_checker.py`: applies promotion policy to current description candidates, writes promotion decisions, builds candidate registries, and emits iteration bundles with review stubs
- `create_iteration_snapshot.py`: freezes the current promotion decision into a versioned release snapshot with review, route, and context evidence
- `yao.py`: unified authoring CLI that exposes init, validate, optimize-description, promote-check, review, release-snapshot, workspace-flow, report, skill-ir, compile-skill, output-exec, output-review, package, registry-audit, package-verify, install-simulate, upgrade-check, review-waivers, and test as one entrypoint
- `yao.py`: unified authoring CLI that exposes init, validate, optimize-description, promote-check, python-compat, review, release-snapshot, workspace-flow, report, skill-report, skill-interpretation, skill-ir, compile-skill, output-exec, output-review, skill-os2-audit, skill-os2-coverage, world-class-evidence, world-class-ledger, world-class-intake, world-class-preflight, world-class-submission-kit, world-class-submission-review, world-class-runbook, world-class-claim-guard, benchmark-reproducibility, evidence-consistency, adapt-scan, adapt-propose, adapt-apply, daily-skillops, weekly-curator, telemetry-emit, telemetry-hooks, telemetry-import, package, registry-audit, package-verify, install-simulate, upgrade-check, review-waivers, and test as one entrypoint
- `render_description_drift_history.py`: turns description-optimization snapshots into a readable drift-history report
- `build_confusion_matrix.py`: scores route confusion across tracked sibling skills and `no_route` cases, then writes a route scorecard and optional milestone snapshot
- `render_iteration_ledger.py`: compresses regression milestones, description optimization drift, and route scorecards into one iteration-facing ledger
@@ -394,9 +476,25 @@ Utility scripts that make the meta-skill operational:
- `governance_check.py`: validates owner, review cadence, lifecycle stage, and maturity metadata
- `render_context_reports.py`: generates root and example context-budget reports plus a shared context summary
- `render_regression_history.py`: turns milestone snapshots into a readable regression history report
- `render_skill_os2_audit.py`: renders a requirement-by-requirement Skill OS 2.0 audit that separates landed local evidence from human-required and external-required gaps
- `render_skill_os2_coverage.py`: maps the Skill OS 2.0 upgrade blueprint to local artifacts, commands, tests, and remaining evidence boundaries
- `render_daily_skillops_report.py`: renders an explicit-source Daily SkillOps operations report that summarizes redacted user patterns, proposal-only adaptations, approval state, release evidence, and world-class evidence gaps without scanning private logs or applying patches
- `render_weekly_curator_report.py`: renders a weekly SkillOps curator report from generated daily reports, Skill Atlas, benchmark lock, evidence consistency, and world-class ledger state without scanning private logs or applying patches
- `skillops_opportunity.py`: scores redacted SkillOps opportunities and maps them to approval-gated action types such as report-only, AGENTS update, existing-skill patch, or eval addition
- `render_world_class_evidence_plan.py`: renders executable evidence tasks for remaining world-class gaps without treating planned external work as completed evidence
- `render_world_class_evidence_ledger.py`: renders a machine-checkable ledger for current world-class evidence acceptance, anti-overclaim guards, provenance requirements, and privacy contracts
- `render_world_class_evidence_intake.py`: validates world-class external and human evidence packets against provenance, privacy, artifact, and anti-overclaim requirements before ledger review
- `render_world_class_preflight.py`: renders redacted collection preflight checks for pending provider, human, native-permission, and native-client evidence without accepting evidence
- `render_world_class_submission_review.py`: renders a read-only queue that compares submissions, intake validation, source evidence, and ledger state without accepting evidence
- `render_world_class_operator_runbook.py`: renders an operator-facing checklist and command map for collecting pending world-class evidence without accepting evidence
- `render_world_class_claim_guard.py`: scans README, docs, and reports for premature world-class completion claims while accepted evidence is still pending
- `render_benchmark_reproducibility.py`: renders methodology, artifact, failure-disclosure, and reproduction-command evidence for public benchmark claims
- `render_evidence_consistency.py`: compares generated report facts across benchmark reproducibility, overview, interpretation, adoption drift, world-class ledger, coverage, and Review Studio artifacts
- `python_compat_check.py`: checks Python source for supported-runtime compatibility hazards such as Python 3.11 f-string expression backslashes
- `cross_packager.py`: builds client-specific export artifacts from Skill IR plus neutral metadata, with explicit platform contracts and validation
- `render_portability_report.py`: scores cross-environment portability from neutral metadata, degradation rules, and consumer validation coverage
- `render_skill_overview.py`: generates the white-background bilingual HTML skill audit report with sticky four-character Chinese navigation, top-right language switch, v2 scorecard, inline SVG charts, contract boundary, quality review, risk governance, assets, and iteration roadmap
- `render_skill_interpretation.py`: renders `reports/skill-interpretation.html/json` as the first-class post-creation interpretation report while reusing the Skill Overview v2 model and Kami white layout
- `export_skill_ir.py`: exports the 2.0 platform-neutral Skill IR contract from `SKILL.md`, manifest, interface metadata, evals, resources, and reports
- `compile_skill.py`: compiles Skill IR into target-specific semantic contracts, generated-file maps, adapter modes, target-native behavior contracts, preserved semantics, warnings, and unsupported-feature notes
- `run_output_eval.py`: runs the Output Eval Lab v0 with static with-skill vs baseline assertion grading, blind A/B review pack generation, and separate answer key artifacts
@@ -406,12 +504,17 @@ Utility scripts that make the meta-skill operational:
- `render_review_annotations.py`: records reviewer annotations tied to Review Studio gates, source/report paths, and optional line numbers, with open blocker annotations reflected in Review Studio decisions
- `run_conformance_suite.py`: verifies runtime conformance for OpenAI, Claude, Agent Skills, VS Code/Copilot-style, and generic targets
- `trust_check.py`: generates the trust/security report for scripts, dependencies, secret risk, bounded network host policy, execution-level `--help` smoke checks, permission inputs, trust metadata, and stable source-contract integrity
- `build_skill_atlas.py`: builds the Skill Atlas catalog, route-overlap matrix, dependency graph, stale report, owner gaps, and HTML overview for a multi-skill workspace
- `build_skill_atlas.py`: builds the Skill Atlas catalog, route-overlap matrix, dependency graph, stale report, owner gaps, aggregate drift signals, and HTML overview for a multi-skill workspace
- `registry_audit.py`: builds registry package metadata and audits version, owner, license, checksum, Skill IR source, and compatibility matrix
- `verify_package.py`: verifies generated package manifests, target adapters, zip archive safety, archive checksum, and registry parity
- `simulate_install.py`: extracts a generated zip into a temporary skill root and verifies entrypoint, manifest, interface, reports, and adapters can be loaded
- `upgrade_check.py`: compares current and previous registry package metadata, recommends a version bump, and blocks incompatible upgrade claims
- `render_adoption_drift_report.py`: records metadata-only local telemetry and renders adoption, missed-trigger, bad-output, script-error, and review-drift signals without packaging raw event logs
- `import_telemetry_events.py`: imports external metadata-only telemetry JSONL after whole-file privacy validation, then refreshes the aggregate adoption drift report
- `emit_telemetry_event.py`: emits one metadata-only external client event into a local spool for later `telemetry-import`, with dry-run validation and raw-content field blocking
- `render_telemetry_hook_recipes.py`: renders Browser, Chrome, VS Code, CLI wrapper, and provider-adapter telemetry hook recipes with dry-run commands and explicit native-integration caveats
- `telemetry_native_host.py`: receives Browser/Chrome Native Messaging length-prefixed JSON events, rejects raw-content fields, appends metadata-only events, and writes local launcher/manifest files for operator installation
- `yao_cli_telemetry.py`: opt-in metadata-only `yao.py` run capture for command name, source, outcome, and failure class without command arguments or raw content
- `render_review_waivers.py`: validates human reviewer risk approvals with gate keys, reasons, expiry dates, and blocker-safe waiver policy
- `init_skill.py`, `lint_skill.py`, `validate_skill.py`, `diff_eval.py`: minimal authoring toolchain
- `check_update.py`: checks GitHub for a newer `VERSION` or remote manifest version and reports a reinstall hint without modifying local files
+21 -27
View File
@@ -1,9 +1,8 @@
---
name: yao-meta-skill
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.
description: Create, refactor, evaluate, package, migrate, govern, and release agent skills from workflows, prompts, transcripts, docs, notes, SOPs, scripts, or repeated team practices. Use when asked to create/build a skill, turn a repeated process into a reusable agent capability, improve or migrate an existing skill, optimize trigger routing, add evals/tests, add references/scripts/interface/manifest, prepare packaging/installation/release, or make a skill team-ready. Also trigger on Chinese asks such as 做/改/重构/迁移/发布 skill, 把流程/SOP/提示词/对话记录沉淀成可复用能力, 封装成团队可复用的 skill, 优化已有 skill, 补 trigger 评测, 收紧触发边界, or 做打包发布检查. Do not use for summary-only, translation-only, brainstorming-only, or documentation-only requests that explicitly say no skill or agent execution.
metadata:
author: Yao Team
philosophy: "structured design, evaluation loop, template ergonomics, operational packaging"
---
# Yao Meta Skill
@@ -16,44 +15,39 @@ metadata:
## Modes
- `Scaffold`: exploratory or personal.
- `Production`: team reuse.
- `Library`: shared infrastructure.
Mode rules: [Method](references/skill-engineering-method.md), [Operating Modes](references/operating-modes.md), [Resource Boundaries](references/resource-boundaries.md).
- `Scaffold`: exploratory/personal. `Production`: team reuse. `Library`: shared infrastructure. `Governed`: high-trust, policy-sensitive, or release-critical.
- Rules: [Method](references/skill-engineering-method.md), [Operating Modes](references/operating-modes.md), [Resource Boundaries](references/resource-boundaries.md).
## Compact Workflow
1. Decide whether the request should become a skill and choose the lightest fit.
2. Capture job, output, exclusions, constraints, and standards.
3. Run reference scan: external benchmarks first, user references second, local fit third; surface only uncertainty or conflict.
4. Write the `description` early and test route quality before expanding the package.
5. Add output-risk, artifact-design, prompt-quality, and system-model reports only when they matter.
6. Add only folders and gates that earn their keep.
7. Surface the top three next iteration directions.
1. For one-off/no reusable process: `Do not create a skill`; `near-neighbor`; require `repeated use` + `reusable output contract`.
2. Capture job, output, exclusions, constraints, standards, and the lightest fit.
3. Scan references in order: external benchmark, user source, local fit; surface only uncertainty or conflict.
4. Write `description` early, test route quality, then add only earned folders and gates.
5. Add output-risk, artifact-design, prompt-quality, system-model, and next directions only when useful.
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).
Playbooks: [Method](references/skill-engineering-method.md), [Intent](references/intent-dialogue.md), [Skill IR](references/skill-ir-method.md), [Output Eval](references/output-eval-method.md), [Review Studio](references/review-studio-method.md).
## Skill OS 2.0 Gates
For production, library, governed, 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.
## Governed Package Boundary
For file-backed, release-critical, or governed packages, name `input_files` as `file-backed fixture` evidence; include `owner`, `review cadence`, `input_files`, `output contract`, `rollback boundary`; require `trust report` and `reports/output_quality_scorecard.md`; mark unavailable telemetry, approvals, metrics, or benchmarks as `missing evidence`; do not fabricate evidence.
Preserve audit labels literally when they apply: `file-backed fixture`, `input_files`, `output contract`, `rollback boundary`, `trust report`, `reports/output_quality_scorecard.md`, `missing evidence`.
## First-Turn Style
When the skill first activates:
- start from the user's work and desired outcome before structure
- ask only `2-3` key questions unless the user already gave enough detail
- avoid cold field lists; surface benchmark choices only when uncertainty or conflict needs a call
Chinese conversations should sound soft and companion-like rather than procedural.
Opening patterns: [Intent Dialogue](references/intent-dialogue.md).
- Start from the user's work/outcome before structure.
- Ask only `2-3` key questions unless enough detail exists.
- In Chinese, sound soft and companion-like; use [Intent Dialogue](references/intent-dialogue.md).
## Output Contract
Unless the user asks otherwise, produce a working skill directory with `SKILL.md`, aligned `agents/interface.yaml`, justified assets, and a short summary of boundary, exclusions, gates, and next steps.
Unless asked otherwise, produce `SKILL.md`, aligned `agents/interface.yaml`, justified assets, and a short summary of boundary, exclusions, gates, and next steps.
## Reference Map
Primary references: [Method](references/skill-engineering-method.md), [Artifact Design](references/artifact-design-doctrine.md), [Systems Thinking](references/systems-thinking-doctrine.md), [Governance](references/governance.md).
Primary: [Method](references/skill-engineering-method.md), [Artifact Design](references/artifact-design-doctrine.md), [Systems Thinking](references/systems-thinking-doctrine.md), [Governance](references/governance.md), [SkillOps Decision](references/skillops-decision-policy.md).
+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"
+749
View File
@@ -0,0 +1,749 @@
:root {
--ink: #1B365D;
--text: #24201d;
--muted: #746d66;
--line: #e7ded2;
--soft: #faf8f5;
--pass: #1e6b52;
--warn: #9a6718;
--block: #9b2c2c;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background: #ffffff;
color: var(--text);
font-family: Georgia, "Times New Roman", "Songti SC", serif;
line-height: 1.58;
}
nav {
position: sticky;
top: 0;
z-index: 10;
display: flex;
gap: 4px;
justify-content: center;
flex-wrap: wrap;
padding: 10px 16px;
background: rgba(255,255,255,0.94);
border-bottom: 1px solid var(--line);
backdrop-filter: blur(10px);
}
nav a {
color: var(--ink);
text-decoration: none;
font-size: 14px;
padding: 7px 10px;
border-radius: 6px;
}
nav a:hover { background: var(--soft); }
main { max-width: 1180px; margin: 0 auto; padding: 44px 28px 76px; }
header { border-bottom: 1px solid var(--line); padding-bottom: 28px; margin-bottom: 28px; }
.eyebrow { color: var(--ink); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
h1, h2, h3 { color: var(--text); font-weight: 500; margin: 0; letter-spacing: 0; }
h1 { font-size: clamp(34px, 5vw, 64px); line-height: 1.03; max-width: 920px; margin-top: 12px; }
h2 { font-size: 30px; margin-bottom: 14px; }
h3 { font-size: 19px; }
p { margin: 0; }
.lede { max-width: 820px; color: var(--muted); font-size: 20px; margin-top: 18px; }
.decision {
display: inline-flex;
align-items: baseline;
gap: 12px;
margin-top: 24px;
padding: 12px 16px;
border: 1px solid var(--line);
border-radius: 8px;
color: var(--ink);
background: var(--soft);
}
.decision strong { font-size: 28px; }
section { padding: 30px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 76px; }
.metrics, .gates {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 14px;
}
.gates { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.metric, .gate {
border: 1px solid var(--line);
border-radius: 8px;
padding: 16px;
background: #fff;
min-width: 0;
}
.metric span, .gate span { display: block; color: var(--muted); font-size: 13px; }
.metric strong { display: block; color: var(--ink); font-size: 34px; line-height: 1.1; margin: 8px 0; }
.metric p, .gate p, .gate footer, .issues span, .evidence span { color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.gate { display: flex; flex-direction: column; gap: 10px; }
.gate.pass { border-top: 4px solid var(--pass); }
.gate.warn { border-top: 4px solid var(--warn); }
.gate.block { border-top: 4px solid var(--block); }
.gate footer { border-top: 1px solid var(--line); padding-top: 10px; }
a { color: var(--ink); }
.twocol {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
gap: 22px;
align-items: start;
}
.panel {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
}
.panel p { color: var(--muted); }
.kv-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px 12px;
margin: 2px 0 0;
}
.kv-grid div {
min-width: 0;
padding: 9px 0 0;
border-top: 1px solid var(--line);
}
.kv-grid dt {
color: var(--muted);
font-size: 13px;
}
.kv-grid dd {
margin: 2px 0 0;
color: var(--ink);
font-size: 15px;
overflow-wrap: anywhere;
}
.issues, .evidence {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 12px;
}
.issues li, .evidence li {
border-left: 3px solid var(--line);
padding-left: 12px;
display: grid;
gap: 3px;
}
.muted { color: var(--muted); }
.actions-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.annotations-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.action-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 10px;
min-width: 0;
}
.action-card.warn { border-left: 4px solid var(--warn); }
.action-card.block { border-left: 4px solid var(--block); }
.action-card.with-evidence {
grid-column: 1 / -1;
}
.action-evidence-panel {
display: grid;
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
margin-top: 2px;
}
.action-evidence-panel h4 {
margin: 0;
color: var(--ink);
font-size: 16px;
font-weight: 500;
}
.action-evidence-panel p {
color: var(--muted);
font-size: 14px;
}
.action-evidence-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
}
.action-evidence-item {
border: 1px solid var(--line);
border-radius: 8px;
padding: 14px;
display: grid;
gap: 10px;
min-width: 0;
background: var(--soft);
}
.action-evidence-item.pending { border-left: 4px solid var(--warn); }
.action-evidence-item.accepted { border-left: 4px solid var(--pass); }
.action-evidence-item h4,
.action-evidence-item h5 {
margin: 0;
color: var(--ink);
font-weight: 500;
}
.action-evidence-item h4 { font-size: 16px; }
.action-evidence-item h5 { font-size: 14px; }
.action-evidence-item section {
border-top: 1px solid var(--line);
padding-top: 10px;
display: grid;
gap: 8px;
}
.action-command-details,
.action-phase-details,
.action-runbook-details,
.action-collection-details {
border-top: 1px solid var(--line);
padding-top: 10px;
display: grid;
gap: 8px;
}
.action-command-details summary,
.action-phase-details summary,
.action-runbook-details summary,
.action-collection-details summary {
cursor: pointer;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.action-command-details[open] summary,
.action-phase-details[open] summary,
.action-runbook-details[open] summary,
.action-collection-details[open] summary {
margin-bottom: 8px;
}
.action-collection-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.action-collection-grid section {
border-top: 1px solid var(--line);
padding-top: 8px;
display: grid;
gap: 6px;
}
.action-collection-grid ul,
.action-collection-grid ol {
margin: 0;
padding-left: 18px;
display: grid;
gap: 5px;
}
.action-collection-grid li {
color: var(--muted);
font-size: 13px;
overflow-wrap: anywhere;
}
.action-artifact-roles {
padding: 0;
margin: 0;
list-style: none;
display: grid;
gap: 8px;
}
.action-artifact-roles li {
border: 1px solid var(--line);
border-radius: 8px;
background: #fff;
padding: 10px;
display: grid;
gap: 4px;
min-width: 0;
}
.action-artifact-roles strong {
color: var(--ink);
font-weight: 500;
overflow-wrap: anywhere;
}
.action-artifact-roles span,
.action-artifact-roles code,
.action-artifact-roles small {
color: var(--muted);
font-size: 12px;
overflow-wrap: anywhere;
white-space: normal;
}
.action-evidence-item dl {
display: grid;
grid-template-columns: 76px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.action-evidence-item dt {
color: var(--ink);
font-size: 14px;
}
.action-evidence-item dd {
margin: 0;
min-width: 0;
}
.action-evidence-checks,
.action-phase-list,
.action-command-list,
.action-repair-list,
.action-runbook-list {
margin: 0;
display: grid;
gap: 8px;
}
.action-evidence-checks,
.action-phase-list,
.action-repair-list,
.action-command-list {
padding: 0;
list-style: none;
}
.action-runbook-list {
padding-left: 20px;
}
.action-evidence-check,
.action-phase-row,
.action-repair-row,
.action-command-list li {
display: grid;
gap: 3px;
min-width: 0;
border-top: 1px solid var(--line);
padding-top: 8px;
}
.action-evidence-check.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.action-evidence-check.pass { border-left: 3px solid var(--pass); padding-left: 8px; }
.action-phase-row.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.action-phase-row.ready { border-left: 3px solid var(--pass); padding-left: 8px; }
.action-repair-row.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.action-repair-row.ready { border-left: 3px solid var(--pass); padding-left: 8px; }
.action-evidence-check span,
.action-phase-row span,
.action-repair-row span,
.action-command-list span {
color: var(--ink);
font-size: 13px;
}
.action-phase-row strong,
.action-repair-row strong {
color: var(--ink);
font-size: 14px;
overflow-wrap: anywhere;
}
.action-phase-row em,
.action-repair-row em {
color: var(--muted);
font-size: 12px;
font-style: normal;
overflow-wrap: anywhere;
}
.action-evidence-check code,
.action-evidence-check small,
.action-phase-row code,
.action-phase-row small,
.action-repair-row code,
.action-repair-row small,
.action-command-list code,
.action-runbook-list li {
color: var(--muted);
font-size: 13px;
overflow-wrap: anywhere;
}
.action-command-list code {
display: block;
white-space: normal;
}
.annotation-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 10px;
min-width: 0;
}
.annotation-card.warning { border-left: 4px solid var(--warn); }
.annotation-card.blocker { border-left: 4px solid var(--block); }
.annotation-card.resolved { opacity: .72; }
.world-evidence-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.world-evidence-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.world-evidence-card.pending { border-left: 4px solid var(--warn); }
.world-evidence-card.accepted { border-left: 4px solid var(--pass); }
.world-evidence-card span,
.world-evidence-card p,
.world-evidence-card dd,
.world-evidence-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.world-evidence-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.world-evidence-card dt { color: var(--ink); font-size: 14px; }
.world-evidence-card dd { margin: 0; }
.world-evidence-columns {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-evidence-columns h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-evidence-columns ul {
margin: 0;
padding-left: 18px;
}
.world-source-panel {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-runbook-panel {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-runbook-panel h4,
.world-source-panel h4 {
margin: 0 0 8px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-runbook-panel ul {
margin: 0;
padding-left: 18px;
}
.world-source-checks {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 8px;
}
.world-source-check {
display: grid;
grid-template-columns: minmax(0, .7fr) minmax(0, .6fr) minmax(0, 1fr);
gap: 10px;
align-items: start;
min-width: 0;
padding: 9px 0 0;
border-top: 1px solid var(--line);
}
.world-source-check span {
color: var(--ink);
font-size: 14px;
}
.world-source-check code,
.world-source-check small {
color: var(--muted);
font-size: 13px;
overflow-wrap: anywhere;
}
.world-source-check.pass { border-left: 3px solid var(--pass); padding-left: 8px; }
.world-source-check.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.output-review-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.output-review-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.output-review-card.awaiting-decision,
.output-review-card.fix-decision { border-left: 4px solid var(--warn); }
.output-review-card.adjudicated { border-left: 4px solid var(--pass); }
.output-review-card span,
.output-review-card p,
.output-review-card dd,
.output-review-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.output-review-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.output-review-card dt { color: var(--ink); font-size: 14px; }
.output-review-card dd { margin: 0; min-width: 0; }
.output-review-steps {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.output-review-steps h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.output-review-steps ul {
margin: 0;
padding-left: 18px;
}
.output-review-commands,
.output-review-fields {
list-style: none;
padding: 0;
display: grid;
gap: 8px;
}
.output-review-commands li,
.output-review-fields li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.output-review-commands code {
overflow-wrap: anywhere;
white-space: normal;
display: block;
}
.world-intake-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.world-intake-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.world-intake-card.awaiting-submission,
.world-intake-card.fix-submission,
.world-intake-card.fix-template { border-left: 4px solid var(--warn); }
.world-intake-card.ready-for-ledger-review,
.world-intake-card.accepted { border-left: 4px solid var(--pass); }
.world-intake-card span,
.world-intake-card p,
.world-intake-card dd,
.world-intake-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.world-intake-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.world-intake-card dt { color: var(--ink); font-size: 14px; }
.world-intake-card dd { margin: 0; min-width: 0; }
.world-intake-steps {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-intake-steps h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-intake-steps ul {
margin: 0;
padding-left: 18px;
}
.world-intake-commands {
list-style: none;
padding: 0;
display: grid;
gap: 8px;
}
.world-intake-commands li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.world-intake-commands code {
overflow-wrap: anywhere;
white-space: normal;
display: block;
}
.section-subtitle {
margin-top: 22px;
margin-bottom: 12px;
color: var(--ink);
}
.waiver-summary { margin-top: 16px; }
.waiver-candidate-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
}
.waiver-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.waiver-card.allowed { border-left: 4px solid var(--warn); }
.waiver-card.blocked { border-left: 4px solid var(--block); }
.waiver-card span,
.waiver-card p,
.waiver-card dd,
.waiver-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.waiver-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.waiver-card dt {
color: var(--ink);
font-size: 14px;
}
.waiver-card dd { margin: 0; min-width: 0; }
.waiver-review {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.waiver-review h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.waiver-review ul {
margin: 0;
padding-left: 18px;
}
.waiver-command {
display: grid;
gap: 4px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.waiver-command span {
color: var(--ink);
font-size: 14px;
}
.waiver-command code {
display: block;
max-width: 100%;
overflow-wrap: anywhere;
white-space: normal;
}
.action-card span,
.annotation-card span,
.action-card small,
.annotation-card small,
.action-card footer,
.annotation-card footer,
.action-card dd {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.annotation-card dd { color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.action-card dl, .annotation-card dl {
display: grid;
grid-template-columns: 80px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.action-card dt, .annotation-card dt { color: var(--ink); font-size: 14px; }
.action-card dd, .annotation-card dd { margin: 0; }
.source-ref-list {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 6px;
}
.source-ref-list li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.source-ref-list a,
.source-ref-list span {
overflow-wrap: anywhere;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 13px;
}
.source-ref-list small {
font-size: 12px;
color: var(--muted);
}
.source-ref-list blockquote {
margin: 2px 0 0;
padding: 7px 9px;
border-left: 3px solid var(--line);
background: var(--soft);
color: var(--muted);
font-size: 12px;
overflow-wrap: anywhere;
}
code {
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 13px;
}
@media (max-width: 980px) {
.metrics, .gates, .twocol, .actions-grid, .annotations-grid, .action-evidence-grid, .action-evidence-item dl, .action-collection-grid, .output-review-grid, .output-review-steps, .world-evidence-grid, .world-evidence-columns, .world-source-check, .world-intake-grid, .world-intake-steps, .waiver-candidate-grid, .waiver-card dl, .kv-grid { grid-template-columns: 1fr; }
main { padding: 32px 18px 60px; }
nav { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; }
nav a { flex: 0 0 auto; }
}
+176
View File
@@ -0,0 +1,176 @@
:root {
--text: #111111;
--muted: #666666;
--line: #e8e8e8;
--soft: #f6f6f4;
--white: #ffffff;
}
* { box-sizing: border-box; }
body {
margin: 0;
background: var(--white);
color: var(--text);
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 1.6;
}
.page {
max-width: 1120px;
margin: 0 auto;
padding: 48px 32px 72px;
}
.hero {
padding-bottom: 28px;
border-bottom: 1px solid var(--line);
margin-bottom: 28px;
}
h1, h2, h3 {
margin: 0 0 12px;
letter-spacing: -0.02em;
font-weight: 600;
}
h1 { font-size: 40px; line-height: 1.08; }
h2 { font-size: 22px; margin-top: 34px; }
h3 { font-size: 16px; }
p, li, span { font-size: 15px; }
.lede {
max-width: 860px;
font-size: 18px;
color: var(--muted);
margin: 0 0 18px;
}
.meta {
display: flex;
gap: 10px;
flex-wrap: wrap;
margin-top: 16px;
}
.meta span {
border: 1px solid var(--line);
padding: 6px 10px;
background: var(--soft);
}
.arch-grid {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 12px;
margin-top: 16px;
}
.arch-step, .panel, .direction-card, .baseline-box {
border: 1px solid var(--line);
background: var(--white);
}
.arch-step {
padding: 14px;
min-height: 132px;
}
.step-label {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--muted);
margin-bottom: 10px;
}
.step-detail {
font-size: 14px;
}
.grid {
display: grid;
grid-template-columns: 1.1fr 0.9fr;
gap: 18px;
margin-top: 16px;
}
.panel {
padding: 18px;
}
.panel ul {
margin: 0;
padding-left: 18px;
}
.direction-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin-top: 16px;
}
.variant-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin-top: 16px;
}
.direction-card {
padding: 18px;
}
.direction-card ul {
margin: 12px 0;
padding-left: 18px;
}
.minor {
color: var(--muted);
font-size: 13px;
}
.variant-card {
border: 1px solid var(--line);
background: var(--white);
padding: 18px;
}
.variant-head {
display: flex;
justify-content: space-between;
gap: 12px;
align-items: baseline;
}
.variant-head span {
color: var(--muted);
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.variant-description {
margin: 14px 0;
padding-left: 14px;
border-left: 2px solid var(--line);
color: var(--text);
}
.variant-metrics {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 14px;
}
.variant-metrics span {
border: 1px solid var(--line);
background: var(--soft);
padding: 6px 10px;
font-size: 12px;
}
.variant-cues p {
margin: 8px 0 6px;
}
.variant-cues ul {
margin: 0 0 12px;
padding-left: 18px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 14px;
font-size: 14px;
}
th, td {
border-top: 1px solid var(--line);
text-align: left;
padding: 10px 8px;
vertical-align: top;
}
th {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--muted);
}
@media (max-width: 1000px) {
.arch-grid, .direction-grid, .variant-grid, .grid {
grid-template-columns: 1fr;
}
}
+735
View File
@@ -0,0 +1,735 @@
:root {
--paper: #ffffff;
--wash: #f8fafc;
--wash-strong: #f2f5f8;
--line: #e6e0d4;
--line-soft: #eee9df;
--brand: #1B365D;
--brand-soft: #EEF3F8;
--brand-mid: #315982;
--ink: #151515;
--text: #2f2d29;
--muted: #68625a;
--faint: #8b857b;
--success: #2f6f5e;
--warn: #8a5a19;
--serif: "TsangerJinKai02", "Source Han Serif SC", "Noto Serif CJK SC", "Songti SC", "STSong", Charter, Georgia, serif;
--mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, Consolas, monospace;
--shadow-soft: 0 1px 2px rgba(27, 54, 93, 0.06), 0 16px 44px rgba(27, 54, 93, 0.08);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background: #ffffff;
color: var(--ink);
font-family: var(--serif);
line-height: 1.62;
letter-spacing: 0;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}
body[data-report-lang="zh-CN"] [data-lang="en"],
body[data-report-lang="en"] [data-lang="zh-CN"] { display: none !important; }
.skip-link {
position: fixed;
left: 18px;
top: 10px;
z-index: 40;
transform: translateY(-140%);
padding: 8px 12px;
border-radius: 8px;
background: var(--brand);
color: #fff;
text-decoration: none;
transition: transform 160ms cubic-bezier(0.16, 1, 0.3, 1);
}
.skip-link:focus-visible { transform: translateY(0); outline: 2px solid var(--brand-mid); outline-offset: 2px; }
.topbar {
position: sticky;
top: 0;
z-index: 20;
background: rgba(255, 255, 255, 0.96);
border-bottom: 1px solid var(--line);
}
.progress-track {
height: 2px;
background: transparent;
}
.progress-bar {
display: block;
width: 100%;
height: 100%;
background: var(--brand);
transition: transform 160ms cubic-bezier(0.16, 1, 0.3, 1);
transform-origin: left center;
transform: scaleX(0);
}
.topbar-inner {
max-width: 1240px;
margin: 0 auto;
padding: 9px 28px;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 18px;
align-items: center;
}
.nav-shell {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 18px;
align-items: center;
min-width: 0;
}
.report-mark {
color: var(--brand);
font-family: var(--mono);
font-size: 11px;
line-height: 1;
text-transform: uppercase;
white-space: nowrap;
}
.report-nav {
display: flex;
gap: 4px;
overflow-x: auto;
scrollbar-width: none;
min-width: 0;
}
.report-nav::-webkit-scrollbar { display: none; }
.report-nav a {
flex: 0 0 auto;
min-width: 76px;
min-height: 40px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 10px;
color: var(--brand);
text-decoration: none;
text-align: center;
font-size: 13px;
border-radius: 8px;
white-space: nowrap;
transition-property: background-color, color, transform;
transition-duration: 160ms;
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}
@media (hover: hover) {
.report-nav a:hover { background: var(--brand-soft); }
}
.report-nav a:focus-visible {
outline: 2px solid var(--brand-mid);
outline-offset: 2px;
background: var(--brand-soft);
}
.report-nav a[aria-current="true"] {
background: var(--brand);
color: #ffffff;
}
.report-nav a[aria-current="true"] span { color: #ffffff; }
.language-switch {
display: inline-flex;
gap: 3px;
padding: 3px;
border: 1px solid var(--line);
border-radius: 8px;
background: var(--paper);
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.05);
}
.language-switch button {
appearance: none;
min-width: 42px;
min-height: 34px;
border: 0;
border-radius: 6px;
padding: 0 10px;
background: transparent;
color: var(--muted);
font: inherit;
font-size: 13px;
cursor: pointer;
transition-property: background-color, color, transform;
transition-duration: 160ms;
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}
.language-switch button:active { transform: scale(0.96); }
.language-switch button:focus-visible { outline: 2px solid var(--brand-mid); outline-offset: 2px; }
.language-switch button[aria-pressed="true"] {
background: var(--brand-soft);
color: var(--brand);
}
.wrap {
max-width: 1240px;
margin: 0 auto;
padding: 58px 28px 92px;
}
.hero {
padding: 16px 0 34px;
}
.hero-grid {
display: grid;
grid-template-columns: minmax(0, 1fr) 360px;
gap: 44px;
align-items: end;
}
.eyebrow, .report-mark {
letter-spacing: 0;
}
.eyebrow {
margin: 0 0 12px;
color: var(--brand);
font-family: var(--mono);
font-size: 12px;
text-transform: uppercase;
}
.slug {
margin: 0 0 18px;
color: var(--faint);
font-family: var(--mono);
font-size: 13px;
overflow-wrap: anywhere;
}
h1, h2, h3 {
margin: 0;
font-weight: 500;
letter-spacing: 0;
text-wrap: balance;
}
h1 {
max-width: 8em;
color: var(--ink);
font-size: 4rem;
line-height: 1.02;
}
.lead {
max-width: 760px;
margin: 20px 0 0;
color: var(--text);
font-size: 1.08rem;
text-wrap: pretty;
}
.hero-meta, .badges {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 20px;
}
.hero-meta span, .badges span, .tag {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 5px 10px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 13px;
font-variant-numeric: tabular-nums;
}
.hero-card {
position: relative;
padding: 22px 22px 24px;
border-radius: 8px;
background: linear-gradient(180deg, #ffffff 0%, #fbfaf7 100%);
box-shadow: var(--shadow-soft);
border: 1px solid var(--line-soft);
}
.hero-card::before {
content: "";
position: absolute;
top: 18px;
right: 18px;
width: 38px;
height: 2px;
background: var(--brand);
}
.score-strip {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
margin-top: 32px;
padding-top: 20px;
border-top: 1px solid var(--line);
}
.score-chip {
padding: 14px 14px 12px;
border-radius: 8px;
background: var(--wash);
border: 1px solid var(--line-soft);
}
.score-chip span {
display: block;
color: var(--muted);
font-size: 12px;
}
.score-chip strong {
display: block;
margin: 5px 0 8px;
color: var(--brand);
font-family: var(--mono);
font-size: 1.65rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.score-chip i {
display: block;
height: 3px;
border-radius: 999px;
background: linear-gradient(90deg, var(--brand) var(--score), #dfe6ee var(--score));
}
.score-chip small {
display: block;
margin-top: 8px;
color: var(--muted);
font-size: 12px;
line-height: 1.45;
}
section {
scroll-margin-top: 78px;
padding-top: 44px;
margin-top: 44px;
border-top: 1px solid var(--line);
}
section.hero {
scroll-margin-top: 0;
padding-top: 16px;
margin-top: 0;
border-top: 0;
}
.section-head {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 22px;
align-items: start;
}
h2 {
color: var(--ink);
font-size: 1.5rem;
line-height: 1.18;
}
h2::before {
content: "";
display: block;
width: 32px;
height: 2px;
margin-bottom: 12px;
background: var(--brand);
}
h3 {
color: var(--ink);
font-size: 1.02rem;
line-height: 1.3;
margin-bottom: 10px;
}
.section-head > div:first-child p {
margin: 12px 0 0;
color: var(--muted);
max-width: 68ch;
text-wrap: pretty;
}
.section-body {
margin-top: 24px;
}
.two-col, .metric-grid, .chart-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
align-items: stretch;
}
.quality-panels {
margin-top: 16px;
}
.metrics-flow {
display: grid;
gap: 30px;
}
.metrics-primary {
display: grid;
grid-template-columns: minmax(360px, 0.92fr) minmax(0, 1.08fr);
gap: 22px;
align-items: start;
}
.metrics-primary .chart-figure {
min-height: 0;
display: grid;
align-content: center;
}
.metrics-primary .chart-figure svg {
max-height: 520px;
}
.metrics-note {
display: grid;
align-content: start;
gap: 14px;
}
.metrics-note p {
margin: 0;
max-width: none;
color: var(--text);
}
.metric-summary-list {
margin: 0;
padding: 0;
list-style: none;
display: grid;
gap: 10px;
}
.metric-summary-list li {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
gap: 8px 10px;
align-items: baseline;
padding: 10px 0;
border-bottom: 1px solid var(--line-soft);
}
.metric-summary-list li:last-child { border-bottom: 0; }
.metric-summary-list b {
color: var(--ink);
font-weight: 500;
}
.metric-summary-list em {
color: var(--brand);
font-family: var(--mono);
font-style: normal;
font-variant-numeric: tabular-nums;
}
.metric-summary-list small {
grid-column: 2 / 4;
color: var(--muted);
line-height: 1.5;
overflow-wrap: break-word;
}
.metric-detail-section {
display: grid;
gap: 14px;
}
.detail-section-kicker {
display: inline-flex;
width: fit-content;
min-height: 28px;
align-items: center;
padding: 3px 8px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 12px;
}
.metric-status {
display: inline-flex;
align-items: center;
min-height: 24px;
padding: 2px 7px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 12px;
}
.metric-detail-grid {
grid-template-columns: repeat(2, minmax(min(100%, 420px), 1fr));
align-items: stretch;
}
.list, .compact-list, .step-list {
margin: 0;
padding-left: 1.15em;
display: grid;
gap: 8px;
}
.list li::marker, .compact-list li::marker, .step-list li::marker { color: var(--brand); }
.compact-list {
gap: 6px;
font-size: 13.5px;
color: var(--muted);
line-height: 1.55;
}
.compact-list li, .list li, .step-list li {
min-width: 0;
overflow-wrap: break-word;
}
.panel, .metric-card, .roadmap-item {
background: #ffffff;
border: 1px solid var(--line-soft);
border-radius: 8px;
padding: 22px;
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.04);
min-width: 0;
}
.metric-card {
display: grid;
grid-template-columns: minmax(112px, 0.28fr) minmax(0, 1fr);
gap: 18px;
align-content: start;
min-height: 0;
}
.metric-card-head {
display: grid;
gap: 10px;
align-content: start;
}
.metric-card strong {
display: block;
margin: 0;
color: var(--brand);
font-family: var(--mono);
font-size: 2rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.metric-label {
color: var(--muted);
font-size: 13px;
line-height: 1.45;
overflow-wrap: break-word;
}
.metric-card-body {
min-width: 0;
}
.metric-card-body .compact-list {
gap: 7px;
max-width: 76ch;
}
.metric-card-body .compact-list li {
overflow-wrap: break-word;
word-break: normal;
}
.chart-figure {
margin: 0;
padding: 18px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: #ffffff;
box-shadow: 0 1px 2px rgba(27, 54, 93, 0.04);
}
.chart-figure svg {
width: 100%;
height: auto;
display: block;
overflow: visible;
}
.chart-figure text {
fill: var(--ink);
font-family: var(--serif);
font-size: 13px;
}
.chart-title {
fill: var(--brand);
font-size: 16px;
font-weight: 500;
}
.chart-line {
fill: none;
stroke: var(--brand);
stroke-width: 2;
}
figcaption {
margin-top: 12px;
padding-top: 10px;
border-top: 1px solid var(--line-soft);
color: var(--muted);
font-size: 13px;
line-height: 1.5;
text-wrap: pretty;
}
table {
width: 100%;
border-collapse: collapse;
font-size: 14px;
}
th, td {
padding: 12px 10px;
text-align: left;
border-bottom: 1px solid var(--line-soft);
vertical-align: top;
}
th {
color: var(--brand);
font-weight: 500;
font-size: 12px;
}
td:first-child, th:first-child { width: 96px; }
.world-readiness {
margin-top: 16px;
display: grid;
gap: 16px;
}
.section-head > .world-readiness { grid-column: 1; }
.world-readiness-head {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 16px;
align-items: start;
}
.world-readiness-head p {
margin-top: 8px;
max-width: 72ch;
}
.world-status {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 4px 10px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 13px;
white-space: nowrap;
}
.evidence-kpis {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 10px;
}
.evidence-kpi {
padding: 14px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: var(--wash);
min-width: 0;
}
.evidence-kpi span {
display: block;
color: var(--muted);
font-size: 12px;
}
.evidence-kpi strong {
display: block;
margin-top: 4px;
color: var(--brand);
font-family: var(--mono);
font-size: 1.5rem;
font-weight: 500;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.evidence-kpi small {
display: block;
margin-top: 8px;
color: var(--muted);
line-height: 1.45;
overflow-wrap: break-word;
}
.evidence-list {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.evidence-item {
padding: 14px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: #ffffff;
min-width: 0;
}
.evidence-item span {
color: var(--brand);
font-family: var(--mono);
font-size: 11px;
text-transform: uppercase;
}
.evidence-item h4 {
margin: 4px 0 8px;
color: var(--ink);
font-size: 1rem;
font-weight: 500;
line-height: 1.3;
}
.evidence-item h5 {
margin: 12px 0 6px;
color: var(--brand);
font-size: 12px;
font-weight: 500;
}
.evidence-item p {
margin: 0;
max-width: none;
color: var(--muted);
overflow-wrap: break-word;
}
.blocked-checks {
margin: 0;
padding-left: 1.05em;
color: var(--muted);
font-size: 13px;
line-height: 1.45;
}
.blocked-checks li {
overflow-wrap: break-word;
}
.blocked-checks li::marker {
color: var(--brand);
}
.blocked-checks-empty {
font-size: 13px;
}
.roadmap {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
}
.step {
display: inline-flex;
margin-bottom: 12px;
min-height: 28px;
align-items: center;
padding: 3px 8px;
border-radius: 6px;
background: var(--brand-soft);
color: var(--brand);
font-size: 12px;
}
.unlock {
margin-top: 14px;
color: var(--muted);
font-size: 13px;
}
@media (max-width: 980px) {
.topbar-inner {
grid-template-columns: minmax(0, 1fr) auto;
padding: 8px 16px;
}
.nav-shell { grid-template-columns: 1fr; gap: 6px; }
.report-mark { display: none; }
.report-nav a { min-width: 72px; }
.hero-grid, .section-head { grid-template-columns: 1fr; }
.section-head > .world-readiness { grid-column: auto; }
.hero-grid { gap: 24px; }
.score-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.metrics-primary, .metric-detail-grid, .two-col, .metric-grid, .chart-grid, .roadmap { grid-template-columns: 1fr; }
.evidence-list { grid-template-columns: 1fr; }
.metric-card { grid-template-columns: 1fr; }
h1 { font-size: 2.75rem; }
}
@media (max-width: 540px) {
.wrap { padding: 34px 16px 72px; }
.topbar-inner { gap: 10px; }
.report-nav {
display: flex;
gap: 2px;
}
.report-nav a {
min-width: 66px;
min-height: 38px;
padding: 0 8px;
font-size: 12px;
}
.language-switch button { min-width: 38px; min-height: 32px; padding: 0 8px; }
.hero { padding-top: 8px; }
h1 { max-width: 8em; font-size: 2.35rem; }
.lead { font-size: 1rem; }
.hero-meta span, .badges span { font-size: 12px; }
.score-strip { grid-template-columns: 1fr; }
section { margin-top: 34px; padding-top: 34px; }
.panel, .metric-card, .roadmap-item, .chart-figure, .hero-card { padding: 18px; }
.world-readiness-head, .evidence-kpis { grid-template-columns: 1fr; }
.metric-card { grid-template-columns: 1fr; gap: 10px; }
.metric-card strong { margin-bottom: 2px; }
.metric-summary-list li { grid-template-columns: auto minmax(0, 1fr) auto; }
table { font-size: 13px; }
th, td { padding: 10px 7px; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
*, *::before, *::after { transition-duration: 0.01ms !important; }
}
+37
View File
@@ -0,0 +1,37 @@
(function () {
var buttons = Array.prototype.slice.call(document.querySelectorAll("[data-set-lang]"));
var navLinks = Array.prototype.slice.call(document.querySelectorAll(".report-nav a"));
var sections = navLinks
.map(function (link) { return document.querySelector(link.getAttribute("href")); })
.filter(Boolean);
var progressBar = document.querySelector(".progress-bar");
function setLanguage(lang) {
document.body.setAttribute("data-report-lang", lang);
document.documentElement.setAttribute("lang", lang);
buttons.forEach(function (button) {
button.setAttribute("aria-pressed", button.getAttribute("data-set-lang") === lang ? "true" : "false");
});
}
function updateProgress() {
var scrollTop = window.scrollY || document.documentElement.scrollTop;
var height = Math.max(1, document.documentElement.scrollHeight - window.innerHeight);
var pct = Math.min(100, Math.max(0, (scrollTop / height) * 100));
if (progressBar) progressBar.style.transform = "scaleX(" + pct / 100 + ")";
var active = sections[0];
sections.forEach(function (section) {
if (section.getBoundingClientRect().top <= 110) active = section;
});
navLinks.forEach(function (link) {
link.setAttribute("aria-current", link.getAttribute("href") === "#" + active.id ? "true" : "false");
});
}
buttons.forEach(function (button) {
button.addEventListener("click", function () {
setLanguage(button.getAttribute("data-set-lang"));
});
});
window.addEventListener("scroll", updateProgress, { passive: true });
window.addEventListener("resize", updateProgress);
setLanguage("zh-CN");
updateProgress();
})();
+14
View File
@@ -69,6 +69,20 @@ Formule du score pondéré : `sum(score / 10 * poids)`.
## Démarrage rapide
Pour utiliser cette skill directement dans Codex, installez-la d'abord dans les skills globales :
```bash
npx -y skills add yaojingang/yao-meta-skill -a codex -g -y
```
Pour l'installer dans tous les agents pris en charge, remplacez `-a codex` par `-a '*'` :
```bash
npx -y skills add yaojingang/yao-meta-skill -a '*' -g -y
```
Après l'installation, redémarrez le client. Demandez ensuite des tâches comme "create a skill from this workflow", "improve this existing skill", "evaluate this skill" ou "add evals to this skill" pour déclencher `yao-meta-skill`.
1. Décrivez le workflow, l'ensemble de prompts ou la tâche répétée que vous voulez transformer en skill.
2. Commencez par un court dialogue d'intention plus humain pour clarifier le vrai travail, les sorties attendues, les exclusions, les contraintes et les standards qui comptent pour vous.
3. Laissez d'abord `quickstart` clarifier l'intention, puis lancer silencieusement benchmark scan et reference synthesis ; des questions explicites ne remontent que si l'intention reste ambiguë ou si deux directions de conception se contredisent réellement.
+14
View File
@@ -69,6 +69,20 @@ flowchart LR
## クイックスタート
Codex でこの skill を直接使う場合は、まず global skills にインストールします。
```bash
npx -y skills add yaojingang/yao-meta-skill -a codex -g -y
```
対応しているすべての agent にインストールする場合は、`-a codex``-a '*'` に置き換えます。
```bash
npx -y skills add yaojingang/yao-meta-skill -a '*' -g -y
```
インストール後にクライアントを再起動してください。その後、"create a skill from this workflow"、"improve this existing skill"、"evaluate this skill"、"add evals to this skill" のような依頼で `yao-meta-skill` を起動できます。
1. skill 化したい workflow、prompt 集合、または反復タスクを説明します。
2. まず短いが人間味のある intent dialogue で、実際の job、outputs、boundary、constraints、重視する品質基準を明確にします。
3. まず `quickstart` で意図を澄ませ、その後 benchmark scan と reference synthesis を静かに実行します。意図がまだ曖昧なとき、または設計ルートに本当の衝突があるときだけ、追加確認を明示します。
+14
View File
@@ -69,6 +69,20 @@ flowchart LR
## Быстрый старт
Чтобы использовать эту skill напрямую в Codex, сначала установите ее в global skills:
```bash
npx -y skills add yaojingang/yao-meta-skill -a codex -g -y
```
Чтобы установить ее во все поддерживаемые agents, замените `-a codex` на `-a '*'`:
```bash
npx -y skills add yaojingang/yao-meta-skill -a '*' -g -y
```
После установки перезапустите клиент. Затем используйте запросы вроде "create a skill from this workflow", "improve this existing skill", "evaluate this skill" или "add evals to this skill", чтобы вызвать `yao-meta-skill`.
1. Опишите workflow, набор prompts или повторяющуюся задачу, которую хотите превратить в skill.
2. Сначала проведите короткий, но более человечный intent dialogue, чтобы уточнить реальную job-to-be-done, outputs, exclusions, constraints и те стандарты качества, которые для вас важны.
3. Сначала позвольте `quickstart` прояснить намерение, затем тихо выполнить benchmark scan и reference synthesis. Явные уточнения поднимаются только тогда, когда intent все еще неясен или между маршрутами проектирования есть реальный конфликт.
+31
View File
@@ -46,6 +46,8 @@ flowchart LR
下面是当前项目采用的工程质量评测模型。每个维度按 `0-10` 评分,再按权重折算到 `100` 分。GitHub stars 不计入总分,因为它反映生态热度,不直接代表元 skill 工程质量。
这个分数是本地工程证据,不等同于 world-class ready。公开宣称“已证明优于其他方案”仍要以 world-class ledger 中已接受的外部证据和人工证据为准。
加权总分公式:`sum(单项评分 / 10 * 权重)`
| 元 Skill | 方法论深度 15 | 上下文纪律 10 | 工具链 15 | Eval/测试 20 | 治理 15 | 可移植 10 | 上手/评审 5 | 本地可靠性 10 | 加权总分 |
@@ -60,6 +62,20 @@ flowchart LR
| 2 | Anthropic Skill Creator | 67.5 | 方法论和迭代闭环强,但本地执行可靠性和治理覆盖较弱。 |
| 3 | OpenAI Skill Creator | 50.5 | 更适合作为精简 skill 写作方法论教材,而不是完整工程系统。 |
## 人工盲测快照
2026-06-29,一位人工评审者在 5 个真实常见的 skill 创建场景里,对比了 `yao-meta-skill` 和内置的 OpenAI `skill-creator`。5 个场景分别是客服工单分诊、月度收入对账、Webinar 内容复用、故障复盘和 PR Review 跟进。评审者确认:所有选择都在揭晓来源前完成。
结果:`yao-meta-skill``5/5` 个案例中胜出。
证据:
- 盲测入口:[reports/blind-human-review-2026-06-29/index.html](../reports/blind-human-review-2026-06-29/index.html)
- Adjudication 摘要:[reports/blind-human-review-2026-06-29/adjudication.md](../reports/blind-human-review-2026-06-29/adjudication.md)
- 已记录判断:[reports/blind-human-review-2026-06-29/review-decisions.recorded.json](../reports/blind-human-review-2026-06-29/review-decisions.recorded.json)
边界:这是单人盲测偏好证据,不是 provider-backed 的独立模型执行证据;每个案例的逐项理由仍为空。
## 适用场景
- 如果你要的是**团队复用、显式边界、质量门、治理、可移植性和长期维护**,更适合 `Yao Meta Skill`
@@ -69,6 +85,20 @@ flowchart LR
## 快速开始
如果你想直接在 Codex 里使用这个 skill,先安装到全局 skills
```bash
npx -y skills add yaojingang/yao-meta-skill -a codex -g -y
```
如果要安装到全部支持的 agent,把 `-a codex` 换成 `-a '*'`
```bash
npx -y skills add yaojingang/yao-meta-skill -a '*' -g -y
```
安装完成后重启客户端,再用“创建 skill”“改进已有 skill”“评估 skill”“给 skill 增加 eval”这类任务触发 `yao-meta-skill`
1. 先描述你想沉淀成 skill 的 workflow、prompt 集合或重复任务。
2. 先做一轮简短但更有人味的意图对话,把真实任务、输出物、边界、约束和你在意的质量标准说清楚。
3. 先让 `quickstart` 澄清意图,再静默跑 benchmark scan 和 reference synthesis;只有当意图还不清楚,或者设计路线真的冲突时,才会显式继续追问或让你拍板。
@@ -82,6 +112,7 @@ flowchart LR
- train / dev / holdout 三层评测均通过
- 中文真实表达已经纳入触发评测,覆盖“做一个 skill”“沉淀成可复用能力”“优化已有 skill”“补 trigger 评测”等常见说法
- `openai``claude``generic` 三个目标的 packaging contract 校验通过
- 单人盲测快照中,评审者在揭晓来源前完成判断,并在 `5/5` 个真实 skill 创建场景中选择 `yao-meta-skill`;证据见 [reports/blind-human-review-2026-06-29/adjudication.md](../reports/blind-human-review-2026-06-29/adjudication.md)
## 当前优势
+2
View File
@@ -41,6 +41,8 @@ This document tracks the first migration path from Yao Meta Skill 1.x to the Ski
python3 scripts/build_skill_atlas.py --workspace-root . --output-dir skill_atlas --report-html reports/skill_atlas.html --report-json reports/skill_atlas.json
```
This also writes `skill_atlas/drift_signals.json` from aggregate `reports/adoption_drift_report.json` files. Do not migrate or publish raw `reports/telemetry_events.jsonl` logs.
5. Keep legacy trigger eval gates intact while output eval coverage grows.
6. Move adapter-specific logic toward future compiler commands after IR fields are stable.
@@ -0,0 +1,8 @@
{"text":"新生成的 Skill 报告默认使用中文简体,并在右上角提供英文切换。"}
{"text":"HTML 报告需要双语能力,但默认内容应该保持中文简体。"}
{"text":"报告排版采用白底 Kami 风格,图表、模块和导航都要清晰。"}
{"text":"Skill 概览报告需要更多图表模块,避免右侧文本挤在一起。"}
{"text":"自适应升级必须先生成提案,不能直接自动修改源文件。"}
{"text":"用户偏好扫描必须由用户提供明确路径,不要默认扫描私人日志。"}
{"text":"每次升级都需要测试、覆盖报告和可审计证据,推送前要跑 CI。"}
{"text":"涉及 GitHub 推送时,要保留证据链,避免把计划当作完成证明。"}
+1 -1
View File
@@ -1 +1 @@
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. Also trigger on common Chinese asks such as 做一个 skill, 把流程沉淀成可复用能力, 封装成团队可复用的 skill, 优化已有 skill, 补 trigger 评测, or 收紧触发边界.
Create, refactor, evaluate, package, migrate, govern, and release agent skills from workflows, prompts, transcripts, docs, notes, SOPs, scripts, or repeated team practices. Use when asked to create/build a skill, turn a repeated process into a reusable agent capability, improve or migrate an existing skill, optimize trigger routing, add evals/tests, add references/scripts/interface/manifest, prepare packaging/installation/release, or make a skill team-ready. Also trigger on Chinese asks such as 做/改/重构/迁移/发布 skill, 把流程/SOP/提示词/对话记录沉淀成可复用能力, 封装成团队可复用的 skill, 优化已有 skill, 补 trigger 评测, 收紧触发边界, or 做打包发布检查. Do not use for summary-only, translation-only, brainstorming-only, or documentation-only requests that explicitly say no skill or agent execution.
+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"]
}
+88 -1
View File
@@ -18,12 +18,19 @@
"turn a repeated process into a reusable skill",
"improve an existing skill",
"add evals",
"add tests",
"package a skill for team reuse",
"migrate an existing skill",
"prepare packaging, installation, or release",
"govern a reusable skill",
"做一个 skill",
"把流程沉淀成可复用 skill",
"优化现有 skill",
"补 trigger 评测",
"封装成团队可复用 skill"
"封装成团队可复用 skill",
"迁移 skill",
"发布 skill",
"打包发布检查"
],
"exclusions": [
"summary-only requests",
@@ -75,16 +82,29 @@
"formalize this process into a reusable capability",
"turn this playbook into an agent capability package",
"convert this into a maintained skill",
"agent capability",
"reusable agent capability",
"skill library entry",
"skill authoring",
"做一个 skill",
"创建一个 skill",
"新建一个 skill",
"帮我做个 skill",
"改一个 skill",
"重构一个 skill",
"迁移一个 skill",
"发布一个 skill",
"这个 skill",
"已有 skill",
"现有 skill",
"做成一个 skill",
"封装成一个 skill",
"沉淀成一个 skill",
"整理成一个 skill",
"抽成一个 skill",
"可复用 skill",
"可执行 skill",
"团队 skill",
"agent 能力包",
"能力包",
"skill 包"
@@ -103,19 +123,27 @@
"existing skill draft",
"rough notes",
"standard operating procedure",
"operating procedure",
"sop",
"playbook",
"transcript",
"chat transcript",
"meeting notes",
"workflow fragments",
"release notes",
"onboarding flow",
"support escalation routine",
"quarterly release routine",
"scripts",
"repeated team practice",
"流程",
"工作流",
"操作流程",
"做事流程",
"作业流程",
"方法",
"经验",
"复盘",
"sop 文档",
"会议纪要",
"对话记录",
@@ -142,14 +170,32 @@
"ops library",
"maintained",
"operationalize",
"release-ready",
"publish",
"release",
"installation",
"installable",
"portability",
"registry",
"governance",
"review gate",
"可复用",
"复用",
"封装",
"打包",
"沉淀",
"标准化",
"标准化下来",
"团队复用",
"给团队用",
"团队可用",
"安装复用",
"可安装",
"发布",
"上架",
"交付",
"治理",
"注册表",
"方法包",
"团队能力包",
"沉淀下来",
@@ -171,16 +217,32 @@
"false negatives",
"stress test",
"route boundary",
"routing",
"route evals",
"trigger routing",
"activation",
"description optimization",
"tests",
"install checks",
"release checks",
"hardening",
"评测",
"补评测",
"补 eval",
"补测试",
"触发测试",
"触发词",
"触发范围",
"召回",
"收紧触发边界",
"路由边界",
"路由评测",
"激活",
"误触发",
"漏触发",
"质量门",
"安装验证",
"发布检查",
"打包检查",
"边界测试"
]
@@ -198,11 +260,32 @@
"before sharing it with the team",
"tighten the boundary",
"revise this skill",
"refactor this skill",
"migrate this skill",
"port this skill",
"convert this skill",
"release this skill",
"publish this skill",
"make this skill release-ready",
"codex-ready package",
"claude skill",
"codex format",
"interface metadata",
"manifest",
"install checks",
"draft skill",
"harden this skill for library reuse",
"优化这个 skill",
"改进这个 skill",
"重构这个 skill",
"扩大这个 skill",
"调整这个 skill",
"优化触发范围",
"扩大触发范围",
"迁移这个 skill",
"发布这个 skill",
"把这个 skill 迁移",
"让这个 skill 可发布",
"补一下评测",
"补 trigger 测试",
"加强路由判断",
@@ -351,12 +434,16 @@
"do not convert it into a reusable capability",
"keep it as documentation only",
"discussion only",
"no agent execution",
"先不要做成 skill",
"先不做 skill",
"不要做成 skill",
"不用封装",
"不要打包",
"不要沉淀成能力",
"先别做成可复用能力",
"不需要 agent 执行",
"不做 agent 能力",
"只做文档",
"只做说明"
]
+52
View File
@@ -54,6 +54,18 @@
"text": "Add trigger evals to this skill before sharing it with the team.",
"family": "iterate_existing_skill"
},
{
"text": "Migrate this Claude skill into a Codex-ready package with interface metadata and install checks.",
"family": "migrate_existing_skill"
},
{
"text": "Make this existing skill release-ready: add manifest/interface metadata, packaging checks, and trigger evals.",
"family": "release_packaging"
},
{
"text": "Optimize the activation wording for this skill so broader skill-authoring requests are routed correctly.",
"family": "trigger_expansion"
},
{
"text": "We have a messy release runbook, export process, and a prompt history; turn all of that into one reusable skill package with evals and packaging checks.",
"family": "complex_multi_asset"
@@ -133,6 +145,18 @@
{
"text": "把这个客服升级流程标准化成一个可执行的 skill,并加上边界测试。",
"family": "cn_eval_and_package"
},
{
"text": "把这个 Claude skill 迁移成 Codex 可用的 skill 包,补 interface、manifest 和安装验证。",
"family": "cn_migrate_existing_skill"
},
{
"text": "把这套提示词和脚本整理成团队能安装复用的 skill,并做打包发布检查。",
"family": "cn_release_packaging"
},
{
"text": "扩大这个 skill 的触发范围,同时补路由评测,避免漏触发。",
"family": "cn_trigger_expansion"
}
],
"should_not_trigger": [
@@ -239,6 +263,22 @@
{
"text": "先一起头脑风暴几个方向,不要封装成 skill。",
"family": "cn_brainstorm_only"
},
{
"text": "Polish this release note for publishing, but do not do any skill work.",
"family": "document_only"
},
{
"text": "Migrate this wiki article into a new docs folder; do not create an agent skill.",
"family": "document_only"
},
{
"text": "把这篇 SOP 改成知识库文档,不需要 agent 执行。",
"family": "cn_document_only"
},
{
"text": "检查安装步骤是否清楚,只做 README,不做 skill 包。",
"family": "cn_document_only"
}
],
"near_neighbor": [
@@ -333,6 +373,18 @@
{
"text": "这次只给我一个一次性 prompt,不用复用成 skill。",
"family": "cn_one_off_vs_reusable"
},
{
"text": "Create a reusable onboarding template for humans, not an agent skill.",
"family": "document_export_vs_agent_skill"
},
{
"text": "Draft a release checklist for a future skill, but do not package or evaluate the skill yet.",
"family": "future_outline_vs_build"
},
{
"text": "整理成团队发布流程文档即可,不要做成 skill,也不要做触发评测。",
"family": "cn_document_export_vs_agent_skill"
}
]
}
+45
View File
@@ -0,0 +1,45 @@
# World-Class Evidence Intake
This directory defines the intake contract for external and human evidence required before `yao-meta-skill` can honestly claim public world-class completion.
The templates in `templates/` are review aids only. They do not count as accepted evidence. Real submissions belong in `evidence/world_class/submissions/`, which is intentionally gitignored by default so provider metadata, reviewer identity, or client integration notes can be reviewed before anything is committed.
Run:
```bash
SUBMISSIONS_DIR="${SUBMISSIONS_DIR:-evidence/world_class/submissions}"
python3 scripts/yao.py world-class-preflight . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-submission-kit . --output-dir "$SUBMISSIONS_DIR"
# Alternative: prefill artifact SHA-256 digests while keeping drafts template-only.
python3 scripts/yao.py world-class-submission-kit . --output-dir "$SUBMISSIONS_DIR" --prefill-artifacts
python3 scripts/yao.py world-class-intake . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-submission-review . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-ledger . --submissions-dir "$SUBMISSIONS_DIR"
python3 scripts/yao.py world-class-runbook . --submissions-dir "$SUBMISSIONS_DIR"
```
The intake validator checks:
- the evidence key matches the current world-class ledger
- the category and source type match the expected human or external evidence path
- artifact references are declared
- real submissions reference concrete files inside the skill directory and include a matching SHA-256 digest for each artifact
- real submissions use the canonical `<evidence-key>.json` filename expected by the ledger
- credentials, secrets, raw user content, and raw provider prompts are explicitly excluded
- raw prompt, output, transcript, message, credential, secret, token, and API-key fields are rejected even when nested
- human adjudication packets must preserve reviewer identity, review date, A/B winner, confidence, and a required rationale before answer-key reveal can count
- planned work, local command-only output, and metadata fallback are not claimed as completion evidence
Run `world-class-preflight` before assigning external or human work. It checks local files, redacted environment readiness, human/external prerequisites, and source-evidence blockers without accepting evidence or printing secrets.
The generated intake report also includes an `operator_checklist` for each pending evidence item. Use it to find the template path, target submission path, preparation command, validation command, required provenance, success checks, and privacy boundary before asking a reviewer or external operator to submit evidence.
The submission kit command creates editable JSON drafts plus a local README for an external operator or human reviewer. Use `--prefill-artifacts` when you want the kit to insert SHA-256 digests for currently available local aggregate artifacts. Prefill is operator convenience only: those drafts still keep `template_only: true` and do not count as evidence until the real run or review exists, the packet is edited truthfully, every artifact ref points to a local aggregate evidence file with a matching `sha256`, and `world-class-intake` validates it.
The submission kit separates artifact rows into `submission-ref` and `supporting-evidence`. `submission-ref` rows are the concrete paths expected in a real packet's `artifact_refs`; `supporting-evidence` rows help reviewers audit the packet and do not all need to be copied into the submission.
The submission review command renders a read-only queue that compares valid packets with the source evidence checks and current ledger state. It is for reviewer triage only; it does not accept evidence or make the world-class claim true.
The operator runbook is the step-by-step coordination cockpit for finishing the remaining real-world work. It includes a Coordination Plan that separates user-required provider, reviewer, native-client, and telemetry actions from assistant-run commands, plus a Release Gate that mirrors the ledger, claim guard, benchmark, Review Studio, evidence consistency, and final CI checks. The runbook is operational guidance only: planning rows, submission drafts, and release-gate rows keep `counts_as_completion: false`.
Accepted intake means "ready for ledger review", not evidence that the final public claim is ready. The ledger remains the source of truth for `ready_to_claim_world_class`.
+440
View File
@@ -0,0 +1,440 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.local/yao-meta-skill/world-class-evidence-intake.schema.json",
"title": "Yao World-Class Evidence Intake",
"description": "Real submissions must use the canonical <evidence-key>.json filename and the runtime validator rejects nested raw prompt, output, transcript, message, credential, secret, token, and API-key fields.",
"type": "object",
"required": [
"schema_version",
"evidence_key",
"template_only",
"category",
"source_type",
"submitted_by",
"submitted_at",
"summary",
"artifact_refs",
"provenance",
"privacy",
"anti_overclaim",
"attestation"
],
"properties": {
"schema_version": {
"const": "1.0"
},
"evidence_key": {
"enum": [
"provider-holdout",
"human-adjudication",
"native-permission-enforcement",
"native-client-telemetry"
]
},
"template_only": {
"type": "boolean"
},
"category": {
"enum": [
"human",
"external"
]
},
"source_type": {
"type": "string",
"minLength": 3
},
"submitted_by": {
"type": "string",
"minLength": 1
},
"submitted_at": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"artifact_refs": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": [
"path",
"kind",
"contains_raw_content"
],
"properties": {
"path": {
"type": "string",
"minLength": 1
},
"kind": {
"type": "string",
"minLength": 1
},
"contains_raw_content": {
"type": "boolean"
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-fA-F]{64}$"
},
"note": {
"type": "string"
}
},
"additionalProperties": true
}
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"privacy": {
"type": "object",
"required": [
"raw_user_content_included",
"raw_provider_prompt_included",
"credentials_included",
"secrets_included"
],
"properties": {
"raw_user_content_included": {
"type": "boolean"
},
"raw_provider_prompt_included": {
"type": "boolean"
},
"credentials_included": {
"type": "boolean"
},
"secrets_included": {
"type": "boolean"
},
"notes": {
"type": "string"
}
},
"additionalProperties": true
},
"anti_overclaim": {
"type": "object",
"required": [
"planned_work_counts_as_evidence",
"metadata_fallback_counts_as_native_enforcement",
"pending_review_counts_as_human_decision",
"local_command_runner_counts_as_provider_model"
],
"properties": {
"planned_work_counts_as_evidence": {
"const": false
},
"metadata_fallback_counts_as_native_enforcement": {
"const": false
},
"pending_review_counts_as_human_decision": {
"const": false
},
"local_command_runner_counts_as_provider_model": {
"const": false
}
},
"additionalProperties": false
},
"attestation": {
"type": "object",
"required": [
"real_external_or_human_evidence",
"reviewer_or_operator_identity_present",
"artifact_refs_reviewed",
"privacy_contract_satisfied",
"ledger_reviewer_approved",
"ledger_reviewer",
"ledger_reviewed_at"
],
"properties": {
"real_external_or_human_evidence": {
"type": "boolean"
},
"reviewer_or_operator_identity_present": {
"type": "boolean"
},
"artifact_refs_reviewed": {
"type": "boolean"
},
"privacy_contract_satisfied": {
"type": "boolean"
},
"ledger_reviewer_approved": {
"type": "boolean"
},
"ledger_reviewer": {
"type": "string"
},
"ledger_reviewed_at": {
"type": "string"
},
"notes": {
"type": "string"
}
},
"additionalProperties": true
}
},
"allOf": [
{
"if": {
"properties": {
"template_only": {
"const": false
}
},
"required": [
"template_only"
]
},
"then": {
"properties": {
"submitted_at": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}Z)?$"
},
"submitted_by": {
"not": {
"enum": [
"operator with provider credentials",
"human reviewer",
"target client or installer integrator",
"Browser/Chrome/IDE/provider client integrator"
]
}
},
"artifact_refs": {
"items": {
"required": [
"path",
"kind",
"contains_raw_content",
"sha256"
]
}
}
}
}
},
{
"if": {
"properties": {
"template_only": {
"const": false
},
"evidence_key": {
"const": "provider-holdout"
}
},
"required": [
"template_only",
"evidence_key"
]
},
"then": {
"properties": {
"artifact_refs": {
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/output_execution_runs.json"
},
"kind": {
"const": "aggregate-report"
}
},
"required": [
"path",
"kind"
]
}
}
}
}
},
{
"if": {
"properties": {
"template_only": {
"const": false
},
"evidence_key": {
"const": "human-adjudication"
}
},
"required": [
"template_only",
"evidence_key"
]
},
"then": {
"properties": {
"artifact_refs": {
"allOf": [
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/output_review_adjudication.json"
},
"kind": {
"const": "adjudication-report"
}
},
"required": [
"path",
"kind"
]
}
},
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/output_review_decisions.json"
},
"kind": {
"const": "review-decisions"
}
},
"required": [
"path",
"kind"
]
}
}
]
}
}
}
},
{
"if": {
"properties": {
"template_only": {
"const": false
},
"evidence_key": {
"const": "native-permission-enforcement"
}
},
"required": [
"template_only",
"evidence_key"
]
},
"then": {
"properties": {
"artifact_refs": {
"allOf": [
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/runtime_permission_probes.json"
},
"kind": {
"const": "runtime-probe-report"
}
},
"required": [
"path",
"kind"
]
}
},
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/install_simulation.json"
},
"kind": {
"const": "installer-enforcement-report"
}
},
"required": [
"path",
"kind"
]
}
}
]
}
}
}
},
{
"if": {
"properties": {
"template_only": {
"const": false
},
"evidence_key": {
"const": "native-client-telemetry"
}
},
"required": [
"template_only",
"evidence_key"
]
},
"then": {
"properties": {
"artifact_refs": {
"allOf": [
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/adoption_drift_report.json"
},
"kind": {
"const": "adoption-drift-report"
}
},
"required": [
"path",
"kind"
]
}
},
{
"contains": {
"type": "object",
"properties": {
"path": {
"const": "reports/telemetry_hook_recipes.json"
},
"kind": {
"const": "hook-recipes"
}
},
"required": [
"path",
"kind"
]
}
}
]
}
}
}
}
],
"additionalProperties": true
}
@@ -0,0 +1,64 @@
{
"schema_version": "1.0",
"evidence_key": "human-adjudication",
"template_only": true,
"category": "human",
"source_type": "blind-ab-review",
"submitted_by": "human reviewer",
"submitted_at": "YYYY-MM-DD",
"summary": "Real blind A/B reviewer decisions recorded before the answer key was opened.",
"artifact_refs": [
{
"path": "reports/output_review_adjudication.json",
"kind": "adjudication-report",
"contains_raw_content": false,
"note": "Must show pending_count == 0, invalid_decision_count == 0, blind_review_attested == true, and review_integrity.blind_pack_sha256."
},
{
"path": "reports/output_review_decisions.json",
"kind": "review-decisions",
"contains_raw_content": false,
"note": "Reviewer identity, reviewed_at, winner_variant, confidence, required reason, reviewer_attestation, and review_integrity only."
}
],
"provenance": {
"reviewer": "name or team handle",
"reviewed_at": "YYYY-MM-DD",
"blind_pack_path": "reports/output_blind_review_pack.md",
"blind_pack_sha256": "sha256 from reports/output_review_adjudication.json review_integrity.blind_pack_sha256",
"answer_key_opened_after_decisions": true,
"blind_review_completed_before_answer_key": true,
"decision_fields": [
"case_id",
"winner_variant",
"confidence",
"reason",
"reviewer_attestation",
"review_integrity"
],
"reviewer_reason_required": true
},
"privacy": {
"raw_user_content_included": false,
"raw_provider_prompt_included": false,
"credentials_included": false,
"secrets_included": false,
"notes": "Reviewer reasons must be based on the visible rubric and must not include private customer data."
},
"anti_overclaim": {
"planned_work_counts_as_evidence": false,
"metadata_fallback_counts_as_native_enforcement": false,
"pending_review_counts_as_human_decision": false,
"local_command_runner_counts_as_provider_model": false
},
"attestation": {
"real_external_or_human_evidence": false,
"reviewer_or_operator_identity_present": false,
"artifact_refs_reviewed": false,
"privacy_contract_satisfied": false,
"ledger_reviewer_approved": false,
"ledger_reviewer": "",
"ledger_reviewed_at": "",
"notes": "Copy this template into submissions/ after a real reviewer completes blind decisions."
}
}
@@ -0,0 +1,53 @@
{
"schema_version": "1.0",
"evidence_key": "native-client-telemetry",
"template_only": true,
"category": "external",
"source_type": "native-client-telemetry",
"submitted_by": "Browser/Chrome/IDE/provider client integrator",
"submitted_at": "YYYY-MM-DD",
"summary": "Metadata-only production events imported from a real external client into the local drift loop.",
"artifact_refs": [
{
"path": "reports/adoption_drift_report.json",
"kind": "adoption-drift-report",
"contains_raw_content": false,
"note": "Must show summary.source_types.external > 0 and adoption_sample_count > 0."
},
{
"path": "reports/telemetry_hook_recipes.json",
"kind": "hook-recipes",
"contains_raw_content": false,
"note": "Documents local-first metadata-only client integration."
}
],
"provenance": {
"client": "Browser/Chrome/IDE/provider client",
"native_host_manifest": "/local/path/not/committed",
"event_source": "external",
"metadata_only": true
},
"privacy": {
"raw_user_content_included": false,
"raw_provider_prompt_included": false,
"credentials_included": false,
"secrets_included": false,
"notes": "Never commit telemetry JSONL with raw prompts, outputs, transcripts, notes, or messages."
},
"anti_overclaim": {
"planned_work_counts_as_evidence": false,
"metadata_fallback_counts_as_native_enforcement": false,
"pending_review_counts_as_human_decision": false,
"local_command_runner_counts_as_provider_model": false
},
"attestation": {
"real_external_or_human_evidence": false,
"reviewer_or_operator_identity_present": false,
"artifact_refs_reviewed": false,
"privacy_contract_satisfied": false,
"ledger_reviewer_approved": false,
"ledger_reviewer": "",
"ledger_reviewed_at": "",
"notes": "Copy this template into submissions/ after real client events have been imported."
}
}
@@ -0,0 +1,61 @@
{
"schema_version": "1.0",
"evidence_key": "native-permission-enforcement",
"template_only": true,
"category": "external",
"source_type": "runtime-permission-guard",
"submitted_by": "target client or installer integrator",
"submitted_at": "YYYY-MM-DD",
"summary": "A real target or installer guard enforces approved high-permission capabilities at runtime.",
"artifact_refs": [
{
"path": "reports/runtime_permission_probes.json",
"kind": "runtime-probe-report",
"contains_raw_content": false,
"note": "Must show native_enforcement_count > 0 and failure_count == 0 for target-native completion; installer_enforcement_pass_count is supporting local evidence only."
},
{
"path": "reports/install_simulation.json",
"kind": "installer-enforcement-report",
"contains_raw_content": false,
"note": "Shows local package installer enforcement. This does not replace target-native or external runtime guard evidence."
},
{
"path": "dist/targets/<target>/adapter.json",
"kind": "target-adapter",
"contains_raw_content": false,
"note": "Adapter may claim native enforcement only when the target really enforces it."
}
],
"provenance": {
"target": "openai|claude|generic|vscode|other",
"guard_location": "client or installer component",
"guard_scope": "target-client-native",
"guard_blocks_undeclared_capability": true,
"metadata_fallback_retained_for_other_targets": true,
"notes": "Use target-client-native for client-enforced guards or external-installer-runtime-guard for a real external installer guard."
},
"privacy": {
"raw_user_content_included": false,
"raw_provider_prompt_included": false,
"credentials_included": false,
"secrets_included": false,
"notes": "Runtime guard proof should avoid environment dumps."
},
"anti_overclaim": {
"planned_work_counts_as_evidence": false,
"metadata_fallback_counts_as_native_enforcement": false,
"pending_review_counts_as_human_decision": false,
"local_command_runner_counts_as_provider_model": false
},
"attestation": {
"real_external_or_human_evidence": false,
"reviewer_or_operator_identity_present": false,
"artifact_refs_reviewed": false,
"privacy_contract_satisfied": false,
"ledger_reviewer_approved": false,
"ledger_reviewer": "",
"ledger_reviewed_at": "",
"notes": "Copy this template into submissions/ only after a real client or installer guard exists."
}
}
@@ -0,0 +1,50 @@
{
"schema_version": "1.0",
"evidence_key": "provider-holdout",
"template_only": true,
"category": "external",
"source_type": "provider-output-eval",
"submitted_by": "operator with provider credentials",
"submitted_at": "YYYY-MM-DD",
"summary": "Provider-backed holdout run with model, timing, token metadata, and aggregate output hashes.",
"artifact_refs": [
{
"path": "reports/output_execution_runs.json",
"kind": "aggregate-report",
"contains_raw_content": false,
"note": "Must show model_executed_count > 0 and token_observed_count > 0."
}
],
"provenance": {
"provider": "<provider>",
"model": "<provider-model>",
"run_command": "python3 scripts/yao.py output-exec --provider-runner <provider> --provider-model <provider-model> --timeout-seconds 60",
"credential_env": "<PROVIDER_API_KEY_ENV>",
"model_env": "YAO_OUTPUT_EVAL_MODEL",
"model_default": "<provider-default-model>",
"credential_material_committed": false
},
"privacy": {
"raw_user_content_included": false,
"raw_provider_prompt_included": false,
"credentials_included": false,
"secrets_included": false,
"notes": "Commit aggregate metadata and hashes only."
},
"anti_overclaim": {
"planned_work_counts_as_evidence": false,
"metadata_fallback_counts_as_native_enforcement": false,
"pending_review_counts_as_human_decision": false,
"local_command_runner_counts_as_provider_model": false
},
"attestation": {
"real_external_or_human_evidence": false,
"reviewer_or_operator_identity_present": false,
"artifact_refs_reviewed": false,
"privacy_contract_satisfied": false,
"ledger_reviewer_approved": false,
"ledger_reviewer": "",
"ledger_reviewed_at": "",
"notes": "Copy this template into submissions/ and set all booleans truthfully after the real provider run."
}
}
@@ -6,10 +6,47 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 718,
"other_text_tokens": 1946,
"other_text_tokens": 1842,
"estimated_initial_load_tokens": 790,
"estimated_total_text_tokens": 2664,
"relevant_file_count": 12,
"estimated_total_text_tokens": 2560,
"deferred_resource_tokens": 1657,
"deferred_resource_warn_threshold": 120000,
"deferred_resource_dirs": [
{
"path": "references",
"estimated_tokens": 554,
"file_count": 4
},
{
"path": "scripts",
"estimated_tokens": 367,
"file_count": 1
},
{
"path": "input",
"estimated_tokens": 315,
"file_count": 1
},
{
"path": "outputs",
"estimated_tokens": 263,
"file_count": 1
},
{
"path": "evals",
"estimated_tokens": 158,
"file_count": 1
}
],
"large_deferred_resource_dirs": [],
"deferred_resource_governance": {
"status": "not-required",
"large_dir_count": 0,
"governed_large_dir_count": 0,
"directories": [],
"summary": "No large deferred resource directory exceeds the per-dir threshold."
},
"relevant_file_count": 11,
"unused_resource_dirs": [],
"quality_signal_points": 130,
"quality_density": 164.6
@@ -6,10 +6,47 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 658,
"other_text_tokens": 1603,
"other_text_tokens": 1499,
"estimated_initial_load_tokens": 760,
"estimated_total_text_tokens": 2261,
"relevant_file_count": 13,
"estimated_total_text_tokens": 2157,
"deferred_resource_tokens": 1030,
"deferred_resource_warn_threshold": 120000,
"deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 278,
"file_count": 1
},
{
"path": "references",
"estimated_tokens": 266,
"file_count": 3
},
{
"path": "outputs",
"estimated_tokens": 203,
"file_count": 1
},
{
"path": "input",
"estimated_tokens": 153,
"file_count": 1
},
{
"path": "evals",
"estimated_tokens": 130,
"file_count": 1
}
],
"large_deferred_resource_dirs": [],
"deferred_resource_governance": {
"status": "not-required",
"large_dir_count": 0,
"governed_large_dir_count": 0,
"directories": [],
"summary": "No large deferred resource directory exceeds the per-dir threshold."
},
"relevant_file_count": 12,
"unused_resource_dirs": [],
"quality_signal_points": 130,
"quality_density": 171.1
File diff suppressed because it is too large Load Diff
@@ -14,18 +14,18 @@ Build governed incident command packets. Use when asked to standardize incident
| Candidate | Tokens | Dev FP | Dev FN | Dev Near | Holdout FP | Holdout FN |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| `Current` | 37 | 0 | 1 | 1.0 | 0 | 1 |
| `Guardrail` | 51 | 0 | 1 | 1.0 | 1 | 1 |
| `Balanced` | 54 | 0 | 1 | 1.0 | 0 | 1 |
| `Boundary` | 78 | 0 | 1 | 1.0 | 0 | 1 |
| `Artifact Aware` | 78 | 0 | 1 | 1.0 | 0 | 1 |
| `Current` | 37 | 0 | 0 | 1.0 | 0 | 1 |
| `Balanced` | 54 | 0 | 0 | 1.0 | 0 | 1 |
| `Boundary` | 78 | 0 | 0 | 1.0 | 0 | 1 |
| `Artifact Aware` | 78 | 0 | 0 | 1.0 | 0 | 1 |
| `Guardrail` | 51 | 0 | 1 | 1.0 | 0 | 1 |
## Acceptance Gates
| Gate | Winner FP | Winner FN | Current FP | Current FN | Baseline FP | Baseline FN |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| Holdout | 0 | 1 | 0 | 1 | 0 | 2 |
| Blind Holdout | 0 | 0 | 0 | 0 | 0 | 1 |
| Holdout | 0 | 1 | 0 | 1 | 0 | 1 |
| Blind Holdout | 0 | 0 | 0 | 0 | 0 | 0 |
| Judge Blind Holdout | 0 | 0 | 0 | 0 | 0 | 0 |
| Adversarial Holdout | 0 | 0 | 0 | 0 | 0 | 0 |
@@ -34,21 +34,21 @@ Build governed incident command packets. Use when asked to standardize incident
| Gate | Winner Gap | Winner Risk | Winner Boundary Rate | Current Gap | Baseline Gap |
| --- | ---: | --- | ---: | ---: | ---: |
| Holdout | 0.023 | overlap | 0.0 | 0.023 | 0.101 |
| Blind Holdout | 0.418 | healthy | 0.167 | 0.418 | 0.063 |
| Adversarial Holdout | 0.598 | healthy | 0.0 | 0.598 | 0.172 |
| Blind Holdout | 0.417 | healthy | 0.0 | 0.417 | 0.374 |
| Adversarial Holdout | 0.538 | watch | 0.167 | 0.538 | 0.467 |
## Judge Blind Summary
| Gate | Winner Agreement | Winner Mean Confidence | Current Agreement | Baseline Agreement |
| --- | ---: | ---: | ---: | ---: |
| Judge Blind Holdout | 1.0 | 0.657 | 1.0 | 1.0 |
| Judge Blind Holdout | 1.0 | 0.677 | 1.0 | 1.0 |
## Family Health
| Gate | Winner Clean Families | Winner Weakest Family | Current Clean Families | Baseline Clean Families |
| --- | --- | --- | --- | --- |
| Holdout | 5/6 | packet_assembly (1 errors) | 5/6 | 4/6 |
| Blind Holdout | 6/6 | blind_summary_only (0 errors) | 6/6 | 5/6 |
| Holdout | 5/6 | packet_assembly (1 errors) | 5/6 | 5/6 |
| Blind Holdout | 6/6 | blind_summary_only (0 errors) | 6/6 | 6/6 |
| Judge Blind Holdout | 6/6 | blind_summary_only (0 errors) | 6/6 | 6/6 |
| Adversarial Holdout | 6/6 | adversarial_single_update_collision (0 errors) | 6/6 | 6/6 |
@@ -37,9 +37,12 @@
"weight": 0.32,
"phrases": [
"incident command packet",
"incident command packets",
"governed incident packet",
"incident packet assembly",
"incident review skill"
"incident review skill",
"incident review",
"standardize incident review"
]
},
"incident_inputs": {
@@ -59,6 +62,8 @@
"severity assessment",
"severity",
"impact scope",
"incident review",
"outage review",
"sev"
]
},
@@ -68,6 +73,8 @@
"stakeholder update",
"incident communication",
"owner",
"owners",
"owner actions",
"action ownership",
"next actions"
]
@@ -76,6 +83,9 @@
"weight": 0.1,
"phrases": [
"governed",
"governed workflow",
"reusable governed workflow",
"standardize",
"reviewed",
"audited",
"maintained",
@@ -128,9 +138,13 @@
"exclusive": true,
"phrases": [
"brainstorm",
"sketch a future",
"for later",
"possible response ideas",
"improve incident handling",
"ideas for later"
"ideas for later",
"do not package",
"do not package a reusable workflow"
]
},
"summary_only": {
+2 -1
View File
@@ -12,7 +12,8 @@
"openai",
"claude",
"generic",
"agent-skills-compatible"
"agent-skills-compatible",
"vscode"
],
"factory_components": [
"templates",
+65
View File
@@ -0,0 +1,65 @@
# Autonomous Adaptation Method
This reference defines the safe foundation for adaptive self-iteration.
## Scope
Adaptive iteration is proposal-only until a human explicitly approves a patch application workflow. The current implementation may:
- read one user-provided local source file;
- redact sensitive text before storing evidence excerpts;
- summarize repeated preferences and operational signals;
- produce adaptation proposals with target files, risks, tests, and rollback plans.
- draft a pending approval ledger entry from a reviewed patch, including patch SHA-256, target files, target baseline hashes, verifier commands, and rollback metadata.
- dry-run an approved patch through `adapt-apply`, after patch hash, approval, target allowlist, and target baseline hash checks pass.
- apply a patch only when the operator passes `--apply` and the approval ledger names the reviewer, reason, patch hash, target files, target file SHA-256 baselines, verification commands, and rollback plan.
- automatically reverse an applied patch when `--run-verification` fails, unless the operator explicitly passes `--no-rollback-on-failure`.
It must not:
- scan shell history, browser history, chat logs, mail, or private folders by default;
- infer permanent user memory from a single comment;
- write source files as part of scan or proposal generation;
- write source files through `adapt-apply` without explicit `--apply`;
- apply a patch whose target files are outside both the proposal and approval allowlists;
- apply a patch when an approved target file has changed since the reviewer recorded its baseline SHA-256;
- leave a failed verified apply in place by default;
- count proposals as completed implementation evidence.
## Flow
1. `adapt-scan` reads an explicit source path and writes `reports/user_patterns.json` plus `reports/user_patterns.md`.
2. `adapt-propose` reads the pattern report and writes `reports/adaptation_proposals.json` plus `reports/adaptation_proposals.md`.
3. A reviewer decides whether any proposal is worth implementing.
4. `adapt-apply --write-template` creates `reports/adaptation_approval_ledger.json` and `reports/adaptation_regression_report.json` so the review surface exists before any patch is applied.
5. `adapt-apply --prepare-approval --proposal-id <id> --patch-file <patch>` drafts a `pending-review` approval entry. It does not approve or apply the patch.
6. A human reviewer changes the draft decision to `approved`, fills reviewer, reason, approval date, and optional expiry, then keeps the generated patch and target baseline hashes intact.
7. `adapt-apply --proposal-id <id> --patch-file <patch>` defaults to a dry-run and records patch, target, approval, regression, and rollback evidence.
8. `adapt-apply --apply --run-verification` may write files only after approval, patch hash, allowlist, target baseline hash, `git apply --check`, and safe regression command checks pass.
9. If a verification command fails after a patch is applied, `adapt-apply` runs `git apply -R <patch>` by default and records `failed-rolled-back` plus rollback evidence in `reports/adaptation_regression_report.json`.
## Evidence Standard
Each proposal should include:
- the repeated pattern that triggered it;
- redacted excerpts, never unredacted raw content;
- target files and change intent;
- risk level and boundary;
- verification commands;
- rollback plan;
- a clear `proposal-only` status.
Each approved application should include:
- reviewer, reason, approval date, and optional expiry;
- exact patch SHA-256;
- target file allowlist;
- target file SHA-256 baselines for every patch target, or `__absent__` for approved new files;
- regression commands restricted to local `make` targets or local Python verifier scripts;
- rollback command or plan.
- rollback result if regression failed after an apply attempt.
## Review Boundary
The adaptive loop improves iteration quality, but it does not replace normal review. Any proposal touching trigger behavior, reports, packaging, telemetry, privacy, or governance must still pass the same tests and release gates as a manually designed change. `adapt-apply` evidence proves that an approved patch path was checked or applied; it does not make world-class external or human evidence complete.
+6 -3
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 .
@@ -36,6 +36,8 @@ Do not claim archive readiness when package verification reports unsafe zip path
Do not claim install readiness when install simulation cannot extract the archive into a temporary skill root, load `SKILL.md` frontmatter, read `manifest.json`, read `agents/interface.yaml`, find the overview and Review Studio reports, or load each generated adapter.
Do not sync a local or active install from source until the same package has passed install preflight. `scripts/sync_local_install.py` must run install simulation against the configured package directory and fail before copying files when any target/capability pair lacks active permission approval or target-specific enforcement evidence. Use `--skip-install-preflight` only for isolated diagnostics, not for release or active install.
Do not include raw `reports/telemetry_events.jsonl` in a distributed package. Include only aggregate adoption drift reports, and block release review when telemetry contains raw prompts, outputs, transcripts, notes, or messages.
Review waiver evidence may be distributed as `reports/review_waivers.md/json` because it is metadata-only reviewer accountability. Do not store raw prompts, outputs, transcripts, credentials, or private customer detail in waiver reasons.
@@ -53,5 +55,6 @@ A reviewer should be able to answer:
5. Which reports prove trust and runtime readiness?
6. Was the installable archive verified, and which checksum identifies it?
7. Was the archive install-simulated in a temporary local skill root?
8. What changed since the previous package, and does the declared version bump match the recommended bump?
9. Are adoption and drift signals summarized without packaging raw local telemetry?
8. Did local or active install sync preserve that preflight and installer permission gate?
9. What changed since the previous package, and does the declared version bump match the recommended bump?
10. Are adoption and drift signals summarized without packaging raw local telemetry?
+27 -1
View File
@@ -68,11 +68,37 @@ Minimum gates:
- `trigger_eval.py`
- `cross_packager.py` for requested targets
## Governed
Use when:
- the skill affects incident, release, compliance, security, or organizational standards
- external distribution, public claims, or high-permission scripts require reviewable evidence
- wrong output or wrong activation can cause operational, legal, trust, or reputational harm
Default deliverables:
- everything required for Library
- explicit owner, lifecycle, review cadence, and expiry-aware approvals
- trust/security reports for scripts, dependencies, permissions, secrets, and package hash
- output eval evidence with blind review status and reviewer-visible boundaries
- world-class or public-claim evidence ledger when public readiness is claimed
Minimum gates:
- Library gates
- `trust_check.py`
- runtime permission probes for packaged adapters
- review waiver ledger for accepted warning-level risk
- Review Studio before release
- claim guard before public world-class language
## Escalation Rules
- stay in Scaffold unless reuse is clearly real
- move to Production when team reuse or route confusion matters
- move to Library when the skill becomes shared infrastructure or a governed asset
- move to Library when the skill becomes shared infrastructure
- move to Governed when the skill needs explicit risk ownership, high-permission review, or public-claim evidence
## Context Discipline
+15 -2
View File
@@ -69,6 +69,16 @@ python3 scripts/yao.py output-exec --runner-command '["python3","scripts/local_o
This verifies the command-runner contract, timing capture, grading path, and failure handling. It must not be described as provider-backed model evidence.
For provider-backed evidence, use the bundled provider runner with real credentials:
```bash
YAO_OUTPUT_EVAL_MODEL=gpt-4.1-mini \
OPENAI_API_KEY=... \
python3 scripts/yao.py output-exec --provider-runner openai
```
The provider runner calls an OpenAI Responses API compatible endpoint, reads input files relative to `evals/output/`, returns `execution_kind: "model"`, and records observed token usage when the provider returns usage fields. If the API key or model is missing, the runner must fail instead of falling back to fixtures or pretending model evidence exists. Use `--provider-base-url` only for reviewed compatible endpoints; non-default HTTPS hosts require `--allow-custom-base-url`, and plain HTTP is allowed only with `--allow-insecure-localhost` for local test servers.
## Blind A/B Review
Every output eval run should also generate:
@@ -81,7 +91,7 @@ The review pack must hide whether Variant A or Variant B came from the baseline
## Reviewer Adjudication
After blind review, record reviewer choices in `reports/output_review_decisions.json` and run:
After blind review, record reviewer choices in `reports/output_review_decisions.json` with `reviewer`, `reviewed_at`, `winner_variant`, optional `confidence`, and a required rubric-based `reason`, then run:
```bash
python3 scripts/adjudicate_output_review.py --write-template
@@ -90,10 +100,13 @@ python3 scripts/yao.py output-review
The adjudication report writes:
- `reports/output_review_decisions.json`
- `reports/output_review_adjudication.json`
- `reports/output_review_adjudication.md`
When no reviewer decisions exist, the report should say the cases are pending. Do not count pending cases as human agreement. Only a real `winner_variant` of `A` or `B` should contribute to agreement rate, disagreement count, and reviewer judgment count.
When no reviewer decisions exist, the report should say the cases are pending and Review Studio should link to the decisions template. Do not count pending cases as human agreement. Only a real `winner_variant` of `A` or `B` with reviewer metadata and a non-empty `reason` should contribute to agreement rate, disagreement count, and reviewer judgment count.
The adjudication report must preserve blind-review integrity: pending and invalid decisions should show the expected winner as hidden. Only reveal `expected_winner_variant` after a valid reviewer decision with rationale exists for that case.
## Anti-Overfitting
+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
+4 -2
View File
@@ -40,7 +40,7 @@ Production, library, and governed reviews should also show a blind A/B review pa
When `reports/output_execution_runs.json` exists, Review Studio should show the number of variant runs, command-executed runs, model-executed runs, recorded fixtures, timing-observed runs, and token-estimated runs. Recorded fixtures are valid reproducibility evidence, but they must not be described as model-executed output evidence.
When `reports/output_review_adjudication.json` exists, Review Studio should show reviewed pairs and pending pairs. Pending reviewer decisions are acceptable as an explicit state, but they must not be counted as agreement or human review evidence. Invalid adjudication records should block release because they make the blind review audit untrustworthy.
When `reports/output_review_adjudication.json` exists, Review Studio should show reviewed pairs and pending pairs. Pending reviewer decisions are acceptable as an explicit state, but they must not be counted as agreement or human review evidence. For production, library, and governed packages, pending reviewer decisions should keep the Output Lab in `warn` until reviewer decisions are recorded or the warning is explicitly accepted in the waiver ledger. Invalid adjudication records should block release because they make the blind review audit untrustworthy.
The Operations Loop must never display raw telemetry logs. It should link only to `reports/adoption_drift_report.md`; privacy or schema violations are blockers.
@@ -65,10 +65,12 @@ Each action must include:
- `evidence`
- `verification_command`
`source_refs` must be structured entries with relative `path`, human label, kind, existence flag, best-effort line number, and relative link when the file exists. They should point to the smallest useful report or source file, not just a broad directory.
`source_refs` must be structured entries with relative `path`, human label, kind, existence flag, best-effort line number, matched pattern, short source excerpt, and relative link when the file exists. They should point to the smallest useful report or source file, not just a broad directory. The HTML page should render the excerpt next to the link so reviewers can understand why a line anchor matters before opening the full artifact.
The HTML page should render these actions before the detailed supporting sections so a reviewer can move directly from warning to fix. Action entries do not change gate count or score; they make the current decision more operational.
For `world-class-evidence`, the action should also expose an evidence-step card for every pending evidence key. Each card should show the submission path, template path, blocked source checks, command handoff, first runbook steps, provenance requirements, success checks, evidence artifacts, and privacy boundary. These cards are collection guidance only; they must not count as accepted evidence or change world-class readiness.
## Review Annotations
`reports/review_annotations.json` is the structured ledger, and `reports/review_annotations.md` is the human-readable review note surface. Each annotation should include:
+19
View File
@@ -25,6 +25,16 @@ Every waiver must include:
- `evidence`: optional path or note that explains the decision.
- `scope`: default `current-release`.
## Gate Key Policy
The waiver ledger must track the Review Studio gate universe explicitly:
- `review_studio_gate_keys`: every gate Review Studio can render.
- `waiverable_gate_keys`: warning gates that may receive bounded human acceptance.
- `non_waivable_gate_keys`: gates that must not be accepted through a waiver.
When Review Studio adds or renames a gate, update the waiver gate policy and tests in the same change. `review-waivers` and `world-class-evidence` stay non-waivable: the first is the waiver mechanism itself, and the second can only be satisfied by accepted ledger evidence.
## Release Semantics
- Invalid waiver records block Review Studio.
@@ -55,3 +65,12 @@ python3 scripts/yao.py review-waivers . \
For a non-governed release where `permission-gates` is only a warning, the same command can name `--gate-key permission-gates`. Governed releases must instead provide reviewer, scope, reason, expiry, evidence, and target-enforcement fields in `security/permission_policy.json`.
Review Studio reads `reports/review_waivers.json` and links to `reports/review_waivers.md`.
## Candidate Actions
The waiver report also surfaces current candidate actions from local evidence:
- waiverable warning candidates, such as an `output-lab` warning caused by pending reviewer decisions or missing provider-backed runs
- non-waivable boundaries, especially `world-class-evidence`, where pending ledger evidence cannot be converted into completion by a waiver
A waiver can make a bounded warning auditable for a release window. It cannot count as provider-backed evidence, human adjudication, native runtime enforcement, external telemetry, or public world-class readiness.
+8 -1
View File
@@ -16,6 +16,7 @@ Single-skill quality is not enough for a team library. A skill portfolio also ne
- Flag missing owner or review metadata.
- Flag stale skills based on `updated_at` and `review_cadence`.
- Extract no-route opportunities from failure notes.
- Read aggregate adoption drift reports and flag telemetry drift without reading raw telemetry logs.
## Scope Policy
@@ -23,6 +24,12 @@ Atlas keeps a full catalog, but release gates should distinguish actionable libr
Use `skill_atlas/policy.json` to mark path prefixes as non-actionable when they are intentionally retained as examples, evolution snapshots, embedded generated skills, or validator fixtures. Non-actionable items still appear in the full report, route matrix, stale list, and owner gap list, but Review Studio should use the actionable counts for release readiness.
## Telemetry Link
Atlas may read each skill's aggregate `reports/adoption_drift_report.json` to surface portfolio drift signals such as no telemetry for production/library/governed skills, missed triggers, bad outputs, missing resources, script errors, and review-overdue counts. It must not read or package `reports/telemetry_events.jsonl`; raw telemetry remains local-only evidence owned by the skill.
Write drift output to `skill_atlas/drift_signals.json`. Non-actionable scopes stay visible in that file and in the HTML report, but only actionable drift signals should affect release readiness.
## Reviewer Gate
Use Atlas before promoting a single skill into a shared library. If an actionable route collision, missing owner, or stale governed skill appears, fix the portfolio boundary before adding more local complexity to one skill. Non-actionable issues should stay visible as evidence, not as release blockers.
Use Atlas before promoting a single skill into a shared library. If an actionable route collision, missing owner, stale governed skill, or telemetry drift signal appears, fix the portfolio boundary before adding more local complexity to one skill. Non-actionable issues should stay visible as evidence, not as release blockers.
+53
View File
@@ -0,0 +1,53 @@
# SkillOps Decision Policy
Use this policy when turning explicit-source conversation evidence into SkillOps opportunities, proposals, or release work. The goal is to make repeated user signals actionable without letting automation write durable instructions, skills, scripts, or evals without review.
## Decision Order
1. Classify the signal as no action, report only, Memory, AGENTS.md, existing Skill patch, candidate Skill, script, eval, report, merge, split, or archive.
2. Prefer the smallest durable surface that fixes the repeated friction.
3. Require evidence for every write action.
4. Require a proposal or approval ledger entry before any source-file write.
5. Map every proposed change to at least one verification command.
## Score Bands
SkillOps opportunities use a `0-100` score. Scores are advisory and never bypass approval.
| Score | Decision |
| ---: | --- |
| `85-100` | Ready for approval review |
| `70-84` | Proposal review |
| `50-69` | Observe more evidence |
| `0-49` | Report only or no action |
High-risk items stay proposal-only even when their score is high.
## Action Mapping
| Pattern | Default Action | Durable Surface |
| --- | --- | --- |
| `language_default` | Patch existing skill | Report template or artifact doctrine |
| `report_ui` | Patch existing skill | Report renderer, artifact doctrine, visual test |
| `approval_safety` | AGENTS update | Governance guidance or approval policy |
| `delivery_format` | Patch existing skill | CLI output, README, generated summary copy |
| `evidence_testing` | Add eval | Focused regression, report-quality, or release gate |
| Unknown pattern | Report only | Manual review queue |
## Safety Rules
- Do not scan private logs implicitly; only use explicit user-supplied sources.
- Do not store raw conversation content in reports; use redacted excerpts and aggregate counts.
- Do not write source files from a daily report run.
- Do not count SkillOps reports as public world-class evidence.
- Do not treat planned work, draft submissions, or generated proposals as accepted evidence.
## Verification
Every implementation that changes this policy should run:
```bash
python3 tests/verify_skillops_opportunity.py
python3 tests/verify_daily_skillops.py
python3 tests/verify_yao_cli.py
```
+123 -1
View File
@@ -17,6 +17,8 @@ The local event stream is `reports/telemetry_events.jsonl`. It is intentionally
"event": "skill_activation",
"skill": "example-skill",
"version": "2.0.0",
"source": "yao_cli",
"command": "quickstart",
"activation_type": "implicit",
"outcome": "accepted",
"failure_type": "none",
@@ -26,10 +28,125 @@ The local event stream is `reports/telemetry_events.jsonl`. It is intentionally
Allowed events: `skill_activation`, `skill_output`, `script_run`, `review_event`.
Allowed sources: `manual`, `yao_cli`, `external`, `unknown`.
Allowed outcomes: `accepted`, `edited`, `rejected`, `missed`, `failed`, `reviewed`, `unknown`.
Allowed failure types: `wrong_trigger`, `under_trigger`, `bad_output`, `missing_resource`, `script_error`, `review_overdue`, `none`.
`source` and `command` are metadata fields. They may identify that `yao.py` ran `quickstart`, `validate`, `output-exec`, or another subcommand, but they must not include arguments, prompt text, file content, model output, transcripts, or reviewer notes.
## CLI Capture
`scripts/yao.py` can record metadata-only `script_run` events automatically. It is opt-in to keep release evidence reproducible and avoid surprising local writes:
```bash
YAO_CLI_TELEMETRY=1 python3 scripts/yao.py validate .
```
Optional destination override:
```bash
YAO_CLI_TELEMETRY=1 \
YAO_CLI_TELEMETRY_EVENTS=/tmp/yao-telemetry.jsonl \
python3 scripts/yao.py output-exec
```
Equivalent global flags are available before the subcommand:
```bash
python3 scripts/yao.py --record-cli-telemetry validate .
python3 scripts/yao.py --no-cli-telemetry validate .
```
Successful CLI runs record `event=script_run`, `source=yao_cli`, `outcome=accepted`, and `failure_type=none`. Failed CLI runs record `outcome=failed` and `failure_type=script_error`. The command name is normalized to the subcommand only; command arguments are never recorded.
## External Client Emit
External clients, browser extensions, editor adapters, or wrapper scripts can emit one sanitized event at a time into a local spool before importing it into the aggregate drift report:
```bash
python3 scripts/yao.py telemetry-emit . \
--event skill_activation \
--activation-type explicit \
--outcome accepted \
--command browser-extension
```
By default this writes to `.yao/telemetry_spool/external_events.jsonl`. Use `--output-jsonl` when a client needs a different local handoff path:
```bash
python3 scripts/yao.py telemetry-emit . \
--output-jsonl /tmp/external-client-events.jsonl \
--event skill_output \
--activation-type manual \
--outcome edited \
--command browser-plugin
```
Use `--dry-run` to validate a proposed event without writing to the spool. The emitter uses the same metadata-only contract as import: no prompt, input, output, transcript, message, note, raw text, arguments, or unknown fields are accepted.
After a client finishes a batch, import the spool:
```bash
python3 scripts/yao.py telemetry-import . --input-jsonl .yao/telemetry_spool/external_events.jsonl
```
## Client Hook Recipes
Use `telemetry-hooks` to generate auditable Browser, Chrome, VS Code, CLI wrapper, and provider-adapter hook recipes:
```bash
python3 scripts/yao.py telemetry-hooks .
```
The report is written to:
- `reports/telemetry_hook_recipes.json`
- `reports/telemetry_hook_recipes.md`
Each recipe includes a dry-run command, an emit command, the target local spool, trigger points, and the privacy contract. The report intentionally sets `native_auto_capture=false`; it proves the local hook contract and metadata-only command shape, not that a host client is already natively integrated.
## Browser Native Host
`scripts/telemetry_native_host.py` implements the local side of Browser/Chrome Native Messaging. It accepts length-prefixed JSON messages on stdio, validates them with the same metadata-only telemetry contract, appends accepted events to the local spool, and rejects raw prompt/output/transcript/message/note fields.
Smoke-test one message without Browser installation:
```bash
python3 scripts/telemetry_native_host.py . \
--message-json '{"event":"skill_activation","activation_type":"explicit","outcome":"accepted","failure_type":"none","command":"chrome-native-host"}'
```
Generate a local launcher and Chrome native messaging manifest for an operator-installed extension:
```bash
python3 scripts/telemetry_native_host.py . \
--write-launcher /tmp/yao-telemetry-host.sh \
--write-manifest /tmp/yao-telemetry-host.json \
--allowed-origin chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/
```
This is an executable native host bridge and manifest generator. It still does not prove that a specific Browser/Chrome extension is installed or sending events in the user's environment.
## External Client Import
External clients, browser extensions, editor adapters, or wrapper scripts may hand off already-sanitized JSONL through `telemetry-import`:
```bash
python3 scripts/yao.py telemetry-import . \
--input-jsonl /tmp/external-client-events.jsonl \
--command browser-extension
```
The importer defaults missing `source` to `external` and missing `command` to `external-client`. It validates the entire JSONL file before writing anything. If any line includes a raw content field, unsupported source, unsupported outcome, unsupported failure type, unknown field, malformed JSON, or an unsafe command name, the whole import is rejected and the existing local event stream is left untouched.
Use `--dry-run` to validate an external batch without writing `reports/telemetry_events.jsonl` or refreshing aggregate reports:
```bash
python3 scripts/yao.py telemetry-import . --input-jsonl /tmp/external-client-events.jsonl --dry-run
```
## Privacy Rule
The raw JSONL event log is local evidence and should not be distributed in skill packages. The distributable artifact is the aggregate report:
@@ -48,13 +165,18 @@ Package builders should exclude `reports/telemetry_events.jsonl`. The root repos
## Iteration Loop
1. Capture metadata-only events locally.
1. Capture metadata-only events locally, either manually with `adoption-drift --record-event`, automatically with opt-in `yao.py` CLI capture, through `telemetry-emit` client hooks, through generated `telemetry-hooks` client recipes, or through validated external JSONL import.
2. Render `reports/adoption_drift_report.md`.
3. Convert missed triggers into trigger eval cases.
4. Convert bad outputs into Output Eval assertions and failure taxonomy entries.
5. Convert script errors into non-interactive smoke tests.
6. Feed review-overdue signals back into Skill Atlas and owner review.
7. Let Skill Atlas read only `reports/adoption_drift_report.json` and publish portfolio-level `skill_atlas/drift_signals.json`.
## Review Studio Role
Review Studio should show the aggregate telemetry gate as an operating loop, not as raw logs. A blocker means the telemetry contract was violated. A warning means the evidence is absent or the drift signal needs a follow-up case.
## Skill Atlas Role
Skill Atlas uses aggregate adoption drift reports to rank portfolio work. It should surface no-data warnings for actionable production/library/governed skills, and drift warnings for missed triggers, wrong triggers, bad outputs, missing resources, script errors, and review-overdue counts. It must not inspect raw JSONL telemetry or use non-actionable example/fixture signals as release blockers.
+1
View File
@@ -64,6 +64,7 @@ Permission approval validates reviewer intent. Runtime permission probes validat
- Run `python3 scripts/probe_runtime_permissions.py . --package-dir dist` after `cross_packager.py`.
- The probe writes `reports/runtime_permission_probes.json` and `reports/runtime_permission_probes.md`.
- A passing probe requires every target adapter to carry `permission_contract`, `target_permission_contract`, declared capabilities, a native-enforcement boolean, representation notes, and operator notes.
- When `reports/install_simulation.json` matches the same package directory, the probe also reports installer enforcement counts from the install simulation. This proves the local package installer gate is wired, but it does not count as target-client native enforcement.
- If a target has no native enforcement, the probe must mark an explicit metadata fallback and keep residual risk reviewer-visible.
- Review Studio surfaces this as the `permission-runtime` gate.
+35
View File
@@ -0,0 +1,35 @@
# User Memory Policy
This skill treats user preference memory as local, explicit, and reviewable.
## Principles
- **Explicit source only**: adaptive scans require a user-provided file path.
- **Local first**: no network access is needed for preference extraction.
- **No implicit private logs**: shell history, browser history, mail, and hidden chat logs are blocked by default.
- **Repeated signals only**: one-off statements are recorded as discarded signals unless they meet the configured support threshold.
- **Redacted evidence**: stored excerpts must remove secrets, tokens, email addresses, and local absolute paths.
- **Proposal before patch**: preference memory can generate proposals, not automatic source edits.
## Allowed Inputs
Recommended inputs are curated JSONL, Markdown, or text files prepared for review. JSONL records should use a field such as `text`, `message`, `content`, `excerpt`, `prompt`, `note`, or `body`.
## Blocked By Default
The scanner refuses common shell history files such as `.zsh_history`, `.bash_history`, and `.fish_history` unless an explicit override is added for a controlled test. Even with an override, the output remains redacted and proposal-only.
## Retention
Generated reports store only summarized patterns and short redacted excerpts. They should not be treated as a full transcript, chat archive, or durable personal memory store.
## Upgrade Path
A future patch-application stage must add:
- human approval ledger;
- allowlisted target files;
- dry-run diffs;
- regression command execution;
- rollback artifacts;
- reviewer-visible audit trail.
+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": "742dc905b0d221c4f336e741d168861edaf7b75e97fe1e89f7d454c1cabf928f"
"package_sha256": "5a99ef3133b0148cd5bbc1cd85fad4830bf34ca2bbac709f1e1fea2f810b1257"
}
]
}
+6 -5
View File
@@ -2,12 +2,13 @@
"schema_version": "2.0",
"name": "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.",
"description": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use for skill creation, reusable workflow packaging, skill improvement, evals, and team-ready distribution.",
"targets": [
"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": "742dc905b0d221c4f336e741d168861edaf7b75e97fe1e89f7d454c1cabf928f",
"archive_sha256": "7bc83805501d24cf8e5932ef76e0454100398d5a73652e7440be47984d0cf4a9"
"package_sha256": "5a99ef3133b0148cd5bbc1cd85fad4830bf34ca2bbac709f1e1fea2f810b1257",
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
},
"compatibility": {
"openai": "pass",
@@ -47,7 +48,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "7bc83805501d24cf8e5932ef76e0454100398d5a73652e7440be47984d0cf4a9",
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
+63
View File
@@ -0,0 +1,63 @@
{
"schema_version": "1.0",
"ok": true,
"generated_at": "2026-06-15T00:00:00Z",
"summary": {
"approval_count": 0,
"active_approval_count": 0,
"pending_review_count": 0,
"applied_count": 0,
"rollback_count": 0
},
"approval_contract": {
"approval_required": true,
"patch_sha256_required": true,
"allowlisted_targets_required": true,
"target_file_sha256_required": true,
"approval_draft_supported": true,
"dry_run_default": true,
"writes_repository_files_only_with_apply": true,
"rollback_required": true
},
"entries": [],
"approval_count": 0,
"active_approval_count": 0,
"pending_review_count": 0,
"applied_count": 0,
"rollback_count": 0,
"approval_required": true,
"patch_sha256_required": true,
"allowlisted_targets_required": true,
"target_file_sha256_required": true,
"approval_draft_supported": true,
"dry_run_default": true,
"writes_repository_files_only_with_apply": true,
"rollback_required": true,
"report_contract": {
"schema_version": "1.0",
"contract": "adaptation-approval-ledger",
"top_level_mirrors_summary": true,
"top_level_mirrors_approval_contract": true,
"summary_fields": [
"approval_count",
"active_approval_count",
"pending_review_count",
"applied_count",
"rollback_count"
],
"approval_contract_fields": [
"approval_required",
"patch_sha256_required",
"allowlisted_targets_required",
"target_file_sha256_required",
"approval_draft_supported",
"dry_run_default",
"writes_repository_files_only_with_apply",
"rollback_required"
],
"source_of_truth": [
"summary",
"approval_contract"
]
}
}
+248
View File
@@ -0,0 +1,248 @@
{
"schema_version": "1.0",
"ok": true,
"generated_at": "2026-06-17T08:58:54Z",
"skill_dir": ".",
"source_patterns": "reports/user_patterns.json",
"pattern_count": 5,
"proposal_count": 5,
"apply_supported": true,
"failure_count": 0,
"proposal_only": true,
"approval_required": true,
"writes_repository_files": false,
"allowlisted_targets_required": true,
"target_file_sha256_required_for_apply": true,
"approval_draft_supported": true,
"rollback_required_for_apply": true,
"apply_command_available": true,
"summary": {
"pattern_count": 5,
"proposal_count": 5,
"apply_supported": true,
"failure_count": 0
},
"proposal_contract": {
"proposal_only": true,
"approval_required": true,
"writes_repository_files": false,
"allowlisted_targets_required": true,
"target_file_sha256_required_for_apply": true,
"approval_draft_supported": true,
"rollback_required_for_apply": true,
"apply_command_available": true
},
"report_contract": {
"schema_version": "1.0",
"contract": "adaptation-proposals",
"top_level_mirrors_summary": true,
"top_level_mirrors_proposal_contract": true,
"summary_fields": [
"pattern_count",
"proposal_count",
"apply_supported",
"failure_count"
],
"proposal_contract_fields": [
"proposal_only",
"approval_required",
"writes_repository_files",
"allowlisted_targets_required",
"target_file_sha256_required_for_apply",
"approval_draft_supported",
"rollback_required_for_apply",
"apply_command_available"
],
"source_of_truth": [
"summary",
"proposal_contract"
]
},
"proposals": [
{
"proposal_id": "adapt-18c7517f3d",
"pattern_id": "language_default",
"title": "Keep reports Chinese-first with optional English",
"change_type": "report-default-language",
"status": "proposal-only",
"requires_approval": true,
"write_allowed_without_approval": false,
"risk_level": "low",
"reason": "2 redacted records matched repeated report-language signals.",
"support_count": 2,
"target_files": [
"scripts/render_skill_overview.py",
"references/artifact-design-doctrine.md"
],
"suggested_changes": [
"Keep user-facing report copy Simplified Chinese by default.",
"Expose English through the existing language switch instead of mixing languages in the default view."
],
"verification_commands": [
"python3 tests/verify_skill_overview.py"
],
"rollback_plan": "Revert report language template changes and rerun the overview verifier.",
"evidence_refs": [
{
"record_id": "line-1",
"excerpt": "新生成的 Skill 报告默认使用中文简体,并在右上角提供英文切换。"
},
{
"record_id": "line-2",
"excerpt": "HTML 报告需要双语能力,但默认内容应该保持中文简体。"
}
]
},
{
"proposal_id": "adapt-fbfe921ba5",
"pattern_id": "report_ui",
"title": "Improve report layout, visual hierarchy, and chart readability",
"change_type": "artifact-ui-polish",
"status": "proposal-only",
"requires_approval": true,
"write_allowed_without_approval": false,
"risk_level": "medium",
"reason": "5 redacted records matched repeated artifact-design signals.",
"support_count": 5,
"target_files": [
"scripts/render_skill_overview.py",
"references/artifact-design-doctrine.md",
"tests/verify_skill_overview.py"
],
"suggested_changes": [
"Prefer vertical narrative sections with limited two-column layouts only when content has enough width.",
"Keep charts inline SVG, with captions and stable responsive constraints."
],
"verification_commands": [
"python3 tests/verify_skill_overview.py",
"python3 tests/verify_skill_report_charts.py"
],
"rollback_plan": "Restore the previous report renderer and regenerate the demo report.",
"evidence_refs": [
{
"record_id": "line-1",
"excerpt": "新生成的 Skill 报告默认使用中文简体,并在右上角提供英文切换。"
},
{
"record_id": "line-2",
"excerpt": "HTML 报告需要双语能力,但默认内容应该保持中文简体。"
},
{
"record_id": "line-3",
"excerpt": "报告排版采用白底 Kami 风格,图表、模块和导航都要清晰。"
}
]
},
{
"proposal_id": "adapt-59d219a1fb",
"pattern_id": "approval_safety",
"title": "Keep adaptive iteration approval-gated",
"change_type": "privacy-governance",
"status": "proposal-only",
"requires_approval": true,
"write_allowed_without_approval": false,
"risk_level": "low",
"reason": "2 redacted records matched repeated governance signals.",
"support_count": 2,
"target_files": [
"references/user-memory-policy.md",
"references/autonomous-adaptation.md",
"schemas/adaptation-proposal.schema.json"
],
"suggested_changes": [
"Require explicit source paths for memory scans.",
"Generate proposals before any source patching.",
"Reserve automatic apply for a future approval ledger and rollback implementation."
],
"verification_commands": [
"python3 tests/verify_adaptation_safety.py"
],
"rollback_plan": "Remove the adaptive proposal artifacts and keep feedback/adoption drift as the only iteration inputs.",
"evidence_refs": [
{
"record_id": "line-5",
"excerpt": "自适应升级必须先生成提案,不能直接自动修改源文件。"
},
{
"record_id": "line-6",
"excerpt": "用户偏好扫描必须由用户提供明确路径,不要默认扫描私人日志。"
}
]
},
{
"proposal_id": "adapt-457baca160",
"pattern_id": "delivery_format",
"title": "Make generated artifact paths explicit in CLI output",
"change_type": "artifact-discoverability",
"status": "proposal-only",
"requires_approval": true,
"write_allowed_without_approval": false,
"risk_level": "low",
"reason": "2 redacted records matched repeated artifact-format signals.",
"support_count": 2,
"target_files": [
"scripts/yao.py",
"README.md"
],
"suggested_changes": [
"Include stable report paths in command output.",
"Document which artifacts are meant for human review."
],
"verification_commands": [
"python3 tests/verify_yao_cli.py"
],
"rollback_plan": "Revert CLI copy/documentation changes and keep artifact paths unchanged.",
"evidence_refs": [
{
"record_id": "line-2",
"excerpt": "HTML 报告需要双语能力,但默认内容应该保持中文简体。"
},
{
"record_id": "line-6",
"excerpt": "用户偏好扫描必须由用户提供明确路径,不要默认扫描私人日志。"
}
]
},
{
"proposal_id": "adapt-abfee25d3a",
"pattern_id": "evidence_testing",
"title": "Attach tests and evidence refresh to each upgrade",
"change_type": "quality-gate",
"status": "proposal-only",
"requires_approval": true,
"write_allowed_without_approval": false,
"risk_level": "medium",
"reason": "2 redacted records matched repeated quality-gate signals.",
"support_count": 2,
"target_files": [
"tests/verify_adaptation_safety.py",
"scripts/render_skill_os2_coverage.py",
"reports/skill_os2_coverage.json"
],
"suggested_changes": [
"Add focused verifier coverage for every new adaptive behavior.",
"Refresh Skill OS 2.0 coverage so planned, partial, and covered states remain visible."
],
"verification_commands": [
"python3 tests/verify_adaptation_safety.py",
"python3 tests/verify_skill_os2_coverage.py"
],
"rollback_plan": "Revert the new verifier and coverage status updates, then regenerate coverage reports.",
"evidence_refs": [
{
"record_id": "line-7",
"excerpt": "每次升级都需要测试、覆盖报告和可审计证据,推送前要跑 CI。"
},
{
"record_id": "line-8",
"excerpt": "涉及 GitHub 推送时,要保留证据链,避免把计划当作完成证明。"
}
]
}
],
"failures": [],
"artifacts": {
"json": "reports/adaptation_proposals.json",
"markdown": "reports/adaptation_proposals.md"
}
}
+119
View File
@@ -0,0 +1,119 @@
# Adaptation Proposals
- Generated at: `2026-06-17T08:58:54Z`
- Pattern report: `reports/user_patterns.json`
- Proposal only: `true`
- Writes repository files: `false`
- Proposals: `5`
## Keep reports Chinese-first with optional English
- ID: `adapt-18c7517f3d`
- Status: `proposal-only`
- Pattern: `language_default`
- Risk: `low`
- Requires approval: `true`
- Reason: 2 redacted records matched repeated report-language signals.
- Target files:
- `scripts/render_skill_overview.py`
- `references/artifact-design-doctrine.md`
- Suggested changes:
- Keep user-facing report copy Simplified Chinese by default.
- Expose English through the existing language switch instead of mixing languages in the default view.
- Verification:
- `python3 tests/verify_skill_overview.py`
- Rollback: Revert report language template changes and rerun the overview verifier.
- Redacted evidence refs:
- `line-1`: 新生成的 Skill 报告默认使用中文简体,并在右上角提供英文切换。
- `line-2`: HTML 报告需要双语能力,但默认内容应该保持中文简体。
## Improve report layout, visual hierarchy, and chart readability
- ID: `adapt-fbfe921ba5`
- Status: `proposal-only`
- Pattern: `report_ui`
- Risk: `medium`
- Requires approval: `true`
- Reason: 5 redacted records matched repeated artifact-design signals.
- Target files:
- `scripts/render_skill_overview.py`
- `references/artifact-design-doctrine.md`
- `tests/verify_skill_overview.py`
- Suggested changes:
- Prefer vertical narrative sections with limited two-column layouts only when content has enough width.
- Keep charts inline SVG, with captions and stable responsive constraints.
- Verification:
- `python3 tests/verify_skill_overview.py`
- `python3 tests/verify_skill_report_charts.py`
- Rollback: Restore the previous report renderer and regenerate the demo report.
- Redacted evidence refs:
- `line-1`: 新生成的 Skill 报告默认使用中文简体,并在右上角提供英文切换。
- `line-2`: HTML 报告需要双语能力,但默认内容应该保持中文简体。
- `line-3`: 报告排版采用白底 Kami 风格,图表、模块和导航都要清晰。
## Keep adaptive iteration approval-gated
- ID: `adapt-59d219a1fb`
- Status: `proposal-only`
- Pattern: `approval_safety`
- Risk: `low`
- Requires approval: `true`
- Reason: 2 redacted records matched repeated governance signals.
- Target files:
- `references/user-memory-policy.md`
- `references/autonomous-adaptation.md`
- `schemas/adaptation-proposal.schema.json`
- Suggested changes:
- Require explicit source paths for memory scans.
- Generate proposals before any source patching.
- Reserve automatic apply for a future approval ledger and rollback implementation.
- Verification:
- `python3 tests/verify_adaptation_safety.py`
- Rollback: Remove the adaptive proposal artifacts and keep feedback/adoption drift as the only iteration inputs.
- Redacted evidence refs:
- `line-5`: 自适应升级必须先生成提案,不能直接自动修改源文件。
- `line-6`: 用户偏好扫描必须由用户提供明确路径,不要默认扫描私人日志。
## Make generated artifact paths explicit in CLI output
- ID: `adapt-457baca160`
- Status: `proposal-only`
- Pattern: `delivery_format`
- Risk: `low`
- Requires approval: `true`
- Reason: 2 redacted records matched repeated artifact-format signals.
- Target files:
- `scripts/yao.py`
- `README.md`
- Suggested changes:
- Include stable report paths in command output.
- Document which artifacts are meant for human review.
- Verification:
- `python3 tests/verify_yao_cli.py`
- Rollback: Revert CLI copy/documentation changes and keep artifact paths unchanged.
- Redacted evidence refs:
- `line-2`: HTML 报告需要双语能力,但默认内容应该保持中文简体。
- `line-6`: 用户偏好扫描必须由用户提供明确路径,不要默认扫描私人日志。
## Attach tests and evidence refresh to each upgrade
- ID: `adapt-abfee25d3a`
- Status: `proposal-only`
- Pattern: `evidence_testing`
- Risk: `medium`
- Requires approval: `true`
- Reason: 2 redacted records matched repeated quality-gate signals.
- Target files:
- `tests/verify_adaptation_safety.py`
- `scripts/render_skill_os2_coverage.py`
- `reports/skill_os2_coverage.json`
- Suggested changes:
- Add focused verifier coverage for every new adaptive behavior.
- Refresh Skill OS 2.0 coverage so planned, partial, and covered states remain visible.
- Verification:
- `python3 tests/verify_adaptation_safety.py`
- `python3 tests/verify_skill_os2_coverage.py`
- Rollback: Revert the new verifier and coverage status updates, then regenerate coverage reports.
- Redacted evidence refs:
- `line-7`: 每次升级都需要测试、覆盖报告和可审计证据,推送前要跑 CI。
- `line-8`: 涉及 GitHub 推送时,要保留证据链,避免把计划当作完成证明。
+87
View File
@@ -0,0 +1,87 @@
{
"schema_version": "1.0",
"ok": true,
"generated_at": "2026-06-15T00:00:00Z",
"skill_dir": ".",
"summary": {
"apply_supported": true,
"attempt_count": 0,
"approval_draft_count": 0,
"applied_count": 0,
"dry_run_count": 0,
"rollback_count": 0,
"regression_run_count": 0,
"regression_pass_count": 0,
"failure_count": 0
},
"apply_contract": {
"approval_required": true,
"patch_sha256_required": true,
"allowlisted_targets_required": true,
"target_file_sha256_required": true,
"approval_draft_supported": true,
"dry_run_default": true,
"writes_repository_files_only_with_apply": true,
"rollback_required": true,
"safe_regression_commands_only": true,
"rollback_on_failure_default": true
},
"attempts": [],
"failures": [],
"artifacts": {
"json": "reports/adaptation_regression_report.json",
"approval_ledger": "reports/adaptation_approval_ledger.json"
},
"apply_supported": true,
"attempt_count": 0,
"approval_draft_count": 0,
"applied_count": 0,
"dry_run_count": 0,
"rollback_count": 0,
"regression_run_count": 0,
"regression_pass_count": 0,
"failure_count": 0,
"approval_required": true,
"patch_sha256_required": true,
"allowlisted_targets_required": true,
"target_file_sha256_required": true,
"approval_draft_supported": true,
"dry_run_default": true,
"writes_repository_files_only_with_apply": true,
"rollback_required": true,
"safe_regression_commands_only": true,
"rollback_on_failure_default": true,
"report_contract": {
"schema_version": "1.0",
"contract": "adaptation-regression-report",
"top_level_mirrors_summary": true,
"top_level_mirrors_apply_contract": true,
"summary_fields": [
"apply_supported",
"attempt_count",
"approval_draft_count",
"applied_count",
"dry_run_count",
"rollback_count",
"regression_run_count",
"regression_pass_count",
"failure_count"
],
"apply_contract_fields": [
"approval_required",
"patch_sha256_required",
"allowlisted_targets_required",
"target_file_sha256_required",
"approval_draft_supported",
"dry_run_default",
"writes_repository_files_only_with_apply",
"rollback_required",
"safe_regression_commands_only",
"rollback_on_failure_default"
],
"source_of_truth": [
"summary",
"apply_contract"
]
}
}
+11
View File
@@ -0,0 +1,11 @@
# Adaptation Regression Report
- generated_at: `2026-06-15T00:00:00Z`
- apply_supported: `true`
- attempts: `0`
- applied: `0`
- dry runs: `0`
- rollbacks: `0`
- failures: `0`
This report proves the adaptive apply harness behavior. It does not count proposals as applied changes.
+21 -13
View File
@@ -1,7 +1,7 @@
{
"ok": true,
"schema_version": "2.0",
"generated_at": "2026-06-13T10:57:52Z",
"generated_at": "2026-06-17T08:58:53Z",
"skill_dir": ".",
"privacy_contract": {
"storage": "local-first",
@@ -25,13 +25,14 @@
},
"summary": {
"event_count": 1,
"activation_count": 1,
"accepted_count": 1,
"adoption_sample_count": 0,
"activation_count": 0,
"accepted_count": 0,
"edited_count": 0,
"rejected_count": 0,
"missed_count": 0,
"failed_count": 0,
"adoption_rate": 100.0,
"adoption_rate": 0,
"missed_trigger_count": 0,
"wrong_trigger_count": 0,
"bad_output_count": 0,
@@ -40,36 +41,43 @@
"review_overdue_count": 0,
"risk_band": "low",
"event_types": {
"skill_activation": 1
"review_event": 1
},
"failure_types": {}
"failure_types": {},
"source_types": {
"manual": 1
},
"command_counts": {}
},
"adoption_by_skill": [
{
"skill": "yao-meta-skill",
"events": 1,
"accepted": 1,
"adoption_events": 0,
"accepted": 0,
"edited": 0,
"rejected": 0,
"missed": 0,
"adoption_rate": 100.0
"adoption_rate": 0
}
],
"next_iteration_candidates": [],
"recent_events": [
{
"event": "skill_activation",
"command": "unknown",
"event": "review_event",
"skill": "yao-meta-skill",
"source": "manual",
"version": "1.1.0",
"activation_type": "explicit",
"outcome": "accepted",
"activation_type": "manual",
"outcome": "reviewed",
"failure_type": "none",
"timestamp": "2026-06-13T10:00:00Z"
"timestamp": "2026-06-13T12:00:00Z"
}
],
"failures": [],
"artifacts": {
"events_jsonl": "tests/tmp_review_studio/telemetry_events.jsonl",
"events_jsonl": "reports/telemetry_events.jsonl",
"json": "reports/adoption_drift_report.json",
"markdown": "reports/adoption_drift_report.md"
}
+7 -6
View File
@@ -5,8 +5,9 @@ Local-first, metadata-only telemetry for skill operations. Raw prompts, outputs,
## Summary
- Events: `1`
- Activation events: `1`
- Adoption rate: `100.0`
- Adoption samples: `0`
- Activation events: `0`
- Adoption rate: `0`
- Missed trigger signals: `0`
- Bad output signals: `0`
- Script error signals: `0`
@@ -22,9 +23,9 @@ Local-first, metadata-only telemetry for skill operations. Raw prompts, outputs,
## Adoption By Skill
| Skill | Events | Accepted | Edited | Rejected | Missed | Adoption Rate |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| `yao-meta-skill` | 1 | 1 | 0 | 0 | 0 | 100.0 |
| Skill | Events | Adoption Samples | Accepted | Edited | Rejected | Missed | Adoption Rate |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| `yao-meta-skill` | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
## Next Iteration Candidates
@@ -32,4 +33,4 @@ Local-first, metadata-only telemetry for skill operations. Raw prompts, outputs,
## Recent Metadata Events
- `2026-06-13T10:00:00Z` `yao-meta-skill` event=`skill_activation` activation=`explicit` outcome=`accepted` failure=`none`
- `2026-06-13T12:00:00Z` `yao-meta-skill` event=`review_event` source=`manual` command=`unknown` activation=`manual` outcome=`reviewed` failure=`none`
+181
View File
@@ -0,0 +1,181 @@
{
"schema_version": "1.0",
"ok": true,
"generated_at": "2026-06-17",
"skill_dir": ".",
"summary": {
"python_file_count": 229,
"script_file_count": 153,
"test_file_count": 76,
"internal_module_count": 69,
"cli_script_count": 86,
"command_handler_count": 68,
"entrypoint_command_handler_count": 18,
"command_module_count": 6,
"warn_line_threshold": 900,
"watch_line_threshold": 720,
"early_watch_line_threshold": 600,
"block_line_threshold": 1500,
"largest_file_lines": 719,
"watchlist_count": 0,
"early_watchlist_count": 6,
"hotspot_count": 0,
"blocker_count": 0,
"decision": "pass"
},
"largest_files": [
{
"path": "tests/verify_evidence_consistency.py",
"lines": 719,
"kind": "test",
"severity": "pass",
"early_watch": true,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "tests/verify_world_class_evidence_intake.py",
"lines": 703,
"kind": "test",
"severity": "pass",
"early_watch": true,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "tests/verify_yao_cli.py",
"lines": 700,
"kind": "test",
"severity": "pass",
"early_watch": true,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "scripts/render_benchmark_reproducibility.py",
"lines": 685,
"kind": "cli-script",
"severity": "pass",
"early_watch": true,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/render_evidence_consistency.py",
"lines": 676,
"kind": "cli-script",
"severity": "pass",
"early_watch": true,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/render_world_class_operator_runbook.py",
"lines": 651,
"kind": "cli-script",
"severity": "pass",
"early_watch": true,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "tests/verify_output_review_adjudication.py",
"lines": 599,
"kind": "test",
"severity": "pass",
"early_watch": false,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "scripts/render_skill_overview.py",
"lines": 588,
"kind": "cli-script",
"severity": "pass",
"early_watch": false,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "tests/verify_world_class_evidence_ledger.py",
"lines": 587,
"kind": "test",
"severity": "pass",
"early_watch": false,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "scripts/build_skill_atlas.py",
"lines": 586,
"kind": "cli-script",
"severity": "pass",
"early_watch": false,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/optimize_description.py",
"lines": 585,
"kind": "cli-script",
"severity": "pass",
"early_watch": false,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/trust_check.py",
"lines": 582,
"kind": "cli-script",
"severity": "pass",
"early_watch": false,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
}
],
"watchlist": [],
"early_watchlist": [
{
"path": "tests/verify_evidence_consistency.py",
"lines": 719,
"kind": "test",
"severity": "pass",
"early_watch": true,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "tests/verify_world_class_evidence_intake.py",
"lines": 703,
"kind": "test",
"severity": "pass",
"early_watch": true,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "tests/verify_yao_cli.py",
"lines": 700,
"kind": "test",
"severity": "pass",
"early_watch": true,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "scripts/render_benchmark_reproducibility.py",
"lines": 685,
"kind": "cli-script",
"severity": "pass",
"early_watch": true,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/render_evidence_consistency.py",
"lines": 676,
"kind": "cli-script",
"severity": "pass",
"early_watch": true,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/render_world_class_operator_runbook.py",
"lines": 651,
"kind": "cli-script",
"severity": "pass",
"early_watch": true,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
}
],
"hotspots": [],
"actions": [],
"artifacts": {
"json": "reports/architecture_maintainability.json",
"markdown": "reports/architecture_maintainability.md"
}
}
+66
View File
@@ -0,0 +1,66 @@
# Architecture Maintainability
Generated at: `2026-06-17`
## Summary
- decision: `pass`
- python files: `229`
- scripts: `153`
- tests: `76`
- internal modules: `69`
- CLI scripts: `86`
- Yao CLI command handlers: `68`
- entrypoint command handlers: `18`
- command modules: `6`
- largest file lines: `719`
- early watch threshold lines: `600`
- early watchlist: `6`
- watch threshold lines: `720`
- watchlist: `0`
- hotspots: `0`
- blockers: `0`
This report keeps maintainability risk visible before the Meta Skill grows more gates, renderers, and CLI commands.
## Hotspots
No file-size hotspots found.
## Watchlist
No near-threshold files found.
## Early Watchlist
| File | Lines | Kind | Recommended next split |
| --- | ---: | --- | --- |
| `tests/verify_evidence_consistency.py` | `719` | `test` | Break broad integration assertions into focused verifier helpers when the next behavior change lands. |
| `tests/verify_world_class_evidence_intake.py` | `703` | `test` | Break broad integration assertions into focused verifier helpers when the next behavior change lands. |
| `tests/verify_yao_cli.py` | `700` | `test` | Break broad integration assertions into focused verifier helpers when the next behavior change lands. |
| `scripts/render_benchmark_reproducibility.py` | `685` | `cli-script` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `scripts/render_evidence_consistency.py` | `676` | `cli-script` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `scripts/render_world_class_operator_runbook.py` | `651` | `cli-script` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
## Largest Files
| File | Lines | Kind | Severity |
| --- | ---: | --- | --- |
| `tests/verify_evidence_consistency.py` | `719` | `test` | `pass` |
| `tests/verify_world_class_evidence_intake.py` | `703` | `test` | `pass` |
| `tests/verify_yao_cli.py` | `700` | `test` | `pass` |
| `scripts/render_benchmark_reproducibility.py` | `685` | `cli-script` | `pass` |
| `scripts/render_evidence_consistency.py` | `676` | `cli-script` | `pass` |
| `scripts/render_world_class_operator_runbook.py` | `651` | `cli-script` | `pass` |
| `tests/verify_output_review_adjudication.py` | `599` | `test` | `pass` |
| `scripts/render_skill_overview.py` | `588` | `cli-script` | `pass` |
| `tests/verify_world_class_evidence_ledger.py` | `587` | `test` | `pass` |
| `scripts/build_skill_atlas.py` | `586` | `cli-script` | `pass` |
| `scripts/optimize_description.py` | `585` | `cli-script` | `pass` |
| `scripts/trust_check.py` | `582` | `cli-script` | `pass` |
## Release Rule
- `block` hotspots should be split before governed release.
- `warn` hotspots can ship only when Review Studio keeps them visible and a reviewer accepts the modularization plan.
- Do not split a file only for line count; split when a stable responsibility boundary is clear.
+45 -40
View File
@@ -2,16 +2,40 @@
"skill_name": "yao-meta-skill",
"design_system": "metric editorial",
"primary_artifact": {
"key": "code_or_cli",
"label": "Code, CLI, or implementation guide",
"direction": "Execution-focused technical artifact with environment assumptions, copyable commands, expected outputs, and side effects made explicit.",
"key": "dashboard",
"label": "Dashboard or metrics page",
"direction": "Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation.",
"matched_keywords": [
"code",
"script",
"command"
"metric",
"score",
"table",
"scorecard"
]
},
"artifact_families": [
{
"key": "dashboard",
"label": "Dashboard or metrics page",
"score": 4,
"matched_keywords": [
"metric",
"score",
"table",
"scorecard"
],
"direction": "Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation."
},
{
"key": "review_viewer",
"label": "Review viewer",
"score": 3,
"matched_keywords": [
"review",
"viewer",
"audit"
],
"direction": "Side-by-side reviewer studio with explicit tradeoffs, evidence readiness, and fast paths for approving, blocking, or requesting one focused fix."
},
{
"key": "code_or_cli",
"label": "Code, CLI, or implementation guide",
@@ -33,25 +57,6 @@
],
"direction": "High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail."
},
{
"key": "review_viewer",
"label": "Review viewer",
"score": 2,
"matched_keywords": [
"review",
"viewer"
],
"direction": "Side-by-side reviewer studio with explicit tradeoffs, evidence readiness, and fast paths for approving, blocking, or requesting one focused fix."
},
{
"key": "dashboard",
"label": "Dashboard or metrics page",
"score": 1,
"matched_keywords": [
"table"
],
"direction": "Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation."
},
{
"key": "visual_capture",
"label": "Screenshot or visual evidence",
@@ -63,14 +68,14 @@
}
],
"layout_patterns": [
"prerequisites",
"commands",
"expected output",
"failure handling",
"rollback or cleanup",
"thesis",
"evidence blocks",
"decision table"
"metric board",
"ranked signals",
"comparison rows",
"interpretation",
"action queue",
"summary",
"variant comparison",
"evidence"
],
"design_tokens": {
"type": [
@@ -95,14 +100,14 @@
]
},
"quality_gates": [
"Name the working directory and required inputs for commands.",
"Mark destructive, networked, or external side-effect operations.",
"Prefer the smallest runnable snippet over broad framework scaffolding.",
"Keep the first screen useful without requiring the reader to parse every detail.",
"Use tables only for comparisons; move explanations below the table.",
"Keep source notes readable without flooding the body with markers.",
"Avoid paragraph-heavy table cells.",
"Keep charts tied to one analytical question each.",
"Preserve stable color meaning across metrics and entities.",
"Make differences visible instead of hiding them in prose.",
"Separate author-facing recommendations from reviewer-only evidence."
"Separate author-facing recommendations from reviewer-only evidence.",
"Surface conflicts clearly and keep routine benchmark synthesis quiet.",
"Name the working directory and required inputs for commands.",
"Mark destructive, networked, or external side-effect operations."
],
"anti_patterns": [
"Do not copy Kami's fixed parchment background as a default.",
+26 -26
View File
@@ -5,12 +5,22 @@ Design system: `metric editorial`
## Primary Artifact Direction
**Code, CLI, or implementation guide**
**Dashboard or metrics page**
Execution-focused technical artifact with environment assumptions, copyable commands, expected outputs, and side effects made explicit.
Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation.
## Matched Artifact Families
### Dashboard or metrics page
- Matched keywords: metric, score, table, scorecard
- Score: `4`
- Direction: Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation.
### Review viewer
- Matched keywords: review, viewer, audit
- Score: `3`
- Direction: Side-by-side reviewer studio with explicit tradeoffs, evidence readiness, and fast paths for approving, blocking, or requesting one focused fix.
### Code, CLI, or implementation guide
- Matched keywords: code, script, command
- Score: `3`
@@ -21,16 +31,6 @@ Execution-focused technical artifact with environment assumptions, copyable comm
- Score: `2`
- Direction: High-trust editorial report with a clear first-screen thesis, compact evidence blocks, and decisions separated from supporting detail.
### Review viewer
- Matched keywords: review, viewer
- Score: `2`
- Direction: Side-by-side reviewer studio with explicit tradeoffs, evidence readiness, and fast paths for approving, blocking, or requesting one focused fix.
### Dashboard or metrics page
- Matched keywords: table
- Score: `1`
- Direction: Metric-first dashboard with stable dimensions, short labels, visible deltas, and narrative callouts only where they change interpretation.
### Screenshot or visual evidence
- Matched keywords: screenshot
- Score: `1`
@@ -38,14 +38,14 @@ Execution-focused technical artifact with environment assumptions, copyable comm
## Layout Patterns To Prefer
- prerequisites
- commands
- expected output
- failure handling
- rollback or cleanup
- thesis
- evidence blocks
- decision table
- metric board
- ranked signals
- comparison rows
- interpretation
- action queue
- summary
- variant comparison
- evidence
## Design Tokens
@@ -71,14 +71,14 @@ Execution-focused technical artifact with environment assumptions, copyable comm
## Quality Gates
- Name the working directory and required inputs for commands.
- Mark destructive, networked, or external side-effect operations.
- Prefer the smallest runnable snippet over broad framework scaffolding.
- Keep the first screen useful without requiring the reader to parse every detail.
- Use tables only for comparisons; move explanations below the table.
- Keep source notes readable without flooding the body with markers.
- Avoid paragraph-heavy table cells.
- Keep charts tied to one analytical question each.
- Preserve stable color meaning across metrics and entities.
- Make differences visible instead of hiding them in prose.
- Separate author-facing recommendations from reviewer-only evidence.
- Surface conflicts clearly and keep routine benchmark synthesis quiet.
- Name the working directory and required inputs for commands.
- Mark destructive, networked, or external side-effect operations.
## Anti-Patterns
+13 -13
View File
@@ -1,10 +1,10 @@
{
"summary": {
"target_count": 3,
"baseline_total_errors": 8,
"current_total_errors": 5,
"winner_total_errors": 5,
"winner_vs_baseline_gain": 3,
"baseline_total_errors": 5,
"current_total_errors": 4,
"winner_total_errors": 4,
"winner_vs_baseline_gain": 1,
"winner_vs_current_gain": 0
},
"comparisons": [
@@ -20,7 +20,7 @@
"adversarial_errors": 0
},
"current": {
"tokens": 65,
"tokens": 53,
"dev_errors": 0,
"holdout_errors": 0,
"blind_errors": 0,
@@ -28,7 +28,7 @@
"adversarial_errors": 0
},
"winner": {
"tokens": 65,
"tokens": 53,
"dev_errors": 0,
"holdout_errors": 0,
"blind_errors": 0,
@@ -79,15 +79,15 @@
"winner_label": "Current",
"baseline": {
"tokens": 93,
"dev_errors": 1,
"holdout_errors": 2,
"blind_errors": 1,
"dev_errors": 0,
"holdout_errors": 1,
"blind_errors": 0,
"judge_blind_errors": 0,
"adversarial_errors": 0
},
"current": {
"tokens": 37,
"dev_errors": 1,
"dev_errors": 0,
"holdout_errors": 1,
"blind_errors": 0,
"judge_blind_errors": 0,
@@ -95,15 +95,15 @@
},
"winner": {
"tokens": 37,
"dev_errors": 1,
"dev_errors": 0,
"holdout_errors": 1,
"blind_errors": 0,
"judge_blind_errors": 0,
"adversarial_errors": 0
},
"delta": {
"current_vs_baseline": 2,
"winner_vs_baseline": 2,
"current_vs_baseline": 0,
"winner_vs_baseline": 0,
"winner_vs_current": 0
}
}

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