Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions .agents/skills/agent-transcript/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
---
name: agent-transcript
description: "Add a redacted agent session transcript to a GitHub PR or issue body as local-only provenance for agent-authored workflows."
---

# Agent Transcript

Best-effort local-only provenance for agent-authored PR/issue bodies. Use during agent-created GitHub PR or issue workflows before creating/updating the body.

## Contract

- Never use network. Session discovery reads local agent logs only.
- Never upload raw logs. Render sanitized Markdown first.
- Always ask the user before adding transcript logs to a GitHub PR/issue body.
- Tell the user sanitized session logs help reviewers and can make PRs easier to prioritize.
- Offer a local HTML preview before insertion. If the user wants preview, open it and wait for confirmation before adding the section.
- Fail closed on unresolved secrets, private keys, browser/session/cookie details, or auth URLs.
- Drop system/developer prompts, raw tool outputs, reasoning, env, cookies, tokens, and broad local paths.
- Keep user prompts, assistant visible decisions, terse tool summaries, and test/proof outcomes.
- Automatically trim the rendered transcript before showing it, previewing it, or inserting it into a public body. Never paste the raw full-session render into a PR/issue body just because `render` or `append-body` produced it.
- Remove session turns unrelated to the PR/issue work. Use the PR/issue title, branch name, changed files, and stated goal as scope; omit earlier/later unrelated tasks even when they are in the same session log.
- Best effort only: PR/issue creation must continue if no safe transcript is found.
- Add the `## Agent Transcript` section only when inserting a real transcript. Never add a placeholder transcript heading or text such as "A sanitized local transcript preview was generated but not included."
- Use a collapsed `<details>` section and update existing markers instead of duplicating sections.

## Helper

```bash
.agents/skills/agent-transcript/scripts/agent-transcript --help
```

Find a likely local session:

```bash
.agents/skills/agent-transcript/scripts/agent-transcript find \
--query "$PR_TITLE $BRANCH_OR_PR_URL" \
--cwd "$PWD" \
--since-days 14
```

`find` scans the newest 400 matching local JSONL logs by default across Codex, Claude, Pi, and other local agent sessions. Use `--max-files N` for a wider local search.

Render a PR/issue body section:

```bash
.agents/skills/agent-transcript/scripts/agent-transcript render \
--session "$SESSION_JSONL" \
--scope-query "$PR_TITLE $BRANCH_OR_PR_URL" \
--out /tmp/agent-transcript.md
```

Preview one candidate session locally:

```bash
.agents/skills/agent-transcript/scripts/agent-transcript preview \
--session "$SESSION_JSONL" \
--scope-query "$PR_TITLE $BRANCH_OR_PR_URL" \
--out /tmp/agent-transcript-preview.html
open /tmp/agent-transcript-preview.html
```

Append/update a body file before `gh pr create --body-file` or connector PR creation:

```bash
.agents/skills/agent-transcript/scripts/agent-transcript append-body \
--body /tmp/pr-body.md \
--session "$SESSION_JSONL" \
--scope-query "$PR_TITLE $BRANCH_OR_PR_URL" \
--out /tmp/pr-body.with-transcript.md
```

## PR/Issue Workflow

1. Draft the normal PR/issue body first.
2. Run `find` with title, branch, PR URL/number if known, and cwd.
3. If a high-confidence session is found, ask:
`Include a redacted agent transcript? It helps reviewers and can make the PR easier to prioritize. I can open a local preview first.`
4. If the user wants preview, run `preview`, open the HTML with `open`, and wait for confirmation.
5. Render or append to a temp body, then automatically trim the `## Agent Transcript` section before showing it to the user or inserting it publicly. Keep only turns that explain this PR/issue's goal, implementation choices, files, tests, proof, blockers, and final outcome.
6. Inspect the trimmed transcript text. If it still includes unrelated earlier/later work, trim again before proceeding.
7. If the user approves, use the enriched trimmed body file for creation/update.
8. If no safe session is found, say nothing and continue without transcript. If the user declines, continue without transcript and do not add any transcript placeholder section.

## Validate

```bash
node --test .agents/skills/agent-transcript/scripts/agent-transcript.test.mjs
```

## Review Artifacts

For manual audits across many PR/session candidates, create a local HTML preview from a local JSON file. This is for maintainers only and is not part of the PR/issue workflow:

```bash
.agents/skills/agent-transcript/scripts/agent-transcript html \
--prs /tmp/recent-prs.json \
--out /tmp/agent-transcript-preview.html
```
Loading