diff --git a/skills/request-basis/SKILL.md b/skills/request-basis/SKILL.md index 3e01918..c4031b8 100644 --- a/skills/request-basis/SKILL.md +++ b/skills/request-basis/SKILL.md @@ -15,12 +15,16 @@ This skill routes PRC civil request-right basis work. It is not a shortcut to a 4. For each request basis analyzed in detail, apply the request lifecycle: right arises, not extinguished, exercisable, defenses/counter-defenses. 5. Use controlled concept cards for professional terms when available; create a temporary concept card when absent. 6. Use rule-obligation groups as scaffolding, not as verified law. -7. If no local rule-obligation group fits, generate a temporary candidate group and label it `model_inference`. +7. If no local rule-obligation group fits, generate a temporary candidate group and label it `model_inference`; when neither a rule-obligation group nor a request-basis seed matches, build the schema from the main norm via `reference.generation_protocol`. 8. Search local materials only for targeted snippets. 9. For new materials, extract atomic source assertions before merging them into concept cards or rule-obligation groups. 10. For reference integration work, use source synthesis to group sources by request-basis family before changing runtime rules. 11. Output uncertainty, verification needs, and excluded paths explicitly. 12. For real case pilots, use the real-case-testing reference and keep reusable lessons abstract. +13. In litigation/exam work, hold the fact–question–norm valve and two user-confirmation gates (candidate list, lifecycle outline) before drafting: `reference.staged_gates`. +14. When an element reaches an indeterminate concept (过错 / 合理 / 显失公平 / 善意), route it through `reference.interpretation_toolkit` instead of asserting it. +15. Match argument depth to how contested each element is: `reference.proportionality`. +16. Before drafting or converting to a report, pass the output pre-check gate: `reference.output_precheck`. ## Scenario Router @@ -72,6 +76,7 @@ Keep schema details, resource manifest mechanics, generated indexes, candidate b - Do not suppress a plausible path just because it is absent from seed data. Keep it as a labeled candidate if trigger facts, norm function, evidence target, and verification need can be explained. - Do not store real case facts as skill examples; convert only abstract, repeatable failure patterns into evals or references. - Without MCP or another authoritative source, do not state current law as verified. +- Resolve concrete tools through `reference.capability_slots` ([SLOT-LEGAL-DB], [SLOT-DOC-PARSE], [SLOT-WEB-SEARCH], [SLOT-WORD-OUTPUT]); when a slot is unset, degrade through the source labels rather than guessing. - Without case-law research, do not say courts usually or generally hold a position. - Do not treat party statements as found facts. - Every analyzed request basis must visibly pass through: right arises, not extinguished, exercisable, defenses/counter-defenses. @@ -111,6 +116,12 @@ Read only what is needed, resolved by logical role: - `reference.retrieval`: searching local source materials without loading large files. - `reference.methodology`: request-basis method, three layers/four steps, practice-vs-study distinction. - `reference.output_templates`: reusable output skeletons. +- `reference.generation_protocol`: build a review schema from norms when no seed group or base matches (查字典→会造句 fallback). +- `reference.staged_gates`: fact–question–norm valve, two user-confirmation gates, and parallel-drafting premise injection. +- `reference.proportionality`: match argument depth to how contested each element is. +- `reference.interpretation_toolkit`: indeterminate-concept hook routing to interpretation ranks and the legal-interpretation-argument / analogical-reasoning skills. +- `reference.output_precheck`: pre-drafting gate for coverage, citation verification, delivery-format conformance, and one-pass revision. +- `reference.capability_slots`: tool-to-slot mapping for portability; degradation routes through the source labels. ## Data Files diff --git a/skills/request-basis/references/capability_slots.md b/skills/request-basis/references/capability_slots.md new file mode 100644 index 0000000..7b92b2d --- /dev/null +++ b/skills/request-basis/references/capability_slots.md @@ -0,0 +1,45 @@ +# Capability Slots + +Use this reference to keep the request-basis method portable across tool stacks. The skill describes *what* capability is needed at each step (a slot); the slot table maps each slot to the concrete tool in the current environment. Methodology files refer to slots by `[SLOT-X]` placeholders, never to a tool name. To move the skill to another stack, change only the slot table below — not the method. + +## Why slots + +- Portability: methodology, source labels, and lifecycle gates stay stable; swapping `mineru-ocr` for another parser is a one-line table edit. +- Honest degradation: a missing slot does not silently fail. It downgrades through this skill's own discipline (five-tier source label + verification task), not through ad-hoc inline text. +- Single source of tool truth: do not hardcode tool names inside other references; resolve them here. + +## Prefilled Default Slot Table + +This environment is a single fixed tool stack, so the slots are prefilled — no cold-start interview is run. The defaults below apply directly. + +| Slot | Capability | Default tool | Fallback | +| --- | --- | --- | --- | +| `[SLOT-LEGAL-DB]` | Authoritative law / judicial interpretation / case-law lookup | `yuandian-law-search` | `regulation-search`; 北大法宝 | +| `[SLOT-DOC-PARSE]` | Convert PDF/Word/image case files to Markdown | `mineru-ocr` | `case-files-to-md-fast` (sensitive / no-upload / offline) | +| `[SLOT-WEB-SEARCH]` | Open-web search for practice articles, context, leads | built-in WebSearch | — | +| `[SLOT-WORD-OUTPUT]` | Render a finished report to .docx | `md2word` (legal report uses `rules/common/legal-report-delivery-format.md`, 《法学研究》-style) | output Markdown + note manual conversion | +| `[SLOT-ACADEMIC]` | Academic paper retrieval | (optional, unset) | route the need through `[SLOT-WEB-SEARCH]` | + +Routing notes: + +- `[SLOT-LEGAL-DB]` is the verification engine. It is what closes a `verification.md` task from `pending_mcp` to `mcp_verified`. Without it, no statute/interpretation is `verified_law`. +- `[SLOT-DOC-PARSE]`: default to `mineru-ocr`; when material is confidential or must not be uploaded, use `case-files-to-md-fast` instead. +- `[SLOT-WORD-OUTPUT]` is only invoked at final delivery; analysis stays in Markdown until then. + +## Degradation Rules + +When a slot is unset or its tool is unavailable, degrade through this skill's existing machinery — do **not** introduce inline text markers such as `[未经校验]`. The five-tier label schema (`source_policy.md`) is stronger and already covers this. + +- `[SLOT-LEGAL-DB]` missing: do not state any current-law claim as `verified_law`. Keep cited statutes/interpretations at `judicial_interpretation` / `source_extracted` with `verification_status: unverified` (or `pending_mcp` once queued), and open a `verification.md` task per `mcp_verification_required` claim. This is the existing Global Rule "Without MCP… do not state current law as verified", expressed through the slot. +- `[SLOT-DOC-PARSE]` missing: work only from text the user supplied; mark any reconstructed table/figure claim `ocr_risk: true` and label it `source_extracted` / `needs_human_review`. Do not invent case-file content. +- `[SLOT-WEB-SEARCH]` missing: do not assert court-practice generalizations; keep them `model_inference` and queue a `case_law_reference` verification task. +- `[SLOT-WORD-OUTPUT]` missing: deliver Markdown and note that conversion is pending; this is a delivery-format gap, not a substance gap, so no label change. +- `[SLOT-ACADEMIC]` unset: fold the need into `[SLOT-WEB-SEARCH]`; scholarly propositions stay `scholarly_reference` / `academic_paper` and unverified until checked. + +In every case the degraded claim still passes through the four request-lifecycle gates and carries an explicit source label and, where verification is required, a verification task. Degradation narrows confidence; it never bypasses the labels. + +## Portability Note + +When distributing this skill to another environment, clear the prefilled table back to empty slots and either run a first-use slot interview (ask the user which tool fills each slot) or apply the degradation rules above until slots are registered. The methodology and label schema do not change; only the slot table does. + +> 能力槽思想借鉴 Youchu-lawhub/gutachten-civil-case(Apache-2.0);本 skill 改为单栈预填、沿用自有五档证据标签。 diff --git a/skills/request-basis/references/classification.md b/skills/request-basis/references/classification.md index 1140b08..708a6fc 100644 --- a/skills/request-basis/references/classification.md +++ b/skills/request-basis/references/classification.md @@ -38,3 +38,52 @@ Only after that, ask: ```text Which candidate causes of action help retrieve materials, draft pleadings, or compare cases? ``` + +## Five-Level Norm Retrieval + +When finding the candidate norm from raw facts, walk five levels (this is the +"找法" front end to `reference.generation_protocol`): + +1. **Party relations** — build the party-pair matrix (A→B, B→A, A→C …); each + pair is a separate analysis unit. +2. **Relief sought** — what each claimant wants (给付 / 确认 / 形成 / 非讼). +3. **Norm class** — place the relief in one of the norm-basis classes below. +4. **Specific norm** — the exact 条文 inside that class (verify via `[SLOT-LEGAL-DB]`). +5. **Review schema** — build the four-gate 检视程式 for that norm + (`reference.request_lifecycle` / `reference.generation_protocol`). + +## Norm-Basis Classes (taxonomy) + +A working class list for level 3. Treat it as a retrieval index, not a closed set; +add a class if the facts need one. + +| # | 类别 | 典型请求/规范 | +| --- | --- | --- | +| 1 | 合同 | 履行 / 违约 / 解除返还 | +| 2 | 准合同(无因管理·不当得利) | 返还 / 费用偿还 | +| 3 | 物权请求权 | 返还原物 / 排除妨害 / 消除危险 | +| 4 | 占有保护 | 占有返还 / 妨害除去 | +| 5 | 人格权 | 停止侵害 / 赔礼道歉 / 损害赔偿 | +| 6 | 知识产权 | 停止侵害 / 赔偿 | +| 7 | 侵权 | 损害赔偿(含人身/财产/精神) | +| 8 | 缔约过失 | 信赖利益赔偿 | +| 9 | 后合同义务 | 协助 / 保密 / 损害赔偿 | +| 10 | 婚姻家庭 | 抚养 / 分割 / 损害赔偿 | +| 11 | 继承 | 继承权确认 / 遗产分割 | +| 12 | 债的保全 | 代位权 / 撤销权 | +| 13 | 债权债务移转 | 债权转让 / 债务承担 | +| 14 | 担保物权 | 优先受偿 / 实现担保物权 | +| 15 | 确认之诉 | 确认权利/法律关系存在或不存在 | +| 16 | 形成之诉 | 撤销 / 解除 / 变更 | +| 17 | 非讼 | 宣告失踪/死亡 / 指定监护 等 | +| 18 | 程序性 | 管辖 / 保全 / 执行 等(非请求权基础,单列) | + +Class #2 bundles 无因管理 and 不当得利 as a retrieval index only; in the outer +examination order they stay distinct — 无因管理 is checked before 物权, and +不当得利 is the residual/兜底 basis checked last (`reference.methodology`). + +Terminology discipline: 请求权基础 is for 给付之诉; 确认 / 形成 / 非讼 / 程序 rest on +a 规范基础 that is not a 请求权基础 — keep the words distinct +(`reference.request_basis_concept`). + +> 方法借鉴 Youchu-lawhub/gutachten-civil-case(Apache-2.0),已按本 skill 的双轨入口与术语纪律改写。 diff --git a/skills/request-basis/references/generation_protocol.md b/skills/request-basis/references/generation_protocol.md new file mode 100644 index 0000000..e0f0942 --- /dev/null +++ b/skills/request-basis/references/generation_protocol.md @@ -0,0 +1,83 @@ +# Generation Protocol + +Use this reference only as a fallback. When `rule_obligation_seed` and `request_basis_seed` both miss — no local rule-obligation group fits the claim and no seed request basis matches — this protocol lets the skill build a review schema (检视程式) from the norm itself instead of stopping. + +This is the move from 查字典 (look up a prebuilt schema) to 造句 (construct one from first principles). It does not produce verified law. + +## Activation Gate + +Run this protocol only when all are true: + +- The scenario and claim goal are already fixed (see `reference.methodology`). +- No `rule_obligation_seed` group bridges the claim to bases/elements/defenses. +- No `request_basis_seed` entry names a matching base. + +If a seed exists, prefer it and use this protocol only to cross-check coverage. + +## Output Discipline (non-negotiable) + +Every node this protocol generates is a method scaffold, not located law: + +```yaml +source_status: model_inference +verification_status: pending_mcp +mcp_verification_required: true +``` + +- Carry these labels through to the final output; do not present a generated base, element, or article number as settled law (`reference.source_policy`, `reference.discretion_policy`). +- For each generated main norm and each defense/auxiliary citation, write a verification task into the queue (`reference.verification`): exact article-number check, current-version check, and any 配套司法解释. +- A generated schema is a candidate path, never a "located request basis" until the queue clears. + +## Step 1 — Find Candidate Main Norms + +From the fixed claim goal, locate candidate main norms (请求权基础条文) by structured discovery, not by guessing articles. + +1. **Party-pair matrix.** List every party and its legal role (natural person, legal person, consumer/operator, possessor/物权人, guarantor, etc.). Pair them both directions: A→B (forward claim), B→A (defense/counterclaim), and any third-party leg. Keep only pairs joined by a connection point: contract, property/possession, tort, unjust enrichment, negotiorum gestio, or status relationship. +2. **Claim type.** For each live pair, classify the claim: 给付之诉 / 确认之诉 / 形成之诉. Inside 给付, separate 原给付 / 次给付 (违约) / 物权请求权 / 损害赔偿 / 返还 (不当得利) / 费用偿还. +3. **Norm class then article.** Walk the typical outer order (`reference.methodology`): contract → contract-like → negotiorum gestio → property/possession → unjust enrichment → tort. For each plausible class, pull candidate articles. Apply the priorities: 有合同先检合同; 物权优先于债权; 不当得利兜底; flag 竞合 and 聚合. + +Output: a candidate list keyed by party-pair and claim, each entry `model_inference`. + +## Step 2 — Classify Norm Function + +For each candidate, judge its function before building anything (`reference.norm_decomposition` vocabulary): + +- `main_norm` / `incomplete_main_norm`: directly supports the claim (incomplete if a legal act or another norm must fill the effect). Only these seed a schema spine. +- `auxiliary_norm`: defines an element, status, scope, time point, or consequence of a main norm. +- `defense_norm`: blocks arising, extinguishes, or blocks exercisability. +- cross-class signals (`counter_defense_norm`, `referral_norm`, `principle_norm`, `burden_norm`): note but do not promote to spine. + +Demote anything that only "looks related." Keep only genuine main norms as Step 3 anchors; hold the rest for mounting. + +## Step 3 — Build the Lifecycle Schema + +Take each confirmed main norm and raise the four-gate review spine (`reference.request_lifecycle`). Do not match an external template library; build the spine directly from this skill's lifecycle. + +For the main norm: + +1. Load the article, isolate the legal effect ("……的,应当/有权/可以……"), and treat everything before it as positive elements. +2. Lay the elements under `产生` (right arises). If the base rests on a legal act, do not collapse the gate — identify the act model (unilateral/bilateral/resolution/...) and select formation + effectiveness facts (`reference.request_lifecycle` legal-act gate). +3. Mount the gates and hang the held norms from Step 2: + - `产生`: positive elements + auxiliary norms + 权利障碍抗辩 (无效/可撤销/效力待定; tort: 阻却违法/无过错). + - `未消灭`: 清偿/抵销/提存/混同/免除/解除/撤销 consequences (anchor on 债的通用消灭事由). + - `可行使`: 诉讼时效 + 同时/先履行/不安抗辩 + 约定条件 + 程序前提. + - `抗辩/反抗辩`: counter-defenses, waiver, 时效中断/中止, defense-unavailable. +4. For 损害赔偿 bases, split 责任成立 from 责任范围 inside `产生`. + +Mark each defense/auxiliary with its burden holder. Tag branches the facts do not touch as `[本案不涉及]` and fold them — do not delete, to keep the spine complete and auditable. + +## Step 4 — Decompose Elements and Flag Open Concepts + +Break each gate's elements into smallest 涵摄 units and hand the soft ones to the concept layer (`reference.concept_cards`). + +- Split on connectors: 和/以及/同时 → AND (each independent); 或者/或 → OR (alternative); 但……除外 → carve the 但书 into a defense norm. +- Surface implied elements the text omits: 因果关系, 过错, 违法性, 行为能力. +- Tag each element type (主体/行为/客体/主观/因果/结果/程序) and certainty (确定 / 不确定法律概念 / 一般条款). +- For every 不确定法律概念 (重大、合理、显失公平、善意、根本违约、不可抗力, ...): mark **需法律解释**, name the dispute focus, and route to a concept card — create a temporary card when none exists (`reference.concept_cards`). Do not let the term float on model intuition. +- Apply the 否认 vs 抗辩 distinction: a norm denying an element fact sits under that element marked 否认; a norm introducing an independent blocking/extinguishing fact stands alone marked 抗辩. Note any 跨阶段双重挂载 (one norm serving two gates). + +## Handoff + +The product is a candidate schema: four-gate spine + decomposed elements + concept-card hooks + a populated verification queue, all `model_inference` / `pending_mcp`. It feeds the same gates and output skeletons as a seed-sourced base (`reference.output_templates`), and must clear `reference.verification` before any node is stated as law. If a real seed later appears, compare the two and reconcile. + +> 方法借鉴 Youchu-lawhub/gutachten-civil-case(Apache-2.0),已按本 skill 的四阶层 lifecycle 与证据标签体系改写。 diff --git a/skills/request-basis/references/interpretation_toolkit.md b/skills/request-basis/references/interpretation_toolkit.md new file mode 100644 index 0000000..b3b7a6e --- /dev/null +++ b/skills/request-basis/references/interpretation_toolkit.md @@ -0,0 +1,54 @@ +# Interpretation Toolkit Hook + +This is a **hook**, not a full hermeneutics engine. When element decomposition +reaches an indeterminate legal concept (不确定法律概念) — e.g., 过错, 合理期限, +显失公平, 善意, 重大误解 — the analysis must not stop at naming it. Route the +concept through the steps below. + +## When To Trigger + +Trigger whenever涵摄 (subsumption) of a fact under an element requires a value +judgment or a definition the statute does not settle on its face. A concept card +flagged as material (`reference.concept_cards`) that lacks an authoritative +definition is the typical trigger. + +## Four-Step Path + +1. **Identify the preset.** State what the concept presupposes and which element + it serves; do not argue the term in the abstract. +2. **Seek authoritative meaning.** Look for a 评注 / 司法解释 / 最高法理解与适用 / + case-law reading via `[SLOT-LEGAL-DB]` (`reference.capability_slots`). If found, + cite it by exact article/source and use it. +3. **Choose an interpretation path.** If no settled meaning, work the + interpretation ranks and record which one you relied on: + 文义 (text) → 体系 (system) → 历史 (history) → 目的 (purpose), + with 合宪性 / 比较法 as cross-checks only. +4. **Write the subsumption and flag the argument burden.** Apply the chosen + meaning to the facts. Departing from 文义, using 类推, or invoking a 一般条款 + carries the **heaviest** argument burden — say so and justify it. + +## Handoff To Specialist Skills + +This hook stays light. Hand off when the concept needs real argumentation: + +- Disputed meaning, rank conflict, value judgment, or rebutting an opposing + reading → trigger the `legal-interpretation-argument` skill. +- 法无明文, gap-filling, 参照适用, 目的性限缩, or analogy → trigger the + `analogical-reasoning` skill. Respect PRC limits: no 不利类推 in 刑法 / 税法. + +## Degradation + +If no authoritative meaning is available and no handoff is run, do not invent a +settled definition. Write the reading as `model_inference`, label the term 待核, +and queue a verification task (`reference.verification`). + +## Self-Check (6 items) + +- Did 涵摄 actually happen, or was the element asserted without applying a meaning? +- Is the chosen interpretation path named (not silent)? +- Is the heaviest-burden move (文义偏离/类推/一般条款) justified? +- Is an authoritative definition cited by exact source, not paraphrased loosely? +- Are unresolved concepts labeled 待核, not stated as settled? +- Was a specialist skill triggered when the concept was genuinely disputed? + +> 方法借鉴 Youchu-lawhub/gutachten-civil-case(Apache-2.0),已按本 skill 的钩子化设计与证据标签体系改写;解释学细节交由 legal-interpretation-argument / analogical-reasoning skill。 diff --git a/skills/request-basis/references/norm_decomposition.md b/skills/request-basis/references/norm_decomposition.md index 2c7e549..1dee25c 100644 --- a/skills/request-basis/references/norm_decomposition.md +++ b/skills/request-basis/references/norm_decomposition.md @@ -119,3 +119,48 @@ tree as a *逐要件检视清单*, and surface every `verification_task` node pl re-expand it inline; follow `related_atom_ids` to that program. - The repository's norm-decomposition coverage report tool prints an index of all programs and atoms when a coverage overview is needed. + +## Denial vs Defense — Operational Test + +The function vocabulary (`denial_norm` / `defense_norm` / `counter_defense_norm` / +`defense_exclusion_norm`) tells you what a node *is*; this test tells you how to +*place* a real fact the opponent raises. + +Two-question router: + +- **Q1 — does it deny an element the claimant must prove?** "你说的事实不成立" + (e.g., 没有因果关系 / 没有过错 / 合同未成立). → It is a **否认 (denial)**. The + claimant keeps the burden. Mount it **under the element it attacks**, indented, + inside the 产生 gate. +- **Q2 — does it accept the elements but add a new fact that blocks the right?** + "即使你说的都真,但还有……" (e.g., 已清偿 / 诉讼时效届满 / 正当防卫 / 同时履行). + → It is an **抗辩 (defense)**. The opponent carries the burden of the new fact. + Mount it as an **independent item** in the 未消灭 or 可行使 gate, not under a + claimant element. + +High-frequency anchors (confirm, do not memorize as law — verify each): + +- 受害人故意 (民法典1174) → a full 免责事由: it sits at 产生 (negates 可归责/因果) + **but the defendant pleads and proves it**, so on the burden axis it behaves like + a defense. Mount it at 产生 yet keep the burden on the defendant; do not treat it + as a plain claimant-burden denial. +- 正当防卫 (181) / 紧急避险 (182) → 违法阻却 → defense (defendant's burden). 紧急避险 + is not a clean full bar: where 险情由自然原因引起, the 避险人 may still owe 适当补偿 + — keep a 数额 check even when the defense succeeds. +- 过失相抵 (1173) → a **数额 reduction** rule (减轻责任), not a 责任成立 bar: mount it + primarily at 责任范围. It moves up to 责任成立/因果 only when 受害人过错 actually + severs or wholly supplies causation — and then it is causation / 1174, not 过失相抵. +- 诉讼时效届满 (188/192) → exercisability defense in 可行使 (defendant's burden). + +Structural rules: + +- A denial never gets its own top-level item; it lives under the attacked element. +- A defense is its own item; a counter-defense (再抗辩) nests under that defense. +- Cross-stage check: a single fact (e.g., 1173, 通知效力) can attach at more than + one gate — verify whether it belongs at 产生, 未消灭, 可行使, or 数额, and mount + it at each place it bites. + +This feeds `mode.litigation` step "identify denials, defenses, counter-defenses, +burden holder, and proof gaps": run Q1/Q2 on every opponent fact before placing it. + +> 方法借鉴 Youchu-lawhub/gutachten-civil-case(Apache-2.0),已按本 skill 的 norm-function 词表与四阶层 lifecycle 改写;条号须经 verification 核实。 diff --git a/skills/request-basis/references/output_precheck.md b/skills/request-basis/references/output_precheck.md new file mode 100644 index 0000000..265265b --- /dev/null +++ b/skills/request-basis/references/output_precheck.md @@ -0,0 +1,51 @@ +# Output Pre-Check Gate + +Run this gate **before** drafting the final analysis or converting to a report — +not after. Catching coverage and format problems at the draft-entry point is +cheaper than fixing a finished document. + +## A. Coverage + +- Every candidate request basis passed all four lifecycle gates + (`reference.request_lifecycle`: 产生 / 未消灭 / 可行使 / 抗辩-反抗辩), or is + listed as a candidate with an explicit reason for not being analyzed in detail + (`reference.discretion_policy`). +- Every indeterminate concept went through `reference.interpretation_toolkit` + (not left as a bare label). +- Argument depth was assigned per `reference.proportionality`; ◎ core disputes are + actually argued, not flattened. + +## B. Citation Verification + +- Confirm the running SKILL Global Rules citation discipline held: exact 条号 + + 原文 (never "相关规定"), a per-citation relevance pass, and the company-law + subject-type / norm-addressee guard. (This section checks they were applied; it + does not restate them.) +- **司法解释 citations get a forced second check** — they do not inherit a prior + pass. This is the one citation item the running rules do not already enforce. +- Unverified citations are labeled 待核 (`reference.verification`). + +## C. Format Conformance + +- If the output is a legal report converted to Word, it follows the 类《法学研究》 + delivery format (`rules/common/legal-report-delivery-format.md`): 法条原文 in + footnotes, 精确到句, repeats shortened with 前引. +- Format is checked at draft entry, not after delivery; a format drift is a P1 + blocker on conversion, same tier as a citation error. + +## D. One-Pass Revision + +- Collect all gate findings first, then revise **once**; do not loop. +- After the single revision, re-check only the items that were touched (targeted), + not the whole document again. + +## Pre-Check Note Skeleton + +```text +coverage: bases passed / candidates listed with reasons / concepts hooked +citation: statutes verified / SI second-checked / company-law guard / 待核 count +format: report format conform (Y/N) / footnote 精确到句 (Y/N) +revision: findings collected → one revision → targeted re-check +``` + +> 方法借鉴 Youchu-lawhub/gutachten-civil-case(Apache-2.0),已按本 skill 的核验门禁与交付格式规则改写。 diff --git a/skills/request-basis/references/proportionality.md b/skills/request-basis/references/proportionality.md new file mode 100644 index 0000000..c47984a --- /dev/null +++ b/skills/request-basis/references/proportionality.md @@ -0,0 +1,47 @@ +# Argument Proportionality + +Argument depth must match how contested an element is. Do not write every element +at full depth; spend depth where the dispute actually is. + +## A. Three Depth Tiers + +| Tier | When | How to write | +| --- | --- | --- | +| · 明显 (obvious) | Falls in the core meaning of the term; not disputed; not outcome-determinative | One 裁判式 sentence: state the element is met and move on. | +| ○ 可能争议 (possibly disputed) | Reasonable lawyers could differ, or one side might contest | Short 三段论: 大前提 (rule) → 小前提 (facts) → 结论. | +| ◎ 核心争议 (core dispute) | Outcome-determinative and genuinely contested | Full treatment: unpack the indeterminate concept (`reference.interpretation_toolkit`), use 类型化 if useful, and answer the opposing reading. | + +## B. Four Judgment Questions + +To place an element on the tier ladder, ask: + +1. Do the facts fall in the **core** meaning radius of the term, or at its 边缘? +2. Could a reasonable lawyer grasp the answer at a glance, or does it need + interpretation? +3. Do the parties actually 争议 this point? +4. Does this element **decide** whether the request basis succeeds? + +More "no / 边缘 / contested / outcome-deciding" answers → push the element up to ◎. + +## C. Issue Markers In The Outline + +Tag each element in the lifecycle outline with its tier so depth is visible and +the user can re-rank at Gate 2 (`reference.staged_gates`): + +- ◎ core dispute — must be fully argued; +- ○ possibly disputed — three-step; +- · obvious — one line. + +## D. Depth Column In The Element Table + +Add a 论证深度 column to the lifecycle element table (`reference.output_templates`): + +| 请求权基础 | 阶层 | 要件 | 争点标记 | 论证深度 | 现有证据 | 缺口 | +| --- | --- | --- | --- | --- | --- | --- | + +This keeps the analysis from flattening every element to the same density, and +ties argument effort to the real fight in the case. It does not change which +elements must be *checked* — every gate in `reference.request_lifecycle` is still +visited; proportionality only governs how much is *written*. + +> 方法借鉴 Youchu-lawhub/gutachten-civil-case(Apache-2.0),已按本 skill 体系改写。 diff --git a/skills/request-basis/references/staged_gates.md b/skills/request-basis/references/staged_gates.md new file mode 100644 index 0000000..9b5bd34 --- /dev/null +++ b/skills/request-basis/references/staged_gates.md @@ -0,0 +1,75 @@ +# Staged Gates And Fact–Question–Norm Valve + +Stage discipline for litigation/exam analysis. Use it so the analysis cannot +jump from 案由 straight to element conclusions before the user can steer. + +**Trigger scope.** Apply the gates only to `structured_analysis` / `evidence_matrix` +work (`reference.discretion_policy`). Do not impose them on `open_scan` +brainstorming or simple single-basis study questions, where the lite runtime's +minimal surface governs. + +## A. Fact–Question–Norm Valve + +Three layers, in order. A later layer must not contaminate an earlier one. + +| Layer | Allowed output | Forbidden | +| --- | --- | --- | +| Fact layer | Neutral fact notes, party-pair list, claim goal verbatim | 条文号, 法律定性, 争点预判 | +| Question layer | The legal question(s) restated faithfully from the user | Pre-selecting a request basis | +| Norm layer | 条文号, 要件解释, 检视程式 — starts **only** here | Re-writing the facts to fit a norm | + +The fact layer follows the same fact/evidence separation as `mode.litigation` +(party assertion / evidence content / evidence-supported fact / disputed fact / +legal evaluation / model inference). Pulling a 条文号 or a legal conclusion into +the fact or question layer is a method violation: stop, drop it, and re-run that +layer clean. + +## B. Two Independent Confirmation Gates + +Between scenario intake and a written analysis, pause twice for the user. + +- **Gate 1 — candidate list.** Output the candidate request bases (with party, + claim goal, norm function, and why each is a candidate). Do **not** yet expand + the four-gate lifecycle or pick a single path. Wait for the user to confirm, + cut, or add bases. +- **Gate 2 — lifecycle outline.** For the confirmed bases, expand the four-gate + lifecycle outline (`reference.request_lifecycle`: 产生 / 未消灭 / 可行使 / + 抗辩-反抗辩) with element slots and 争点标记. Wait for the user to confirm the + outline before drafting. Do not silently re-open Gate 1 here; if a new basis is + needed, name it and send it back to Gate 1. + +A single base may be analyzed end-to-end on user request, but the two gates stay +visible so the user keeps the steering wheel. + +## C. Per-Stage Violation Self-Check + +Run a short self-check at the end of each stage; a hit means roll back: + +- Fact/Question layer: any 条文号 / 定性 / 争点预判 leaked in? any party statement + written as found fact? +- Gate 1: any base smuggled in lifecycle structure or a chosen drafting path? any + candidate left off because it lacks a seed (forbidden — keep it labeled)? +- Gate 2: every confirmed base passes all four lifecycle gates? unanalyzed + candidates listed with reasons (`reference.discretion_policy`)? +- Drafting: any element conclusion without a verified citation + (`reference.verification`)? any 否认 vs 抗辩 mis-placed + (`reference.norm_decomposition`)? + +## D. Parallel Drafting With Unified-Premise Injection + +When the matter has ≥2 party-pair / request-basis units that are independent, +draft them in parallel — but inject a shared premise block first, or the parts +drift. + +1. Before splitting, fix and write down the shared premises: party identities and + 称谓, key 定性 already settled (e.g., 合同效力 / 所有权归属), and the citation + format (`rules/common/legal-report-delivery-format.md` when output is a report). +2. Give every parallel unit the same premise block; each drafts only its own + request-basis lifecycle. +3. On merge, run a consistency pass: 称谓 uniform, 术语 uniform, citations and + footnote numbering continuous, no contradictory 定性 across units. + +Single-threaded drafting is the default; parallelize only when the units are +genuinely independent and the premise block is fixed. + +> 方法借鉴 Youchu-lawhub/gutachten-civil-case(Apache-2.0),已按本 skill 的四阶层 lifecycle、fact/evidence separation 与证据标签体系改写。 diff --git a/skills/request-basis/resource_manifest.json b/skills/request-basis/resource_manifest.json index 80b1b95..9618828 100644 --- a/skills/request-basis/resource_manifest.json +++ b/skills/request-basis/resource_manifest.json @@ -88,6 +88,30 @@ "norm_decomposition": { "path": "references/norm_decomposition.md", "fallback": "For high-precision analysis, recursively unpack the selected request basis into main norms, auxiliary norms, defenses, counter-defenses, extinguishment, and exercisability, marking unverified law as verification tasks." + }, + "generation_protocol": { + "path": "references/generation_protocol.md", + "fallback": "When no seed group or base matches, construct the review schema from the main norm via party-pair matrix, norm-function classification, the four-gate lifecycle, and element decomposition; label all output model_inference and queue verification tasks." + }, + "staged_gates": { + "path": "references/staged_gates.md", + "fallback": "Keep a fact-question-norm valve and two user-confirmation gates (candidate list, lifecycle outline); inject shared premises before any parallel drafting." + }, + "proportionality": { + "path": "references/proportionality.md", + "fallback": "Match argument depth to dispute: one line for obvious elements, three-step for possibly disputed, full treatment for core disputes; still check every lifecycle gate." + }, + "interpretation_toolkit": { + "path": "references/interpretation_toolkit.md", + "fallback": "When an element hits an indeterminate concept, identify the preset, seek authoritative meaning, choose an interpretation rank, flag the argument burden, or hand off to the legal-interpretation-argument / analogical-reasoning skills; label unresolved readings model_inference." + }, + "output_precheck": { + "path": "references/output_precheck.md", + "fallback": "Before drafting, check coverage of all lifecycle gates, exact-article citation verification (second-check judicial interpretations), report-format conformance, and one-pass revision." + }, + "capability_slots": { + "path": "references/capability_slots.md", + "fallback": "Map [SLOT-LEGAL-DB], [SLOT-DOC-PARSE], [SLOT-WEB-SEARCH], [SLOT-WORD-OUTPUT] to available tools; when a slot is unset, degrade through the five-tier source labels and verification tasks." } }, "data_roles": {