agentsclimarketplace

Dcg

Skill boshu2/agentops/skills-codex/dcg

Handle blocked destructive commands andFrom its SKILL.md

Install
npx -y skills add boshu2/agentops --skill dcg

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

8.5 KB, ~2.1k tokens by cl100k_base, as published. Nobody here has run it

<!-- TOC: Core Insight | THE EXACT WORKFLOW | Quick Reference | Safe Alternatives | What Gets Blocked | Anti-Patterns | Configuration | References -->

DCG: When You Get Blocked

Core Insight: Blocks are checkpoints, not errors. A safe alternative almost always exists. Find it before mentioning override.

Constraints

  • Never request, generate, or run an allow-once bypass because only the human may authorize and execute the exact blocked command.
  • Preserve the user's intended outcome with the narrowest reversible alternative because the guard protects state, not merely command spelling.
  • Explain the matched rule and surviving risk before asking for judgment; never retry, obfuscate, or route around a DCG block.

Quick Navigation

I need to...Go to
Handle a block right nowTHE EXACT WORKFLOW
Find a safe alternativeSafe Alternatives
See all CLI commandsCOMMANDS.md
Enable more rule packsPACKS.md
Configure per-projectCONFIG.md
Debug hook issuesTROUBLESHOOTING.md

THE EXACT WORKFLOW

When blocked, follow this sequence every time:

1. Run `dcg explain "cmd"` → Understand why (see trace)
2. Check Safe Alternatives table → Use if exists (DON'T mention override)
3. No alternative? → Explain risk clearly, let human decide
4. Human approves? → THEY run: dcg allow-once CODE

Never: Ask for override first. Never retry silently. Never circumvent.

Risk-tiered approval counts

When no safe alternative exists and the human must decide, the number of distinct human approvals scales with what the command can destroy:

TierBlast radiusApprovals required
Recoverableundoable via reflog/stash/trash/backup1 allow-once for this exact command
Destructive-localpermanently deletes local, uncommitted, or unbacked state1 allow-once, granted only after you name the exact state lost and confirm no backup exists
Destructive-sharedshared history, remote branches, databases, namespaces others use1 approval per individual command occurrence — never batched, never pattern-widened

Stop conditions: never present a tier-2 or tier-3 command as tier-1; never convert several pending blocks into one blanket approval. A single "yes" that gets spent across multiple destructive commands is the approval laundering failure mode — each allow-once code is bound to one command in one directory, and the workflow must keep it that way.

Example block output:

BLOCKED: git reset --hard HEAD
Rule: core.git:reset-hard
Reason: Discards uncommitted changes permanently
Allow-once code: ab12
Safer alternative: git stash

Good response:

"I wanted to discard changes but git reset --hard was blocked. Let me use git stash instead—recoverable if needed." [proceeds with stash]

Safe Alternatives

BlockedUse InsteadWhy
git reset --hardgit stashRecoverable
git checkout -- filegit stash push filePreserves changes
git push --forcegit push --force-with-leaseChecks remote unchanged
git clean -fdgit clean -fdn (preview)Shows what would delete
git stash dropgit stash list firstVerify which stash
rm -rf /pathrm -ri /path or verify pathInteractive/confirm
kubectl delete namespacekubectl delete -l app=XSelective deletion
DROP DATABASEBackup firstHuman approves
docker system prune -adocker system df firstSee what's used

Quick Reference

dcg doctor              # Health check — hook registered?
dcg explain "cmd"       # WHY is it blocked? (with trace)
dcg test "cmd"          # Would this be blocked? (dry-run)
dcg allow-once CODE     # Human approves (THEY run this)
dcg packs               # List available rule packs
dcg scan --staged       # Pre-commit: scan for issues

What Gets Blocked

CategoryPatternsSafe Variants
Git destructivereset --hard, checkout --stash, restore --staged
Git historypush --force, branch -D--force-with-lease, -d
Git stashstash drop, stash clearstash list first
Filesystemrm -rf (dangerous paths)/tmp/* allowed
DatabaseDROP, TRUNCATE, DELETE w/o WHEREAdd WHERE clause
K8sdelete namespace, delete --all-l label selector

Context-aware: rm -rf ./build allowed, rm -rf / blocked.

dcg explain example (7-step pipeline):

$ dcg explain "git reset --hard HEAD"
BLOCKED by core.git:reset-hard

Evaluation trace:
  1. Config allow overrides: no match
  2. Config block overrides: no match
  3. Heredoc detection: not applicable
  4. Quick reject: triggered (contains "reset")
  5. Context sanitization: no changes
  6. Normalization: git reset --hard HEAD
  7. Pack evaluation:
     - Safe patterns: no match
     - Destructive: MATCH "reset --hard"

Suggestion: Use `git stash` to preserve changes

Anti-Patterns

❌ "Command blocked. Run dcg allow-once ab12"  → Find alternative first!
❌ *Retrying silently or circumventing*         → Always acknowledge blocks
❌ Treating blocks as errors                    → They're checkpoints
❌ Asking user to allow-once without explaining → They need context

Configuration

# .dcg.toml — enable rule packs per-project
[packs]
enabled = ["database.postgresql", "kubernetes.kubectl", "cloud.aws"]

[overrides]
allow_patterns = ["rm -rf ./node_modules"]  # Project-specific safe

Environment variables:

  • DCG_PACKS="containers.docker,kubernetes" — Enable packs
  • DCG_DISABLE="kubernetes.helm" — Disable specific packs
  • DCG_BYPASS=1 — Escape hatch (human-only)

Key Facts

  • 49+ rule packs available (database, containers, k8s, cloud, etc.)
  • Sub-millisecond latency — won't slow your workflow
  • Fail-open on timeout — if DCG hangs, command runs (with warning)
  • Heredoc scanning — inline scripts (bash -c, python -c) are analyzed
  • Allow-once codes — 4 hex chars, 24h expiry, bound to exact command+directory

The Incident That Started It All

On December 17, 2025, an AI agent ran git checkout -- on files containing hours of uncommitted work. The files were recovered via git fsck --lost-found, but it proved: instructions don't prevent execution—mechanical enforcement does.


Validation

# Quick health check
dcg doctor | head -20

# Test if a command would be blocked
dcg test "git reset --hard HEAD"

# Should show: WOULD BE BLOCKED

Output Specification

  • Path: the response and command output on stdout/stderr; write .dcg.toml or .dcg/allowlist.toml only when configuration was explicitly requested.
  • Filename: preserve DCG's project filenames exactly; ordinary block handling creates no persistent file.
  • Format: state the blocked command, matched rule, risk, reversible alternative, and the alternative's validation result; quote commands exactly.
  • Exit code: run bash skills/dcg/scripts/validate-dcg.sh and require zero for installation/configuration work; a blocked dcg test result is expected evidence, not permission to bypass.
  • Downstream handoff: proceed with the validated safe alternative, or hand the exact risk and allow-once choice to the human when no equivalent exists.

Quality Checklist

  • The response identifies the exact block and rule without exposing or suggesting an unauthorized bypass path.
  • The chosen alternative is narrower, reversible where possible, and demonstrably preserves the user's requested outcome.
  • Validation distinguishes an expected destructive-command block from a broken DCG installation or configuration.

Scripts

ScriptUsage
./scripts/validate-dcg.shFull installation validation

References

What ships with it: 10 files

38.8 KB alongside SKILL.md, 1 of them executable

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.