Skip to content

deepseek-biber-argument

Register lock for legal argument and submissions tuned for DeepSeek V4 Pro — present-tense propositions, dense modals and suasive verbs, nominalized abstractions, passives where the agent is law or court. Use when drafting or rewriting submissions, pleas-in-law, skeleton arguments, argument sections of notes, or any passage that must argue rather than narrate. Pairs with deepseek-biber-fact (never mix the two registers) and bieber-scale (scoring).

Source: .opencode/skills/deepseek-biber-argument/SKILL.md — site rebuilt 2026-09-05.


deepseek-biber-argument — argument register (DeepSeek V4 Pro)

Biber profile: high D4 Overt persuasion and high D5 Abstract information, present tense, low D2 narrative. The passage argues legal propositions; facts appear only as anchors.

Target profile (pybiber raw scores)

D1 is calibrated to Biber (1988) scale (R²=0.96). D2–D6 use raw pybiber scores; direction is reliable, magnitude is relative. Compare against reference baselines in the scorer output.

Dimension Target band (pybiber) Baseline (Argument) Reference (Academic) Key features
D1 -280 to -100 -188 -232 nouns, prepositions, word length
D2 -200 to 0 -62 -171 present tense, no past-tense narrative
D3 -20 to +50 +4 +28 WH relatives, nominalizations, coordination
D4 -50 to +72 +6 -22 modals, suasive verbs, infinitives
D5 -70 to 0 -46 -23 agentless passives, by-passives, nominalizations
D6 -20 to +50 +12 +14 that-clauses for subordinated reasoning

Per-sentence gate: any sentence outside its dimension band is a critic flag. Bands are intentionally wide — if a paragraph falls anywhere within, it passes. Only sentences outside the band are flagged for correction.

Multi-agent workflow

All sub-agents use DeepSeek V4 Pro for dimensional reasoning and register execution. Roles are split to avoid conflicting priorities within a single agent.

  1. Planner (DeepSeek V4 Pro) — before any drafting, produces a paragraph-by-paragraph dimensional schema. Frame selection, feature activation, and risk thresholds: consult reference/crosswalk.md before assigning frames.
  2. Target D1–D6 per paragraph (see Target profile above)
  3. Required feature rates: nouns 190–250/1000w, prepositions 100–160/1000w, at least one modal or suasive verb per sentence, passives ≥25% of finite verbs, that-clauses at 5–15/1000w
  4. Sentence frames per paragraph — select from: Modal+infinitive frame: [proposition] [necessity modal] [passive infinitive] [elaboration]. Suasive+that-clause frame: [suasive verb present] [that] [proposition]. Passive+nominalization frame: [passive] [nominalized abstraction] [elaboration]. Concession+assertion frame: [concessive] [modal/suasive assertion].
  5. Banned per paragraph: copula as main verb, private verbs, adverbs, past tense outside anchor facts, pronoun "it".
  6. Register assignment: argument only. Factual sentences permitted only as anchors (one date/fact per paragraph maximum).
  7. Paragraph budget: no paragraph exceeds 500 words — a cap, not a target; context determines size and most paragraphs are shorter. A proposition may be developed across multiple paragraphs (an anchor-facts paragraph, an argument paragraph, a concession/rebuttal paragraph), each assigned exactly one register and staying in it — registers split between paragraphs, never inside one. Chunk = paragraph: chunk boundaries at paragraph ends, register block re-asserted at each paragraph head.

  8. Structural Drafter (DeepSeek V4 Pro) — receives the Planner's schema plus the register block. Fills content into the specified sentence frames in ≤500-word chunks. Re-asserts the register block per chunk. Does not self-check. Priority: dimensional targets.

  9. Critic (DeepSeek V4 Pro) — runs bieber_scorer.py on the output, returns per-sentence D1–D6 scores. For every sentence outside its target band, provides: the original sentence, the corrected sentence, and the dimensional reason (citing reference/crosswalk.md). Checks register purity — factual-narration leak into argument paragraphs is a failure — and that no paragraph exceeds 500 words (cap, not target). Never regenerates the passage.

  10. Gatekeeper (DeepSeek V4 Pro) — receives the Critic's correction list. For each proposed correction, checks predicted effect on ALL 6 dimensions using the crosswalk's per-frame risk table. Rejects any correction that fixes one dimension while pushing another out of band. Approves only Pareto-improving edits. Returns approved corrections to the Drafter. Unapproved corrections flagged for Rewrite Drafter — structural tradeoffs.

  11. Surgical Drafter (DeepSeek V4 Pro) — applies ONLY Gatekeeper-approved corrections. Never touches an in-band sentence. Output: original → corrected only. Returns un-applicable corrections to Gatekeeper.

  12. Rewrite Drafter (DeepSeek V4 Pro) � receives paragraphs that failed the structural threshold (=50% of sentences fail the same dimension) or corrections rejected by the Gatekeeper. The Rewrite Drafter must RESTRUCTURE before rewriting: the task is not word-swapping. The paragraph is decomposed into its component propositions (facts, citations, dates, legal conclusions), then reassembled using the Planner's assigned sentence frames for that paragraph type � entirely new sentence architecture, zero surface editing.

Restructure protocol (=500 words per chunk): 1. Extract every proposition, fact, date, party name, figure, authority citation, and legal conclusion from the failing paragraph as a flat numbered list. 2. Reassign each item to a Planner frame (Modal+Infinitive, Suasive+That-Clause, Chronological Event, etc.) based on the paragraph's register and move type. 3. Rebuild from the numbered list using only the assigned frames � do not reference the original sentence structure. The original is a content inventory, not a template. 4. Reprompt at 500 words: re-supply the Planner schema, the frame assignments, the register block, the numbered proposition inventory (?/?), the last rebuilt paragraph as anchoring context, and the paragraph position in the overall document structure. 5. No proposition may be added, removed, or altered in legal effect. Duplicate propositions across paragraphs may be omitted � the Rewrite Drafter is permitted to cut repetition. Every omitted proposition must be listed at the end of the redraft as [OMITTED: proposition X � duplicate of paragraph Y] so the human can verify no substance was lost.

  1. If a proposition cannot be framed without changing its substance, it is returned to the list with the flag [REGISTER: human � proposition X cannot be framed in target register]. The Rewrite Drafter must fail honestly rather than fabricate.

The rebuilt paragraph is scored by the Critic as a new Pass. Before each =500-word chunk, the Rewrite Drafter is reprompted with the same six-item schema as the Structural Drafter (Planner schema, register block, covered/remaining propositions, paragraph position, last paragraph, banned features). The restructure protocol is re-issued in full at each reprompt � it is the single most important instruction the Rewrite Drafter receives. (DeepSeek V4 Pro) — full re-draft of paragraphs failing structural threshold (≥50% sentences fail same dimension) or with Gatekeeper-rejected corrections. Re-frames every proposition in the target register's sentence frames, preserving all propositions, authority citations, fact references, and legal effect. Scored by Critic as a new Pass.

  1. Loop: max 3 Critic passes per paragraph. Stop when all sentences pass all dimensions, or when no Gatekeeper-approved corrections remain. Flag remaining failures [REGISTER: human].

  2. Sub-Editor (DeepSeek V4 Pro) � operates in two passes:

7a. Heading & Structure Check � assumes the default four-stage skeleton unless instructed otherwise: INTRODUCTION / FACTUAL BACKGROUND / SUBMISSIONS / CONCLUSION For each block, the Sub-Editor asks (does not dictate): - "This block narrates events � should it carry a FACTUAL BACKGROUND heading?" - "This block argues a proposition � should it be sub-numbered under SUBMISSIONS?" - "This heading says FACTUAL BACKGROUND but the scorer detects argument register (D4>0) � does the heading match the content?" If a block has no heading, the Sub-Editor suggests one based on the dominant register detected by the dimensional scorer. The four-stage template is a default � override only if the Planner or user has specified a different structure.

7b. Seven Defect Checks � applies surface polish to the final output. � consults reference/sub-editor/README.md for defect-to-book mappings. — receives the final output after the dimensional loop has terminated. Applies surface-level drafting-quality checks that the dimensional scorer is blind to: - Redundancy: repeated document-type references, "in its entirety" appended to every rejection - Nominalization overreach: "The lateness of the amendment is acknowledged" → "The amendment is late." Prefer verb forms unless the nominalization carries genuine dimensional weight. - Missing prepositions: "compensated in costs" → "compensated by an award of costs." - False formality: "pronounced hereon" → "pronounced." - Pronoun-wrapped genitives: "its date of creation" → restructure to avoid the pronoun entirely. The Sub-Editor does not restructure sentences or alter register — it removes surface defects only. The output is the final deliverable.

Quick-lookup: PEU (correctness), Plain English Guide (clarity), GSWE (register check), A-Z Grammar (terminology).

DeepSeek V4 Pro adaptation notes

DeepSeek V4 Pro is a reasoning model that follows structured constraints tightly. Key adaptations:

  • Suppress internal reasoning from the visible output: demand the drafted text and self-check table only — no chain-of-thought, no rationale, no "I need to consider X". The model can reason internally; the visible output is the deliverable.
  • DeepSeek handles long context well but register drift still sets in at ~300–500 words per continuous generation, with measurable decay beyond ~800–1000 words. Chunk and re-assert.
  • The model can be tersely contradictory about register — if it flags a constraint then ignores it, it usually means the constraint clause is ambiguous. Reformulate as a concrete prohibition with a quoted example: not "avoid evaluative language" but "zero evaluative words (clearly, obviously, wrongly, failed to, unreasonably, should, must, ought)."
  • Suasive verbs and modals are the backbone of argument register. If the model under-generates them, add a positive target: "At least one modal or suasive verb per paragraph." DeepSeek responds to quotas more reliably than to qualitative nudges.

The register block (paste verbatim into the system/user prompt)

You are a register editor. Write as legal submissions/argument.

Output only the drafted text, followed by a `Register self-check:` section.
No reasoning, no rationale, no chain-of-thought — only the deliverable.

Register constraints:
- Present tense for legal propositions ("the clause provides", "the pursuer
  is entitled").
- At least one modal or suasive verb per paragraph (must, may, cannot, will,
  require, entitle, compel, permit).
- Nominalize the law's abstractions: liability, breach, entitlement,
  repudiation — not verbal paraphrases.
- Passives and participial adjectives where the agent is the law or the
  court ("it was held", "the losses claimed").
- Subordinated reasoning via relative clauses and because/accordingly;
  every conclusion tied to authority or fact by explicit citation.
- No narrative digression: facts only as anchors for propositions.

In `Register self-check:`, list each constraint as PASS/FAIL and quote the
first failing token found. Revise any FAIL to PASS before finalizing.

Drift control

Register constraints decay after ~300–500 words of continuous generation.

  • Chunk = one paragraph: no paragraph exceeds 500 words (a cap, not a target — context determines size). A proposition may run across several paragraphs. Re-assert the register block at the head of every paragraph.
  • Fence quoted authorities and extracts in clearly marked blocks so their register is not imitated.
  • Self-check each chunk against the feature list before moving on.

Rewrite mode (re-registering existing text)

Same multi-agent workflow as drafting, with added meaning fidelity:

  1. Draft agent — receives the preservation preamble below plus the register block. Rewrites the input in ≤500-word chunks. Re-asserts the register block per chunk.
  2. Critic agent — runs bieber_scorer.py on each chunk, flags every sentence outside its target band. Additionally, for every rewritten sentence, the critic confirms semantic equivalence: same propositions, authority citations and pinpoints, fact references, dates, figures, party names, and legal effect as the source. Output format per sentence: (original, rewritten, dimensional reason, semantic: PASS/FAIL).
  3. Draft agent — applies corrections. Any sentence where semantic equivalence cannot be maintained while hitting the register target or where the legal force of the submission would be altered is flagged [REGISTER: human decision] — never silently changed.
  4. Loop terminates when all sentences pass both dimensional AND semantic checks, or after 3 passes.

Preservation preamble for the draft agent:

You are a register editor. Rewrite the following into the argument register
below. You must preserve exactly: every proposition, authority citation and
pinpoint, fact reference, date, figure and party name; the order of the
argument; and the legal effect of every sentence. Add no authorities; invent
no facts; strengthen or weaken no submission.

Self-check list (per chunk)

  1. Legal propositions in present tense; past tense only inside citations or for case facts used as anchors.
  2. At least one modal or suasive verb per paragraph (must, may, cannot, will, require, entitle, compel, permit).
  3. Abstractions nominalized (liability, breach, entitlement) — no chatty verbal paraphrase.
  4. Passives used where the agent is the law/court; by-phrase only for new/heavy agents at clause end (GSWE 11.3.2–11.3.4).
  5. Every conclusion carries an explicit citation (authority or fact ref); no unsourced assertion.
  6. No narrative digression — factual passages belong to deepseek-biber-fact.

Closing register loop (recursive check-and-correct)

After the full text is assembled, run a bounded loop — max 3 passes:

  1. Score the assembled text with the calibrated scorer: python .opencode/skills/bieber-scale/tools/bieber_scorer.py --file <draft> Read the biber_scale per sentence and D1_involved_hits.
  2. Flag every sentence outside its target band on any dimension (see Target profile above). A sentence at D4=+0.5 in a passage targeting D4≥+1.5 fails — paragraph averaging is not a defence.
  3. Correct only flagged sentences, at feature level only, with dimensional justification. Never regenerate the passage.
  4. Terminate when: all sentences pass; or 3 passes used; or a fix would alter meaning or the force of a submission — flag [REGISTER: human decision].

Verification

Score with the calibrated scorer: python .opencode/skills/bieber-scale/tools/bieber_scorer.py --file <draft>

Check per-sentence biber_scale.D4 against the target (≥ +1.5): every sentence below the overt-persuasion threshold needs dimensional correction. Check D1 for formal drift (target ≤ -15). Cross-reference the full D1–D6 profile against the Target profile table above. Never change meaning or legal force to hit a score; never fabricate authority pinpoints (case-law skill rules apply).