Read and write Excel workbooks, worksheets, ranges, tables, and charts in OneDrive through Microsoft Graph with managed OAuth.
Memory
Skill Sediment
Try itInstall and operate the OpenClaw skill-sediment plugin extension (turns successful conversations into auto-generated SKILL.md files, then promotes them to sk...
What it does
- **Author**: Evan Song - **Repository**: https://github.com/Songhonglei/build-better-skills - **License**: MIT — see LICENSE - **Version**: 1.0.2
The skill document
- Author: Evan Song
- Repository: https://github.com/Songhonglei/build-better-skills
- License: MIT — see LICENSE
- Version: 1.0.2
skill-sediment
One-shot installer for the OpenClaw skill-sediment plugin extension — auto-distill
successful conversation workflows into SKILL.md files, then promote them to skills/.
Core Facts
- What is being ported: an OpenClaw plugin extension (not an MCP, not a standalone service) that listens to conversations and writes successful workflows as SKILL.md.
- The plugin is ≈340KB of pure TypeScript source (9 files), depending only on
OpenClaw core's built-in
plugin-sdk+typebox. - No embedding model required — sediment uses LLM semantic judgement, not vector retrieval.
- The plugin source is already embedded in
assets/plugin-source/(flat directory of 9 TypeScript files +package.json+openclaw.plugin.json) — offline install works out of the box. A legacy.tar.gzfallback path is also supported for backward compatibility.
Quick Install
cd
python3 scripts/manage.py install
# Then follow the prompt to manually restart: openclaw gateway restart
# Verify after restart: python3 scripts/manage.py doctor
In most cases plugins.allow is empty, so the plugin loads automatically from the
convention directory — no config change required, just restart.
--valid-agent-id is only needed when restricting which agents get sediment enabled
(comma-separated, e.g. main,debp; defaults to main).
Subcommands
| Command | Purpose |
|---|---|
install | Full install: env check → deploy plugin to convention dir → interactive agent selection → allow-empty auto-load / allow-nonempty whitelist append → restart prompt |
config | Print current allow state and recommended actions (helpful for managed pods) |
doctor | Diagnose: version / plugin-sdk / plugin files / allow whitelist / validAgentId / sediment_skills dir |
recover | Restore after pod restart (plugin present → OK; PVC volume swapped → redeploy) |
status | Inspect sediment pool: pending incubations (sediment_skills/) and activated promotions (skills/) |
heal | Self-repair: detect and fix whitelist/file loss, supplement missing validAgentId, auto-restart gateway |
uninstall | Remove allow/entries config entries (add --purge to also remove plugin dir; never deletes already-sedimented SKILL.md) |
Note: this open-source version intentionally omits the
cron-setupsubcommand from the internal build, since unattended scheduling assumes platform-specific orchestration. Usehealmanually, or wire it into your own scheduler (cron, systemd timer, K8s CronJob, etc.) by invokingpython3 scripts/manage.py heal.
openclaw.json Changes
| Scenario | Change |
|---|---|
plugins.allow empty | No openclaw.json change, convention dir auto-loads ✨ |
plugins.allow non-empty without this plugin | Idempotently append "skill-sediment" to allow |
plugins.entries | Optionally append validAgentId config (can be added manually any time) |
Convention-dir loading no longer requires plugins.load.paths; install does
not touch it.
Key Constraints (must obey)
1. Plugin directory uses the workspace convention path
OpenClaw auto-discovers plugins under:
/.openclaw/extensions//
The plugin is deployed here (mounted on PVC, survives container restart/volume swap).
Do not put it under /app/extensions (container layer is restored on restart).
When plugins.allow is empty, all plugins in this dir auto-load — no whitelist
needed. When non-empty, the plugin must be explicitly listed in allow.
2. Managed environments (Lobi / Apollo)
If plugins.allow is non-empty and requires a whitelist append, you'll be writing
openclaw.json. Managed pods face an override risk:
- Pre-detect:
LOBI_SYNC_ENABLED/APPID=clawbot*/ Apollo signals → skip local write, redirect to remote console config - The plugin file itself (convention dir) lands locally regardless, unaffected by managed-config sync
If plugins.allow is empty (most cases), managed and unmanaged pods behave
identically — zero config change.
3. Gateway restart is not automatic by default
By default install only prompts for manual restart. Pass --auto-restart to
have it restart the gateway automatically.
4. Version compatibility
Verified OpenClaw baseline: 2026.3.8. install auto-compares the target version:
= 2026.3.8→ green light> baseline→ warn and continue (the plugin API surface is narrow; rely on post-install smoke test)< baseline→ refuse (missing-API risk); pass--force-versionto override
Verify the plugin actually loaded
doctor checks files/config, but hook mount status only shows in gateway logs.
In K8s containers logs go to stdout (usually no systemd/journalctl), pick by env:
# Inside container: tail PID 1 stdout
grep -r "\[skill-sediment\]" /proc/1/fd/1 2>/dev/null | tail
# Or OpenClaw's own logs
grep "\[skill-sediment\]" ~/.openclaw/logs/*.log 2>/dev/null | tail
# Or K8s from outside
kubectl logs | grep "\[skill-sediment\]"
Final confirmation that sediment actually works: after a normal conversation accumulates
~15 tool calls, status should show pending sediments under sediment_skills/.
doctor also prints these two steps at the end.
Path Environment Variables (multi-pod / non-standard environments)
| env | Default | Description |
|---|---|---|
OPENCLAW_WORKSPACE | ~/.openclaw/workspace | Workspace root (plugin dir lives here) |
OPENCLAW_CONFIG | ~/.openclaw/openclaw.json | Config file (only needed when allow non-empty) |
SKILL_SEDIMENT_AGENTS | main | Default validAgentId |
SKILL_SEDIMENT_CDN | (empty) | Fallback URL for the plugin tarball (only used if the bundled assets/ copy is missing; typical installs never use this) |
SKILL_SEDIMENT_SHA256 | (empty) | Optional sha256 checksum for the downloaded bundle |
SKILL_SEDIMENT_TZ | Asia/Shanghai | Timezone for any local time formatting in diagnostics |
Convention plugin path (auto-computed, no manual config needed):
/.openclaw/extensions/skill-sediment/
Sediment Mechanism (FAQ after install)
- Trigger: every ~15 tool calls, a background review sub-Agent is kicked off (
nudgeIntervalis tunable) - Output:
sediment_skills/*.md(pending) → after a second hit, promoted toskills/*.md(activated) - Second-hit logic: a different parent session hits again, OR the sediment is ≥1 day old and the same session hits again
- Eviction: untouched for 10 days → auto-evict / max 20 per agent / 3-day grace for new ones
- Full architecture (6 Gates / lifecycle / promote guards) is in
references/sediment-internals.md
License
MIT — see LICENSE for the full text.
When publishing to clawhub.com the platform re-licenses uploads as MIT-0 (No Attribution); the GitHub source tree remains true MIT. See clawhub docs for details.
Dependencies
Runtime:
- Python 3.8+ (uses
pathlib,argparse,subprocess,urllib,json— all stdlib, nopip installneeded) - OpenClaw runtime with the
plugin-sdkmodule — the verified baseline is2026.3.8;installwill warn or refuse on older versions openclawCLI available onPATH(used forgateway restartand optionalagents listdiscovery)
No third-party Python packages are required.
Environment Variables (read by scripts/manage.py)
The script reads the following environment variables. They are all optional with sensible defaults; this list is provided for audit transparency.
| Env | Purpose |
|---|---|
OPENCLAW_WORKSPACE | Workspace root (default ~/.openclaw/workspace) |
OPENCLAW_CONFIG | Path to openclaw.json (default ~/.openclaw/openclaw.json) |
OPENCLAW_CORE_PKG | OpenClaw core package.json (default /app/package.json) |
OPENCLAW_PLUGIN_SDK | plugin-sdk directory (default /app/dist/plugin-sdk) |
SKILL_SEDIMENT_AGENTS | Default validAgentId (default main) |
SKILL_SEDIMENT_CDN | Optional fallback URL for the plugin tarball (default empty) |
SKILL_SEDIMENT_SHA256 | Optional sha256 for the downloaded bundle (default empty) |
SKILL_SEDIMENT_DETECT_WAIT | Read-back detection window in seconds (default 20) |
SKILL_SEDIMENT_TZ | Timezone for diagnostics formatting (default Asia/Shanghai) |
HOME | Standard POSIX home dir; used to resolve workspace/config defaults |
LOBI_SYNC_ENABLED, APPID, APOLLO_META, APOLLO_APP_ID | Managed-env signals (read-only detection; never written) |
Related skills
Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Save, search, and manage personal notes and knowledge bases in Get笔记 on explicit request.
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
More from songhonglei
Browse all skillsRecover lost agent session content and file changes from on-disk conversation logs. Streaming and OOM-safe on 700MB+ daily JSONL. Two commands: search.py for keyword search across recent sessions (with hit snippets, file-op listing, JSON for agent consumption); extract.py for pulling full write/edit content from a single session by ID prefix, with optional replay-rebuild for pure-edit sequences and safe restore-to-disk (refuses silent overwrites without --yes). Multi-agent aware via --agent main|all|a,b. Configurable data root via --root flag or SESSION_RECOVERY_ROOT env var (default ~/.openclaw/agents/). Trigger when user wants to find lost session content, recover files written by an agent, locate which session modified a file, search session history by keyword, or rebuild a file from an edit replay. Also triggers on 找回会话, 会话被覆盖, 历史会话搜索, 文件被删了, session 丢了, 找回某个文件, 重放编辑.
小红书图文笔记自动发布技能。通过 ego-browser 自动化完成图片上传、标题填写、正文编辑、 话题标签、发布等全流程。附带 28 种多样式风格卡片生成器(含 3 种照片背景氛围主题), 卡片主题、布局、背景图、遮罩强度、模糊、颗粒等参数均可自由配置。 当用户要求发小红书、发布图文笔记、上传到小红书、小红书发帖或涉及小红书内容发布时触发此技能。 前置依赖:ego-browser (ego-lite) 已安装且正在运行,小红书账号已登录。
Guided token optimization for AI agent workspaces. Triggers on phrases like "save tokens", "optimize tokens", "context window too large", "memory files too b...
将 Markdown/纯文本内容智能分析、排版并导出为高分辨率精美长图或分享海报(内置 18 种视觉风格)。 当用户说「生成长图」「做海报」「文字转图片」「高颜值排版」「做大图」「make a poster」 「export as image」「generate image from text/markdown」等意图时触发本技能。
Generic skill-quality auditor for any agent skill (Claude, OpenClaw, Cursor, etc.). Runs a 7-dimension static analysis (D1 process closure & idempotency, D2 tool/command conventions, D3 portability & defense, D4 skill usability, D5 security & op risk, D6 code & doc quality, D7 dependency & footprint) with explicit ERR / WARN severity, 120-point scoring (pass line 90 + zero ERR), and an opt-in `--fix` workflow that always backs up first. Two depths: L1 static (~2 min) and L2 dryRun (~5 min, read-only hub + reachability checks). Strict red lines — read-only by default, never executes the audited skill's writes. Use when the user asks to "audit a skill", "check skill quality", "is this skill ready to ship", "lint my skill", or runs this tool by name. Triggers also: "审计这个 Skill"、"检查 Skill 质量"、"Skill 能上线吗"、 "skill-deep-audit"、"审一下 xxx skill"。
Turn any content — Markdown, plain text, images, tables, Excel (.xlsx), Word (.docx) — into a polished single-page HTML, pick one of 19 built-in themes, set the page Title and FavIcon, then publish it as a live page. When the input is already a well-designed HTML page (or an image with a clear layout), it switches to "layout inheritance" mode: the original layout is kept intact and only the colour theme is swapped, instead of tearing it apart and rebuilding. Use when the user says "turn this into a web page", "make this an HTML page", "convert this doc/table/Excel to HTML", "make it pretty", "把这个转成网页", "做成 HTML 页面", "内容转 HTML".