Skip to content
Agentmart
Submit a tool

deploy-log-forensics

Reconstruct what changed on production — which commit, which module, which tenant, at what time — from CI/CD run logs when you have NO server access (no SSH…

Skill by ever-just

IndexedMIT★ 5
Write a review

Chalk Labs

Need help deploying deploy-log-forensics?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/ever-just-deploy-log-forensics

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Reconstruct what changed on production — which commit, which module, which tenant, at what time — from CI/CD run logs when you have NO server access (no SSH, no cloud credentials). Use when asked "what broke production / when did X appear / which deploy carried this change" and the only evidence available is git history plus the deploy pipeline's own logs. Covers mapping workflow runs to commit ranges, mining job logs for change markers (changed-module lists, per-tenant update sections, restart timestamps), separating the commit that CAUSED a behavior from the commit that EXPOSED it, and the hygiene rules for dispatching diagnostic workflow runs (environment protection rules, temp-commit cleanup). Complements web-deploy-verification (which verifies a change IS live); this skill attributes what went live and when, after the fact.

Use cases: backend, devops, data, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/deploy-log-forensics

What's inside

Skill name
deploy-log-forensics
Description
Reconstruct what changed on production — which commit, which module, which tenant, at what time — from CI/CD run logs when you have NO server access (no SSH, no cloud credentials). Use when asked "what broke production / when did X appear / which deploy carried this change" and the only evidence available is git history plus the deploy pipeline's own logs. Covers mapping workflow runs to commit ranges, mining job logs for change markers (changed-module lists, per-tenant update sections, restart timestamps), separating the commit that CAUSED a behavior from the commit that EXPOSED it, and the hygiene rules for dispatching diagnostic workflow runs (environment protection rules, temp-commit cleanup). Complements web-deploy-verification (which verifies a change IS live); this skill attributes what went live and when, after the fact.
License
MIT
Instructions
122 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Deploy-Log Forensics

## Overview

When production misbehaves and you cannot shell into the server, the deploy pipeline's
own logs are a complete, timestamped record of what reached production. Every CI/CD run
binds together: a commit SHA, a set of changed files/modules, the deploy actions taken
per target (tenant, service, region), and wall-clock timestamps. Correlating that record
with git history answers "what changed, where, and when" without ever touching the box.

This is the inverse of deploy *verification*: `web-deploy-verification` proves a change
you just merged is live; this skill works backwards from a symptom to the deploy and
commit that shipped it.

## When to use

- A user reports something appeared/broke "in the last N days" and you must attribute it.
- SSH keys, cloud credentials, or VPN access are unavailable or expired in your session.
- You need to know whether a specific module/tenant/service was actually updated by a
  given deploy (not just whether the commit is on the default branch).

## Method

### 1. Establish the suspect window from the symptom

Ask (or infer) when the behavior first appeared. Convert to UTC. All later correlation
happens in UTC — mixed-timezone reasoning is the #1 source of false attribution
(cross-reference: `temporal-finding-validation`).

### 2. List deploy runs in the window

With the GitHub MCP tools or `gh`:

```bash
# GitHub MCP: actions_list (workflow runs for the deploy workflow, newest first)
# CLI equivalent:
gh run list --workflow deploy.yml --branch master --json databaseId,headSha,createdAt,conclusion
```

Each run's `headSha` bounds a commit range: `previous_run.headSha..this_run.headSha` is
exactly what this deploy carried. A commit being on `master` does NOT mean it deployed —
check for `paths-ignore` (docs-only pushes may skip deploys) and for failed runs.

### 3. Mine the job logs for change markers

Pull logs for the runs in the window (`get_job_logs` / `gh run view --log`). Deploy
scripts announce what they did — grep for the pipeline's own markers, e.g.:

- changed-module / changed-path computations (`CHANGED_MODULES=`, `rsync` file lists)
- per-target sections ("Updating tenant X", "-u module_a,module_b", service restart lines)
- classification decisions ("class=light/full", "skipping tenant", warnings)
- timestamps on each step — these give you the minute a change went live per target

This tells you, per deploy: which modules were updated on which tenants at what time.
A module merely present in the repo but never `-u`-updated on a tenant may still be
running old code there — the logs are the truth, not the tree.

### 4. Correlate with git history

```bash
git log --since=<window-start> --until=<window-end> --oneline master
git log -S "<literal string from the symptom>" --oneline   # find the introducing commit
git show <sha> --stat                                       # what surface it touched
```

Match candidate commits to the deploy run that carried them (step 2's ranges), then
confirm the module they touch was actually updated on the affected target (step 3).

### 5. Distinguish CAUSED from EXPOSED

The commit that made a symptom visible often did not create the offending code. A
change can *expose* pre-existing (stock/framework/vendor) behavior by routing users to
a screen, menu, or code path they never reached before. Test: search the entire history
for the offending string/element —

```bash
git log -S "offending string" --all --oneline
```

If it never appears, the symptom lives in vendor/core code and your commit merely
exposed it. The fix is then an override/branding/guard layer, and — critically — **a
revert will not remove the underlying surface** (see `production-revert-discipline`).

### 6. If logs aren't enough: dispatch a read-only diagnostic run — carefully

If the pipeline has a read-only ops workflow (status dump, module listing), you can
dispatch it for fresh evidence. Two hard-won rules:

- **Environment protection rules block prod-scoped workflows from non-default
  branches.** A `workflow_dispatch` pinned to a protected environment will be rejected
  when dispatched from your feature branch ("Branch not allowed"). Don't fight it —
  fall back to mining existing run logs (step 3), which usually suffice.
- **Temp-commit hygiene:** if you must push a temporary workflow tweak to test a
  dispatch, drop it afterwards (`git reset --hard <before> && git push --force-with-lease`)
  so the diagnostic never lands in the PR. Never leave diagnostic commits in history.

## Output form

Report attribution as a chain, each link cited:

> Symptom S first reachable after **deploy run R** (started `<UTC time>`, workflow log:
> "Updating tenant T: -u module_m"), which carried **commit C** (`<sha> <subject>`),
> the only commit in R's range touching that surface. C exposed/caused S because …

## Pitfalls

- **"It's on master" ≠ "it's deployed."** Failed runs, `paths-ignore`, and scoped
  per-module updates all break that equivalence.
- **Retro-fitted assumptions.** Verify the log actually says the module updated on the
  *specific* tenant/target that shows the symptom — pipelines skip unhealthy targets.
- **Local-time drift.** Deploy logs are UTC; user reports rarely are.
- **One deploy, many commits.** A run can carry dozens of commits — narrow with
  `git log -S`/`--stat` inside the run's range, don't blame the merge commit.

## Combining with other skills

- `web-deploy-verification` — forward-looking twin (confirm a fix IS live after you ship it).
- `production-revert-discipline` — what to do once you've attributed the culprit.
- `temporal-finding-validation` — UTC-normalized timeline discipline for findings.

From ever-just/agentskills, MIT.

More from ever-just/agentskills

Signals

Stars
5
Forks
1
Open issues
0
Last commit (this folder)
Jul 20, 2026 (3 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from ever-just

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get deploy-log-forensics running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying deploy-log-forensics?

CallGet help
Cite this page

deploy-log-forensics skill. Agent Mart. https://agentmart.dev/skills/ever-just-deploy-log-forensics (last updated 2026-10-24)