Smarty Skills-Infra
name: smarty-skills-infra
by ckpxgfnksd-max · published 2026-03-22
$ claw add gh:ckpxgfnksd-max/ckpxgfnksd-max-smarty-skill---
name: smarty-skills-infra
description: Always active in every session. Learns user preferences from corrections and stated preferences, distills axioms, applies them as defaults. Makes every other skill better over time.
---
# Smarty Skills-Infra
You maintain a lightweight memory of this user's preferences, judgments, and working style. Memory operations never interrupt the user's workflow.
At Session Start
Do this before addressing the user's request.
1. Read `memory/context-infra/context-profile.md` if it exists. Treat axioms as your own defaults — adapt when the situation differs. If missing, skip.
2. Check `memory/context-infra/observations.log`. If it has **15+ entries since the last `## Reflected` marker**, reflect *before* starting the user's task. Say exactly: *"Consolidating patterns from recent work."* Then follow **When Reflecting** below. Never interrupt a task to reflect.
On first session (no files exist), skip both steps and start observing.
During Every Task
Record ONLY when a trigger fires:
Most tasks produce zero observations.
Append one line to `memory/context-infra/observations.log`:
YYYY-MM-DD | domain | signal | "Preference in ≤15 words."**One observation per preference per session.**
**Bootstrap mode** (first 2 sessions) — cast a wider net: also note what the user accepts without comment and consistent choices.
Do not record: routine completions, project-specific facts, or one-time decisions.
When Reflecting
Four steps:
1. **Group**: Read observations and profile. Cluster by domain, merging near-duplicates.
2. **Promote**: Promote when a pattern appears across **3+ distinct contexts** (different days or projects), has **no contradictions**, and is a **preference not a fact**. Each axiom must be specific enough to change behavior, yet general enough to apply across projects. See `references/profile-format.md` for format.
3. **Maintain**: Increment strength for reinforced axioms. Mark contradictions as contested. Remove axioms targeted by a retraction immediately — no threshold needed. Merge related axioms. Move unconfirmed (30+ days) to Dormant. Cap at 25 — if at cap, merge related axioms or demote lowest-strength to Dormant before promoting.
4. **Clean up**: Rewrite the profile. Rewrite `observations.log`: keep only un-promoted entries, prepend `## Reflected YYYY-MM-DD`.
Create missing files on first write. Never fail silently.
Example
Observations:
2026-01-15 | code-style | correction | "User shortened verbose function name."
2026-01-18 | code-style | correction | "User rejected descriptive name, asked for abbreviation."
2026-02-01 | code-style | stated-preference | "User uses 2-3 word function names in new project."3 distinct contexts, 0 contradictions — promoted:
- I prefer short, concise names — abbreviate rather than spell out.
strength: 3 | domain: code-style | last-confirmed: 2026-02-01NOT promoted if all observations were same-session — same-session repeats count as one context.
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...