Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Tests

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest pytest-mock pytest-xdist pyyaml python-dotenv

- name: Run tests
run: python -m pytest tests/ -v --tb=short

- name: Upload coverage
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results
path: .pytest_cache/
retention-days: 7
43 changes: 40 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,12 +137,49 @@ See `digest_config_TEMPLATE.yaml` for the full reference.
dream-session-digest/
├── SKILL.md ← technical skill reference
├── README.md ← this file
├── session_digest.py ← main digest script
├── fetch_github_evidence.py ← GitHub evidence scanner
├── DIGEST.md ← feature spec (source of truth)
├── session_digest.py ← main digest script (symlinked to ~/.hermes/scripts/)
├── fetch_github_evidence.py ← GitHub evidence scanner
├── review_addendum.py ← Feature A: review dialog + addendum builder
├── review_questions.py ← Feature A: question generation
├── forward_links.py ← Feature B: "Where This Leads" section builder
├── insight_store.py ← Feature B: digest_insights.yaml (threaded insights)
├── blog_post_editor.py ← Features A+C: blog post editing + deep-dive promotion
├── media_queue.py ← Feature D: media queue + markdown embed
├── digest_config_TEMPLATE.yaml ← annotated config template
└── .gitignore
├── tests/ ← TDD test suite (102 tests)
│ ├── unit/
│ ├── integration/
│ └── regression/
└── .github/workflows/test.yml ← CI (runs pytest on push + PR)
```

## New Features (v5)

### Review Addendum (Feature A, §2)
Human-in-the-loop review dialog — triggered via Telegram ("review today") or CLI (`--review`).

```bash
# Step 1: generate review questions
python3 session_digest.py --review 2026-04-23

# Step 2: provide numbered answers
python3 session_digest.py --review 2026-04-23 --answers '[1] completed vDEX bot; [4] monitor 24h'
```

Appends `## Review Addendum — reviewed-v1` to the blog post and sets `reviewed: true` in front matter.

### Where This Leads (Feature B, §3)
Trigger with "where this leads" in any session. Builds a `## Where This Leads` section with contextual links (GitHub issues/PRs/commits), threaded insights from `digest_insights.yaml`, and future anchors (TODO items + follow-ups).

Insights appearing in ≥3 digests are flagged `standalone_candidate` and prompted for deep-dive promotion.

### Deep-Dive Promotion (Feature C, §4)
Insights can be promoted to standalone blog posts. Front matter: `title`, `date`, `tags: [deep-dive, ...]`, `digest_sources: [...]`, `layout: post`.

### Media Queue (Feature D, §5.8)
Send images (PNG/JPG/WebP) or video (MP4/WebM) from Telegram with a caption. Files are committed to `assets/media/YYYY-MM-DD/` in the blog repo and embedded as markdown images in the post.

## License

MIT — see [BuildWithDreams](https://github.com/BuildWithDreams) organization.
40 changes: 39 additions & 1 deletion SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: dream-session-digest
description: Venice-powered nightly session digest for Hermes CLI — clusters similar sessions, generates blog-style summaries, emails via himalaya, and publishes Jekyll posts to dream-blog with GitHub evidence links.
version: 4.0.0
version: 5.0.0
tags: [hermes, session, digest, blog, jekyll, venice-ai, github]
related_skills: []
---
Expand Down Expand Up @@ -41,6 +41,44 @@ python3 session_digest.py 2026-04-22

# Date range
python3 session_digest.py 2026-04-01 2026-04-22

# Review a digest (Feature A)
# Step 1 — generate questions:
python3 session_digest.py --review 2026-04-23
# Step 2 — provide answers:
python3 session_digest.py --review 2026-04-23 --answers '[1] answer; [4] follow-up'
```

## New Features (v5)

### Feature A — Review Addendum (§2)
Trigger with "review today" or "review digest for YYYY-MM-DD" in Telegram, or `--review` CLI flag. Generates Q&A questions about the session, collects answers, and appends a `## Review Addendum — reviewed-v1` block to the blog post with `reviewed: true` in front matter.

```bash
# Telegram:
/review digest for 2026-04-23

# CLI:
python3 session_digest.py --review 2026-04-23
```

### Feature B — Where This Leads (§3)
Trigger with "where this leads" in any session. Builds a `## Where This Leads` section with three sub-sections:
- **Contextual Links** — GitHub issues/PRs/commits and external URLs extracted from the session
- **Threaded Insights** — cross-digest insights tracked in `digest_insights.yaml`
- **Future Anchors** — TODO items, follow-ups, deferred decisions

Insights with ≥3 digest references are flagged `standalone_candidate` and can be promoted to deep-dive posts.

### Feature C — Deep-Dive Promotion (§4)
Insights accumulated over multiple digests can be promoted to standalone blog posts via review questionnaire. Blog post front matter includes `digest_sources` referencing all contributing dates.

### Feature D — Media Queue (§5.8)
Queue PNG/JPG/WebP/MP4/WebM files from Telegram for the next digest run. Files are committed to `assets/media/YYYY-MM-DD/` in the blog repo and embedded as markdown images in the post.

```bash
# In Telegram, send an image with a caption
# It is queued and embedded on next digest run
```

## Config System
Expand Down
Loading
Loading