DocsFab Live Agent Quickstart
Use the DocsFab live agent to ask questions about a repository, get focused documentation help, or start a bounded workflow in a conversation. Describe the outcome you want in ordinary language. You do not need to name a skill or workflow. For more information, refer to Overview of DocsFab.
Prerequisites
Open a terminal at the root of a local Git repository so DocsFab can recognize
documentation directories such as docs/ or fern/.
Use --read-only when you want inspection without file changes or host
commands.
Quickstart Steps
Start a session, choose what you want the agent to do, and attach sources only when a workflow needs specific files or a merged change.
Start the Live Agent
Run the command from the root of the repository that you want DocsFab to inspect:
The live agent uses your current directory. To target another local repository,
add --repo /absolute/path/to/repository.
DocsFab loads the configured model, skills, quality pack, and workflow catalog.
If setup is incomplete, guided setup runs before the conversation opens. When
the readiness banner appears, enter your request at the You: prompt.
Model setup and configuration details
Guided setup uses the same flow as docsfab setup; you do not need a separate
startup script. At startup, live-agent prints a Configuration: line that
names the configuration root and secrets file. Startup only reads saved
credentials, does not write secrets.env, and leaves an existing configuration
root unchanged. Several sessions can share one configuration root.
When the root is incomplete, guided setup handles keys as follows:
- A stored or exported key does not choose a model. If the root names no
model, for example, a
.envthat holds onlyMODEL_API_KEY, guided setup asks for the model settings because DocsFab has no default model. A key you export in the shell does not replace a stored key, although the current session still uses the exported key. - If no key is stored, guided setup asks before saving an exported key. It offers only the key name that the root’s model profile uses and never saves an exported key for a different provider. If you decline, guided setup asks for the model settings instead.
A key that you export only in the shell works for that session but is not
saved unless you agree. To save or replace a key, run docsfab setup.
Automatic Task Branch
When documentation writes are enabled, DocsFab prepares a unique task
branch in the selected checkout before the first file change if you are
on main, the repository default branch, or detached HEAD. Later writes
in the same session reuse that branch. Reading files and loading skill
instructions do not create a branch.
Automatic branching does not grant commit, push, merge-request, or merge
authority. It does not stash, reset, or discard your staged, unstaged, or
untracked files. Local live-agent uses the --repo checkout you
started; a task branch is not worktree or process isolation. It does not
resolve saved-patch conflicts by overwriting files.
If branch setup fails, DocsFab reports the reason and does not change documentation files.
Try the Main Request Types
At the You: prompt, state the result you want. These examples show the
difference between a direct answer and a bounded workflow.
Ask a Question
Ask for Documentation Help
Start a Workflow
Ask a direct repository question:
The result lands in the chat reply only. A direct answer does not create a run record.
Attach Sources to the Session
Attach sources when the conversation must use a specific tracked file or an already-merged change. Source selection is optional for ordinary questions and focused help.
Use a repository-relative path for each tracked file. Attaching a merge request
requires local glab authentication, and the request must already be merged.
Attach the documents and the merged change the conversation should work from, at the moment you start it:
Repeat --source for each tracked file. --pr and --mr each take one
already-merged merge request. Pass its URL, a host/group/project!number
reference, or the number for the project this checkout points at.
Attached sources are a host selection, not a conversation topic. The following rules apply:
- Every bounded workflow the conversation runs binds exactly these sources, and
it binds them the way
docsfab runbinds the same selection. The writer and the verifier read the same immutable observations. - The agent cannot add, replace, or drop one. You can, with the
/sourcescommands below: the terminal answers them itself, before the line reaches the agent, so nothing the agent writes can change what a run binds. create-documentationandupdate-documentationaccept bound sources. If the conversation asks for another workflow while sources are attached, that run stops and names the workflow rather than dropping your evidence.--sourcereads the file at the selected revision, never your working tree, and a run whose source cannot be read stops before writing and tells you what to change.
Manage Sources During the Conversation
Use these terminal commands at the conversation prompt to inspect or change the selection. Expand the reference for command behavior and limits.
Source commands and limits
Type these at the conversation prompt. The terminal reads them itself, so they never become a request to the agent.
A label is exactly what /sources printed, matched byte for byte.
/sources show and /sources refresh read the file at the revision the session
selected, not your working tree, so an uncommitted edit does not change a
version. A merge-request reference reaches GitLab through the same local glab
authentication docsfab run --pr uses; no credential is read from, or written
to, the conversation.
What these commands will not do:
- They are read literally. A path is stored exactly as you typed it: there is no
shell expansion, no command substitution, no quoting, and no glob, so a file
whose name contains
$(...)or a backtick attaches as itself. - They attach nothing outside the selected repository. An absolute path, a
parent-directory path, a
~/path, a bare URL, and any reference whose own text reads as a host location or holds one of DocsFab’s own configured credentials are refused by name. A refused command changes nothing: no source is attached, detached, or counted as refreshed. - A pasted merge-request link is resolved to its project’s numeric id and checked against the project path in the same link. A link naming another project is refused; no cross-project scope is ever inferred.
/sources removeis refused while a bounded workflow run holds that source as required evidence, and the refusal names the step that requires it.- Detaching an attachment, invalidating a cache and purging a session are three
different operations, and
/sources purgeprints all three side by side before it deletes anything. Only a purge deletes bytes, only a purge is confirmed, and only a purge is recorded. A purge detaches nothing: the attached sources stay attached, their process-local derivatives are dropped, and each is marked as having had its owned local copy purged, so a later reference resolves to an explicit “unavailable” rather than to silence or to a reference quietly pointed somewhere else. Your own files and independently retained run evidence are outside the deletion, and DocsFab claims no erasure by any external model provider. A second purge of the same session says it has nothing to do rather than acting again. An ambiguous session reference, a session held by another principal or bound to another repository, and a session a writer still holds are each refused by name, with nothing deleted. - The model cannot invoke
/sources purge. The/sourcesfamily is parsed off the terminal’s own input stream before a message reaches the session, and no tool definition or capability list a model can read names the verb or the command. /sources refreshreports a changed file as drift on the same entry. It never quietly attaches a second copy. Drift means “changed since the last/sources refreshin this conversation”. Nothing is read when a source is attached, so the first refresh establishes the baseline rather than reporting against one./sources revalidatechecks where/sources refreshadopts. It re-reads each attached file and re-resolves each attached merged change, compares what it finds against what was admitted, and records the verdict without moving the version. A source it reports asstalestays stale in the listing until you refresh or detach it, so a run never binds a version the conversation was told had moved. Every verdict prints its basis, becausefreshafter comparing a recorded version andfreshon a file this conversation never read are different claims: the first says the file has not moved, the second says only that it reads cleanly now. A verdict older than the revalidation window is still shown, marked as beyond it rather than dropped. A bounded run refuses a last verdict ofstale,missing,unreadable, oridentity-changed, and it also refuses afreshverdict that has aged past that window: the window is a gate, not only a listing mark. Revalidate again, or refresh or detach, before asking the conversation to run./sources revalidatenever detaches anything and never leaves a source out of its report. A source that vanished from the selected revision is reported asmissingand stays attached; a condition that would let it check some sources and not others (more attached sources than one command re-checks, no wired reader, or a forge that cannot answer) refuses the whole command and records nothing, rather than reporting on a subset by silence.missingandunreadableare different answers and are never merged. A file the repository no longer tracks at that revision ismissing. A file that is still there and whose bytes did not arrive, for example over the version ceiling or because of an I/O failure, isunreadable, and the other attached sources are still re-checked, so one oversized file does not cost you every other verdict. Telling you to restore a file that never left would be advice you cannot act on.- A forge that cannot answer is never reported as an answer. Only “this project
path is a different project now” is
identity-changed; an unreachable forge, or one that answers without a usable project id, stops the command and says so. If the project is permanently gone, revalidate the rest by naming each label, or detach the merged change. fresh (recorded-project-identity)on a merged change means its project is still the same project. The change number, the merge commit, and the merge-request state are not re-read.- A preview is bounded, and it is withheld entirely if it matches the runtime
credential screen. A path under this host’s checkout, home directory, or
temporary directory is shown as a repository-relative path,
~, or$TMPDIR. The agent’s answers are never refused for naming a path. - The agent is not told when you change the selection mid-conversation. Run a bounded workflow to bind the new selection, or ask the agent to restate what it is working from.
- The changes do not survive the conversation. Resuming a session restores the
transcript, and rebuilds the attached selection from the
--sourceand--proptions you started it with, so re-attach anything you added mid-conversation.
What Is Not Available Yet
This release does not support /sources search. Attach tracked files or a
known merged merge request with --source or --pr instead. A bounded workflow
can then gather evidence from those selected sources.
For work that needs more than one kind of expertise, describe the complete outcome. The agent can load an additional installed skill as the work develops, in an order that respects skill dependencies. Loading a skill does not add tools or permissions.
The agent uses a workflow only when its defined use case matches the outcome. Ordinary questions receive a direct answer, and missing task details produce a focused follow-up question. That follow-up is routing-time clarification. It is not the after-the-job-starts work-product loop. Direct answers and documentation edits stay interactive-operation evidence. They do not create a named-workflow run record. When the agent starts a matching bounded workflow, that child run keeps its own grant and settlement. The conversation refers to the child result without inventing a second workflow success.
Reader-impact updates
For a reader-impact update, DocsFab validates a bounded reader context and uses the same locked reader-impact baseline for the applicable skill and workflow steps. You can still describe an ordinary update in natural language. DocsFab creates a conservative planning context from that request when no structured reader context is supplied. This fallback can support a bounded update. It can also support a verified no-change result when the plan keeps every page unchanged and each kept page is admitted as current documentation; independent read-only checks must confirm it. Host-bind of an operator-directed update is closing admission, not default authoring. The write grant and the admitted plan decide it, not the wording of the request. Text cannot certify no-change.
Your request reaches the workflow in your own words, unchanged. MR evidence and other details the agent retrieves travel beside it as non-authoritative context. DocsFab keeps its internal reader-task summary short without discarding those details. You do not need to shorten your request to fit that summary.
If the agent names an evidence file that is absent from the selected revision, the update workflow continues with the available files. The missing file stays in the workflow context and returned evidence limitations. Conclusions still require supporting evidence; an omitted file does not count as reviewed. Create, update, and restructure workflows share planning and writing guidance that continues supported work and reports missing references. Focused writing uses the same guidance. Work that depends on missing evidence remains deferred.
For a reliable no-change conclusion, provide an explicit base/head or current workspace comparison. The focused reader-impact assessment runs read-only and requires a clean selected checkout. If the comparison is unavailable or the workspace changes, DocsFab reports the evidence limitation before it generates a patch. The update workflow contract explains how DocsFab binds the comparison, sources, and checkout snapshot. Other documentation work continues to use the session mode and file boundaries shown at startup, and loading a reader-aware skill grants no additional tools or permissions.
Loading skill instructions in write mode does not start a reader-impact assessment. If the agent includes optional reader evidence with that request, DocsFab loads the instructions and reports that the evidence was not admitted or verified.
The readiness banner shows the session ID and active model. A successful first response also confirms that the configured model endpoint and credential work.
Follow Work in Progress
After you submit a request, a compact status line shows the current activity
and elapsed seconds. Wait for the next You: prompt before typing another
request. Press Ctrl+C during a turn to request cancellation. Enter
/exit at an idle prompt to leave the conversation.
Activity labels, workflow stages, cancellation, and failure diagnostics are in Live Agent Reference in DocsFab.
When a documentation workflow stops because the knowledge it gathered cannot carry the request, the terminal names the category and what you can do next. DocsFab normally saves that stop as a resumable run, so the usual rendering is:
The command occupies its own line and ends with no punctuation, so you can
paste it verbatim. Capture the attributed answer as a snapshot file and run that
read-only command, substituting your snapshot path and authority id. It validates the
snapshot and prints the exact resume command; do not hand-type a
--resume-from command. Answer and Resume
covers the full loop.
When the stop could not be saved as a resumable run, the terminal says so instead of naming a run id, because there is nothing to resume. A later answer from the conversation’s own skills never removes the stopped workflow’s milestone.
Resume or Start a New Session
Enter /exit to leave the conversation:
Run the same command again to resume the most recent session for that repository:
Use --new to start a separate conversation:
What’s Next
To explore available workflows and their steps before running a task, refer to Discover DocsFab Workflows.
For flags, activity labels, GitLab evidence screening, and write bounds, refer to Live Agent Reference in DocsFab.
To run a named workflow without a persistent conversation, continue to the
Runner Quickstart outcome chooser. That chooser covers
create, update with --reader-source, and review.
Continue with the matching journey when you already know the outcome.