← Back to Plugins
Tools

Aurora Skills

Zijian-Ni By Zijian-Ni 👁 10 views ▲ 0 votes

Cross-harness agent skills + an observation-only OpenClaw trace plugin. Never injects into the prompt.

GitHub

Install

openclaw plugins install /path/to/aurora-skills/plugins/trace-emit

README

# 🧩 aurora-skills

> **Five harness-neutral Agent Skills, plus one OpenClaw sidecar that writes traces and never touches the prompt.**

[![CI](https://github.com/Zijian-Ni/aurora-skills/actions/workflows/test.yml/badge.svg)](https://github.com/Zijian-Ni/aurora-skills/actions/workflows/test.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](LICENSE)
[![Zero telemetry](https://img.shields.io/badge/telemetry-zero-violet.svg)](#guarantees)

**Part of the [Aurora Evidence Suite](https://github.com/Zijian-Ni/aurora-evidence-suite)** — local-first evidence tools for AI agents.

MIT · CN/EN bilingual · zero telemetry · local-first.

---

## What this is

AS-1 of the suite: procedures an agent can actually follow next week, written to the [Agent Skills](https://agentskills.io/specification.md) 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**.

---

## The five skills

| Skill | Use it when | The rule that matters |
|---|---|---|
| [`evidence-pack`](skills/evidence-pack/SKILL.md) | 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`](skills/safe-shell/SKILL.md) | 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`](skills/ledger-discipline/SKILL.md) | 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`](skills/daily-ops-brief/SKILL.md) | Morning check, heartbeat, "is the box ok?" | Say nothing if nothing is wrong. A brief that always talks gets ignored. |
| [`bilingual-release`](skills/bilingual-release/SKILL.md) | 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.

---

## The sidecar: `trace-emit` never injects prompt text

[`plugins/trace-emit`](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](https://github.com/Zijian-Ni/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](https://github.com/Zijian-Ni/traceboard) opens the file directly.

---

## Install

### Claude Code

Copy or symlink the skill directories you want:

```bash
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-release
```

Claude Code loads `SKILL.md` from those folders. `trace-emit` does **not** apply here — write Aurora JSONL yourself if you want Traceboard playback.

### OpenClaw

Skills — copy or symlink into the agent workspace (default `~/.openclaw/workspace/skills/`):

```bash
ln -s /path/to/aurora-skills/skills/evidence-pack ~/.openclaw/workspace/skills/evidence-pack
# …repeat for the other four
```

Plugin (OpenClaw-specific):

```bash
openclaw plugins install /path/to/aurora-skills/plugins/trace-emit
```

Enable it and give it a local path — see [plugins/trace-emit/README.md](plugins/trace-emit/README.md). Nothing is uploaded.

---

## Self-policing

```bash
# needs skill-distillery built as a sibling (or SKILL_DISTILLERY_CLI)
npm test
```

`npm test` is `node --test test/*.test.js` (Node 20 has no glob expansion inside `node --test`, so the glob is passed explicitly). It:

1. Lints every `skills/*/SKILL.md` with skill-distillery (`>= 90`, zero errors).
2. Scans every skill (exit 0 — no high-risk findings).
3. Asserts `trace-emit` cannot 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.

---

## Guarantees

1. **MIT** — see [LICENSE](LICENSE).
2. **Bilingual** — English and 中文, same facts.
3. **Zero telemetry** — no analytics, no accounts, no phone-home.
4. **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 · 中英双语 · 零遥测 · 本地优先。**

---

## License

MIT © Zijian Ni
tools

Comments

Sign in to leave a comment

Loading comments...