From 66c6052e91c4d9c79ac3cffff3bd9933dc93c955 Mon Sep 17 00:00:00 2001 From: nathan Date: Tue, 19 May 2026 15:48:46 -0700 Subject: [PATCH] Add learning exploit guardrails --- AGRARIAN_DEVELOPMENT_ROADMAP.md | 2 +- Docs/KnowledgeAndSkillFoundation.md | 27 +++++++++++++ Scripts/verify_learning_exploit_guardrails.py | 40 +++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 Scripts/verify_learning_exploit_guardrails.py diff --git a/AGRARIAN_DEVELOPMENT_ROADMAP.md b/AGRARIAN_DEVELOPMENT_ROADMAP.md index 5fa1060..4a2eae4 100644 --- a/AGRARIAN_DEVELOPMENT_ROADMAP.md +++ b/AGRARIAN_DEVELOPMENT_ROADMAP.md @@ -888,7 +888,7 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe - [x] Define the first subject content format: topic, concepts, difficulty tier, prerequisite concepts, in-game effect, practice action, and source note. Added a compact subject content schema to `Docs/KnowledgeAndSkillFoundation.md` with `topic`, `concepts`, `difficulty_tier`, `prerequisite_concepts`, `in_game_effect`, `practice_action`, and `source_note`, plus a fire-clearance example suitable for later data assets. - [x] Add a small MVP question bank for elementary survival knowledge. Added six elementary survival question records to `Docs/KnowledgeAndSkillFoundation.md` for fire clearance, potable water, cold exposure, shelter drainage, bleeding care, and fiber identification, each with answer options, correct answer, and practical feedback. - [x] Define when deeper questions should matter: quality improvements, safer work, complex crafting, teaching others, and advanced branches. Added deeper-question timing rules to `Docs/KnowledgeAndSkillFoundation.md`, keeping advanced checks out of the first survival loop while tying them to quality improvements, safer work, complex crafting, teaching others, and advanced branches. -- [ ] Add design notes for avoiding exploit farming and rote memorization. +- [x] Add design notes for avoiding exploit farming and rote memorization. Added exploit and rote-memorization guardrails to `Docs/KnowledgeAndSkillFoundation.md`, covering diminishing returns, meaningful action context, repeated prompt suppression, recovery-only credit, learned-concept separation, and varied wording to reward decisions and practice instead of low-cost repetition. - [ ] Add persistence requirements for knowledge, skill experience, learned concepts, failed attempts, and tutorial state. - [ ] Add multiplayer rules for teaching, observation, shared work, and group skill benefits. diff --git a/Docs/KnowledgeAndSkillFoundation.md b/Docs/KnowledgeAndSkillFoundation.md index c8f48ee..0527037 100644 --- a/Docs/KnowledgeAndSkillFoundation.md +++ b/Docs/KnowledgeAndSkillFoundation.md @@ -509,3 +509,30 @@ Advanced branches: Depth rule: deeper questions should improve mastery and responsibility. They should not be busywork for actions the character has already demonstrated through repeated safe practice. + +## Exploit And Rote-Memorization Guardrails + +The learning system should reward understanding and practice, not repetitive +input farming or memorizing answer order. + +Exploit farming risks: + +- Repeating the same safe action for unlimited experience. +- Creating harmless failures just to farm mistake feedback. +- Spamming prompts or questions for repeated rewards. +- Using alternate accounts or group work to duplicate teaching credit. +- Performing actions with no meaningful cost, context, or outcome. + +Guardrails: + +- Apply diminishing returns to identical repeated actions. +- Require meaningful context for experience: time, resource cost, risk, + environmental variation, or consequence. +- Track recent prompt/question exposure and suppress repeated rewards. +- Give recovery credit only when the player takes a useful corrective action. +- Separate "learned concept" from "perfect mastery" so one answer does not solve + every future situation. +- Prefer concept families and varied wording over fixed answer-order memorizing. + +Anti-exploit rule: rewards should come from meaningful decisions, varied +practice, and good recovery, not from low-cost repetition. diff --git a/Scripts/verify_learning_exploit_guardrails.py b/Scripts/verify_learning_exploit_guardrails.py new file mode 100644 index 0000000..93064d4 --- /dev/null +++ b/Scripts/verify_learning_exploit_guardrails.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +"""Verify exploit-farming and rote-memorization guardrails are documented.""" + +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +DOC = ROOT / "Docs" / "KnowledgeAndSkillFoundation.md" +ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md" + +REQUIRED = { + DOC: [ + "## Exploit And Rote-Memorization Guardrails", + "Exploit farming risks:", + "Guardrails:", + "diminishing returns", + "meaningful context", + "varied wording", + "Anti-exploit rule:", + ], + ROADMAP: [ + "[x] Add design notes for avoiding exploit farming and rote memorization.", + ], +} + + +def main() -> None: + missing: list[str] = [] + for path, snippets in REQUIRED.items(): + text = path.read_text(encoding="utf-8") + for snippet in snippets: + if snippet not in text: + missing.append(f"{path.relative_to(ROOT)} missing {snippet!r}") + if missing: + raise SystemExit("FAILED: " + "; ".join(missing)) + print("OK: learning exploit guardrails are documented.") + + +if __name__ == "__main__": + main()