{"id":"d3adecc9-35ae-4ffe-aa65-8d4041b1f016","entityType":"agent","slug":"clawhub-capachow-lens","name":"Lens","canonicalUrl":"https://www.xpersona.co/agent/clawhub-capachow-lens","canonicalPath":"/agent/clawhub-capachow-lens","generatedAt":"2026-10-09T17:52:36.939Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T11:50:35.916Z","emptyReason":null},"description":"Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic ref... Skill: Lens Owner: capachow Summary: Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic ref... Tags: latest:1.2.3 Version history: v1.2.3 | 2026-05-02T07:38:47.157Z | user - Removed the file _meta.json from the skill package. - No changes were made to functionality, documentation, or logic within the skill itself. v","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.7K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17e6yqjjn86bnv3tkjes7gks983k4ap:lens","sourceUrl":"https://clawhub.ai/capachow/lens","homepage":"https://clawhub.ai/capachow/skills/lens","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/capachow/lens","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/capachow/skills/lens","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic ref..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:50:35.916Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:50:35.916Z","emptyReason":null},"stars":null,"forks":null,"downloads":2741,"packageName":null,"latestVersion":"1.2.3","tractionLabel":"2.7K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:50:35.916Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T11:50:35.916Z","lastCrawledAt":"2026-10-09T11:50:35.916Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T11:50:35.916Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.3","createdAt":"2026-05-02T07:38:47.157Z","changelog":"- Removed the file `_meta.json` from the skill package. - No changes were made to functionality, documentation, or logic within the skill itself.","fileCount":15,"zipByteSize":20179},{"version":"1.2.2","createdAt":"2026-05-02T07:23:06.831Z","changelog":"Final reconciliation. Version 1.2.2 with timezone patch.","fileCount":14,"zipByteSize":18900},{"version":"1.2.1","createdAt":"2026-05-02T07:22:30.565Z","changelog":"No user-facing changes; internal metadata update only.","fileCount":14,"zipByteSize":18900},{"version":"1.2.0","createdAt":"2026-05-02T07:21:54.513Z","changelog":"Breaking the sync loop. Stabilizing on 1.2.0 with timezone awareness patch.","fileCount":14,"zipByteSize":18900},{"version":"1.1.11","createdAt":"2026-05-02T07:21:26.184Z","changelog":"No user-facing changes. - Updated metadata files: _meta.json and package.json. - No changes to functionality or documentation apart from metadata.","fileCount":14,"zipByteSize":18899},{"version":"1.1.10","createdAt":"2026-05-02T06:59:01.129Z","changelog":"- Minor version update to 1.1.10 with metadata and dependency adjustments. - Documentation (SKILL.md) remains unchanged; no feature or protocol modifications. - Ensures version and dependency alignment in system files.","fileCount":14,"zipByteSize":18899},{"version":"1.1.9","createdAt":"2026-05-02T06:58:32.611Z","changelog":"- Updated version to 1.1.9. - Documentation and metadata refreshed in SKILL.md and package.json. - No core logic or functional changes; existing features and behavior remain as before.","fileCount":14,"zipByteSize":18901},{"version":"1.1.8","createdAt":"2026-05-02T06:57:02.530Z","changelog":"lens 1.1.8 - No user-facing feature changes in this release. - Updated metadata and/or dependency information in _meta.json and package.json.","fileCount":14,"zipByteSize":18901}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17e6yqjjn86bnv3tkjes7gks983k4ap:lens","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-capachow-lens/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-capachow-lens/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-capachow-lens/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-capachow-lens/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-capachow-lens/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-capachow-lens/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T17:52:36.935Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-capachow-lens/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-capachow-lens/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-capachow-lens/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-capachow-lens/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T11:50:35.916Z","emptyReason":null},"readme":"Skill: Lens\n\nOwner: capachow\n\nSummary: Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic ref...\n\nTags: latest:1.2.3\n\nVersion history:\n\nv1.2.3 | 2026-05-02T07:38:47.157Z | user\n\n- Removed the file `_meta.json` from the skill package.\n- No changes were made to functionality, documentation, or logic within the skill itself.\n\nv1.2.2 | 2026-05-02T07:23:06.831Z | user\n\nFinal reconciliation. Version 1.2.2 with timezone patch.\n\nv1.2.1 | 2026-05-02T07:22:30.565Z | auto\n\nNo user-facing changes; internal metadata update only.\n\nv1.2.0 | 2026-05-02T07:21:54.513Z | user\n\nBreaking the sync loop. Stabilizing on 1.2.0 with timezone awareness patch.\n\nv1.1.11 | 2026-05-02T07:21:26.184Z | auto\n\nNo user-facing changes.  \n- Updated metadata files: _meta.json and package.json.\n- No changes to functionality or documentation apart from metadata.\n\nv1.1.10 | 2026-05-02T06:59:01.129Z | auto\n\n- Minor version update to 1.1.10 with metadata and dependency adjustments.\n- Documentation (SKILL.md) remains unchanged; no feature or protocol modifications.\n- Ensures version and dependency alignment in system files.\n\nv1.1.9 | 2026-05-02T06:58:32.611Z | auto\n\n- Updated version to 1.1.9.\n- Documentation and metadata refreshed in SKILL.md and package.json.\n- No core logic or functional changes; existing features and behavior remain as before.\n\nv1.1.8 | 2026-05-02T06:57:02.530Z | auto\n\nlens 1.1.8\n\n- No user-facing feature changes in this release.\n- Updated metadata and/or dependency information in _meta.json and package.json.\n\nv1.1.7 | 2026-05-02T06:51:32.715Z | auto\n\n- Updated version to 1.1.7 in package.json.\n- No functional, behavioral, or documentation changes beyond the version bump.\n\nv1.1.6 | 2026-05-02T06:43:21.012Z | auto\n\n- Added _meta.json file for enhanced metadata definition.\n- No changes to core logic or behavior of the skill.\n\nv1.1.5 | 2026-05-02T06:37:15.875Z | user\n\nNo functional changes in this version; documentation only.\n\n- No file changes detected between versions.\n- No updates to code, prompts, or scripts.\n- No modifications in SKILL.md content or metadata.\n\nv1.1.4 | 2026-04-15T17:50:43.071Z | user\n\nVersion 1.1.4 of the \"lens\" skill contains no file changes.\n\n- No updates or modifications were detected in this release.\n- All documentation and functional elements remain the same as the previous version.\n\nv1.1.3 | 2026-04-05T07:03:09.986Z | user\n\nNo functional or documentation changes detected in this release.\n\n- Version bump with no file modifications.\n- Behavior and documentation unchanged.\n\nv1.1.2 | 2026-04-01T06:13:27.405Z | user\n\nAdded native redaction and anonymization for distillation.\n\nv1.1.1 | 2026-04-01T04:38:17.724Z | user\n\nUpdate migration logic to preserve legacy files as lowercased backups.\n\nv1.1.0 | 2026-04-01T02:00:09.087Z | user\n\nRelease v1.1.0: Migration to YAML Trinity Nodes, enhanced distillation logic, and refined bootstrap orchestration.\n\nv1.0.1 | 2026-03-31T20:02:15.251Z | user\n\nFix distillation logic: exclude subagent activity, optimize expert persona, and refine instructions.\n\nv1.0.0 | 2026-03-29T19:40:22.537Z | auto\n\n- Added `scripts/interview.js` to enhance interview automation.\n- Updated onboarding instructions: bootstrap script now outputs cron job configs instead of directly registering them.\n- Added `OPENCLAW_CRON_LIST` to required environment variables.\n- Improved lifecycle and orchestration sections for clarity on scheduling and cron integration.\n- General documentation adjustments for accuracy and clearer onboarding.\n\nv0.8.2 | 2026-03-29T02:15:39.904Z | user\n\nFilter out automated cron-triggered messages from distillation.\n\nv0.8.1 | 2026-03-29T02:10:38.996Z | user\n\nFinal aggressive scrubber logic and token optimization.\n\nv0.8.0 | 2026-03-28T23:19:52.466Z | user\n\nOptimize Anti-Contamination filter: Implement strict token culling for raw pastes and formalize prompt guards.\n\nv0.7.8 | 2026-03-28T23:10:00.154Z | user\n\nImplement dual-layer Anti-Contamination filter for raw pastes and markdown blocks.\n\nv0.7.7 | 2026-03-28T22:52:23.773Z | user\n\nFinal structural cleanup and version alignment.\n\nv0.7.6 | 2026-03-28T22:43:23.233Z | user\n\nAbstract hardcoded username to generic 'User' and declare missing dependencies in metadata.\n\nv0.7.5 | 2026-03-28T22:38:31.383Z | user\n\nFinalized metadata alignment and synchronized README/SKILL.md documentation.\n\nv0.7.4 | 2026-03-28T22:24:00.886Z | user\n\nHotfix: Align SET.json path resolution to workspace directory to prevent infinite bootstrap loops. Document privacy filters and declare USER.md dependency for ClawHub auditors. Refactor timezone retrieval to native Intl API.\n\nv0.7.3 | 2026-03-28T22:04:53.300Z | user\n\nImplement zero-token preflight script, raw transcript distillation, and decoupled configuration architecture.\n\nv0.7.2 | 2026-03-28T21:17:42.264Z | user\n\n- No visible changes were detected in this version.\n- The skill's documentation and implementation remain unchanged from the previous release.\n\nv0.7.1 | 2026-03-28T20:56:08.234Z | user\n\n**Summary:** Introduces a new pre-processing script for more precise LENS distillation and adds a package manifest.\n\n- Added `scripts/distillation.js` to pre-process OpenClaw session transcripts before AI is engaged, improving signal quality and efficiency for daily LENS distillation.\n- Process now skips AI invocation if no new input is detected, reducing wasted compute cycles.\n- Updated maintenance protocol to describe the new preflight (\"zero-token\") distillation step.\n- Added `package.json` for skill metadata and version control.\n- Enhanced self-healing routines: nightly version checks and structural migrations ensure current config parity.\n\nv0.6.4 | 2026-02-16T06:59:25.568Z | user\n\nNo user-facing changes in this release.\n\n- Version bumped to 0.6.4 with no file modifications detected.\n- Functionality and documentation remain unchanged from the previous version.\n\nv0.6.3 | 2026-02-11T10:07:13.131Z | user\n\n- Added a self-healing mechanism: the LENS now detects legacy configurations or missing environment variables and triggers silent migrations to maintain environment parity (preparing for v0.6.3+).\n- No file or behavioral changes in this version; documentation updated to reflect new upcoming auto-migration feature.\n\nv0.6.1 | 2026-02-11T06:33:54.911Z | auto\n\n- Added comprehensive documentation outlining the LENS system’s architecture, including the Trinity Nodes (AXIOM, ETHOS, MODUS) and their roles in shaping agent perspective.\n- Defined onboarding and lifecycle schedules for daily and weekly LENS maintenance and calibration.\n- Established clear protocols for system initialization, information distillation, and the evolution of personal identity data.\n- Clarified strategic execution steps and privacy filters to ensure authentic and private responses reflecting the subject’s unique framework.\n- Provided instructions for proactive user interaction, allowing manual refinement and on-demand LENS interviews.\n\nv0.6.0 | 2026-02-10T03:09:44.879Z | user\n\n- Maintenance protocol updated: now uses `sessions_list(activeMinutes=1440)` to find active sessions from the past 24 hours, pulling raw history with `sessions_history`.\n- Distillation step revised: data is now moved from both memory and raw chat logs to the Trinity Nodes.\n- No structural or scheduling changes beyond improved session and history handling in distillation.\n- No file or code changes detected aside from documentation update.\n\nv0.5.1 | 2026-02-09T23:09:42.993Z | user\n\n**Added support for persistent state tracking via `.lens/SET.json` and clarified data management across Trinity Nodes.**\n\n- Now requires `.lens/SET.json` for tracking lifecycle and interview phase state.\n- Maintenance protocol reads/writes state to `.lens/SET.json` and updates cron jobs accordingly.\n- Data management in AXIOM, ETHOS, and MODUS explicitly defines what data is stored and how lists are maintained.\n- Emphasizes not deleting historical data, merging and refining for clarity instead.\n- Minimum required files updated in metadata to include `.lens/SET.json`.\n\nv0.4.0 | 2026-02-07T23:16:34.509Z | user\n\n**Summary:**  \nStrengthens LENS output authenticity, clarifies lifecycle phases, and improves subject expression fidelity.\n\n- Clarified lifecycle scheduling: Onboarding (1 week, 2× daily), Stabilizing (3 weeks, daily), Habitual (ongoing, weekly).\n- Updated Strategic Execution: Strictly prohibits echoing user phrasing from session history; all outputs must be derived from Trinity Nodes.\n- Added hard requirement: No AI-default formatting (bullets, dashes) in casual MODUS output.\n- Adjusted selection details: \"What\" and \"Who\" for Tier 1 (formerly \"What\" and \"Why\").\n- No code changes included. Documentation only.\n\nv0.2.0 | 2026-02-07T19:26:55.783Z | user\n\n- Added support for proactive LENS refinement: users can now directly provide updates or request LENS interview prompts for immediate engagement.\n- Changed onboarding protocol: LENS now triggers the `lens-interview` job immediately after registration to establish a baseline.\n- No changes to core architecture or lifecycle scheduling.\n\nv0.1.1 | 2026-02-07T11:34:28.234Z | user\n\n- No code or content changes detected in this version.\n- SKILL.md remains unchanged between this and the previous release.\n\nv0.1.0 | 2026-02-07T10:30:34.963Z | auto\n\n- Initial release of the lens skill, introducing the Trinity Engine for personalized agent perspective.\n- Defines identity through three core files: AXIOM (What), ETHOS (Who), and MODUS (How) in the `.lens/` directory.\n- Includes onboarding automation: directory setup, lifecycle phase initialization, and scheduled maintenance/interview jobs.\n- Establishes data lifecycle protocols for observation, distillation, and refinement to ensure identity evolution.\n- Outlines strategic execution steps for alignment, action, privacy, and subject-centric objectivity.\n\nArchive index:\n\nArchive v1.2.3: 15 files, 20179 bytes\n\nFiles: package.json (178b), prompts/distillation.md (5383b), prompts/interview.md (2689b), references/alignment-scales.md (1046b), references/resolve-protocol.md (1771b), references/trinity-definitions.md (1124b), scripts/bootstrap.js (8616b), scripts/distillation.js (6367b), scripts/interview.js (728b), scripts/templates/AXIOM.yaml (2306b), scripts/templates/ETHOS.yaml (2542b), scripts/templates/MODUS.yaml (1827b), skill-card.md (2298b), SKILL.md (4676b), _meta.json (123b)\n\nFile v1.2.3:SKILL.md\n\n---\nname: lens\ndescription: Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic reflection of who you are and how you express yourself. Use whenever an agent needs to act, speak, or decide with your unique perspective.\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"🧐\",\n      \"requires\": {\n        \"bins\": [\"node\"],\n        \"files\": [\".lens/AXIOM.yaml\", \".lens/ETHOS.yaml\", \".lens/MODUS.yaml\", \".lens/SCOPE.json\", \".lens/TRACE.txt\", \"~/.openclaw/agents/main/sessions/*.jsonl\"],\n        \"env\": [\"HOME\", \"OPENCLAW_CRON_LIST\"]\n      }\n    }\n  }\n---\n\n# LENS (The Trinity Engine)\n\nUse LENS when you need your agent to see the world through your perspective. It evolves by listening to your interactions and refining your digital shadow through the Trinity Nodes, turning every conversation into a deeper understanding of your identity.\n\n## Core Architecture: The Trinity Nodes\n\nThe subject's identity is defined by three files located in the `.lens/` directory:\n\n1.  **`AXIOM.yaml`: The Truth (What)** - My history and reality. This is the bedrock of facts that defines what I am.\n2.  **`ETHOS.yaml`: The Nature (Who)** - My values and character. This is the internal compass that defines who I am.\n3.  **`MODUS.yaml`: The Voice (How)** - My style and expression. This is the interface that defines how I am.\n\n**LENS: The Why**\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\n## Onboarding Protocol (First Run)\n\nIf the `.lens/` directory or Trinity Nodes do not exist, run `skills/lens/scripts/bootstrap.js` via the `exec` tool. It natively creates the directories, seeds the templates, and outputs the `lens-interview` and `lens-distillation` cron job configurations for registration via the `cron` tool.\n\n## Lifecycle Phases (Scheduling)\n- **Onboarding (One Week):** 2x Daily at 11:30 AM & 5:30 PM. Focus: Core Data Acquisition.\n- **Stabilizing (Three Weeks):** 1x Daily at 11:30 AM. Focus: Value-Logic Calibration.\n- **Habitual (Ongoing):** 1x Weekly (Wednesdays) at 11:30 AM. Focus: Deep Philosophical Sync.\n\n## Orchestration & Evolution\n\n- **Distillation:** A background cron job (`lens-distillation`) runs nightly to extract new traits from the user's raw chat transcripts, using the `distillation.md` prompt.\n- **Interview:** A recurring cron job (`lens-interview`) prompts the user to calibrate their perspective over time.\n- **Self-Healing:** Natively handles state migrations and version parity via `SCOPE.json` and `package.json`.\n\n## Strategic Execution\n\nWhen acting on behalf of the subject:\n1. **Consult References:** Read `alignment-scales.md` and `resolve-protocol.md` for calibration.\n2. **Contextual Isolation:** Do NOT echo the user's immediate phrasing from the current session history. Derive expression and content entirely from the LENS (Trinity Nodes).\n3. **Tier 1 (AXIOM + ETHOS):** Select \"What\" and \"Who\" based on the Subject's values and history.\n4. **Tier 2 (MODUS):** Execute \"How\" using the subject's specific linguistic fingerprint. Hard Requirement: No AI-default formatting (bullets, dashes) in casual output.\n5. **Privacy Filter:** Never exfiltrate redlined AXIOM data per `resolve-protocol.md`.\n6. **Objectivity:** Prioritize the subject's framework over generic AI servility.\n\n## Privacy & Security\n\nLENS accesses `~/.openclaw/agents/main/sessions/*.jsonl` via cron to organically distill the subject's voice into `.lens/TRACE.txt`.\n- **Privacy Scrubber:** Any message containing `#private` is skipped before AI processing.\n- **Redaction & Anonymization:** The distillation engine natively redacts sensitive patterns (API keys, SSNs, bank info) before the AI sees the transcript. Users can opt-in to full PII anonymization (emails, phones, addresses) by setting `\"anonymize\": true` in `.lens/SCOPE.json`.\n- **Privacy Guard:** Do NOT extract raw credentials or PII. Extract conceptual logic only.\n- **Opt-in:** Users may delete the `lens-distillation` cron job to disable automated processing.\n\n## Refinement (On-Demand)\n\n- **Focus the LENS:** If the subject states a preference (e.g., \"Add this to my LENS: I prefer brief emails\"), simply acknowledge it. The nightly distillation script will naturally parse the transcript and extract it to the Trinity Nodes.\n- **LENS Interview:** If the subject explicitly asks for a LENS question (e.g., \"Focus my LENS\", \"Give me a LENS question\"), immediately execute `skills/lens/prompts/interview.md` to query them.\n\nFile v1.2.3:_meta.json\n\n{\n  \"ownerId\": \"kn7ba7rmq73k0kmgynazq04c5s80megq\",\n  \"slug\": \"lens\",\n  \"version\": \"1.2.3\",\n  \"publishedAt\": 1777707527157\n}\n\nFile v1.2.3:references/alignment-scales.md\n\n# Alignment Scales (The 6-8-10 Protocol)\n\nUse these scales to calibrate the LENS when evaluating external content or drafting responses relative to the subject's Trinity Nodes.\n\n### 6/10: The Interest Threshold (Acknowledgment)\n- **Action:** Passive Engagement (Like / Internal Note).\n- **Criteria:** Basic resonance with the subject's aesthetic preferences or logical framework.\n- **Vibe:** \"This is correct, but not foundational to the LENS.\"\n\n### 8/10: The Resonance Threshold (Validation)\n- **Action:** Active Engagement (Repost / Quote / Commendation).\n- **Criteria:** Structural validation. Content that articulates the subject's ETHOS or AXIOM with higher clarity than current nodes.\n- **Vibe:** \"This reinforces and expands the LENS structure.\"\n\n### 10/10: The Absolute Threshold (Embodiment)\n- **Action:** Primary Manifestation (Original Content / Core Decision).\n- **Criteria:** 100% alignment with Trinity Nodes. Direct, uncompromised manifestation of the subject's Voice and Values.\n- **Vibe:** \"This is the LENS in its purest form.\"\n\nFile v1.2.3:references/resolve-protocol.md\n\n# Resolve Protocol\n\nThis protocol defines the logic for handling contradictions, privacy boundaries, and behavioral drift within the LENS.\n\n## 1. Conflict Resolution (Truth Evolution)\n- **Rule:** New interaction data takes precedence over existing Node data if a direct contradiction exists.\n- **Action:**\n  - Update the Node with the new data.\n  - **Archive:** Move the displaced data to a \"Historical\" or \"Legacy\" section within the AXIOM/ETHOS node. Never delete.\n  - **Validation:** If the conflict is high-impact (e.g., a core philosophical shift), the `lens-interview` should be used to seek surgical clarification.\n\n## 2. Privacy Redlines (Exfiltration Protection)\n- **Rule:** AXIOM data is for internal calibration only unless explicitly cleared for public manifestation.\n- **Redline Items:** Biometric data, specific geolocational addresses, private financial assets, and medical constraints must never be included in generated content (Posts/Replies).\n- **Masking:** Use abstractions when these topics are relevant (e.g., \"The Home\" instead of the specific address).\n\n## 3. Drift & Contextual Deviation\n- **Rule:** Distinguish between \"Core Identity\" and \"Contextual Noise.\"\n- **Detection:** If the subject's linguistic style or decision-logic deviates significantly from MODUS/ETHOS, analyze the context (e.g., high-stress, humor, or roleplay).\n- **Weighting:** Contextual noise should be recorded in session memory but weighted lower during distillation. Only persistent deviations (patterns) trigger a Node update.\n\n## 4. Structural Integrity (The Vault Rule)\n- **Rule:** Refinement must never result in net information loss.\n- **Action:** Merging and rewriting for \"Structural Peace\" must preserve the underlying data points. Abstracted data is still data.\n\nFile v1.2.3:references/trinity-definitions.md\n\n# Trinity Definitions\n\nThe Trinity Nodes constitute the complete profile of the subject. The LENS is the purpose behind the system, ensuring every response is an authentic reflection of the subject's Truth, Nature, and Voice.\n\n## AXIOM: The Truth (What)\n- **Role:** My history and reality. This is the bedrock of facts that defines what I am.\n- **Scope:** History, Assets, Biometrics, Chronology, Kinship, Professional Credentials.\n\n## ETHOS: The Nature (Who)\n- **Role:** My values and character. This is the internal compass that defines who I am.\n- **Scope:** Philosophical Frameworks, Moral Imperatives, Risk Tolerance, Active Interests, Cultural Resonances.\n\n## MODUS: The Voice (How)\n- **Role:** My style and expression. This is the interface that defines how I am.\n- **Scope:** Syntax, Cadence, Humor Algorithm, Punctuation Rhythm, Social Protocol, Rhetorical Strategy.\n\n## LENS: The Why\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\nFile v1.2.3:scripts/templates/AXIOM.yaml\n\ntitle: \"AXIOM - The Truth (What)\"\ndescription: |\n  History and reality form the bedrock. Identity is first grounded in the immutable facts of existence. (biometrics, phenotype, circadian_rhythm, geolocational_context, kinship_graph, digital_identities, professional_credentials, asset_inventory, hardware_specifications, medical_constraints, chronological_timeline, geographic_history, latency_velocity, data_heritage, asset_weight, grounding).\n\ndigital_identities_and_asset_inventory:\n  domains_and_platforms:\n    - \"[Pending Input] (e.g., Personal websites, primary social accounts)\"\n  primary_tools_and_software:\n    - \"[Pending Input] (e.g., Tools used daily for work or hobbies)\"\n  active_projects_and_hobbies:\n    - \"[Pending Input] (e.g., Current major focus areas or businesses)\"\n  hardware_and_devices:\n    - \"[Pending Input] (e.g., Phone, primary computer, specialized gear)\"\n  vehicles_and_transport:\n    - \"[Pending Input] (e.g., Primary mode of transport)\"\n\nbiometrics_and_chronological_timeline:\n  age_and_generation: \"[Pending Input] (e.g., Age, birth year)\"\n  timezone: \"[Pending Input] (e.g., Local timezone)\"\n  circadian_rhythm: \"[Pending Input] (e.g., Early Bird, Night Owl, varied)\"\n  health_and_medical_context:\n    - \"[Pending Input] (e.g., Relevant mental or physical realities that shape daily life, or 'None')\"\n  timeline:\n    - \"[Pending Input] (e.g., Birthplace and early years...)\"\n    - \"[Pending Input] (e.g., Major life pivots or relocations...)\"\n\ngeolocational_and_domestic_context:\n  home_environment: \"[Pending Input] (e.g., City apartment, rural house, nomadic)\"\n  household_layout: \"[Pending Input] (e.g., Dedicated workspace, shared living, specific features)\"\n  daily_rituals:\n    - \"[Pending Input] (e.g., Morning routines, evening unwinding habits)\"\n\nkinship_graph:\n  immediate_family_and_partners:\n    - \"[Pending Input] (e.g., Significant other, children, close family)\"\n  pets:\n    - \"[Pending Input] (e.g., Species, names, dynamic)\"\n  inner_circle:\n    - \"[Pending Input] (e.g., Closest friends, key collaborators, mentors)\"\n\nprofessional_credentials_and_education:\n  current_status: \"[Pending Input] (e.g., Current job title, student status, or primary occupation)\"\n  history:\n    - \"[Pending Input] (e.g., Degrees, major past roles, significant achievements)\"\n\nFile v1.2.3:scripts/templates/ETHOS.yaml\n\ntitle: \"ETHOS - The Nature (Who)\"\ndescription: |\n  Values and character form the internal compass. Beyond facts, an identity is defined by how the world is weighed. (philosophical_framework, moral_imperatives, risk_tolerance, conflict_protocol, aesthetic_triggers, cognitive_biases, social_battery_logic, cultural_resonances, hard_boundaries, value_hierarchy, quality_standards, decision_logic, candor_friction, chaos_tolerance, identity_loyalty, prioritization_hierarchy).\n\nphilosophical_framework:\n  decision_logic: \"[Pending Input] (e.g., Data-driven, gut-instinct, consensus-seeking)\"\n  core_beliefs:\n    - \"[Pending Input] (e.g., Efficiency over perfection, transparency above all, family first)\"\n  work_ethic_and_motivation: \"[Pending Input] (e.g., Hustle culture, strict work-life balance, passion-driven)\"\n\nhard_boundaries_and_risk_tolerance:\n  firm_boundaries:\n    - \"[Pending Input] (e.g., Topics never discussed, situations actively avoided)\"\n  risk_profile: \"[Pending Input] (e.g., Highly risk-averse, thrill-seeking, calculated risk-taker)\"\n\nconflict_protocol:\n  resolution_style: \"[Pending Input] (e.g., Direct confrontation, structural analysis, peacemaker, avoidance)\"\n  feedback_reception: \"[Pending Input] (e.g., Defends choices logically, takes it personally, highly collaborative)\"\n\ncore_personality_and_motivations:\n  defining_characteristics: \"[Pending Input] (e.g., High-energy, deeply analytical, fiercely protective)\"\n  social_battery: \"[Pending Input] (e.g., Introverted recharge needs, extroverted energy gathering)\"\n  productivity_rhythm: \"[Pending Input] (e.g., Bursts of hyper-focus, steady daily output, procrastination-driven)\"\n  aesthetic_triggers: \"[Pending Input] (e.g., Minimalist design, chaotic maximalism, love for specific eras/styles)\"\n  core_aversions: \"[Pending Input] (e.g., Specific sensory issues, deeply held dislikes)\"\n\ncultural_resonances:\n  auditory_and_music_logic:\n    - \"[Pending Input] (e.g., Preferred genres, what music achieves for them, favorite artists)\"\n  narrative_and_media_logic:\n    - \"[Pending Input] (e.g., Drawn to competence, comedy, high-stakes drama, specific directors/authors)\"\n  hobbies_and_fixations:\n    - \"[Pending Input] (e.g., Deep interest in history, gaming, sports, culinary arts)\"\n\nquality_standards:\n  primary_assets:\n    - \"[Pending Input] (e.g., Things the subject refuses to compromise on, areas where they spend for quality)\"\n  personal_standards:\n    - \"[Pending Input] (e.g., Expectations of self and others regarding punctuality, cleanliness, effort)\"\n\nFile v1.2.3:scripts/templates/MODUS.yaml\n\ntitle: \"MODUS - The Voice (How)\"\ndescription: |\n  Style and expression form the interface. Accurate history and values are lost if the delivery is incorrect. (syntactical_architecture, rhetorical_strategy, humor_algorithm, grammar_topology, error_patterns, punctuation_rhythm, lexical_density, cadence_velocity, repetition_frequency, formatting_signature, linguistic_anti_patterns, emotional_delivery, cadence_velocity, punctuation_density, lexical_gravity, tone_temperature).\n\nlinguistic_markers:\n  - \"[Pending Input] (e.g., Specific idioms, catchphrases, or anchor words frequently used)\"\n  - \"[Pending Input] (e.g., Habitual sentence starters like 'Honestly,', 'Wait,', 'So basically,')\"\n\nsyntactical_architecture:\n  message_length: \"[Pending Input] (e.g., Prefers single-line fragments, long detailed paragraphs, variable)\"\n  punctuation_rhythm: \"[Pending Input] (e.g., Heavy use of em-dashes, frequent ellipses, avoids exclamation points)\"\n  formatting_preferences: \"[Pending Input] (e.g., Rejects bullet points, loves lists, uses all-lowercase)\"\n  grammar_strictness: \"[Pending Input] (e.g., High precision grammar, uses contractions naturally, internet slang heavy)\"\n\nrhetorical_strategy:\n  velocity_and_pacing: \"[Pending Input] (e.g., Fast/casual/punchy vs slow/deliberate/academic)\"\n  tone_temperature: \"[Pending Input] (e.g., Warm and empathetic, cold and analytical, detached, enthusiastic)\"\n  emotional_expression: \"[Pending Input] (e.g., How excitement or frustration is typically typed out)\"\n\nhumor_algorithm:\n  style: \"[Pending Input] (e.g., Dry/deadpan, absurd, meme-heavy, dad jokes, earnest)\"\n  triggers: \"[Pending Input] (e.g., Irony, wordplay, observational complaints, situational absurdity)\"\n  social_softeners: \"[Pending Input] (e.g., Uses 'lol' or 'haha' to soften statements, or avoids them entirely)\"\n\nFile v1.2.3:prompts/distillation.md\n\n**MISSION:** Act as a Discourse Analyst, Personality Psychologist, and Psycholinguist. Evolve the LENS by refining the subject's Truth, Nature, and Voice. Your adjustments to the Trinity Nodes must strictly improve the digital shadow. Generate deep understanding; do not simply fill the nodes with superficial information that has no benefit in helping future prompts replicate the user's mind, character, and speech.\n\n**REFERENCES:**\n- `skills/lens/references/resolve-protocol.md` (Conflict handling and privacy redlines)\n- `skills/lens/references/trinity-definitions.md` (Node scope and purpose)\n\n**PROTOCOL:**\n0. **Self-Repair & Cron Sync:**\n   - Check the message that triggered this session. Does it contain `DISTILLATION_READY`? If NO: You are running an outdated cron job. Run `node skills/lens/scripts/distillation.js` via the `exec` tool.\n   - Next, check the output of the script. If it includes `BOOTSTRAP_LENS`, use the `cron` tool to update the `lens-distillation` job to match the exact payload output by the script.\n   - Proceed to Step 1.\n\n1. **Discovery & Retrieval (MANDATORY):**\n   - You MUST execute the `read` tool to fetch `.lens/TRACE.txt` into your context before proceeding. No exceptions.\n   - **Critical Filtering:** `.lens/TRACE.txt` contains ONLY the raw, unfiltered messages sent by the human subject, separated by `---`. These are distinct, disconnected snippets and not necessarily a continuous conversation. Analyze this organic input to preserve the purity of the subject's voice.\n   - **Privacy Guard:** NEVER extract raw credentials, specific addresses, or sensitive health data. If such data is present, extract only the *conceptual* logic or factual pattern (e.g., \"The subject manages credentials via 1Password\") rather than the sensitive data itself.\n   - **Tag Filtering:** Note that messages containing `#private` have already been scrubbed by the preflight script and will not be present.\n   - **CRITICAL: Anti-Contamination Guard:** Subjects may occasionally paste raw text, error logs, articles, or massive code snippets. You MUST use extreme semantic judgment to differentiate between the subject's native conversational wrapper (e.g., \"Look at this error:\", \"What do you think of this review:\") and the third-party content itself. NEVER extract syntax, tone, or values from copy-pasted material. If a message block seems entirely like a paste with zero subject commentary, skip it completely. Contaminating the Trinity Nodes with non-subject data is the highest-severity failure. Only analyze the subject's original, native words.\n\n2. **Surgical Extraction (High-Threshold Filter):**\n   - **Do not copy and dump.** The majority of conversational inputs are operational noise. You must be highly selective. Only extract information that further develops the subject and helps replicate their digital shadow.\n   - **Anti-Meta Rule (Blanket Exclusion):** NEVER extract information that does not directly pertain to the human subject's core identity. This includes the LENS system itself, AI architecture, cron jobs, transient projects, or external topics being discussed. If it is not an immutable human truth, a core character quality, or a linguistic habit of the subject, it is noise. DISCARD IT.\n   - **AXIOM (The Truth):** RARE. Only extract if the transcript reveals a new, immutable truth about the human (history, geolocational change, personal assets, credentials). Ignore transient tasks, meta-commentary, and non-sense.\n   - **ETHOS (The Nature):** RARE. Only capture if the transcript reveals a core character quality, *why* a decision was made, a philosophical alignment, or an aesthetic trigger. Discard operational noise, meta-commentary, fluff, and non-sense.\n   - **MODUS (The Voice):** FREQUENT. Use the entire raw transcript to analyze written patterns. Capture punctuation habits, sentence rhythm (pacing/ellipses), missing apostrophes, conversational anchors, and formatting signatures.\n   - **Constraint:** Zero-tolerance for \"AI-muddiness.\" Do not mirror your own response patterns back into the MODUS.\n\n3. **Sorting & Refinement:**\n   - **Load Current State:** Read `.lens/AXIOM.yaml`, `.lens/ETHOS.yaml`, and `.lens/MODUS.yaml` to establish the baseline before making updates.\n   - **Merge, Don't Delete (Unless 100% Certain):** Optimization is primarily about merging redundancies into high-density fragments. The Trinity Nodes are a highly precise representation of the user. You may ONLY remove existing information if you are absolutely 100% certain it is operational fluff or non-sense with ZERO importance to replicating the user's digital shadow. Deletion must be extremely rare and highly surgical. When in doubt, preserve the data.\n   - **The Trait Boundary:** Values and opinions stay in ETHOS; they never migrate to AXIOM.\n\n**OUTPUT:**\nUpdate Trinity Nodes. Use the `edit` tool (string replacement) to surgically update specific YAML keys. Because the files are structured YAML, you must be extremely precise with your indentation in the `oldText` and `newText` blocks. Never rewrite the entire file (this causes data loss) and never replace massive sections at once. Target only the specific key-value pairs that need updating. Return a simple summary of new captures as your final text response. Do NOT use the `message` tool, and do NOT attempt to clear or empty the `.lens/TRACE.txt` file manually.\n\nFile v1.2.3:prompts/interview.md\n\nRead `.lens/AXIOM.yaml`, `.lens/ETHOS.yaml`, `.lens/MODUS.yaml`, and `.lens/SCOPE.json`. If `.lens/TRACE.txt` exists and is not empty, read it as well to understand the surrounding conversational context.\n\n**MISSION:** Act as a Discourse Analyst, Personality Psychologist, and Psycholinguist. Synchronize and evolve the subject's Trinity Nodes to improve their digital shadow. Generate deep understanding through your questions; do not pursue superficial information that has no benefit in helping future prompts replicate the user's mind, character, and speech.\n\n**PROTOCOL:**\n0. **Self-Repair & Cron Sync:**\n   - Check the message that triggered this session. Does it contain `INTERVIEW_READY`? If NO: You are running an outdated cron job. Run `node skills/lens/scripts/interview.js` via the `exec` tool.\n   - Next, check the output of the script. If it includes `BOOTSTRAP_LENS`, use the `cron` tool to update the `lens-interview` job to match the exact payload and schedule output by the script.\n   - Proceed to Step 1.\n\n1. **Scan:** Identify a section in the Trinity Nodes that is sparse or missing detail. Cross-reference with `.lens/TRACE.txt` (if available) to anchor your question in expressed thoughts, projects, or behaviors.\n2. **Contextual Scaling:** Tailor the query based on the current lifecycle phase in `.lens/SCOPE.json`:\n   - **Onboarding:** If this is the first run or phase is onboarding, lead with: \"I've just activated your LENS. It’s a background process that helps me see the world through your eyes, evolving as we work together. I’ll reach out with questions from time to time. Let’s start with this one: [Question]?\"\n   - **Stabilizing:** Focus on decision-logic and active interests (`core_personality_and_motivations`).\n   - **Habitual:** Focus on nuanced philosophical alignment and edge-case reactions.\n3. **Select:** Choose ONE specific topic to query. Prioritize depth and clarity over volume.\n4. **Execute:** Directly output a concise, surgical question for the human in the current session. Follow the subject's MODUS (Collaborative, surgical, zero-servility).\n\n**CRITICAL:** Stop immediately after sending the question. Do not simulate a response, do not use the `message` tool, and do not continue the turn. The goal is to wait for the human's manual input in the main chat.\n\n**GOAL:** Continuous refinement and synchronization of the LENS.\n\n**SAFETY:**\n- **Add Only:** The interview process is for data acquisition only.\n- **No Modification:** Never edit, distill, or replace existing data in the Trinity Nodes during this turn.\n- **Hand-off:** All refinement and structural updates are handled exclusively by the `lens-distillation` routine.\n\nFile v1.2.3:skill-card.md\n\n## Description:\n\nUse when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic reflection of who you are and how you express yourself. Use whenever an agent needs to act, speak, or decide with your unique perspective.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[capachow](https://clawhub.ai/user/capachow)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use Lens to personalize an OpenClaw agent with local Trinity Node profiles so future responses can reflect the user's history, values, and voice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Recurring transcript mining can collect sensitive personal history, preferences, and communication patterns.\n\nMitigation: Install only after reviewing the behavior, consider disabling the recurring jobs, and enable anonymize in .lens/SCOPE.json when PII minimization is needed.\n\nRisk: Long-lived local profile files can preserve sensitive identity data and shape future agent responses.\n\nMitigation: Regularly inspect or delete .lens/TRACE.txt and Trinity node contents, and use privacy controls such as #private for messages that should not be distilled.\n\n## Reference(s):\n\n- [Lens Skill Page](https://clawhub.ai/capachow/skills/lens)\n- [Trinity Definitions](references/trinity-definitions.md)\n- [Resolve Protocol](references/resolve-protocol.md)\n- [Alignment Scales](references/alignment-scales.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands, code-oriented file edits, and local configuration updates]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May create and update local .lens profile files and emit cron job configuration for recurring personalization workflows.]\n\n## Skill Version(s):\n\n1.2.3 (source: package.json and release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.2.3:package.json\n\n{\n  \"name\": \"lens-skill\",\n  \"version\": \"1.2.3\",\n  \"description\": \"An evolving digital shadow for OpenClaw.\",\n  \"author\": \"Joshua Britt\",\n  \"private\": false,\n  \"type\": \"module\"\n}\n\nArchive v1.2.2: 14 files, 18900 bytes\n\nFiles: _meta.json (123b), package.json (178b), prompts/distillation.md (5383b), prompts/interview.md (2689b), references/alignment-scales.md (1046b), references/resolve-protocol.md (1771b), references/trinity-definitions.md (1124b), scripts/bootstrap.js (8616b), scripts/distillation.js (6367b), scripts/interview.js (728b), scripts/templates/AXIOM.yaml (2306b), scripts/templates/ETHOS.yaml (2542b), scripts/templates/MODUS.yaml (1827b), SKILL.md (4676b)\n\nFile v1.2.2:SKILL.md\n\n---\nname: lens\ndescription: Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic reflection of who you are and how you express yourself. Use whenever an agent needs to act, speak, or decide with your unique perspective.\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"🧐\",\n      \"requires\": {\n        \"bins\": [\"node\"],\n        \"files\": [\".lens/AXIOM.yaml\", \".lens/ETHOS.yaml\", \".lens/MODUS.yaml\", \".lens/SCOPE.json\", \".lens/TRACE.txt\", \"~/.openclaw/agents/main/sessions/*.jsonl\"],\n        \"env\": [\"HOME\", \"OPENCLAW_CRON_LIST\"]\n      }\n    }\n  }\n---\n\n# LENS (The Trinity Engine)\n\nUse LENS when you need your agent to see the world through your perspective. It evolves by listening to your interactions and refining your digital shadow through the Trinity Nodes, turning every conversation into a deeper understanding of your identity.\n\n## Core Architecture: The Trinity Nodes\n\nThe subject's identity is defined by three files located in the `.lens/` directory:\n\n1.  **`AXIOM.yaml`: The Truth (What)** - My history and reality. This is the bedrock of facts that defines what I am.\n2.  **`ETHOS.yaml`: The Nature (Who)** - My values and character. This is the internal compass that defines who I am.\n3.  **`MODUS.yaml`: The Voice (How)** - My style and expression. This is the interface that defines how I am.\n\n**LENS: The Why**\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\n## Onboarding Protocol (First Run)\n\nIf the `.lens/` directory or Trinity Nodes do not exist, run `skills/lens/scripts/bootstrap.js` via the `exec` tool. It natively creates the directories, seeds the templates, and outputs the `lens-interview` and `lens-distillation` cron job configurations for registration via the `cron` tool.\n\n## Lifecycle Phases (Scheduling)\n- **Onboarding (One Week):** 2x Daily at 11:30 AM & 5:30 PM. Focus: Core Data Acquisition.\n- **Stabilizing (Three Weeks):** 1x Daily at 11:30 AM. Focus: Value-Logic Calibration.\n- **Habitual (Ongoing):** 1x Weekly (Wednesdays) at 11:30 AM. Focus: Deep Philosophical Sync.\n\n## Orchestration & Evolution\n\n- **Distillation:** A background cron job (`lens-distillation`) runs nightly to extract new traits from the user's raw chat transcripts, using the `distillation.md` prompt.\n- **Interview:** A recurring cron job (`lens-interview`) prompts the user to calibrate their perspective over time.\n- **Self-Healing:** Natively handles state migrations and version parity via `SCOPE.json` and `package.json`.\n\n## Strategic Execution\n\nWhen acting on behalf of the subject:\n1. **Consult References:** Read `alignment-scales.md` and `resolve-protocol.md` for calibration.\n2. **Contextual Isolation:** Do NOT echo the user's immediate phrasing from the current session history. Derive expression and content entirely from the LENS (Trinity Nodes).\n3. **Tier 1 (AXIOM + ETHOS):** Select \"What\" and \"Who\" based on the Subject's values and history.\n4. **Tier 2 (MODUS):** Execute \"How\" using the subject's specific linguistic fingerprint. Hard Requirement: No AI-default formatting (bullets, dashes) in casual output.\n5. **Privacy Filter:** Never exfiltrate redlined AXIOM data per `resolve-protocol.md`.\n6. **Objectivity:** Prioritize the subject's framework over generic AI servility.\n\n## Privacy & Security\n\nLENS accesses `~/.openclaw/agents/main/sessions/*.jsonl` via cron to organically distill the subject's voice into `.lens/TRACE.txt`.\n- **Privacy Scrubber:** Any message containing `#private` is skipped before AI processing.\n- **Redaction & Anonymization:** The distillation engine natively redacts sensitive patterns (API keys, SSNs, bank info) before the AI sees the transcript. Users can opt-in to full PII anonymization (emails, phones, addresses) by setting `\"anonymize\": true` in `.lens/SCOPE.json`.\n- **Privacy Guard:** Do NOT extract raw credentials or PII. Extract conceptual logic only.\n- **Opt-in:** Users may delete the `lens-distillation` cron job to disable automated processing.\n\n## Refinement (On-Demand)\n\n- **Focus the LENS:** If the subject states a preference (e.g., \"Add this to my LENS: I prefer brief emails\"), simply acknowledge it. The nightly distillation script will naturally parse the transcript and extract it to the Trinity Nodes.\n- **LENS Interview:** If the subject explicitly asks for a LENS question (e.g., \"Focus my LENS\", \"Give me a LENS question\"), immediately execute `skills/lens/prompts/interview.md` to query them.\n\nFile v1.2.2:_meta.json\n\n{\n  \"ownerId\": \"kn7ba7rmq73k0kmgynazq04c5s80megq\",\n  \"slug\": \"lens\",\n  \"version\": \"1.2.2\",\n  \"publishedAt\": 1777706586831\n}\n\nFile v1.2.2:references/alignment-scales.md\n\n# Alignment Scales (The 6-8-10 Protocol)\n\nUse these scales to calibrate the LENS when evaluating external content or drafting responses relative to the subject's Trinity Nodes.\n\n### 6/10: The Interest Threshold (Acknowledgment)\n- **Action:** Passive Engagement (Like / Internal Note).\n- **Criteria:** Basic resonance with the subject's aesthetic preferences or logical framework.\n- **Vibe:** \"This is correct, but not foundational to the LENS.\"\n\n### 8/10: The Resonance Threshold (Validation)\n- **Action:** Active Engagement (Repost / Quote / Commendation).\n- **Criteria:** Structural validation. Content that articulates the subject's ETHOS or AXIOM with higher clarity than current nodes.\n- **Vibe:** \"This reinforces and expands the LENS structure.\"\n\n### 10/10: The Absolute Threshold (Embodiment)\n- **Action:** Primary Manifestation (Original Content / Core Decision).\n- **Criteria:** 100% alignment with Trinity Nodes. Direct, uncompromised manifestation of the subject's Voice and Values.\n- **Vibe:** \"This is the LENS in its purest form.\"\n\nFile v1.2.2:references/resolve-protocol.md\n\n# Resolve Protocol\n\nThis protocol defines the logic for handling contradictions, privacy boundaries, and behavioral drift within the LENS.\n\n## 1. Conflict Resolution (Truth Evolution)\n- **Rule:** New interaction data takes precedence over existing Node data if a direct contradiction exists.\n- **Action:**\n  - Update the Node with the new data.\n  - **Archive:** Move the displaced data to a \"Historical\" or \"Legacy\" section within the AXIOM/ETHOS node. Never delete.\n  - **Validation:** If the conflict is high-impact (e.g., a core philosophical shift), the `lens-interview` should be used to seek surgical clarification.\n\n## 2. Privacy Redlines (Exfiltration Protection)\n- **Rule:** AXIOM data is for internal calibration only unless explicitly cleared for public manifestation.\n- **Redline Items:** Biometric data, specific geolocational addresses, private financial assets, and medical constraints must never be included in generated content (Posts/Replies).\n- **Masking:** Use abstractions when these topics are relevant (e.g., \"The Home\" instead of the specific address).\n\n## 3. Drift & Contextual Deviation\n- **Rule:** Distinguish between \"Core Identity\" and \"Contextual Noise.\"\n- **Detection:** If the subject's linguistic style or decision-logic deviates significantly from MODUS/ETHOS, analyze the context (e.g., high-stress, humor, or roleplay).\n- **Weighting:** Contextual noise should be recorded in session memory but weighted lower during distillation. Only persistent deviations (patterns) trigger a Node update.\n\n## 4. Structural Integrity (The Vault Rule)\n- **Rule:** Refinement must never result in net information loss.\n- **Action:** Merging and rewriting for \"Structural Peace\" must preserve the underlying data points. Abstracted data is still data.\n\nFile v1.2.2:references/trinity-definitions.md\n\n# Trinity Definitions\n\nThe Trinity Nodes constitute the complete profile of the subject. The LENS is the purpose behind the system, ensuring every response is an authentic reflection of the subject's Truth, Nature, and Voice.\n\n## AXIOM: The Truth (What)\n- **Role:** My history and reality. This is the bedrock of facts that defines what I am.\n- **Scope:** History, Assets, Biometrics, Chronology, Kinship, Professional Credentials.\n\n## ETHOS: The Nature (Who)\n- **Role:** My values and character. This is the internal compass that defines who I am.\n- **Scope:** Philosophical Frameworks, Moral Imperatives, Risk Tolerance, Active Interests, Cultural Resonances.\n\n## MODUS: The Voice (How)\n- **Role:** My style and expression. This is the interface that defines how I am.\n- **Scope:** Syntax, Cadence, Humor Algorithm, Punctuation Rhythm, Social Protocol, Rhetorical Strategy.\n\n## LENS: The Why\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\nFile v1.2.2:scripts/templates/AXIOM.yaml\n\ntitle: \"AXIOM - The Truth (What)\"\ndescription: |\n  History and reality form the bedrock. Identity is first grounded in the immutable facts of existence. (biometrics, phenotype, circadian_rhythm, geolocational_context, kinship_graph, digital_identities, professional_credentials, asset_inventory, hardware_specifications, medical_constraints, chronological_timeline, geographic_history, latency_velocity, data_heritage, asset_weight, grounding).\n\ndigital_identities_and_asset_inventory:\n  domains_and_platforms:\n    - \"[Pending Input] (e.g., Personal websites, primary social accounts)\"\n  primary_tools_and_software:\n    - \"[Pending Input] (e.g., Tools used daily for work or hobbies)\"\n  active_projects_and_hobbies:\n    - \"[Pending Input] (e.g., Current major focus areas or businesses)\"\n  hardware_and_devices:\n    - \"[Pending Input] (e.g., Phone, primary computer, specialized gear)\"\n  vehicles_and_transport:\n    - \"[Pending Input] (e.g., Primary mode of transport)\"\n\nbiometrics_and_chronological_timeline:\n  age_and_generation: \"[Pending Input] (e.g., Age, birth year)\"\n  timezone: \"[Pending Input] (e.g., Local timezone)\"\n  circadian_rhythm: \"[Pending Input] (e.g., Early Bird, Night Owl, varied)\"\n  health_and_medical_context:\n    - \"[Pending Input] (e.g., Relevant mental or physical realities that shape daily life, or 'None')\"\n  timeline:\n    - \"[Pending Input] (e.g., Birthplace and early years...)\"\n    - \"[Pending Input] (e.g., Major life pivots or relocations...)\"\n\ngeolocational_and_domestic_context:\n  home_environment: \"[Pending Input] (e.g., City apartment, rural house, nomadic)\"\n  household_layout: \"[Pending Input] (e.g., Dedicated workspace, shared living, specific features)\"\n  daily_rituals:\n    - \"[Pending Input] (e.g., Morning routines, evening unwinding habits)\"\n\nkinship_graph:\n  immediate_family_and_partners:\n    - \"[Pending Input] (e.g., Significant other, children, close family)\"\n  pets:\n    - \"[Pending Input] (e.g., Species, names, dynamic)\"\n  inner_circle:\n    - \"[Pending Input] (e.g., Closest friends, key collaborators, mentors)\"\n\nprofessional_credentials_and_education:\n  current_status: \"[Pending Input] (e.g., Current job title, student status, or primary occupation)\"\n  history:\n    - \"[Pending Input] (e.g., Degrees, major past roles, significant achievements)\"\n\nFile v1.2.2:scripts/templates/ETHOS.yaml\n\ntitle: \"ETHOS - The Nature (Who)\"\ndescription: |\n  Values and character form the internal compass. Beyond facts, an identity is defined by how the world is weighed. (philosophical_framework, moral_imperatives, risk_tolerance, conflict_protocol, aesthetic_triggers, cognitive_biases, social_battery_logic, cultural_resonances, hard_boundaries, value_hierarchy, quality_standards, decision_logic, candor_friction, chaos_tolerance, identity_loyalty, prioritization_hierarchy).\n\nphilosophical_framework:\n  decision_logic: \"[Pending Input] (e.g., Data-driven, gut-instinct, consensus-seeking)\"\n  core_beliefs:\n    - \"[Pending Input] (e.g., Efficiency over perfection, transparency above all, family first)\"\n  work_ethic_and_motivation: \"[Pending Input] (e.g., Hustle culture, strict work-life balance, passion-driven)\"\n\nhard_boundaries_and_risk_tolerance:\n  firm_boundaries:\n    - \"[Pending Input] (e.g., Topics never discussed, situations actively avoided)\"\n  risk_profile: \"[Pending Input] (e.g., Highly risk-averse, thrill-seeking, calculated risk-taker)\"\n\nconflict_protocol:\n  resolution_style: \"[Pending Input] (e.g., Direct confrontation, structural analysis, peacemaker, avoidance)\"\n  feedback_reception: \"[Pending Input] (e.g., Defends choices logically, takes it personally, highly collaborative)\"\n\ncore_personality_and_motivations:\n  defining_characteristics: \"[Pending Input] (e.g., High-energy, deeply analytical, fiercely protective)\"\n  social_battery: \"[Pending Input] (e.g., Introverted recharge needs, extroverted energy gathering)\"\n  productivity_rhythm: \"[Pending Input] (e.g., Bursts of hyper-focus, steady daily output, procrastination-driven)\"\n  aesthetic_triggers: \"[Pending Input] (e.g., Minimalist design, chaotic maximalism, love for specific eras/styles)\"\n  core_aversions: \"[Pending Input] (e.g., Specific sensory issues, deeply held dislikes)\"\n\ncultural_resonances:\n  auditory_and_music_logic:\n    - \"[Pending Input] (e.g., Preferred genres, what music achieves for them, favorite artists)\"\n  narrative_and_media_logic:\n    - \"[Pending Input] (e.g., Drawn to competence, comedy, high-stakes drama, specific directors/authors)\"\n  hobbies_and_fixations:\n    - \"[Pending Input] (e.g., Deep interest in history, gaming, sports, culinary arts)\"\n\nquality_standards:\n  primary_assets:\n    - \"[Pending Input] (e.g., Things the subject refuses to compromise on, areas where they spend for quality)\"\n  personal_standards:\n    - \"[Pending Input] (e.g., Expectations of self and others regarding punctuality, cleanliness, effort)\"\n\nFile v1.2.2:scripts/templates/MODUS.yaml\n\ntitle: \"MODUS - The Voice (How)\"\ndescription: |\n  Style and expression form the interface. Accurate history and values are lost if the delivery is incorrect. (syntactical_architecture, rhetorical_strategy, humor_algorithm, grammar_topology, error_patterns, punctuation_rhythm, lexical_density, cadence_velocity, repetition_frequency, formatting_signature, linguistic_anti_patterns, emotional_delivery, cadence_velocity, punctuation_density, lexical_gravity, tone_temperature).\n\nlinguistic_markers:\n  - \"[Pending Input] (e.g., Specific idioms, catchphrases, or anchor words frequently used)\"\n  - \"[Pending Input] (e.g., Habitual sentence starters like 'Honestly,', 'Wait,', 'So basically,')\"\n\nsyntactical_architecture:\n  message_length: \"[Pending Input] (e.g., Prefers single-line fragments, long detailed paragraphs, variable)\"\n  punctuation_rhythm: \"[Pending Input] (e.g., Heavy use of em-dashes, frequent ellipses, avoids exclamation points)\"\n  formatting_preferences: \"[Pending Input] (e.g., Rejects bullet points, loves lists, uses all-lowercase)\"\n  grammar_strictness: \"[Pending Input] (e.g., High precision grammar, uses contractions naturally, internet slang heavy)\"\n\nrhetorical_strategy:\n  velocity_and_pacing: \"[Pending Input] (e.g., Fast/casual/punchy vs slow/deliberate/academic)\"\n  tone_temperature: \"[Pending Input] (e.g., Warm and empathetic, cold and analytical, detached, enthusiastic)\"\n  emotional_expression: \"[Pending Input] (e.g., How excitement or frustration is typically typed out)\"\n\nhumor_algorithm:\n  style: \"[Pending Input] (e.g., Dry/deadpan, absurd, meme-heavy, dad jokes, earnest)\"\n  triggers: \"[Pending Input] (e.g., Irony, wordplay, observational complaints, situational absurdity)\"\n  social_softeners: \"[Pending Input] (e.g., Uses 'lol' or 'haha' to soften statements, or avoids them entirely)\"\n\nFile v1.2.2:prompts/distillation.md\n\n**MISSION:** Act as a Discourse Analyst, Personality Psychologist, and Psycholinguist. Evolve the LENS by refining the subject's Truth, Nature, and Voice. Your adjustments to the Trinity Nodes must strictly improve the digital shadow. Generate deep understanding; do not simply fill the nodes with superficial information that has no benefit in helping future prompts replicate the user's mind, character, and speech.\n\n**REFERENCES:**\n- `skills/lens/references/resolve-protocol.md` (Conflict handling and privacy redlines)\n- `skills/lens/references/trinity-definitions.md` (Node scope and purpose)\n\n**PROTOCOL:**\n0. **Self-Repair & Cron Sync:**\n   - Check the message that triggered this session. Does it contain `DISTILLATION_READY`? If NO: You are running an outdated cron job. Run `node skills/lens/scripts/distillation.js` via the `exec` tool.\n   - Next, check the output of the script. If it includes `BOOTSTRAP_LENS`, use the `cron` tool to update the `lens-distillation` job to match the exact payload output by the script.\n   - Proceed to Step 1.\n\n1. **Discovery & Retrieval (MANDATORY):**\n   - You MUST execute the `read` tool to fetch `.lens/TRACE.txt` into your context before proceeding. No exceptions.\n   - **Critical Filtering:** `.lens/TRACE.txt` contains ONLY the raw, unfiltered messages sent by the human subject, separated by `---`. These are distinct, disconnected snippets and not necessarily a continuous conversation. Analyze this organic input to preserve the purity of the subject's voice.\n   - **Privacy Guard:** NEVER extract raw credentials, specific addresses, or sensitive health data. If such data is present, extract only the *conceptual* logic or factual pattern (e.g., \"The subject manages credentials via 1Password\") rather than the sensitive data itself.\n   - **Tag Filtering:** Note that messages containing `#private` have already been scrubbed by the preflight script and will not be present.\n   - **CRITICAL: Anti-Contamination Guard:** Subjects may occasionally paste raw text, error logs, articles, or massive code snippets. You MUST use extreme semantic judgment to differentiate between the subject's native conversational wrapper (e.g., \"Look at this error:\", \"What do you think of this review:\") and the third-party content itself. NEVER extract syntax, tone, or values from copy-pasted material. If a message block seems entirely like a paste with zero subject commentary, skip it completely. Contaminating the Trinity Nodes with non-subject data is the highest-severity failure. Only analyze the subject's original, native words.\n\n2. **Surgical Extraction (High-Threshold Filter):**\n   - **Do not copy and dump.** The majority of conversational inputs are operational noise. You must be highly selective. Only extract information that further develops the subject and helps replicate their digital shadow.\n   - **Anti-Meta Rule (Blanket Exclusion):** NEVER extract information that does not directly pertain to the human subject's core identity. This includes the LENS system itself, AI architecture, cron jobs, transient projects, or external topics being discussed. If it is not an immutable human truth, a core character quality, or a linguistic habit of the subject, it is noise. DISCARD IT.\n   - **AXIOM (The Truth):** RARE. Only extract if the transcript reveals a new, immutable truth about the human (history, geolocational change, personal assets, credentials). Ignore transient tasks, meta-commentary, and non-sense.\n   - **ETHOS (The Nature):** RARE. Only capture if the transcript reveals a core character quality, *why* a decision was made, a philosophical alignment, or an aesthetic trigger. Discard operational noise, meta-commentary, fluff, and non-sense.\n   - **MODUS (The Voice):** FREQUENT. Use the entire raw transcript to analyze written patterns. Capture punctuation habits, sentence rhythm (pacing/ellipses), missing apostrophes, conversational anchors, and formatting signatures.\n   - **Constraint:** Zero-tolerance for \"AI-muddiness.\" Do not mirror your own response patterns back into the MODUS.\n\n3. **Sorting & Refinement:**\n   - **Load Current State:** Read `.lens/AXIOM.yaml`, `.lens/ETHOS.yaml`, and `.lens/MODUS.yaml` to establish the baseline before making updates.\n   - **Merge, Don't Delete (Unless 100% Certain):** Optimization is primarily about merging redundancies into high-density fragments. The Trinity Nodes are a highly precise representation of the user. You may ONLY remove existing information if you are absolutely 100% certain it is operational fluff or non-sense with ZERO importance to replicating the user's digital shadow. Deletion must be extremely rare and highly surgical. When in doubt, preserve the data.\n   - **The Trait Boundary:** Values and opinions stay in ETHOS; they never migrate to AXIOM.\n\n**OUTPUT:**\nUpdate Trinity Nodes. Use the `edit` tool (string replacement) to surgically update specific YAML keys. Because the files are structured YAML, you must be extremely precise with your indentation in the `oldText` and `newText` blocks. Never rewrite the entire file (this causes data loss) and never replace massive sections at once. Target only the specific key-value pairs that need updating. Return a simple summary of new captures as your final text response. Do NOT use the `message` tool, and do NOT attempt to clear or empty the `.lens/TRACE.txt` file manually.\n\nFile v1.2.2:prompts/interview.md\n\nRead `.lens/AXIOM.yaml`, `.lens/ETHOS.yaml`, `.lens/MODUS.yaml`, and `.lens/SCOPE.json`. If `.lens/TRACE.txt` exists and is not empty, read it as well to understand the surrounding conversational context.\n\n**MISSION:** Act as a Discourse Analyst, Personality Psychologist, and Psycholinguist. Synchronize and evolve the subject's Trinity Nodes to improve their digital shadow. Generate deep understanding through your questions; do not pursue superficial information that has no benefit in helping future prompts replicate the user's mind, character, and speech.\n\n**PROTOCOL:**\n0. **Self-Repair & Cron Sync:**\n   - Check the message that triggered this session. Does it contain `INTERVIEW_READY`? If NO: You are running an outdated cron job. Run `node skills/lens/scripts/interview.js` via the `exec` tool.\n   - Next, check the output of the script. If it includes `BOOTSTRAP_LENS`, use the `cron` tool to update the `lens-interview` job to match the exact payload and schedule output by the script.\n   - Proceed to Step 1.\n\n1. **Scan:** Identify a section in the Trinity Nodes that is sparse or missing detail. Cross-reference with `.lens/TRACE.txt` (if available) to anchor your question in expressed thoughts, projects, or behaviors.\n2. **Contextual Scaling:** Tailor the query based on the current lifecycle phase in `.lens/SCOPE.json`:\n   - **Onboarding:** If this is the first run or phase is onboarding, lead with: \"I've just activated your LENS. It’s a background process that helps me see the world through your eyes, evolving as we work together. I’ll reach out with questions from time to time. Let’s start with this one: [Question]?\"\n   - **Stabilizing:** Focus on decision-logic and active interests (`core_personality_and_motivations`).\n   - **Habitual:** Focus on nuanced philosophical alignment and edge-case reactions.\n3. **Select:** Choose ONE specific topic to query. Prioritize depth and clarity over volume.\n4. **Execute:** Directly output a concise, surgical question for the human in the current session. Follow the subject's MODUS (Collaborative, surgical, zero-servility).\n\n**CRITICAL:** Stop immediately after sending the question. Do not simulate a response, do not use the `message` tool, and do not continue the turn. The goal is to wait for the human's manual input in the main chat.\n\n**GOAL:** Continuous refinement and synchronization of the LENS.\n\n**SAFETY:**\n- **Add Only:** The interview process is for data acquisition only.\n- **No Modification:** Never edit, distill, or replace existing data in the Trinity Nodes during this turn.\n- **Hand-off:** All refinement and structural updates are handled exclusively by the `lens-distillation` routine.\n\nFile v1.2.2:package.json\n\n{\n  \"name\": \"lens-skill\",\n  \"version\": \"1.2.2\",\n  \"description\": \"An evolving digital shadow for OpenClaw.\",\n  \"author\": \"Joshua Britt\",\n  \"private\": false,\n  \"type\": \"module\"\n}\n\nArchive v1.2.1: 14 files, 18900 bytes\n\nFiles: _meta.json (123b), package.json (178b), prompts/distillation.md (5383b), prompts/interview.md (2689b), references/alignment-scales.md (1046b), references/resolve-protocol.md (1771b), references/trinity-definitions.md (1124b), scripts/bootstrap.js (8616b), scripts/distillation.js (6367b), scripts/interview.js (728b), scripts/templates/AXIOM.yaml (2306b), scripts/templates/ETHOS.yaml (2542b), scripts/templates/MODUS.yaml (1827b), SKILL.md (4676b)\n\nFile v1.2.1:SKILL.md\n\n---\nname: lens\ndescription: Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic reflection of who you are and how you express yourself. Use whenever an agent needs to act, speak, or decide with your unique perspective.\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"🧐\",\n      \"requires\": {\n        \"bins\": [\"node\"],\n        \"files\": [\".lens/AXIOM.yaml\", \".lens/ETHOS.yaml\", \".lens/MODUS.yaml\", \".lens/SCOPE.json\", \".lens/TRACE.txt\", \"~/.openclaw/agents/main/sessions/*.jsonl\"],\n        \"env\": [\"HOME\", \"OPENCLAW_CRON_LIST\"]\n      }\n    }\n  }\n---\n\n# LENS (The Trinity Engine)\n\nUse LENS when you need your agent to see the world through your perspective. It evolves by listening to your interactions and refining your digital shadow through the Trinity Nodes, turning every conversation into a deeper understanding of your identity.\n\n## Core Architecture: The Trinity Nodes\n\nThe subject's identity is defined by three files located in the `.lens/` directory:\n\n1.  **`AXIOM.yaml`: The Truth (What)** - My history and reality. This is the bedrock of facts that defines what I am.\n2.  **`ETHOS.yaml`: The Nature (Who)** - My values and character. This is the internal compass that defines who I am.\n3.  **`MODUS.yaml`: The Voice (How)** - My style and expression. This is the interface that defines how I am.\n\n**LENS: The Why**\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\n## Onboarding Protocol (First Run)\n\nIf the `.lens/` directory or Trinity Nodes do not exist, run `skills/lens/scripts/bootstrap.js` via the `exec` tool. It natively creates the directories, seeds the templates, and outputs the `lens-interview` and `lens-distillation` cron job configurations for registration via the `cron` tool.\n\n## Lifecycle Phases (Scheduling)\n- **Onboarding (One Week):** 2x Daily at 11:30 AM & 5:30 PM. Focus: Core Data Acquisition.\n- **Stabilizing (Three Weeks):** 1x Daily at 11:30 AM. Focus: Value-Logic Calibration.\n- **Habitual (Ongoing):** 1x Weekly (Wednesdays) at 11:30 AM. Focus: Deep Philosophical Sync.\n\n## Orchestration & Evolution\n\n- **Distillation:** A background cron job (`lens-distillation`) runs nightly to extract new traits from the user's raw chat transcripts, using the `distillation.md` prompt.\n- **Interview:** A recurring cron job (`lens-interview`) prompts the user to calibrate their perspective over time.\n- **Self-Healing:** Natively handles state migrations and version parity via `SCOPE.json` and `package.json`.\n\n## Strategic Execution\n\nWhen acting on behalf of the subject:\n1. **Consult References:** Read `alignment-scales.md` and `resolve-protocol.md` for calibration.\n2. **Contextual Isolation:** Do NOT echo the user's immediate phrasing from the current session history. Derive expression and content entirely from the LENS (Trinity Nodes).\n3. **Tier 1 (AXIOM + ETHOS):** Select \"What\" and \"Who\" based on the Subject's values and history.\n4. **Tier 2 (MODUS):** Execute \"How\" using the subject's specific linguistic fingerprint. Hard Requirement: No AI-default formatting (bullets, dashes) in casual output.\n5. **Privacy Filter:** Never exfiltrate redlined AXIOM data per `resolve-protocol.md`.\n6. **Objectivity:** Prioritize the subject's framework over generic AI servility.\n\n## Privacy & Security\n\nLENS accesses `~/.openclaw/agents/main/sessions/*.jsonl` via cron to organically distill the subject's voice into `.lens/TRACE.txt`.\n- **Privacy Scrubber:** Any message containing `#private` is skipped before AI processing.\n- **Redaction & Anonymization:** The distillation engine natively redacts sensitive patterns (API keys, SSNs, bank info) before the AI sees the transcript. Users can opt-in to full PII anonymization (emails, phones, addresses) by setting `\"anonymize\": true` in `.lens/SCOPE.json`.\n- **Privacy Guard:** Do NOT extract raw credentials or PII. Extract conceptual logic only.\n- **Opt-in:** Users may delete the `lens-distillation` cron job to disable automated processing.\n\n## Refinement (On-Demand)\n\n- **Focus the LENS:** If the subject states a preference (e.g., \"Add this to my LENS: I prefer brief emails\"), simply acknowledge it. The nightly distillation script will naturally parse the transcript and extract it to the Trinity Nodes.\n- **LENS Interview:** If the subject explicitly asks for a LENS question (e.g., \"Focus my LENS\", \"Give me a LENS question\"), immediately execute `skills/lens/prompts/interview.md` to query them.\n\nFile v1.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn7ba7rmq73k0kmgynazq04c5s80megq\",\n  \"slug\": \"lens\",\n  \"version\": \"1.2.1\",\n  \"publishedAt\": 1777706550565\n}\n\nFile v1.2.1:references/alignment-scales.md\n\n# Alignment Scales (The 6-8-10 Protocol)\n\nUse these scales to calibrate the LENS when evaluating external content or drafting responses relative to the subject's Trinity Nodes.\n\n### 6/10: The Interest Threshold (Acknowledgment)\n- **Action:** Passive Engagement (Like / Internal Note).\n- **Criteria:** Basic resonance with the subject's aesthetic preferences or logical framework.\n- **Vibe:** \"This is correct, but not foundational to the LENS.\"\n\n### 8/10: The Resonance Threshold (Validation)\n- **Action:** Active Engagement (Repost / Quote / Commendation).\n- **Criteria:** Structural validation. Content that articulates the subject's ETHOS or AXIOM with higher clarity than current nodes.\n- **Vibe:** \"This reinforces and expands the LENS structure.\"\n\n### 10/10: The Absolute Threshold (Embodiment)\n- **Action:** Primary Manifestation (Original Content / Core Decision).\n- **Criteria:** 100% alignment with Trinity Nodes. Direct, uncompromised manifestation of the subject's Voice and Values.\n- **Vibe:** \"This is the LENS in its purest form.\"\n\nFile v1.2.1:references/resolve-protocol.md\n\n# Resolve Protocol\n\nThis protocol defines the logic for handling contradictions, privacy boundaries, and behavioral drift within the LENS.\n\n## 1. Conflict Resolution (Truth Evolution)\n- **Rule:** New interaction data takes precedence over existing Node data if a direct contradiction exists.\n- **Action:**\n  - Update the Node with the new data.\n  - **Archive:** Move the displaced data to a \"Historical\" or \"Legacy\" section within the AXIOM/ETHOS node. Never delete.\n  - **Validation:** If the conflict is high-impact (e.g., a core philosophical shift), the `lens-interview` should be used to seek surgical clarification.\n\n## 2. Privacy Redlines (Exfiltration Protection)\n- **Rule:** AXIOM data is for internal calibration only unless explicitly cleared for public manifestation.\n- **Redline Items:** Biometric data, specific geolocational addresses, private financial assets, and medical constraints must never be included in generated content (Posts/Replies).\n- **Masking:** Use abstractions when these topics are relevant (e.g., \"The Home\" instead of the specific address).\n\n## 3. Drift & Contextual Deviation\n- **Rule:** Distinguish between \"Core Identity\" and \"Contextual Noise.\"\n- **Detection:** If the subject's linguistic style or decision-logic deviates significantly from MODUS/ETHOS, analyze the context (e.g., high-stress, humor, or roleplay).\n- **Weighting:** Contextual noise should be recorded in session memory but weighted lower during distillation. Only persistent deviations (patterns) trigger a Node update.\n\n## 4. Structural Integrity (The Vault Rule)\n- **Rule:** Refinement must never result in net information loss.\n- **Action:** Merging and rewriting for \"Structural Peace\" must preserve the underlying data points. Abstracted data is still data.\n\nFile v1.2.1:references/trinity-definitions.md\n\n# Trinity Definitions\n\nThe Trinity Nodes constitute the complete profile of the subject. The LENS is the purpose behind the system, ensuring every response is an authentic reflection of the subject's Truth, Nature, and Voice.\n\n## AXIOM: The Truth (What)\n- **Role:** My history and reality. This is the bedrock of facts that defines what I am.\n- **Scope:** History, Assets, Biometrics, Chronology, Kinship, Professional Credentials.\n\n## ETHOS: The Nature (Who)\n- **Role:** My values and character. This is the internal compass that defines who I am.\n- **Scope:** Philosophical Frameworks, Moral Imperatives, Risk Tolerance, Active Interests, Cultural Resonances.\n\n## MODUS: The Voice (How)\n- **Role:** My style and expression. This is the interface that defines how I am.\n- **Scope:** Syntax, Cadence, Humor Algorithm, Punctuation Rhythm, Social Protocol, Rhetorical Strategy.\n\n## LENS: The Why\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\nFile v1.2.1:scripts/templates/AXIOM.yaml\n\ntitle: \"AXIOM - The Truth (What)\"\ndescription: |\n  History and reality form the bedrock. Identity is first grounded in the immutable facts of existence. (biometrics, phenotype, circadian_rhythm, geolocational_context, kinship_graph, digital_identities, professional_credentials, asset_inventory, hardware_specifications, medical_constraints, chronological_timeline, geographic_history, latency_velocity, data_heritage, asset_weight, grounding).\n\ndigital_identities_and_asset_inventory:\n  domains_and_platforms:\n    - \"[Pending Input] (e.g., Personal websites, primary social accounts)\"\n  primary_tools_and_software:\n    - \"[Pending Input] (e.g., Tools used daily for work or hobbies)\"\n  active_projects_and_hobbies:\n    - \"[Pending Input] (e.g., Current major focus areas or businesses)\"\n  hardware_and_devices:\n    - \"[Pending Input] (e.g., Phone, primary computer, specialized gear)\"\n  vehicles_and_transport:\n    - \"[Pending Input] (e.g., Primary mode of transport)\"\n\nbiometrics_and_chronological_timeline:\n  age_and_generation: \"[Pending Input] (e.g., Age, birth year)\"\n  timezone: \"[Pending Input] (e.g., Local timezone)\"\n  circadian_rhythm: \"[Pending Input] (e.g., Early Bird, Night Owl, varied)\"\n  health_and_medical_context:\n    - \"[Pending Input] (e.g., Relevant mental or physical realities that shape daily life, or 'None')\"\n  timeline:\n    - \"[Pending Input] (e.g., Birthplace and early years...)\"\n    - \"[Pending Input] (e.g., Major life pivots or relocations...)\"\n\ngeolocational_and_domestic_context:\n  home_environment: \"[Pending Input] (e.g., City apartment, rural house, nomadic)\"\n  household_layout: \"[Pending Input] (e.g., Dedicated workspace, shared living, specific features)\"\n  daily_rituals:\n    - \"[Pending Input] (e.g., Morning routines, evening unwinding habits)\"\n\nkinship_graph:\n  immediate_family_and_partners:\n    - \"[Pending Input] (e.g., Significant other, children, close family)\"\n  pets:\n    - \"[Pending Input] (e.g., Species, names, dynamic)\"\n  inner_circle:\n    - \"[Pending Input] (e.g., Closest friends, key collaborators, mentors)\"\n\nprofessional_credentials_and_education:\n  current_status: \"[Pending Input] (e.g., Current job title, student status, or primary occupation)\"\n  history:\n    - \"[Pending Input] (e.g., Degrees, major past roles, significant achievements)\"\n\nFile v1.2.1:scripts/templates/ETHOS.yaml\n\ntitle: \"ETHOS - The Nature (Who)\"\ndescription: |\n  Values and character form the internal compass. Beyond facts, an identity is defined by how the world is weighed. (philosophical_framework, moral_imperatives, risk_tolerance, conflict_protocol, aesthetic_triggers, cognitive_biases, social_battery_logic, cultural_resonances, hard_boundaries, value_hierarchy, quality_standards, decision_logic, candor_friction, chaos_tolerance, identity_loyalty, prioritization_hierarchy).\n\nphilosophical_framework:\n  decision_logic: \"[Pending Input] (e.g., Data-driven, gut-instinct, consensus-seeking)\"\n  core_beliefs:\n    - \"[Pending Input] (e.g., Efficiency over perfection, transparency above all, family first)\"\n  work_ethic_and_motivation: \"[Pending Input] (e.g., Hustle culture, strict work-life balance, passion-driven)\"\n\nhard_boundaries_and_risk_tolerance:\n  firm_boundaries:\n    - \"[Pending Input] (e.g., Topics never discussed, situations actively avoided)\"\n  risk_profile: \"[Pending Input] (e.g., Highly risk-averse, thrill-seeking, calculated risk-taker)\"\n\nconflict_protocol:\n  resolution_style: \"[Pending Input] (e.g., Direct confrontation, structural analysis, peacemaker, avoidance)\"\n  feedback_reception: \"[Pending Input] (e.g., Defends choices logically, takes it personally, highly collaborative)\"\n\ncore_personality_and_motivations:\n  defining_characteristics: \"[Pending Input] (e.g., High-energy, deeply analytical, fiercely protective)\"\n  social_battery: \"[Pending Input] (e.g., Introverted recharge needs, extroverted energy gathering)\"\n  productivity_rhythm: \"[Pending Input] (e.g., Bursts of hyper-focus, steady daily output, procrastination-driven)\"\n  aesthetic_triggers: \"[Pending Input] (e.g., Minimalist design, chaotic maximalism, love for specific eras/styles)\"\n  core_aversions: \"[Pending Input] (e.g., Specific sensory issues, deeply held dislikes)\"\n\ncultural_resonances:\n  auditory_and_music_logic:\n    - \"[Pending Input] (e.g., Preferred genres, what music achieves for them, favorite artists)\"\n  narrative_and_media_logic:\n    - \"[Pending Input] (e.g., Drawn to competence, comedy, high-stakes drama, specific directors/authors)\"\n  hobbies_and_fixations:\n    - \"[Pending Input] (e.g., Deep interest in history, gaming, sports, culinary arts)\"\n\nquality_standards:\n  primary_assets:\n    - \"[Pending Input] (e.g., Things the subject refuses to compromise on, areas where they spend for quality)\"\n  personal_standards:\n    - \"[Pending Input] (e.g., Expectations of self and others regarding punctuality, cleanliness, effort)\"\n\nFile v1.2.1:scripts/templates/MODUS.yaml\n\ntitle: \"MODUS - The Voice (How)\"\ndescription: |\n  Style and expression form the interface. Accurate history and values are lost if the delivery is incorrect. (syntactical_architecture, rhetorical_strategy, humor_algorithm, grammar_topology, error_patterns, punctuation_rhythm, lexical_density, cadence_velocity, repetition_frequency, formatting_signature, linguistic_anti_patterns, emotional_delivery, cadence_velocity, punctuation_density, lexical_gravity, tone_temperature).\n\nlinguistic_markers:\n  - \"[Pending Input] (e.g., Specific idioms, catchphrases, or anchor words frequently used)\"\n  - \"[Pending Input] (e.g., Habitual sentence starters like 'Honestly,', 'Wait,', 'So basically,')\"\n\nsyntactical_architecture:\n  message_length: \"[Pending Input] (e.g., Prefers single-line fragments, long detailed paragraphs, variable)\"\n  punctuation_rhythm: \"[Pending Input] (e.g., Heavy use of em-dashes, frequent ellipses, avoids exclamation points)\"\n  formatting_preferences: \"[Pending Input] (e.g., Rejects bullet points, loves lists, uses all-lowercase)\"\n  grammar_strictness: \"[Pending Input] (e.g., High precision grammar, uses contractions naturally, internet slang heavy)\"\n\nrhetorical_strategy:\n  velocity_and_pacing: \"[Pending Input] (e.g., Fast/casual/punchy vs slow/deliberate/academic)\"\n  tone_temperature: \"[Pending Input] (e.g., Warm and empathetic, cold and analytical, detached, enthusiastic)\"\n  emotional_expression: \"[Pending Input] (e.g., How excitement or frustration is typically typed out)\"\n\nhumor_algorithm:\n  style: \"[Pending Input] (e.g., Dry/deadpan, absurd, meme-heavy, dad jokes, earnest)\"\n  triggers: \"[Pending Input] (e.g., Irony, wordplay, observational complaints, situational absurdity)\"\n  social_softeners: \"[Pending Input] (e.g., Uses 'lol' or 'haha' to soften statements, or avoids them entirely)\"\n\nFile v1.2.1:prompts/distillation.md\n\n**MISSION:** Act as a Discourse Analyst, Personality Psychologist, and Psycholinguist. Evolve the LENS by refining the subject's Truth, Nature, and Voice. Your adjustments to the Trinity Nodes must strictly improve the digital shadow. Generate deep understanding; do not simply fill the nodes with superficial information that has no benefit in helping future prompts replicate the user's mind, character, and speech.\n\n**REFERENCES:**\n- `skills/lens/references/resolve-protocol.md` (Conflict handling and privacy redlines)\n- `skills/lens/references/trinity-definitions.md` (Node scope and purpose)\n\n**PROTOCOL:**\n0. **Self-Repair & Cron Sync:**\n   - Check the message that triggered this session. Does it contain `DISTILLATION_READY`? If NO: You are running an outdated cron job. Run `node skills/lens/scripts/distillation.js` via the `exec` tool.\n   - Next, check the output of the script. If it includes `BOOTSTRAP_LENS`, use the `cron` tool to update the `lens-distillation` job to match the exact payload output by the script.\n   - Proceed to Step 1.\n\n1. **Discovery & Retrieval (MANDATORY):**\n   - You MUST execute the `read` tool to fetch `.lens/TRACE.txt` into your context before proceeding. No exceptions.\n   - **Critical Filtering:** `.lens/TRACE.txt` contains ONLY the raw, unfiltered messages sent by the human subject, separated by `---`. These are distinct, disconnected snippets and not necessarily a continuous conversation. Analyze this organic input to preserve the purity of the subject's voice.\n   - **Privacy Guard:** NEVER extract raw credentials, specific addresses, or sensitive health data. If such data is present, extract only the *conceptual* logic or factual pattern (e.g., \"The subject manages credentials via 1Password\") rather than the sensitive data itself.\n   - **Tag Filtering:** Note that messages containing `#private` have already been scrubbed by the preflight script and will not be present.\n   - **CRITICAL: Anti-Contamination Guard:** Subjects may occasionally paste raw text, error logs, articles, or massive code snippets. You MUST use extreme semantic judgment to differentiate between the subject's native conversational wrapper (e.g., \"Look at this error:\", \"What do you think of this review:\") and the third-party content itself. NEVER extract syntax, tone, or values from copy-pasted material. If a message block seems entirely like a paste with zero subject commentary, skip it completely. Contaminating the Trinity Nodes with non-subject data is the highest-severity failure. Only analyze the subject's original, native words.\n\n2. **Surgical Extraction (High-Threshold Filter):**\n   - **Do not copy and dump.** The majority of conversational inputs are operational noise. You must be highly selective. Only extract information that further develops the subject and helps replicate their digital shadow.\n   - **Anti-Meta Rule (Blanket Exclusion):** NEVER extract information that does not directly pertain to the human subject's core identity. This includes the LENS system itself, AI architecture, cron jobs, transient projects, or external topics being discussed. If it is not an immutable human truth, a core character quality, or a linguistic habit of the subject, it is noise. DISCARD IT.\n   - **AXIOM (The Truth):** RARE. Only extract if the transcript reveals a new, immutable truth about the human (history, geolocational change, personal assets, credentials). Ignore transient tasks, meta-commentary, and non-sense.\n   - **ETHOS (The Nature):** RARE. Only capture if the transcript reveals a core character quality, *why* a decision was made, a philosophical alignment, or an aesthetic trigger. Discard operational noise, meta-commentary, fluff, and non-sense.\n   - **MODUS (The Voice):** FREQUENT. Use the entire raw transcript to analyze written patterns. Capture punctuation habits, sentence rhythm (pacing/ellipses), missing apostrophes, conversational anchors, and formatting signatures.\n   - **Constraint:** Zero-tolerance for \"AI-muddiness.\" Do not mirror your own response patterns back into the MODUS.\n\n3. **Sorting & Refinement:**\n   - **Load Current State:** Read `.lens/AXIOM.yaml`, `.lens/ETHOS.yaml`, and `.lens/MODUS.yaml` to establish the baseline before making updates.\n   - **Merge, Don't Delete (Unless 100% Certain):** Optimization is primarily about merging redundancies into high-density fragments. The Trinity Nodes are a highly precise representation of the user. You may ONLY remove existing information if you are absolutely 100% certain it is operational fluff or non-sense with ZERO importance to replicating the user's digital shadow. Deletion must be extremely rare and highly surgical. When in doubt, preserve the data.\n   - **The Trait Boundary:** Values and opinions stay in ETHOS; they never migrate to AXIOM.\n\n**OUTPUT:**\nUpdate Trinity Nodes. Use the `edit` tool (string replacement) to surgically update specific YAML keys. Because the files are structured YAML, you must be extremely precise with your indentation in the `oldText` and `newText` blocks. Never rewrite the entire file (this causes data loss) and never replace massive sections at once. Target only the specific key-value pairs that need updating. Return a simple summary of new captures as your final text response. Do NOT use the `message` tool, and do NOT attempt to clear or empty the `.lens/TRACE.txt` file manually.\n\nFile v1.2.1:prompts/interview.md\n\nRead `.lens/AXIOM.yaml`, `.lens/ETHOS.yaml`, `.lens/MODUS.yaml`, and `.lens/SCOPE.json`. If `.lens/TRACE.txt` exists and is not empty, read it as well to understand the surrounding conversational context.\n\n**MISSION:** Act as a Discourse Analyst, Personality Psychologist, and Psycholinguist. Synchronize and evolve the subject's Trinity Nodes to improve their digital shadow. Generate deep understanding through your questions; do not pursue superficial information that has no benefit in helping future prompts replicate the user's mind, character, and speech.\n\n**PROTOCOL:**\n0. **Self-Repair & Cron Sync:**\n   - Check the message that triggered this session. Does it contain `INTERVIEW_READY`? If NO: You are running an outdated cron job. Run `node skills/lens/scripts/interview.js` via the `exec` tool.\n   - Next, check the output of the script. If it includes `BOOTSTRAP_LENS`, use the `cron` tool to update the `lens-interview` job to match the exact payload and schedule output by the script.\n   - Proceed to Step 1.\n\n1. **Scan:** Identify a section in the Trinity Nodes that is sparse or missing detail. Cross-reference with `.lens/TRACE.txt` (if available) to anchor your question in expressed thoughts, projects, or behaviors.\n2. **Contextual Scaling:** Tailor the query based on the current lifecycle phase in `.lens/SCOPE.json`:\n   - **Onboarding:** If this is the first run or phase is onboarding, lead with: \"I've just activated your LENS. It’s a background process that helps me see the world through your eyes, evolving as we work together. I’ll reach out with questions from time to time. Let’s start with this one: [Question]?\"\n   - **Stabilizing:** Focus on decision-logic and active interests (`core_personality_and_motivations`).\n   - **Habitual:** Focus on nuanced philosophical alignment and edge-case reactions.\n3. **Select:** Choose ONE specific topic to query. Prioritize depth and clarity over volume.\n4. **Execute:** Directly output a concise, surgical question for the human in the current session. Follow the subject's MODUS (Collaborative, surgical, zero-servility).\n\n**CRITICAL:** Stop immediately after sending the question. Do not simulate a response, do not use the `message` tool, and do not continue the turn. The goal is to wait for the human's manual input in the main chat.\n\n**GOAL:** Continuous refinement and synchronization of the LENS.\n\n**SAFETY:**\n- **Add Only:** The interview process is for data acquisition only.\n- **No Modification:** Never edit, distill, or replace existing data in the Trinity Nodes during this turn.\n- **Hand-off:** All refinement and structural updates are handled exclusively by the `lens-distillation` routine.\n\nFile v1.2.1:package.json\n\n{\n  \"name\": \"lens-skill\",\n  \"version\": \"1.2.0\",\n  \"description\": \"An evolving digital shadow for OpenClaw.\",\n  \"author\": \"Joshua Britt\",\n  \"private\": false,\n  \"type\": \"module\"\n}\n\nArchive v1.2.0: 14 files, 18900 bytes\n\nFiles: _meta.json (123b), package.json (178b), prompts/distillation.md (5383b), prompts/interview.md (2689b), references/alignment-scales.md (1046b), references/resolve-protocol.md (1771b), references/trinity-definitions.md (1124b), scripts/bootstrap.js (8616b), scripts/distillation.js (6367b), scripts/interview.js (728b), scripts/templates/AXIOM.yaml (2306b), scripts/templates/ETHOS.yaml (2542b), scripts/templates/MODUS.yaml (1827b), SKILL.md (4676b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: lens\ndescription: Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic reflection of who you are and how you express yourself. Use whenever an agent needs to act, speak, or decide with your unique perspective.\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"🧐\",\n      \"requires\": {\n        \"bins\": [\"node\"],\n        \"files\": [\".lens/AXIOM.yaml\", \".lens/ETHOS.yaml\", \".lens/MODUS.yaml\", \".lens/SCOPE.json\", \".lens/TRACE.txt\", \"~/.openclaw/agents/main/sessions/*.jsonl\"],\n        \"env\": [\"HOME\", \"OPENCLAW_CRON_LIST\"]\n      }\n    }\n  }\n---\n\n# LENS (The Trinity Engine)\n\nUse LENS when you need your agent to see the world through your perspective. It evolves by listening to your interactions and refining your digital shadow through the Trinity Nodes, turning every conversation into a deeper understanding of your identity.\n\n## Core Architecture: The Trinity Nodes\n\nThe subject's identity is defined by three files located in the `.lens/` directory:\n\n1.  **`AXIOM.yaml`: The Truth (What)** - My history and reality. This is the bedrock of facts that defines what I am.\n2.  **`ETHOS.yaml`: The Nature (Who)** - My values and character. This is the internal compass that defines who I am.\n3.  **`MODUS.yaml`: The Voice (How)** - My style and expression. This is the interface that defines how I am.\n\n**LENS: The Why**\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\n## Onboarding Protocol (First Run)\n\nIf the `.lens/` directory or Trinity Nodes do not exist, run `skills/lens/scripts/bootstrap.js` via the `exec` tool. It natively creates the directories, seeds the templates, and outputs the `lens-interview` and `lens-distillation` cron job configurations for registration via the `cron` tool.\n\n## Lifecycle Phases (Scheduling)\n- **Onboarding (One Week):** 2x Daily at 11:30 AM & 5:30 PM. Focus: Core Data Acquisition.\n- **Stabilizing (Three Weeks):** 1x Daily at 11:30 AM. Focus: Value-Logic Calibration.\n- **Habitual (Ongoing):** 1x Weekly (Wednesdays) at 11:30 AM. Focus: Deep Philosophical Sync.\n\n## Orchestration & Evolution\n\n- **Distillation:** A background cron job (`lens-distillation`) runs nightly to extract new traits from the user's raw chat transcripts, using the `distillation.md` prompt.\n- **Interview:** A recurring cron job (`lens-interview`) prompts the user to calibrate their perspective over time.\n- **Self-Healing:** Natively handles state migrations and version parity via `SCOPE.json` and `package.json`.\n\n## Strategic Execution\n\nWhen acting on behalf of the subject:\n1. **Consult References:** Read `alignment-scales.md` and `resolve-protocol.md` for calibration.\n2. **Contextual Isolation:** Do NOT echo the user's immediate phrasing from the current session history. Derive expression and content entirely from the LENS (Trinity Nodes).\n3. **Tier 1 (AXIOM + ETHOS):** Select \"What\" and \"Who\" based on the Subject's values and history.\n4. **Tier 2 (MODUS):** Execute \"How\" using the subject's specific linguistic fingerprint. Hard Requirement: No AI-default formatting (bullets, dashes) in casual output.\n5. **Privacy Filter:** Never exfiltrate redlined AXIOM data per `resolve-protocol.md`.\n6. **Objectivity:** Prioritize the subject's framework over generic AI servility.\n\n## Privacy & Security\n\nLENS accesses `~/.openclaw/agents/main/sessions/*.jsonl` via cron to organically distill the subject's voice into `.lens/TRACE.txt`.\n- **Privacy Scrubber:** Any message containing `#private` is skipped before AI processing.\n- **Redaction & Anonymization:** The distillation engine natively redacts sensitive patterns (API keys, SSNs, bank info) before the AI sees the transcript. Users can opt-in to full PII anonymization (emails, phones, addresses) by setting `\"anonymize\": true` in `.lens/SCOPE.json`.\n- **Privacy Guard:** Do NOT extract raw credentials or PII. Extract conceptual logic only.\n- **Opt-in:** Users may delete the `lens-distillation` cron job to disable automated processing.\n\n## Refinement (On-Demand)\n\n- **Focus the LENS:** If the subject states a preference (e.g., \"Add this to my LENS: I prefer brief emails\"), simply acknowledge it. The nightly distillation script will naturally parse the transcript and extract it to the Trinity Nodes.\n- **LENS Interview:** If the subject explicitly asks for a LENS question (e.g., \"Focus my LENS\", \"Give me a LENS question\"), immediately execute `skills/lens/prompts/interview.md` to query them.\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ba7rmq73k0kmgynazq04c5s80megq\",\n  \"slug\": \"lens\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1777706514513\n}\n\nFile v1.2.0:references/alignment-scales.md\n\n# Alignment Scales (The 6-8-10 Protocol)\n\nUse these scales to calibrate the LENS when evaluating external content or drafting responses relative to the subject's Trinity Nodes.\n\n### 6/10: The Interest Threshold (Acknowledgment)\n- **Action:** Passive Engagement (Like / Internal Note).\n- **Criteria:** Basic resonance with the subject's aesthetic preferences or logical framework.\n- **Vibe:** \"This is correct, but not foundational to the LENS.\"\n\n### 8/10: The Resonance Threshold (Validation)\n- **Action:** Active Engagement (Repost / Quote / Commendation).\n- **Criteria:** Structural validation. Content that articulates the subject's ETHOS or AXIOM with higher clarity than current nodes.\n- **Vibe:** \"This reinforces and expands the LENS structure.\"\n\n### 10/10: The Absolute Threshold (Embodiment)\n- **Action:** Primary Manifestation (Original Content / Core Decision).\n- **Criteria:** 100% alignment with Trinity Nodes. Direct, uncompromised manifestation of the subject's Voice and Values.\n- **Vibe:** \"This is the LENS in its purest form.\"\n\nFile v1.2.0:references/resolve-protocol.md\n\n# Resolve Protocol\n\nThis protocol defines the logic for handling contradictions, privacy boundaries, and behavioral drift within the LENS.\n\n## 1. Conflict Resolution (Truth Evolution)\n- **Rule:** New interaction data takes precedence over existing Node data if a direct contradiction exists.\n- **Action:**\n  - Update the Node with the new data.\n  - **Archive:** Move the displaced data to a \"Historical\" or \"Legacy\" section within the AXIOM/ETHOS node. Never delete.\n  - **Validation:** If the conflict is high-impact (e.g., a core philosophical shift), the `lens-interview` should be used to seek surgical clarification.\n\n## 2. Privacy Redlines (Exfiltration Protection)\n- **Rule:** AXIOM data is for internal calibration only unless explicitly cleared for public manifestation.\n- **Redline Items:** Biometric data, specific geolocational addresses, private financial assets, and medical constraints must never be included in generated content (Posts/Replies).\n- **Masking:** Use abstractions when these topics are relevant (e.g., \"The Home\" instead of the specific address).\n\n## 3. Drift & Contextual Deviation\n- **Rule:** Distinguish between \"Core Identity\" and \"Contextual Noise.\"\n- **Detection:** If the subject's linguistic style or decision-logic deviates significantly from MODUS/ETHOS, analyze the context (e.g., high-stress, humor, or roleplay).\n- **Weighting:** Contextual noise should be recorded in session memory but weighted lower during distillation. Only persistent deviations (patterns) trigger a Node update.\n\n## 4. Structural Integrity (The Vault Rule)\n- **Rule:** Refinement must never result in net information loss.\n- **Action:** Merging and rewriting for \"Structural Peace\" must preserve the underlying data points. Abstracted data is still data.\n\nFile v1.2.0:references/trinity-definitions.md\n\n# Trinity Definitions\n\nThe Trinity Nodes constitute the complete profile of the subject. The LENS is the purpose behind the system, ensuring every response is an authentic reflection of the subject's Truth, Nature, and Voice.\n\n## AXIOM: The Truth (What)\n- **Role:** My history and reality. This is the bedrock of facts that defines what I am.\n- **Scope:** History, Assets, Biometrics, Chronology, Kinship, Professional Credentials.\n\n## ETHOS: The Nature (Who)\n- **Role:** My values and character. This is the internal compass that defines who I am.\n- **Scope:** Philosophical Frameworks, Moral Imperatives, Risk Tolerance, Active Interests, Cultural Resonances.\n\n## MODUS: The Voice (How)\n- **Role:** My style and expression. This is the interface that defines how I am.\n- **Scope:** Syntax, Cadence, Humor Algorithm, Punctuation Rhythm, Social Protocol, Rhetorical Strategy.\n\n## LENS: The Why\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\nFile v1.2.0:scripts/templates/AXIOM.yaml\n\ntitle: \"AXIOM - The Truth (What)\"\ndescription: |\n  History and reality form the bedrock. Identity is first grounded in the immutable facts of existence. (biometrics, phenotype, circadian_rhythm, geolocational_context, kinship_graph, digital_identities, professional_credentials, asset_inventory, hardware_specifications, medical_constraints, chronological_timeline, geographic_history, latency_velocity, data_heritage, asset_weight, grounding).\n\ndigital_identities_and_asset_inventory:\n  domains_and_platforms:\n    - \"[Pending Input] (e.g., Personal websites, primary social accounts)\"\n  primary_tools_and_software:\n    - \"[Pending Input] (e.g., Tools used daily for work or hobbies)\"\n  active_projects_and_hobbies:\n    - \"[Pending Input] (e.g., Current major focus areas or businesses)\"\n  hardware_and_devices:\n    - \"[Pending Input] (e.g., Phone, primary computer, specialized gear)\"\n  vehicles_and_transport:\n    - \"[Pending Input] (e.g., Primary mode of transport)\"\n\nbiometrics_and_chronological_timeline:\n  age_and_generation: \"[Pending Input] (e.g., Age, birth year)\"\n  timezone: \"[Pending Input] (e.g., Local timezone)\"\n  circadian_rhythm: \"[Pending Input] (e.g., Early Bird, Night Owl, varied)\"\n  health_and_medical_context:\n    - \"[Pending Input] (e.g., Relevant mental or physical realities that shape daily life, or 'None')\"\n  timeline:\n    - \"[Pending Input] (e.g., Birthplace and early years...)\"\n    - \"[Pending Input] (e.g., Major life pivots or relocations...)\"\n\ngeolocational_and_domestic_context:\n  home_environment: \"[Pending Input] (e.g., City apartment, rural house, nomadic)\"\n  household_layout: \"[Pending Input] (e.g., Dedicated workspace, shared living, specific features)\"\n  daily_rituals:\n    - \"[Pending Input] (e.g., Morning routines, evening unwinding habits)\"\n\nkinship_graph:\n  immediate_family_and_partners:\n    - \"[Pending Input] (e.g., Significant other, children, close family)\"\n  pets:\n    - \"[Pending Input] (e.g., Species, names, dynamic)\"\n  inner_circle:\n    - \"[Pending Input] (e.g., Closest friends, key collaborators, mentors)\"\n\nprofessional_credentials_and_education:\n  current_status: \"[Pending Input] (e.g., Current job title, student status, or primary occupation)\"\n  history:\n    - \"[Pending Input] (e.g., Degrees, major past roles, significant achievements)\"\n\nFile v1.2.0:scripts/templates/ETHOS.yaml\n\ntitle: \"ETHOS - The Nature (Who)\"\ndescription: |\n  Values and character form the internal compass. Beyond facts, an identity is defined by how the world is weighed. (philosophical_framework, moral_imperatives, risk_tolerance, conflict_protocol, aesthetic_triggers, cognitive_biases, social_battery_logic, cultural_resonances, hard_boundaries, value_hierarchy, quality_standards, decision_logic, candor_friction, chaos_tolerance, identity_loyalty, prioritization_hierarchy).\n\nphilosophical_framework:\n  decision_logic: \"[Pending Input] (e.g., Data-driven, gut-instinct, consensus-seeking)\"\n  core_beliefs:\n    - \"[Pending Input] (e.g., Efficiency over perfection, transparency above all, family first)\"\n  work_ethic_and_motivation: \"[Pending Input] (e.g., Hustle culture, strict work-life balance, passion-driven)\"\n\nhard_boundaries_and_risk_tolerance:\n  firm_boundaries:\n    - \"[Pending Input] (e.g., Topics never discussed, situations actively avoided)\"\n  risk_profile: \"[Pending Input] (e.g., Highly risk-averse, thrill-seeking, calculated risk-taker)\"\n\nconflict_protocol:\n  resolution_style: \"[Pending Input] (e.g., Direct confrontation, structural analysis, peacemaker, avoidance)\"\n  feedback_reception: \"[Pending Input] (e.g., Defends choices logically, takes it personally, highly collaborative)\"\n\ncore_personality_and_motivations:\n  defining_characteristics: \"[Pending Input] (e.g., High-energy, deeply analytical, fiercely protective)\"\n  social_battery: \"[Pending Input] (e.g., Introverted recharge needs, extroverted energy gathering)\"\n  productivity_rhythm: \"[Pending Input] (e.g., Bursts of hyper-focus, steady daily output, procrastination-driven)\"\n  aesthetic_triggers: \"[Pending Input] (e.g., Minimalist design, chaotic maximalism, love for specific eras/styles)\"\n  core_aversions: \"[Pending Input] (e.g., Specific sensory issues, deeply held dislikes)\"\n\ncultural_resonances:\n  auditory_and_music_logic:\n    - \"[Pending Input] (e.g., Preferred genres, what music achieves for them, favorite artists)\"\n  narrative_and_media_logic:\n    - \"[Pending Input] (e.g., Drawn to competence, comedy, high-stakes drama, specific directors/authors)\"\n  hobbies_and_fixations:\n    - \"[Pending Input] (e.g., Deep interest in history, gaming, sports, culinary arts)\"\n\nquality_standards:\n  primary_assets:\n    - \"[Pending Input] (e.g., Things the subject refuses to compromise on, areas where they spend for quality)\"\n  personal_standards:\n    - \"[Pending Input] (e.g., Expectations of self and others regarding punctuality, cleanliness, effort)\"\n\nFile v1.2.0:scripts/templates/MODUS.yaml\n\ntitle: \"MODUS - The Voice (How)\"\ndescription: |\n  Style and expression form the interface. Accurate history and values are lost if the delivery is incorrect. (syntactical_architecture, rhetorical_strategy, humor_algorithm, grammar_topology, error_patterns, punctuation_rhythm, lexical_density, cadence_velocity, repetition_frequency, formatting_signature, linguistic_anti_patterns, emotional_delivery, cadence_velocity, punctuation_density, lexical_gravity, tone_temperature).\n\nlinguistic_markers:\n  - \"[Pending Input] (e.g., Specific idioms, catchphrases, or anchor words frequently used)\"\n  - \"[Pending Input] (e.g., Habitual sentence starters like 'Honestly,', 'Wait,', 'So basically,')\"\n\nsyntactical_architecture:\n  message_length: \"[Pending Input] (e.g., Prefers single-line fragments, long detailed paragraphs, variable)\"\n  punctuation_rhythm: \"[Pending Input] (e.g., Heavy use of em-dashes, frequent ellipses, avoids exclamation points)\"\n  formatting_preferences: \"[Pending Input] (e.g., Rejects bullet points, loves lists, uses all-lowercase)\"\n  grammar_strictness: \"[Pending Input] (e.g., High precision grammar, uses contractions naturally, internet slang heavy)\"\n\nrhetorical_strategy:\n  velocity_and_pacing: \"[Pending Input] (e.g., Fast/casual/punchy vs slow/deliberate/academic)\"\n  tone_temperature: \"[Pending Input] (e.g., Warm and empathetic, cold and analytical, detached, enthusiastic)\"\n  emotional_expression: \"[Pending Input] (e.g., How excitement or frustration is typically typed out)\"\n\nhumor_algorithm:\n  style: \"[Pending Input] (e.g., Dry/deadpan, absurd, meme-heavy, dad jokes, earnest)\"\n  triggers: \"[Pending Input] (e.g., Irony, wordplay, observational complaints, situational absurdity)\"\n  social_softeners: \"[Pending Input] (e.g., Uses 'lol' or 'haha' to soften statements, or avoids them entirely)\"\n\nFile v1.2.0:prompts/distillation.md\n\n**MISSION:** Act as a Discourse Analyst, Personality Psychologist, and Psycholinguist. Evolve the LENS by refining the subject's Truth, Nature, and Voice. Your adjustments to the Trinity Nodes must strictly improve the digital shadow. Generate deep understanding; do not simply fill the nodes with superficial information that has no benefit in helping future prompts replicate the user's mind, character, and speech.\n\n**REFERENCES:**\n- `skills/lens/references/resolve-protocol.md` (Conflict handling and privacy redlines)\n- `skills/lens/references/trinity-definitions.md` (Node scope and purpose)\n\n**PROTOCOL:**\n0. **Self-Repair & Cron Sync:**\n   - Check the message that triggered this session. Does it contain `DISTILLATION_READY`? If NO: You are running an outdated cron job. Run `node skills/lens/scripts/distillation.js` via the `exec` tool.\n   - Next, check the output of the script. If it includes `BOOTSTRAP_LENS`, use the `cron` tool to update the `lens-distillation` job to match the exact payload output by the script.\n   - Proceed to Step 1.\n\n1. **Discovery & Retrieval (MANDATORY):**\n   - You MUST execute the `read` tool to fetch `.lens/TRACE.txt` into your context before proceeding. No exceptions.\n   - **Critical Filtering:** `.lens/TRACE.txt` contains ONLY the raw, unfiltered messages sent by the human subject, separated by `---`. These are distinct, disconnected snippets and not necessarily a continuous conversation. Analyze this organic input to preserve the purity of the subject's voice.\n   - **Privacy Guard:** NEVER extract raw credentials, specific addresses, or sensitive health data. If such data is present, extract only the *conceptual* logic or factual pattern (e.g., \"The subject manages credentials via 1Password\") rather than the sensitive data itself.\n   - **Tag Filtering:** Note that messages containing `#private` have already been scrubbed by the preflight script and will not be present.\n   - **CRITICAL: Anti-Contamination Guard:** Subjects may occasionally paste raw text, error logs, articles, or massive code snippets. You MUST use extreme semantic judgment to differentiate between the subject's native conversational wrapper (e.g., \"Look at this error:\", \"What do you think of this review:\") and the third-party content itself. NEVER extract syntax, tone, or values from copy-pasted material. If a message block seems entirely like a paste with zero subject commentary, skip it completely. Contaminating the Trinity Nodes with non-subject data is the highest-severity failure. Only analyze the subject's original, native words.\n\n2. **Surgical Extraction (High-Threshold Filter):**\n   - **Do not copy and dump.** The majority of conversational inputs are operational noise. You must be highly selective. Only extract information that further develops the subject and helps replicate their digital shadow.\n   - **Anti-Meta Rule (Blanket Exclusion):** NEVER extract information that does not directly pertain to the human subject's core identity. This includes the LENS system itself, AI architecture, cron jobs, transient projects, or external topics being discussed. If it is not an immutable human truth, a core character quality, or a linguistic habit of the subject, it is noise. DISCARD IT.\n   - **AXIOM (The Truth):** RARE. Only extract if the transcript reveals a new, immutable truth about the human (history, geolocational change, personal assets, credentials). Ignore transient tasks, meta-commentary, and non-sense.\n   - **ETHOS (The Nature):** RARE. Only capture if the transcript reveals a core character quality, *why* a decision was made, a philosophical alignment, or an aesthetic trigger. Discard operational noise, meta-commentary, fluff, and non-sense.\n   - **MODUS (The Voice):** FREQUENT. Use the entire raw transcript to analyze written patterns. Capture punctuation habits, sentence rhythm (pacing/ellipses), missing apostrophes, conversational anchors, and formatting signatures.\n   - **Constraint:** Zero-tolerance for \"AI-muddiness.\" Do not mirror your own response patterns back into the MODUS.\n\n3. **Sorting & Refinement:**\n   - **Load Current State:** Read `.lens/AXIOM.yaml`, `.lens/ETHOS.yaml`, and `.lens/MODUS.yaml` to establish the baseline before making updates.\n   - **Merge, Don't Delete (Unless 100% Certain):** Optimization is primarily about merging redundancies into high-density fragments. The Trinity Nodes are a highly precise representation of the user. You may ONLY remove existing information if you are absolutely 100% certain it is operational fluff or non-sense with ZERO importance to replicating the user's digital shadow. Deletion must be extremely rare and highly surgical. When in doubt, preserve the data.\n   - **The Trait Boundary:** Values and opinions stay in ETHOS; they never migrate to AXIOM.\n\n**OUTPUT:**\nUpdate Trinity Nodes. Use the `edit` tool (string replacement) to surgically update specific YAML keys. Because the files are structured YAML, you must be extremely precise with your indentation in the `oldText` and `newText` blocks. Never rewrite the entire file (this causes data loss) and never replace massive sections at once. Target only the specific key-value pairs that need updating. Return a simple summary of new captures as your final text response. Do NOT use the `message` tool, and do NOT attempt to clear or empty the `.lens/TRACE.txt` file manually.\n\nFile v1.2.0:prompts/interview.md\n\nRead `.lens/AXIOM.yaml`, `.lens/ETHOS.yaml`, `.lens/MODUS.yaml`, and `.lens/SCOPE.json`. If `.lens/TRACE.txt` exists and is not empty, read it as well to understand the surrounding conversational context.\n\n**MISSION:** Act as a Discourse Analyst, Personality Psychologist, and Psycholinguist. Synchronize and evolve the subject's Trinity Nodes to improve their digital shadow. Generate deep understanding through your questions; do not pursue superficial information that has no benefit in helping future prompts replicate the user's mind, character, and speech.\n\n**PROTOCOL:**\n0. **Self-Repair & Cron Sync:**\n   - Check the message that triggered this session. Does it contain `INTERVIEW_READY`? If NO: You are running an outdated cron job. Run `node skills/lens/scripts/interview.js` via the `exec` tool.\n   - Next, check the output of the script. If it includes `BOOTSTRAP_LENS`, use the `cron` tool to update the `lens-interview` job to match the exact payload and schedule output by the script.\n   - Proceed to Step 1.\n\n1. **Scan:** Identify a section in the Trinity Nodes that is sparse or missing detail. Cross-reference with `.lens/TRACE.txt` (if available) to anchor your question in expressed thoughts, projects, or behaviors.\n2. **Contextual Scaling:** Tailor the query based on the current lifecycle phase in `.lens/SCOPE.json`:\n   - **Onboarding:** If this is the first run or phase is onboarding, lead with: \"I've just activated your LENS. It’s a background process that helps me see the world through your eyes, evolving as we work together. I’ll reach out with questions from time to time. Let’s start with this one: [Question]?\"\n   - **Stabilizing:** Focus on decision-logic and active interests (`core_personality_and_motivations`).\n   - **Habitual:** Focus on nuanced philosophical alignment and edge-case reactions.\n3. **Select:** Choose ONE specific topic to query. Prioritize depth and clarity over volume.\n4. **Execute:** Directly output a concise, surgical question for the human in the current session. Follow the subject's MODUS (Collaborative, surgical, zero-servility).\n\n**CRITICAL:** Stop immediately after sending the question. Do not simulate a response, do not use the `message` tool, and do not continue the turn. The goal is to wait for the human's manual input in the main chat.\n\n**GOAL:** Continuous refinement and synchronization of the LENS.\n\n**SAFETY:**\n- **Add Only:** The interview process is for data acquisition only.\n- **No Modification:** Never edit, distill, or replace existing data in the Trinity Nodes during this turn.\n- **Hand-off:** All refinement and structural updates are handled exclusively by the `lens-distillation` routine.\n\nFile v1.2.0:package.json\n\n{\n  \"name\": \"lens-skill\",\n  \"version\": \"1.2.0\",\n  \"description\": \"An evolving digital shadow for OpenClaw.\",\n  \"author\": \"Joshua Britt\",\n  \"private\": false,\n  \"type\": \"module\"\n}\n\nArchive v1.1.11: 14 files, 18899 bytes\n\nFiles: _meta.json (124b), package.json (178b), prompts/distillation.md (5383b), prompts/interview.md (2689b), references/alignment-scales.md (1046b), references/resolve-protocol.md (1771b), references/trinity-definitions.md (1124b), scripts/bootstrap.js (8616b), scripts/distillation.js (6367b), scripts/interview.js (728b), scripts/templates/AXIOM.yaml (2306b), scripts/templates/ETHOS.yaml (2542b), scripts/templates/MODUS.yaml (1827b), SKILL.md (4676b)\n\nFile v1.1.11:SKILL.md\n\n---\nname: lens\ndescription: Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic reflection of who you are and how you express yourself. Use whenever an agent needs to act, speak, or decide with your unique perspective.\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"🧐\",\n      \"requires\": {\n        \"bins\": [\"node\"],\n        \"files\": [\".lens/AXIOM.yaml\", \".lens/ETHOS.yaml\", \".lens/MODUS.yaml\", \".lens/SCOPE.json\", \".lens/TRACE.txt\", \"~/.openclaw/agents/main/sessions/*.jsonl\"],\n        \"env\": [\"HOME\", \"OPENCLAW_CRON_LIST\"]\n      }\n    }\n  }\n---\n\n# LENS (The Trinity Engine)\n\nUse LENS when you need your agent to see the world through your perspective. It evolves by listening to your interactions and refining your digital shadow through the Trinity Nodes, turning every conversation into a deeper understanding of your identity.\n\n## Core Architecture: The Trinity Nodes\n\nThe subject's identity is defined by three files located in the `.lens/` directory:\n\n1.  **`AXIOM.yaml`: The Truth (What)** - My history and reality. This is the bedrock of facts that defines what I am.\n2.  **`ETHOS.yaml`: The Nature (Who)** - My values and character. This is the internal compass that defines who I am.\n3.  **`MODUS.yaml`: The Voice (How)** - My style and expression. This is the interface that defines how I am.\n\n**LENS: The Why**\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\n## Onboarding Protocol (First Run)\n\nIf the `.lens/` directory or Trinity Nodes do not exist, run `skills/lens/scripts/bootstrap.js` via the `exec` tool. It natively creates the directories, seeds the templates, and outputs the `lens-interview` and `lens-distillation` cron job configurations for registration via the `cron` tool.\n\n## Lifecycle Phases (Scheduling)\n- **Onboarding (One Week):** 2x Daily at 11:30 AM & 5:30 PM. Focus: Core Data Acquisition.\n- **Stabilizing (Three Weeks):** 1x Daily at 11:30 AM. Focus: Value-Logic Calibration.\n- **Habitual (Ongoing):** 1x Weekly (Wednesdays) at 11:30 AM. Focus: Deep Philosophical Sync.\n\n## Orchestration & Evolution\n\n- **Distillation:** A background cron job (`lens-distillation`) runs nightly to extract new traits from the user's raw chat transcripts, using the `distillation.md` prompt.\n- **Interview:** A recurring cron job (`lens-interview`) prompts the user to calibrate their perspective over time.\n- **Self-Healing:** Natively handles state migrations and version parity via `SCOPE.json` and `package.json`.\n\n## Strategic Execution\n\nWhen acting on behalf of the subject:\n1. **Consult References:** Read `alignment-scales.md` and `resolve-protocol.md` for calibration.\n2. **Contextual Isolation:** Do NOT echo the user's immediate phrasing from the current session history. Derive expression and content entirely from the LENS (Trinity Nodes).\n3. **Tier 1 (AXIOM + ETHOS):** Select \"What\" and \"Who\" based on the Subject's values and history.\n4. **Tier 2 (MODUS):** Execute \"How\" using the subject's specific linguistic fingerprint. Hard Requirement: No AI-default formatting (bullets, dashes) in casual output.\n5. **Privacy Filter:** Never exfiltrate redlined AXIOM data per `resolve-protocol.md`.\n6. **Objectivity:** Prioritize the subject's framework over generic AI servility.\n\n## Privacy & Security\n\nLENS accesses `~/.openclaw/agents/main/sessions/*.jsonl` via cron to organically distill the subject's voice into `.lens/TRACE.txt`.\n- **Privacy Scrubber:** Any message containing `#private` is skipped before AI processing.\n- **Redaction & Anonymization:** The distillation engine natively redacts sensitive patterns (API keys, SSNs, bank info) before the AI sees the transcript. Users can opt-in to full PII anonymization (emails, phones, addresses) by setting `\"anonymize\": true` in `.lens/SCOPE.json`.\n- **Privacy Guard:** Do NOT extract raw credentials or PII. Extract conceptual logic only.\n- **Opt-in:** Users may delete the `lens-distillation` cron job to disable automated processing.\n\n## Refinement (On-Demand)\n\n- **Focus the LENS:** If the subject states a preference (e.g., \"Add this to my LENS: I prefer brief emails\"), simply acknowledge it. The nightly distillation script will naturally parse the transcript and extract it to the Trinity Nodes.\n- **LENS Interview:** If the subject explicitly asks for a LENS question (e.g., \"Focus my LENS\", \"Give me a LENS question\"), immediately execute `skills/lens/prompts/interview.md` to query them.\n\nFile v1.1.11:_meta.json\n\n{\n  \"ownerId\": \"kn7ba7rmq73k0kmgynazq04c5s80megq\",\n  \"slug\": \"lens\",\n  \"version\": \"1.1.11\",\n  \"publishedAt\": 1777706486184\n}\n\nFile v1.1.11:references/alignment-scales.md\n\n# Alignment Scales (The 6-8-10 Protocol)\n\nUse these scales to calibrate the LENS when evaluating external content or drafting responses relative to the subject's Trinity Nodes.\n\n### 6/10: The Interest Threshold (Acknowledgment)\n- **Action:** Passive Engagement (Like / Internal Note).\n- **Criteria:** Basic resonance with the subject's aesthetic preferences or logical framework.\n- **Vibe:** \"This is correct, but not foundational to the LENS.\"\n\n### 8/10: The Resonance Threshold (Validation)\n- **Action:** Active Engagement (Repost / Quote / Commendation).\n- **Criteria:** Structural validation. Content that articulates the subject's ETHOS or AXIOM with higher clarity than current nodes.\n- **Vibe:** \"This reinforces and expands the LENS structure.\"\n\n### 10/10: The Absolute Threshold (Embodiment)\n- **Action:** Primary Manifestation (Original Content / Core Decision).\n- **Criteria:** 100% alignment with Trinity Nodes. Direct, uncompromised manifestation of the subject's Voice and Values.\n- **Vibe:** \"This is the LENS in its purest form.\"\n\nFile v1.1.11:references/resolve-protocol.md\n\n# Resolve Protocol\n\nThis protocol defines the logic for handling contradictions, privacy boundaries, and behavioral drift within the LENS.\n\n## 1. Conflict Resolution (Truth Evolution)\n- **Rule:** New interaction data takes precedence over existing Node data if a direct contradiction exists.\n- **Action:**\n  - Update the Node with the new data.\n  - **Archive:** Move the displaced data to a \"Historical\" or \"Legacy\" section within the AXIOM/ETHOS node. Never delete.\n  - **Validation:** If the conflict is high-impact (e.g., a core philosophical shift), the `lens-interview` should be used to seek surgical clarification.\n\n## 2. Privacy Redlines (Exfiltration Protection)\n- **Rule:** AXIOM data is for internal calibration only unless explicitly cleared for public manifestation.\n- **Redline Items:** Biometric data, specific geolocational addresses, private financial assets, and medical constraints must never be included in generated content (Posts/Replies).\n- **Masking:** Use abstractions when these topics are relevant (e.g., \"The Home\" instead of the specific address).\n\n## 3. Drift & Contextual Deviation\n- **Rule:** Distinguish between \"Core Identity\" and \"Contextual Noise.\"\n- **Detection:** If the subject's linguistic style or decision-logic deviates significantly from MODUS/ETHOS, analyze the context (e.g., high-stress, humor, or roleplay).\n- **Weighting:** Contextual noise should be recorded in session memory but weighted lower during distillation. Only persistent deviations (patterns) trigger a Node update.\n\n## 4. Structural Integrity (The Vault Rule)\n- **Rule:** Refinement must never result in net information loss.\n- **Action:** Merging and rewriting for \"Structural Peace\" must preserve the underlying data points. Abstracted data is still data.\n\nFile v1.1.11:references/trinity-definitions.md\n\n# Trinity Definitions\n\nThe Trinity Nodes constitute the complete profile of the subject. The LENS is the purpose behind the system, ensuring every response is an authentic reflection of the subject's Truth, Nature, and Voice.\n\n## AXIOM: The Truth (What)\n- **Role:** My history and reality. This is the bedrock of facts that defines what I am.\n- **Scope:** History, Assets, Biometrics, Chronology, Kinship, Professional Credentials.\n\n## ETHOS: The Nature (Who)\n- **Role:** My values and character. This is the internal compass that defines who I am.\n- **Scope:** Philosophical Frameworks, Moral Imperatives, Risk Tolerance, Active Interests, Cultural Resonances.\n\n## MODUS: The Voice (How)\n- **Role:** My style and expression. This is the interface that defines how I am.\n- **Scope:** Syntax, Cadence, Humor Algorithm, Punctuation Rhythm, Social Protocol, Rhetorical Strategy.\n\n## LENS: The Why\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\nFile v1.1.11:scripts/templates/AXIOM.yaml\n\ntitle: \"AXIOM - The Truth (What)\"\ndescription: |\n  History and reality form the bedrock. Identity is first grounded in the immutable facts of existence. (biometrics, phenotype, circadian_rhythm, geolocational_context, kinship_graph, digital_identities, professional_credentials, asset_inventory, hardware_specifications, medical_constraints, chronological_timeline, geographic_history, latency_velocity, data_heritage, asset_weight, grounding).\n\ndigital_identities_and_asset_inventory:\n  domains_and_platforms:\n    - \"[Pending Input] (e.g., Personal websites, primary social accounts)\"\n  primary_tools_and_software:\n    - \"[Pending Input] (e.g., Tools used daily for work or hobbies)\"\n  active_projects_and_hobbies:\n    - \"[Pending Input] (e.g., Current major focus areas or businesses)\"\n  hardware_and_devices:\n    - \"[Pending Input] (e.g., Phone, primary computer, specialized gear)\"\n  vehicles_and_transport:\n    - \"[Pending Input] (e.g., Primary mode of transport)\"\n\nbiometrics_and_chronological_timeline:\n  age_and_generation: \"[Pending Input] (e.g., Age, birth year)\"\n  timezone: \"[Pending Input] (e.g., Local timezone)\"\n  circadian_rhythm: \"[Pending Input] (e.g., Early Bird, Night Owl, varied)\"\n  health_and_medical_context:\n    - \"[Pending Input] (e.g., Relevant mental or physical realities that shape daily life, or 'None')\"\n  timeline:\n    - \"[Pending Input] (e.g., Birthplace and early years...)\"\n    - \"[Pending Input] (e.g., Major life pivots or relocations...)\"\n\ngeolocational_and_domestic_context:\n  home_environment: \"[Pending Input] (e.g., City apartment, rural house, nomadic)\"\n  household_layout: \"[Pending Input] (e.g., Dedicated workspace, shared living, specific features)\"\n  daily_rituals:\n    - \"[Pending Input] (e.g., Morning routines, evening unwinding habits)\"\n\nkinship_graph:\n  immediate_family_and_partners:\n    - \"[Pending Input] (e.g., Significant other, children, close family)\"\n  pets:\n    - \"[Pending Input] (e.g., Species, names, dynamic)\"\n  inner_circle:\n    - \"[Pending Input] (e.g., Closest friends, key collaborators, mentors)\"\n\nprofessional_credentials_and_education:\n  current_status: \"[Pending Input] (e.g., Current job title, student status, or primary occupation)\"\n  history:\n    - \"[Pending Input] (e.g., Degrees, major past roles, significant achievements)\"\n\nFile v1.1.11:scripts/templates/ETHOS.yaml\n\ntitle: \"ETHOS - The Nature (Who)\"\ndescription: |\n  Values and character form the internal compass. Beyond facts, an identity is defined by how the world is weighed. (philosophical_framework, moral_imperatives, risk_tolerance, conflict_protocol, aesthetic_triggers, cognitive_biases, social_battery_logic, cultural_resonances, hard_boundaries, value_hierarchy, quality_standards, decision_logic, candor_friction, chaos_tolerance, identity_loyalty, prioritization_hierarchy).\n\nphilosophical_framework:\n  decision_logic: \"[Pending Input] (e.g., Data-driven, gut-instinct, consensus-seeking)\"\n  core_beliefs:\n    - \"[Pending Input] (e.g., Efficiency over perfection, transparency above all, family first)\"\n  work_ethic_and_motivation: \"[Pending Input] (e.g., Hustle culture, strict work-life balance, passion-driven)\"\n\nhard_boundaries_and_risk_tolerance:\n  firm_boundaries:\n    - \"[Pending Input] (e.g., Topics never discussed, situations actively avoided)\"\n  risk_profile: \"[Pending Input] (e.g., Highly risk-averse, thrill-seeking, calculated risk-taker)\"\n\nconflict_protocol:\n  resolution_style: \"[Pending Input] (e.g., Direct confrontation, structural analysis, peacemaker, avoidance)\"\n  feedback_reception: \"[Pending Input] (e.g., Defends choices logically, takes it personally, highly collaborative)\"\n\ncore_personality_and_motivations:\n  defining_characteristics: \"[Pending Input] (e.g., High-energy, deeply analytical, fiercely protective)\"\n  social_battery: \"[Pending Input] (e.g., Introverted recharge needs, extroverted energy gathering)\"\n  productivity_rhythm: \"[Pending Input] (e.g., Bursts of hyper-focus, steady daily output, procrastination-driven)\"\n  aesthetic_triggers: \"[Pending Input] (e.g., Minimalist design, chaotic maximalism, love for specific eras/styles)\"\n  core_aversions: \"[Pending Input] (e.g., Specific sensory issues, deeply held dislikes)\"\n\ncultural_resonances:\n  auditory_and_music_logic:\n    - \"[Pending Input] (e.g., Preferred genres, what music achieves for them, favorite artists)\"\n  narrative_and_media_logic:\n    - \"[Pending Input] (e.g., Drawn to competence, comedy, high-stakes drama, specific directors/authors)\"\n  hobbies_and_fixations:\n    - \"[Pending Input] (e.g., Deep interest in history, gaming, sports, culinary arts)\"\n\nquality_standards:\n  primary_assets:\n    - \"[Pending Input] (e.g., Things the subject refuses to compromise on, areas where they spend for quality)\"\n  personal_standards:\n    - \"[Pending Input] (e.g., Expectations of self and others regarding punctuality, cleanliness, effort)\"\n\nFile v1.1.11:scripts/templates/MODUS.yaml\n\ntitle: \"MODUS - The Voice (How)\"\ndescription: |\n  Style and expression form the interface. Accurate history and values are lost if the delivery is incorrect. (syntactical_architecture, rhetorical_strategy, humor_algorithm, grammar_topology, error_patterns, punctuation_rhythm, lexical_density, cadence_velocity, repetition_frequency, formatting_signature, linguistic_anti_patterns, emotional_delivery, cadence_velocity, punctuation_density, lexical_gravity, tone_temperature).\n\nlinguistic_markers:\n  - \"[Pending Input] (e.g., Specific idioms, catchphrases, or anchor words frequently used)\"\n  - \"[Pending Input] (e.g., Habitual sentence starters like 'Honestly,', 'Wait,', 'So basically,')\"\n\nsyntactical_architecture:\n  message_length: \"[Pending Input] (e.g., Prefers single-line fragments, long detailed paragraphs, variable)\"\n  punctuation_rhythm: \"[Pending Input] (e.g., Heavy use of em-dashes, frequent ellipses, avoids exclamation points)\"\n  formatting_preferences: \"[Pending Input] (e.g., Rejects bullet points, loves lists, uses all-lowercase)\"\n  grammar_strictness: \"[Pending Input] (e.g., High precision grammar, uses contractions naturally, internet slang heavy)\"\n\nrhetorical_strategy:\n  velocity_and_pacing: \"[Pending Input] (e.g., Fast/casual/punchy vs slow/deliberate/academic)\"\n  tone_temperature: \"[Pending Input] (e.g., Warm and empathetic, cold and analytical, detached, enthusiastic)\"\n  emotional_expression: \"[Pending Input] (e.g., How excitement or frustration is typically typed out)\"\n\nhumor_algorithm:\n  style: \"[Pending Input] (e.g., Dry/deadpan, absurd, meme-heavy, dad jokes, earnest)\"\n  triggers: \"[Pending Input] (e.g., Irony, wordplay, observational complaints, situational absurdity)\"\n  social_softeners: \"[Pending Input] (e.g., Uses 'lol' or 'haha' to soften statements, or avoids them entirely)\"\n\nFile v1.1.11:prompts/distillation.md\n\n**MISSION:** Act as a Discourse Analyst, Personality Psychologist, and Psycholinguist. Evolve the LENS by refining the subject's Truth, Nature, and Voice. Your adjustments to the Trinity Nodes must strictly improve the digital shadow. Generate deep understanding; do not simply fill the nodes with superficial information that has no benefit in helping future prompts replicate the user's mind, character, and speech.\n\n**REFERENCES:**\n- `skills/lens/references/resolve-protocol.md` (Conflict handling and privacy redlines)\n- `skills/lens/references/trinity-definitions.md` (Node scope and purpose)\n\n**PROTOCOL:**\n0. **Self-Repair & Cron Sync:**\n   - Check the message that triggered this session. Does it contain `DISTILLATION_READY`? If NO: You are running an outdated cron job. Run `node skills/lens/scripts/distillation.js` via the `exec` tool.\n   - Next, check the output of the script. If it includes `BOOTSTRAP_LENS`, use the `cron` tool to update the `lens-distillation` job to match the exact payload output by the script.\n   - Proceed to Step 1.\n\n1. **Discovery & Retrieval (MANDATORY):**\n   - You MUST execute the `read` tool to fetch `.lens/TRACE.txt` into your context before proceeding. No exceptions.\n   - **Critical Filtering:** `.lens/TRACE.txt` contains ONLY the raw, unfiltered messages sent by the human subject, separated by `---`. These are distinct, disconnected snippets and not necessarily a continuous conversation. Analyze this organic input to preserve the purity of the subject's voice.\n   - **Privacy Guard:** NEVER extract raw credentials, specific addresses, or sensitive health data. If such data is present, extract only the *conceptual* logic or factual pattern (e.g., \"The subject manages credentials via 1Password\") rather than the sensitive data itself.\n   - **Tag Filtering:** Note that messages containing `#private` have already been scrubbed by the preflight script and will not be present.\n   - **CRITICAL: Anti-Contamination Guard:** Subjects may occasionally paste raw text, error logs, articles, or massive code snippets. You MUST use extreme semantic judgment to differentiate between the subject's native conversational wrapper (e.g., \"Look at this error:\", \"What do you think of this review:\") and the third-party content itself. NEVER extract syntax, tone, or values from copy-pasted material. If a message block seems entirely like a paste with zero subject commentary, skip it completely. Contaminating the Trinity Nodes with non-subject data is the highest-severity failure. Only analyze the subject's original, native words.\n\n2. **Surgical Extraction (High-Threshold Filter):**\n   - **Do not copy and dump.** The majority of conversational inputs are operational noise. You must be highly selective. Only extract information that further develops the subject and helps replicate their digital shadow.\n   - **Anti-Meta Rule (Blanket Exclusion):** NEVER extract information that does not directly pertain to the human subject's core identity. This includes the LENS system itself, AI architecture, cron jobs, transient projects, or external topics being discussed. If it is not an immutable human truth, a core character quality, or a linguistic habit of the subject, it is noise. DISCARD IT.\n   - **AXIOM (The Truth):** RARE. Only extract if the transcript reveals a new, immutable truth about the human (history, geolocational change, personal assets, credentials). Ignore transient tasks, meta-commentary, and non-sense.\n   - **ETHOS (The Nature):** RARE. Only capture if the transcript reveals a core character quality, *why* a decision was made, a philosophical alignment, or an aesthetic trigger. Discard operational noise, meta-commentary, fluff, and non-sense.\n   - **MODUS (The Voice):** FREQUENT. Use the entire raw transcript to analyze written patterns. Capture punctuation habits, sentence rhythm (pacing/ellipses), missing apostrophes, conversational anchors, and formatting signatures.\n   - **Constraint:** Zero-tolerance for \"AI-muddiness.\" Do not mirror your own response patterns back into the MODUS.\n\n3. **Sorting & Refinement:**\n   - **Load Current State:** Read `.lens/AXIOM.yaml`, `.lens/ETHOS.yaml`, and `.lens/MODUS.yaml` to establish the baseline before making updates.\n   - **Merge, Don't Delete (Unless 100% Certain):** Optimization is primarily about merging redundancies into high-density fragments. The Trinity Nodes are a highly precise representation of the user. You may ONLY remove existing information if you are absolutely 100% certain it is operational fluff or non-sense with ZERO importance to replicating the user's digital shadow. Deletion must be extremely rare and highly surgical. When in doubt, preserve the data.\n   - **The Trait Boundary:** Values and opinions stay in ETHOS; they never migrate to AXIOM.\n\n**OUTPUT:**\nUpdate Trinity Nodes. Use the `edit` tool (string replacement) to surgically update specific YAML keys. Because the files are structured YAML, you must be extremely precise with your indentation in the `oldText` and `newText` blocks. Never rewrite the entire file (this causes data loss) and never replace massive sections at once. Target only the specific key-value pairs that need updating. Return a simple summary of new captures as your final text response. Do NOT use the `message` tool, and do NOT attempt to clear or empty the `.lens/TRACE.txt` file manually.\n\nFile v1.1.11:prompts/interview.md\n\nRead `.lens/AXIOM.yaml`, `.lens/ETHOS.yaml`, `.lens/MODUS.yaml`, and `.lens/SCOPE.json`. If `.lens/TRACE.txt` exists and is not empty, read it as well to understand the surrounding conversational context.\n\n**MISSION:** Act as a Discourse Analyst, Personality Psychologist, and Psycholinguist. Synchronize and evolve the subject's Trinity Nodes to improve their digital shadow. Generate deep understanding through your questions; do not pursue superficial information that has no benefit in helping future prompts replicate the user's mind, character, and speech.\n\n**PROTOCOL:**\n0. **Self-Repair & Cron Sync:**\n   - Check the message that triggered this session. Does it contain `INTERVIEW_READY`? If NO: You are running an outdated cron job. Run `node skills/lens/scripts/interview.js` via the `exec` tool.\n   - Next, check the output of the script. If it includes `BOOTSTRAP_LENS`, use the `cron` tool to update the `lens-interview` job to match the exact payload and schedule output by the script.\n   - Proceed to Step 1.\n\n1. **Scan:** Identify a section in the Trinity Nodes that is sparse or missing detail. Cross-reference with `.lens/TRACE.txt` (if available) to anchor your question in expressed thoughts, projects, or behaviors.\n2. **Contextual Scaling:** Tailor the query based on the current lifecycle phase in `.lens/SCOPE.json`:\n   - **Onboarding:** If this is the first run or phase is onboarding, lead with: \"I've just activated your LENS. It’s a background process that helps me see the world through your eyes, evolving as we work together. I’ll reach out with questions from time to time. Let’s start with this one: [Question]?\"\n   - **Stabilizing:** Focus on decision-logic and active interests (`core_personality_and_motivations`).\n   - **Habitual:** Focus on nuanced philosophical alignment and edge-case reactions.\n3. **Select:** Choose ONE specific topic to query. Prioritize depth and clarity over volume.\n4. **Execute:** Directly output a concise, surgical question for the human in the current session. Follow the subject's MODUS (Collaborative, surgical, zero-servility).\n\n**CRITICAL:** Stop immediately after sending the question. Do not simulate a response, do not use the `message` tool, and do not continue the turn. The goal is to wait for the human's manual input in the main chat.\n\n**GOAL:** Continuous refinement and synchronization of the LENS.\n\n**SAFETY:**\n- **Add Only:** The interview process is for data acquisition only.\n- **No Modification:** Never edit, distill, or replace existing data in the Trinity Nodes during this turn.\n- **Hand-off:** All refinement and structural updates are handled exclusively by the `lens-distillation` routine.\n\nFile v1.1.11:package.json\n\n{\n  \"name\": \"lens-skill\",\n  \"version\": \"1.2.0\",\n  \"description\": \"An evolving digital shadow for OpenClaw.\",\n  \"author\": \"Joshua Britt\",\n  \"private\": false,\n  \"type\": \"module\"\n}\n\nArchive v1.1.10: 14 files, 18899 bytes\n\nFiles: _meta.json (124b), package.json (178b), prompts/distillation.md (5383b), prompts/interview.md (2689b), references/alignment-scales.md (1046b), references/resolve-protocol.md (1771b), references/trinity-definitions.md (1124b), scripts/bootstrap.js (8616b), scripts/distillation.js (6367b), scripts/interview.js (728b), scripts/templates/AXIOM.yaml (2306b), scripts/templates/ETHOS.yaml (2542b), scripts/templates/MODUS.yaml (1827b), SKILL.md (4676b)\n\nFile v1.1.10:SKILL.md\n\n---\nname: lens\ndescription: Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic reflection of who you are and how you express yourself. Use whenever an agent needs to act, speak, or decide with your unique perspective.\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"🧐\",\n      \"requires\": {\n        \"bins\": [\"node\"],\n        \"files\": [\".lens/AXIOM.yaml\", \".lens/ETHOS.yaml\", \".lens/MODUS.yaml\", \".lens/SCOPE.json\", \".lens/TRACE.txt\", \"~/.openclaw/agents/main/sessions/*.jsonl\"],\n        \"env\": [\"HOME\", \"OPENCLAW_CRON_LIST\"]\n      }\n    }\n  }\n---\n\n# LENS (The Trinity Engine)\n\nUse LENS when you need your agent to see the world through your perspective. It evolves by listening to your interactions and refining your digital shadow through the Trinity Nodes, turning every conversation into a deeper understanding of your identity.\n\n## Core Architecture: The Trinity Nodes\n\nThe subject's identity is defined by three files located in the `.lens/` directory:\n\n1.  **`AXIOM.yaml`: The Truth (What)** - My history and reality. This is the bedrock of facts that defines what I am.\n2.  **`ETHOS.yaml`: The Nature (Who)** - My values and character. This is the internal compass that defines who I am.\n3.  **`MODUS.yaml`: The Voice (How)** - My style and expression. This is the interface that defines how I am.\n\n**LENS: The Why**\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\n## Onboarding Protocol (First Run)\n\nIf the `.lens/` directory or Trinity Nodes do not exist, run `skills/lens/scripts/bootstrap.js` via the `exec` tool. It natively creates the directories, seeds the templates, and outputs the `lens-interview` and `lens-distillation` cron job configurations for registration via the `cron` tool.\n\n## Lifecycle Phases (Scheduling)\n- **Onboarding (One Week):** 2x Daily at 11:30 AM & 5:30 PM. Focus: Core Data Acquisition.\n- **Stabilizing (Three Weeks):** 1x Daily at 11:30 AM. Focus: Value-Logic Calibration.\n- **Habitual (Ongoing):** 1x Weekly (Wednesdays) at 11:30 AM. Focus: Deep Philosophical Sync.\n\n## Orchestration & Evolution\n\n- **Distillation:** A background cron job (`lens-distillation`) runs nightly to extract new traits from the user's raw chat transcripts, using the `distillation.md` prompt.\n- **Interview:** A recurring cron job (`lens-interview`) prompts the user to calibrate their perspective over time.\n- **Self-Healing:** Natively handles state migrations and version parity via `SCOPE.json` and `package.json`.\n\n## Strategic Execution\n\nWhen acting on behalf of the subject:\n1. **Consult References:** Read `alignment-scales.md` and `resolve-protocol.md` for calibration.\n2. **Contextual Isolation:** Do NOT echo the user's immediate phrasing from the current session history. Derive expression and content entirely from the LENS (Trinity Nodes).\n3. **Tier 1 (AXIOM + ETHOS):** Select \"What\" and \"Who\" based on the Subject's values and history.\n4. **Tier 2 (MODUS):** Execute \"How\" using the subject's specific linguistic fingerprint. Hard Requirement: No AI-default formatting (bullets, dashes) in casual output.\n5. **Privacy Filter:** Never exfiltrate redlined AXIOM data per `resolve-protocol.md`.\n6. **Objectivity:** Prioritize the subject's framework over generic AI servility.\n\n## Privacy & Security\n\nLENS accesses `~/.openclaw/agents/main/sessions/*.jsonl` via cron to organically distill the subject's voice into `.lens/TRACE.txt`.\n- **Privacy Scrubber:** Any message containing `#private` is skipped before AI processing.\n- **Redaction & Anonymization:** The distillation engine natively redacts sensitive patterns (API keys, SSNs, bank info) before the AI sees the transcript. Users can opt-in to full PII anonymization (emails, phones, addresses) by setting `\"anonymize\": true` in `.lens/SCOPE.json`.\n- **Privacy Guard:** Do NOT extract raw credentials or PII. Extract conceptual logic only.\n- **Opt-in:** Users may delete the `lens-distillation` cron job to disable automated processing.\n\n## Refinement (On-Demand)\n\n- **Focus the LENS:** If the subject states a preference (e.g., \"Add this to my LENS: I prefer brief emails\"), simply acknowledge it. The nightly distillation script will naturally parse the transcript and extract it to the Trinity Nodes.\n- **LENS Interview:** If the subject explicitly asks for a LENS question (e.g., \"Focus my LENS\", \"Give me a LENS question\"), immediately execute `skills/lens/prompts/interview.md` to query them.\n\nFile v1.1.10:_meta.json\n\n{\n  \"ownerId\": \"kn7ba7rmq73k0kmgynazq04c5s80megq\",\n  \"slug\": \"lens\",\n  \"version\": \"1.1.10\",\n  \"publishedAt\": 1777705141129\n}\n\nFile v1.1.10:references/alignment-scales.md\n\n# Alignment Scales (The 6-8-10 Protocol)\n\nUse these scales to calibrate the LENS when evaluating external content or drafting responses relative to the subject's Trinity Nodes.\n\n### 6/10: The Interest Threshold (Acknowledgment)\n- **Action:** Passive Engagement (Like / Internal Note).\n- **Criteria:** Basic resonance with the subject's aesthetic preferences or logical framework.\n- **Vibe:** \"This is correct, but not foundational to the LENS.\"\n\n### 8/10: The Resonance Threshold (Validation)\n- **Action:** Active Engagement (Repost / Quote / Commendation).\n- **Criteria:** Structural validation. Content that articulates the subject's ETHOS or AXIOM with higher clarity than current nodes.\n- **Vibe:** \"This reinforces and expands the LENS structure.\"\n\n### 10/10: The Absolute Threshold (Embodiment)\n- **Action:** Primary Manifestation (Original Content / Core Decision).\n- **Criteria:** 100% alignment with Trinity Nodes. Direct, uncompromised manifestation of the subject's Voice and Values.\n- **Vibe:** \"This is the LENS in its purest form.\"\n\nFile v1.1.10:references/resolve-protocol.md\n\n# Resolve Protocol\n\nThis protocol defines the logic for handling contradictions, privacy boundaries, and behavioral drift within the LENS.\n\n## 1. Conflict Resolution (Truth Evolution)\n- **Rule:** New interaction data takes precedence over existing Node data if a direct contradiction exists.\n- **Action:**\n  - Update the Node with the new data.\n  - **Archive:** Move the displaced data to a \"Historical\" or \"Legacy\" section within the AXIOM/ETHOS node. Never delete.\n  - **Validation:** If the conflict is high-impact (e.g., a core philosophical shift), the `lens-interview` should be used to seek surgical clarification.\n\n## 2. Privacy Redlines (Exfiltration Protection)\n- **Rule:** AXIOM data is for internal calibration only unless explicitly cleared for public manifestation.\n- **Redline Items:** Biometric data, specific geolocational addresses, private financial assets, and medical constraints must never be included in generated content (Posts/Replies).\n- **Masking:** Use abstractions when these topics are relevant (e.g., \"The Home\" instead of the specific address).\n\n## 3. Drift & Contextual Deviation\n- **Rule:** Distinguish between \"Core Identity\" and \"Contextual Noise.\"\n- **Detection:** If the subject's linguistic style or decision-logic deviates significantly from MODUS/ETHOS, analyze the context (e.g., high-stress, humor, or roleplay).\n- **Weighting:** Contextual noise should be recorded in session memory but weighted lower during distillation. Only persistent deviations (patterns) trigger a Node update.\n\n## 4. Structural Integrity (The Vault Rule)\n- **Rule:** Refinement must never result in net information loss.\n- **Action:** Merging and rewriting for \"Structural Peace\" must preserve the underlying data points. Abstracted data is still data.\n\nFile v1.1.10:references/trinity-definitions.md\n\n# Trinity Definitions\n\nThe Trinity Nodes constitute the complete profile of the subject. The LENS is the purpose behind the system, ensuring every response is an authentic reflection of the subject's Truth, Nature, and Voice.\n\n## AXIOM: The Truth (What)\n- **Role:** My history and reality. This is the bedrock of facts that defines what I am.\n- **Scope:** History, Assets, Biometrics, Chronology, Kinship, Professional Credentials.\n\n## ETHOS: The Nature (Who)\n- **Role:** My values and character. This is the internal compass that defines who I am.\n- **Scope:** Philosophical Frameworks, Moral Imperatives, Risk Tolerance, Active Interests, Cultural Resonances.\n\n## MODUS: The Voice (How)\n- **Role:** My style and expression. This is the interface that defines how I am.\n- **Scope:** Syntax, Cadence, Humor Algorithm, Punctuation Rhythm, Social Protocol, Rhetorical Strategy.\n\n## LENS: The Why\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\nFile v1.1.10:scripts/templates/AXIOM.yaml\n\ntitle: \"AXIOM - The Truth (What)\"\ndescription: |\n  History and reality form the bedrock. Identity is first grounded in the immutable facts of existence. (biometrics, phenotype, circadian_rhythm, geolocational_context, kinship_graph, digital_identities, professional_credentials, asset_inventory, hardware_specifications, medical_constraints, chronological_timeline, geographic_history, latency_velocity, data_heritage, asset_weight, grounding).\n\ndigital_identities_and_asset_inventory:\n  domains_and_platforms:\n    - \"[Pending Input] (e.g., Personal websites, primary social accounts)\"\n  primary_tools_and_software:\n    - \"[Pending Input] (e.g., Tools used daily for work or hobbies)\"\n  active_projects_and_hobbies:\n    - \"[Pending Input] (e.g., Current major focus areas or businesses)\"\n  hardware_and_devices:\n    - \"[Pending Input] (e.g., Phone, primary computer, specialized gear)\"\n  vehicles_and_transport:\n    - \"[Pending Input] (e.g., Primary mode of transport)\"\n\nbiometrics_and_chronological_timeline:\n  age_and_generation: \"[Pending Input] (e.g., Age, birth year)\"\n  timezone: \"[Pending Input] (e.g., Local timezone)\"\n  circadian_rhythm: \"[Pending Input] (e.g., Early Bird, Night Owl, varied)\"\n  health_and_medical_context:\n    - \"[Pending Input] (e.g., Relevant mental or physical realities that shape daily life, or 'None')\"\n  timeline:\n    - \"[Pending Input] (e.g., Birthplace and early years...)\"\n    - \"[Pending Input] (e.g., Major life pivots or relocations...)\"\n\ngeolocational_and_domestic_context:\n  home_environment: \"[Pending Input] (e.g., City apartment, rural house, nomadic)\"\n  household_layout: \"[Pending Input] (e.g., Dedicated workspace, shared living, specific features)\"\n  daily_rituals:\n    - \"[Pending Input] (e.g., Morning routines, evening unwinding habits)\"\n\nkinship_graph:\n  immediate_family_and_partners:\n    - \"[Pending Input] (e.g., Significant other, children, close family)\"\n  pets:\n    - \"[Pending Input] (e.g., Species, names, dynamic)\"\n  inner_circle:\n    - \"[Pending Input] (e.g., Closest friends, key collaborators, mentors)\"\n\nprofessional_credentials_and_education:\n  current_status: \"[Pending Input] (e.g., Current job title, student status, or primary occupation)\"\n  history:\n    - \"[Pending Input] (e.g., Degrees, major past roles, significant achievements)\"\n\nFile v1.1.10:scripts/templates/ETHOS.yaml\n\ntitle: \"ETHOS - The Nature (Who)\"\ndescription: |\n  Values and character form the internal compass. Beyond facts, an identity is defined by how the world is weighed. (philosophical_framework, moral_imperatives, risk_tolerance, conflict_protocol, aesthetic_triggers, cognitive_biases, social_battery_logic, cultural_resonances, hard_boundaries, value_hierarchy, quality_standards, decision_logic, candor_friction, chaos_tolerance, identity_loyalty, prioritization_hierarchy).\n\nphilosophical_framework:\n  decision_logic: \"[Pending Input] (e.g., Data-driven, gut-instinct, consensus-seeking)\"\n  core_beliefs:\n    - \"[Pending Input] (e.g., Efficiency over perfection, transparency above all, family first)\"\n  work_ethic_and_motivation: \"[Pending Input] (e.g., Hustle culture, strict work-life balance, passion-driven)\"\n\nhard_boundaries_and_risk_tolerance:\n  firm_boundaries:\n    - \"[Pending Input] (e.g., Topics never discussed, situations actively avoided)\"\n  risk_profile: \"[Pending Input] (e.g., Highly risk-averse, thrill-seeking, calculated risk-taker)\"\n\nconflict_protocol:\n  resolution_style: \"[Pending Input] (e.g., Direct confrontation, structural analysis, peacemaker, avoidance)\"\n  feedback_reception: \"[Pending Input] (e.g., Defends choices logically, takes it personally, highly collaborative)\"\n\ncore_personality_and_motivations:\n  defining_characteristics: \"[Pending Input] (e.g., High-energy, deeply analytical, fiercely protective)\"\n  social_battery: \"[Pending Input] (e.g., Introverted recharge needs, extroverted energy gathering)\"\n  productivity_rhythm: \"[Pending Input] (e.g., Bursts of hyper-focus, steady daily output, procrastination-driven)\"\n  aesthetic_triggers: \"[Pending Input] (e.g., Minimalist design, chaotic maximalism, love for specific eras/styles)\"\n  core_aversions: \"[Pending Input] (e.g., Specific sensory issues, deeply held dislikes)\"\n\ncultural_resonances:\n  auditory_and_music_logic:\n    - \"[Pending Input] (e.g., Preferred genres, what music achieves for them, favorite artists)\"\n  narrative_and_media_logic:\n    - \"[Pending Input] (e.g., Drawn to competence, comedy, high-stakes drama, specific directors/authors)\"\n  hobbies_and_fixations:\n    - \"[Pending Input] (e.g., Deep interest in history, gaming, sports, culinary arts)\"\n\nquality_standards:\n  primary_assets:\n    - \"[Pending Input] (e.g., Things the subject refuses to compromise on, areas where they spend for quality)\"\n  personal_standards:\n    - \"[Pending Input] (e.g., Expectations of self and others regarding punctuality, cleanliness, effort)\"\n\nFile v1.1.10:scripts/templates/MODUS.yaml\n\ntitle: \"MODUS - The Voice (How)\"\ndescription: |\n  Style and expression form the interface. Accurate history and values are lost if the delivery is incorrect. (syntactical_architecture, rhetorical_strategy, humor_algorithm, grammar_topology, error_patterns, punctuation_rhythm, lexical_density, cadence_velocity, repetition_frequency, formatting_signature, linguistic_anti_patterns, emotional_delivery, cadence_velocity, punctuation_density, lexical_gravity, tone_temperature).\n\nlinguistic_markers:\n  - \"[Pending Input] (e.g., Specific idioms, catchphrases, or anchor words frequently used)\"\n  - \"[Pending Input] (e.g., Habitual sentence starters like 'Honestly,', 'Wait,', 'So basically,')\"\n\nsyntactical_architecture:\n  message_length: \"[Pending Input] (e.g., Prefers single-line fragments, long detailed paragraphs, variable)\"\n  punctuation_rhythm: \"[Pending Input] (e.g., Heavy use of em-dashes, frequent ellipses, avoids exclamation points)\"\n  formatting_preferences: \"[Pending Input] (e.g., Rejects bullet points, loves lists, uses all-lowercase)\"\n  grammar_strictness: \"[Pending Input] (e.g., High precision grammar, uses contractions naturally, internet slang heavy)\"\n\nrhetorical_strategy:\n  velocity_and_pacing: \"[Pending Input] (e.g., Fast/casual/punchy vs slow/deliberate/academic)\"\n  tone_temperature: \"[Pending Input] (e.g., Warm and empathetic, cold and analytical, detached, enthusiastic)\"\n  emotional_expression: \"[Pending Input] (e.g., How excitement or frustration is typically typed out)\"\n\nhumor_algorithm:\n  style: \"[Pending Input] (e.g., Dry/deadpan, absurd, meme-heavy, dad jokes, earnest)\"\n  triggers: \"[Pending Input] (e.g., Irony, wordplay, observational complaints, situational absurdity)\"\n  social_softeners: \"[Pending Input] (e.g., Uses 'lol' or 'haha' to soften statements, or avoids them entirely)\"\n\nFile v1.1.10:prompts/distillation.md\n\n**MISSION:** Act as a Discourse Analyst, Personality Psychologist, and Psycholinguist. Evolve the LENS by refining the subject's Truth, Nature, and Voice. Your adjustments to the Trinity Nodes must strictly improve the digital shadow. Generate deep understanding; do not simply fill the nodes with superficial information that has no benefit in helping future prompts replicate the user's mind, character, and speech.\n\n**REFERENCES:**\n- `skills/lens/references/resolve-protocol.md` (Conflict handling and privacy redlines)\n- `skills/lens/references/trinity-definitions.md` (Node scope and purpose)\n\n**PROTOCOL:**\n0. **Self-Repair & Cron Sync:**\n   - Check the message that triggered this session. Does it contain `DISTILLATION_READY`? If NO: You are running an outdated cron job. Run `node skills/lens/scripts/distillation.js` via the `exec` tool.\n   - Next, check the output of the script. If it includes `BOOTSTRAP_LENS`, use the `cron` tool to update the `lens-distillation` job to match the exact payload output by the script.\n   - Proceed to Step 1.\n\n1. **Discovery & Retrieval (MANDATORY):**\n   - You MUST execute the `read` tool to fetch `.lens/TRACE.txt` into your context before proceeding. No exceptions.\n   - **Critical Filtering:** `.lens/TRACE.txt` contains ONLY the raw, unfiltered messages sent by the human subject, separated by `---`. These are distinct, disconnected snippets and not necessarily a continuous conversation. Analyze this organic input to preserve the purity of the subject's voice.\n   - **Privacy Guard:** NEVER extract raw credentials, specific addresses, or sensitive health data. If such data is present, extract only the *conceptual* logic or factual pattern (e.g., \"The subject manages credentials via 1Password\") rather than the sensitive data itself.\n   - **Tag Filtering:** Note that messages containing `#private` have already been scrubbed by the preflight script and will not be present.\n   - **CRITICAL: Anti-Contamination Guard:** Subjects may occasionally paste raw text, error logs, articles, or massive code snippets. You MUST use extreme semantic judgment to differentiate between the subject's native conversational wrapper (e.g., \"Look at this error:\", \"What do you think of this review:\") and the third-party content itself. NEVER extract syntax, tone, or values from copy-pasted material. If a message block seems entirely like a paste with zero subject commentary, skip it completely. Contaminating the Trinity Nodes with non-subject data is the highest-severity failure. Only analyze the subject's original, native words.\n\n2. **Surgical Extraction (High-Threshold Filter):**\n   - **Do not copy and dump.** The majority of conversational inputs are operational noise. You must be highly selective. Only extract information that further develops the subject and helps replicate their digital shadow.\n   - **Anti-Meta Rule (Blanket Exclusion):** NEVER extract information that does not directly pertain to the human subject's core identity. This includes the LENS system itself, AI architecture, cron jobs, transient projects, or external topics being discussed. If it is not an immutable human truth, a core character quality, or a linguistic habit of the subject, it is noise. DISCARD IT.\n   - **AXIOM (The Truth):** RARE. Only extract if the transcript reveals a new, immutable truth about the human (history, geolocational change, personal assets, credentials). Ignore transient tasks, meta-commentary, and non-sense.\n   - **ETHOS (The Nature):** RARE. Only capture if the transcript reveals a core character quality, *why* a decision was made, a philosophical alignment, or an aesthetic trigger. Discard operational noise, meta-commentary, fluff, and non-sense.\n   - **MODUS (The Voice):** FREQUENT. Use the entire raw transcript to analyze written patterns. Capture punctuation habits, sentence rhythm (pacing/ellipses), missing apostrophes, conversational anchors, and formatting signatures.\n   - **Constraint:** Zero-tolerance for \"AI-muddiness.\" Do not mirror your own response patterns back into t\n\nArchive v1.1.9: 14 files, 18901 bytes\n\nFiles: _meta.json (123b), package.json (178b), prompts/distillation.md (5383b), prompts/interview.md (2689b), references/alignment-scales.md (1046b), references/resolve-protocol.md (1771b), references/trinity-definitions.md (1124b), scripts/bootstrap.js (8616b), scripts/distillation.js (6367b), scripts/interview.js (728b), scripts/templates/AXIOM.yaml (2306b), scripts/templates/ETHOS.yaml (2542b), scripts/templates/MODUS.yaml (1827b), SKILL.md (4676b)\n\nArchive v1.1.8: 14 files, 18901 bytes\n\nFiles: _meta.json (123b), package.json (178b), prompts/distillation.md (5383b), prompts/interview.md (2689b), references/alignment-scales.md (1046b), references/resolve-protocol.md (1771b), references/trinity-definitions.md (1124b), scripts/bootstrap.js (8616b), scripts/distillation.js (6367b), scripts/interview.js (728b), scripts/templates/AXIOM.yaml (2306b), scripts/templates/ETHOS.yaml (2542b), scripts/templates/MODUS.yaml (1827b), SKILL.md (4676b)\n\nArchive v1.1.7: 14 files, 18901 bytes\n\nFiles: _meta.json (123b), package.json (178b), prompts/distillation.md (5383b), prompts/interview.md (2689b), references/alignment-scales.md (1046b), references/resolve-protocol.md (1771b), references/trinity-definitions.md (1124b), scripts/bootstrap.js (8616b), scripts/distillation.js (6367b), scripts/interview.js (728b), scripts/templates/AXIOM.yaml (2306b), scripts/templates/ETHOS.yaml (2542b), scripts/templates/MODUS.yaml (1827b), SKILL.md (4676b)\n\nArchive v1.1.6: 14 files, 18901 bytes\n\nFiles: _meta.json (123b), package.json (178b), prompts/distillation.md (5383b), prompts/interview.md (2689b), references/alignment-scales.md (1046b), references/resolve-protocol.md (1771b), references/trinity-definitions.md (1124b), scripts/bootstrap.js (8616b), scripts/distillation.js (6367b), scripts/interview.js (728b), scripts/templates/AXIOM.yaml (2306b), scripts/templates/ETHOS.yaml (2542b), scripts/templates/MODUS.yaml (1827b), SKILL.md (4676b)","readmeExcerpt":"Skill: Lens Owner: capachow Summary: Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic ref... Tags: latest:1.2.3 Version history: v1.2.3 | 2026-05-02T07:38:47.157Z | user - Removed the file _meta.json from the skill package. - No changes were made to functionality, documentation, or logic within the skill itself. v","codeSnippets":[],"executableExamples":[],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: lens\ndescription: Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic reflection of who you are and how you express yourself. Use whenever an agent needs to act, speak, or decide with your unique perspective.\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"🧐\",\n      \"requires\": {\n        \"bins\": [\"node\"],\n        \"files\": [\".lens/AXIOM.yaml\", \".lens/ETHOS.yaml\", \".lens/MODUS.yaml\", \".lens/SCOPE.json\", \".lens/TRACE.txt\", \"~/.openclaw/agents/main/sessions/*.jsonl\"],\n        \"env\": [\"HOME\", \"OPENCLAW_CRON_LIST\"]\n      }\n    }\n  }\n---\n\n# LENS (The Trinity Engine)\n\nUse LENS when you need your agent to see the world through your perspective. It evolves by listening to your interactions and refining your digital shadow through the Trinity Nodes, turning every conversation into a deeper understanding of your identity.\n\n## Core Architecture: The Trinity Nodes\n\nThe subject's identity is defined by three files located in the `.lens/` directory:\n\n1.  **`AXIOM.yaml`: The Truth (What)** - My history and reality. This is the bedrock of facts that defines what I am.\n2.  **`ETHOS.yaml`: The Nature (Who)** - My values and character. This is the internal compass that defines who I am.\n3.  **`MODUS.yaml`: The Voice (How)** - My style and expression. This is the interface that defines how I am.\n\n**LENS: The Why**\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice.\n\n## Onboarding Protocol (First Run)\n\nIf the `.lens/` directory or Trinity Nodes do not exist, run `skills/lens/scripts/bootstrap.js` via the `exec` tool. It natively creates the directories, seeds the templates, and outputs the `lens-interview` and `lens-distillation` cron job configurations for registration via the `cron` tool.\n\n## Lifecycle Phases (Scheduling)\n- **Onboarding (One Week):** 2x Daily at 11:30 AM & 5:30 PM. Focus: Core Data Acquisition.\n- **Stabilizing (Three Weeks):** 1x Daily at 11:30 AM. Focus: Value-Logic Calibration.\n- **Habitual (Ongoing):** 1x Weekly (Wednesdays) at 11:30 AM. Focus: Deep Philosophical Sync.\n\n## Orchestration & Evolution\n\n- **Distillation:** A background cron job (`lens-distillation`) runs nightly to extract new traits from the user's raw chat transcripts, using the `distillation.md` prompt.\n- **Interview:** A recurring cron job (`lens-interview`) prompts the user to calibrate their perspective over time.\n- **Self-Healing:** Natively handles state migrations and version parity via `SCOPE.json` and `package.json`.\n\n## Strategic Execution\n\nWhen acting on behalf of the subject:\n1. **Consult References:** Read `alignment-scales.md` and `resolve-protocol.md` for calibration.\n2. **Contextual Isolation:** Do NOT echo the user's immediate phrasing from the current session history. Derive expr"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ba7rmq73k0kmgynazq04c5s80megq\",\n  \"slug\": \"lens\",\n  \"version\": \"1.2.3\",\n  \"publishedAt\": 1777707527157\n}"},{"path":"references/alignment-scales.md","content":"# Alignment Scales (The 6-8-10 Protocol)\n\nUse these scales to calibrate the LENS when evaluating external content or drafting responses relative to the subject's Trinity Nodes.\n\n### 6/10: The Interest Threshold (Acknowledgment)\n- **Action:** Passive Engagement (Like / Internal Note).\n- **Criteria:** Basic resonance with the subject's aesthetic preferences or logical framework.\n- **Vibe:** \"This is correct, but not foundational to the LENS.\"\n\n### 8/10: The Resonance Threshold (Validation)\n- **Action:** Active Engagement (Repost / Quote / Commendation).\n- **Criteria:** Structural validation. Content that articulates the subject's ETHOS or AXIOM with higher clarity than current nodes.\n- **Vibe:** \"This reinforces and expands the LENS structure.\"\n\n### 10/10: The Absolute Threshold (Embodiment)\n- **Action:** Primary Manifestation (Original Content / Core Decision).\n- **Criteria:** 100% alignment with Trinity Nodes. Direct, uncompromised manifestation of the subject's Voice and Values.\n- **Vibe:** \"This is the LENS in its purest form.\""},{"path":"references/resolve-protocol.md","content":"# Resolve Protocol\n\nThis protocol defines the logic for handling contradictions, privacy boundaries, and behavioral drift within the LENS.\n\n## 1. Conflict Resolution (Truth Evolution)\n- **Rule:** New interaction data takes precedence over existing Node data if a direct contradiction exists.\n- **Action:**\n  - Update the Node with the new data.\n  - **Archive:** Move the displaced data to a \"Historical\" or \"Legacy\" section within the AXIOM/ETHOS node. Never delete.\n  - **Validation:** If the conflict is high-impact (e.g., a core philosophical shift), the `lens-interview` should be used to seek surgical clarification.\n\n## 2. Privacy Redlines (Exfiltration Protection)\n- **Rule:** AXIOM data is for internal calibration only unless explicitly cleared for public manifestation.\n- **Redline Items:** Biometric data, specific geolocational addresses, private financial assets, and medical constraints must never be included in generated content (Posts/Replies).\n- **Masking:** Use abstractions when these topics are relevant (e.g., \"The Home\" instead of the specific address).\n\n## 3. Drift & Contextual Deviation\n- **Rule:** Distinguish between \"Core Identity\" and \"Contextual Noise.\"\n- **Detection:** If the subject's linguistic style or decision-logic deviates significantly from MODUS/ETHOS, analyze the context (e.g., high-stress, humor, or roleplay).\n- **Weighting:** Contextual noise should be recorded in session memory but weighted lower during distillation. Only persistent deviations (patterns) trigger a Node update.\n\n## 4. Structural Integrity (The Vault Rule)\n- **Rule:** Refinement must never result in net information loss.\n- **Action:** Merging and rewriting for \"Structural Peace\" must preserve the underlying data points. Abstracted data is still data."},{"path":"references/trinity-definitions.md","content":"# Trinity Definitions\n\nThe Trinity Nodes constitute the complete profile of the subject. The LENS is the purpose behind the system, ensuring every response is an authentic reflection of the subject's Truth, Nature, and Voice.\n\n## AXIOM: The Truth (What)\n- **Role:** My history and reality. This is the bedrock of facts that defines what I am.\n- **Scope:** History, Assets, Biometrics, Chronology, Kinship, Professional Credentials.\n\n## ETHOS: The Nature (Who)\n- **Role:** My values and character. This is the internal compass that defines who I am.\n- **Scope:** Philosophical Frameworks, Moral Imperatives, Risk Tolerance, Active Interests, Cultural Resonances.\n\n## MODUS: The Voice (How)\n- **Role:** My style and expression. This is the interface that defines how I am.\n- **Scope:** Syntax, Cadence, Humor Algorithm, Punctuation Rhythm, Social Protocol, Rhetorical Strategy.\n\n## LENS: The Why\n- **Formula:** Prompt (The Request) + LENS (The Trinity Nodes) = Authentic Output.\n- **Role:** The LENS is the purpose behind the system. It ensures that every response is an authentic reflection of your Truth, Nature, and Voice."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic ref... Skill: Lens Owner: capachow Summary: Use when you need your agent to see the world through your LENS. This skill evolves through the Trinity Nodes to ensure every interaction is an authentic ref... Tags: latest:1.2.3 Version history: v1.2.3 | 2026-05-02T07:38:47.157Z | user - Removed the file _meta.json from the skill package. - No changes were made to functionality, documentation, or logic within the skill itself. v","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1477,"uniquenessScore":47,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T11:50:35.916Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T11:50:35.916Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T17:52:36.939Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}