Skip to content
Back to skills

Pstack Interrogate

ASecurity

Conduct rigorous multi-perspective diff interrogation and code review. Categorize all findings strictly into 'act on', 'consider', 'noted', and 'dismissed' with explicit technical rationale. Use before opening or merging PRs.

  • 38 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 28, 2026
securitygobashsqltestingrefactoringgitapidatabasesecurityperformance

Works with

  • api

Security analysis

A100/100

Scanned September 28, 2026

npx -y skills add IgorGanapolsky/trading --skill pstack-interrogate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pstack Interrogate?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pstack Interrogate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/igorganapolsky-pstack-interrogate/badge)](https://www.skillsdirectory.com/skills/igorganapolsky-pstack-interrogate)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: pstack-interrogate
description: "Conduct rigorous multi-perspective diff interrogation and code review. Categorize all findings strictly into 'act on', 'consider', 'noted', and 'dismissed' with explicit technical rationale. Use before opening or merging PRs."
---

# pstack: /interrogate (Diff Interrogation & Code Review)

The `/interrogate` skill implements the adversarial review discipline from the **pstack** engineering playbook. Every git diff is interrogated from multiple engineering perspectives (Correctness, Security, Performance, Operability) and all critique is sorted into four unambiguous categories.

---

## The Four Categorical Buckets

1. **`act on`** (Blocking):
   - Definite bugs, edge-case crashes, logic errors.
   - Security issues (hardcoded credentials, corporate email leakage).
   - Invariant violations (e.g. attempting live order submission when `live_blocked: true`).
   - Breaking changes to public interfaces or schema mutations.
   - *Requirement: Must be resolved before commit or merge.*

2. **`consider`** (Non-Blocking Advisory):
   - Architectural trade-offs (e.g. caching vs recomputing, memory footprint).
   - Potential future scalability limits.
   - Ergonomic alternatives that are not strictly necessary now.
   - *Requirement: Document whether to adopt now or defer to a backlog issue.*

3. **`noted`** (Informational):
   - Stylistic observations, comment clarifications, minor naming thoughts.
   - Cross-references to existing code patterns.
   - *Requirement: Acknowledge; no blocking action required.*

4. **`dismissed`** (Intentional Rejection):
   - Review comments that are false positives or misunderstand the intent.
   - Out-of-scope refactoring requests.
   - *Requirement: Must state concrete, falsifiable technical rationale for dismissal.*

---

## Interrogation Procedure

### Step 1: Capture the Exact Diff
```bash
git diff origin/main...HEAD > /tmp/candidate.diff
```

### Step 2: Multi-Perspective Audit
Audit the diff across 4 lenses:
1. **Trading Risk & Safety Lens**:
   - Are live capital locks respected?
   - Does any order code bypass `strategy_kill_switch.json`?
   - Are ledger updates (`trades.json`) atomic and consistent?
2. **Hygiene & Compliance Lens**:
   - Are there any corporate email domains (`*@ecisolutions.com`) or corporate GitHub accounts?
   - Are commit author and email personal (`iganapolsky@gmail.com`)?
   - Are temporary files, caches, or `.DS_Store` excluded?
3. **Performance & Concurrency Lens**:
   - Are there unindexed database scans or quadratic loops?
   - Are file locks or worktree claims respected?
4. **Resilience & Testing Lens**:
   - Is every new branch covered by deterministic unit/integration tests?
   - Does `make check` pass completely?

### Step 3: Emit Categorized Verdict
Output format:
```markdown
### Diff Interrogation Summary: [Branch Name]

#### Act On (Blocking)
- [ ] `src/risk/spread.py:42`: Unhandled `ZeroDivisionError` when width is zero. Fix: add width validation guard.

#### Consider (Non-Blocking)
- `src/core/cache.py:15`: Consider setting TTL to 60s instead of 300s to match options quote frequency.

#### Noted
- Clean separation of dataclasses from execution logic.

#### Dismissed
- Dismissed recommendation to use external Redis: repository policy mandates self-contained JSON/SQLite ledgers for portability.
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…