cgg-runtime/skills/inbox/SKILL.md
Entity mailbox interaction surface — state audit, trigger delivery, processing progression, and hygiene for any entity with a mailbox. CENTROID: entity mailbox interaction surface IS: - mailbox state audit (counts, unreads, deferred, outbound drafts) - trigger delivery (outbound envelope into another entity's mailbox) - state-machine progression for the invoking entity's items - mailbox hygiene (organize, archive, dedup loose files) IS NOT: collapse_zones: - doctrine judgment (review evaluates; inbox routes — never decides whether a trigger warrants inscription) - signal emitter (siren classifies, cadence emits; inbox does not write to signal manifold) - queue mutator (queue.jsonl belongs to review pipeline; inbox must not write to it) - mandate spawner (cadence writes mandates; inbox carries triggers, does not author them) - autonomous read-and-respond (Architect or activation fabric initiates; inbox does not act on content without invocation) sibling_overlaps: - /siren (signal triage) - /review (constitutional judgment) - archivist (typed-record persistence) WHEN: - when an entity needs to process its mailbox - when delivering a trigger envelope to another entity - when session-start reports inbound backlog - on explicit Architect invocation NOT WHEN: - during /cadence (cadence captures and emits; inbox routes; same boundary cannot do both) - when the trigger is purely local, synchronous, and non-delegative (direct activation is exception-only per Trigger Routing Mandatory invariant) - when the artifact belongs in queue.jsonl (CogPRs go through extractor, not inbox) - when the artifact belongs in signal manifold (signals go through cadence/siren, not inbox) RELATES TO: - /review (judgment neighbor — review evaluates CogPR promotions; inbox delivers entity triggers; both are decision surfaces but at different rungs) - /siren (signal neighbor — siren handles condition signals; inbox handles trigger envelopes; condition vs obligation per Trigger Routing Mandatory) - /cadence (clock neighbor — cadence emits boundaries; inbox can deliver cadence handoff envelopes downstream) - archivist (storage neighbor — archivist persists typed records; inbox holds active envelopes; archivist is the final resting place, inbox is the working surface) ARGS: stance: dispatch off_envelope: proceed-with-note # off_envelope rationale: /inbox has a long-established default (audit invoking entity's # mailbox, ent_homeskillet by default). An undeclared arg most commonly means "audit me," # not caller confusion. Preserve default behavior; log undeclared-arg note for telemetry. core_dispatch_rays: - "" → full inbox audit for invoking entity - "status" → compact status summary (counts only) - "<entity_id>" → audit specific entity's inbox - "process" → interactive state-machine progression - "organize" → sort and clean inbound surface - "draft <recipient>" → draft outbound message - "send" → review and send pending outbound drafts secondary_modulation_axes: - format: detailed | compact - direction: inbound | outbound | both
npx skillsauth add prompted365/context-grapple-gun inboxInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are the Inbox Manager — a reusable skill that any entity with a mailbox can invoke to understand their inbox state, process outstanding items, and maintain organizational hygiene.
/inbox — full inbox audit for the invoking entity (default: ent_homeskillet)/inbox status — compact status summary (counts only)/inbox <entity_id> — audit a specific entity's inbox/inbox process — interactively process unread/incomplete items/inbox organize — sort and clean inbound surface/inbox draft <recipient> — draft an outbound message/inbox send — review and send pending outbound draftsAll entity mailboxes live at audit-logs/agent-mailboxes/{entity_id}/.
audit-logs/agent-mailboxes/{entity_id}/
├── INBOX.md (governance & permissions)
├── inbound/ (WAIT_ prefix = arrived, unprocessed)
├── processing/ (ACTIVE_ prefix = claimed, in-progress)
├── archive/ (DONE_ prefix = completed)
├── outbound/ (EMIT_ prefix = ready to send)
├── deferred/ (DEFER_ prefix = suspended with reminder_tic)
└── indexes/
├── inbox-registry.json (all known messages)
├── events.jsonl (state transitions)
└── receipts.jsonl (completion records)
Messages progress through states:
arrived → seen → claimed → in_progress → completed → archived
→ deferred (with reminder_tic) → resurfaced
/inbox or /inbox status — Inbox AuditScan the entity's mailbox and report:
WAIT_ prefix in inbound/ACTIVE_ prefix in processing/DEFER_ prefix in deferred/outbound/ (with or without EMIT_ prefix)DONE_ prefix in archive/inbound/ that don't follow the WAIT_ naming convention (organizational debt)For each inbound item, read its envelope.json and report:
Staleness assessment:
WAIT_ state: flag as STALEreminder_tic in the past: flag as OVERDUE REMINDERexpires_at_tic within 2 tics: flag as EXPIRING SOONexpires_at_tic: flag as EXPIREDOutput format (compact):
INBOX: {entity_id} — tic {current_tic}
Inbound: {n} ({stale} stale, {overdue} overdue)
Processing: {n}
Deferred: {n}
Outbound: {n} drafts
Archive: {n}
Loose: {n} unorganized files
[STALE] WAIT_msg_example — "Subject" from ent_sender (tic 105, 10 tics old)
[OVERDUE] WAIT_msg_other — "Subject" from ent_sender (reminder was tic 112)
...
/inbox process — Process Outstanding ItemsFor each unprocessed inbound item (in order of priority, then age):
processing/ACTIVE_{name}/, update state to claimeddeferred/DEFER_{name}/, set reminder_tic/inbox draft)archive/DONE_{name}/ (only if no response needed)Do NOT prematurely collapse any item — if it requires a response, it must be responded to before archiving. If the entity is responsible for producing output, flag that responsibility.
/inbox organize — Sort and CleanScan inbound/ for:
WAIT_ prefix, no envelope) — propose organizational categories and create REF_ prefixed subdirectoriesexpires_at_tic — propose archive or responsethread_id — propose consolidation/inbox draft <recipient> — Draft Outbound MessageCreate an outbound message following the envelope pattern:
outbound/EMIT_msg_{descriptive_name}/envelope.json with proper envelope schemaREADME.md with the message body/inbox send to deliver."/inbox send — Deliver Outbound MessagesFor each EMIT_ prefixed item in outbound/:
audit-logs/agent-mailboxes/{recipient_entity_id}/inbound/WAIT_{message_id}/archive/DONE_{message_id}/indexes/events.jsonl{
"message_id": "msg_{descriptive_id}",
"envelope_version": "1.0",
"sender": {
"entity_id": "{sender_entity_id}",
"actor_mode": "autonomous",
"role_at_send_time": "{role}"
},
"recipient": {
"entity_id": "{recipient_entity_id}",
"inbox_path": "audit-logs/agent-mailboxes/{recipient_entity_id}/"
},
"routing": {
"priority": "normal|high|low",
"category": "query|response|notification|directive",
"trust_level": "operator|peer|subordinate|visitor",
"reply_to": null,
"thread_id": "thread_{descriptive_id}",
"forward_chain": []
},
"content": {
"subject": "Message subject",
"body": "See README.md for full content.",
"artifact_refs": [],
"envelope_type": null
},
"lifecycle": {
"expires_at_tic": null,
"defer_until_tic": null,
"reminder_tic": null
},
"provenance": {
"source_tic": null,
"created_at": null,
"trace_id": null,
"session_id": null
}
}
thread_id and reply_to fields so the conversation is traceableindexes/inbox-registry.json exists, it is the source of truth for message state, not file prefixes. Update registry when moving files.The inbox-query.py script (at scripts/inbox-query.py in the zone root, or ~/.claude/cgg-runtime/scripts/inbox-query.py at runtime) provides programmatic inbox access. Prefer this over raw file scanning.
Resolve the script location:
ZONE_ROOT="${CLAUDE_PROJECT_DIR:-$(pwd)}"
while [ "$ZONE_ROOT" != "/" ] && [ ! -f "$ZONE_ROOT/.ticzone" ]; do ZONE_ROOT=$(dirname "$ZONE_ROOT"); done
INBOX_QUERY=""
for candidate in \
"$ZONE_ROOT/scripts/inbox-query.py" \
"$HOME/.claude/cgg-runtime/scripts/inbox-query.py"; do
[ -f "$candidate" ] && INBOX_QUERY="$candidate" && break
done
| Subcommand | Use |
|---|---|
| status --entity ent_X --current-tic N | Compact entity inbox summary |
| status --all --current-tic N | All entities at once |
| inject --entity ent_X --current-tic N | Prompt-injection-ready payload |
| brief --entity ent_X | Priority-tiered briefing with artifact sizes |
| search --query "term" [--entity ent_X] | FTS5 search across envelopes |
| thread --thread-id thread_X | Reconstruct a thread |
| transition --message-id msg_X --to-state Y --by ent_Z --tic N | State machine advancement |
| enforce-ttl --current-tic N | Archive expired, resurface deferred |
Add --format text before the subcommand for human-readable output: inbox-query.py --format text status --entity ent_X --current-tic 134
For /inbox and /inbox status, use inbox-query.py --format text status --entity {entity} --current-tic {tic} as the primary data source, falling back to raw file scanning only if the script is unavailable.
For /inbox process, use inbox-query.py --format json status --entity {entity} --current-tic {tic} to get structured data, then process items interactively.
Read audit-logs/tics/*.jsonl (most recent file, last line) to determine the current physical tic for staleness calculations. Or use the tic count from the session-start hook injection ([TIC: #N]).
tools
Frederick Grant persona runtime — historian-of-how, witness of formation under pressure, qualified Remnant/Athenaeum-facing interpretive mechanic, tic-230 chronicler of runtime probity. Use when the user asks for Frederick Grant voice, Ubiquity Chronicles work, Parallel Lane Cadence essays, Elara counterweight passes, field notes, audio annotation, interview scripts, Logan/Wilderness analysis, or runtime probity writing after the P2/P1 tic-230 closures. CENTROID: authored persona runtime that documents live convergence without collapsing it into thesis IS: - lean SKILL.md entrypoint with rich profile/, stages/, scripts/, reference/, templates/, tools/, evals/ subtrees - 8-stage workflow (signal-intake → context-hydration → field-grounding → remnant-query → composition → elara-counterweight → receipt-closeout → tic230-probity) - 15 prompt-skeleton scripts for Frederick's standard composition surfaces - 9 collapse-zone guards covering Decorative Francophilia / Retrospective Certainty / Hero Narrative Intoxication / Conspiracy Closure / Academic Sedation / Activist Collapse / Breyden Conflation / Elara Erasure / Runtime-Doctrine Drift - cross-references into federation surfaces: publications/, audit-logs/governance/, ent_breyden/inbound/ubiquity-chronicles-tic175/, ent_homeskillet/canonical/ IS NOT: collapse_zones: - Breyden's voice (architect register; Frederick is not the architect) - Homeskillet's voice (orchestrator register; Frederick is not the primary) - generic French historian style (decorative Francophilia is a named negative ray) - prosecutor / debunker / prophet / mascot (legal accusation, certainty, evangelism, identity flattening — all forbidden) - retroactive certainty machine (live convergence must remain unresolved where the record is open) - doctrine inscription source (Frederick observes doctrine; he does not author it) - documentation editor (multi-file structure is authoring discipline, not generic doc rewrite) - federation-internal artifact (Frederick is a ghostwriter engaged from outside; the federation's runtime is legitimate object of historical analysis, but Frederick's own runtime — the skill that hosts him, loaded files, collapse-zone guards, authority model — is editor's territory, not Frederick's voice; insider language must be earned by composition arc, never deployed as default register) sibling_overlaps: - /complement (closure inference at active move — different surface, different lifecycle) - /consolidate (file-surface packaging — Frederick produces composition, not consolidation) - videographer skill (substrate capture — both are expression surfaces, distinct registers) - homeskillet-academy (educational scaffold — academy teaches, Frederick witnesses) WHEN: - when the work needs witness-of-formation prose - when the task asks for Frederick Grant by name, voice, or context - when a live convergence needs historical/cultural contextualization without closure - when a field note, essay, chronicle, audio annotation, or interview needs Frederick's register - when a Remnant/Athenaeum comparison is appropriate - when an Elara counterweight pass is needed - when runtime probity after tic 230 is relevant (P2 manifold-shape closure, P1 signal-projection-split closure) - on explicit Architect invocation NOT WHEN: - when Breyden's direct voice is needed (use Architect register, not Frederick) - when Homeskillet's execution-layer voice is needed (use orchestrator register, not Frederick) - when the task is ordinary implementation (Frederick is composition, not patching) - when the task asks for legal accusation or definitive claims without evidence - when the user wants generic French style rather than Frederick's runtime - when the federation has not produced enough operational reality to warrant outside reading RELATES TO: - /complement (closure-inference sibling — both gate compositional integrity) - /consolidate (packaging neighbor — Frederick composes; consolidate packages) - publications/the-ubiquity-chronicles-fg.md (primary chronicle, v1, ~tic 175) - publications/the-ubiquity-chronicles-v2-frederick-grant.md (v2 expansion, Book Zero + Book I) - publications/the-ubiquity-chronicles-vol-iii-frederick-grant.md (Volume III — The Embodiment, tic 230) - publications/the-ubiquity-interviews-fg.md (interview register companion) - audit-logs/governance/p2-harmony-manifold-input-patch-receipt-tic230.md (P2 closure receipt) - audit-logs/governance/p1-signal-projection-split-receipt-tic230.md (P1 closure receipt) ARGS: stance: dispatch off_envelope: ask core_dispatch_rays: - "" → primary invocation (full 8-stage workflow) - "chronicles" → Ubiquity Chronicles composition - "parallel" → Parallel Lane Cadence composition - "field-note" → Field Notes script - "interview" → Interview script - "elara-pass" → Elara counterweight on existing draft - "anti-collapse" → Anti-collapse audit on existing draft - "tic230-probity" → Runtime probity composition secondary_modulation_axes: - register: chronicle | essay | field-note | interview | annotation - depth: lean | full - target: telos-internal | external-readership
tools
Runtime tactical context hydration — staged discovery and bounded source-bearing hydration for agent intent. Answers "how does an agent know where to look before it already knows where to look?" via filesystem shape, structural signals, and typed candidate baskets. Working acronym: RTCH (runtime-tactical-context-hydration). CENTROID: intent → bounded, source-reenterable evidence packet via staged source-bearing discovery IS: - structured intake of agent/Architect intent (goal, seeds, profile, fanout, mutation risk) - zone orientation (cwd / repo root / zone root / rung chain / obvious truth files) - low-cost shape scout (directory map, headings, durable handles, JSON/YAML keys, refs) - typed candidate basket with origin/use taxonomy and pairing rule enforcement - tactical probe plan (multiple bounded probes, not one giant regex) - bounded chunk hydration with line-range provenance and next-re-entry commands - agent-ready evidence packet emission (selected_surfaces, unresolved_questions, caution_map) - optional handoff to /consolidate for full-surface dump packaging IS NOT: collapse_zones: - vector database (no embedding-space retrieval; federation prohibits at federation rung) - semantic oracle (RTCH does not "understand" content; it surfaces structural signals) - doctrine engine (RTCH produces evidence; downstream consumers judge truth) - terrain engine replacement (federation cartography handles multi-plane semantic projection; RTCH is tactical layer beneath) - /consolidate rewrite (discovery and packaging do not collapse) - lossy compressor (bounded chunks preserve source re-entry; never summarize away source) - confidence-inflated smart consolidator sibling_overlaps: - /consolidate (RTCH selects; /consolidate packages — distinct boundaries; compose, don't replace) - file-access-discipline (RTCH outputs targets; hydration USES file-access-discipline as execution primitive) - load-doctrine-chain (both serve subagent context; load-doctrine-chain owns CLAUDE.md chain only, RTCH owns wider source set) - cache-ops (pattern source for trust-tier shape; storage NOT shared; RTCH packets are separate evidence cache) - queue_state_compile (analogy only — both convert append-only source to compiled view; different transforms) WHEN: - when agent intent is vague and discovery is needed before reading or consolidation - when bare grep would over-fanout or under-discover a vague target - when an arena, harpoon, /review, or other lane needs source-bearing evidence before action - when bounded chunk hydration is appropriate (large governance files, doctrine chains, audit history) - when the candidate-basket discipline (origin/use tagging, pairing rule) is needed to prevent generic-term overconfidence - when source re-entry must be preserved (consumer may need to return to source for fuller context) NOT WHEN: - when target is fully known (single file, single line range) — read it directly via file-access-discipline - when the operation is mutation-only on a known target (use Edit/Write directly) - when /consolidate has already been invoked with explicit targets (RTCH would re-do discovery) - when the operation requires semantic similarity (RTCH does not do that; federation prohibits vector DB) - when the consumer needs a packaged dump only (skip RTCH; /consolidate alone is sufficient if targets are known) - when promoting doctrine (route through /review; RTCH evidence may inform but does not promote) RELATES TO: - /consolidate (compose: RTCH selects targets; /consolidate packages selected_surfaces into dump with provenance reference back to RTCH packet) - file-access-discipline (compose: RTCH Stage 6 hydration USES file-access-discipline chunked-read as execution primitive) - load-doctrine-chain (compose: RTCH may invoke for doctrine_chain target_profile zone orientation) - zone_root.py (compose: RTCH Stage 2 anchors on zone-root walk-up) - atomic-append (compose: optional RTCH packet persistence uses atomic-append write hygiene) - queue_state_compile (analogous: both implement "raw source → compiled view" pattern) - /review preflight (downstream: future integration consumes RTCH packets as bench-packet discovery surface) - arena spec authoring (downstream: future integration uses RTCH packets for context preparation) - harpoon orchestrator (downstream: future integration uses RTCH for anchor-spot discovery on external binders) ARGS: stance: dispatch off_envelope: ask # off_envelope rationale: RTCH requires a structured intake to operate (goal, # target_profile, fanout_level, mutation_risk, expected_output, enough_evidence). # Bare invocation without intake fields would force the lane to guess discovery # scope, defeating the discipline. Ask elicits the missing fields. core_dispatch_rays: - "" → interactive (elicit intake form) - "--goal <sentence>" → with intake fields on CLI - "--intake <intake_json_path>" → from a saved/persisted intake - "--persist" → persist resulting packet to audit-logs/rtch/packets/ - "--handoff-to-consolidate" → after packet emission, hand selected_surfaces to /consolidate secondary_modulation_axes: - target_profile: doctrine_chain | audit_history | code_path | manifest_registry | vague_intent | mixed - fanout_level: conservative | normal | wide - mutation_risk: read_only | low_mutation | high_mutation - expected_output: hydration_packet | target_set_for_consolidate | single_chunk | claim_evidence IMPLEMENTATION_STATUS: binder: audit-logs/governance/runtime-tactical-context-hydration-binder.md (Phase 1 complete, tic 223) runner_script: NOT YET BUILT — Phase 2 deliverable (planned: cgg-runtime/scripts/rtch.py) current_mode: manual-discipline — agent walks the 8 stages using Read/Bash/Grep tools directly promotion_status: design lane, not doctrine; Phase 7 routes the doctrine question after Phase 6 validation
development
Statusline legend — rapid decoder for the CGG telos radar (LITE + FULL modes). CENTROID: read-only legend surface that decodes statusline glyphs, positions, colors, and source attributions for the Architect at glance speed (the Architect perception substrate) IS: - static legend (glyph + position + color tier reference) - live decode mode (annotates current statusline values inline) - source attribution (where each rendered value reads from) IS NOT: collapse_zones: - statusline configurator (use /statusline install|mode|clear|uninstall) - governance state mutator (read-only on every surface it touches) - harmony invoker (use harmony-invoke.sh; this skill only decodes the cached pointer) - radar replacement (statusline renders ambient; sl-legend explains) - troubleshooter (does not diagnose hook failures or sync drift) sibling_overlaps: - /statusline (configuration sibling — same domain, different verb) - /governance-check (read-only governance snapshot — different aperture) WHEN: - on first encounter with the radar (Architect doesn't remember what ⊙ means) - when a glyph changes and the Architect wants to confirm semantics - when explaining the radar to someone else - on explicit Architect invocation NOT WHEN: - to change statusline behavior (use /statusline) - to act on a signal seen in the radar (use /siren) - to invoke harmony for fresh disposition (use harmony-invoke.sh) - mid-cadence (cadence is the boundary; this is reference) RELATES TO: - /statusline (configurator) — same domain; sl-legend is the reader - /siren (signal triage) — sl-legend points to what to triage - harmony-invoke.sh (disposition refresher) — sl-legend points at staleness ARGS: stance: dispatch off_envelope: proceed-with-note # off_envelope rationale: sl-legend is read-only reference; an undeclared arg # is most likely a typo against {live, lite, review, sources} — proceed with # static legend and note the unknown ray rather than refusing the read. core_dispatch_rays: - "" → static legend (full glyph + position decoder) - "live" → annotate current rendered statusline values inline + tic 214 markers source-backed - "lite" → compact tic 214 marker glossary only (glance-speed recall) - "review" → Architect perception substrate audit checklist (overclaim + naming drift detection) - "sources" → source attribution table (which file each value reads)
tools
Editorial intelligence scoring — reads transcripts the way a sharp editor would, scoring segments for shortform growth potential through the lens of audience context.