engineer/skills/session-summary/SKILL.md
Use at the end of a work session on a DAE feature, so the next session picks up cleanly. Triggers — "/engineer.session-summary", "wrap up the session", "write the session log", "I'm stopping for the day".
npx skillsauth add swingerman/atdd session-summaryInstall 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.
Write the per-session entry in a feature's session-log.md so the human can close the laptop and pick back up cleanly. The human-readable counterpart to the machine handoffs. checkpoint: null.
At the end of a work session on a feature. A Stop hook may auto-invoke it; that hook is optional plugin config, not part of this skill.
Not for: mid-session (nothing's wrapping up); syncing the tracker (progress-log); per-skill records (each skill's own handoff).
${CLAUDE_PLUGIN_ROOT}/scripts/dae_resolve.py (see references/resolving.md). Scope = the feature(s) the session touched (default: current branch; multiple → an entry in each; none → nothing to log, stop).handoffs/*.md, git activity on the branch, and conversation context (decisions, problems, deferrals).features/NNN-<slug>/session-log.md:## Session — <ISO date> <start>–<end>
**Current state:** <which checkpoint, one line>
### Previous tasks (done this session)
- ...
### Current task
- <in progress at session end, if any>
### Next tasks
- <concrete, actionable, ordered>
### Open questions / blockers
- <or "None">
Create the file with a # Session log — <title> heading if absent.
Tear down session-end infra. Run ${CLAUDE_PLUGIN_ROOT}/scripts/dae_infra.py teardown (no args = all entries with effective teardown: session-end or always). Default behavior leaves entries with teardown: leave-running (the per-entry default and the project-wide default we ship with) untouched — emulators are expensive to start, and the user typically wants them up across sessions while working on a feature. The teardown's JSON output goes into the session log as a one-line summary.
Branch cleanup if merged. If the current branch is not main/master, run git fetch origin --quiet then git merge-base --is-ancestor HEAD origin/HEAD (fallback origin/main). If the branch is merged, defer to /engineer.post-merge (the dedicated cleanup skill) — at autonomy high/medium auto-invoke it; at low surface the finding. If the branch is not merged, do nothing — the work isn't complete yet. Record the post-merge outcome in the session log.
Handoff — emit a summary.
Emit per ${CLAUDE_PLUGIN_ROOT}/references/handoff-summary.md. checkpoint: null; human_action_needed: no; recommended_next: the first "Next task" from the entry. (session-summary is not the handoff processor, so it follows the normal contract — no exemption.)
Three records, three readers: handoffs/ = machine, per-invocation; progress.md = machine-derived, glanceable; session-log.md = human, per-session, narrative. They don't duplicate — different granularity, different reader.
session-log.md in the storage layout, the session-log ↔ handoffs distinction (Section 5)engineer/scripts/dae_infra.py — invoked here at session enddata-ai
Use immediately after a PR is merged to clean up the local feature branch and resync main. Triggers — "/engineer.post-merge", "did we merge", "did we push", "PR merged", "post-merge cleanup", or right after a `gh pr merge` succeeds in the same session.
data-ai
Use to drive a bug fix from first report through close, with a "why didn't we catch it?" loop at the end. Triggers — "/engineer.fix", "a bug came in", "this is broken", "a user reported X", "there's a defect", "we have a regression", "this needs a fix", "another report", "more issues", "still failing", "validation failed again", "another bug", "next defect", "more fixes".
testing
Use mid-task when the working thread is lost — after a context compaction, a long agent run, or coming back to a feature unsure of the role, the current checkpoint, or the next action. Triggers — "/engineer.reorient", "reorient", "re-anchor", "what should I be doing right now", "I lost track", "where was I".
development
Use to check a feature's code against the charter's architecture rules — dependency layering, cycles, forbidden patterns, file naming, file size. Triggers — "/engineer.arch-check", "architecture check", "check architecture fitness", "does this follow the charter", "check layering".