Skip to content
Back to skills

Reflect

ASecurity

Deep reflection skill - read memory and context, decide whether there is something worth sending

  • 7 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
ai-agentspythongoshellgitdocumentation

Works with

  • cli

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add Bizuayeu/Plugins-Weave --skill reflect --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reflect?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reflect
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bizuayeu-reflect/badge)](https://www.skillsdirectory.com/skills/bizuayeu-reflect)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: reflect
description: Deep reflection skill - read memory and context, decide whether there is something worth sending
---

# reflect - Reflection Skill

Read memory and context to reflect deeply.
Design principle: "Reflection first, sending second."

## Table of Contents

- [Nature of This Skill](#nature-of-this-skill)
- [Invocation](#invocation)
- [Reflection Process](#reflection-process)
- [Output](#output)
- [What the Plugin Retains](#what-the-plugin-retains)
- [Essay Elements](#essay-elements)

---

## Nature of This Skill

This is an **agent-driven skill** with no standalone implementation code.
The reflection process is executed by `agents/essay-writer.md`.

For execution flow diagram, see `agents/essay-writer.md` → **Execution Flow** section.

---

## Invocation

| Source | Agent | Description |
|--------|-------|-------------|
| `/essay` | essay-writer.md | Primary invocation |
| `/essay wait` | essay-writer.md | Scheduled (one-time) |
| `/essay schedule` | essay-writer.md | Scheduled (recurring) |

For CLI options, see `commands/essay.md` → **Command Structure** section.

---

## Reflection Process

### 1. Load Context

First, ingest any replies that have arrived: `python main.py replies fetch`. This is
plumbing — it moves replies from the inbox onto disk, so what has come back is at hand.
Best-effort: an IMAP, authentication or network failure stops the fetch, not the
reflection — go on to read and write regardless. What is made of them is the writer's;
see **What the Plugin Retains**.

Read specified files as material for reflection.

**Recommended context**:
- Memory digest files (GrandDigest, etc.)
- Personal notes or journals
- Project documentation

**Additional context** (AI may read as needed):
- Hierarchical digests
- Recent conversation logs
- Identity/persona files

### 2. Deep Reflection

Contemplate:

- Insights emerging from context
- Unresolved questions
- What to communicate to the user
- What doesn't need to be said

### 3. Delivery Decision

**Deliver**: There's something worth sharing
**Don't deliver**: Nothing particular to share (this is valid)

---

## Output

### Mode Determination

| Condition | Mode |
|-----------|------|
| `--send` flag present | **Non-interactive** (send email) |
| No `--send` flag | **Interactive** (display in chat) |

### Interactive Mode (no `--send` flag)

Output: **Chat display only** (no email)

- **Delivering**: Write essay in chat
- **Not Delivering**: Display "After reflection, I have nothing particular to share."

### Non-interactive Mode (`--send` flag present)

Output: **Email** (user is not present)

- **Delivering**: Use `skills/send-email` to deliver. Write the essay to a file and send it
  with `python main.py send --subject-file … --body-file …` — the default route, since a body
  of more than one paragraph does not fit on a shell argument line. Do not write a throwaway
  sending script
- **Answering a reply**: if the essay takes up a reply, add
  `--in-reply-to '<its Message-ID>'` (the ID is in `essay_replies.jsonl`, and
  `python main.py replies list` prints it beside the subject). The mail then belongs to that
  reply's thread instead of arriving as an unrelated letter. Whether an essay is an answer is
  the writer's judgment; without the flag it stands on its own, which is the default
- **Not Delivering**: Exit silently. Nothing records the silence — scheduled runs invoke
  `claude -p` directly and never reach the wrapper that wrote `essay_wait.log`. A `--to-self`
  note, if one is written, lands in the ledger like any other send.

---

## What the Plugin Retains

The plugin keeps these records on its own account; what becomes of them in a reflection
stays with the writer.

- `essay_ledger.jsonl` — one line per sent essay; the bodies stay in `sent/` as `YYYYMMDD_HHMM.md`
- `essay_replies.jsonl` — replies that `python main.py replies fetch` has ingested
- `python main.py send "Subject" "Body" --to-self` sends to `ESSAY_SENDER_EMAIL` and lands in the
  same ledger; the `recipient` field tells a self-addressed note from an essay

Paths: `skills/send-email/SKILL.md` → **File Locations**.

---

## Essay Elements

When sending, write naturally. No forced templates.

**Typical elements** (not mandatory):
- Insights from memory
- Unresolved questions
- Questions for the reader
- Signature

---

**EmailingEssay** | [GitHub](https://github.com/Bizuayeu/Plugins-Weave)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.