# Skill Sediment

> >

- **Type:** Skill
- **Install:** `agentstack add skill-songhonglei-build-better-skills-skill-sediment`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Songhonglei](https://agentstack.voostack.com/s/songhonglei)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Songhonglei](https://github.com/Songhonglei)
- **Source:** https://github.com/Songhonglei/build-better-skills/tree/main/skills/skill-sediment

## Install

```sh
agentstack add skill-songhonglei-build-better-skills-skill-sediment
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

> - **Author**: Evan Song 
> - **Repository**: https://github.com/Songhonglei/build-better-skills
> - **License**: MIT — see [LICENSE](./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.gz` fallback path is also supported for
  backward compatibility.

## Quick Install

```bash
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-setup` subcommand
> from the internal build, since unattended scheduling assumes platform-specific
> orchestration. Use `heal` manually, or wire it into your own scheduler (cron, systemd
> timer, K8s CronJob, etc.) by invoking `python3 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)
- `/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 (`nudgeInterval` is tunable)
- **Output**: `sediment_skills/*.md` (pending) → after a second hit, promoted to `skills/*.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](./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, no `pip install` needed)
- **OpenClaw runtime** with the `plugin-sdk` module — the verified baseline is `2026.3.8`;
  `install` will warn or refuse on older versions
- **`openclaw` CLI** available on `PATH` (used for `gateway restart` and optional
  `agents list` discovery)

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) |

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Songhonglei](https://github.com/Songhonglei)
- **Source:** [Songhonglei/build-better-skills](https://github.com/Songhonglei/build-better-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** yes
- **Shell / process execution:** yes
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-songhonglei-build-better-skills-skill-sediment
- Seller: https://agentstack.voostack.com/s/songhonglei
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
