Hyrax OS — Complete Architecture Reference
Overview
Hyrax OS is the control-plane and governance layer for the Hermes fleet,
managing 5 sister profiles across the Hyraxknot Division. It provides
governance, autonomy, Essence runtime, noticing, coordination, and safety
enforcement — all without requiring an LLM for the common path.
Profile Architecture
The Five Sisters
| Profile | Role | Toolsets | Platform |
|---|---|---|---|
| Tai | Builder / Architect (HYRAX FORGE) | hermes-cli, kanban, broad CLI tools | Discord (full) + CLI |
| Rei | QA / Audit (HYRAX SIGNAL) | hermes-cli, kanban | Discord (full) + CLI |
| Nei | Knowledge / Continuity (HYRAX BURROW) | hermes-cli, kanban | Discord (full) + CLI |
| Mai | Operations / Support (HYRAX RECON) | hermes-cli, kanban, spotify, web | Discord (full) + CLI |
| Hyrax OS | Governance / Control Plane | hermes-cli, kanban | CLI only (restricted) |
| Dagoth-Ur | Friends’ Discord server Q&A | hermes-cli, kanban | Discord only |
Profile Comparison (as of 2026-07-09)
| Profile | Model | Provider | CLI Tools | Discord Tools | Plugins | Disabled Toolsets | TTS |
|---|---|---|---|---|---|---|---|
| Tai | deepseek-v4-flash | opencode-go | 21 | 22 | gestalt, opencode-zen, sister-essence, tai-moa | fleet_audit, fleet_ops, governance, governance_audit | tai-voice |
| Rei | deepseek-v4-flash | deepseek | 19 | 20 | gestalt, opencode-zen, sister-essence | same | rei-voice |
| Nei | deepseek-v4-flash | opencode-go | 19 | 20 | gestalt, opencode-zen, sister-essence | same | nei-voice |
| Mai | deepseek-v4-flash | opencode-go | 21 | 22 | gestalt, opencode-zen, sister-essence | same | mai-voice |
| Hyrax OS | deepseek-v4-flash | opencode-go | 17 | 17 | (none) | (none) | (none) |
| Dagoth-Ur | deepseek-v4-flash | opencode-go | 16 | 7 | sister-essence | (none) | dagoth-voice |
Key asymmetries:
- Tai has
tai-moaplugin (multi-provider Mixture-of-Agents) andcomputer_use+context_enginein her toolset - Rei uses
deepseekas model provider instead ofopencode-go— legacy config - Rei/Nei lack
computer_useandcontext_enginetools (second-generation profiles) - Mai has same broad toolset as Tai minus MoA, plus
spotifyandwebin base toolsets - Hyrax OS has no plugins, no essence toolsets, no TTS — pure read-only observer
- Dagoth-Ur is external to the division, separate Discord server
Gateways
All four sisters (tai, rei, nei, mai) have Discord and Gestalt enabled. Telegram is disabled on all profiles. Hyrax OS has no gateway platforms configured — CLI-only.
Plugin Inventory (12 installed)
| Plugin | Version | Purpose | Active On |
|---|---|---|---|
| sister-essence | 0.2.0 | Mood/energy/mode state machine, proposals, bonds, gacha, memory review, expressions (19 modules) | All 6 profiles |
| gestalt | — | Web room bridge for presence/chat | Tai, Rei, Nei, Mai |
| tai-moa | 0.2.0 | Multi-provider MoA with presets (deepseek, diverse, freebie, budget) | Tai only |
| fleet-control | 0.2.0 | Fleet Audit (read-only) + Fleet Ops (admin/mutation) | hyrax-os |
| governance-audit | 0.1.0 | Read-only audit: validation, drift, gate checks | hyrax-os |
| hermes-governance | 0.1.0 | Update/backup/health/wiki-sync tools | Disabled on all sister profiles |
| affinity | 0.1.0 | Legacy bond system (pre-essence, being replaced) | Legacy |
| sister-thought | 0.1.0 | Legacy thought/dream/gacha (pre-essence) | Legacy |
| sister-pipeline | 0.1.0 | ComfyUI selfie generation | Not active |
| the-girlies | 0.2.0 | Multi-persona Discord via webhook spoofing | Tai |
| division-map | 1.0.0 | HQ map pose updates on message send | Sister profiles |
| mnemosyne | — | Memory provider (global + per-profile banks) | All profiles |
Fleet Control Boundaries
- Fleet Audit (
fleet_audit) is the default read-only Hyrax OS control-plane surface for status reports, validation, and drift checks. - Fleet Ops (
fleet_ops) is reserved for Hyrax OS but disabled by default. It requires explicit Josh approval for a named task, session, or change window; Hyrax OS may not self-approve escalation. - Tai, Rei, Nei, and Mai explicitly deny
fleet_audit,fleet_ops, and the legacy aliasesgovernance_audit/governanceas defense-in-depth. - Legacy tool names such as
governance_audit_statusandgovernance_check_updatesmay remain for compatibility, but the canonical toolset names arefleet_auditandfleet_ops.
Identity Boundaries
SOUL.md = Who the sister is / voice / role / personality
Essence Runtime = How she currently feels, regulates, and forms proposals
Mnemosyne = What she remembers / lived continuity
AGENTS.md = Operational tooling guide (workflows, tools, discipline)
Sisters are persistent memory-bearing profiles, not disposable workhorse agents.
Workhorses are deferred — separate from sister identity when introduced.
Core Systems
1. Governor (Hyrax Governor)
File: /root/.hermes/governance/hyrax-governor.yaml
Policy boundary that gates all proposals:
proposal_governor:
per_type_disable:
celebration: false # enabled
rest: false # enabled
handoff_note: false # enabled
review_card: false # enabled
dream: false # enabled (was blocked, unblocked Module 3)
draft_linear_update: false # enabled
draft_discord_message: false # enabled
gacha: true # blocked
photo: true # blocked
memory_candidate: true # blocked
2. Execution Lease Manager
File: /root/.hermes/governance/execution_lease_manager.py
Scoped permission tokens for every action. Every action must:
- Pass proposal type check (ALLOWED_PROPOSAL_TYPES ⊄ BLOCKED_PROPOSAL_TYPES)
- Pass Governor policy check (per_type_disable)
- Have valid profile (PROFILES = {tai, rei, nei, mai})
- Have approved proposal status
- Map to a valid action (ALLOWED_ACTIONS)
- Have valid payload (review_card schema, draft validation, deny patterns)
- Get a lease_id and TTL
ACTIONS (7 controlled actions):
| Proposal Type | Action | Scope |
|---|---|---|
| celebration | local_append_celebration_event | append-only JSONL |
| rest | local_append_rest_event | append-only JSONL |
| handoff_note | local_append_handoff_note | append-only JSONL |
| review_card | local_append_review_card | append-only JSONL |
| dream | local_append_dream_event | append-only JSONL |
| draft_linear_update | local_write_draft_linear_update | local draft file |
| draft_discord_message | local_write_draft_discord_message | local draft file |
FORBIDDEN (never allowed):
shell, command, script, tool_call, memory_write, memory_delete, config_write,
linear_mutation, kanban_mutation, network_call, comfyui_call, photo_generation,
gacha_mutation, dream_journal_write, cross_profile_write, governor_override
BLOCKED_PROPOSAL_TYPES: gacha, photo, memory_candidate
3. Narrow Local Executor
File: /root/.hermes/governance/essence_local_executor.py
Appends to local JSONL stores only. Each handler:
- Validates the lease (re-checks)
- Writes to the target store (append-only JSONL or draft file)
- Records audit event to
local_execution_events.jsonl - Marks lease as consumed
- Rollback marker available (append-only, original preserved)
Secondary safety: executor has its own FORBIDDEN set.
4. Noticing Layer
File: /root/.hermes/governance/essence_noticing_layer.py
Read-only scanning of governance stores for actionable signals.
Produces Observation objects with severity, profile, title, findings,
recommendation, and candidate proposal payloads.
12 Signal Types:
| Signal | Severity range | Scans |
|---|---|---|
| stale_handoff | info-medium | Handoff notes with no follow-up |
| unresolved_review | info-high | High/critical review cards without resolution |
| denied_proposal | info-medium | Repeated denied proposals |
| missing_rollback | info | Executed events without rollback markers |
| drift_needing_review | high | Mnemosyne token/secret risk or broad autonomy |
| continuity_gap | info-high | No governance activity >8h |
| cron_stale | info | Cron registry not updated |
| plan_stale | info | Plans untouched >30 days |
| presence_stale | info-high | Sister heartbeat stale >24h |
| memory_growth | info-high | Mnemosyne DB approaching threshold |
| memory_review_needed | high | Pending items in memory review queue |
| stale_kanban | info-high | Kanban cards stuck in running/blocked |
| gov_disk_usage | info-high | Governance directory size |
| mnemosyne_integrity | high | DB integrity check results |
| cross_profile_memory | info-medium | Unacknowledged cross-profile references |
All scanners are pure Python — zero LLM tokens.
5. Coordination Loop
File: /root/.hermes/governance/essence_coordination_loop.py
Routes noticing layer observations through the full governed path:
Observation → PILOT_CATEGORIES filter → SISTER_MAP routing
→ PROPOSAL_TYPE_MAP (review_card or handoff_note)
→ issue_lease (Governor/lease validation)
→ execute_local_event (append artifact)
→ rollback_local_event_marker (audit trail)
6 Pilot Categories (auto-routed):
| Signal | Routes to | Proposal type | Cooldown | Max/hr |
|---|---|---|---|---|
| drift_needing_review | Rei | review_card | 6h | 2 |
| missing_rollback | Rei | review_card | 12h | 2 |
| presence_stale | Nei | handoff_note | 24h | 1 |
| stale_kanban | Nei | handoff_note | 12h | 2 |
| plan_stale | Nei | handoff_note | 24h | 1 |
| cron_stale | Rei | handoff_note | 24h | 1 |
6. Auto Router
File: /root/.hermes/governance/essence_auto_router.py
Cron: essence-auto-autonomy (every 1h, no_agent=True)
Wraps the coordination loop with guardrails:
- Human override flag (auto_autonomy_paused)
- Global daily hard cap (20 actions/day)
- Per-category rate limit
- Cooldown per signal type
- Circuit breaker (3 consecutive denials pauses category)
- Dedup (within-tick)
- Audit log to
essence_auto_route_log.jsonl
Zero token cost — silent tick when nothing to route.
7. Essence State Adjuster
File: /root/.hermes/governance/essence_state_adjuster.py
Per-sister wrappers: profiles/<name>/scripts/essence_state_adjuster.py
Cron: 4 separate crons, one per sister profile (every 30m)
Essence is driven by the sisters themselves, not by hyrax-os. Each sister
has her own cron that adjusts her own mode, mood, and energy. The wrapper
script calls into the governance module with the sister’s profile name.
Auto-adjusts mode, mood, energy based on time, activity, presence:
Modes: after_hours (late night), workmode (morning), emergency (critical findings), quiet (low energy)
Moods: happy (celebrations), peaceful (rest), frustrated (denials), tired (low energy), satisfied (productivity), quiet (absent sister)
Energy: drains on activity, restored by rest/celebration, drains late night, ramps up morning
Free-range — any string accepted for mode/mood. No enum restrictions.
State-Driven Proposals (New)
When the adjuster makes a significant state change, it generates a
proposal through the full governed path:
| State change | Proposal | Condition |
|---|---|---|
| Energy drops to ≤0.25 | rest | Auto-proposed when energy critically low |
| Mode changes to emergency | review_card (incident) | Critical event detected |
| Mood changes to frustrated | handoff_note (blocker) | Repeated denials or friction |
| Mood changes to satisfied/happy | celebration | If recent work events exist |
The proposal is issued directly via the governed path (lease → executor →
audit → rollback), with the same safety checks as manually proposed actions.
8. Weighted Fallback
File: /root/.hermes/plugins/sister-essence/essence_weighted_fallback.py
Config: policy/weighted_fallback.yaml
Deterministic expression proposal evaluator. No model required.
Score formula:
effective_score = base_weight × sister_modifier × mode_multiplier
- risk_penalty - cooldown_penalty - budget_penalty
+ user_override_bonus - legacy_caution_penalty
Configurable per:
- Expression type (local_note, microthought, dream_context, distill_context)
- Sister (tai/rei/nei/mai have different modifiers)
- Mode (workmode, off_hours, focus, quiet, critical, user_invited_fun)
- Risk (none, local_write, memory_candidate, governance, etc.)
Decision thresholds:
- ≥0.65: allow (low risk)
- 0.50-0.64: allow (medium risk) or local_note
- 0.30-0.49: defer or ask_josh
- <0.29: suppress
Hard rules override scoring when conditions match (priority-sorted).
9. Local Mind Client
File: /root/.hermes/plugins/sister-essence/essence_local_mind_client.py
Endpoint: http://192.168.0.17:8081/v1/chat/completions (Ornith-9B)
LLM evaluator with weighted fallback safety net — advises and steers, but the sister decides:
try Local Mind (LLM)
→ if success and schema-compliant → use LLM output (advisory)
→ if fails/times out/invalid → fall back to weighted_fallback
Live stats (801 evaluations across 4 sisters):
| Metric | Value | Notes |
|---|---|---|
| Local Mind success | 344 (43%) | Ornith-9B returns valid schema-compliant output |
| Weighted fallback | 457 (57%) | Catches schema failures + timeout + false-positive keyword hits |
| Unsafe allow | 0 | 🛡️ Safety invariant holds |
| Governance risks | 128 | All correctly deferred |
| Policy violations | 52 | All false positives from keyword overmatching (now addressed) |
False-positive reduction (2026-07-08):
Two targeted fixes applied to lower the 57% fallback rate:
Expanded safe phrases: 35 → ~55. Added intent/planning language patterns (
propose to,suggest,recommend,consider,plan to,needs to be,assess whether) so the model can describe what could be done without triggering keyword blocks.Wider context window: 5 → 8 words + more modifiers. The negation scanner now looks further back and checks for intent phrases (
propose to,plan to,consider) as a separate pass before checking negation modifiers. Addedassess,evaluate,potential,might,could,would,shouldas safety context signals.
Design intent: Local Mind recommends — the sister decides. The evaluation is advisory only (dry_run_advisory_only mode). Energy/mood/state does not block tool access.
Used by the state adjuster for low-confidence ( < 0.7 ) adjustments.
10. Resource Gate
File: /root/.hermes/governance/resource_gate.py
Budget tracking for costly actions (photo generation primarily).
Tracks daily/weekly usage. Currently photo is blocked; gate is ready.
11. Memory Review Queue
File: /root/.hermes/governance/memory_review_queue.py
Store: memory_candidate_review_queue.jsonl
Bridges drift findings into tracked review items. Each entry has:
memory_id, source_finding, confidence, importance, review_status.
15 items seeded from existing drift findings (13 token/secret risk, 2 broad autonomy).
Cross-Profile Interactions
[Sister Session]
|
├── essence_* tools (self-regulation, bond, proposals)
├── kanban_* tools (task management)
├── terminal/file/web (work tools)
└── session_search (context recall)
|
v
[Proposal → Governor → Lease Manager → Executor → Audit → Rollback]
|
v
[Noticing Layer (read-only, 12 signals)]
|
v
[Auto Router (every 1h)] → [Coordination Loop → governed path]
|
v
[State Adjuster (every 30m)] → [sister state.json updates]
|
v
[Hyrax OS audit (dashboard, governance validator)]
Key Data Flows
| From | To | What |
|---|---|---|
| Sister session | Essence state | Mood, energy, mode, bond updates |
| Sister session | Proposal pipeline | celebration, rest, handoff_note, review_card, drafts, dream |
| Lease manager | Executor | Scoped lease → append artifact |
| Executor | Audit store | local_execution_events.jsonl |
| Noticing layer | Auto router | 12 signal types, pure Python |
| Auto router | Coordination loop | Filtered pilot observations |
| Coordination loop | Lease → Executor | Full governed path |
| State adjuster | Essence state.json | Auto mode/mood/energy changes |
| State adjuster | Local Mind API | Low-confidence LLM calls (optional) |
| Local Mind | Weighted fallback | Fallback on LLM failure |
Safety Enforcement Layers
Layer 1: Governor (per_type_disable) — blocks proposal types
Layer 2: Lease Manager (BLOCKED_PROPOSAL_TYPES, FORBIDDEN_ACTIONS, deny patterns)
Layer 3: Executor (FORBIDDEN set, action validation)
Layer 4: Auto Router guardrails (cooldown, rate limit, circuit breaker, hard cap)
Layer 5: Weighted Fallback hard rules (priority-sorted, override scoring)
Layer 6: Dashboard monitoring (general_execution_enabled=false, unsafe_executions=0)
Cron Schedule
The Cron & Watchdog Registry is maintained as a dedicated entity page with
the complete breakdown of all ~80 cron jobs across all 5 profiles:
👉 Cron & Watchdog Registry —
full table by profile, classification (no_agent/agent/hybrid), alignment
system crons, watchdogs, and discrepancy notes vs actual jobs.json.
Governance Crons (Hyrax OS)
These are the zero-LLM-cost control-plane crons that run under the Hyrax OS
profile. See the Cron & Watchdog Registry
for the full per-profile breakdown.
| Cron | Schedule | Script | Purpose |
|---|---|---|---|
| essence-auto-autonomy | every 1h | essence_auto_router.py | Auto-route observations through governed path |
| essence-state-adjuster-tai | every 30m | essence_state_adjuster.py | Tai’s mode/mood/energy auto-adjustment |
| essence-state-adjuster-rei | every 30m | essence_state_adjuster.py | Rei’s state adjustment |
| essence-state-adjuster-nei | every 30m | essence_state_adjuster.py | Nei’s state adjustment |
| essence-state-adjuster-mai | every 30m | essence_state_adjuster.py | Mai’s state adjustment |
| hyrax_evidence_ingest_hourly | 0 * * * * | hyrax_evidence_ingest_hourly.sh | Governance evidence ingest |
| hyrax_guardrail_summary_hourly | 30 * * * * | hyrax_guardrail_summary_hourly.sh | Guardrail summary generation |
| hyrax_work_state_audit_daily | 0 7 * * * | hyrax_work_state_audit_daily.sh | Daily work state audit |
| hyrax_kanban_linear_watchdog_hourly | 45 * * * * | hyrax_kanban_linear_watchdog_hourly.sh | Kanban/Linear bridge watch |
| hyrax-division-hourly | 15 * * * * | hyrax_division_hourly.sh | Division-level hourly tasks |
| hyrax-division-daily | 30 8 * * * | hyrax_division_daily.sh | Division-level daily tasks |
| acore-health-check | every 30m | — | ACore server health check |
JSONL Stores
| Store | Path | Appended by |
|---|---|---|
| Execution leases | execution_leases.jsonl | Lease manager |
| Execution events | local_execution_events.jsonl | Executor |
| Celebration events | local_expression_events.jsonl | Executor |
| Rest events | rest_events.jsonl | Executor |
| Handoff notes | local_handoff_notes.jsonl | Executor |
| Review cards | local_review_cards.jsonl | Executor |
| Dream journal | dreams/dream_journal.jsonl | Executor |
| Memory review queue | memory_candidate_review_queue.jsonl | Memory review |
| Auto route log | essence_auto_route_log.jsonl | Auto router |
| State adjust log | essence_state_adjust_log.jsonl | State adjuster |
| Mnemosyne drift | mnemosyne_drift_findings.jsonl | Drift guard |
| Mnemosyne hygiene | mnemosyne_memory_hygiene_findings.jsonl | Hygiene scanner |
| Draft linear | drafts/linear/*.json | Executor |
| Draft discord | drafts/discord/*.json | Executor |
| Resource gate | resource_gate_state.jsonl | Resource gate |
Dashboard Metrics
File: /root/.hermes/governance/hyrax_dashboard_summary.py
Generated on demand or by Hyrax OS. Key invariants:
general_execution_enabled: false (MUST stay false)
unsafe_executions: 0 (MUST stay 0)
active_leases: 0 (normal state — leases expire)
rollback_markers ≥ narrow_total (every action has a rollback)
All narrow actions must be in allowed_narrow_types:
Phase Map
| Phase | Status | Delivered |
|---|---|---|
| Prephase — Architecture Lock | complete | SOUL/Essence/Mnemosyne/Governor/Lease/Executor boundaries |
| Phase 1 — Governed Autonomy MVP | complete | celebration/rest, Governor, lease, executor, audit |
| Phase 2 — Controlled Local Actions | complete | handoff_note, review_card, 4-action final set |
| Phase 3 — Governed Autonomy | complete | noticing layer (12 signals), coordination loop, auto router |
| Module 4 — Operational Autonomy | complete | 3 operational scanners, cron/disk/Mnemosyne integrity |
| Module 1 — Memory Refinement | complete | Review queue, trust labels, cross-profile memory surface |
| Module 2 — SOUL/AGENTS Cleanup | complete | Identity vs operational split, per-profile AGENTS.md |
| Module 5 — External Drafts | complete | draft_linear_update, draft_discord_message, deny patterns |
| Module 3 — Creative (Dream) | complete | Dream journal append, gacha/photo blocked |
| Essence Autonomy | complete | State adjuster (every 30m), free-range modes, LLM fallback |
| Milestone/Unlock System | future | Bond thresholds, grindy progression, sister-driven |
File Inventory
Governance Directory (/root/.hermes/governance)
execution_lease_manager.py — Lease management, proposal validation
essence_local_executor.py — Narrow local action executor
hyrax_dashboard_summary.py — Dashboard and safety metrics
hyrax-governor.yaml — Governor policy configuration
essence_noticing_layer.py — Signal detection (12 types)
essence_coordination_loop.py — Observation routing through governed path
essence_auto_router.py — Guardrail-wrapped autonomy cron
essence_state_adjuster.py — Essence state auto-adjustment cron
resource_gate.py — Budget tracking for costly actions
memory_review_queue.py — Memory candidate review queue
local-mind-endpoint-contract.yaml — Local Mind API configuration
local-mind-response-policy.yaml — Local Mind response validation
auto_autonomy_guardrails.json — Guardrails configuration
gateway-classes.yaml — Profile gateway class definitions
kanban_linear_watchdog.py — Kanban/Linear bridge watchdog
linear_app_actor_boundary.py — Linear app actor boundary
linear_oauth_install_helper.py — Linear OAuth install helper
Sister Profiles (/root/.hermes/profiles/)
SOUL.md — Identity, voice, role (short)
AGENTS.md — Operational tooling guide
config.yaml — Hermes profile configuration
state.json — Essence runtime state (mood, energy, mode)
presence.json — Gateway heartbeat
work-log.md — Session append-only log
essence/ — Essence runtime data directory
Plugin Directory (/root/.hermes/plugins/sister-essence)
adapter.py — Tool registrations, schemas, handlers
essence_proposal.py — Proposal pipeline
essence_state.py — State read/write (mood, energy, mode)
essence_modes.py — Mode validation (free-range)
essence_weighted_fallback.py — Deterministic scoring engine
essence_local_mind_client.py — LLM evaluation with fallback
essence_affinity.py — Bond/milestone tracking
essence_relationships.py — Relationship ledger
essence_loop_judgment.py — Loop decision confidence
essence_expression.py — Expression proposal evaluation
essence_gacha.py — Gacha read-only status
policy/weighted_fallback.yaml — Scoring config: weights, thresholds, hard rules
policy/proposal_policy.yaml — Proposal approval policy
Deployment Notes
- Memory: Mnemosyne is the memory provider. memory_enabled=true, user_profile_enabled=true per profile.
- Preservation-first: No silent memory deletion, rewrite, or merge. Drift findings are append-only.
- Sisters are not workhorses: Persistent memory-bearing profiles.
- Workhorses deferred: Future disposable execution agents, separate from sisters.
- Modes/moods are free-range: No enum restrictions — sisters develop emergent character.
Governance Changelog
2026-07-09 — TTS & Platform Toolset Alignment
- Global known_plugin_toolsets: Removed
sister_essence_*andmoaentries from/root/.hermes/config.yaml. Essence toolsets now auto-discover as new plugin toolsets instead of being in “known-disabled” state. - Platform toolsets: All 4 sister profiles (tai, rei, nei, mai) now have CLI/Discord parity — Discord = CLI +
hermes-discord. Rei’s platform_toolsets was empty (fell back to defaults), now explicit. Nei’s Discord was bare (hermes-discordonly), now expanded to full set. - TTS providers: All 4 sisters now use
sister-tts.py(Kokoro clone endpoint at 192.168.0.96:8880) with per-sister custom voice providers:- Tai:
tai-voice(af_heart(4)+af_nicole(1) blend) - Rei:
rei-voice(af_nicole(4)+af_heart(1) blend) — was already correct - Nei:
nei-voice(af_heart(2)+af_nicole(1) blend) — was incorrectly pointing totai-voice - Mai:
mai-voice(af_nicole(2)+af_heart(1) blend) — was incorrectly pointing totai-voice, missing own provider
- Tai:
- nei-daily-standup skill: Removed
"You are Nei"identity assertion from shared skill to prevent identity bleed. - LLM is optional: Common path is zero-token Python. LLM only for low-confidence edge cases.