Generate a manual session briefing with pending work, commitments, goals, and GitHub items
Generates a manual session briefing summarizing pending commitments, recent decisions, active goals, GitHub items, and ideas from the secretary database
When to use
Use this when you need a comprehensive overview of your current work context, pending tasks, and recent activity at any point during a session
How to invoke
Manual via /secretary:briefing, auto-invoked via session start hooks
npx claudepluginhub mwguerra/claude-code-pluginsGenerate a comprehensive briefing for the current session. This produces the same output as the automatic briefing shown on session start (via hooks), but can be triggered manually at any time.
/secretary:briefing # Full briefing for current context
/secretary:briefing --project X # Briefing scoped to project X
Run the briefing script with the current session context:
DB_PATH="$HOME/.claude/secretary/secretary.db"
BRIEFING_SCRIPT="${CLAUDE_PLUGIN_ROOT}/scripts/briefing.sh"
# Verify database exists
if [[ ! -f "$DB_PATH" ]]; then
echo "Secretary database not initialized. Run /secretary:init first."
exit 1
fi
# Get current session info
SESSION_ID=$(sqlite3 "$DB_PATH" "SELECT current_session_id FROM state WHERE id = 1" 2>/dev/null)
Detect the current project from the working directory:
PROJECT=$(basename "$(git remote get-url origin 2>/dev/null | sed 's/\.git$//')" 2>/dev/null || basename "$(pwd)")
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
Run the briefing script:
bash "$BRIEFING_SCRIPT" "$SESSION_ID" "$PROJECT" "$BRANCH"
The scripts/briefing.sh script generates all sections below using SQL-only queries (no AI calls, completes in under 2 seconds):
If this is the first session today, shows yesterday's daily note summary:
Grouped by urgency:
Overdue:
SELECT id, title, due_date, priority FROM commitments
WHERE status IN ('pending', 'in_progress')
AND due_date IS NOT NULL AND due_date < date('now')
ORDER BY due_date ASC LIMIT 5;
Due Today:
SELECT id, title, priority FROM commitments
WHERE status IN ('pending', 'in_progress')
AND due_date = date('now')
ORDER BY priority DESC LIMIT 5;
Upcoming (7 days):
SELECT id, title, due_date FROM commitments
WHERE status IN ('pending', 'in_progress')
AND due_date > date('now')
AND due_date <= date('now', '+7 days')
ORDER BY due_date ASC LIMIT 5;
Active decisions from this project or global, within the configured lookback window:
SELECT id, title, category FROM decisions
WHERE status = 'active'
AND (project = :project OR project IS NULL)
AND created_at >= datetime('now', '-7 days')
ORDER BY created_at DESC LIMIT 5;
Goals with ASCII progress bars:
SELECT id, title, progress_percentage, target_date FROM goals
WHERE status = 'active'
ORDER BY progress_percentage DESC LIMIT 5;
Reads from github_cache table (no API calls during briefing):
Recently captured ideas not yet triaged:
SELECT id, title, idea_type FROM ideas
WHERE status = 'captured'
ORDER BY created_at DESC LIMIT 5;
Shows pending queue item count if > 0.
# Secretary Briefing
**Session:** 20240217-143022-12345 | **Project:** claude-code-plugins | **Date:** 2024-02-17 (Monday)
**Branch:** feature/secretary
## Yesterday (2024-02-16)
- Sessions: 5 | Commits: 12
- Completed: 3 items
- Ideas captured: 2
- Decisions made: 1
## Commitments
**Overdue:**
- [C-0001] Fix auth bug (due 2024-02-15)
- [C-0002] Review PR #45 (due 2024-02-16)
**Due Today:**
- [C-0003] Update documentation
**Upcoming (7 days):**
- [C-0004] Refactor service (due 2024-02-20)
## Recent Decisions
- [D-0005] Use queue-based architecture (architecture)
- [D-0006] Adopt SQLCipher for memory encryption (technology)
## Active Goals
- [G-0001] Launch MVP [==================--] 90% (target: 2024-03-01)
- [G-0002] Test Coverage [============--------] 60%
## GitHub
**Assigned Issues:**
- #45 Bug: Login timeout (repo-name)
**PRs Needing Review:**
- #67 Add caching layer (other-repo)
## Ideas Inbox
- [I-0012] Add pattern-based recommendations (exploration)
- [I-0013] Vault bi-directional sync (feature)
*3 items pending in queue*
---
*Use `/secretary:status` for full dashboard, `/secretary:track` to manage commitments*
After generating the briefing, update the last briefing timestamp:
UPDATE state
SET last_briefing_at = datetime('now'),
updated_at = datetime('now')
WHERE id = 1;
SessionStart hook for automatic briefings~/.claude/secretary.json controls which sections are included