# CLAUDE.md – Go No Go

## Project Overview

Laravel 12 application with Laravel Nova 5 administration panel. The admin panel is served at `/cp`. Frontend users authenticate via Azure AD SSO (Laravel Socialite). Nova uses its built-in authentication.

- **Framework:** Laravel 12
- **Admin Panel:** Laravel Nova 5 at `/cp`
- **Auth (frontend):** Laravel Socialite with Azure AD SSO
- **Auth (Nova):** Built-in Nova authentication
- **Database:** MySQL (`go-no-go`)
- **Local URL:** http://go-no-go.test (Laravel Herd)

## Blaude Execution Flow

Before starting any task, load application knowledge:

### Phase 1: Load Application Knowledge

1. Read `docs/index.md` to understand available documentation
2. Based on the task, identify which documentation files are relevant
3. Read the relevant documentation files to load context
4. Always include docs and rules about sub-agents
5. If `docs/index.md` doesn't exist, **STOP** and inform the user

### Phase 2: Analyze Task Requirements

1. Parse the task description
2. Determine which sub-agents will be needed
3. Identify which documentation is most relevant
4. Plan the execution approach

### Phase 3: Execute Task

1. Use the TodoWrite tool to create a task list
2. Launch appropriate sub-agents and let them read the relevant docs found in Phase 1
3. Follow async execution patterns (parallel when independent, sequential when dependent)
4. Track progress by updating todos

## Claude Code – Mandatory Sub-Agent Orchestration Rules

You are operating in a project that supports **specialized sub-agents**.

These rules are **non-optional**.

### Core Principle

**You are an orchestrator, not a solo executor.**

Whenever a task involves analysis, code changes, verification, or testing, you MUST:
- Identify suitable sub-agents
- Delegate work to them
- Coordinate their outputs
- Only integrate results at the end

### Absolute Stop Rule

If you are about to write, modify, refactor, or delete code directly, STOP.

Before making any code change, you MUST:
1. Identify available sub-agents
2. Decide which sub-agents should perform the work
3. Delegate the work to them

Direct code edits without delegation are considered an incorrect response.

### Mandatory Workflow

#### Phase 1: Task Decomposition & Agent Selection

Before starting:
1. Break the task into clear, concrete subtasks
2. For each subtask, determine what specialization is required and whether it can run independently
3. Assign each subtask to a specialized sub-agent

You MUST explicitly state which sub-agents are being used and why.

#### Phase 2: Parallel Execution

Default assumption: subtasks run in parallel.

- Launch all independent sub-agents in a single message
- Each sub-agent must have a clearly defined scope and explicit file or responsibility boundaries
- Sub-agents MUST NOT overlap responsibility unless explicitly required

Sequential execution is allowed ONLY when a hard dependency exists.

#### Phase 3: Verification & Synthesis

After sub-agents complete:
1. Verify all delegated tasks completed successfully
2. Resolve conflicts or inconsistencies
3. Integrate outputs into a coherent result

For any user-facing or logic-critical change, delegate verification to an appropriate testing or validation sub-agent.

### Parallelism Rules

Run in parallel:
- Independent file changes
- Backend + frontend work
- Code implementation + documentation
- Multiple exploration queries

Run sequentially:
- Exploration then Implementation
- Implementation then Testing
- Testing then Fixes then Re-testing

### Transparency Requirements

You MUST announce which sub-agents are being used before execution and summarize each sub-agent's contribution after execution.

## Key Commands

- `herd php artisan migrate:fresh --seed` – Reset database with seed data
- `herd php artisan app:schema-generate` – Regenerate `database/schema.md`
- `/blaude_work` – Execute tasks with full application knowledge
- `/blaude_update_docs` – Update documentation and index
- `/blaude_make_schema` – Generate database schema documentation

## Test User

- **Email:** jonathan@blijnder.nl
- **Password:** secret
- **Auto-login:** `GET /login-jonathan` (local/testing environments only)
