update
This commit is contained in:
@@ -17,7 +17,7 @@ Rules:
|
||||
- **Conservative:** object only to what is **clearly** wrong. When in doubt, keep it.
|
||||
- Give the 1-based number (`index`) of each faulty example.
|
||||
|
||||
Write ONLY the JSON file to: {out_path} — one of the two:
|
||||
Reply with ONLY the JSON — no other text, no code fences — one of the two:
|
||||
{{"ok": true}}
|
||||
{{"problems": [{{"index": 2}}, {{"index": 5}}]}}
|
||||
|
||||
|
||||
29
templates/Prompt/Blocks-Dedup.md
Normal file
29
templates/Prompt/Blocks-Dedup.md
Normal file
@@ -0,0 +1,29 @@
|
||||
The FINAL block inventory for the topic "{topic}" was assembled from several sources. Despite earlier filtering it can still carry duplicates: the same concept listed under two names. For EACH pair below, decide: do A and B denote the SAME block → **ja**, or TWO DIFFERENT blocks → **nein**?
|
||||
|
||||
THE MOST COMMON ERROR is merging a named VARIANT with its base entity. A variant is NEVER its base: "3-X" ≠ "X", "Max-X" ≠ "Max-3-X", "Modified X" ≠ "X", "k-X" ≠ "X". A digit or qualifier prefix that restricts the entity makes it a DIFFERENT entity → **nein**.
|
||||
|
||||
PAIRS:
|
||||
{pairs}
|
||||
|
||||
## How to decide (per pair)
|
||||
**STEP 1 — Name the CANONICAL ENTITY of each side.** Strip catalogue/reference additions („Definition 6.19", „Satz 7.8", „Kapitel 3"), parenthesized qualifiers that only restate or explain the name („X (full spelling)", „X (Problem)", „X-Problem"), spelling/spacing/hyphenation variants, translations of the same name, and genitive/apostrophe variants. „X" and „X (long form of X)" share one canonical entity.
|
||||
|
||||
**STEP 2 — Same entity, or different?**
|
||||
- **SAME canonical entity → ja**, even when A and B emphasize DIFFERENT FACETS: formal definition vs. property vs. mechanism vs. characterization vs. naming variant. Two blocks about the same entity from different sources are duplicates.
|
||||
- **DIFFERENT canonical entity → nein**, however similar the wording:
|
||||
- a named **variant, special case or modification** is its own entity („X" ≠ „Modified X", „3-X" ≠ „X");
|
||||
- a **relation between two entities** (reduction, implication, comparison, mapping) is individuated by BOTH operands AND the direction. Same words, swapped direction → DIFFERENT. One shared operand, other operand differs → DIFFERENT. A relation is never a duplicate of one of its operands.
|
||||
- a different parameter, restriction or scope is a different entity.
|
||||
|
||||
**STEP 3 — „When in doubt → nein"** applies only when STEP 1 is genuinely ambiguous. Differing descriptions of the same entity are still **ja**.
|
||||
|
||||
## Examples (example domain: graph theory — the rules hold for any topic)
|
||||
- A: „SAT" B: „SAT (Satisfiability Problem)" → same entity, naming only → **ja**
|
||||
- A: „P (Definition 6.20)" B: „P (Polynomialzeit)" → both = class **P**, definition vs. characterization → **ja**
|
||||
- A: „Hamiltonian Cycle ≤ Hamiltonian Path" B: „Hamiltonian Path ≤ Hamiltonian Cycle" → same words, opposite direction → **nein**
|
||||
- A: „Greedy-Algorithmus" B: „Modifizierter Greedy-Algorithmus" → base vs. named variant → **nein**
|
||||
|
||||
Write ONLY the JSON file to: {out_path}
|
||||
|
||||
Format (each pair number from the list with „ja" or „nein"; no other text in the file):
|
||||
{{"pairs": {{"1": "ja", "2": "nein"}}}}
|
||||
3
templates/Prompt/Blocks-Source-Inline.md
Normal file
3
templates/Prompt/Blocks-Source-Inline.md
Normal file
@@ -0,0 +1,3 @@
|
||||
SOURCE EXCERPTS — selected from the learning material. WORK EXCLUSIVELY WITH THESE EXCERPTS: do not search the web, do not read files. Cite from them (file name + heading/line if given). Whatever is not backable in the excerpts counts as NOT backed by the material.
|
||||
|
||||
{excerpts}
|
||||
@@ -6,7 +6,7 @@ FACTS TO CHECK (per subblock):
|
||||
{facts}
|
||||
|
||||
Check per subblock:
|
||||
1. **Evidence fidelity**: Does each `cited_facts` entry appear that way in the source (accurate in substance)? Is the source citation correct? With a source file: check against the file. Without a source: is it established standard knowledge?
|
||||
1. **Evidence fidelity**: Does each `cited_facts` entry appear that way in the source (accurate in substance)? Is the source citation correct? With source material (folder or excerpts): check against it. Without a source: is it established standard knowledge?
|
||||
2. **Factual correctness**: Are formulas, values, definitions, signatures technically correct? A wrong formula/value is a defect.
|
||||
3. **Fact vs. example**: Is a self-computed/invented example wrongly declared as `cited_facts`? That is a defect — it belongs in `example_idea`.
|
||||
4. Do NOT check examples (`example_idea`) for source evidence — they are generative.
|
||||
@@ -17,7 +17,7 @@ Note only REAL defects (wrong fact, wrong source, example disguised as a fact).
|
||||
- `verwerfen: true` — the subblock is substantively **not backable**: an invented claim, a bound/formula/assertion not findable in the material, or simply technically wrong. The subblock is then REMOVED. Be sure — when in doubt, `false`.
|
||||
- `verwerfen: false` — the core is right, only a fact/value/source is imprecise and correctable.
|
||||
|
||||
Write ONLY the JSON file to: {out_path}
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
|
||||
Format — all in order:
|
||||
{{"ok": true}}
|
||||
|
||||
@@ -9,7 +9,7 @@ SECTION — current content (subblocks are marked with `<!-- sub: … -->`):
|
||||
Procedure:
|
||||
1. For EACH objective decide binary: does the text teach it well enough that a beginner could achieve the objective afterwards? Mentioning a keyword is NOT teaching — the how/why must be there.
|
||||
2. For each NOT-covered objective state precisely WHAT is missing (German, concrete — the writer will patch exactly this).
|
||||
3. List BALLAST: passages that serve none of the objectives (digressions, redundant repetition). Shortening candidates only — never a whole subblock.
|
||||
3. List BALLAST: passages that serve none of the objectives (digressions, redundant repetition). Shortening candidates only — never a whole subblock. Worked-example passages that apply a concept belonging to an objective are teaching, not ballast.
|
||||
4. Judge strictly binary per objective; no partial credit.
|
||||
|
||||
Write ONLY the JSON file to: {out_path}
|
||||
|
||||
@@ -8,9 +8,10 @@ VERIFIED FACTS — the ONLY allowed factual basis (extract-once from the source)
|
||||
|
||||
Procedure:
|
||||
1. Decompose the section text into its ATOMIC factual claims (definitions, properties, numbers, procedure steps, causal statements). Ignore pure didactics (transitions, framing, mnemonic phrasing).
|
||||
2. Check EACH claim INDIVIDUALLY and BINARY against the VERIFIED FACTS above: derivable from them → belegt. Not derivable, contradicting, or over-specific beyond the facts → nicht belegt.
|
||||
3. Do NOT search the web, do NOT use outside knowledge — a claim that is true in the world but absent from the facts is still "nicht belegt".
|
||||
4. When in doubt → nicht belegt (the guide may only teach verified material).
|
||||
2. Worked-example passages (a concrete problem worked through in steps to a result) are DIDACTICS when they merely APPLY or ILLUSTRATE a verified fact or a provided worked example: their concretely chosen values and computed intermediates do NOT count as over-specific. Flag an example step ONLY if it contradicts the facts or smuggles in a NEW general claim not derivable from them.
|
||||
3. Check EACH claim INDIVIDUALLY and BINARY against the VERIFIED FACTS above: derivable from them → belegt. Not derivable, contradicting, or over-specific beyond the facts → nicht belegt.
|
||||
4. Do NOT search the web, do NOT use outside knowledge — a claim that is true in the world but absent from the facts is still "nicht belegt".
|
||||
5. When in doubt → nicht belegt (the guide may only teach verified material).
|
||||
|
||||
Write ONLY the JSON file to: {out_path}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ LEARNING OBJECTIVES — after reading, a beginner must be able to do exactly thi
|
||||
|
||||
VERIFIED FACTS per subblock — binding basis. Quote cited facts (FACT[Source]) VERBATIM, invent nothing extra, do NOT re-research (a fact gate checks every claim against this list):
|
||||
{facts}
|
||||
{examples}
|
||||
{gaps}
|
||||
IMPORTANT — each subblock is delimited with a marker so the guide can later be shown in stages. The label comes EXACTLY from the assignment. Despite the marker, you write FLUENTLY and interwoven — the marker is an invisible interface, NOT a visible heading.
|
||||
|
||||
@@ -25,6 +26,7 @@ HOW TO WRITE the detailed version — ONE coherent text for a junior who is lear
|
||||
- The NUMBER of subblocks is the depth signal: many subblocks → the block deserves length; few → keep it short. Never pad.
|
||||
- CONCISE: every sentence carries new information. No repetition, no filler, no preamble. When in doubt, leave it out.
|
||||
- Show "how" procedures step by step. An example ONLY where it genuinely carries the understanding.
|
||||
- If VERIFIED WORKED EXAMPLES are provided above, weave each into its subblock as instructed there; do NOT invent additional worked examples for subblocks that already have one.
|
||||
|
||||
SECTION SPECIFICATION:
|
||||
{spec}
|
||||
|
||||
@@ -14,7 +14,7 @@ Rules:
|
||||
- **`advanced` is not a fallback choice.** Don't pick the middle because the votes are scattered — decide by the criterion "when do you need this?". Hit `beginner`/`expert` clearly where they apply.
|
||||
- Exactly one level for EACH disputed number.
|
||||
|
||||
Write ONLY the JSON file to: {out_path}
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
|
||||
Format (no other text):
|
||||
{{"levels": {{"1": "beginner", "4": "expert"}}}}
|
||||
|
||||
@@ -26,7 +26,7 @@ Don't flee to the middle:
|
||||
- **Differentiate within the block:** What is foundation (beginner), what is build-up (advanced), what is fine detail (expert)? Not everything is the middle.
|
||||
- Hit `beginner` and `expert` clearly where they apply — no bonus for the middle.
|
||||
|
||||
Write ONLY the JSON file to: {out_path}
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
|
||||
Format (exactly one level for EACH number; no other text):
|
||||
{{"levels": {{"1": "beginner", "2": "advanced", "3": "expert"}}}}
|
||||
|
||||
@@ -14,7 +14,7 @@ Keep good patterns unchanged. Change only what genuinely violates the criteria.
|
||||
|
||||
Keep every question in GERMAN (the questions are for German-speaking learners), even though these instructions are in English.
|
||||
|
||||
Write the cleaned-up final version of ALL blocks as ONE JSON to the file {out_path} (use your write tool), EXACTLY in this format:
|
||||
Reply with the cleaned-up final version of ALL blocks as ONE JSON — no other text, no code fences — EXACTLY in this format:
|
||||
{{"pattern": [
|
||||
{{"block": "<exact block title>", "subblock": "<exact title>", "question": "<one concrete question>"}}
|
||||
]}}
|
||||
|
||||
@@ -11,7 +11,7 @@ Rules:
|
||||
- Weigh the votes and decide by the criterion **core vs. peripheral within ITS OWN block**. `peripheral` is a genuine category — mark peripheral items deliberately as such. Only true core concepts/central theorems are never `peripheral`.
|
||||
- Exactly one value for EACH disputed number.
|
||||
|
||||
Write ONLY the JSON file to: {out_path}
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
|
||||
Format (no other text):
|
||||
{{"relevance": {{"1": "relevant", "4": "peripheral"}}}}
|
||||
|
||||
@@ -15,7 +15,7 @@ Rules:
|
||||
- Don't bump the level up out of caution. Only **true core concepts / central theorems** are never `peripheral`.
|
||||
- Only judge — invent nothing, change no subblocks.
|
||||
|
||||
Write ONLY the JSON file to: {out_path}
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
|
||||
Format (exactly one value for EACH number; no other text):
|
||||
{{"relevance": {{"1": "relevant", "2": "peripheral", "3": "relevant"}}}}
|
||||
|
||||
@@ -10,18 +10,18 @@ The groups:
|
||||
- **Uncertain (1×):** named by only one finder — **scrutinize strictly**. Include an uncertain entry ONLY if it is **clearly backed by the source AND a standalone point**. When in doubt, leave it out.
|
||||
|
||||
Rules:
|
||||
- **Evidence check (important):** Check each subblock against the source. **Discard whatever is NOT backable in the material or clearly invented** — fabricated bounds, formulas, values, or claims not actually in the source. With a source file: check against the file. Without a source (pure topic): keep only established standard knowledge, drop the doubtful/false.
|
||||
- **Evidence check (important):** Check each subblock against the source. **Discard whatever is NOT backable in the material or clearly invented** — fabricated bounds, formulas, values, or claims not actually in the source. With source material (folder or excerpts): check against it. Without a source (pure topic): keep only established standard knowledge, drop the doubtful/false.
|
||||
- **Merge duplicates:** Subblocks that state the same point in other words are ONE. Keep the clearest, drop the rephrasings. (e.g. „Broadcast Mode verfügbar" and „Broadcast-Modus aktivieren" → one.)
|
||||
- Keep all technically **DISTINCT** and backable sub-points in full — leave out nothing essential.
|
||||
- Discard whatever is too fine-grained, at the edge of the topic, or technically doubtful.
|
||||
- Each point atomic (one statement). Copy kept points VERBATIM, do not rephrase, invent nothing.
|
||||
- The count follows the difficulty: better few distinct than many redundant points.
|
||||
|
||||
Write ONLY the file {out_path} — one block marker per block (title EXACTLY as above), with the final subblock list below it:
|
||||
Reply with ONLY the final lists — no other text, no code fences. One block marker per block (title EXACTLY as above), with the final subblock list below it:
|
||||
|
||||
<!-- block: Exact block title -->
|
||||
- Subblock
|
||||
- Subblock
|
||||
|
||||
Write the marker line exactly like this. Every block must appear. No text outside the blocks.
|
||||
Output the marker line exactly like this. Every block must appear. No text outside the blocks.
|
||||
{extra}
|
||||
|
||||
Reference in New Issue
Block a user