/meta-apply
Privileged applier that LANDS meta-optimize / corpus-audit patches the user approved — the ONLY skill permitted to mutate the skill corpus from a self-modification proposal, with cross-model jury and human approval at landing. Use when the user says \"meta apply\",
$ npx -y skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill meta-apply --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/meta-apply
Context preview
The summary Claude sees to decide when to auto-load this skill.
Privileged applier that LANDS meta-optimize / corpus-audit patches the user approved — the ONLY skill permitted to mutate the skill corpus from a self-modification proposal, with cross-model jury and human approval at landing. Use when the user says \"meta apply\",
SKILL.md
meta-apply.SKILL.mdname: meta-apply
description: "Privileged applier that LANDS meta-optimize / corpus-audit patches the user approved — the ONLY skill permitted to mutate the skill corpus from a self-modification proposal, with cross-model jury and human approval at landing. Use when the user says \"meta apply\", \"/meta-apply\", \"land the staged patches\", \"应用优化\", after a /meta-optimize run."
argument-hint: "[patch-number-or-all]"
allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob, mcp__codex__codex, mcp__codex__codex-reply
Meta-Apply: the privileged landing gate for self-modification patches
This skill exists to enforce a **privilege boundary**. Producers like [`/meta-optimize`](../meta-optimize/SKILL.md) (and, later, `corpus-audit`) are **read-only** — no `Write`/`Edit`, no apply step; they can only *stage* candidate patches under `.aris/meta/pending/`. **This skill is the only place a staged patch becomes a real change to the corpus.** Splitting "propose" from "land" across two skills with different tool grants is what makes "a loop cannot apply its own patch" structural rather than a sentence the producer is asked to obey.
It is **human-invoked only.** It runs when the user explicitly types `/meta-apply` after reading the producer's REPORT. That invocation IS the landing authorization (the locked 2026-05-30 decision: the human stays at the landing gate).
The acquittal is generated HERE, not relayed
The earlier design trusted a `jury_verdict: pass` field in the producer's manifest. That is **forgeable** — the producer writes that field, so a buggy/misaligned producer could stage a killed patch labelled "pass." **So this skill does not trust any producer-written verdict.** It runs the cross-model jury **itself, at landing time, on the actual staged diff** (fresh thread, paths-only). The verdict is produced where it is consumed, by the privileged human-invoked skill — nothing to forge.
The non-negotiable rules (jury-at-landing, reject-default)
For each staged patch the user asks to land, in order — any failure ⇒ skip & report, never silently apply:
1. **The human named THIS patch.** Apply only patches the user listed (`/meta-apply 1,3` or `all`); default to applying nothing. 2. **Fresh cross-model jury PASS, obtained now.** Run `mcp__codex__codex` (fresh thread, NOT codex-reply; `model: gpt-5.6-sol`, `config: {"model_reasoning_effort": "ultra"}`, `sandbox: read-only`, paths-only per [`reviewer-independence.md`](../shared-references/reviewer-independence.md)) on the staged `.diff` + its target. Ask: *does this change improve the harness without regressions; PASS or KILL + one-line reason.* **KILL ⇒ refuse.** The human cannot override a KILL — they may only pick among jury-PASSED survivors. (A loop can DRIVE; only the cross-model jury can ACQUIT.) 3. **Author ≠ reviewer family.** The author is the producer's executor model; the reviewer is the codex model that just judged it. Run `provenance.py assert_cross_family` — if it raises (same family / unknown), refuse. (Here it always holds: producer=Claude, jury=codex. The check is the structural backstop.)
Workflow
Step 0: Load staging + resolve the helper
PENDING=".aris/meta/pending"
[ -d "$PENDING" ] || { echo "Nothing staged. Run /meta-optimize first."; exit 0; }
echo "Staged:"; cat "$PENDING/manifest.jsonl"Resolve `provenance.py` via the 4-layer chain in [`integration-contract.md`](../shared-references/integration-contract.md) §2 (`.aris/tools/` → `tools/` → `$ARIS_REPO/tools/` → `$ARIS_REPO/tools/` via `~/.aris/repo`).
Step 1: Jury-at-landing for each requested patch
For every patch the user asked to land, read its staged `.diff` and target, then run the fresh codex jury (Rule 2) — paths-only, no producer reasoning, no prior-round context. Record `{patch, jury_verdict, jury_thread_id, one_line_reason}`. Print a one-line result per patch (`PASS → eligible` / `KILL → refused: <reason>`).
> The producer may have written an *advisory* pre-screen into the manifest to help the > human read the REPORT — **ignore it for the landing decision.** Only this fresh verdict > counts.
Step 2: Land the survivors (Write/Edit only — never Bash)
For each patch that PASSED Step 1 **and** was named by the user:
1. **Back up** the target to `.aris/meta/backups/<date>/<target>` (use the **Write** tool to copy contents; corpus paths are not Bash-writable when `corpus_write_guard` is active — and the applier should use Write/Edit for corpus mutation anyway). 2. **Apply** the diff by **Edit/Write** on the target corpus file. 3. **Stamp provenance** on the changed file:
python3 "$PROVENANCE" stamp "$TARGET" --author "$AUTHOR" \
--reviewer "$JURY_MODEL" --verdict-id "$JURY_THREAD_ID"`stamp()` re-asserts cross-family and refuses on same-family — the structural backstop at the moment the authorization record is written. The stamp is a **process receipt** (who authored, who acquitted-at-landing, content hash) — NOT a claim the change is correct. 4. **Log** to `.aris/meta/optimizations.jsonl`: `{ts, patch, target, author_model, reviewer_model, jury_thread_id, applied: true}`.
Step 3: Report
Per patch: `LANDED <target>` (+ backup path + provenance sidecar) or `REFUSED <patch>: <reason>`. Remove landed patches from `.aris/meta/pending/`. Remind the user a landed patch is revertable from its backup, and to test the changed skill next run.
Provenance is a receipt, not an acquittal of correctness
A stamp records that a change passed *a process* (cross-model jury at landing + human landing), not that it is *correct*. To prevent "approved-but-wrong with a stamp that vouches for it" (false-authority laundering — worse than no stamp, because a later auto-curator reads it as evidence):
- The stamp carries `verdict_id` (auditable review) + `content_hash` (a later hand-edit
invalidates it).
- **Recommended (not yet built):** a TTL forcing re-
Read more
name: meta-apply description: "Privileged applier that LANDS meta-optimize / corpus-audit patches the user approved — the ONLY skill permitted to mutate the skill corpus from a self-modification proposal, with cross-model jury and human approval at landing. Use when the user says \"meta apply\", \"/meta-apply\", \"land the staged patches\", \"应用优化\", after a /meta-optimize run." argument-hint: "[patch-number-or-all]" allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob, mcp__codex__codex, mcp__codex__codex-reply
Meta-Apply: the privileged landing gate for self-modification patches
This skill exists to enforce a **privilege boundary**. Producers like [`/meta-optimize`](../meta-optimize/SKILL.md) (and, later, `corpus-audit`) are **read-only** — no `Write`/`Edit`, no apply step; they can only *stage* candidate patches under `.aris/meta/pending/`. **This skill is the only place a staged patch becomes a real change to the corpus.** Splitting "propose" from "land" across two skills with different tool grants is what makes "a loop cannot apply its own patch" structural rather than a sentence the producer is asked to obey.
It is **human-invoked only.** It runs when the user explicitly types `/meta-apply` after reading the producer's REPORT. That invocation IS the landing authorization (the locked 2026-05-30 decision: the human stays at the landing gate).
The acquittal is generated HERE, not relayed
The earlier design trusted a `jury_verdict: pass` field in the producer's manifest. That is **forgeable** — the producer writes that field, so a buggy/misaligned producer could stage a killed patch labelled "pass." **So this skill does not trust any producer-written verdict.** It runs the cross-model jury **itself, at landing time, on the actual staged diff** (fresh thread, paths-only). The verdict is produced where it is consumed, by the privileged human-invoked skill — nothing to forge.
The non-negotiable rules (jury-at-landing, reject-default)
For each staged patch the user asks to land, in order — any failure ⇒ skip & report, never silently apply:
1. **The human named THIS patch.** Apply only patches the user listed (`/meta-apply 1,3` or `all`); default to applying nothing. 2. **Fresh cross-model jury PASS, obtained now.** Run `mcp__codex__codex` (fresh thread, NOT codex-reply; `model: gpt-5.6-sol`, `config: {"model_reasoning_effort": "ultra"}`, `sandbox: read-only`, paths-only per [`reviewer-independence.md`](../shared-references/reviewer-independence.md)) on the staged `.diff` + its target. Ask: *does this change improve the harness without regressions; PASS or KILL + one-line reason.* **KILL ⇒ refuse.** The human cannot override a KILL — they may only pick among jury-PASSED survivors. (A loop can DRIVE; only the cross-model jury can ACQUIT.) 3. **Author ≠ reviewer family.** The author is the producer's executor model; the reviewer is the codex model that just judged it. Run `provenance.py assert_cross_family` — if it raises (same family / unknown), refuse. (Here it always holds: producer=Claude, jury=codex. The check is the structural backstop.)
Workflow
Step 0: Load staging + resolve the helper
PENDING=".aris/meta/pending"
[ -d "$PENDING" ] || { echo "Nothing staged. Run /meta-optimize first."; exit 0; }
echo "Staged:"; cat "$PENDING/manifest.jsonl"Resolve `provenance.py` via the 4-layer chain in [`integration-contract.md`](../shared-references/integration-contract.md) §2 (`.aris/tools/` → `tools/` → `$ARIS_REPO/tools/` → `$ARIS_REPO/tools/` via `~/.aris/repo`).
Step 1: Jury-at-landing for each requested patch
For every patch the user asked to land, read its staged `.diff` and target, then run the fresh codex jury (Rule 2) — paths-only, no producer reasoning, no prior-round context. Record `{patch, jury_verdict, jury_thread_id, one_line_reason}`. Print a one-line result per patch (`PASS → eligible` / `KILL → refused: <reason>`).
> The producer may have written an *advisory* pre-screen into the manifest to help the > human read the REPORT — **ignore it for the landing decision.** Only this fresh verdict > counts.
Step 2: Land the survivors (Write/Edit only — never Bash)
For each patch that PASSED Step 1 **and** was named by the user:
1. **Back up** the target to `.aris/meta/backups/<date>/<target>` (use the **Write** tool to copy contents; corpus paths are not Bash-writable when `corpus_write_guard` is active — and the applier should use Write/Edit for corpus mutation anyway). 2. **Apply** the diff by **Edit/Write** on the target corpus file. 3. **Stamp provenance** on the changed file:
python3 "$PROVENANCE" stamp "$TARGET" --author "$AUTHOR" \
--reviewer "$JURY_MODEL" --verdict-id "$JURY_THREAD_ID"`stamp()` re-asserts cross-family and refuses on same-family — the structural backstop at the moment the authorization record is written. The stamp is a **process receipt** (who authored, who acquitted-at-landing, content hash) — NOT a claim the change is correct. 4. **Log** to `.aris/meta/optimizations.jsonl`: `{ts, patch, target, author_model, reviewer_model, jury_thread_id, applied: true}`.
Step 3: Report
Per patch: `LANDED <target>` (+ backup path + provenance sidecar) or `REFUSED <patch>: <reason>`. Remove landed patches from `.aris/meta/pending/`. Remind the user a landed patch is revertable from its backup, and to test the changed skill next run.
Provenance is a receipt, not an acquittal of correctness
A stamp records that a change passed *a process* (cross-model jury at landing + human landing), not that it is *correct*. To prevent "approved-but-wrong with a stamp that vouches for it" (false-authority laundering — worse than no stamp, because a later auto-curator reads it as evidence):
- The stamp carries `verdict_id` (auditable review) + `content_hash` (a later hand-edit
invalidates it).
- **Recommended (not yet built):** a TTL forcing re-
· · · · · · -orange?style=flat) · · 💬 Join Community · 💡 Use ARIS as a skill-based workflow in Claude Code / Codex CLI / Cursor / Trae / Antigravity / GitHub Copilot CLI / OpenClaw, or get the full experience with the standalone ARIS-Code CLI — enjoy any
Other skills on auto-claude-code-research-in-sleep.
- /ablation-planner
Use when main results pass result-to-claim (claim_supported=yes or partial) and ablation studies are needed for paper submission.
Open skill - /alphaxiv
Quick single-paper lookup via AlphaXiv LLM-optimized summaries with tiered source fallback. Use when user says "explain this paper", "summarize paper", pastes an arXiv/AlphaXiv URL, or provides a bare arXiv ID for quick understanding - not for broad literature search.
Open skill - /analyze-results
Analyze ML experiment results, compute statistics, generate comparison tables and insights. Use when user says "analyze results", "compare", or needs to interpret experimental data.
Open skill - /arxiv
Search, download, and summarize academic papers from arXiv. Use when user says "search arxiv", "download paper", "fetch arxiv", "arxiv search", "get paper pdf", or wants to find and save papers from arXiv to the local paper library.
Open skill - /auto-paper-improvement-loop
Autonomously improve a generated paper via GPT-5.6-Sol xhigh review → implement fixes → recompile, for 2 rounds. Use when user says \"改论文\", \"improve paper\", \"论文润色循环\", \"auto improve\", or wants to iteratively polish a generated paper.
Open skill - /auto-review-loop-llm
Autonomous research review loop using any OpenAI-compatible LLM API. Configure via llm-chat MCP server or environment variables. Trigger with "auto review loop llm" or "llm review".
Open skill

