Agent skill · Audited from source

Acp Debug

skill · kdlbs/kandevAGPL-3.0 licenceAudited 18 Oct 2026 · source 786d4817799e

★ 972pushed today
!CAUTIONGrade B · 89/100 · 7 findings · 786d481
972repo stars · whole kdlbs/kandev

Is it safe? With care — CAUTION, grade B (89/100). We read this skill's source at commit 786d4817799e and found no filesystem, network or shell access and no hard-coded secrets. The audit raised 7 findings, 0 critical or high. What it does: Debug an ACP agent CLI by spawning it, speaking raw JSON-RPC, and capturing every frame to a JSONL file. Use when the user asks to probe an agent's capabilities, compare agents, test a prompt against an agent, inspect…

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “Acp Debug (kdlbs/kandev)”. Retrieved 18 Oct 2026. https://modelsatlas.com/skills/kdlbs/acp-debug

Trust audit

Audit 0.4.1 · source read 18 Oct 2026

Trust score89/100!CAUTION B
0 critical0 high2 medium4 low1 info

CAUTION means the audit found things worth knowing before you trust this skill. Grade B is shared by 13,985 of 14,816 audited skills.

What the source does

  • FilesystemNone observedNo reads or writes in the source
  • NetworkNone observedNo outbound calls in the source
  • ShellNone observedNo commands run in the source
  • DependenciesPinnedNothing floats
  • SecretsNone foundNo keys in source

Five audit layers

LayerWhat we checkResultFindings
L0 ProvenanceRepo owner, licence, archive status, activityWARN6
L1 Static sourceSecrets, path traversal, supply chain, hidden codePASS1
L2 InstructionsPrompt injection, authority framing, hidden directivesPASS0
L3 InventoryThe files and declarations match the sourcePASS0
L4 SandboxRun in isolation and watch behaviourSKIPPED why0

Gates applied: no behavioural pass.

Findings (7)

LOWFilesystem / pathfs.traversal · apps/web/e2e/tests/system/licenses-page.spec.ts:1
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
import { test, expect } from "../../fixtures/test-base";
Why
No further detail recorded for this rule.
Fix
—
INFOInventory / provenanceinv.oversize · apps/web/generated/licenses.json
F-13 Inventory / provenanceCWE-1104Layer L0
apps/web/generated/licenses.json
Why
1506638 bytes not read
Fix
—

Audit 0.4.1 · source sha 786d4817799e · 18 Oct 2026Report an issue or request a re-scan

Provenance

Who published it, and what the verdict is pinned to

  • Publisherkdlbs GitHub organizationOwner of the repository this skill is read from
  • Source folderkdlbs/kandev/.agents/skills/acp-debugThe exact folder we audited
  • LicenceAGPL-3.0As the repository states it
  • Commit pinned for this verdict786d4817799eA new audit runs when the source changes
  • Repository statusNot archivedPushed today
  • Sandboxed runNot runSkills are read, not executed; layer L4 is skipped

What it tells the agent

Full source on GitHub ↗

Its description: Debug an ACP agent CLI by spawning it, speaking raw JSON-RPC, and capturing every frame to a JSONL file. Use when the user asks to probe an agent's capabilities, compare agents, test a prompt against an agent, inspect…

---
name: acp-debug
description: Debug an ACP agent CLI by spawning it, speaking raw JSON-RPC, and capturing every frame to a JSONL file. Use when the user asks to probe an agent's capabilities, compare agents, test a prompt against an agent, inspect raw ACP wire frames, or investigate why an agent fails to initialize.
---

# ACP Debug

Run a headless ACP JSON-RPC session against any registered kandev agent (or an arbitrary command), record every wire frame to a JSONL file, and summarize the handshake. Backed by the `acpdbg` binary at `apps/backend/bin/acpdbg`.

## When to use this skill

- "what models does auggie advertise"
- "probe claude-acp" / "probe all agents" / "run the matrix"
- "debug why copilot-acp isn't starting"
- "what does a `session/new` response actually look like for X"
- "try this prompt against auggie with mode=ask"
- "reproduce session/load for session <id> against claude-acp"
- User mentions inspecting raw ACP wire payloads or a JSONL file from an earlier run

## Before anything else: build the binary if missing

```bash
test -x apps/backend/bin/acpdbg || make -C apps/backend build-acpdbg
```

## Sub-commands

```text
acpdbg list                                            # enumerate registered ACP agents
acpdbg probe <agent>                                   # initialize + session/new + close
acpdbg probe --exec "<cmd> [args...]"                  # probe an arbitrary binary not in the registry
acpdbg mcp-probe <agent>                                # inject a temporary MCP sentinel into session/new
acpdbg prompt --prompt "..." [--model M] [--mode M] <agent>
acpdbg session-load --session-id <id> <agent>
acpdbg matrix                                          # probe every ACP agent in parallel
```

> **Flags MUST come before the positional `<agent>`.** The CLI uses Go's stdlib
> `flag` parser, which stops at the first non-flag token — so any flag placed
> *after* `<agent>` is silently ignored (`probe`/`matrix`, e.g. a dropped
> `--timeout`) or errors (`prompt` → `--prompt is required`). Always write
> `acpdbg prompt --prompt "..." --timeout 240s <agent>`, not `acpdbg prompt <agent> --prompt ...`.

**Shared flags** (apply to every sub-command):
- `--out DIR` — JSONL output directory (default `./acp-debug/`)
- `--file PATH` — exact JSONL path, overrides `--out`
- `--timeout DUR` — overall run timeout (default `30s`)
- `--workdir PATH` — child cwd (default: fresh `/tmp/kandev-acpdbg-<pid>-*`)
- `--verbose` — mirror frames to stderr
- `--stderr` — capture child stderr into the JSONL

## Steps

**Create a task for each step below and mark them as completed as you go.**

### 1. Pick the sub-command that matches the user's intent

- "what models does X have" / "does X support modes" → `acpdbg probe X`
- "test a prompt against X" → `acpdbg prompt --prompt "..." X`
- "compare all agents" / "run the matrix" → `acpdbg matrix`
- "resume session <id>" → `acpdbg session-load --session-id <id> X`
- "did this agent attach the injected MCP server" → `acpdbg mcp-probe X`
- "try this random binary" → `acpdbg probe --exec "path/to/bin --acp"`

### 2. Run the command

Always capture stdout — it contains the JSONL file path (and for `matrix`, the summary table and `matrix-summary.json` path).

```bash
apps/backend/bin/acpdbg probe --timeout 45s auggie
```

For `matrix`, prefer `--timeout 60s` so `npx`-spawned agents have time to cold-start.

For Claude ACP, the generated default workdir is an absolute temporary
directory and is sent as the ACP `cwd`; no `--workdir` flag is required. If
you override it, supply an existing absolute directory (for example, run
`mkdir -p /tmp/kandev-acpdbg-claude` before passing that path to `--workdir`).
An empty `cwd` can cause Claude to reject `session/new`; confirm the `cwd` in
the recorded request frame before diagnosing a provider failure.

### 3. Read the JSONL file

The JSONL schema is:

| `direction` | Meaning | Extra fields |
|---|---|---|
| `meta` | acpdbg-generated marker | `event` (`start` / `close`), `meta` (map with `agent`, `command`, `workdir` for start; `exit_code`, `reason` for close) |
| `sent` | Frame written to child's stdin | `frame` (JSON-RPC request or reply) |
| `received` | Frame read from child's stdout | `frame` (JSON-RPC request, response, or notification) |
| `stderr` | Child stderr line (only when `--stderr`) | `line` |

Entries are strictly chronological. Each line is a single JSON object terminated by `\n`.

Useful `jq` recipes:

```bash
# Full initialize response
jq -c 'select(.direction == "received" and .frame.id == 1)' acp-debug/<file>.jsonl

# Full session/new response (models, modes, auth)
jq '.frame.result' acp-debug/<file>.jsonl | head -50

# Just the models advertised
jq -r 'select(.direction == "received") | .frame.result.models.availableModels[]?.modelId' acp-debug/<file>.jsonl

# Close event (exit code + reason)
jq -c 'select(.direction == "meta" and .event == "close")' acp-debug/<file>.jsonl

# All agent-initiated requests we auto-replied to
jq -c 'select(.direction == "received" and .frame.method and .frame.id)' acp-debug/<file>.jsonl
```

### 4. Summarize for the user

Give a concise markdown summary: agent, protocol version, models found (with currentModelId), modes found (with currentModeId), auth methods, any errors, and the JSONL path for deeper inspection. Example:

```text
**auggie** (protocol v1, auggie 0.20.1)
Models (11): claude-sonnet-4-6 (current), claude-opus-4-6, gpt-5-4, ...
Modes  (2):  default (current), ask
Auth methods: (none advertised)
JSONL: acp-debug/auggie-probe-20260409-183104.jsonl
```

### 5. If something looks wrong, walk the frames

Common failure modes:

| Symptom | Likely cause | Next step |
|---|---|---|
| meta close `exit_code: 127` immediately | child binary not installed | Check `which <cmd>`; suggest install command |
| meta close before any `received` frame | child crashed on startup | Re-run with `--stderr` to capture the error |
| `initialize` response has populated `authM

Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.

Install

Pinned to the audited commit 786d481

Download folder ↗
git clone https://github.com/kdlbs/kandev
git -C kandev checkout 786d4817799e

The author documents no install command, so this uses the repository directly. Our verdict covers commit 786d4817799e only.

Works in which agents?

What its own text says, not a test

AgentStatusMore
GitHub CopilotMentioned in its text, not testedSkills for GitHub Copilot · About GitHub Copilot
“Mentioned” means the skill’s text names the agent. We have not run it there.

Audit history

Every audit, every source change

  1. !CAUTION B 89 / 100

    first audit · source 786d4817799e

README badge

For maintainers · shows the latest audit

ModelsAtlas: CAUTION BMODELSATLASCAUTION · B
[![ModelsAtlas: CAUTION B](https://modelsatlas.com/skills/kdlbs/acp-debug/badge.svg)](https://modelsatlas.com/skills/kdlbs/acp-debug/)

The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.

Add this badge to your README

[![ModelsAtlas: CAUTION B](https://modelsatlas.com/skills/kdlbs/acp-debug/badge.svg)](https://modelsatlas.com/skills/kdlbs/acp-debug/)

Questions about Acp Debug

What does the Acp Debug skill do?
AI Kanban & Development Environment. Orchestrate multiple agents, review changes, open PRs. Multi-provider, self-hostable, no telemetry.
Is Acp Debug safe to install?
With care. The audit graded it B (89/100) and found 7 things worth knowing before you trust this skill, listed below with the exact line each was found on.
What can Acp Debug access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Acp Debug work with?
Its documentation mentions copilot. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (786d4817799e), read on 2026-10-18. The repository is watched, and a new audit runs when it changes — this is the first audit.

Sources

Spotted something wrong? Report a correction · Methodology

Keep going in your AI

Opens with this page as the source. We add nothing else to the prompt.