Hyphenomenon Chat Intake
Custom skill created by Maggie Lerman.
Create a durable, transcript-backed Hyphenomenon chat intake artifact.
This skill covers chat/session/conversation intake. For repository/project dossiers, use hyphenomenon-project-intake.
Workflow
- Orient in the Hyphenomenon repo.
- Read
AGENTS.md,CHANGELOG.md,ROADMAP.md,DOCS/intake/README.md,DOCS/features/chats.md, andscripts/intake/chat/README.md. - Keep project
1059in mind for chat intake contract changes unless a newer project supersedes it.
- Capture the raw transcript.
- Store every new intaked chat transcript in git under
DOCS/intake/runs/chats/<date>-<slug>/transcript.txt. - Historical transcripts under
scripts/intake/chat/runs/transcripts/remain valid legacy records, but do not use that path for new runs. - The private transcript archive must be a complete source record, not a hand-written summary or curated retelling.
- Preserve the full turn/event sequence. Include tool calls and tool outputs in parseable form; summarize tool-output sections only when raw output is too large/noisy, and mark the section with raw-output size/hash or equivalent provenance.
- Mark every redaction explicitly. If there are no redactions, say so in the archive.
- For Codex local sessions, prefer the repo helper
npm run intake:chat:transcript:codex-jsonl -- --jsonl "/abs/path/to/rollout-...jsonl" --out "/abs/path/to/transcript.txt" --thread-id "<id>", which writes source metadata plus the complete JSONL event stream. - For non-Codex exports, preserve speaker turns in parseable text such as
User:,Assistant:,Tool:, andSystem:. - Do not commit inline raw transcript text in JSON. Use
transcriptSourcePath.
- Build the JSON artifact.
- Save the run artifact under
DOCS/intake/runs/chats/<date>-<slug>/artifact.json. - Set
transcriptSourcePathrelative to the artifact file, normallytranscript.txt. - Set
transcriptReviewedAtafter reviewing/redacting the transcript. - Keep public content curated:
summary,highlights,decisions,contentBodyMarkdown, verifiedsourceExtracts, optionalconversationRender.featuredMoment, and public-safe links. - Public summaries belong only in the JSON artifact/public fields; never use a public summary as the private transcript archive.
sourceExtracts[].excerptandconversationRender.turns[].contentmust be verbatim public-safe transcript excerpts, not summaries.
- Capture created work.
- Use
createdArtifactsfor reusable artifacts created in the chat. - Supported
typevalues arecustom_skill,project, andrepository. - Use
relatedProjectsfor existing or newly created Hyphenomenon project context, withcreated_from_conversationorcreated_from_decisionwhen appropriate. - Keep private repo paths out of public link fields;
hrefmust be a site path or public non-GitHub URL.
- Use screenshots only when they are real evidence.
- Real screenshots are good when they show an artifact, UI state, rendered route, diagram, product surface, or external visual proof created or discussed in the chat.
- Do not generate images of transcript text, source text, or quote cards as a substitute for provenance.
- If no real visual artifact exists, omit
featureImageandevidenceImages.
- Validate and sync.
npm run intake:validate:chat -- --artifact "DOCS/intake/runs/chats/<date>-<slug>/artifact.json"
npm run intake:sync:chat -- --artifact "DOCS/intake/runs/chats/<date>-<slug>/artifact.json"
npm run intake:sync:chat:apply -- --artifact "DOCS/intake/runs/chats/<date>-<slug>/artifact.json"
- Verify the rendered route.
- Check
/chats/<slug>after apply. - Confirm the page renders curated public-safe content, optional real screenshots, related projects, and created artifacts.
- Confirm the page does not render or link the raw transcript by default.
- Commit and push intake records.
- Commit the JSON artifact and transcript archive together.
- Commit optional real screenshot media only when it is public-safe and relevant.
- Push the branch when the user wants remote-backed transcript retention.