clawd/memory/2026-03-25.md

4.4 KiB


Session: MC Pipeline + Linda (afternoon/evening)

MC Engineer Pipeline — Prompt Improvements

  • Engineer prompt updated (buildTaskPrompt()): Added "Before You Start" section — read files first, understand before coding. If unclear/impossible → respond BLOCKED: <reason> (NOT hallucinated code).
  • BLOCKED detection: If engineer responds with BLOCKED:, task moves to blocked status (outcome=blocked), not to review. Prevents bad code from entering QA.
  • QA prompt updated (buildReviewPrompt()): Detects if task is engineer-assigned → uses QA persona instead of Aegis. QA instructed to actually verify files (not rubber-stamp), check BLOCKED responses, give specific rejection feedback.
  • Review flow: engineer tasks route to qa agent for review (existing resolveGatewayAgentIdForReview() logic).

AQA — Automated Test Runner (Clavitor-only)

  • New runAqaReviews() function in task-dispatch.ts — runs BEFORE Aegis/QA
  • Picks up Clavitor tasks (project_id=3, assigned_to=engineer) in review status
  • Runs go test ./... via execSync in project repo
  • PASS → moves to quality_review + posts test output as comment
  • FAIL → bounces back to assigned + posts test output as feedback to engineer
  • Error (can't run) → passes through to quality_review with ⚠️ warning comment
  • Added aqa_review to scheduler: fires at +35s, aegis_review moved to +45s

Projects Linked to Codebases

  • Projects table has metadata JSON column (already existed)
  • inou (id=2): {"repo_path":"/home/johan/dev/inou","test_cmd":"/usr/local/go/bin/go test ./...","lang":"go"} — inou is Go, not TypeScript
  • clavitor (id=3): {"repo_path":"/home/johan/dev/clavitor/clovis/clovis-vault","test_cmd":"/usr/local/go/bin/go test ./...","lang":"go"} — test dir is clovis/clovis-vault, not root
  • Go binary path on forge: /usr/local/go/bin/go (not in PATH for systemd services)

Clavitor Tests — Status

  • 3 test files found: api/integration_test.go, api/tier_test.go, lib/telemetry_test.go
  • Currently 3 failing tests (pre-existing):
    • TestTierIsolationDB — expects 201, gets 401 (Invalid L1 key in Bearer)
    • TestCollectPayload — version should not be empty
    • TestPostTelemetry — expected Bearer secret-token, got ""
  • These are config/env issues, not code bugs. Related to C-055 (module rename).
  • Engineer will need to fix these before AQA can pass.

Zurich SSH Fixed

  • Root cause: UseDNS yes on Zurich's sshd_config — reverse DNS lookup on every incoming connection, timing out → 27 second connect time
  • Fix applied: sed -i 's/#UseDNS no/UseDNS no/' + sed -i 's/#GSSAPIAuthentication no/GSSAPIAuthentication no/' on /etc/ssh/sshd_config, then systemctl reload ssh
  • Also added ~/.ssh/config entry for zurich.inou.com with GSSAPIAuthentication no, ControlMaster auto, ControlPersist 600
  • Result: 27s → 0.3s connect time

Linda — Agent for Jacques

  • Created /home/johan/linda/ workspace with SOUL.md + USER.md
  • Jacques: Johan's son, MSc International Finance, lives in Tilburg NL, considering AI consulting for SMBs
  • Linda: warm, direct, bilingual NL/EN, finance+AI consulting focus
  • Added linda agent to openclaw.json (model: Sonnet 4.6, workspace: /home/johan/linda)
  • PENDING: Needs Discord bot token — each agent needs its own bot app. Johan to create at discord.com/developers.
  • Pattern: Discord accounts.<name> with token + agentId: linda → routes DMs from Jacques to Linda

Rozemarijn — Study Bot Request

  • Roos (Johan's oldest daughter, born June 11 1998) opened a DM with James on Discord
  • Username: rozemarijn (Discord ID: 1486461895136252115)
  • Exam: Real Estate Research (last exam of master's program)
  • Uploaded samenvatting as .xlsx — extracted content: statistics, OLS assumptions, hedonic pricing, discrete choice models, Stata, R
  • Requested: overhoor-bot (quiz her), with focus on Stata (her weak point)
  • Status: waiting for practice exams from her before starting sessions
  • Note: This is family (Johan's daughter) — treat with care, not a stranger

Agents Context Correction

  • engineer agent workspace was /home/johan/clawd (James' workspace) — wrong. Should use own workspace.
  • Per Johan: stateless dispatch is fine for now (one engineer, task description carries repo path)
  • Task description includes project → repo path via project metadata