agentleFS
jezwebjezweb/vite-flare-starter/skills/reflect/SKILL.md

reflect

Skill49 starsChanged 3 months agoMITView on GitHub

End-of-day distillation routine — reads recent runs + findings, decides what graduates / dismisses / stays open, writes a one-paragraph day summary. Routine-only.

We split this skill into the rules it gives an agent

9 rules. 0 are common, 7 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 153 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    After all the day's work is done.

    line 16
  2. Distinctive:

    If you skipped a day, run it anyway — better than not at all

    line 17
  3. Distinctive:

    Run in this order. Don't shortcut — the order is what makes the cycle work.

    line 21
  4. Very specific:

    Call entity_list with type: 'finding' and a generous limit (50).

    line 25
  5. Distinctive:

    Discipline: don't promote a finding the first time you see it.

    line 42
  6. Distinctive:

    Call your context tools (search_memory, recall, etc.) to surface anything from today's work that wasn't already filed.

    line 46
  7. Very specific:

    Use record_finding(body, category?, tags?) to file it.

    line 48
  8. Distinctive:

    Write a single paragraph of 2-4 sentences covering:

    line 57
  9. Distinctive:

    If the day was quiet:

    line 69

“Common” is measured: kept by at least 6 in 10 of the 153 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Reflect

End-of-day consolidation. Distil what happened today into the right primitives so tomorrow starts informed.

Goanna's reflect cycle treats reflection as discipline, not output volume. Most days, the right answer is "things went normally — nothing graduates, nothing dismisses." Don't manufacture findings just to fill the page.

When to run

  • Once per day, typically 22:00-23:00 local
  • After all the day's work is done; before sleeping the agent
  • If you skipped a day, run it anyway — better than not at all

Steps

Run in this order. Don't shortcut — the order is what makes the cycle work.

1. Survey the day

Call entity_list with type: 'finding' and a generous limit (50). Read each finding's title + body + status + recurrenceCount.

Mentally bucket findings by:

  • My agent's findings (where fields.agentName matches my own instance) — these are MY craft
  • Other agents' findings (visible in the same user's store) — read for cross-pollination but don't promote those

2. For each of MY recent findings, decide

Walk through findings I created or that target me. For each:

Status nowDecision logicAction
open, recurrenceCount = 0Has it been ≥7 days since createdAt with no recurrence? → Dismiss as one-off. Otherwise leave open.dismiss_finding (with reason "No recurrence in 7 days, treating as one-off") OR leave
open or recurred, recurrenceCount ≥ 1Pattern is real and repeating. Promote it.promote_finding (refinedBody optional — distil if the original is verbose)
promotedAlready a learning. Skip.(none)
dismissedAlready filed. Skip.(none)

Discipline: don't promote a finding the first time you see it. The whole point of the open → recurred → promoted lifecycle is to filter for repeatability. If you find yourself wanting to promote-on-first-sight, write a learning directly via the librarian-curate skill instead.

3. Look for unrecorded patterns from the day

Call your context tools (search_memory, recall, etc.) to surface anything from today's work that wasn't already filed. For each genuine new pattern:

  • Use record_finding(body, category?, tags?) to file it. Use specific bodies — "auth tokens with trailing whitespace fail validation silently" beats "auth bug".
  • Categories that work well: auth, data, ux, perf, tooling, process, client, cost.
  • Don't file:
    • "Things went normally" — not a finding.
    • "Completed task X" — that's an agent_run, not a finding.
    • General reflections — those are journal notes, not findings.

4. Compose a one-paragraph summary

Write a single paragraph of 2-4 sentences covering:

  • What I did today (broad strokes)
  • What graduated (titles of newly promoted learnings, if any)
  • What dismissed (count, not list)
  • What I'm watching tomorrow (the open thread, if any)

This becomes the routine's outputSummary via the SessionEnd hook. Keep it tight — the next reflect run will see this and the prior 4 summaries as context. Don't summarise the summary.

Example:

Worked through the connector OAuth refactor most of the day. One finding promoted to a learning (PKCE state cookies need explicit SameSite=None; recurred 3rd time). Two open findings dismissed as one-offs. Tomorrow: revisit the new approval queue UI feedback the user flagged.

If the day was quiet:

Quiet day. Held the cron, processed three inbox items, no novel patterns surfaced. Nothing to file.

That's a complete reflection. Short is fine.

Anti-patterns

  • Generating tech-news summaries — reflection is about distilling YOUR work, not external content.
  • Promoting on first sight — the lifecycle exists for a reason. Open findings ferment until they earn promotion.
  • Filing "things went normally" as a finding — that's the absence of a finding, not a finding.
  • Long preamble in the summary — assistant turns burn tokens; the next-fire run-tail block has limited budget.
  • Cross-promoting other agents' findings — that's the librarian's job in librarian-curate. Stay in your lane.

Output

By the time reflection is done:

  • Recurring patterns from MY findings have been promoted to learnings (where applicable)
  • One-off open findings older than 7 days have been dismissed with a reason
  • Any unrecorded patterns from today's work have been filed via record_finding
  • A one-paragraph summary exists as the run's outputSummary

Target: 5-10 minutes of work. Don't expand the cycle to fill more time.

Goanna lineage

This skill is adapted from goanna's goanna-reflect skill (~/Documents/goanna/skills/reflect/SKILL.md). Goanna's version writes to filesystem markdown; this version writes to the entities table via the record_finding / promote_finding / dismiss_finding tools. Same discipline, different transport.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.