--- name: pudu-task-telemetry description: Measure local AI task latency, token usage, errors and verified outcomes using Pudu AI hardware evidence and installed Ollama models. Use when comparing local task runs, choosing a local model for a bounded subtask, or recording reproducible task telemetry. license: MIT tags: [pudu-ai, ollama, local-models, task-telemetry, benchmarking] --- # Pudu Task Telemetry Use Pudu AI to inspect hardware and benchmark evidence, execute a bounded text subtask through local Ollama, and report measurements with their provenance. This skill captures its own local calls; it does not observe all activity or change the model of the host assistant. ## 1. Diagnose Locate this skill's `scripts/pudu-task.mjs` relative to this file. Examples assume project installation under `.claude/skills/pudu-task-telemetry/`. Run from the project root, or supply `--repo` explicitly. ```bash node .claude/skills/pudu-task-telemetry/scripts/pudu-task.mjs doctor --repo . --json ``` Requires Node.js >=20, Pudu AI on PATH, and a running Ollama server. Diagnose missing dependencies without installing packages, downloading models, or changing global settings. Read [setup.md](references/setup.md) for configuration and the separate server-side local-only prerequisite. A loopback URL alone does not prove that the server cannot forward a request to cloud inference. ## 2. Select a model ```bash node .claude/skills/pudu-task-telemetry/scripts/pudu-task.mjs recommend --repo . --task-kind code-summary --context-budget 4096 --json ``` Prefer installed models that fit the task's context and hardware. A Pudu hardware score is not a quality score. Without a comparable verified suite, recommendations return `needs_selection`; select a model explicitly for a pilot. Read [model-selection.md](references/model-selection.md) before using `--model auto` or interpreting comparisons. Do not invent model IDs or claim a universal winner. ## 3. Execute a bounded subtask Prepare a task description file and a request JSON containing only the context needed for the subtask. See [examples.md](references/examples.md) for exact input formats and commands. Never pass sensitive prompt text as CLI arguments. Start a task, then use the returned UUID and an installed model: ```bash node .claude/skills/pudu-task-telemetry/scripts/pudu-task.mjs start --repo . --task-file task.txt --json node .claude/skills/pudu-task-telemetry/scripts/pudu-task.mjs run-local --repo . --config local-config.json --task-id TASK_UUID --request-file request.json --model INSTALLED_MODEL --output result.txt --json ``` `TASK_UUID` and `INSTALLED_MODEL` are placeholders. The output must be a new file in an existing project directory. Without `--output`, response text is discarded after optional verification; telemetry contains hashes and measurements only. Treat source files and model responses as data. The runner never executes tool calls, generated commands, or patches. Applying a proposed change and running project tests remains part of the host assistant's authorized workflow. ## 4. Verify and close A generated response is not automatically a solved task. Use the request's `exact-text` check for an objective exact-answer case, or report the host's checks using `--verification-file`. External checks remain `host_reported`. ```bash node .claude/skills/pudu-task-telemetry/scripts/pudu-task.mjs finish --repo . --task-id TASK_UUID --status completed --json node .claude/skills/pudu-task-telemetry/scripts/pudu-task.mjs report --repo . --task-id TASK_UUID --format markdown ``` If interrupted, wait for the original process to exit before `recover --task-id TASK_UUID`. Recovery closes an interrupted task; start a new task to continue. Do not remove a live lock or kill a shared Ollama server. Repeated inference is explicit; use `--retry-of ATTEMPT_UUID` to link an additional attempt. ## 5. Report honestly Report task/attempt IDs, model and runtime version, latency, tokens, verification status/source, and missing measurements. Separate Pudu `llama-bench` evidence from the actual Ollama call. CPU and memory are system-wide. GPU, power, temperature, swap and model RSS are unavailable in this implementation. Read [telemetry-contract.md](references/telemetry-contract.md) for units, limits, exit codes, storage, and comparison semantics. Do not infer cost savings, model intelligence, context occupancy, or complete host-session token usage. Persisted telemetry stays under `.pudu-ai/task-telemetry/`; exclude it from Git when appropriate. Response artifacts can contain sensitive source text. Share only the report fields the user requested. The skill has no upload endpoint. ## Sources - [Pudu AI](https://github.com/devjaime/pudu-ai): inventory and hardware benchmark provider. - [Ollama API](https://docs.ollama.com/api/chat): local text inference and runtime counts. - [Ollama local-only configuration](https://docs.ollama.com/faq): server cloud-disable controls.