CawPlan Internal QA — Session Summary Prompt Test
Bootstrap
cawplan skill check
Workflow
1. Resolve one session
If the request gives an entry_id directly, skip to step 2.
Otherwise resolve a session to test:
2. Fetch the full conversation
cawplan session conversation --entry-id "<entry_id>"
This returns data.messages[] — ordered {role, time, text} entries (the raw uploaded
conversation, not the human-input rows). Note the total message count and roughly how much of it
is user vs assistant.
If the response has no messages (empty conversation, or the session wasn't uploaded with
include_conversation), say so and stop — there's nothing to summarize.
3. Generate the summary yourself
Read references/SESSION_SUMMARY_RULES.md if you haven't already this session. Read through
data.messages[] in order and write the summary exactly as that doc describes: a narrative
prose recap (not bullets), up to ~800 words but proportional to the session's actual content,
matching the conversation's dominant language. Do this directly as a reasoning step — don't write
a script or call an external LLM API; you are the generator here, using the rules in the
reference doc.
4. Report
Show, in order:
- Session identified: entry_id, session_title (if known), date, message count.
- The generated summary in full.
- A one-line self-assessment: does the summary actually reflect the conversation (right
artifacts named, right outcome stated), or did anything get invented/missed? This is a
read-only sanity check, not a pass/fail gate — there is no cloud value to compare against yet.
Notes
- This is display-only: it never writes anything back to CawPlan, and it doesn't compare against
a cloud-persisted summary (the feature is new; historical sessions won't have one until they're
reenriched). If you want to compare a specific session's cloud summary once it exists, use
cawplan session my-sessions / the session detail endpoint directly and read summary from the
response — this skill doesn't need to grow comparison logic for that.
- Very long sessions (many dozens of messages) are still fine to summarize directly in one pass
for this manual test — production's map-reduce slicing is an LLM output-budget concern, not a
requirement for a human/agent doing the same task by reading.
References
references/SESSION_SUMMARY_RULES.md
1---2name: cawplan-internal-qa-coding-session-test3description: Internal QA check for the new AI-coding session-summary feature: fetches one session's full conversation via the cawplan CLI and generates a narrative summary yourself using the same rules uid.core-product's session-insights prompt uses, so you can eyeball the summary's quality before/without needing the cloud enrichment pipeline to have run. Display-only, no comparison against any cloud value (the field is new and may not be backfilled yet). Use when: asked to test/check/try out the session summary prompt — e.g. "test the summary for yupeng's session today", "see what the summary would look like for entry <id>", "try the session summary on a random recent session". NOT for: human-input category classification (use cawplan-internal-qa-coding-humaninputs[-test]), bulk accuracy testing, submitting reports, or general session cost/usage insights.4---56# CawPlan Internal QA — Session Summary Prompt Test78## Bootstrap910```bash11cawplan skill check12```1314## Workflow1516### 1. Resolve one session1718If the request gives an `entry_id` directly, skip to step 2.1920Otherwise resolve a session to test:21- **Person** (optional): if named, resolve via `cawplan session members` (case-insensitive /22 substring match) the same way as the humaninputs skills. If more than one plausibly matches,23 present a numbered list and ask — don't guess. If no person is named, use the current user24 (`cawplan session my-sessions`, no `--user-id` override needed).25- **Date**: if given, use it; otherwise default to the last 2 days.26- List sessions in that scope:27 ```bash28 cawplan session my-sessions --date "<date>" # current user, or:29 cawplan session my-sessions --user-id "<resolved_user_id>" --from "<from>" --to "<to>"30 ```31- If more than one session comes back, present a numbered list (session_title, date/time,32 project, entry_id/unique_id) and ask which one to test — don't pick automatically. If exactly33 one, use it. If none, say so and ask for a different scope rather than guessing.3435### 2. Fetch the full conversation3637```bash38cawplan session conversation --entry-id "<entry_id>"39```4041This returns `data.messages[]` — ordered `{role, time, text}` entries (the raw uploaded42conversation, not the human-input rows). Note the total message count and roughly how much of it43is `user` vs `assistant`.4445If the response has no messages (empty conversation, or the session wasn't uploaded with46`include_conversation`), say so and stop — there's nothing to summarize.4748### 3. Generate the summary yourself4950Read `references/SESSION_SUMMARY_RULES.md` if you haven't already this session. Read through51`data.messages[]` in order and write the `summary` exactly as that doc describes: a narrative52prose recap (not bullets), up to ~800 words but proportional to the session's actual content,53matching the conversation's dominant language. Do this directly as a reasoning step — don't write54a script or call an external LLM API; you are the generator here, using the rules in the55reference doc.5657### 4. Report5859Show, in order:60- **Session identified**: entry_id, session_title (if known), date, message count.61- **The generated summary** in full.62- **A one-line self-assessment**: does the summary actually reflect the conversation (right63 artifacts named, right outcome stated), or did anything get invented/missed? This is a64 read-only sanity check, not a pass/fail gate — there is no cloud value to compare against yet.6566## Notes6768- This is display-only: it never writes anything back to CawPlan, and it doesn't compare against69 a cloud-persisted summary (the feature is new; historical sessions won't have one until they're70 reenriched). If you want to compare a *specific* session's cloud summary once it exists, use71 `cawplan session my-sessions` / the session detail endpoint directly and read `summary` from the72 response — this skill doesn't need to grow comparison logic for that.73- Very long sessions (many dozens of messages) are still fine to summarize directly in one pass74 for this manual test — production's map-reduce slicing is an LLM output-budget concern, not a75 requirement for a human/agent doing the same task by reading.7677## References7879- `references/SESSION_SUMMARY_RULES.md`