twining_record
Record session summaries, decisions with rationale, and findings. Call before committing or ending a session to persist choices and discoveries for future agents.
Instructions
Record what you did, any choices you made, and anything you discovered. Call before committing or ending a session. The summary becomes a status post. Decisions become tracked records with rationale. Findings become blackboard entries visible to future agents. Scope is auto-inferred from git diff if omitted.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | What you did this session — one or two sentences | |
| decisions | No | Choices you made. Each item is either a natural-language sentence ("Chose X over Y — reason") or a structured object ({ summary, rationale, alternatives: [{ option, reason_rejected }] }) when the content is too long or too structured for the NL parser to split cleanly. | |
| findings | No | Discoveries, warnings, or needs. Prefix with "warning:" or "need:" for severity. E.g. ["Auth tokens stored in localStorage — fails SOC2", "warning: No token rotation exists", "need: Add rate limiting before launch"] | |
| assumptions | No | Conditions your decisions depend on. E.g. ["Data is relational", "No strict ordering required"] | |
| constraints | No | What limited your options. E.g. ["Must support Node 18+", "Cannot add new dependencies"] | |
| affected_files | No | File paths you changed or that are affected by your decisions | |
| affected_symbols | No | Function/class/method names affected by your decisions | |
| depends_on | No | IDs of prior decisions that your decisions depend on (from twining_assemble or twining_why output) | |
| supersedes | No | ID of a prior decision that your work replaces or invalidates | |
| reversible | No | Whether your decisions are easily reversible (default: true) | |
| commit_hash | No | Git commit hash to associate with these decisions | |
| scope | No | Area of codebase affected. Auto-inferred from git diff if omitted. | |
| agent_id | No | Agent identifier (default: main) |