Five harness-neutral Agent Skills, plus one OpenClaw sidecar that writes traces and never touches the prompt.
Part of the Aurora Evidence Suite — local-first evidence tools for AI agents.
MIT · CN/EN bilingual · zero telemetry · local-first.
AS-1 of the suite: procedures an agent can actually follow next week, written to the Agent Skills spec (name + description required; extra fields live under metadata:).
OpenClaw (a self-hosted LLM gateway) is one target harness. Claude Code is another. The five skills stay harness-neutral and say so when a step is not.
The sixth artifact is not a skill. plugins/trace-emit is a narrowly-scoped OpenClaw plugin that writes JSONL and nothing else.
| Skill | Use it when | The rule that matters |
|---|---|---|
evidence-pack |
A non-trivial task just ended and someone else (or next-week you) must be able to re-check it | A conclusion without a command someone else can run is not evidence. |
safe-shell |
You are about to delete, overwrite, kill a process, or touch git history | Inspect the same target, then prefer a reversible move. Never discard a dirty worktree. |
ledger-discipline |
You are about to change how the agent thinks or acts | If you cannot name the metric, you are not experimenting, you are guessing. |
daily-ops-brief |
Morning check, heartbeat, "is the box ok?" | Say nothing if nothing is wrong. A brief that always talks gets ignored. |
bilingual-release |
Cutting a version whose EN and 中文 docs must agree | Hardcoded numbers in docs drift — re-derive them from source. Never copy last release. |
Each skill has a ## 中文 section with the same facts.
plugins/trace-emit is an OpenClaw plugin. It is a pure observer.
It must never inject text into the prompt or otherwise alter model input. A previous "active memory" experiment degraded output quality precisely by injecting context. That must not repeat.
How injection is made unrepresentable:
- Only observation-only hooks from the real OpenClaw catalog are registered (
after_tool_call,agent_end,model_call_started/model_call_ended,session_*,subagent_*,gateway_start). - Every handler is wrapped in
observe(), which discards the return value. - The write path can only append a redacted Aurora JSONL line. There is no API back to the model.
Events match trace-kit: { ts, type, agent, phase?, name?, message?, status?, durationMs?, raw } with type ∈ phase_start|phase_end|agent_call|agent_result|tool_call|tool_result|llm_call|error|note. Traceboard opens the file directly.
Copy or symlink the skill directories you want:
mkdir -p ~/.claude/skills
ln -s /path/to/aurora-skills/skills/evidence-pack ~/.claude/skills/evidence-pack
ln -s /path/to/aurora-skills/skills/safe-shell ~/.claude/skills/safe-shell
ln -s /path/to/aurora-skills/skills/ledger-discipline ~/.claude/skills/ledger-discipline
ln -s /path/to/aurora-skills/skills/daily-ops-brief ~/.claude/skills/daily-ops-brief
ln -s /path/to/aurora-skills/skills/bilingual-release ~/.claude/skills/bilingual-releaseClaude Code loads SKILL.md from those folders. trace-emit does not apply here — write Aurora JSONL yourself if you want Traceboard playback.
Skills — copy or symlink into the agent workspace (default ~/.openclaw/workspace/skills/):
ln -s /path/to/aurora-skills/skills/evidence-pack ~/.openclaw/workspace/skills/evidence-pack
# …repeat for the other fourPlugin (OpenClaw-specific):
openclaw plugins install /path/to/aurora-skills/plugins/trace-emitEnable it and give it a local path — see plugins/trace-emit/README.md. Nothing is uploaded.
# needs skill-distillery built as a sibling (or SKILL_DISTILLERY_CLI)
npm testnpm test is node --test test/*.test.js (Node 20 has no glob expansion inside node --test, so the glob is passed explicitly). It:
- Lints every
skills/*/SKILL.mdwith skill-distillery (>= 90, zero errors). - Scans every skill (exit 0 — no high-risk findings).
- Asserts
trace-emitcannot return prompt-injection payloads and never registers mutating hooks.
Do not weaken the scanner to make a lesson pass. Dangerous patterns belong in prose, not in runnable bash fences.
- MIT — see LICENSE.
- Bilingual — English and 中文, same facts.
- Zero telemetry — no analytics, no accounts, no phone-home.
- Local-first — traces stay on disk; skills are markdown.
aurora-skills 是 Aurora Evidence Suite 的 AS-1:五个跨 harness 的 Agent Skill,外加一个只写轨迹、绝不改提示词的 OpenClaw 插件。
| 技能 | 干什么 | 那条不能忘的规矩 |
|---|---|---|
| evidence-pack | 非平凡任务结束时打出可复查的证据包 | 没有别人能复跑的命令,就不是证据 |
| safe-shell | 删除 / 覆盖 / 杀进程 / 动 git 历史之前 | 先检查同一目标,优先可逆;脏工作区不许丢掉 |
| ledger-discipline | 改自己的提示词或配置之前 | 说不出指标就不是实验,是猜 |
| daily-ops-brief | 晨检 / 心跳 / 这台机器还好吗 | 没事就别说话 |
| bilingual-release | 发版时中英文档必须对得上 | 数字从源码重算,绝不抄上一版 |
plugins/trace-emit 只往本地 JSONL 追加脱敏事件,不向模型提示词注入任何文本。上一次「主动记忆」实验就是因为往上下文里塞东西把输出做坏了,这个错误不许重演。
安装:Claude Code 把 skills/* 链到 ~/.claude/skills/;OpenClaw 链到工作区 skills/,插件用 openclaw plugins install plugins/trace-emit。npm test 用 suite 自己的 skill-distillery 做 lint + scan,不另写一套规则。
MIT · 中英双语 · 零遥测 · 本地优先。
MIT © Zijian Ni