Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
{
"name": "ytstack",
"description": "Claude Code plugin. Project-OS artifact discipline + curated superpowers and gstack skill wrappers + Agent Teams orchestration.",
"version": "0.1.3",
"version": "0.1.4",
"source": "./",
"author": {
"name": "Yesterday",
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ytstack",
"version": "0.1.3",
"version": "0.1.4",
"description": "Yesterday Technologies Stack -- opinionated software-development OS for AI agents. Curated superpowers + gstack skills plus Project-OS artifact discipline (PROJECT.md, DECISIONS.md, KNOWLEDGE.md, milestone/slice/task hierarchy), orchestrated via SessionStart hooks.",
"author": {
"name": "Yesterday",
Expand Down
18 changes: 5 additions & 13 deletions hooks/session-end
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
#!/usr/bin/env bash
# ytstack SessionEnd hook
#
# Fires when Claude Code ends the session. Updates STATE.md's last_updated
# timestamp and writes a journal entry with end-of-session marker.
# Fires when Claude Code ends the session. Appends a journal entry with
# end-of-session marker. Does NOT mutate STATE.md -- that file is a tracked
# source-of-truth Markdown, written deliberately by skills as part of state
# transitions. A hook firing on every session end has no business writing to
# it (creates phantom diffs on every git status).
#
# Side-effects only. Does not emit stdout context.

Expand All @@ -26,17 +29,6 @@ STATE_FILE="$YT_DIR/STATE.md"
JOURNAL_DIR="$YT_DIR/journal"
TS=$(date -u +"%Y-%m-%dT%H:%M:%SZ")

# Update last_updated field in STATE.md (portable BSD + GNU sed)
if [ -f "$STATE_FILE" ]; then
if sed --version >/dev/null 2>&1; then
# GNU sed
sed -i "s/^last_updated: .*/last_updated: $TS/" "$STATE_FILE"
else
# BSD sed (macOS)
sed -i '' "s/^last_updated: .*/last_updated: $TS/" "$STATE_FILE"
fi
fi

# Append to journal (persistent log of sessions)
mkdir -p "$JOURNAL_DIR"
JOURNAL_FILE="$JOURNAL_DIR/sessions.jsonl"
Expand Down
Loading