Stop Classes in DocsFab
DocsFab names a class and a next action for every operator-visible stop. Use this page to match what a command printed to its stop class, then follow the linked recovery. For more information, refer to DocsFab Status and Configuration Reference.
For why DocsFab stops instead of guessing, and the five kinds of next action, refer to When a Job Stops in DocsFab. For symptom-led steps, refer to Troubleshooting DocsFab.
Recognize the Stop
Start from what the command printed. Do not infer readiness from the process exit code alone. Execution status, product disposition, and publication status are separate planes.
The following diagram classifies the stop from the operator-visible output, then routes you to the matching next action.
If the output has no run ID, you are still before a catalog job. If it has a run ID, inspect that record:
Read execution.status, product.disposition, publication status,
Resumability:, PRODUCT, and NEXT as separate facts. For machine
consumers, use --json and read nextSteps. Do not scrape the human
footer.
Each class in the following sections is a different door. Do not treat every
needs-input string as the same stop.
Stops Before a Run Exists
The following classes stop before DocsFab creates a catalog run.
Stops After a Run Exists
The following classes stop after DocsFab has a run ID.
After a transient provider failure, such as HTTP 429, wait for the provider
condition to clear before copying the retry command in NEXT. The command uses
the saved target repository and retains the original CLI request options.
A review started without an instruction retries without --instruction or
--patch-only. A write workflow retains its selected delivery mode.
The command repeats --composition and each --set value, so the retry uses
the same model settings. NEXT never shows an endpoint set with
--set baseUrl, so for such a run it opens the JSON record instead.
Shell quoting preserves paths and instructions that contain spaces or quotes.
If a saved run lacks enough request context, NEXT opens its JSON record for
inspection instead of guessing a retry command.
Capability and Policy Walls
Some stops cannot be answered with more operator input. Findings of kind
evidence-limitation, blocked-dependency, roadmap-gap, or
product-gap name a wall. A terminal inference attempt of category
provider-terminal or invalid-request also names a wall.
When a wall stops the run, NEXT is docsfab runs show <run-id> --json.
The reason names each wall kind and code, then tells you to change the
request. Narrow or retarget the request, wait for the capability, or
accept the incomplete outcome. Do not retry the unchanged request. A
retained local patch does not resolve the wall, so review it before any
publish.
create-documentation, update-documentation, and
restructure-documentation also record evidence-limitation findings that
the request did not cause. The evaluate and audience steps produce them on
every run. They do not name a wall, and they fall into the following groups:
- Standing limitations:
experimental-quality-profile,insufficient-evidence(the audience rule that create and update always carry), andquality-rubric-unavailable. - Advisory evaluation results:
quality-evaluation.<decision>for the evaluator’s decision, such asquality-evaluation.fail, andquality-hard-gate.<gate>for each hard gate it reported, such asquality-hard-gate.material-omission. A gate id that cannot become a code is reported asquality-hard-gate-unrepresentable.
The evaluator is a model, so its decision and hard gates are advisory
evidence, not a product verdict. They never make the outcome ready. When a
succeeded authoring run has no other wall finding, NEXT is still
docsfab runs show <run-id> --json. The reason tells you to review the
retained patch at its path before any publish. It names the standing
limitations and labels the evaluation results as advisory. Any other
evidence-limitation code on an authoring run, such as an editorial
evidence-limitation.* code, still names a wall. In that case, the wall
reason lists only those codes.
A verified no-change is the exception. When a succeeded update-documentation
run ends with the editorial outcome verified-no-change, it answered the
request, so NEXT is not a wall. NEXT starts with
No documentation change needed; review the kept pages if you disagree
followed by the kept pages. When the plan kept no page, it starts with
No documentation change needed; review the saved evidence if you disagree
instead. NEXT then names the basis and lists the run’s other limitations,
such as one an assessment step recorded, as recorded. When the quality
evaluator answered not-applicable, because a no-change changes no page, that
list includes quality-evaluation-not-applicable. A no-change-basis.* code
discloses the basis of a no-change and never names a wall. Refer to
Reach a Verified No-Change Result.
A wall never produces InputAsk slots, a continue command, or a retry
command. A wall does not replace a supply door. When the outcome also has
a missing governed input, or a needs-human-decision run names an open
human decision, that door owns NEXT. A review-documentation run reports gap
findings about the reviewed pages as its result, so only
evidence-limitation and blocked-dependency findings redirect a
review.
How DocsFab Selects NEXT
A live run footer whose status is failed, needs-input, or
needs-human-decision selects a NEXT command. When an open decision of kind
human-decision is present, NEXT names that decision id and does not fall
back to docsfab doctor. When a capability or policy wall stops the run,
NEXT inspects the saved run, names the wall code, and redirects the request.
A succeeded authoring run whose only limitations are standing or advisory
evaluation codes is not at a wall. Its NEXT tells you to review the retained
patch and names the patch path. A succeeded update-documentation run whose
editorial outcome is verified-no-change is not at a wall either. Its NEXT
says no documentation change is needed, names the kept pages, or the saved
evidence when the plan kept none, and names the basis. Refer to
Capability and Policy Walls.
When structured recovery is otherwise unavailable
on that live path, the command falls back to docsfab doctor
against the original target checkout. Human saved-run replay (docsfab runs show without --json) is stricter: it emits only a parser-validated
continuation or a recovery action tied to the exact saved run. It omits a
placeholder command whose checkout path is unresolved, so human replay can
intentionally show no NEXT until the required selection or path is available.
The sealed JSON nextSteps projection can still carry a legacy/template
placeholder from the summary; treat that field as descriptive evidence, not
a parser-validated executable command or authority. Knowledge continuation
eligible stops print Resumability: first and emit NEXT only after you supply
an attributed snapshot. Operator envelopes print Next action: when the
situation catalog has one. Routing-time docsfab do lists named run
commands before any run exists.
A stop with no next action is generally a defect. The current surfaces have
three bounded exceptions: an unanswered knowledge snapshot, an envelope
whose code is the situation identity while nextAction is omitted, and a
human saved-run replay whose only candidate is the unresolved placeholder
described above. Inspect-only NEXT commands are still guidance: they tell you
not to retry unchanged inference.
Failure Classes
A stop class says what you can do next. A failure class says why the work failed, so reports can count failures by cause. Every failure carries exactly one failure class, the layer that produced it, and the catalogued code DocsFab read the class from. This applies to CLI refusals, failed runs, failed steps, failed model attempts, and hosted dispatcher attempts.
The following table lists the closed set of failure classes.
A failed model request takes its class from the closed provider error class
and HTTP status its attempt recorded. An HTTP 401, 403, or 407 is auth, with
code provider-http-auth. A provider connection that broke with no HTTP
status is infrastructure, with code provider-network.
The layer is one of cli, workflow, inference, host, or harness.
Surfaces show the class in the following places:
- The operator error envelope prints
failure class:and writesfailurein--json. Refer to DocsFab Operator Error Envelope. - A live-agent stop before a run record prints
Failure class:above NEXT. - A failed run prints
Failure class:in its FAILURE footer and indocsfab runs show. The run record storesfailureon the run and on each failed step.--jsonlistsfailuresfor the run, each failed step, and each failed model attempt. - A hosted dispatcher failure line carries
failure. A worker that ran and failed reports its run record’s class.
A failure class does not choose the next action. Classify the stop with the tables above to find what to do.
Related Topics
For more information, refer to the following pages: