# What Is the Purpose of the Case Initialization Script in Reverse-Skill?

> Discover the purpose of the case initialization script in reverse-skill. It establishes a secure, governed workspace for authorization before offensive security tasks.

- Repository: [ZhaoXu/reverse-skill](https://github.com/zhaoxuya520/reverse-skill)
- Tags: how-to-guide
- Published: 2026-09-02

---

**The case initialization script in reverse-skill creates a governed workspace that enforces authorization before any offensive security or reverse engineering activity can proceed.**

Every engagement in the *reverse-skill* repository begins with a mandatory setup step. The `case-init.ps1` (PowerShell) and [`case-init.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/case-init.sh) (Bash) scripts serve as the **entry point** that prepares a new analysis case, ensuring that all subsequent tools operate within a documented, auditable scope. This design prevents unauthorized actions by making explicit permission a hard dependency for "ACT" operations like remote exploitation or live traffic interaction.

## Core Responsibilities of the Case Initialization Script

The script performs four critical functions that establish the foundation for every reverse-skill engagement.

### Create the Case Workspace

The script generates a standardized directory structure under `work/<case>/` that houses all artifacts for the project. This layout includes:

- **[`scope.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/scope.md)** — the formal scope and authorization contract
- **[`timeline.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/timeline.md)** — a chronological record of work items
- **`workitems/`** — a folder for individual evidence items

The directory structure follows the repository tree defined in the [README](https://github.com/zhaoxuya520/reverse-skill/blob/main/README.md#case-init-script), ensuring consistency across all cases regardless of platform.

### Populate the Scope Document

The script writes a minimal but essential [`scope.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/scope.md) file that records:

| Field | Description |
|-------|-------------|
| `hint` | The task description supplied via `--hint "<task>"` |
| `case-name` | The identifier provided via `--case-name "<name>"` |
| `auth.status` | The authorization state (must be `granted` for ACT operations) |
| `network_profile` | The operational context (e.g., `lab`, `authorized_target_only`) |

This file acts as the **hard gate** that all later scripts consult. Without `auth.status: granted`, the framework aborts destructive or network-exposing actions with a clear error.

### Enforce the Authorization Rule

Before any offensive action, reverse-skill validates that [`scope.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/scope.md) contains `auth.status = granted` and that the `network_profile` is legal. This enforcement is documented in [[`RULES.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/RULES.md)](https://github.com/zhaoxuya520/reverse-skill/blob/main/RULES.md#case-init-script) and explained narratively in [[`skills/field-journal/precedent-auth.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/field-journal/precedent-auth.md)](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/field-journal/precedent-auth.md).

The case initialization script is therefore not merely administrative—it is the **mandatory authorization step** that makes the entire governance model possible.

### Provide a Cross-Platform CLI

The script exposes a uniform interface across operating systems:

**Windows PowerShell:**

```powershell
powershell -File skills/scripts/case-init.ps1 -Hint "<task>" -CaseName "<case>"

```

**Linux/macOS/Kali Bash:**

```bash
bash skills/scripts/case-init.sh --hint "<task>" --case-name "<case>"

```

Optional arguments support presets for offline samples, explicit network targets, or custom project roots. Full documentation appears in [[`README_AI.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/README_AI.md)](https://github.com/zhaoxuya520/reverse-skill/blob/main/README_AI.md#case-init-script).

## Practical Usage Examples

### Create a CTF Case (Linux/macOS)

```bash
bash skills/scripts/case-init.sh \
    --hint "CTF web challenge" \
    --case-name "ctf-2026-web" \
    --preset ctf-public \
    --target-url https://challenge.example

```

### Create an Offline Malware Case (Windows)

```powershell
powershell -File skills/scripts/case-init.ps1 `
    -Hint "Analyze malicious APK" `
    -CaseName "apk-sample" `
    -Preset offline-sample `
    -Sample ".\malware.apk"

```

### Verify Case Initialization (Any Platform)

```bash
cat work/ctf-2026-web/scope.md

```

Expected output includes:

```

auth:
  status: granted
network_profile: authorized_target_only
hint: CTF web challenge

```

## Key Source Files

| Path | Purpose |
|------|---------|
| `skills/scripts/case-init.ps1` | PowerShell implementation |
| [`skills/scripts/case-init.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/case-init.sh) | Bash implementation (Linux/macOS/Kali) |
| [`RULES.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/RULES.md) | Central policy defining the auth-granted gate |
| [`skills/field-journal/precedent-auth.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/field-journal/precedent-auth.md) | Narrative explanation of authorization requirements |
| [`README_AI.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/README_AI.md) | User-facing documentation with examples |

## Summary

- The **case initialization script** is the mandatory first step for every reverse-skill engagement.
- It creates a **governed workspace** with [`scope.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/scope.md), [`timeline.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/timeline.md), and `workitems/` under `work/<case>/`.
- It **enforces authorization** by requiring `auth.status: granted` before any ACT operations.
- It provides a **consistent CLI** across Windows PowerShell and Unix-like shells.
- Without successful case initialization, the framework **blocks all destructive or network-exposing actions**.

## Frequently Asked Questions

### What happens if I try to run an ACT operation without initializing a case?

The framework aborts with an error. All scripts that perform "ACT" operations—remote exploitation, live traffic interaction, or other potentially harmful actions—check [`scope.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/scope.md) for `auth.status: granted` before proceeding. If the guard fails, execution stops immediately.

### Can I customize the case workspace location?

Yes. The script accepts an optional project root argument. Both `case-init.ps1` and [`case-init.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/case-init.sh) allow you to specify custom paths when the default `work/` directory does not suit your environment.

### Why are there two separate script implementations?

Platform parity. The PowerShell version (`case-init.ps1`) serves Windows environments natively, while the Bash version ([`case-init.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/case-init.sh)) covers Linux, macOS, and Kali Linux. Both enforce identical semantics and produce interchangeable [`scope.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/scope.md) files.

### What presets are available for different engagement types?

The script supports presets like `ctf-public` for competition challenges and `offline-sample` for isolated malware analysis. Presets automatically configure appropriate `network_profile` values and validation rules without manual specification.