feat(session-flow): suggest /export at session-end moments (0.34.0) - #3355
Conversation
Contract for surfacing a one-line /export suggestion in clean-stop, handoff (prompt-only path), and retro, closing the conversation-durability gap the artifact layer leaves open. Grounded in verified exploration and research artifacts; sharing, hook automation, and a dedicated archive skill are explicitly deferred. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011SNU5PVnpdCTakKfBk6xQW
|
Claude finished @kyle-sexton's task in 2m 31s —— View job Claude finished the code review
Review scopeSingle file, docs-only: What I checkedBeyond reading the Brief itself, I cross-checked its factual claims against the repo it describes, since this document becomes a binding contract for a later implementation PR:
No internal contradictions, no broken references, and no acceptance criterion that conflicts with another. I did not independently re-run the FindingsNone. This is a well-grounded, internally consistent contract-lock document with no meaningful code-review surface — the high-signal bar for this lane (correctness bugs, broken cross-references, contradictory constraints) turned up nothing to flag. |
|
Claude has reviewed this PR 4 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ec2684675b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Codex review fixes: require the memory-root self-ignore guard before the suggestion is presented (fresh-clone case), reserve "exports" as a first-level name in the topic-docs convention to prevent topic-slug collisions, add an off-machine caveat to clean-stop's variant for its machine-loss case, and normalize deferred questions to the supported Q<N> + arbiter vocabulary (wording/placement moved to captured assumptions as implementation latitude). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011SNU5PVnpdCTakKfBk6xQW
|
Claude finished @kyle-sexton's task in 4m 2s —— View job Claude finished the code review
Review scopeThis push ( What changed and what I checkedI diffed
I did not independently re-run FindingsNone. All four prior findings are addressed with accurate, cross-checked grounding, and I found no new internal contradictions or broken references introduced by this revision. |
Implements the export-session-flow Brief: clean-stop (durability sweep, with an off-machine caveat), handoff (prompt-only path), and retro (post-chain-coverage) now offer a presence-gated one-line /export suggestion targeting <memory_dir>/exports/, closing the durability gap where the conversation itself is retention-swept with no durable home. Supporting changes: "exports" joins the topic-docs reserved first-level names (convention 2.5.2, README + schema + tier/implementer rows); the native-surfaces registry gains the export builtin-command row (complementary, live-probe evidence) plus its canonical-pairs candidate, and docs/NATIVE-SURFACES.md is regenerated; session-flow bumps to 0.33.0 with a changelog entry. Suggestions are offer-only: nothing invokes the built-in and nothing records whether the user ran it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011SNU5PVnpdCTakKfBk6xQW
Convention step 4 (topic-docs 2.5.2): the durable outcomes are graduated into the previous commit (skill suggestion lines, the reserved exports concern directory, the native-surfaces export row, the session-flow 0.33.0 changelog entry carrying the deferred questions), so the branch- tier slice is deleted before merge. The Brief remains in this branch's history for provenance. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011SNU5PVnpdCTakKfBk6xQW
…-flow-discussion-u790a7 # Conflicts: # plugins/session-flow/CHANGELOG.md
|
Claude finished @kyle-sexton's task in 3m 23s —— View job Claude finished the code review
Review scopeThis push ( Findings1. [P1] What I checked and found consistent
|
|
Claude finished @kyle-sexton's task in 51s —— View job Security review complete
ScopeReviewed the full diff ( Skip-gate determinationPer the
No injection surfaces, no authz/access-control changes, no credential handling, no supply-chain/pin changes. Nothing to report. ResultNo security findings. This PR is out of scope for the security-review lane's high-signal bar — docs-only, offer-only feature with no runtime or automated execution path. |
The changelog-parity gate flagged that this change set edits plugins/claude-ops/ (the canonical-pairs.json export candidate) while the plugin still carried its published 0.38.3. Adds the release entry documenting the candidate addition. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011SNU5PVnpdCTakKfBk6xQW
|
Last security-reviewed head: |
|
Claude finished @kyle-sexton's task in 1m 54s —— View job Claude finished the security review
Review scopePer Findings[IMPORTANT] Diffing against Everything else in the diff (the |
The export-suggestion edit replaced the prompt-only path's "Redaction pass swept the prompt" checklist item instead of adding alongside it, silently dropping the redaction self-check on the one path where the prompt is the only artifact. Restores the bullet above the export offer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011SNU5PVnpdCTakKfBk6xQW
|
Claude finished @kyle-sexton's task in 2m 10s —— View job Claude finished the code review
Review scopeThis push ( What I checkedThe prior P1 finding is fixed correctly. Two earlier review rounds (mine and Codex's, at Re-verified the rest of the diff for regressions or new issues:
I did not independently re-run FindingsNone. The previously-flagged P1 is correctly resolved, and the two new commits introduce no regressions or new issues. |
|
Claude finished @kyle-sexton's task in 1m 2s —— View job Security review complete
ScopeReviewed the full diff (
All 13 changed files remain docs/config/skill-instruction content: Skip-gate determinationPer the
No injection surfaces, no authz/access-control changes, no credential handling, no supply-chain/pin changes introduced by this push. ResultNo security findings. This PR remains out of scope for the security-review lane's high-signal bar — docs-only, offer-only feature with no runtime or automated execution path. The redaction-checklist regression flagged in the prior code-review pass on this branch has been fixed in |
No linked issue
Summary
Closes the one durability gap the session-flow artifact layer leaves open: the conversation itself, whose transcript is retention-swept (
cleanupPeriodDays, default 30 days) and has no durable home. Three skills now offer a presence-gated, one-line suggestion to run the built-in/exportat their natural decision points. The interview Brief that locked this contract was committed, review-hardened (two automated review rounds), then pruned per the topic-docs convention; it remains in this branch's history.Fix
clean-stop: the durability sweep names the conversation as a machine-local, non-durable item and offers/export <memory_dir>/exports/<TS>-<topic>.txt, with an off-machine caveat for its machine-loss case (the export destination dies with the disk too).handoff: the prompt-only path (the one case with zero file artifact) gains the same offer; the transcript is that handoff's only record.retro: offers the export after the chain-coverage report; a session worth retrospecting is worth keeping.exportsjoins the reserved first-level names under the memory root (README tier row, reserved list, implementers table, schemamemory_dirdescription, changelog), preventing topic-slug collisions.export(builtin-command) ×session-flow:clean-stoprow, verdict complementary, with live-probe evidence; canonical-pairs candidate added;docs/NATIVE-SURFACES.mdregenerated (9 rows).SessionEnd-hook lane for cloud sessions).docs/topics/export-session-flow/per the contract-slice convention.Verification
scripts/check-contract-slice-prune.sh --check-diff origin/mainexit 0 on the final change set (the gate that failed on the Brief-only commits).overlap.py generatewrote the 9-row view;overlap.py self-checkexit 0 (one pre-existing advisory about 2.1.232-era extraction rows, untouched by this change).markdownlint-cli20 issues across all 7 changed markdown files;typosclean; both JSON files parse;plugin.jsonvalidates against the manifest schema; no em dashes introduced in any SKILL.md.Related
N/A