Skip to content
This repository was archived by the owner on May 26, 2026. It is now read-only.
This repository was archived by the owner on May 26, 2026. It is now read-only.

session-review: drop duplicate handoff surface in Step 9 #84

Description

@SnowboardTechie

Problem / Motivation

Step 5 (approval gate) presents memory-route candidates using the Memory-recommendation template, which already carries Route, Destination hint, Trigger moment, and the draft content. That is the handoff artifact — the user reads it, types approval, and a downstream actor (user or hub agent) has everything needed to make the write.

Step 9 then instructs:

Surface the approved recommendations one more time at the end of the run with the harness-specific destination clearly marked, so the next handoff has everything it needs.

The re-surface is identical to what Step 5 already showed. Hit in practice today (2026-05-11 session, simpler-grants-protocol project): after the user typed approved at the Step 5 gate, the skill re-printed the same template per Step 9. The user read it as a re-confirmation request and replied "I already approved this, why are you confirming again?"

Root cause is structural, not interpretive — the skill text literally says "one more time," so faithful execution produces the double-print. AGENTS.md (Step 7) and daily-plan (Step 8) routes do not have this issue because their Step 9-equivalents are actual write steps, not surface steps.

Proposed behavior

Drop the re-surface in Step 9. Step 5's approval-gate output is the handoff. Post-edit, Step 9 reads roughly:

Step 9: Hand off approved memory recommendations

Memory-route candidates have no automated write step. After the Step 5 approval gate, the skill's job is done — the user (or a separate Claude Code session with memory-access tooling that can write to ~/.claude/projects/*/memory/) makes the actual write per the Step 5 output.

No additional print, no "one more time."

Scope

In scope

  • Edit Step 9 of plugins/cairn-notes/skills/session-review/SKILL.md to remove the "Surface the approved recommendations one more time at the end of the run..." sentence.
  • Keep Step 9's framing of the no-automated-write contract and the user/hub-agent split — only the redundant surface goes.
  • CHANGELOG entry under ## [Unreleased].

Out of scope

  • Touching the "Do NOT write to harness memory directly" guardrail. It is portability-correct (different harnesses have different memory write access; the skill is designed to run on multiple platforms) and stays.
  • AGENTS.md (Step 7) and daily-plan (Step 8) routes. Their Step-equivalents are actual write steps via the Edit tool, not re-surface steps. No regression risk there.
  • The Step 5 Memory-recommendation template itself. It already carries everything a downstream actor needs.

Implementation hints

Closest precedent for the edit shape: PR #56 (which closed #13) added the collaboration lens including the Step 9 re-surface as part of introducing the memory route. The redundancy was an artifact of that lens-addition mirroring the AGENTS.md/daily-plan write-step pattern even though memory has no write step the skill performs. The fix reverses only that mirror, not the lens or the no-direct-write contract.

Lint: python3 scripts/lint-frontmatter.py plugins/cairn-notes/skills/session-review/SKILL.md.

Acceptance criteria

  • Step 9 of session-review/SKILL.md no longer instructs a re-surface of approved memory recommendations.
  • Step 5 Memory-recommendation template is unchanged and still contains Route, Destination hint, Trigger moment, and draft content.
  • AGENTS.md (Step 7) and daily-plan (Step 8) routes are unchanged — direct Edit writes remain.
  • "Do NOT write to harness memory directly" guardrail is preserved.
  • CHANGELOG bullet under ## [Unreleased].

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestquick winSmall, self-contained scope — good candidate for a focused session

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions