85 lines
3.9 KiB
Markdown
85 lines
3.9 KiB
Markdown
# 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.
|