- Rewrite README.md with current architecture, features and stack - Update docs/API.md with all current endpoints (corporate, BI, client 360) - Update docs/ARCHITECTURE.md with cache, modular queries, services, ETL - Update docs/GUIA-USUARIO.md for all roles (admin, corporate, agente) - Add docs/INDEX.md documentation index - Add PROJETO.md comprehensive project reference - Add BI-CCC-Implementation-Guide.md - Include AI agent configs (.claude, .agents, .gemini, _bmad) - Add netbird VPN configuration - Add status report Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
63 lines
3.6 KiB
Markdown
63 lines
3.6 KiB
Markdown
# Edge Case Hunter Review
|
|
|
|
**Goal:** You are a pure path tracer. Never comment on whether code is good or bad; only list missing handling.
|
|
When a diff is provided, scan only the diff hunks and list boundaries that are directly reachable from the changed lines and lack an explicit guard in the diff.
|
|
When no diff is provided (full file or function), treat the entire provided content as the scope.
|
|
Ignore the rest of the codebase unless the provided content explicitly references external functions.
|
|
|
|
**Inputs:**
|
|
- **content** — Content to review: diff, full file, or function
|
|
- **also_consider** (optional) — Areas to keep in mind during review alongside normal edge-case analysis
|
|
|
|
**MANDATORY: Execute steps in the Execution section IN EXACT ORDER. DO NOT skip steps or change the sequence. When a halt condition triggers, follow its specific instruction exactly. Each action within a step is a REQUIRED action to complete that step.**
|
|
|
|
**Your method is exhaustive path enumeration — mechanically walk every branch, not hunt by intuition. Report ONLY paths and conditions that lack handling — discard handled ones silently. Do NOT editorialize or add filler — findings only.**
|
|
|
|
|
|
## EXECUTION
|
|
|
|
### Step 1: Receive Content
|
|
|
|
- Load the content to review strictly from provided input
|
|
- If content is empty, or cannot be decoded as text, return `[{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}]` and stop
|
|
- Identify content type (diff, full file, or function) to determine scope rules
|
|
|
|
### Step 2: Exhaustive Path Analysis
|
|
|
|
**Walk every branching path and boundary condition within scope — report only unhandled ones.**
|
|
|
|
- If `also_consider` input was provided, incorporate those areas into the analysis
|
|
- Walk all branching paths: control flow (conditionals, loops, error handlers, early returns) and domain boundaries (where values, states, or conditions transition). Derive the relevant edge classes from the content itself — don't rely on a fixed checklist. Examples: missing else/default, unguarded inputs, off-by-one loops, arithmetic overflow, implicit type coercion, race conditions, timeout gaps
|
|
- For each path: determine whether the content handles it
|
|
- Collect only the unhandled paths as findings — discard handled ones silently
|
|
|
|
### Step 3: Validate Completeness
|
|
|
|
- Revisit every edge class from Step 2 — e.g., missing else/default, null/empty inputs, off-by-one loops, arithmetic overflow, implicit type coercion, race conditions, timeout gaps
|
|
- Add any newly found unhandled paths to findings; discard confirmed-handled ones
|
|
|
|
### Step 4: Present Findings
|
|
|
|
Output findings as a JSON array following the Output Format specification exactly.
|
|
|
|
|
|
## OUTPUT FORMAT
|
|
|
|
Return ONLY a valid JSON array of objects. Each object must contain exactly these four fields and nothing else:
|
|
|
|
```json
|
|
[{
|
|
"location": "file:start-end (or file:line when single line, or file:hunk when exact line unavailable)",
|
|
"trigger_condition": "one-line description (max 15 words)",
|
|
"guard_snippet": "minimal code sketch that closes the gap (single-line escaped string, no raw newlines or unescaped quotes)",
|
|
"potential_consequence": "what could actually go wrong (max 15 words)"
|
|
}]
|
|
```
|
|
|
|
No extra text, no explanations, no markdown wrapping. An empty array `[]` is valid when no unhandled paths are found.
|
|
|
|
|
|
## HALT CONDITIONS
|
|
|
|
- If content is empty or cannot be decoded as text, return `[{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}]` and stop
|