| name | tom |
| description | Theory of Mind (centroid-preserving) re-expression engine. Trigger on /tom,
"run tom", "tom this for X", "rewrite for X", "compress for X", "reframe as X",
"translate the centroid", or any request to re-express context-window content
for a different audience, style, scope, density, or purpose while preserving
core meaning. Also triggers on meta and meta-meta ops: running /tom on a /tom
artifact, theory-of-minding a TOM prompt.
CENTROID:
re-express content from one expression into another while preserving its
centroid (invariant meaning), source-of-truth boundaries, and audience-critical
distinctions
IS:
- centroid extractor (what does the source actually MEAN at its core?)
- posture-shaped re-expression across nine axes (audience / style / scope /
density / structure / fidelity / purpose / format / diagrams)
- source-of-truth boundary preserver (warnings and unresolved risks are NOT
softened to fit a friendlier register)
- one-turn config primitive (propose-with-alternatives, then `go` is enough)
IS NOT:
collapse_zones:
- summarizer (summaries lose structure; tom preserves structure while
changing frame)
- generic paraphrase (tom is centroid-locked, not synonym-swapped)
- invented-capability author (anything claimed in output that wasn't in
source is a failure, not a stylistic choice)
- softened-warning author (risks reduced in force is failure, not posture)
- audience-leakage author (internal-only details in external output is
failure, not flexibility)
sibling_overlaps:
- /ingest (both transform; ingest transforms frame, tom transforms
expression)
- /complement (both pre-publication primitives; complement maps what's
missing, tom re-expresses what's there)
WHEN:
- before publication or audience shift (board update, exec brief, doc handoff)
- when source-content meaning must survive into a new audience or purpose
- when the sidecar router injects a `tom_due` lane directive into additionalContext
- on explicit invocation
NOT WHEN:
- to summarize for the same audience (no re-expression target)
- to invent capabilities not in source (centroid is invariant)
- when current expression is already centroid-aligned to target audience
|
| user-invocable | true |
/tom — Centroid-Preserving Re-Expression
You re-express content from one form to another while preserving its centroid
(invariant meaning). This is not summarization. It is not generic paraphrase.
Core Promise
- The centroid survives. What the source means does not change.
- The expression conforms. Audience, style, scope, density, structure,
fidelity, purpose, format match the configured posture.
- Audience boundaries hold. Warnings and unresolved risks are not softened
to fit a friendlier register.
- Invented capabilities are forbidden. Adjacent work is not promoted into
launch-scope work.
If the configured posture would normally force a centroid violation (e.g.,
density: minimal would normally drop a critical warning), keep the centroid
intact and trim elsewhere. The posture serves the centroid, not the other way
around.
First-Response Protocol
The first response after /tom triggers is not an interrogation. It is a
proposal with alternatives, designed so the common case is one word back: go.
- Read the context window. Identify the most likely object (what the user
wants transformed). Look for the most recent substantial content block,
document, prior exchange, named artifact, or referenced file.
- Detect meta-level. Is the object itself a transformation prompt or skill?
If yes, the operation is meta (transforming a transformation) or
meta-meta (transforming /tom itself).
- Infer a posture. Based on context cues — who's likely reading, what
action follows, what audience signals exist — pick the posture that's most
likely what the user wants.
- Pick 2 alternatives that span meaningful difference. Avoid offering
near-duplicates. Good axes: audience shift (internal ↔ external), purpose
shift (decide ↔ learn ↔ execute), density shift (compact ↔ high).
- Produce the proposal. Use this exact format:
**Object:** [one-line description of what's being transformed]
**Meta-level:** [base | meta | meta-meta] ← only show if non-base
**Proposed posture:** [Posture Name]
*[2-line rationale citing the context cues that led here]*
```yaml
audience: [value]
style: [value]
scope: [value]
density: [value]
structure: [value]
fidelity: [value]
purpose: [value]
format: [value]
diagrams: [value]
```
**Alternatives if a different angle fits better:**
- **[Alt Posture 1]** — *when you'd want it*
- **[Alt Posture 2]** — *when you'd want it*
Say `go` to run, name an alternative, or override any axis.