skel/.pi/skills/situate-daily-notes/SKILL.md
Situate yourself by generating a 1-page situation report and maintaining Obsidian-style daily summary notes.
npx skillsauth add rcarmo/piclaw situate-daily-notesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Situate yourself by generating a 1-page situation report and maintaining Obsidian-style daily summary notes.
/workspace/.pi/skills/close-of-day/SKILL.mdDo not run this automatically at session start.
bun run /workspace/scripts/situate.ts
This:
web:*, this means all web session trees (root chats plus branches)After running, check for unsummarized notes and write them (see below).
Each daily note now has an agent-facing sidecar at notes/daily/YYYY-MM-DD.agent.json plus rolling summaries under notes/agent-memory/.
situate.ts now consumes those rolling outputs first when building the report, so the agent-facing layer is actually read back during catch-up flows.
notes/agent-memory/current-state.json — compact machine-readable state for recent daysnotes/agent-memory/recent-context.md — concise markdown digest for quick reloadThe narrative markdown note remains the human-readable source; the sidecar is the compact machine layer.
Notes live in notes/daily/YYYY-MM-DD.md and start with YAML front matter:
---
date: 2026-03-04
summarised_until: 2026-03-04T17:55:35.286Z
messages_total: 25
messages_user: 10
messages_assistant: 15
session_trees: 2
session_chats: 4
first_message: 2026-03-04T12:31:03.860Z
last_message: 2026-03-04T17:55:17.309Z
scope_mode: all-web-session-trees
scope_anchor: web:default
---
date must match the file name.summarised_until is the timestamp of the last message covered by the summary.session_trees / session_chats show how many distinct trees/chats contributed to that day.web:* scopes, scope_mode: all-web-session-trees means the note metadata was aggregated across all web roots and branches, not just one visible tab.Daily notes are summaries only — the chat DB is the source of truth for full transcripts.
When situate.ts or daily-notes.ts reports notes needing summaries:
messages tool as the primary source for transcript gathering:
search to locate the day/range you needget to pull exact rows with surrounding contextlimit/offsetextract-chat-history.ts for large exports or if you explicitly need a full transcript artifact.<!-- NEEDS_SUMMARY --> in the note with the summary, and set summarised_until in the front matter to the last message timestamp.If situate.ts reports Partial Summaries, append a block like this:
## Summary update (18:10 UTC)
<!-- NEEDS_SUMMARY_UPDATE -->
Then:
messages.search for the post-watermark rangemessages.get for any exact rows that need more surrounding contextsummarised_until in the front matter to the last message timestamp shown in the reportSet up Azure OpenAI end-to-end. Created
piclawendpointsin Sweden Central, deployed six models across GlobalStandard and DataZoneStandard. Wired managed identity auth with token caching into piclaw. Added a/imagecommand.Cleaned stale deployments from
pragmaanddogma. Set up dual backups (restic + Azure Backup vault). Built metrics charting and subscription diagram skills. Implemented TOTP on the web UI.
situate.ts or daily-notes.ts so the .agent.json sidecars and rolling notes/agent-memory/ outputs stay in sync.| Flag | Default | Description |
|---|---|---|
| --days <n> | 7 | How many days of history to include |
| --out <path> | /workspace/exports/situation.md | Situation report output path |
bun run /workspace/scripts/daily-notes.ts [--days <n>] [--force]
For a complete unabridged transcript with H1 headers per day:
bun run /workspace/scripts/extract-chat-history.ts --summary --out /workspace/exports/web-chat-full.md
For web:*, this export now includes all web session trees and annotates each message with its tree/chat label.
Terse British English. No excitement, no emoji, no "big day" openers. State what was done.
close-of-day skill runs this situate flow (with --update-notes) as part of end-of-day maintenance.documentation
Resolve Teams or SharePoint document links to canonical metadata.
development
Search the web via SearXNG and optionally convert result pages to Markdown.
development
Search via SearXNG, fetch top results, and return quick summaries plus markdown.
testing
Fetch a user's recent tweets (tweets, replies, retweets) using Playwright + Nitter fallbacks and produce compact JSON/Markdown summaries.