Part of the AI back-office PRD — POC-2 + model-fleet. Closes decision D6 (Pi inference serving). (The T11 reminder-loop test formerly mentioned here moved to #60 — this POC proves the classify workload only.)
Deliverables
llama.cpp server (or Ollama) as an arm64 workload on the k3s cluster — deployment manifests likely land in factory (ArgoCD app, house <app> join-key conventions) with the atom + eval here; hard resource limits, low priorityClass, node pinning so Dolibarr always wins contention (challenge C5).
T01 cron loop: poll Zoho every 30 min (high-water mark), classify, enqueue/tag, journal.
Exit gate: ≥95 % accuracy on the three action classes over the 200 labeled mails; p95 latency < 60 s; zero k8s evictions of business workloads over a 2-week soak.
Fallback: sentinel runs on M4-wake + Mistral (loses 24/7 — accepted degraded steady-state per C5).
Execution — Blocked by: #39 (the 200 labeled mails) · Blocks: P3 closure; closes D6 → ADR via factory#22 · Human gates: none (cluster + Zoho creds exist). Start:claude --worktree pi-sentinel from the erp repo root; first command: kubectl get nodes -o wide (arm64 capacity + taints), then read the PRD model-fleet Pi tier. Done means: evidence comment here (accuracy on the labeled set, p95 latency, 2-week soak note) → PR(s) merged with Closes #50 → ADR for D6 via factory#22.
Part of the **AI back-office PRD** — [POC-2](https://gitea.arcodange.lab/arcodange-org/factory/src/branch/main/vibe/PRD/ai-back-office/poc-plan.md) + [model-fleet](https://gitea.arcodange.lab/arcodange-org/factory/src/branch/main/vibe/PRD/ai-back-office/model-fleet.md). Closes decision **D6** (Pi inference serving). *(The T11 reminder-loop test formerly mentioned here moved to #60 — this POC proves the classify workload only.)*
**Deliverables**
- llama.cpp server (or Ollama) as an arm64 workload on the k3s cluster — deployment manifests likely land in factory (ArgoCD app, house `<app>` join-key conventions) with the atom + eval here; hard resource limits, low priorityClass, node pinning so Dolibarr always wins contention (challenge C5).
- `fleet/atoms/mail-classify/`: closed-set classification {supplier-invoice, bank-notice, government-admin, client, other}, **GBNF/JSON-schema constrained**, refuse-below-threshold; candidates Qwen3 1.7B/4B, Gemma 3 1B/4B class GGUF Q4.
- T01 cron loop: poll Zoho every 30 min (high-water mark), classify, enqueue/tag, journal.
**Exit gate:** ≥95 % accuracy on the three action classes over the 200 labeled mails; p95 latency < 60 s; zero k8s evictions of business workloads over a 2-week soak.
**Fallback:** sentinel runs on M4-wake + Mistral (loses 24/7 — accepted degraded steady-state per C5).
---
**Execution** — Blocked by: #39 (the 200 labeled mails) · Blocks: P3 closure; closes D6 → ADR via factory#22 · Human gates: none (cluster + Zoho creds exist).
**Start:** `claude --worktree pi-sentinel` from the erp repo root; first command: `kubectl get nodes -o wide` (arm64 capacity + taints), then read the PRD model-fleet Pi tier.
**Done means:** evidence comment here (accuracy on the labeled set, p95 latency, 2-week soak note) → PR(s) merged with `Closes #50` → ADR for D6 via factory#22.
arcodange
added this to the P3 — Standing fleet milestone 2026-07-11 18:18:35 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of the AI back-office PRD — POC-2 + model-fleet. Closes decision D6 (Pi inference serving). (The T11 reminder-loop test formerly mentioned here moved to #60 — this POC proves the classify workload only.)
Deliverables
<app>join-key conventions) with the atom + eval here; hard resource limits, low priorityClass, node pinning so Dolibarr always wins contention (challenge C5).fleet/atoms/mail-classify/: closed-set classification {supplier-invoice, bank-notice, government-admin, client, other}, GBNF/JSON-schema constrained, refuse-below-threshold; candidates Qwen3 1.7B/4B, Gemma 3 1B/4B class GGUF Q4.Exit gate: ≥95 % accuracy on the three action classes over the 200 labeled mails; p95 latency < 60 s; zero k8s evictions of business workloads over a 2-week soak.
Fallback: sentinel runs on M4-wake + Mistral (loses 24/7 — accepted degraded steady-state per C5).
Execution — Blocked by: #39 (the 200 labeled mails) · Blocks: P3 closure; closes D6 → ADR via factory#22 · Human gates: none (cluster + Zoho creds exist).
Start:
claude --worktree pi-sentinelfrom the erp repo root; first command:kubectl get nodes -o wide(arm64 capacity + taints), then read the PRD model-fleet Pi tier.Done means: evidence comment here (accuracy on the labeled set, p95 latency, 2-week soak note) → PR(s) merged with
Closes #50→ ADR for D6 via factory#22.