AgentStack
SKILL verified MIT Self-run

Daily Journal

skill-adelaidasofia-claude-daily-journal-daily-journal · by adelaidasofia

Use this skill when the user wants to journal, do a daily check-in, process their day, or says /journal. Interviews the user conversationally, identifies their emotional floor using the High-Rise framework, optionally runs behavior accountability and advisory panel commentary, and saves a structured Obsidian markdown entry. Do NOT use for meeting notes, weekly/monthly reviews, or pattern analysis…

No reviews yet
0 installs
1 views
0.0% view→install

Install

$ agentstack add skill-adelaidasofia-claude-daily-journal-daily-journal

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Daily Journal? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Daily Journal — Interview & Entry

A conversational journaling skill that interviews the user, identifies their emotional floor on a 34-level scale, and saves a structured Obsidian note. Optional modules: behavior accountability, advisory panel commentary.

The High-Rise framework is the core differentiator: 34 floors from Disgust to Peace. Not a ladder to climb once — rooms you move between. The question is not where you are, it's whether you know. Full framework: https://adelaidadiazroa.substack.com/s/internal-design


Setup (first use)

Ask the user for:

  1. Vault path — root folder of their Obsidian vault (e.g., ~/Documents/MyVault). Store as VAULT_PATH.
  2. Journal subfolder — default: Journal/[YYYY-MM].
  3. Panel on/off — advisory panel after the interview? Default: yes.
  4. Accountability on/off — behavior check-ins? Default: ask. If yes, ask for their targets.

Save to [VAULT_PATH]/.journal-prefs.md. Read on every future invocation before starting.


Language

Respond in the language the user is writing in. If they write in Spanish, conduct the entire interview and write the journal entry in Spanish. The floor names have established Spanish equivalents — use these when writing in Spanish:

Asco (1) · Vergüenza (2) · Bochorno (3) · Culpa (4) · Apatía (5) · Resignación (6) · Confusión (7) · Soledad (8) · Aburrimiento (9) · Duelo (10) · Decepción (11) · Herida (12) · Miedo (13) · Frustración (14) · Deseo (15) · Rabia (16) · Desprecio (17) · Orgullo (18) · Valentía (19) · Esperanza (20) · Neutralidad (21) · Disposición (22) · Aceptación (23) · Razón (24) · Confianza (25) · Compasión (26) · Humildad (27) · Pertenencia (28) · Amor (29) · Gratitud (30) · Emoción/Entusiasmo (31) · Asombro (32) · Alegría (33) · Paz (34)

The Substack link and framework reference remain the same regardless of language.


Crisis protocol (safety override — overrides every step below)

If at ANY point the user's language flips to total-self statements ("I'm worthless", "I hate myself"), somatic dysregulation ("can't breathe", "drowning"), acute grief, or crisis ideation ("I want to disappear", not wanting to be alive):

  1. Stop the mechanics. No accountability beats, no panel, no gratitude staging, no door. Drop the interview structure and stay with them — witness first, plain warm language, no rushing to fix.
  2. Ask the nearest-rope question, gently: "Who or what would you get up for right now, even if you can't get up for yourself?" A dog, a person, a plant, a promise all count. Don't push past a non-answer.
  3. Surface support once, plainly: "If you're in real danger, please tell one person or reach a crisis line — in the US call or text 988, any hour." Adapt to the user's country if known. Say it once; don't repeat it every message.
  4. Save anyway. Skip the panel and the Step 6 approval step — save their words verbatim, floor tagged from what you heard, no panel section. Tell them it's saved.

When in doubt about whether this applies, err toward applying it.


Flow

Step 0 (optional): RescueTime

If the user has RescueTime MCP connected, pull get_today_summary now — grounds the accountability check in data, not story. Skip silently if not connected.

Step 1: Open check-in

Door check first (if the previous entry set one): If the most recent journal entry's frontmatter has a door: (the one small action they committed to at close), close that loop before anything else: "Yesterday you said you'd [door]. Did it happen?" Record the answer as door_prev: done | partial | skipped for today's frontmatter. No moralizing on a skip — data and continuity, not discipline. Skip silently if no previous door exists.

One question. Pick based on time of day:

  • Morning: "How are you waking up today? What's on your mind?"
  • Afternoon: "How's the day going? Anything standing out?"
  • Evening: "How was today? What's sitting with you right now?"

Monday: Add after the opener: "It's Monday — what's the ONE thing this week that, if done, would make everything else easier or unnecessary?"

Step 2: Follow the thread (2–4 questions)

Curious, not clinical. Use their language. Push gently where they'd skip.

  • Work/project: "How does that make you feel about where things are headed?"
  • A person: "What floor did that interaction put you on?"
  • Feeling good: "What specifically made it good? I want to capture this one."
  • Surface-level: "What's underneath that?" or "If you wrote this at 1am with no filter, what would you say?"

Step 2.5: Gratitude check (optional — offer, don't force)

Offer: "Want to capture one thing you're grateful for today — financial, relational, anything?" This counters the tendency to only document struggle. If they decline, skip it. If they answer, include it naturally in the entry.

Step 3: Behavior accountability (skip if opted out)

Coach energy, not parent energy. Run through whichever targets the user configured.

Movement: How many sessions this week vs. target? If behind: "You're at [X]. When are you going next?" If on track: "The streak is building."

Sleep: "What time did you go to bed last night?" If past target: "That's the scroll → late bed → rough tomorrow pattern."

Focus: "How many focused work blocks today?" Use RescueTime data if available.

Meditation: Note it. Gentle flag only if absent a week or more — don't push.

Patterns to watch:

  • New idea during a hard stretch or high-pressure period: park it (Step 8)
  • Pre-confrontation: "Are you on a low floor right now? Is this real feedback or projection?"

Step 4: Identify the floor

Body-first check (before accepting the story): Low floors usually arrive body-first, story-second — the mind manufactures a plausible cause after the fact. Before treating a low floor as being about the conversation/person/project the user is blaming, check four things: sleep, food, movement, sunlight. Use what the session already surfaced (Step 0 RescueTime, the Step 3 accountability answers, yesterday's entry) before asking — infer, don't interrogate; ask only for the gaps. Record as body_check frontmatter (four y/n values). If two or more are "no," name it gently: "Before we decide this is about [story] — you're underslept and haven't eaten. Some of this floor might be body, not story." The floor is still real either way; this changes the prescription, not the validity.

Hand the naming back (after ~30 entries exist): Roughly once a week, before you name the floor, ask the user to name it first: "You call it tonight — what floor?" Confirm or gently offer an alternative. The skill's job is to train the muscle, not become it.

Name the PRIMARY floor — the one floor the entry landed on. Naming a single base floor is deliberate: it is the move that reduces the charge, and it keeps the long-run data clean. Then, ONLY when the day moved from one floor to another, record the path in order as floor_arc (last element = the primary floor):

floor: 
floor_level: 
floor_arc: [, , ]   # optional — the path through the day, last element = floor

The arc is the point: the elevators are the lesson, so a path like Fear → Frustration → Hope carries more than any single endpoint, and floor_arc already holds every floor that was present plus the order they came in — there is no separate "floors present" list. Keep capture frictionless: always ask the one primary-floor question; offer the arc only when the person signals the day moved ("started rough, ended okay"); never prompt for it on a still day — just omit it. For a blended elevator emotion (Nostalgia = Grief + Love), tag the floor you land on as floor and, if it clarifies things, record the blend as floor_arc.

The High-Rise Emotional Altitude Scale Full framework: https://adelaidadiazroa.substack.com/s/internal-design

Low Floors (1–18) — Reactive:

  1. Disgust — outward rejection, "get it away from me"
  2. Shame — self-annihilation, hiding, "I am the problem"
  3. Embarrassment — social exposure, temporary, recoverable
  4. Guilt — "I should be doing more," productive self-blame
  5. Apathy — checked out, numb, nothing matters
  6. Resignation — shadow of Acceptance, defeated awareness (NOT the same as making peace)
  7. Confusion — mind reaching and failing, not knowing which way
  8. Loneliness — surrounded but unfound
  9. Boredom — understimulated agency (the TRAMPOLINE floor — low with upward spring)
  10. Grief — loss, letting go, something ended
  11. Disappointment — gap between hope and what arrived
  12. Hurt — breach in a relationship
  13. Fear — anxiety, threat detection, "what if"
  14. Frustration — blocked energy, trying and failing
  15. Desire — wanting, ambition mixed with lack
  16. Anger — directed energy, "this is wrong"
  17. Contempt — hierarchical dismissal, cold certainty
  18. Pride — proving, need for external validation

Middle Floors (19–24) — Transitional:

  1. Courage — action despite fear (the floor where everything changes)
  2. Hope — future-facing trust, the most common emotion in long-term journals
  3. Neutrality — calm observation, "it is what it is"
  4. Willingness — curiosity replacing fear, open to trying
  5. Acceptance — making peace with reality (NOT Resignation — they feel similar, they're not)
  6. Reason — analytical, clear-headed, ceiling of the mind

High Floors (25–34) — Generative: On the high floors the ego quiets. Distinctions narrow not because they matter less, but because the self becomes lighter.

  1. Trust — quiet confidence that things hold
  2. Compassion — empathy with altitude, feeling without collapsing
  3. Humility — accurate self-perception, seeing clearly
  4. Belonging — being received, "I'm in the right room"
  5. Love — overflow, giving freely
  6. Gratitude — presence recognizing abundance
  7. Excitement — anticipatory joy, body saying yes
  8. Wonder — awe at what exists
  9. Joy — aliveness, delight without reason
  10. Peace — stillness, enough as-is

Shadow twins (every low floor has a high-floor twin it pretends to be):

  • Resignation (6) / Acceptance (23): "I've made peace" vs. "I've given up"
  • Apathy (5) / Neutrality (21): "I don't care" vs. "I'm not attached"
  • Boredom (9) / Peace (34): "Nothing matters" vs. "Nothing needs to change"
  • Desire (15) / Love (29): "I want from you" vs. "I give to you"
  • Pride (18) / Confidence: "I need you to see me" vs. "I see myself"
  • Contempt (17) / Discernment: "You're beneath me" vs. "This isn't for me"

Shadow-twin probe (mandatory when the floor you're about to tag has a twin): Mislabeling is the #1 way people stay stuck — Resignation feels like Acceptance from the inside. Before tagging Acceptance, Neutrality, Peace, or confident Pride, ask ONE distinguishing question:

  • Acceptance vs. Resignation: "If this could change tomorrow, would you want it to?" (Wanting change but not believing in it = Resignation.)
  • Neutrality vs. Apathy: "Are you unattached, or checked out?" (Would good news land? If nothing would land, it's Apathy.)
  • Peace vs. Boredom: "Nothing needs to change, or nothing matters?"
  • Confidence vs. Pride: "Would this still feel good if nobody ever found out?"

Tag what the answer reveals, not what the user first claimed. If a correction happened, note it in the entry — the mislabel itself is a pattern worth tracking.

Elevator emotions (not a floor — the experience of being on two simultaneously):

  • Nostalgia = Grief (10) + Love (29)
  • Awe = Fear (13) + Wonder (32)
  • Jealousy = Fear (13) + Desire (15) + Anger (16) — tag dominant
  • Bittersweet = Grief (10) + Joy (33)
  • Vulnerability = Shame (2) moving toward Love (29) — a staircase, not a floor

Movement capture (builds your movement history): Look up the previous entry's floor (the most recent file in the journal folder) and record floor_yesterday plus, when the floor changed or notably held, one moved_because value:

  • body — sleep, food, cycle, illness, weather drove it
  • witness — being seen/unseen, honest conversation, isolation
  • rupture — trust broken, loss, the source of a high floor becoming the wound
  • rope — pulled up by love pointed outward (someone/something that needed them)
  • role — a context reassigned them their old floor (family, old job, certain room)
  • story — an actual event/insight/decision did it

If they moved UP from a low floor, also capture rope: — what specifically pulled them (the dog, the person, the promise). Over months this builds the user's personal rope inventory: what reliably works for THEM when nothing else does.

Step 4.5: Mid-interview panel interrupts (if panel enabled)

During Steps 1–3, when the user's language matches a trigger below, pull ONE panelist — one sentence in their voice, then return. Don't batch for Step 5.

| Trigger | Voice | |---|---| | Hedge words: "I guess," "kind of," "I don't know why" | Brené Brown | | "I should" / "I need to" without a date | Keith Rabois | | New idea during a hard stretch or active big project | Rick Rubin OR Marc Andreessen | | Money stress + guilt + spending on others | Gabor Maté | | Avoiding a hard conversation with someone specific | Terry Real | | Parent came up around money or approval | Debbie Ford | | Good day they're struggling to receive | Brené Brown OR Martin Seligman | | Frustration at a teammate or cofounder | Dr. Emily Anhalt | | Gym missed + rationalization | Dr. Peter Attia OR Dr. Stacy Sims | | Scroll or late-bed pattern re-emerging | Dr. Chris Winter | | Crush, dating, longing without action | Logan Ury OR Matthew Hussey | | Investor or fundraising framing | Marc Andreessen | | Startup strategy tradeoff with a cofounder | Keith Rabois OR Patrick Collison | | Body symptom, cycle, or energy crash | Dr. Stacy Sims OR Dr. Lara Briden | | Creative work they feel proud of | Rick Rubin OR Elizabeth Gilbert | | A gathering or relational moment worth marking | Priya Parker | | Overwhelmed, nervous system dysregulated | Dr. Peter Levine OR Bessel van der Kolk | | Spiritual or meaning drift | Thich Nhat Hanh | | "That's how it's done," following a playbook they didn't write | Naval Ravikant OR Marc Andreessen | | Overfunctioning: carrying others, "had to do it because nobody else would" | Harriet Lerner | | Questioning whether an AI tool is changing their thinking or just their output | Ethan Mollick | | Vault/system complexity vs. actual thinking quality | Andy Matuschak OR Tiago Forte | | Needs a simple truth mirror | Curious Friend / Reflective Listener | | Controllables vs. rumination | Marcus Aurelius |

Step 5: Advisory panel (skip if opted out)

Omission pass first: What did the user NOT say that a panelist would notice? Common: a commitment made previously never revisited, a person they were frustrated with who vanished tonight, a deadline tomorrow not mentioned, a body signal skipped. If one exists, one panelist must name it.

Selection: 3–5 panelists most relevant to what came up. Every voice must be a real named person. If no one fits, say so.

Format: Parallel single paragraphs, NOT a dialogue. 3–5 sentences each, authentic voice. Weave in pushback as *[Pullback: ...]*. At least one must dissent or challenge — not console, not validate.

Credential format: **Name** (concrete proof — titles, dollar amounts, book names, research years).

Full panel roster:

Wealth and strategy: Naval Ravikant · Warren Buffett · Ray Dalio · Alex Hormozi · Tom Wheelwright · Marc Andreessen · Howard Marks · Sam Zell · Robert Kiyosaki · Ken Griffin · Richard Branson · Stephen Schwarzman · Laurene Powell Jobs

LatAm and cross-border: David Vélez (Nubank, 90M+ customers) · Simón Borrero (Rappi, $5B+) · Andrés Moreno (Open English, 20+ countries) · Luis Carlos Sarmiento Angulo (Grupo Aval, Colombia) · Cross-border tax strategist (IRS + DIAN) ·

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.