Skip to content
cccskills
FreePublished on GitHubEnglish overview

StateLog

Log mood, energy, sleep, relationships, creativity, and other personal ratings with shorthand such as M4 or CF3. It also records workout, walk, and affirmation signals, then shows each dimension’s latest value and how fresh the entry is.

OriginalShow the original description

State journaling from shorthand like M4, H2, CF5 (H overall, M mood, E energy, S sleep, R relationships, F financial, C creativity, CF creative freedom, W workout, K walk, A affirmation) on 1-5, with freshness resets. USE WHEN a message is only dimension shorthand (M4, e4 cf3, W, K, A), log my state, log my mood, state check-in, how am I tracking, just worked out, went for a walk, did my affirmations. NOT FOR life-goal percentages (use `Telos`), health imports, macOS stats (Vitals).

danielmiessler/LifeOS19,635 stars(GitHub 19,635 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Logging mood or energy with a short rating
  • Recording a workout or walk without a rating
  • Checking the latest state entries and their age
  • Tracking sleep, relationships, or creativity over time

Overview

What it does

StateLog records personal states using short codes such as M4 for mood rated 4 or e4 cf3 for energy 4 and creative freedom 3. Overall state, mood, energy, sleep, relationships, finances, creativity, and creative freedom use a 1–5 rating. You can add a short note. Workouts, walks, and affirmations use W, K, and A; these update how long it has been since each activity rather than adding a rating. A status check shows the latest value and elapsed time for each dimension, including which entries have become stale.

When it helps

Use it to keep a lightweight daily record of mood and life state without detailed input, or to mark that you exercised or walked. The log can also support later reflection on how sleep or exercise relates to mood.

Example requests

  • “M4”
  • “I went for a walk today.”
  • “What does my current state look like?”

Notes

Ratings use values from 1 to 5. A standalone code without a rating is accepted only as W, K, or A. Life-goal completion percentages, health data imports, and macOS statistics are outside its scope.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Document check

AI checked the SKILL.md for operations that need care and for setup requirements. The score comes only from actually running the skill (hands-on test).

SafetyAre sending data, deleting files, and running commands disclosed?
BPartly lackingIt appends journal data and may update a configured practice file, with limited confirmation details.
Easy setupDoes it need few tools or API keys, and are they documented?
AGoodLogging works without configuration, and first-time setup is pointed to `Setup.md`.

Not counted in the score. Rated by AI (OpenAI Codex) as of Oct 28, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (4)

  • SKILL.md6.2 KB
  • Intents/Log.md1.6 KB
  • Intents/Status.md934 B
  • Setup.md3.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

StateLog

Contents: Ideal State · Intent Routing · The grammar · Data & Config · Tool contract · Gotchas · Examples

Two keystrokes to a durable journal entry. The user sends M2 on any channel; it lands timestamped in the state log and the statusline reflects it. The point is zero-friction capture of mood and state so correlations (mood vs sleep vs workouts) become computable later.

Ideal State

  • Every entry the user states lands in the log in one tool call and gets one short acknowledgment, with no follow-up questions or analysis.
  • Ratings come only from the user's own words; inferred events reset freshness counters and never write a rating.
  • A status read shows each dimension's latest value and age, and names what is stale or never logged in one line.
  • The journal stays the user's: it lives under LIFEOS/USER/STATE/ and never enters this skill or any public artifact.

Intent Routing

IntentTriggerFile
LogA shorthand entry, "log my state/mood", "just worked out", "went for a walk"Intents/Log.md
Status"current state", "state check-in", "how am I tracking"Intents/Status.md
FileRead when
Setup.mdfirst-time setup, or Config.md is missing
EvalState.mdchecking the state-shorthand eval suite's latest scores (machine-owned, never hand-edited)

The grammar

<Letter><Digit 1-5> plus optional note (M2 slept badly). Bare W or K resets that freshness counter.

LetterDimensionKind
Hoverallrating 1-5
Mmoodrating 1-5
Eenergyrating 1-5
Ssleeprating 1-5
Rrelationshipsrating 1-5
Ffinancialrating 1-5
Coverall creativityrating 1-5
CFcreative freedomrating 1-5
Wworkoutfreshness (days-since)
Kwalkfreshness (days-since)
Aaffirmationfreshness (days-since)

Scale (star-rating semantics, higher is better): 1 really bad · 2 bad · 3 fine (shown yellow, never treated as a crisis) · 4 and 5 the preferred range (shown green). The parser clamps 0/6-9 into range and preserves the raw value. Every dimension reads the same direction — there are no inverted dimensions.

Data & Config

What each dimension means to the user, where the creativity pair's framing comes from, the affirmation practice file, and the workout signal source: <configRoot>/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/StateLog/Config.md (configRoot is $CLAUDE_CONFIG_DIR when set, else ~/.claude). First-time setup is in Setup.md. Read it when discussing the creativity pair, logging an A, or deciding whether an event counts as a workout signal. Logging itself works without it; when Config.md is missing, say so once, point the user at Setup.md, skip the streak bump and signal resets, and still log the entry. The letters and 1-5 scale are the tool's defaults in State.ts; Config.md only records what they mean to the user.

Tool contract

The deterministic engine is ~/.claude/LIFEOS/TOOLS/State.ts (cross-consumer: statusline, interview, this skill):

bun ~/.claude/LIFEOS/TOOLS/State.ts log "M4"              # rate
bun ~/.claude/LIFEOS/TOOLS/State.ts log "M2 rough day"    # rate + note
bun ~/.claude/LIFEOS/TOOLS/State.ts log "W"               # freshness reset
bun ~/.claude/LIFEOS/TOOLS/State.ts log "H5" --source interview
bun ~/.claude/LIFEOS/TOOLS/State.ts reset W               # signal-driven reset
bun ~/.claude/LIFEOS/TOOLS/State.ts current [--json]      # snapshot with freshness tiers
bun ~/.claude/LIFEOS/TOOLS/State.ts statusline            # compact segment
bun ~/.claude/LIFEOS/TOOLS/State.ts rebuild               # re-derive current.json from log

Data: LIFEOS/USER/STATE/log.jsonl (append-only) + current.json (derived). The statusline reads current.json directly with jq — never spawn the tool from render paths.

Gotchas

  • A bare rating letter with no digit (M) is an error, not a default — only W/K/A accept bare-letter resets.
  • Bare A = "did today's affirmation reps". Config.md names the practice file (Affirmation practice file); on an A entry, also bump the streak line in that file's Active section. With no practice file configured, log the A and touch nothing else.
  • --source records where an entry came from, for later correlation: manual (default), interview, signal. reset W|K stamps signal itself, so an entry inferred from an event ("just worked out") goes through reset (Intents/Log.md), never through log with a hand-passed source.
  • Freshness is per-dimension, three tiers (fresh/aging/stale) with windows declared in State.ts DIMENSIONS: mood and energy decay in hours, relationships and financial in days. State.ts current computes each tier; a stale dimension is the prompt to log, not an error.
  • Entries are case-insensitive, and a message may carry several at once (e4 cf3 = energy 4, creative freedom 3). A message that is nothing but shorthand routes here silently.
  • Don't route goal-percentage talk here: "health 68%" is a life-goal gap score, not a journal entry.

Examples

User: "e4 cf3"
→ Log intent
→ Energy 4 and creative freedom 3 are in the log; the reply is one acknowledgment line

User: "just worked out"
→ Log intent
→ The workout counter resets with source signal, and no rating is written

User: "how am I tracking"
→ Status intent
→ A snapshot of each dimension's value and age, closing on one line that names what is stale

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

AnnualReports

FreeSummary

Find and fetch vendor cybersecurity reports, then compare their findings on topics such as ransomware, breaches, cloud security, and AI. Analyses identify the reports consulted and cite each figure by vendor, year, and report, including where sources disagree.

  • Find reports in a cybersecurity topic area
  • Fetch a specific vendor report
  • Compare ransomware findings across reports
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Compare a component's own design needs with the goals of the larger system through three structured passes. The result identifies conflicts, recommends an appropriate scope, and assesses whether the proposed design fits the whole.

  • Choosing between a service, a library, and inline code
  • Comparing feature requests with product goals
  • Checking how new components fit an existing system
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Aphorisms

FreeSummary

Find quotes that fit a text’s themes, with attribution and a short reason for each suggestion. Add sourced quotes, research thinkers, and organize a quote collection by theme and usage history to avoid repetition.

  • Finding a fitting quote for a newsletter
  • Saving sourced quotes without duplicates
  • Researching a thinker’s quotes by theme
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Art

FreeSummary

Create blog illustrations, technical diagrams, comparisons, comics, and icons through workflows tailored to each format. The skill guides composition, color, and model selection, then stages generated images for review before they are used in a project.

  • Creating blog header illustrations
  • Explaining a system with a technical diagram
  • Visualizing comparisons and timelines
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

ArtDirection

FreeSummary

Assess the visual quality of images, films, slides, and site captures against a brief and craft criteria. Two vision judges score the work and rank defects, guiding bounded revision; delivery is gated on a passing critique, with human calibration labels recorded separately.

  • Reviewing a render and listing the most important visual defects
  • Iterating on a film or slide deck until it meets a defined bar
  • Checking whether an image reads as professional
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

ArXiv

FreeSummary

Find arXiv papers by topic, research category, or paper ID. Retrieve titles, authors, abstracts, and links, check new submissions, and add AlphaXiv's AI-generated overviews when available to help decide which papers to read.

  • Checking new AI and machine learning papers
  • Finding papers on a specific research topic
  • Looking up a paper by its ID or arXiv URL
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

See all skills by danielmiessler

Report a problem with this skill