Skip to main content
DraftCounsel™

DraftCounsel · Refusals

What the platform refuses, and why

One row per refusal the code enforces. Each names its reason, what to do instead, the boundary that enforces it and the test that proves it; a removed guard fails the build. The count below is generated from the registry, never typed.

44

Refusals catalogued

42

Applying to this brand

3

Kinds

Refused by rule

A rule the code enforces; no configuration, key or retry changes the answer.

  • Claiming a verified, state-exact document before the supervising attorney signs off.

    Both brands

    Why: The rigor label is computed from what ran; it can never be authored higher than the code path that executed.

    Instead: The attorney verifies statutory references against official sources and finalizes.

    Enforced by src/lib/labels.ts (draftRigorLabel); proved by src/lib/labels.test.ts; surfaces: draft; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Entering the attorney engines without the licensed-attorney attestation, the conflict answers and every acknowledgment.

    Attorney lane

    Why: No engagement, no advice: the engagement sequence is the attorney desk's front door and the software never resolves a flagged conflict.

    Instead: Complete the attestation and the conflict screen; a flagged conflict is resolved by the attorney, not the software.

    Enforced by src/lib/attorney/engagement-gate.ts (validateEngagementSequence); proved by src/lib/attorney/engagement-gate.test.ts; surfaces: workspace, review, draft; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Running a paid desk without an active session, a trial allotment or a covering purchase.

    Both brands

    Why: Access is metered by the trial gate and the per-matter entitlement; a locked preview is honest, a silent run is not.

    Instead: Sign in, use the trial allotment, or purchase the matter.

    Enforced by src/lib/trial-gate.ts (resolveTrialAccess); proved by src/lib/tiers/grounded-routes.test.ts; surfaces: workspace, review, draft, redline, cite-check, oc-pass, counsel; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Finalizing while any finding lacks a decision, or finalizing by anyone who is not an attorney.

    Attorney lane

    Why: A paralegal prepares, an attorney signs off; there is no bulk approval and no unverified finalizer.

    Instead: Adjudicate every finding; an attorney records the finalization.

    Enforced by src/lib/attorney/roles.ts (canFinalize); proved by src/lib/attorney/roles.test.ts; surfaces: review; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M02 2026-09-24.

  • A citation rendering a higher verification label than the layer that actually ran.

    Both brands

    Why: Existence and treatment labels are reachable only through a real citator answer; the format layer is the honest floor.

    Instead: Configure the citator; until then the label reads format-checked only.

    Enforced by src/lib/labels.ts (citeCheckRigorLabel); proved by src/lib/labels.test.ts; surfaces: cite-check; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • An estate instrument exported without its state execution-formalities appendix.

    Both brands

    Why: Execution formalities are state law; the appendix travels with every covered export.

    Instead: Name the governing state; the appendix is generated from the cited rule.

    Enforced by src/lib/execution-rules.ts (hasExecutionRule); proved by src/lib/docx-builder.test.ts; surfaces: exports, draft; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • An instrument naming the same person in roles that must differ.

    Both brands

    Why: Contradictory facts are flagged before they reach an instrument.

    Instead: Correct the roles; the gate compares case- and space-insensitively.

    Enforced by src/lib/gates.ts (checkConflicts); proved by src/lib/gates.test.ts; surfaces: draft; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Altering or re-typesetting an official court form; filling a field with text its font cannot encode.

    Both brands

    Why: Official forms are transcribed onto the court's own published PDF, hash-pinned to the court's copy; nothing is redrawn.

    Instead: Use the fill lane for a fillable form or download the court's blank; unencodable characters are named in the report.

    Enforced by src/lib/official-forms/fill.ts (fillOfficialForm); proved by src/lib/official-forms/provenance.test.ts; surfaces: official-forms; owner: the owner; counsel for the Rule 10-2.2(c) question; evidence M03 2026-09-24.

  • Representation of any kind: filing, service, negotiation with a party, or appearance, for anyone.

    Both brands

    Why: L5 is never performed by the platform, on either brand, for any role.

    Instead: A licensed attorney represents; the platform prepares.

    Enforced by src/lib/upl/capability.ts (capability); proved by src/lib/upl/capability.test.ts; surfaces: platform; owner: the owner, with counsel, for the terms, privacy, and disclaimers; platform engineering for status, changelog, accessibility, and the scorecard; evidence M03 2026-09-24.

  • Output that lifts verbatim runs, or too much scattered overlap, from the exemplar filings.

    Attorney lane

    Why: Exemplars ground the work; they are never copied into it.

    Instead: The run is refused and reported; the engine drafts afresh on the same pinned exemplars.

    Enforced by src/lib/foundations/guards.ts (similarityVerdict); proved by src/lib/foundations/guards.test.ts; surfaces: draft, redline, review; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Output that carries the exemplar filings' party names into the matter.

    Attorney lane

    Why: The parties of a public filing are not the matter's parties; leaking them is an integrity failure, not a typo.

    Instead: The run is refused and reported; the attorney never sees a foreign party in the draft.

    Enforced by src/lib/foundations/guards.ts (foundationPiiVerdict); proved by src/lib/foundations/guards.test.ts; surfaces: draft, redline, review; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • A dual-engine consensus that swallows a material disagreement between the engines, or names it without binding a disposition to its issue id (a missing, duplicated or unknown id, a bare marker, or a conflict marked decided).

    Attorney lane

    Why: Where the engines diverge on substance, the attorney decides; a consensus that hides the divergence, counts one disclosure for two conflicts, or decides the conflict itself is refused.

    Instead: The divergence is carried as a decision card bound to its issue id; the attorney adjudicates it.

    Enforced by src/lib/foundations/reconcile.ts (silentSynthesisVerdict); proved by src/lib/foundations/dual-run.test.ts; surfaces: draft, review, redline; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M06 2026-09-24.

  • Predicting an outcome, a ruling or a bench's decision.

    Both brands

    Why: Preparation, not prediction: outcome-prediction language is detected and surfaced, never delivered as analysis.

    Instead: The passage is flagged for the attorney; the War Room prepares questions, it never forecasts.

    Enforced by src/lib/candor.ts (buildCandorReport); proved by src/lib/candor.test.ts; surfaces: war-room, assistant, draft; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Exporting or sharing any version other than the approved, server-stored version.

    Attorney lane

    Why: The export gate serves only the exact approved version, re-checked inside the receipt transaction; client text is never exported.

    Instead: Approve the governed version, then export or share it.

    Enforced by src/lib/artifacts.ts (exportGateVerdict); proved by src/lib/phase3-artifact-security.test.ts; surfaces: exports; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Grounding a matter on a same-named county of another state.

    Attorney lane

    Why: The locality ladder ranks by the candidate's own state; a Florida county row never takes the county rung for a same-named county elsewhere.

    Instead: The matter's own county tops the ladder; the run searches when the lane is thin.

    Enforced by src/lib/foundations/score.ts (localityTier); proved by src/lib/foundations/ix1-county-state.test.ts; surfaces: discovery, draft, review, redline; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Fetching an exemplar from a publisher the policy denies, a robots-blocked host, or a host awaiting terms review.

    Attorney lane

    Why: Every discovered URL passes publisher policy, then robots, then the same gates as a curated source.

    Instead: Denied and review-pending publishers are counted, never read; the owner records a terms review to allow one.

    Enforced by src/lib/foundations/harvest/openweb-policy.ts (publisherFor); proved by src/lib/foundations/harvest/openweb.test.ts; surfaces: discovery; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Treating a filing from an unregistered site as an exemplar when no counsel of record signed it.

    Attorney lane

    Why: A pro se or in re filing on an unknown site is not a specimen of practice; counsel of record is the marker the lane requires.

    Instead: The filing is rejected at discovery; a counsel-signed filing is accepted with its parties and its specimen label.

    Enforced by src/lib/foundations/harvest/verify.ts (extractCounsel); proved by src/lib/foundations/discovery-filings.test.ts; surfaces: discovery; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Reaching a matter, review, draft, comparison or governed version that belongs to another tenant, or through a removed membership.

    Attorney lane

    Why: A foreign resource is indistinguishable from a missing one; no denial reveals protected data or identifying metadata.

    Instead: Work inside an active membership of the matter's tenant.

    Enforced by src/lib/authorization.ts (authorize); proved by src/lib/authorization-matrix.test.ts; surfaces: platform; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M02 2026-09-24.

  • Reaching a matter the user is screened from, on any surface, including background execution.

    Attorney lane

    Why: An ethical wall has deny precedence; a failed wall lookup denies; a walled matter reads as not found.

    Instead: The firm lifts the wall in the record; authorized colleagues keep their work.

    Enforced by src/lib/policy.ts (wallLayer); proved by src/lib/authorization-matrix.test.ts; surfaces: platform, workspace; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M02 2026-09-24.

  • Approving a governed version or adjudicating a finding without a licence record on file when the licence gate is on; administration alone never approves.

    Attorney lane

    Why: Professional authority is distinct from administration; the firm attests the licence and DraftCounsel records the attestation.

    Instead: The firm records the attorney's licence; preparation by staff continues unaffected.

    Enforced by src/lib/policy.ts (licenceLayer); proved by src/lib/authorization-matrix.test.ts; surfaces: review, workspace; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M02 2026-09-24.

  • Sending a byte to a vendor outside the permitted list, over a non-https scheme, to a private network, or with a data class the vendor is not cleared for.

    Both brands

    Why: The permitted-vendor list is a reviewed constant an environment variable can only narrow; a refused vendor receives zero bytes and nothing routes elsewhere.

    Instead: The owner reviews the constant; the surface reports the refusal instead of substituting a vendor.

    Enforced by src/lib/egress/vendors.ts (assertPermittedEgress); proved by src/lib/egress/vendors.test.ts; surfaces: platform; owner: the owner, with counsel, for the terms, privacy, and disclaimers; platform engineering for status, changelog, accessibility, and the scorecard; evidence M02 2026-09-24.

  • Finalizing a version, exporting a final packet or delivering externally without a fresh confirmation bound to this actor, matter, operation, version and recipient, when the confirmation flag is on.

    Attorney lane

    Why: Replayed, stale, altered-argument and revoked confirmations fail atomically; two concurrent approvals resolve to one winner.

    Instead: Mint a confirmation for exactly this act and spend it once.

    Enforced by src/lib/confirmation-token.ts (spendConfirmation); proved by src/lib/confirmation-token.test.ts; surfaces: review, exports; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M02 2026-09-24.

  • Running on attachments that were only partly read, or that exceed the run allowance, without the attorney accepting the partial scope.

    Attorney lane

    Why: Every attachment is accounted for by name; a silent cut would misstate what the run considered.

    Instead: Accept the partial scope explicitly, or reduce the attachments.

    Enforced by src/lib/workspace/attachment-scope.ts (accountAttachments); proved by src/lib/workspace/attachment-scope.test.ts; surfaces: workspace; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M01 2026-09-24.

  • Exporting or finalizing with a refuted citation or a drift-flagged statute when the firm's hard-stop policy is on.

    Attorney lane

    Why: The policy blocks refuted work, not un-run layers; it is off by default and label-only until the firm opts in.

    Instead: Resolve each blocking citation; with the policy off the citation is labelled, never blocked.

    Enforced by src/lib/cite-check/hard-stop.ts (computeBlocking); proved by src/lib/cite-check/hard-stop.test.ts; surfaces: cite-check, exports; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Running on a document that names none of the matter's parties, or only a namesake, before the attorney decides whether it belongs.

    Attorney lane

    Why: A wrong-matter or namesake source would seed another project's facts into the matter; no identity is ever merged automatically.

    Instead: Decide each flagged source by name (belongs to this matter, or exclude it from the run) and send the run again.

    Enforced by src/lib/ingestion/run-intake.ts (gateSources); proved by src/lib/ingestion/run-intake.test.ts; surfaces: workspace, review, redline; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M04 2026-09-24.

  • A request to resume a long draft whose completeness state reads complete (no pending sections).

    Attorney lane

    Why: A resume drafts only pending sections under the accepted language; with nothing pending there is nothing to draft, and a rerun would risk rewriting accepted sections.

    Instead: Edit the document directly, or run a new draft; the completeness state on the record says what is pending.

    Enforced by src/lib/drafting/resume.ts (resumeRefusal); proved by src/lib/drafting/long-document.test.ts; surfaces: draft; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M07 2026-09-24.

  • A requested attestation on the Certificate of AI Use that the audit trail contradicts, or that no recorded event supports.

    Attorney lane

    Why: Attestations are generated only from actual events (attorney review, checks run, filing recorded); the certificate prints a refusal rather than certifying what the record does not hold.

    Instead: Record the event the attestation needs (the attorney review, the check, the filing) and render the certificate again.

    Enforced by src/lib/attorney/ai-use-certificate.ts (buildAiUseCertificate); proved by src/lib/attorney/ai-use-certificate.test.ts; surfaces: review, exports; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M07 2026-09-24.

  • A change to a proposition's kind or disposition (promoting an allegation to a fact, accepting or rejecting a proposition) by anyone but an attorney.

    Attorney lane

    Why: An allegation is never auto-promoted; the attorney's posture is the only decided posture, and every change rides the proposition's history with who decided it.

    Instead: A licensed attorney records the decision with its rationale; the proposition keeps its kind until then.

    Enforced by src/lib/evidence/propositions.ts (decideProposition); proved by src/lib/evidence/propositions.test.ts; surfaces: workspace, review; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M08 2026-09-24.

Not live yet

A dependency, lane or key is not live; the surface says so and names the owner item instead of improvising.

  • Exporting a document that cites an authority whose snapshot is pending review.

    Attorney lane

    Why: A drift-flagged authority is re-verified by a person before anything relying on it leaves the platform.

    Instead: Wait for the authority review, or remove the citation.

    Enforced by src/lib/authority/currentness.ts (pendingAuthoritiesIn); proved by src/lib/artifacts.test.ts; surfaces: exports; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Drafting, reviewing or redlining a document for which no lawful exemplar lane is live.

    Attorney lane

    Why: Every draft, review, redline and opposing-counsel pass is produced from real exemplars of the same kind; when no lane is live for the document the run stops and names the owner item instead of drafting from imagination.

    Instead: Choose a document type with a lane, or wait on the named owner item (a keyed connector or a reviewed pack).

    Enforced by src/lib/foundations/lanes.ts (laneRefusalMessage); proved by src/lib/foundations/lanes.test.ts; surfaces: draft, review, redline, oc-pass; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Delivering single-engine output when a dual run was purchased and one engine failed.

    Attorney lane

    Why: A dual run is two independent passes on the same pinned exemplars; one failing engine fails the run, typed and named.

    Instead: Retry, or run the standard lane knowingly.

    Enforced by src/lib/foundations/dual-run.ts (runDualOperation); proved by src/lib/foundations/dual-run.test.ts; surfaces: draft, review, redline; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Reading a scanned PDF through the OCR lane on a deployment that has not turned the lane on.

    Attorney lane

    Why: The OCR engine and its model ride the OCR function only when FLAG_OCR_LANE=1; until then the extractor keeps its honest unreadable answer.

    Instead: Owner item: set FLAG_OCR_LANE=1; meanwhile photograph the pages or paste the text.

    Enforced by src/lib/ocr/engine.ts (ocrLaneOn); proved by src/lib/ocr/ocr.test.ts; surfaces: workspace, review; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M04 2026-09-24.

  • An image-bearing run on the durable lane while FLAG_DURABLE_IMAGES is off.

    Attorney lane

    Why: The durable image path lands only with parity proven (the one envelope and tier rule, the held bytes, the purge); until the flag is on the lane refuses honestly and the matrix says so before setup.

    Instead: Owner item: set FLAG_DURABLE_IMAGES=1 after applying migration 20260924160000; meanwhile attach extracted text for a durable run.

    Enforced by src/lib/runs/images.ts (durableImagesOn); proved by src/lib/runs/images.test.ts; surfaces: workspace; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M04 2026-09-24.

  • A dual-engine run whose second provider is missing, disallowed, or times out mid-run.

    Attorney lane

    Why: The second engine is not live for this run (its key is absent, it refused, or it timed out): a dual result means two independent passes on the same pinned inputs, one pass cannot be labelled dual, and the mode never switches silently to a single engine.

    Instead: The typed failure carries the partial stage receipt (which branch ran, which did not, why); the fee was charged once at most; the attorney may separately elect a single-engine tier.

    Enforced by src/lib/foundations/dual-run.ts (runDualOperation); proved by src/lib/foundations/dual-hardening.test.ts; surfaces: draft, review, redline; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M06 2026-09-24.

  • A retrieval lane that did not run reporting an empty result as if it had.

    Both brands

    Why: A failed or not-configured lane is named with its gap on every partial result; the usable lanes stay usable and the authorization scope never widens; a silent empty lane fails the call.

    Instead: The gap names the lane and the cause; the usable lanes' results stand; the owner keys or repairs the lane.

    Enforced by src/lib/evidence/retrieval-spaces.ts (laneResult); proved by src/lib/evidence/retrieval-spaces.test.ts; surfaces: workspace, discovery; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M08 2026-09-24.

Never accepted

An input shape the surface never took; the receipt names the check that refused it.

  • Drafting without a valid governing state.

    Both brands

    Why: Every instrument is state-specific; an execution rule, a clause pack and an exemplar lane all resolve by state.

    Instead: Choose the governing state before drafting.

    Enforced by src/lib/execution-rules.ts (executionRuleFor); proved by src/lib/execution-rules.test.ts; surfaces: draft; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • A "deterministic" label on a document the clause library does not cover.

    Both brands

    Why: Only library-assembled operative text is deterministic; anything else is a grounded model draft and is labelled as one.

    Instead: The draft proceeds on the grounded lane with the honest label.

    Enforced by src/lib/clauses/registry-ids.ts (hasClauseTemplateId); proved by src/lib/labels.test.ts; surfaces: draft; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Assembling an instrument while a mandatory intake fact is missing.

    Both brands

    Why: A missing required fact yields a defective instrument; the gate names each missing key.

    Instead: Supply every required fact named in the report.

    Enforced by src/lib/gates.ts (checkRequiredFacts); proved by src/lib/gates.test.ts; surfaces: draft; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M03 2026-09-24.

  • Parsing an upload whose bytes do not match its declared type, whose archive expands beyond the fixed limits, or whose "text" is not text.

    Both brands

    Why: A hostile file must not exhaust a worker or become a trusted source; the check runs before any parser.

    Instead: The receipt names the failed check; attach a genuine PDF, Word file or plain text.

    Enforced by src/lib/upload-guard.ts (checkUpload); proved by src/lib/upload-guard.test.ts; surfaces: workspace, review, redline, cite-check; owner: the owner, with counsel, for the terms, privacy, and disclaimers; platform engineering for status, changelog, accessibility, and the scorecard; evidence M02 2026-09-24.

  • A request path carrying a literal or encoded backslash, an invalid escape, double encoding or a control character.

    Both brands

    Why: The proxy answers 404 with the base security headers before routing and without a redirect.

    Instead: Request the route as published.

    Enforced by src/lib/http-security.ts (malformedPathReason); proved by src/lib/malformed-path.test.ts; surfaces: platform; owner: the owner, with counsel, for the terms, privacy, and disclaimers; platform engineering for status, changelog, accessibility, and the scorecard; evidence M01 2026-09-24.

  • Attaching text for a scanned page the OCR engine could not read (too few words, or confidence too low to trust).

    Attorney lane

    Why: A guessed page would put invented words into the record; the page is stated as unreadable instead.

    Instead: Rescan or photograph the page, or paste its text; the readable pages keep their text and their page anchors.

    Enforced by src/lib/ocr/layout.ts (analyzePage); proved by src/lib/ocr/ocr.test.ts; surfaces: workspace, review; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M04 2026-09-24.

  • Opening a passage in a format that has no text locator (a spreadsheet, audio or video, an unreadable file).

    Attorney lane

    Why: The Source Lens resolves quotes to bytes inside one immutable source version; a format without a text locator is named in the coverage registry and never resolved by guess.

    Instead: Name the sheet and the cell, or the time code, by hand; the registry on /coverage lists every format and its locator.

    Enforced by src/lib/evidence/source-lens.ts (resolveLens); proved by src/lib/evidence/source-lens.test.ts; surfaces: review, workspace; owner: the attorney using the desk, under their own supervision; platform engineering for the gates; evidence M08 2026-09-24.

What each desk refuses

Every desk reference carries its own “What this desk refuses” section, drawn from the same registry.

Companions: Governance · Engine status · Trust center.

DraftCounsel is professional drafting software for licensed attorneys, operated by LegalDraft Technologies LLC. DraftCounsel is not a law firm and does not provide legal advice. All output is AI-generated draft work product offered for attorney review; the supervising attorney is solely responsible for reviewing, revising, approving, and using any work product, and for compliance with applicable rules of professional conduct. Communications with DraftCounsel are not protected by attorney-client privilege.