AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Troubleshoot

skill-pol-cc-agentic-data-engineer-troubleshoot · by pol-cc

Diagnose pipeline issues by reading logs and state across Airbyte, dbt, BigQuery, the VPS, and Tailscale. Invoke when verify-pipeline reports a failure, the user says 'something's broken', or a sync hasn't run.

No reviews yet
0 installs
34 views
0.0% view→install

Install

$ agentstack add skill-pol-cc-agentic-data-engineer-troubleshoot

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-pol-cc-agentic-data-engineer-troubleshoot)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Troubleshoot? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

troubleshoot

> Status: v0.10.0 — references written; diagnostic playbook operational. Now covers the dlt-era ingest failure modes — the silent data gap (a mis-set incremental cursor that skips rows without crashing), a partial load (_dlt_loads status non-zero), a source-vs-destination reconciliation mismatch, and a systemd timer that didn't fire — alongside the original Airbyte/dbt/BQ/MCP modes.

What this skill does

Walks through the most common failure modes of the MDS in order of likelihood, gathering evidence from each layer. The agent reasons over the evidence to identify the cause and proposes (but does not execute) a fix. The user confirms before any change is applied.

Preflight

if [ ! -f .agentic-data-engineer.json ]; then
  echo "[abort] not a managed MDS deployment"
  exit 1
fi

Standard diagnostic flow

Run checks in this order — earlier failures often explain later ones:

1. Tailscale reachability

# Default: Tailscale SSH (keyless). Fallback if the tailnet is down: ssh -i ~/.ssh/_vps deploy@
ssh deploy@ "tailscale status"

If unreachable: the VPS is offline, Tailscale on the VPS is down, or Tailscale on the laptop is down.

2. VPS processes and timers

ssh ... "uptime && free -h && df -h /"                         # load, RAM, disk
ssh ... "systemctl list-timers 'dlt-*' 'dbt-*' --all --no-pager"  # default: dlt + dbt timers (NEXT/LAST)
ssh ... "journalctl -u dlt-.service -u dbt-run.service --since '2 days ago' --no-pager | tail -40"
ssh ... "docker ps --format '{{.Names}}\t{{.Status}}'"         # MCP, etc.
# If stack.ingest == airbyte (alternative path):
ssh ... "abctl local status"                                   # Airbyte controller — airbyte path only
ssh ... "systemctl is-active cron"                             # cron daemon — only if dbt runs on cron

3. Ingest jobs

Default (dlt): no ingest API — read the dlt-.service journal (Step 2) and the _dlt_loads status + reconciliation in Step 4. If stack.ingest == airbyte (alternative path), get a token then list recent jobs:

# Airbyte path only — get token, then list recent jobs
curl ... /api/public/v1/jobs?limit=20

Look for: failed status, cancelled, or jobs that haven't started in 24h+.

4. BigQuery state

bq query --use_legacy_sql=false "
  SELECT table_name, TIMESTAMP_MILLIS(last_modified_time) AS last_mod
  FROM \`..__TABLES__\`
  ORDER BY last_modified_time DESC
"

5. dbt last run

ssh ... "cat /root/dbt//target/run_results.json | jq '.results[] | select(.status != \"success\")'"

Common failure modes

Catalogued in references/common-failures.md:

  • Silent data gap — a dlt incremental cursor mis-set skips rows without erroring; only reconciliation (source vs destination) catches it. The dlt stack's signature failure.
  • dlt partial load_dlt_loads latest status != 0; the load died mid-write, leaving a partial package. Re-run to recover.
  • Reconciliation mismatch source vs destination — counts disagree beyond tolerance; diagnose by sign (dest source = duplicates or source purge).
  • systemd timer didn't fire — the dlt load never ran (timer disabled, service failed, wrong OnCalendar, or no Persistent=true).
  • Tailscale on on-prem server marked offline (Windows reboot, service stopped)
  • Airbyte abctl controller killed by OOM on small VPS (when stack.ingest == "airbyte")
  • Airbyte API 403 because the clientid/clientsecret was rotated and the marker still references the old one
  • BigQuery quota exceeded (free tier crossed)
  • dbt failed because stg_* ran before the ingest load completed (race condition — fix is reschedule)
  • GA4 export missing today's table (Google delay, not an error)
  • MCP write-tools PR failing (PAT expired or missing pull_requests:write) — write tools are off by default and open PRs, not pushes

Output

A markdown summary: which layer failed, the evidence, the proposed fix, and a yes/no question for the user. Nothing is changed until the user confirms.

References

  • [references/diagnostic-flow.md](references/diagnostic-flow.md) — the ordered diagnostic walk (Tailscale → VPS/timers → ingest [dlt by default, Airbyte on the alternative path] → BQ → dbt → MCP) with exact SSH commands and the propose-then-confirm contract
  • [references/common-failures.md](references/common-failures.md) — catalog of known failure modes (symptom → confirm → root cause → proposed fix → prevention)
  • [../../shared-references/remote-control-model.md](../../shared-references/remote-control-model.md) — how the agent reaches the VPS and on-prem hosts over Tailscale SSH
  • [../../shared-references/ai-native-principles.md](../../shared-references/ai-native-principles.md) — principle 6 on observability

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.