AI Agent Job Flow Validator
Pipelines of AI agents and batch jobs are often wired together by file watchers and run order. Describe the jobs and their dependencies in plain text or JSON, and the validator finds circular dependencies (deadlocks), dependencies on jobs that do not exist, duplicate definitions and vague run conditions, then prints the flow as a tree.
1. Plain text:
job name: depends=A,B watch=target when=free text. after and needs also work for depends. Lines starting with # are comments.2. JSON array: each item has
name, optional depends (array), watch, when (or condition) and subagents (the same shape, nested). A sub-agent with no depends key implicitly depends on its parent.
YAML is not read; convert it to JSON first.
About this tool
When several agents or jobs must run in a defined order, a single wrong dependency can stop the whole pipeline: two jobs that wait for each other never start, and a job that depends on a misspelled name never runs. This validator reads a short description of the jobs and reports those mistakes before you run anything.
The checks run in your browser. Nothing you paste is sent to a server. The tool checks the structure you describe; it does not run jobs or contact any agent framework.
How it works
- Danger: a job that depends on itself; a dependency on a job that is not defined (usually a typo); and a circular dependency, shown as the path
A → B → A. A cycle that includes a sub-agent gets an extra note, because it often means the parent waits for the sub-agent while the sub-agent waits for the parent. - Caution: a job name defined more than once (the last definition wins); a run condition containing vague wording such as maybe, probably, as soon as possible, if possible, whenever, roughly, as needed, good enough or “looks good”; and, for JSON input, a sub-agent that appears under more than one parent.
- Info: a job with no dependencies that nothing else depends on, when there is more than one job.
- Flow structure lists jobs with no dependencies as roots and nests each job under the jobs that it depends on, so a job that waits on two others is shown in full the first time and marked as repeated afterwards. Jobs that cannot be reached from any root (for example a group that only depends on each other) are listed at the end with a warning.
- Text format details: the job name is everything before the first colon. After it, the keywords
depends,after,needs,watchandwhen(followed by=or:) start a value that continues to the next keyword. Dependencies are separated by commas. Because keywords are found anywhere in the line, avoid writing “when=” or “watch=” inside a condition’s free text. - The vague-wording check only looks at the condition text, and only for the words in the list above, so it is a prompt to review rather than a full review of the wording.
FAQ
Q. What counts as a deadlock here?
A. A set of jobs that each wait, directly or through others, for one of the others to finish. None of them can start. The validator reports the path so you can decide which dependency to remove or reverse.
Q. Why are vague conditions a problem for AI agents?
A. An agent has to interpret the condition, and wording such as “if it looks good” can be read differently on every run. A measurable criterion (for example “error rate below 1%”) behaves the same every time.
Q. Can I paste YAML or a framework config?
A. Not directly. Convert it to the JSON shape above, or write one line per job. The tool does not know any framework’s own syntax.