Mention/keyword sweep on social platforms for [REPLACE: KEYWORDS] — trends, sentiment, top posts
中文简介正在准备中。当前显示原文说明。
Promote important recent log entries into MEMORY.md and prune stale ones
中文简介正在准备中。当前显示原文说明。
安装前可以查看交给 AI 代理的指令内容。
${var} - Topic to focus on. If empty, flushes all recent activity.
If ${var} is set, only promote entries related to that topic. Pruning (step 3), the index upkeep (step 6), and the deterministic watermark + rotation (steps 0 and 8) still run globally - a focused flush must never leave the rest of the store stale.
Read memory/MEMORY.md for current memory state. The scan window and log rotation are computed for you in step 0 - you no longer parse the watermark or rotate logs by hand.
Run python3 scripts/memory_prep.py window and read its stdout. It:
memory/memory-flush-state.json (fallback for a first-run migration: the MEMORY.md *Last consolidated:* line; then the last 3 days; a gap over 14 days is clamped to 14 and flagged), and prints the exact in-window log files to read;memory/logs/ into memory/logs/archive/YYYY-MM.md (content-preserving) once the directory passed ~45 files.MEMORY.md size (bytes, lines, over-long lines) against the budget step 3e holds.Read exactly the files it lists. Do not recompute the window or rotate logs yourself - that work is now deterministic and unit-tested (scripts/memory_prep.py), so it never silently falls back to 3 days or gets skipped. This closed two old holes: entries older than 3 days were lost whenever the agent skipped runs, and a daily schedule re-scanned the same 3 days every time.
Skip if already recorded. Dedup by the fact's subject, not by string match:
python3 scripts/memory_prep.py source <ref> for each side that carries a [source: ...] tag (it prints that log section, from memory/logs/ or the monthly archive). Keep what the log actually says. The newer statement wins only when the sources do not settle it; a sourced entry beats an untagged one. Do not drop the old fact silently: if history matters, say so in the entry ("moved to X in Oct, was Y").a. Open Improvement PRs section: Run gh pr list --state open --search "improve:" --json number,title,url and compare against any "Open Improvement PRs" section in MEMORY.md.
memory/topics/<section>-history.md (e.g. skills-history.md) and leave a one-line pointer to that file. Trim newest-kept, oldest-archived.
e. Hold the byte budget (MEMORY.md loads into every skill run, so size is cost): step 0 prints MEMORY.md size against the budget of 8 KB, ~50 lines, no line over 300 chars, and lists the over-long lines by number. When it says OVER BUDGET or names long lines, cut those first: move the detail of a long bullet to its topic file (memory/topics/lessons.md for Lessons Learned, memory/topics/priorities.md for Next Priorities, or the matching topic) and keep a one-line summary with a pointer in MEMORY.md. Keep the [source: ...] tag with the detail you move. A flush that leaves MEMORY.md over budget must say so in its log entry.memory/topics/<topic>.md instead (see step 6 - register it in the index).[source: logs/YYYY-MM-DD#<skill>]: the log file's date and the ### <skill> heading the entry sat under. For a table row, put the tag at the end of the last cell. When you merge new detail into an existing line, replace its tag with the newer source. Never invent a source, and do not backfill tags on untouched legacy lines. The tag is what lets a later flush (or the operator) check a fact and trace a bad entry back to the run that wrote it.## Heading already exists anywhere in MEMORY.md - if it does, update that section in place. Never prepend a duplicate heading.memory_prep.py stamp), which writes the structured watermark memory/memory-flush-state.json (the source of truth) and mirrors it into the MEMORY.md *Last consolidated:* line. Skipping step 8 after a real flush is a bug - other skills (e.g. action-converter) read that line to tell a live, consolidated store from an untouched template.Do NOT rewrite the whole file - make targeted additions and removals.
If step 4 created a new memory/topics/<topic>.md (or a *-history.md archive in step 3d), add a one-line pointer to it under the # Reference section of memory/topics/index.md, matching the existing row format. New topic notes that aren't linked from the index become orphans no other run can find.
Log rotation now runs deterministically in step 0 (memory_prep.py window): whole calendar months entirely older than the 14-day scan floor are appended to memory/logs/archive/YYYY-MM.md and git rm'd once memory/logs/ passes ~45 files. The archive preserves every line, respecting the append-only contract while bounding the file count. Nothing to do here by hand; a log inside the scan window is never touched.
Log what you promoted, pruned, and archived, plus the scan window you used (start date to today; note if a >14-day gap was clamped), to memory/logs/${today}.md as bullets under a ### memory-flush heading (the health loop keys entries by slug).
Then run python3 scripts/memory_prep.py stamp as your final action - it writes today's date to memory/memory-flush-state.json and mirrors it into the MEMORY.md *Last consolidated:* line.
If nothing was worth promoting or removing, log MEMORY_FLUSH_OK - but still run memory_prep.py stamp: a clean flush is still a consolidation and must advance the watermark.
gh pr list uses the gh CLI's built-in auth - no curl env-var expansion. python3 scripts/memory_prep.py and all other work is local file I/O against memory/ (plus git rm for log rotation).
memory/topics/.## Heading or an existing fact - update in place.scripts/memory_prep.py (steps 0 and 8), not by hand. The model's job is judgment: what to promote, dedup, and prune.memory_prep.py idle: when no daily log changed since the last flush (fingerprints written by stamp, ignoring this skill's own entries and the "under the hood" footers) and that flush is under 7 days old, the run is skipped and recorded as a success. That is why step 8's stamp must run on every real flush, a clean one included.self-improve) may flag memory-hygiene problems, but structural pruning and archiving of MEMORY.md should land here to avoid two skills thrashing the same file. If self-improve prunes in an audit, treat it as a stopgap, not a reason to skip the next flush.还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Mention/keyword sweep on social platforms for [REPLACE: KEYWORDS] — trends, sentiment, top posts
中文简介正在准备中。当前显示原文说明。
Digest of the most interesting new posts on [REPLACE: TOPIC] from RSS feeds and the open web
中文简介正在准备中。当前显示原文说明。
First-touch review of newly opened PRs on [REPLACE: WATCHED_REPO] — verdict + welcoming comment + label
中文简介正在准备中。当前显示原文说明。
Watch Vercel deploys for [REPLACE: VERCEL_PROJECT] — alert on [REPLACE: ALERT_ON] in the last [REPLACE: LOOKBACK_HOURS] hours
中文简介正在准备中。当前显示原文说明。
Summary of the [REPLACE: CHANNEL_PLATFORM] channel [REPLACE: CHANNEL_NAME] — top [REPLACE: TOP_N_THREADS] threads + open questions
中文简介正在准备中。当前显示原文说明。
Price and volume tracker for [REPLACE: TOKEN_SYMBOL] with anomaly alerts above [REPLACE: ALERT_THRESHOLD_PCT]% movement
中文简介正在准备中。当前显示原文说明。