Skip to main content

TLDR Loop — Insight to Implementation Pipeline

TLDR Loop — Insight to Implementation Pipeline

Overview

The TLDR actionizer daemon closes the learning loop between daily TLDR email insights and ALAI's Mission Control task system. Instead of manually triaging insights or dumping them into an ever-growing backlog, the daemon automatically classifies, gates by relevance, routes to specialist owners, and creates tracked tasks — all without human intervention.

CEO Directive (2026-05-08): "Želim da ne sjedi u backlog i da se to krene u implementaciju" — No more backlog dumps. Every insight gets actionable routing or explicit discard.

Problem Solved

  • Before: TLDR insights manually reviewed → backlog queue → forgotten
  • After: Automated classification → relevance gating → specialist routing → tracked M/L tasks
  • Result: Zero backlog accumulation, specialist-aligned ownership, priority-based scheduling

Daemon Flow Diagram

flowchart LR
    A[TLDR Email
09:00 daily] --> B[tldr-briefing.js
Extracts insights] B --> C[insights JSON log
~/system/logs/tldr-insights/YYYY-MM-DD.json] C --> D[tldr-actionizer.js
09:30 daily] D --> E{Ollama
TASK/SUGGEST/SKIP} E -->|SKIP| F[Discard
No MC task] E -->|TASK or SUGGEST| G{Ollama
HIGH/MED/LOW relevance} G -->|LOW| F G -->|HIGH or MED| H[OWNER_ROUTER
Keyword match] H --> I[MC Task Created
Priority M/L] I --> J[Slack #exec
Summary]

OWNER_ROUTER Table

The daemon routes insights to specialist company owners based on keyword pattern matching. First match wins (order matters).

Pattern (regex, case-insensitive) Owner Example Keywords
security|breach|cve|vulnerab|ddos|exploit|malware|ransom|cyber securion CVE-2024-1234, DDoS attack, ransomware
llm|gpt|claude|llama|model|rag|agent|fine-tun|embed|inference|ollama agentforge GPT-5.5, RAG pipeline, Ollama fleet
payment|stripe|psd2|fintech|invoice|billing|bank|finance finverge Stripe API, PSD2 compliance, invoicing
docker|kubernetes|k8s|deploy|ci/cd|terraform|cloud run|aws|azure|gcp|nginx flowforge Cloud Run, Kubernetes, CI/CD pipelines
ios|android|mobile|swift|flutter|react native skybound Flutter 3.22, iOS performance, React Native
(No match) codecraft (default) Generic SaaS, backend, frontend

Safety Invariant: owner='backlog' is forbidden. The daemon will throw an error if any route resolves to 'backlog'. All tasks must go to a specialist owner or the default (codecraft).

Owner Assignment Rules

The daemon uses a two-stage Ollama LLM gate to determine owner and priority:

  1. Classification Gate (TASK / SUGGEST / SKIP)
    • SKIP: Generic advice not specific to ALAI's stack/products/market → Discard, no MC task
    • SUGGEST: Potentially valuable but needs CEO review before implementing
    • TASK: Concrete, actionable, implementable within 1 week, clearly fits roadmap
  2. Relevance Gate (HIGH / MED / LOW)
    • HIGH: Directly actionable for ALAI products, stack, or market focus (e.g., specific Ollama optimization, security patch for Node.js/Kotlin, feature for Bilko/Drop/Tok/Lobby)
    • MED: Broadly relevant to ALAI's industry or tech direction, warrants CEO awareness
    • LOW: Generic industry news with no clear ALAI connection → Discard, no MC task

Owner & Priority Decision Matrix

Relevance Classification Owner Priority
HIGH TASK or SUGGEST OWNER_ROUTER result M
MED TASK OWNER_ROUTER result L
MED SUGGEST alem (CEO triage bucket) L
LOW Any (Discarded) (No task)

Key Rule: NEVER assign owner='backlog'. All tasks route to a specialist or CEO triage bucket.

Operator Runbook

How to Add New Domain Pattern

  1. Edit ~/system/daemons/tldr-actionizer.js and update the OWNER_ROUTER constant (lines 66-87).
  2. Add corresponding unit test in ~/system/daemons/tests/tldr-actionizer-router.test.js (mirror the pattern + test case).
  3. Run test: node ~/system/daemons/tests/tldr-actionizer-router.test.js — verify all tests pass.
  4. Restart daemon: launchctl stop com.john.tldr-actionizer && launchctl start com.john.tldr-actionizer

Example: To route design insights to vizu:

{
  pattern: /figma|sketch|design system|ui|ux|prototyp|wireframe/i,
  owner: 'vizu'
}

How to Override Routing for Specific Insight

If the daemon incorrectly routes an insight, manually reassign the MC task:

node ~/system/tools/mc.js assign <task_id> <new_owner>

How to Inspect Dry-Run Output

Test routing logic without creating real MC tasks:

node ~/system/daemons/tldr-actionizer.js --dry-run --date 2026-05-07

Output written to /tmp/tldr-router-dryrun-99824.json with classification, relevance, and assigned owner for each insight.

How to Verify Daemon Health

tail -50 ~/system/logs/tldr-actionizer.log | jq

Check for:

  • "level": "info" — normal operation
  • "level": "warn" — classification unclear or Ollama timeout (daemon defaults to safe fallback)
  • "level": "error" — MC task creation failed

LaunchAgent: com.john.tldr-actionizer (runs daily at 09:30 Oslo time)

launchctl list | grep tldr-actionizer        # Check status
launchctl stop com.john.tldr-actionizer     # Manual stop
launchctl start com.john.tldr-actionizer    # Manual start

Backlog Sweep History

On 2026-05-08, MC #99823 performed a one-time sweep of existing backlog tasks to re-route or close them per the new routing rules. Results:

MC ID Priority Old Owner New Owner/Status Relevance Reasoning
9475MbacklogagentforgeHIGHPII redaction → Bilko/Drop/Lobby data pipelines
10081LbacklogclosedLOWHAL breach is news-only, no ALAI tie
99371LbacklogclosedLOWVideo gen — ALAI doesn't do video
99372LbacklogclosedLOWCodex cosmetic update — no action
99373LbacklogclosedLOWUK challenger bank — wrong market (we're Nordic/Balkan)
99374MbacklogsecurionMEDDDoS hardening — Securion service-line
99375MbacklogsecurionMEDTrellix breach awareness — Securion supply-chain
99565MbacklogagentforgeHIGHGPT-5.5 token cost — directly relevant to Pillar #9 cost ceiling
99566LbacklogclosedLOWVoice infra — ALAI doesn't do voice
99567MbacklogsecurionHIGHDeepsec — ALAI Sec service-line aligned (memo 2026-05-01)
99568LbacklogclosedLOWMeta-AI-research news — no concrete action

Summary: 11 tasks processed, 5 re-routed to specialist owners (agentforge, securion), 6 closed as low-relevance.

Known Gaps

1. ANVIL Ollama No Models Loaded

Impact: Daemon currently safe-fails ALL insights to alem/MED+SUGGEST because ANVIL Ollama (localhost:11434) has 0 models loaded. Classification and relevance gates return unclear responses, triggering default fallback.

Fix Options:

  • Option A: Load llama3.1:8b model on ANVIL Ollama:
    ollama pull llama3.1:8b
  • Option B: Repoint daemon to FORGE Ollama (10.0.0.2:11434) which already has qwen3:8b-q8_0 loaded:
    # Edit ~/system/daemons/tldr-actionizer.js line 48:
    const OLLAMA_URL = process.env.OLLAMA_HOST || 'http://10.0.0.2:11434';

Status: Open (no fix deployed yet). Daemon runs daily but all insights currently default to CEO triage bucket.

2. OWNER_ROUTER Constant Drift Risk

Issue: The OWNER_ROUTER constant is defined in both:

  • ~/system/daemons/tldr-actionizer.js (lines 66-87)
  • ~/system/daemons/tests/tldr-actionizer-router.test.js (lines 20-42)

If the daemon constant is updated without syncing the test file, unit tests become stale and may pass incorrectly.

Recommendation: Extract OWNER_ROUTER into a shared module:

// ~/system/daemons/lib/owner-router.js
module.exports = [ /* patterns */ ];

// In both files:
const OWNER_ROUTER = require('./lib/owner-router');

Status: Open (technical debt, does not block current operation).

Genesis MC IDs

  • Parent: MC #99822 (TLDR routing reform H-priority)
  • Sweep: MC #99823 (backlog sweep, done)
  • Patch: MC #99824 (CodeCraft OWNER_ROUTER implementation, done, commit 9acd41f10)
  • Validation: MC #99825 (Proveo 6/6 PASS, done)
  • Documentation: MC #99826 (this page, Skillforge)

Delivery Date: 2026-05-08

CEO Directive: "Želim da ne sjedi u backlog i da se to krene u implementaciju" — Implemented same-day.


Authored by Skillforge | ALAI Holding AS | BookStack page ID auto-assigned on publish