Skip to content

docs: correct conductor validator counts to match the router - #1014

Merged
EivMeyer merged 1 commit into
mainfrom
eivind/docs-validator-counts
Aug 13, 2026
Merged

docs: correct conductor validator counts to match the router#1014
EivMeyer merged 1 commit into
mainfrom
eivind/docs-validator-counts

Conversation

@EivMeyer

Copy link
Copy Markdown
Collaborator

The validator table in CLAUDE.md and AGENTS.md says STANDARD gets 3 validators and CRITICAL gets 5. Neither number is real.

getValidatorCount() in src/config-router.ts:85-93 returns 2 for STANDARD and 0 for CRITICAL. The conductor prompts in cluster-templates/conductor-bootstrap.json already quote 2 and 4. So the router and the prompts agree with each other, and the two reference docs disagree with both.

Where the numbers come from:

  • STANDARD sets validator_count: 2, which activates validator-requirements (>= 1 && < 4) and validator-code (>= 2 && < 4) in full-workflow.json.
  • CRITICAL sets validator_count: 0, which is a signal rather than a count: it activates the meta-coordinator (complexity == 'CRITICAL' && validator_count == 0), which loads quick-validation and then heavy-validation, 2 validators each, so 4 in two stages.

Also corrects the conductor-bootstrap.json description, which said level1 junior / level2 senior where the agents are modelLevel: level2 and level3.

Docs only, no behaviour change. Lifted from #863, which is otherwise stale against the README rewrite in #945.

One thing this doesn't fix

validator-security and validator-tester in full-workflow.json are both gated on validator_count == 3, and the router never emits 3. They can only ever run through the CRITICAL sub-clusters, never inline. That's either a dead condition or an off-by-one against the >= 2 && < 4 gate above it; leaving it alone here since it's a behaviour question, not a docs one.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LeBinMzJJjDvW2fPSAu14S

@greptile-apps

greptile-apps Bot commented Aug 13, 2026

Copy link
Copy Markdown

Greptile Summary

The PR aligns the reference documentation with the router’s validator counts and corrects the conductor template’s model-level description.

  • Documents two inline validators for STANDARD workflows.
  • Explains CRITICAL’s four validators across quick and heavy validation stages.
  • Clarifies UNCERTAIN escalation behavior and the CRITICAL validation templates.
  • Updates the conductor description to match its configured level2 and level3 agents.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
AGENTS.md Updates validator counts and routing documentation to match the router and two-stage CRITICAL workflow.
CLAUDE.md Mirrors the corrected validator topology and UNCERTAIN escalation documentation.
cluster-templates/conductor-bootstrap.json Corrects descriptive model tiers to match the configured junior and senior conductor levels.

Reviews (2): Last reviewed commit: "docs: correct conductor validator counts..." | Re-trigger Greptile

CLAUDE.md and AGENTS.md both claimed 3 validators for STANDARD and 5 for
CRITICAL. getValidatorCount() in src/config-router.ts returns 2 and 0, and
the conductor prompts in cluster-templates/conductor-bootstrap.json already
say 2 and 4, so the two reference docs were the only place still wrong.

CRITICAL returning 0 is the confusing part, so it's now spelled out: the 0
skips full-workflow's inline validators and activates the meta-coordinator,
which runs quick-validation then heavy-validation at 2 validators each.

Also fixes the bootstrap description, which said level1 junior / level2
senior where the agents are modelLevel level2 and level3.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LeBinMzJJjDvW2fPSAu14S
@EivMeyer
EivMeyer force-pushed the eivind/docs-validator-counts branch from 3200893 to 0272e5c Compare August 13, 2026 12:10
@EivMeyer
EivMeyer added this pull request to the merge queue Aug 13, 2026
euntaek-hong pushed a commit to wrongbutworks/zeroshot that referenced this pull request Aug 13, 2026
…-open-engine#1015)

Two gaps in the current README, both verified against `main` at
`7be7eea`.

**The routing isn't on the page.** The README presents the
executor–verifier loop as universal. `getBase()` in
`src/config-router.ts:61-73` says otherwise: TRIVIAL goes to
`single-worker` with no validator at all, and any DEBUG above TRIVIAL
goes to `debug-workflow`, which is an investigator/fixer/tester shape
rather than executor plus verifier. "Fix a login bug" is one of the
README's own good-fit examples and lands on that second path. The new
table lists the rules in router precedence order, first match wins, and
states the TRIVIAL exception rather than leaving it to be discovered.

**`--config` was invisible.** `zeroshot run --config`
(`cli/index.js:2709`) and `zeroshot config list/show/validate`
(`cli/index.js:4709+`) appeared zero times in the README, so the page
reads as a fixed pipeline when the runtime is a general graph engine.
Adds a short section and both commands in the reference block.

Every claim in the new sections checked against source:

- validator counts per workflow: the `condition` gates in
`cluster-templates/base-templates/full-workflow.json`, against
`getValidatorCount()`
- CRITICAL's two stages: the `meta-coordinator` loading
`quick-validation` then `heavy-validation`, 2 validators each
- "CRITICAL is meant to be rare": the bias instruction in both conductor
prompts in `conductor-bootstrap.json`
- trigger predicates: `src/logic-engine.js:12,166` evaluates them in a
`vm` sandbox
- cycle rule: `src/config-validator.js:1660-1680` errors on a 3+ ring
with no escape logic, warns when there is
- nesting: `MAX_DEPTH = 5` in `src/config-validator.js:84`

## One copy change

The Open Engine section promised "approve, or a reproducible failure."
Only `validator-requirements` requires command evidence
(`criteriaResults[].evidence` with command, exitCode, output).
`validator-code` and `validator-security` return free-text `errors[]`,
and an instant-reject on a swallowed error has no command to re-run.
Changed to the specific objections that blocked it, which is what those
validators actually return.

Docs only. Prettier clean. Companion to the-open-engine#1014; both lift the parts of
the-open-engine#863 that are still true after the README rewrite in the-open-engine#945.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01LeBinMzJJjDvW2fPSAu14S

Co-authored-by: Eivind <eivindcovibes.ai@Eivinds-MacBook-Pro.local>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Merged via the queue into main with commit 7ee8594 Aug 13, 2026
17 of 19 checks passed
@EivMeyer
EivMeyer deleted the eivind/docs-validator-counts branch August 13, 2026 13:08
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 6.39.2 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant