# Skill Inventory This library migrates Zhihu browser capability descriptions from the remote source repository: - Repo: `https://gitea.fljx.top/admin/skill-lib` - Source modules: `src/skill/*.rs` - Source resources: `resources/skills/*.json` ## Migration Targets | Target skill | Current remote capability | Source modules | Source resources | | --- | --- | --- | --- | | `zhihu-navigate` | `zhihu_navigate` | `src/skill/zhihu_navigation.rs` | `resources/skills/zhihu_navigation_pages.json` | | `zhihu-write` | `zhihu_write` | `src/skill/zhihu.rs` | `resources/skills/zhihu_write_flow.json` | | `zhihu-hotlist` | `zhihu_hotlist_collect` + `zhihu_hotlist_report` | `src/skill/zhihu_hotlist.rs`, `src/skill/zhihu_hotlist_store.rs` | `resources/skills/zhihu_hotlist_flow.json` | | `zhihu-hotlist-screen` | downstream leadership/demo presentation flow derived from hotlist artifact | local downstream skill only | local template asset | | `office-export-xlsx` | downstream Office export flow derived from structured artifact | local downstream skill only | local export-flow reference | ## Explicit Non-Goals This migration does not port: - Rust router dispatch from `src/skill/router.rs` - Browser pipe transport and runtime execution code - Snapshot persistence implementation details as executable code The new repository is a skill library, not a Rust runtime. ## Source Notes Per Skill ### zhihu-navigate - Source module: `src/skill/zhihu_navigation.rs` - Source catalog: `resources/skills/zhihu_navigation_pages.json` - Current model: route/component/flow/target - Observed scope: `13` routes, `53` components, `16` flows, `69` targets - Important risks: - natural-language alias routing drops ambiguous matches instead of explaining them - confirmed alias collisions: `关注分栏`, `回答排序菜单` - some selectors are stable (`href`, `aria-label`, `data-testid`), but some remain brittle or overly generic ### zhihu-write - Source module: `src/skill/zhihu.rs` - Source flow: `resources/skills/zhihu_write_flow.json` - Current model: JSON-driven browser action sequence - Important risks: - publish flow depends on brittle selectors and placeholder text - successful publish depends on URL capture plus title verification - article publishing should require an explicit human confirmation gate in skill form ### zhihu-hotlist - Source modules: - `src/skill/zhihu_hotlist.rs` - `src/skill/zhihu_hotlist_store.rs` - Source flow: `resources/skills/zhihu_hotlist_flow.json` - Current model: collect hotlist page, scrape detail comments, aggregate counts, persist snapshot, render report - Important risks: - comment collection can partially fail while the run still returns success - data completeness depends on current page DOM and comment visibility - reports need explicit caution language when metrics are partial or missing - extraction quality collapses if the packaged script depends on one stale DOM classname family ### zhihu-hotlist-screen - Current model: downstream-only dashboard rendering from collected rows - Important risks: - downstream skill may accidentally recollect browser data if its boundary is not explicit - presentation skill must preserve partial-data status from upstream artifact ### office-export-xlsx - Current model: downstream-only `.xlsx` export from structured rows - Important risks: - export skill may hide upstream partial-data status if the artifact contract is weak - Office export must not pull browser data directly ## Authoring Lessons From Live Browser Verification - Structured browser tasks need packaged deterministic scripts, not prose-only guidance. - Browser scripts should prefer stable data sources, then broader DOM candidates, then controlled text fallback. - Login/captcha/blocked pages must be surfaced as explicit failure states. - Once the primary artifact is stable, downstream skills should consume it and stop browser wandering.