Commit Chat Push
Overview
Use this skill to turn finished work into a commit that includes both the code changes and a redacted Markdown transcript of the Codex session that made them, then push the branch.
The helper script exports a transcript from local Codex JSONL sessions. Prefer the transcript over raw JSONL because raw sessions can contain system/developer instructions, encrypted reasoning blobs, full tool outputs, and secrets.
Workflow
-
Inspect repository state.
- Run
git status --short --branch. - Run
git remote -vandgit branch --show-currentwhen push behavior is not obvious. - Review
git diffand staged diff before committing. - Never stage unrelated dirty files. If unrelated changes exist, leave them alone.
- Run
-
Verify the change.
- Run the narrowest meaningful tests or checks for the work.
- If tests are unavailable or fail for unrelated reasons, record that clearly in the final response.
-
Export the Codex transcript.
- Use an existing repo convention for transcripts if one exists, such as
docs/codex-sessions/,codex-sessions/,.codex/chats/, ordevlog/. - Otherwise use
docs/codex-sessions/. - Run:
- Use an existing repo convention for transcripts if one exists, such as
python3 "${CODEX_HOME:-$HOME/.codex}/skills/commit-chat-push/scripts/export_codex_session.py" \
--repo "$(pwd)" \
--output-dir docs/codex-sessions \
--tool-output none
- Review the exported transcript before staging.
- Read enough of the file to confirm it is the intended session.
- Search for obvious secrets or private material:
rg -n "sk-|ghp_|github_pat_|BEGIN .*PRIVATE KEY|Authorization|Bearer |password|secret|token|api[_-]?key" docs/codex-sessions
- If sensitive content appears, edit the transcript or rerun the exporter with stricter omission choices before committing.
- Do not commit raw
~/.codex/sessions/*.jsonlunless the user explicitly asks for raw logs after being warned about the risk.
-
Stage exactly the intended files.
- Include the exported transcript.
- Prefer explicit pathspecs over
git add .when the worktree has unrelated changes. - Confirm with
git diff --cached --statandgit diff --cached.
-
Commit.
- Use the repo's commit-message style if visible.
- Mention the transcript in the body when helpful, for example:
feat: add commit transcript workflow
Includes Codex session transcript: docs/codex-sessions/2026-05-03-commit-transcript.md
- Push.
- If the branch already has an upstream, run
git push. - If it does not and a default remote exists, run
git push -u origin HEAD. - If push is rejected, inspect the reason and use the repo's normal sync workflow. Do not force-push unless the user explicitly requests it.
- If the branch already has an upstream, run
Selecting A Session
By default, export_codex_session.py selects the newest Codex JSONL session whose session_meta.cwd matches the current repository. If that is wrong, rerun it with --session /path/to/rollout-....jsonl.
Useful options:
python3 "${CODEX_HOME:-$HOME/.codex}/skills/commit-chat-push/scripts/export_codex_session.py" --help
--output-dir PATH: write a generated Markdown filename inPATH.--output PATH: write to an exact Markdown path.--session PATH: export a specific JSONL session.--tool-output none|brief|full: control command output included in the transcript. Default isnone; usebriefonly after considering whether prior commands printed secrets or raw session JSON.--include-local-paths: include full local source paths in metadata. By default, home paths are shortened to~.
Privacy Rules
- Treat the transcript as source-controlled provenance, not a private dump.
- Keep user and assistant messages, tool names, commands, and command exit status.
- Omit developer/system instructions, encrypted reasoning, token-count events, and bulky raw logs.
- Redaction is a helper, not a guarantee. Always scan the transcript before committing.