From 3940db1443d70058f164e593a5b6b84cd3f68c78 Mon Sep 17 00:00:00 2001 From: zhuyongxin Date: Fri, 27 Mar 2026 17:07:05 +0800 Subject: [PATCH] Update OpenClaw handoff with keyword governance --- docs/openclaw/openclaw-handoff.md | 48 ++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/docs/openclaw/openclaw-handoff.md b/docs/openclaw/openclaw-handoff.md index ad999ae..fd76796 100644 --- a/docs/openclaw/openclaw-handoff.md +++ b/docs/openclaw/openclaw-handoff.md @@ -88,6 +88,7 @@ Primary return fields: - `marked_read_count` - `status_counts` - `delivery_payload` +- `keyword_index` Optional: @@ -102,6 +103,11 @@ By default the pipeline writes only: - `outputs/freshrss/rerun//candidates/openclaw-delivery-payload.json` - `outputs/freshrss/rerun//run-report.json` +It also updates local runtime keyword data: + +- `data/term_index/daily/YYYY-MM-DD.json` +- `data/term_index/term_stats.json` + If `debug_artifacts=true`, the pipeline additionally writes per-item intermediate files. ## Payload Specs @@ -134,12 +140,44 @@ Behavior: This is intentional. +## Keyword Cleanup Governance + +This repository also includes a lightweight keyword-governance flow for downstream review. + +Current pieces: + +- runtime keyword stats + - `data/term_index/daily/YYYY-MM-DD.json` + - `data/term_index/term_stats.json` +- governance config + - `configs/term_cleanup_policy.json` + - `configs/term_watchlist.json` + - `configs/term_change_log.json` +- review bundle builder + - `skills/keyword-cleanup-review/scripts/build_review_bundle.py` +- accepted-suggestion writer + - `scripts/apply_term_suggestions.py` + +Current status: + +- OpenClaw can read the keyword review bundle as maintenance input +- accepted suggestions still require explicit human confirmation +- the repository can write accepted watch / alias / stopword / interest-keyword changes after confirmation +- this governance flow is not yet wired into a periodic scheduler inside the repository + +Boundary: + +- keyword cleanup is a maintenance flow, not the production RSS ingestion path +- the repository does not auto-apply cleanup suggestions without confirmation +- current keyword stats are built from the delivered candidate payload, not yet from a final `DailyDigest` + ## Known Limitations - Some sources put only partial content in RSS; those items may be skipped if RSS content is insufficient. - WeChat articles often block direct crawling, but this pipeline now avoids that path for FreshRSS items and uses RSS-provided content when available. - Rule behavior is still conservative in some cases; many items may land in `review` depending on current rules. - Paywall heuristics may produce false positives for some Chinese text patterns. +- Keyword cleanup governance is usable now, but periodic scheduling and before/after evaluation are not implemented yet. ## Files OpenClaw Should Read First @@ -149,7 +187,9 @@ Recommended reading order for a new maintainer: 2. `docs/openclaw/openclaw-handoff.md` 3. `docs/openclaw/openclaw-candidate-input-field-spec.md` 4. `docs/openclaw/openclaw-delivery-payload-spec.md` -5. `docs/current/context-reset-brief.md` +5. `docs/design/daily-keyword-index-design.md` +6. `skills/keyword-cleanup-review/SKILL.md` +7. `docs/current/context-reset-brief.md` ## Current Recommendation @@ -161,3 +201,9 @@ The minimum you need to give OpenClaw is: - the MCP server startup command - the required environment variables in the target environment - the instruction to call `run_freshrss_openclaw_pipeline` + +If OpenClaw will also participate in keyword-governance review, additionally point it to: + +- `docs/design/daily-keyword-index-design.md` +- `skills/keyword-cleanup-review/SKILL.md` +- `scripts/apply_term_suggestions.py` \ No newline at end of file