50 lines
1.4 KiB
Markdown
50 lines
1.4 KiB
Markdown
# Publish Safety
|
||
|
||
Publishing is the highest-risk action in this skill. Treat it as a gated operation.
|
||
|
||
## Mandatory Safety Rules
|
||
|
||
- Do not publish without explicit human confirmation in the current conversation.
|
||
- Do not assume `publish: true` in an old request still reflects the user’s latest intent.
|
||
- Do not treat a successful click as proof of publication.
|
||
|
||
## What Must Be Verified
|
||
|
||
At least one of these post-publish checks should succeed:
|
||
|
||
- the final URL is a published Zhihu article URL
|
||
- the visible page title matches the requested article title
|
||
|
||
If both checks fail, report the run as unconfirmed.
|
||
|
||
## Failure Cases
|
||
|
||
### Title verification fails
|
||
|
||
- Stop.
|
||
- Report the expected title and the observed title.
|
||
- Do not claim the article was published correctly.
|
||
|
||
### URL remains in edit mode
|
||
|
||
- Treat the result as draft or unconfirmed publish.
|
||
- Report that the browser stayed on an editor-style URL.
|
||
- Ask for manual review before any retry.
|
||
|
||
### Publish dialog does not appear
|
||
|
||
- Do not retry blindly on generic primary buttons.
|
||
- Report that the dialog selector failed.
|
||
- Revalidate selectors and page state first.
|
||
|
||
## Brittle Selectors To Revalidate First
|
||
|
||
- `div.css-1q62b6s > div.css-byu4by`
|
||
- `textarea[placeholder='请输入标题(最多 100 个字)']`
|
||
- `button.Button--primary.Button--blue`
|
||
- `div[role='dialog'] button.Button--primary.Button--blue`
|
||
- `h1`
|
||
|
||
These are usable as source references, but not trustworthy forever.
|
||
|