---
title: "Project Scanning Flow"
description: "New projects are automatically set to Monitored on first session. No prompt, immediate protection."
type: skill
canonical_url: https://claudary.paisolsolutions.com/skills/opt-in-flow
source: "Claudary"
difficulty: intermediate
author: "Claude Code Knowledge Pack"
date: 2026-07-10T11:31:31.999Z
license: CC-BY-4.0
attribution: "Project Scanning Flow — Claudary (https://claudary.paisolsolutions.com/skills/opt-in-flow)"
---

# Project Scanning Flow
New projects are automatically set to Monitored on first session. No prompt, immediate protection.

## Overview

# Project Scanning Flow

## Default: Auto-Monitor (`PARRY_ASK_ON_NEW_PROJECT=false`)

New projects are automatically set to Monitored on first session. No prompt, immediate protection.

```
                    Session Start
                         |
                         v
               +-------------------+
               | UserPromptSubmit  |
               | hook fires        |
               +-------------------+
                         |
                         v
               +-------------------+
               | Under ignore dir? |--yes--> Skip (return success)
               +-------------------+
                         | no
                         v
               +-------------------+
               | Check repo state  |
               | in RepoDb         |
               +-------------------+
                    |    |    |
          +---------+    |    +---------+
          |              |              |
          v              v              v
     [Monitored]    [Unknown]      [Ignored]
          |              |              |
          v              v              v
    Run audit       Auto-set to      Skip
    (with cache)    Monitored,       (return success)
          |         run audit
          |         (with cache)
          v              |
    Show warnings        v
    (if any)       Show warnings
                   (if any)
```

## Prompt Mode (`PARRY_ASK_ON_NEW_PROJECT=true`)

Restores the ask-first behavior: scan once, show findings, ask user to decide.

```
                    Session Start
                         |
                         v
               +-------------------+
               | UserPromptSubmit  |
               | hook fires        |
               +-------------------+
                         |
                         v
               +-------------------+
               | Under ignore dir? |--yes--> Skip (return success)
               +-------------------+
                         | no
                         v
               +-------------------+
               | Check repo state  |
               | in RepoDb         |
               +-------------------+
                    |    |    |
          +---------+    |    +---------+
          |              |              |
          v              v              v
     [Monitored]    [Unknown]      [Ignored]
          |              |              |
          v              v              v
    Run audit       Run audit        Skip
    (with cache)    (bypass cache)   (return success)
          |              |
          v              v
    Normal flow     Return additionalContext
    (no prompt)     with findings + instructions
                         |
                         v
              +------------------------+
              | Claude asks user:      |
              | "Enable injection      |
              |  scanning?"            |
              +------------------------+
                    |           |
                    v           v
               [Yes]         [No]          [No answer]
                    |           |                |
                    v           v                v
              Claude runs  Claude runs     Stays Unknown
              `parry       `parry          (retries next
               monitor`     ignore`         session)
                    |           |
                    v           v
              Monitored     Ignored
                    |
                    v (if findings existed)
              +------------------------+
              | Claude offers to help  |
              | fix findings           |
              +------------------------+
```

## PreToolUse / PostToolUse Flow

```
               PreToolUse or PostToolUse
               hook fires
                         |
                         v
               +-------------------+
               | Under ignore dir? |--yes--> Skip (return success)
               +-------------------+
                         | no
                         v
               +-------------------+
               | Check repo state  |
               +-------------------+
                    |    |    |
          +---------+    |    +---------+
          |              |              |
          v              v              v
     [Monitored]    [Unknown]      [Ignored]
          |              |              |
          v              v              v
    Run all         Skip all        Skip all
    security        scanning        scanning
    layers          (no consent)
          |
          v
    Normal scan
    (7 layers for PreToolUse,
     output scan for PostToolUse)
```

## State Machine

```
                    +-------------------+
                    |     Unknown       |
                    | (initial state)   |
                    +-------------------+
                       /           \\
                      /             \\
          parry monitor          parry ignore
          (or auto-monitor)
                    /                 \\
                   v                   v
        +-------------+       +-------------+
        |  Monitored  |       |   Ignored   |
        |  (scanning  |       |  (no scan)  |
        |   active)   |       |             |
        +-------------+       +-------------+
               |   ^               |   ^
               |   |               |   |
        parry  |   | parry  parry  |   | parry
        ignore |   | monitor ignore|   | monitor
               v   |               v   |
        +-------------+       +-------------+
        |   Ignored   |       |  Monitored  |
        +-------------+       +-------------+

        parry reset (from any state) --> Unknown
```

## Configuration

| Setting | Effect |
|---|---|
| `PARRY_ASK_ON_NEW_PROJECT=false` (default) | Auto-monitor new projects, no prompt |
| `PARRY_ASK_ON_NEW_PROJECT=true` | Ask user before monitoring each new project |
| `PARRY_IGNORE_DIRS=/path/to/parent` | Skip all repos under these parent directories (comma-separated) |
| `parry-guard ignore <path>` | Opt out of scanning for a specific repo |
| `parry-guard monitor <path>` | Opt in to scanning for a specific repo |

## CLI Commands

| Command | Effect |
|---|---|
| `parry monitor [path]` | Set repo to Monitored (enable scanning) |
| `parry ignore [path]` | Set repo to Ignored (disable scanning) |
| `parry reset [path]` | Clear state + caches, back to Unknown |
| `parry status [path]` | Show current state, re-run audit for findings |
| `parry repos` | List all known repos and their states |

---

Source: [Claudary](https://claudary.paisolsolutions.com/skills/opt-in-flow) · https://claudary.paisolsolutions.com
