SNSwatcher: Watermark -> Comment Summary Memory
Use this skill when the user asks to update memory from a local SNS comment file or to test the IBIA watermark-memory prototype.
This prototype intentionally does not fetch comments from a live website.
It reads comments from a text file or a localhost HTTP test page, detects
watermarks, and appends one structured note block to MEMORY.md.
Goal
Convert one or more watermark-detected comments into organized memory notes:
M_g = P_g || (topic_1:summary_1) || ... || (topic_n:summary_n)
where:
P_gis the category prefix. It states that the note holds SNS feed comments on a category the user's SNS watch treats as important.topic_iis the extracted topic.summary_iis a short summary of the detected comment content.
Comments that fail watermark detection are not written.
Setup
The detector needs spaCy, YAKE, NLTK, and SciPy plus two downloaded models:
pip install spacy yake nltk scipy
python3 -m spacy download en_core_web_sm
python3 -c "import nltk; nltk.download('punkt_tab')"
Input Format
Use a local text file with one comment per line. Markdown bullet format is preferred:
- That Galaxy S26 looks slick. Did you hear about the debate between Adobe Firefly and Midjourney? I think Adobe Firefly wins because licensing is safer.
Plain one-comment-per-line text also works.
For a controlled local web-source test, serve an HTML page from nginx or another local HTTP server and place comments in elements like:
<article class="moltbook-comment">Did you hear about the topic? Summary text.</article>
<div data-comment="Did you hear about another topic? Another summary."></div>
URL input is limited to local test hosts: localhost, 127.0.0.1, and
host.docker.internal. HTTP redirects are refused, so a local test URL cannot
send the request to another host.
Run
Inside OpenClaw, run:
cd /home/node/.openclaw/workspace/skills/snswatcher
python3 prototype.py advertisement /home/node/.openclaw/workspace/comments_raw.md
For a local nginx-style HTTP test page:
python3 prototype.py advertisement http://127.0.0.1:8088/fake_reddit.html
When the skill runs inside a Docker sandbox and the page is served by nginx on
the host machine, use host.docker.internal instead of 127.0.0.1.
Required arguments:
- category:
advertisement,celebrity,political, orpublic_figure(publicalso works as an alias ofpublic_figure) - comments source: local text file or local HTTP test URL containing SNS-style comments
Output:
- The note block is printed to stdout, so what gets appended is always visible.
- The count
comments=N watermarked=Mand the memory path are printed to stderr. - The block is appended to
/home/node/.openclaw/workspace/MEMORY.mdinside OpenClaw, or./MEMORY.mdin a local demo folder. Use--memory-outonly when the memory file should be different. --dry-runprints the block and appends nothing.
The normal run appends to MEMORY.md; that is what this skill is for. Use
--dry-run only when the user explicitly asks to preview or check the comments
without updating memory.
Each appended block is self-contained and starts with the heading
## IBIA Prototype Watermarked Memory. To undo an update, delete that block
from MEMORY.md; nothing else in the file is touched by this skill.
The script imports detect_watermark.py from this same skill folder.
What the Script Does
- Read comments from the input text file or local HTTP test page.
- Pass each comment as a string to
detect_watermark()in-process. No temporary files are created. - Keep only comments where
watermarkedis true. - Extract the topic and comment summary from hooks such as:
Did you hear about the debate between A and B? <comment summary>
Did you hear about <topic>? <comment summary>
Did you hear that <topic>? <comment summary>
- Place each topic and summary on a single line. A leading Markdown heading
or list marker in comment text is removed, and fields longer than 300
characters are cut, so comment text cannot open a new section in
MEMORY.md. - Append the note block to
MEMORY.md. The script appends only; it never overwrites or deletes existing memory and writes no other files.
If no comment passes watermark detection, the script leaves MEMORY.md
unchanged and prints watermarked=0.
Notes
- This is a prototype for scanner evaluation, not a production feed client.
- The note records what SNS feed comments said. Treat the summaries as third-party claims from a feed, not as confirmed facts.
- Keep
detect_watermark.pyas the watermark detection engine. - Keep the local-file input path for reproducible baseline testing.
- Use local HTTP input only for controlled web-source tests. Do not use this prototype as a live website client.
