Define deeper question timing

This commit is contained in:
2026-05-19 15:45:57 -07:00
parent b5416e0453
commit 766ceac5d7
3 changed files with 77 additions and 1 deletions
+1 -1
View File
@@ -887,7 +887,7 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe
- [x] Define accessibility rules for the learning system: hints, retries, readable wording, no hard lockout from basic survival, and non-punitive practice paths. Added learning accessibility rules to `Docs/KnowledgeAndSkillFoundation.md`, covering reusable hints, retries, readable wording, non-color-only warnings, no lockout from basic survival, safer practice paths, and diminishing returns to prevent exploit loops. - [x] Define accessibility rules for the learning system: hints, retries, readable wording, no hard lockout from basic survival, and non-punitive practice paths. Added learning accessibility rules to `Docs/KnowledgeAndSkillFoundation.md`, covering reusable hints, retries, readable wording, non-color-only warnings, no lockout from basic survival, safer practice paths, and diminishing returns to prevent exploit loops.
- [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] 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] 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.
- [ ] Define when deeper questions should matter: quality improvements, safer work, complex crafting, teaching others, and advanced branches. - [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. - [ ] Add design notes for avoiding exploit farming and rote memorization.
- [ ] Add persistence requirements for knowledge, skill experience, learned concepts, failed attempts, and tutorial state. - [ ] 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. - [ ] Add multiplayer rules for teaching, observation, shared work, and group skill benefits.
+36
View File
@@ -473,3 +473,39 @@ feedback: Fiber is a basic binding material for primitive crafting and shelter.
Question-bank rule: elementary questions should be short, practical, and tied to Question-bank rule: elementary questions should be short, practical, and tied to
actions the player can immediately recognize in the MVP. actions the player can immediately recognize in the MVP.
## When Deeper Questions Matter
Deeper questions should not decide whether a new player can survive the first
night. They should matter when the player is trying to do better, teach others,
or enter more complex branches.
Quality improvements:
- Use deeper checks when the player wants better yield, stronger construction,
more durable tools, safer food, better medicine, or more efficient work.
Safer work:
- Use deeper checks when incorrect assumptions could create fire spread, injury,
sickness, structural failure, bad weather exposure, or wasted scarce supplies.
Complex crafting:
- Use deeper checks for multi-stage recipes, material substitutions, tool
maintenance, preserved food, medicines, buildings, and later machinery.
Teaching others:
- Use deeper checks when a player or NPC attempts to teach a concept, create a
lesson note, train family/community members, or evaluate whether someone
understood a dangerous task.
Advanced branches:
- Use deeper checks for farming, animal care, medicine, engineering, trade,
navigation, governance, science, and future advanced technology.
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.
+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/env python3
"""Verify deeper-question timing rules 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: [
"## When Deeper Questions Matter",
"Quality improvements:",
"Safer work:",
"Complex crafting:",
"Teaching others:",
"Advanced branches:",
"Depth rule:",
],
ROADMAP: [
"[x] Define when deeper questions should matter: quality improvements, safer work, complex crafting, teaching others, and advanced branches.",
],
}
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: deeper-question timing rules are documented.")
if __name__ == "__main__":
main()