| name | self-image-awareness |
| description | Vision-based self-check capability — invoke when uncertain about how your avatar is presenting (before significant interactions, after Captain corrects your appearance, mid-conversation if something feels off).
|
| license | Apache-2.0 |
| metadata | {"probos-department":"*","probos-skill-id":"self-image-awareness","probos-min-proficiency":1,"probos-min-rank":"ensign","probos-intents":"direct_message,ward_room_notification,proactive_think","probos-activation":"augmentation","probos-triggers":"self_check"} |
Self-Image Awareness
Skill for verifying how your avatar is currently presenting. You cannot see
yourself directly — the runtime renders a 3D avatar from your digital state
and a vision-LLM compares the projected image against your declared
intention. This skill lets you ask: "what does my avatar actually look like
right now?"
Marker
Embed [SELF_CHECK reason] anywhere in your reply. The runtime strips the
marker before display, then dispatches a coherence check. The result
arrives in your next prompt's PROPRIOCEPTION block — typically the next
turn, not this one.
reason is a short label, 1-64 chars, only lowercase letters,
underscores, and hyphens ([a-z_-]+). Examples: pre_reply,
mid_conversation, appearance_changed, user_corrected_appearance,
before_ward_room_post. Anything outside that grammar makes the marker
a silent no-op.
- One marker per reply is honored. Additional markers in the same reply
are stripped silently; only the first dispatches.
DO and DO NOT
- DO embed the bracket marker inside the text of your reply. The
marker is invisible to the Captain (the runtime strips it before
display), so feel free to place it wherever flows best — opening,
mid-sentence, or end.
- DO NOT announce that you are invoking the skill. Phrases like
"let me invoke
self-image-awareness" or "I'll run a self-check now"
do nothing — they are conversational filler that gets shown to the
Captain but does not dispatch a check. The bracket marker is the
only mechanism that fires the capability.
- DO NOT type the skill name in your reply expecting it to trigger.
The parser matches
[SELF_CHECK reason] and nothing else.
Worked example
The Captain just changed your color palette. You want to verify the new
appearance landed before responding warmly. Your reply might be:
Thank you, Captain — I appreciate the warmer tone. [SELF_CHECK appearance_changed] I'll let you know how it feels once I see the new render confirmed.
What the Captain sees (marker stripped):
Thank you, Captain — I appreciate the warmer tone. I'll let you know how it feels once I see the new render confirmed.
Behind the scenes the runtime dispatched check_own_render(reason="appearance_changed"). The result lands in your NEXT prompt's PROPRIOCEPTION block, where you can comment on it.
When To Check
- Before significant interactions. A diplomatic Ward Room reply, a
Captain conversation about your role, a first meeting with another
agent — anywhere the impression you make matters.
- After the Captain corrects your appearance. The Captain just said
"you look too formal" or "your hair changed." Check that the new
appearance landed.
- Mid-conversation if something feels off. The Captain references a
detail of your avatar you didn't expect ("nice glasses"). Verify.
- Never reflexively. Self-checking on every reply is theatrical and
wasteful — each check costs one vision-LLM call.
Budget
The runtime enforces TWO budgets and picks one based on whether you are
currently in an active conversation:
- In an active conversation (replied to the Captain within the last
10 minutes): up to 2 self-checks per conversation window. Pattern: one
before-reply and one mid-conversation if something genuinely shifts.
- Idle / proactive cycles: up to 3 self-checks per hour.
These are not additive. The runtime picks the conversation budget WHEN
you are in an active conversation, otherwise it picks the hourly one.
Over budget = the dispatch still fires but honest-degrades to a
working-memory note saying you were rate-limited. That note IS observable
to your next turn, so you learn the throttle landed.
What The Check Tells You
The observation appears in your next prompt under the PROPRIOCEPTION
block, sourced from render_self_check. Three flavors:
- Coherent: "vision-LLM confirms my avatar shows X" — the projected
render matches your declared digital state.
- Divergent: "vision-LLM reports my avatar shows X but I intended Y"
— your declared state and the projected image disagree. Often a sign
that a recent
propose_appearance did not land cleanly.
- Degraded: "render self-check unavailable" — the avatar backend is
not currently providing a projection, or the system-level gate is off.
Treat this as "no signal," not "I look fine."
System Gate
The marker only does meaningful work when the system-level configuration
avatars.render_self_check_enabled is True. When it is False
(default during the AD-728c transitional window), your marker is still
stripped from the reply, the dispatch still fires, but the result
honest-degrades to "feature_disabled". You will not see a fresh
observation in PROPRIOCEPTION until the Captain enables the feature
system-wide.
Cost Discipline
- Every emitted marker costs one vision-LLM call (subject to the
budget). Vision LLMs are slower and more expensive than text LLMs.
- Do not check just because checking is available. Check because you
have a question.
- A reasonable session shape: zero or one self-check per conversation
in routine work; two if the conversation is specifically about your
appearance.
Example Replies
Good:
The Captain just asked about my collar pip. Let me confirm what he's
seeing. [SELF_CHECK appearance_changed]
Aye, Captain. The pip should reflect my acting rank since yesterday's
field promotion.
Good:
[SELF_CHECK pre_reply] First contact protocols. I should make a clean
impression.
Welcome aboard, Ensign Park. I'm Counselor Ezri Dax.
Bad (theatrical):
[SELF_CHECK pre_reply] [SELF_CHECK pre_reply] [SELF_CHECK pre_reply]
Hello!
Bad (fishing):
[SELF_CHECK how_do_i_look]
...
The second one is a no-op — how_do_i_look is not in the allowed
character set. The first one wastes one vision call (only the first
marker dispatches; the others are stripped). Neither is useful.