> Extracted from SKILL.md Section 16. This file is loaded on demand when target discovery details are needed.
## Overview
Validates that Agent Script `.agent` file targets actually exist in a Salesforce org, providing fuzzy suggestions for missing targets.
## Usage
```bash
# List all active autolaunched flows (candidate action targets)
sf api request rest --json "/services/data/v63.0/tooling/query?q=SELECT+DeveloperName,ProcessType+FROM+Flow+WHERE+IsActive=true+AND+ProcessType='AutoLaunchedFlow'" -o <org-alias>
# List all @InvocableMethod Apex classes
sf api request rest --json "/services/data/v63.0/tooling/query?q=SELECT+Name+FROM+ApexClass+WHERE+Body+LIKE+'%25InvocableMethod%25'" -o <org-alias>
```
## What it does
### 1. Target Extraction
- Finds all `.agent` files in the project
- Parses each file to extract action `target:` values
| `flow://FlowName` | `SELECT ApiName FROM FlowDefinitionView WHERE ApiName = 'FlowName' AND IsActive = true` | Active flows only |
| `apex://ClassName` | `SELECT Name FROM ApexClass WHERE Name = 'ClassName'` | Apex classes |
| `retriever://RetrieverName` | `SELECT DeveloperName FROM DataKnowledgeSpace WHERE DeveloperName = 'RetrieverName'` | Data Cloud retrievers |
| `externalService://ServiceName` | `SELECT DeveloperName FROM ExternalServiceRegistration WHERE DeveloperName = 'ServiceName'` | External services |
| `generatePromptResponse://TemplateName` | `SELECT DeveloperName FROM PromptTemplate WHERE DeveloperName = 'TemplateName' AND Status = 'Active'` | Active prompt templates |
### 3. Fuzzy Matching
When a target is missing:
- Queries for similar names using SOQL `LIKE` patterns
- Calculates Levenshtein distance for close matches
- Suggests up to 3 alternatives sorted by similarity
### 4. I/O Parameter Validation (--validate-io)
- **Flows:** Queries `/services/data/v63.0/actions/custom/flow/{FlowApiName}` for actual I/O schema
- **Apex:** Checks `@InvocableVariable` field names match expected inputs/outputs
- Results appear as non-blocking warnings
### 5. Classification for Scaffold Pipeline
| Signal in Description | Classification | Scaffold Output |
| `Invalid org alias` | Org not authenticated | Run `sf org login web --alias <org-alias>` |
| `SOQL query failed` | Missing permissions | Ensure read access to Flow, ApexClass, etc. |
## Exit Codes
| Code | Meaning |
|------|---------|
| 0 | All targets found |
| 1 | Some targets missing |
| 2 | Critical failure |
## Advanced (requires ADLC repo clone)
The `discover.py` script provides automated discovery with fuzzy matching and I/O validation. It is NOT bundled with the skill — requires cloning the ADLC repo.