Session Log
Scans today's agent transcripts from Cursor and Claude, extracts a brief
summary of what was worked on, and writes a tagged daily entry into the
Second Brain wiki. Composes with second-brain-ingest for wiki integration.
Skill Composition
| Step |
Delegates to |
What it provides |
| Wiki page creation |
second-brain-ingest Steps 2-10 |
Tagging, cross-linking, index update, log update, tag index, KB files |
| Agent transcript reading |
work-context / standup-writer patterns |
Transcript location, JSONL format, directory listing |
What this skill adds: daily aggregation of all agent sessions across
all workspaces (my-cursor-claw, prototype-creator, automated-usability-testing,
cursor-skills) into a single structured wiki page with importance scoring,
people detection, carry-forward tracking, and auto-resolve.
Workflow
Step 1: Determine the date
Default to today. If the user says "yesterday's sessions" or specifies a
date, use that instead. Store as TARGET_DATE in YYYY-MM-DD format.
Step 2: Find agent transcripts for the date
Transcript locations:
Cursor transcripts (all workspaces):
~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts/
~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts/
~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts/
~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts/
Always scan all workspace transcript directories — work in prototype-creator,
automated-usability-testing, and cursor-skills is core internship work and must
be captured even when running session-log from my-cursor-claw.
Claude Code transcripts (if available):
~/.claude/projects/ — check for any JSONL files modified on TARGET_DATE.
List directories modified on the target date across all workspaces:
for dir in \
~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts \
~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts \
~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts \
~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts; do
find "$dir" -maxdepth 1 -type d -newermt "{TARGET_DATE} 00:00" \
! -newermt "{TARGET_DATE} 23:59" 2>/dev/null
done | sort
Also check for Claude Code conversations if the directory exists:
find ~/.claude/projects/ -name "*.jsonl" -newermt "{TARGET_DATE} 00:00" \
! -newermt "{TARGET_DATE} 23:59" 2>/dev/null | sort
Step 3: Read and summarize each session
For each transcript found, read the JSONL file and extract:
Topic — what was the user trying to do? Read the first user message
(look for <user_query> tags or the raw message text).
What was worked on — scan assistant messages for tool calls that
reveal actions taken:
Write / StrReplace tool calls = files created or modified
Delete tool calls = files deleted
Shell tool calls with git, gh, npm = commands run
CallMcpTool calls = external system interactions
What changed — extract file paths from tool calls to build a list
of files created, modified, and deleted.
Why — read the assistant's reasoning around each change. Look for
explanatory text between tool calls that describes intent.
Outcome — did the session end successfully? Check the last few
messages for confirmation, errors, or open questions.
Reading strategy to keep it fast:
Cap at 15 transcripts per day.
Step 3.5: Score importance
After summarizing each session, assign an importance score (1–5) using these
signals additively (start at 1, cap at 5):
| Signal |
Boost |
Detection |
| Involves manager ( / ) |
+2 |
Name appears in transcript content or Slack MCP calls reference him |
| Involves senior stakeholder (, , ) |
+1 |
Name appears in transcript |
| Produces a deliverable (PR merged, skill shipped, doc published) |
+2 |
git push, gh pr create, file created in a shared repo |
| Carries forward from previous day |
+1 per day carried |
Matched against yesterday's carried-forward items |
| Session ended blocked or errored |
+1 |
Outcome = "blocked" or last messages contain errors |
| Touches an active sprint ticket |
+1 |
Jira ticket key (e.g. -*) appears in transcript |
| Pure networking / intro meeting (no deliverables, no follow-ups) |
-1 |
Session topic is introductions, coffee chat, or meet-and-greet with no action items → also apply #networking tag |
| Exploratory / research only |
0 |
No boost, no penalty |
Scoring rules:
- Minimum score is 1, maximum is 5.
- Sessions scoring 4–5 are marked
[IMPORTANT] in the output.
- Carried-forward items that reach 3+ days are auto-promoted to score 5 regardless of other signals.
Step 3.6: Detect people
Scan each session's transcript content for references to key collaborators.
Apply people tags when detected:
| Person |
Detection patterns |
Tag |
| (manager) |
"", "Zachary", "Bodnar", DM channel with , 1:1 calendar event |
#zack |
|
"", "Braren", prototype-creator discussions with |
#andy |
|
"", "Morley" |
#beau |
|
"", "Huels" |
#steven |
| Group context |
3+ people referenced, standup, retro, team meeting |
#team |
People tags use the pf-m-blue color class (matching tag-scanner conventions).
Step 4: Build the daily entry
Sort sessions by importance score (highest first). Create a structured
summary with this format:
# Session Log — YYYY-MM-DD
**Signal:** <N> important items<, M stale carry-forwards if any>
**Tags:** #daily-log #YYYY-MM-DD #<people-tags> #<status-tags> #<project-tags>
## Summary
<2-3 sentence overview of the day's agent work, leading with the most important item>
## Sessions (sorted by importance)
### 1. [IMPORTANT] <High-score session topic>
- **Importance:** N/5 (<brief reason — e.g. "involves manager + deliverable">)
- **What:** <brief description of work done>
- **Changed:** <files created/modified/deleted>
- **Why:** <reasoning or motivation>
- **Outcome:** <completed / in progress / blocked>
### 2. <Medium-score session topic>
- **Importance:** N/5 (<brief reason>)
- **What:** ...
- **Changed:** ...
- **Why:** ...
- **Outcome:** ...
### 3. <Low-score session topic>
- **Importance:** N/5 (<brief reason — e.g. "networking, no deliverables">)
- **What:** ...
- **Outcome:** ...
## Carried Forward
### [DAY N] <Topic from previous day>
- **Originally:** YYYY-MM-DD
- **Importance:** N/5 (<auto-escalated if 3+ days>)
- **Last status:** <in progress / blocked — details>
## Files Touched
| File | Action | Session |
|------|--------|---------|
| .cursor/skills/work-context/SKILL.md | Created | 1 |
| canvases/work-context.canvas.tsx | Created | 1 |
| .cursor/skills/meeting-prep/SKILL.md | Created | 2 |
## Related
- [<linked wiki pages>](<file>.md)
Output rules:
- Sessions scoring 4–5 get the
[IMPORTANT] prefix in their heading.
- Sessions scoring 1 can omit
Changed and Why fields (just What + Outcome).
- The
## Carried Forward section only appears if there are carry-forward items.
- The
**Signal:** line always appears — it's the at-a-glance summary for skimming.
Tag generation rules:
Always include:
#daily-log
#YYYY-MM-DD (the date)
People tags (auto-detected from Step 3.6, pf-m-blue color):
#zack — any interaction, message, or reference to /
#andy — references
#beau — references
#steven — references
#team — group meetings, standups, retros (3+ people)
Status tags (derived from importance scoring and outcomes):
#blocked (pf-m-orange) — session ended with unresolved blocker
#shipped (pf-m-green) — deliverable completed and pushed/shared
#carried-forward (pf-m-orange) — item appeared yesterday and is still open
#stale (pf-m-orange) — carried forward 3+ days, auto-escalated
#decision-made (pf-m-green) — a decision was recorded or committed to
#manager-sync (pf-m-grey) — 1:1 or direct feedback loop with manager
Context tags (derived from content):
#sprint-work (pf-m-purple) — touches an active Jira sprint ticket
#networking (pf-m-grey) — intro meetings, coffee chats, no deliverables
#skills — if any skill SKILL.md files were created or modified
#canvas — if any .canvas.tsx files were created
#eval — if eval-related work was done
#mcp — if MCP tools were called for external system interaction
#prototype-creator — if prototype-creator related work appeared
#second-brain — if wiki pages were created or modified
#jira — if Jira tickets were referenced or modified
#github — if PRs or commits were made
#debugging — if the session involved troubleshooting or fixing errors
- Add any project-specific tags that match existing wiki page slugs
Tag limits: 5–10 tags per entry. People and status tags do not count
toward the limit — they are always included when detected. Prefer specific
tags over generic ones.
Step 4.5: Carry forward unresolved items
Before writing, check for items that should carry forward from previous days.
Owner filtering (critical): Only carry forward items that belong to
Evan or block Evan's work. Items tagged with [[The group]],
[[Ansible UX]], [[EX team]], or any non-Evan owner are NEVER
carried forward. They stay in the meeting note where they originated.
Items tagged with another person (e.g. [[<COLLEAGUE_1>]]) are only
carried if they explicitly block Evan's work.
Read yesterday's log: Open ~/second-brain/wiki/session-log-{YESTERDAY}.md
(calculate YESTERDAY from TARGET_DATE). If it doesn't exist, check the most
recent session-log file instead.
Extract unresolved items: Find sessions with Outcome: in progress or
Outcome: blocked. Also look for an existing ## Carried Forward section
in yesterday's log (items may already be carrying). Apply owner filtering.
Increment carry counter: For each unresolved item, track how many
consecutive days it has appeared:
- If the item's
[DAY N] marker exists, increment N.
- If it's new from yesterday (no marker), start at
[DAY 2].
Auto-escalate stale items: If an item reaches DAY 3+:
- Set its importance to 5 (regardless of other signals).
- Add
#stale tag to the daily entry.
- Move it to the top of the Carried Forward section.
Auto-close dropped items: If a carried-forward item does NOT appear in
today's transcripts AND is NOT tagged #blocked AND has been absent for
2 consecutive days, mark it Resolved (auto-closed — no activity for 2 days)
and stop carrying it forward.
Auto-expire long-lived items: If an item reaches DAY 7+ with no
progress noted in any transcript, mark it
Expired (7+ days, needs re-evaluation) and stop carrying it forward.
Move it to an ## Expired section for reference.
Build the Carried Forward section using this format:
## Carried Forward
### [DAY N] <Original session topic>
- **Originally:** YYYY-MM-DD
- **Importance:** N/5 (<reason — auto-escalated if 3+ days>)
- **Last status:** <in progress / blocked — details from last log>
Skip if empty: If no items carry forward, omit the section entirely.
Step 5: Write to Second Brain wiki
Delegate to second-brain-ingest Steps 2-10:
Check existing pages — scan ~/second-brain/wiki/ first 10 lines
of each .md file for cross-linking decisions (Step 2).
Tags — this skill already generates its own tags in Step 4 above
(daily-log, people, status, context tags), so second-brain-ingest
Step 3 can reuse them directly instead of re-deriving tags from scratch.
Create the wiki page at:
~/second-brain/wiki/session-log-YYYY-MM-DD.md
Follow second-brain-ingest Step 4 rules:
- Start with
# Session Log — YYYY-MM-DD
- Second line:
**Tags:** #tag1 #tag2 ... from this skill's Step 4
- Add a "Related" section with links to connected wiki pages
- Add a "Sources" section noting the transcript UUIDs
Update existing pages — add a link back from any related pages
in their "Related" section (Step 5).
Update index.md — add under a "Session Logs" category. Create the
category if it doesn't exist yet (Step 6).
Update log.md — append a log entry (Step 7):
## YYYY-MM-DD — Session Log
**Sessions:** N agent conversations
**Created:** session-log-YYYY-MM-DD.md — <one-line summary>
**Tags:** #daily-log #skills #canvas ...
**Cross-linked with:** <list of updated pages>
**Category:** Session Logs
Update the tag index — apply second-brain-ingest Step 8 so this
entry's tags are queryable without re-scanning every wiki page.
Update the KB files — apply second-brain-ingest Step 9, plus two
things specific to session-log:
- Any item in this entry's
## Carried Forward section that's owned by
Evan belongs in ~/second-brain/pending-actions.md too, not just the
dated session log page -- carried-forward items are exactly the kind of
thing that gets lost between a daily log entry and the next time anyone
looks for it.
- Overwrite
~/second-brain/rolling-context.md's ## Right Now
section with today's highest-importance session topic(s) (the
[IMPORTANT]-flagged ones), and refresh ## Recent Decisions if this
session recorded any (#decision-made tag). This is the "daily journal
writes back to the KB" step -- see
second-brain-checkup for the
complementary read side.
Step 6: Confirm
Tell the user:
- How many sessions were logged
- The wiki page path
- Which tags were applied
- Which existing wiki pages were cross-linked
- Any sessions that seemed incomplete or had open questions
Auto-Resolve Rules
This skill operates without user interaction by default. No "did you
complete this?" prompts. The importance engine and carry-forward mechanism
replace manual check-ins entirely.
| Rule |
Behavior |
| No prompt needed |
The session log runs, scores, sorts, and writes. Zero questions asked. |
| Auto-close carried items |
If a carried-forward item doesn't appear in transcripts for 2 consecutive days AND isn't tagged #blocked, mark it as Resolved (auto-closed) and stop carrying. |
| Auto-escalate |
Items carried 3+ days get #stale, importance = 5, and appear at the top of Carried Forward. |
| Daily signal line |
The **Signal:** line always appears at the top — count of important items + any stale carry-forwards by name. |
| Importance replaces manual triage |
You don't need to ask "was this important?" — the scoring table determines it from transcript evidence. |
What "auto" means in practice:
- Intro meetings with peers (no action items, no follow-ups) automatically score 1/5 and sink to the bottom. No tagging needed.
- A 1:1 with that produces a new task automatically scores 4/5 and gets
[IMPORTANT] + #zack + #manager-sync.
- A blocked PR that carries for 3 days auto-escalates to 5/5 +
#stale without any user action.
Fallback Behavior
| Situation |
Handling |
| No transcripts for the date |
Tell the user: "No agent sessions found for {date}." |
| Transcript is too short (< 5 lines) |
Skip it — likely an abandoned or trivial session |
| Transcript has no tool calls |
Still log it if the user query reveals a substantive topic (research, planning, Q&A about a project) |
| Second Brain wiki doesn't exist |
Create ~/second-brain/wiki/ and index.md / log.md if missing |
| Session Log category doesn't exist in index |
Create it |
| No previous session log exists (first run) |
Skip carry-forward — no items to carry |
| Carried-forward item resolved in today's sessions |
Move it from Carried Forward to the regular Sessions list with outcome = "completed" |
Common Mistakes
| Problem |
Fix |
| Reading entire transcripts |
Use the bookend strategy: first 10 lines + ripgrep for tool calls + last 10 lines. Full reads are too slow for 10+ transcripts. |
| Verbose session summaries |
Keep each session to 5 lines: Importance, What, Changed, Why, Outcome. The log is a reference, not a narrative. |
| Missing the "why" |
The reasoning is in the assistant's text between tool calls. Don't just list file changes — capture the intent. |
| Too many tags |
People + status tags are always included. Context tags cap at 5–8. Prefer specific (#prototype-creator) over generic (#coding). |
| Not cross-linking |
Always run second-brain-ingest Steps 3-5 to tag and connect to active project pages. Session logs are most valuable when linked to project pages. |
| Skipping trivial-looking sessions |
A session that only asked a question might have surfaced an important insight. Include it if the topic is project-relevant, even without file changes. Score it appropriately (low importance is fine — but still log it). |
| Logging the same day twice |
Check if session-log-YYYY-MM-DD.md already exists. If so, append new sessions to the existing page rather than overwriting. |
| Asking the user to triage |
Never ask "was this important?" or "should I carry this forward?" — the scoring engine decides automatically. |
| Forgetting carry-forward on first run |
If no previous session log exists, skip Step 4.5 cleanly. Don't error. |
1---2name: session-log3description: Scans today's Cursor and Claude agent transcripts, distills what was worked on, changed, deleted, and why, then creates a tagged daily entry in the Second Brain wiki. Use when the user says "log my sessions", "what did I do in cursor today", "save my session history", "daily session log", "log today's work", "end of day log", "journal my sessions", or asks to record what they worked on in agent conversations.4---56# Session Log78Scans today's agent transcripts from Cursor and Claude, extracts a brief9summary of what was worked on, and writes a tagged daily entry into the10Second Brain wiki. Composes with `second-brain-ingest` for wiki integration.1112## Skill Composition1314| Step | Delegates to | What it provides |15|------|-------------|-----------------|16| Wiki page creation | `second-brain-ingest` Steps 2-10 | Tagging, cross-linking, index update, log update, tag index, KB files |17| Agent transcript reading | `work-context` / `standup-writer` patterns | Transcript location, JSONL format, directory listing |1819**What this skill adds:** daily aggregation of all agent sessions **across20all workspaces** (my-cursor-claw, prototype-creator, automated-usability-testing,21cursor-skills) into a single structured wiki page with importance scoring,22people detection, carry-forward tracking, and auto-resolve.2324## Workflow2526### Step 1: Determine the date2728Default to today. If the user says "yesterday's sessions" or specifies a29date, use that instead. Store as `TARGET_DATE` in `YYYY-MM-DD` format.3031### Step 2: Find agent transcripts for the date3233Transcript locations:3435**Cursor transcripts (all workspaces):**36- `~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts/`37- `~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts/`38- `~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts/`39- `~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts/`4041Always scan all workspace transcript directories — work in prototype-creator,42automated-usability-testing, and cursor-skills is core internship work and must43be captured even when running session-log from my-cursor-claw.4445**Claude Code transcripts (if available):**46`~/.claude/projects/` — check for any JSONL files modified on `TARGET_DATE`.4748List directories modified on the target date across all workspaces:4950```bash51for dir in \52 ~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts \53 ~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts \54 ~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts \55 ~/.cursor/projects/<YOUR_WORKSPACE_PROJECT_ID>/agent-transcripts; do56 find "$dir" -maxdepth 1 -type d -newermt "{TARGET_DATE} 00:00" \57 ! -newermt "{TARGET_DATE} 23:59" 2>/dev/null58done | sort59```6061Also check for Claude Code conversations if the directory exists:6263```bash64find ~/.claude/projects/ -name "*.jsonl" -newermt "{TARGET_DATE} 00:00" \65 ! -newermt "{TARGET_DATE} 23:59" 2>/dev/null | sort66```6768### Step 3: Read and summarize each session6970For each transcript found, read the JSONL file and extract:71721. **Topic** — what was the user trying to do? Read the first user message73 (look for `<user_query>` tags or the raw message text).74752. **What was worked on** — scan assistant messages for tool calls that76 reveal actions taken:77 - `Write` / `StrReplace` tool calls = files created or modified78 - `Delete` tool calls = files deleted79 - `Shell` tool calls with `git`, `gh`, `npm` = commands run80 - `CallMcpTool` calls = external system interactions81823. **What changed** — extract file paths from tool calls to build a list83 of files created, modified, and deleted.84854. **Why** — read the assistant's reasoning around each change. Look for86 explanatory text between tool calls that describes intent.87885. **Outcome** — did the session end successfully? Check the last few89 messages for confirmation, errors, or open questions.9091**Reading strategy to keep it fast:**92- Read the first 10 lines for the topic and initial context93- Scan for tool call patterns (Write, StrReplace, Delete, Shell, CallMcpTool)94 using ripgrep rather than reading every line:95 ```bash96 rg '"name":"(Write|StrReplace|Delete|Shell|CallMcpTool)"' <transcript.jsonl> | head -3097 ```98- Read the last 10 lines for the outcome99- Skip the middle unless the topic is unclear from the bookends100101Cap at 15 transcripts per day.102103### Step 3.5: Score importance104105After summarizing each session, assign an importance score (1–5) using these106signals additively (start at 1, cap at 5):107108| Signal | Boost | Detection |109|--------|-------|-----------|110| Involves manager (<YOUR_MANAGER> / <YOUR_MANAGER>) | +2 | Name appears in transcript content or Slack MCP calls reference him |111| Involves senior stakeholder (<COLLEAGUE_1>, <COLLEAGUE_2>, <COLLEAGUE_3>) | +1 | Name appears in transcript |112| Produces a deliverable (PR merged, skill shipped, doc published) | +2 | `git push`, `gh pr create`, file created in a shared repo |113| Carries forward from previous day | +1 per day carried | Matched against yesterday's carried-forward items |114| Session ended blocked or errored | +1 | Outcome = "blocked" or last messages contain errors |115| Touches an active sprint ticket | +1 | Jira ticket key (e.g. <YOUR_JIRA_PROJECT>-*) appears in transcript |116| Pure networking / intro meeting (no deliverables, no follow-ups) | -1 | Session topic is introductions, coffee chat, or meet-and-greet with no action items → also apply `#networking` tag |117| Exploratory / research only | 0 | No boost, no penalty |118119**Scoring rules:**120- Minimum score is 1, maximum is 5.121- Sessions scoring 4–5 are marked `[IMPORTANT]` in the output.122- Carried-forward items that reach 3+ days are auto-promoted to score 5 regardless of other signals.123124### Step 3.6: Detect people125126Scan each session's transcript content for references to key collaborators.127Apply people tags when detected:128129| Person | Detection patterns | Tag |130|--------|-------------------|-----|131| <YOUR_MANAGER> (manager) | "<YOUR_MANAGER>", "Zachary", "Bodnar", DM channel with <YOUR_MANAGER>, 1:1 calendar event | `#zack` |132| <COLLEAGUE_1> | "<COLLEAGUE_1>", "Braren", prototype-creator discussions with <COLLEAGUE_1> | `#andy` |133| <COLLEAGUE_2> | "<COLLEAGUE_2>", "Morley" | `#beau` |134| <COLLEAGUE_3> | "<COLLEAGUE_3>", "Huels" | `#steven` |135| Group context | 3+ people referenced, standup, retro, team meeting | `#team` |136137People tags use the `pf-m-blue` color class (matching tag-scanner conventions).138139### Step 4: Build the daily entry140141Sort sessions by importance score (highest first). Create a structured142summary with this format:143144```markdown145# Session Log — YYYY-MM-DD146147**Signal:** <N> important items<, M stale carry-forwards if any>148149**Tags:** #daily-log #YYYY-MM-DD #<people-tags> #<status-tags> #<project-tags>150151## Summary152153<2-3 sentence overview of the day's agent work, leading with the most important item>154155## Sessions (sorted by importance)156157### 1. [IMPORTANT] <High-score session topic>158- **Importance:** N/5 (<brief reason — e.g. "involves manager + deliverable">)159- **What:** <brief description of work done>160- **Changed:** <files created/modified/deleted>161- **Why:** <reasoning or motivation>162- **Outcome:** <completed / in progress / blocked>163164### 2. <Medium-score session topic>165- **Importance:** N/5 (<brief reason>)166- **What:** ...167- **Changed:** ...168- **Why:** ...169- **Outcome:** ...170171### 3. <Low-score session topic>172- **Importance:** N/5 (<brief reason — e.g. "networking, no deliverables">)173- **What:** ...174- **Outcome:** ...175176## Carried Forward177178### [DAY N] <Topic from previous day>179- **Originally:** YYYY-MM-DD180- **Importance:** N/5 (<auto-escalated if 3+ days>)181- **Last status:** <in progress / blocked — details>182183## Files Touched184185| File | Action | Session |186|------|--------|---------|187| .cursor/skills/work-context/SKILL.md | Created | 1 |188| canvases/work-context.canvas.tsx | Created | 1 |189| .cursor/skills/meeting-prep/SKILL.md | Created | 2 |190191## Related192193- [<linked wiki pages>](<file>.md)194```195196**Output rules:**197- Sessions scoring 4–5 get the `[IMPORTANT]` prefix in their heading.198- Sessions scoring 1 can omit `Changed` and `Why` fields (just `What` + `Outcome`).199- The `## Carried Forward` section only appears if there are carry-forward items.200- The `**Signal:**` line always appears — it's the at-a-glance summary for skimming.201202**Tag generation rules:**203204Always include:205- `#daily-log`206- `#YYYY-MM-DD` (the date)207208**People tags** (auto-detected from Step 3.6, `pf-m-blue` color):209- `#zack` — any interaction, message, or reference to <YOUR_MANAGER>/<YOUR_MANAGER>210- `#andy` — <COLLEAGUE_1> references211- `#beau` — <COLLEAGUE_2> references212- `#steven` — <COLLEAGUE_3> references213- `#team` — group meetings, standups, retros (3+ people)214215**Status tags** (derived from importance scoring and outcomes):216- `#blocked` (`pf-m-orange`) — session ended with unresolved blocker217- `#shipped` (`pf-m-green`) — deliverable completed and pushed/shared218- `#carried-forward` (`pf-m-orange`) — item appeared yesterday and is still open219- `#stale` (`pf-m-orange`) — carried forward 3+ days, auto-escalated220- `#decision-made` (`pf-m-green`) — a decision was recorded or committed to221- `#manager-sync` (`pf-m-grey`) — 1:1 or direct feedback loop with manager222223**Context tags** (derived from content):224- `#sprint-work` (`pf-m-purple`) — touches an active Jira sprint ticket225- `#networking` (`pf-m-grey`) — intro meetings, coffee chats, no deliverables226- `#skills` — if any skill SKILL.md files were created or modified227- `#canvas` — if any .canvas.tsx files were created228- `#eval` — if eval-related work was done229- `#mcp` — if MCP tools were called for external system interaction230- `#prototype-creator` — if prototype-creator related work appeared231- `#second-brain` — if wiki pages were created or modified232- `#jira` — if Jira tickets were referenced or modified233- `#github` — if PRs or commits were made234- `#debugging` — if the session involved troubleshooting or fixing errors235- Add any project-specific tags that match existing wiki page slugs236237**Tag limits:** 5–10 tags per entry. People and status tags do not count238toward the limit — they are always included when detected. Prefer specific239tags over generic ones.240241### Step 4.5: Carry forward unresolved items242243Before writing, check for items that should carry forward from previous days.244245**Owner filtering (critical):** Only carry forward items that belong to246Evan or block Evan's work. Items tagged with `[[The group]]`,247`[[Ansible UX]]`, `[[EX team]]`, or any non-Evan owner are NEVER248carried forward. They stay in the meeting note where they originated.249Items tagged with another person (e.g. `[[<COLLEAGUE_1>]]`) are only250carried if they explicitly block Evan's work.2512521. **Read yesterday's log:** Open `~/second-brain/wiki/session-log-{YESTERDAY}.md`253 (calculate YESTERDAY from TARGET_DATE). If it doesn't exist, check the most254 recent session-log file instead.2552562. **Extract unresolved items:** Find sessions with `Outcome: in progress` or257 `Outcome: blocked`. Also look for an existing `## Carried Forward` section258 in yesterday's log (items may already be carrying). Apply owner filtering.2592603. **Increment carry counter:** For each unresolved item, track how many261 consecutive days it has appeared:262 - If the item's `[DAY N]` marker exists, increment N.263 - If it's new from yesterday (no marker), start at `[DAY 2]`.2642654. **Auto-escalate stale items:** If an item reaches DAY 3+:266 - Set its importance to 5 (regardless of other signals).267 - Add `#stale` tag to the daily entry.268 - Move it to the top of the Carried Forward section.2692705. **Auto-close dropped items:** If a carried-forward item does NOT appear in271 today's transcripts AND is NOT tagged `#blocked` AND has been absent for272 2 consecutive days, mark it `Resolved (auto-closed — no activity for 2 days)`273 and stop carrying it forward.2742756. **Auto-expire long-lived items:** If an item reaches DAY 7+ with no276 progress noted in any transcript, mark it277 `Expired (7+ days, needs re-evaluation)` and stop carrying it forward.278 Move it to an `## Expired` section for reference.2792807. **Build the Carried Forward section** using this format:281 ```markdown282 ## Carried Forward283284 ### [DAY N] <Original session topic>285 - **Originally:** YYYY-MM-DD286 - **Importance:** N/5 (<reason — auto-escalated if 3+ days>)287 - **Last status:** <in progress / blocked — details from last log>288 ```2892908. **Skip if empty:** If no items carry forward, omit the section entirely.291292### Step 5: Write to Second Brain wiki293294Delegate to `second-brain-ingest` Steps 2-10:2952961. **Check existing pages** — scan `~/second-brain/wiki/` first 10 lines297 of each .md file for cross-linking decisions (Step 2).2982992. **Tags** — this skill already generates its own tags in Step 4 above300 (daily-log, people, status, context tags), so `second-brain-ingest`301 Step 3 can reuse them directly instead of re-deriving tags from scratch.3023033. **Create the wiki page** at:304 `~/second-brain/wiki/session-log-YYYY-MM-DD.md`305306 Follow `second-brain-ingest` Step 4 rules:307 - Start with `# Session Log — YYYY-MM-DD`308 - Second line: `**Tags:** #tag1 #tag2 ...` from this skill's Step 4309 - Add a "Related" section with links to connected wiki pages310 - Add a "Sources" section noting the transcript UUIDs3113124. **Update existing pages** — add a link back from any related pages313 in their "Related" section (Step 5).3143155. **Update index.md** — add under a "Session Logs" category. Create the316 category if it doesn't exist yet (Step 6).3173186. **Update log.md** — append a log entry (Step 7):319 ```320 ## YYYY-MM-DD — Session Log321322 **Sessions:** N agent conversations323 **Created:** session-log-YYYY-MM-DD.md — <one-line summary>324 **Tags:** #daily-log #skills #canvas ...325 **Cross-linked with:** <list of updated pages>326 **Category:** Session Logs327 ```3283297. **Update the tag index** — apply `second-brain-ingest` Step 8 so this330 entry's tags are queryable without re-scanning every wiki page.3313328. **Update the KB files** — apply `second-brain-ingest` Step 9, plus two333 things specific to session-log:334 - Any item in this entry's `## Carried Forward` section that's owned by335 Evan belongs in `~/second-brain/pending-actions.md` too, not just the336 dated session log page -- carried-forward items are exactly the kind of337 thing that gets lost between a daily log entry and the next time anyone338 looks for it.339 - **Overwrite** `~/second-brain/rolling-context.md`'s `## Right Now`340 section with today's highest-importance session topic(s) (the341 `[IMPORTANT]`-flagged ones), and refresh `## Recent Decisions` if this342 session recorded any (`#decision-made` tag). This is the "daily journal343 writes back to the KB" step -- see344 [second-brain-checkup](../second-brain-checkup/SKILL.md) for the345 complementary read side.346347### Step 6: Confirm348349Tell the user:350- How many sessions were logged351- The wiki page path352- Which tags were applied353- Which existing wiki pages were cross-linked354- Any sessions that seemed incomplete or had open questions355356## Auto-Resolve Rules357358This skill operates **without user interaction** by default. No "did you359complete this?" prompts. The importance engine and carry-forward mechanism360replace manual check-ins entirely.361362| Rule | Behavior |363|------|----------|364| **No prompt needed** | The session log runs, scores, sorts, and writes. Zero questions asked. |365| **Auto-close carried items** | If a carried-forward item doesn't appear in transcripts for 2 consecutive days AND isn't tagged `#blocked`, mark it as `Resolved (auto-closed)` and stop carrying. |366| **Auto-escalate** | Items carried 3+ days get `#stale`, importance = 5, and appear at the top of Carried Forward. |367| **Daily signal line** | The `**Signal:**` line always appears at the top — count of important items + any stale carry-forwards by name. |368| **Importance replaces manual triage** | You don't need to ask "was this important?" — the scoring table determines it from transcript evidence. |369370**What "auto" means in practice:**371- Intro meetings with peers (no action items, no follow-ups) automatically score 1/5 and sink to the bottom. No tagging needed.372- A 1:1 with <YOUR_MANAGER> that produces a new task automatically scores 4/5 and gets `[IMPORTANT]` + `#zack` + `#manager-sync`.373- A blocked PR that carries for 3 days auto-escalates to 5/5 + `#stale` without any user action.374375## Fallback Behavior376377| Situation | Handling |378|-----------|---------|379| No transcripts for the date | Tell the user: "No agent sessions found for {date}." |380| Transcript is too short (< 5 lines) | Skip it — likely an abandoned or trivial session |381| Transcript has no tool calls | Still log it if the user query reveals a substantive topic (research, planning, Q&A about a project) |382| Second Brain wiki doesn't exist | Create `~/second-brain/wiki/` and `index.md` / `log.md` if missing |383| Session Log category doesn't exist in index | Create it |384| No previous session log exists (first run) | Skip carry-forward — no items to carry |385| Carried-forward item resolved in today's sessions | Move it from Carried Forward to the regular Sessions list with outcome = "completed" |386387## Common Mistakes388389| Problem | Fix |390|---------|-----|391| Reading entire transcripts | Use the bookend strategy: first 10 lines + ripgrep for tool calls + last 10 lines. Full reads are too slow for 10+ transcripts. |392| Verbose session summaries | Keep each session to 5 lines: Importance, What, Changed, Why, Outcome. The log is a reference, not a narrative. |393| Missing the "why" | The reasoning is in the assistant's text between tool calls. Don't just list file changes — capture the intent. |394| Too many tags | People + status tags are always included. Context tags cap at 5–8. Prefer specific (#prototype-creator) over generic (#coding). |395| Not cross-linking | Always run `second-brain-ingest` Steps 3-5 to tag and connect to active project pages. Session logs are most valuable when linked to project pages. |396| Skipping trivial-looking sessions | A session that only asked a question might have surfaced an important insight. Include it if the topic is project-relevant, even without file changes. Score it appropriately (low importance is fine — but still log it). |397| Logging the same day twice | Check if `session-log-YYYY-MM-DD.md` already exists. If so, append new sessions to the existing page rather than overwriting. |398| Asking the user to triage | Never ask "was this important?" or "should I carry this forward?" — the scoring engine decides automatically. |399| Forgetting carry-forward on first run | If no previous session log exists, skip Step 4.5 cleanly. Don't error. |