docs: refine reader digest flow public/internal rules
This commit is contained in:
@@ -36,6 +36,7 @@ In the `reader` project, run the FreshRSS pipeline and obtain a real payload.
|
|||||||
Minimum expected artifacts:
|
Minimum expected artifacts:
|
||||||
|
|
||||||
- `outputs/freshrss/rerun/<run-id>/candidates/openclaw-delivery-payload.json`
|
- `outputs/freshrss/rerun/<run-id>/candidates/openclaw-delivery-payload.json`
|
||||||
|
- `outputs/freshrss/rerun/<run-id>/candidates/digest-brief.json`(public digest 优先读取的轻量输入,仅包含 `keep` 候选)
|
||||||
- `outputs/freshrss/rerun/<run-id>/run-report.json`
|
- `outputs/freshrss/rerun/<run-id>/run-report.json`
|
||||||
- extracted article data, such as:
|
- extracted article data, such as:
|
||||||
- `outputs/freshrss/extracted/freshrss.extracted.json`
|
- `outputs/freshrss/extracted/freshrss.extracted.json`
|
||||||
@@ -44,10 +45,13 @@ If the pipeline fails, stop and report the exact failure point.
|
|||||||
|
|
||||||
### Phase 2: Generate daily digest markdown
|
### Phase 2: Generate daily digest markdown
|
||||||
|
|
||||||
Read the real payload and generate digest markdown for the day.
|
Read the real run outputs and generate digest markdown for the day.
|
||||||
If there is no real payload, stop instead of writing a fake or example digest.
|
If there is no real payload, stop instead of writing a fake or example digest.
|
||||||
|
|
||||||
Produce two output views from the same payload:
|
For **public digest**, prefer `candidates/digest-brief.json` when present; fall back to `candidates/openclaw-delivery-payload.json` only if the brief file is missing.
|
||||||
|
For **internal review digest**, continue reading the full `candidates/openclaw-delivery-payload.json`.
|
||||||
|
|
||||||
|
Produce two output views from the same run, preferably in **one generation step**:
|
||||||
|
|
||||||
1. **Public digest** — for Hugo / public browsing
|
1. **Public digest** — for Hugo / public browsing
|
||||||
2. **Internal review digest** — for chat reporting and operator decisions
|
2. **Internal review digest** — for chat reporting and operator decisions
|
||||||
@@ -67,6 +71,15 @@ Recommended **public digest** structure:
|
|||||||
- `延伸阅读`
|
- `延伸阅读`
|
||||||
- `信息来源`
|
- `信息来源`
|
||||||
|
|
||||||
|
Public digest writing rules:
|
||||||
|
|
||||||
|
- Use `digest-brief.json` as the default source when available.
|
||||||
|
- Treat it as a public-only view that already excludes non-keep items.
|
||||||
|
- Keep the tone suitable for public browsing and Hugo publishing.
|
||||||
|
- Do **not** expose internal workflow labels or operator language such as `待确认`, `建议沉淀到 IMA`, `keep/review/drop`, or `selection_decision`.
|
||||||
|
- Prefer concise but information-dense writing.
|
||||||
|
- For each item under `今日重点`, include not only summary and highlights, but also one short editor-style value sentence, for example: `这篇内容更值得关注的原因在于……`.
|
||||||
|
|
||||||
Recommended **internal review digest** structure:
|
Recommended **internal review digest** structure:
|
||||||
|
|
||||||
- `今日候选概况`
|
- `今日候选概况`
|
||||||
@@ -75,6 +88,28 @@ Recommended **internal review digest** structure:
|
|||||||
- `建议沉淀到 IMA`
|
- `建议沉淀到 IMA`
|
||||||
- `原始候选清单`
|
- `原始候选清单`
|
||||||
|
|
||||||
|
Internal review digest writing rules:
|
||||||
|
|
||||||
|
- Use the full `openclaw-delivery-payload.json`.
|
||||||
|
- Keep this as a human-readable review draft rather than a raw machine dump.
|
||||||
|
- Do **not** display `rank` values.
|
||||||
|
- Convert machine states to Chinese operator-facing labels:
|
||||||
|
- `keep` → `已入选`
|
||||||
|
- `review` → `待确认`
|
||||||
|
- `drop` → `暂不纳入`
|
||||||
|
- For every item under `已入选重点`, include:
|
||||||
|
- title + source
|
||||||
|
- status
|
||||||
|
- a fuller summary paragraph
|
||||||
|
- a short judgment paragraph explaining why it matters in today's digest
|
||||||
|
- For every item under `待你确认`, include:
|
||||||
|
- title + source
|
||||||
|
- status
|
||||||
|
- a fuller summary paragraph
|
||||||
|
- reason
|
||||||
|
- recommendation
|
||||||
|
- In `原始候选清单`, also use Chinese status labels instead of raw machine values.
|
||||||
|
|
||||||
### Phase 3: Publish to Hugo
|
### Phase 3: Publish to Hugo
|
||||||
|
|
||||||
Publish only the public digest to Hugo and verify:
|
Publish only the public digest to Hugo and verify:
|
||||||
|
|||||||
@@ -56,17 +56,35 @@ Typical artifacts to inspect after a successful run:
|
|||||||
|
|
||||||
```text
|
```text
|
||||||
outputs/freshrss/rerun/<run-id>/candidates/openclaw-delivery-payload.json
|
outputs/freshrss/rerun/<run-id>/candidates/openclaw-delivery-payload.json
|
||||||
|
outputs/freshrss/rerun/<run-id>/candidates/digest-brief.json
|
||||||
outputs/freshrss/rerun/<run-id>/run-report.json
|
outputs/freshrss/rerun/<run-id>/run-report.json
|
||||||
outputs/freshrss/rerun/<run-id>/extracted/item-XX.extracted.json
|
outputs/freshrss/rerun/<run-id>/extracted/item-XX.extracted.json
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
|
||||||
|
- `digest-brief.json` is the preferred input for **public digest** generation.
|
||||||
|
- It is a lighter public-only view and currently includes only `keep` candidates.
|
||||||
|
- If `digest-brief.json` is missing, fall back to `openclaw-delivery-payload.json`.
|
||||||
|
|
||||||
### 2. Generate digest markdown
|
### 2. Generate digest markdown
|
||||||
|
|
||||||
Generate two output views from the same payload:
|
Generate two output views from the same run, preferably in one model call:
|
||||||
|
|
||||||
1. a **public digest** for Hugo / public readers
|
1. a **public digest** for Hugo / public readers
|
||||||
2. an **internal review digest** for chat / operator workflow
|
2. an **internal review digest** for chat / operator workflow
|
||||||
|
|
||||||
|
Input preference:
|
||||||
|
|
||||||
|
- **public digest**: prefer `candidates/digest-brief.json`
|
||||||
|
- **internal review digest**: use `candidates/openclaw-delivery-payload.json`
|
||||||
|
|
||||||
|
Recommended generation pattern:
|
||||||
|
|
||||||
|
- Pass the public brief and the full payload as two explicitly labeled input blocks.
|
||||||
|
- Ask the model to return both outputs in one response.
|
||||||
|
- Prefer a structured response shape (for example JSON with `public_digest_markdown` and `internal_review_digest_markdown`) when post-processing is needed.
|
||||||
|
|
||||||
Write only the public digest into Hugo here:
|
Write only the public digest into Hugo here:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
@@ -91,6 +109,13 @@ Recommended **public digest** structure:
|
|||||||
- `延伸阅读`
|
- `延伸阅读`
|
||||||
- `信息来源`
|
- `信息来源`
|
||||||
|
|
||||||
|
Public digest constraints:
|
||||||
|
|
||||||
|
- Use only the public brief view when present.
|
||||||
|
- Keep public wording free of internal workflow language.
|
||||||
|
- Optimize for concise public readability with solid information density.
|
||||||
|
- For each `今日重点` item, add one short editor-style sentence explaining why the item matters in today's digest (for example: `这篇内容更值得关注的原因在于……`).
|
||||||
|
|
||||||
Recommended **internal review digest** structure:
|
Recommended **internal review digest** structure:
|
||||||
|
|
||||||
- `今日候选概况`
|
- `今日候选概况`
|
||||||
@@ -99,6 +124,14 @@ Recommended **internal review digest** structure:
|
|||||||
- `建议沉淀到 IMA`
|
- `建议沉淀到 IMA`
|
||||||
- `原始候选清单`
|
- `原始候选清单`
|
||||||
|
|
||||||
|
Internal review digest constraints:
|
||||||
|
|
||||||
|
- Do not show `rank` values.
|
||||||
|
- Replace machine states with Chinese labels such as `已入选` / `待确认` / `暂不纳入`.
|
||||||
|
- For `已入选重点`, include a fuller summary plus a short judgment paragraph.
|
||||||
|
- For `待你确认`, include a fuller summary, reason, and recommendation.
|
||||||
|
- Keep it readable as an operator review draft, not a raw payload dump.
|
||||||
|
|
||||||
### 3. Publish Hugo
|
### 3. Publish Hugo
|
||||||
|
|
||||||
Publish only the public digest to Hugo.
|
Publish only the public digest to Hugo.
|
||||||
|
|||||||
Reference in New Issue
Block a user