diff --git a/AGRARIAN_DEVELOPMENT_ROADMAP.md b/AGRARIAN_DEVELOPMENT_ROADMAP.md index bb0238e..663ff11 100644 --- a/AGRARIAN_DEVELOPMENT_ROADMAP.md +++ b/AGRARIAN_DEVELOPMENT_ROADMAP.md @@ -877,7 +877,7 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe ## 0.1.R Knowledge And Skill Foundation -- [ ] Define the MVP separation between knowledge, practical experience, physical stats, tools, and infrastructure. +- [x] Define the MVP separation between knowledge, practical experience, physical stats, tools, and infrastructure. Added `Docs/KnowledgeAndSkillFoundation.md` with a five-part MVP model separating knowledge, practical experience, physical stats, tools, and infrastructure so basic survival remains possible but outcomes improve through understanding, practice, equipment, and durable world improvements. - [ ] Add a first-pass skill taxonomy for survival, gathering, tool use, crafting, fire, shelter, navigation, first aid, food safety, and weather awareness. - [ ] Define how knowledge affects survival actions: fewer mistakes, safer attempts, better yields, lower injury risk, and more reliable outcomes. - [ ] Define how practical experience grows through use, repetition, mistakes, and recovery from failure. diff --git a/Docs/KnowledgeAndSkillFoundation.md b/Docs/KnowledgeAndSkillFoundation.md new file mode 100644 index 0000000..3fc635a --- /dev/null +++ b/Docs/KnowledgeAndSkillFoundation.md @@ -0,0 +1,51 @@ +# Knowledge And Skill Foundation + +Version `0.1.R` defines how Agrarian treats knowledge, practice, body condition, +tools, and infrastructure before those systems become heavy gameplay code. + +## MVP Separation Model + +Agrarian should not collapse every form of progress into one generic skill +number. The MVP separates five related but distinct drivers. + +Knowledge: + +- Represents what a character understands. +- Comes from observation, teaching, notes, mistakes, questions, and practice + reflection. +- Affects judgment, recognition, safety, sequencing, and when warnings appear. +- Should help players understand why something worked or failed. + +Practical experience: + +- Represents practiced execution under real conditions. +- Comes from repeated action, variation, failed attempts, recovery, and doing + the work in different weather, light, terrain, and tool conditions. +- Affects speed, consistency, yield, precision, and waste. +- Should grow slowly from use and should not replace core understanding. + +Physical stats: + +- Represent the body in the moment: health, stamina, hunger, thirst, body + temperature, exhaustion, injury, sickness, age, carry load, and care history. +- Affect what a character can safely do right now. +- Should create readable pressure without becoming a hidden knowledge system. + +Tools: + +- Represent external capability the player can hold, equip, place, or maintain. +- Affect what actions are possible, how safe they are, how much effort they + require, and how good the result can be. +- Should still require knowledge and practice for best outcomes. + +Infrastructure: + +- Represents durable world improvements such as shelter, storage, paths, wells, + fields, workshops, firebreaks, and community systems. +- Affects baseline safety, efficiency, capacity, and resilience. +- Should reduce routine survival pressure without removing consequences from + poor choices. + +MVP rule: basic survival actions must remain possible with low knowledge and +poor tools, but outcomes should be riskier, slower, lower quality, or more +wasteful until knowledge, practice, tools, and infrastructure improve. diff --git a/Scripts/verify_knowledge_skill_separation_model.py b/Scripts/verify_knowledge_skill_separation_model.py new file mode 100644 index 0000000..b1c9a5d --- /dev/null +++ b/Scripts/verify_knowledge_skill_separation_model.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +"""Verify the 0.1.R MVP knowledge/skill separation model is documented.""" + +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +DOC = ROOT / "Docs" / "KnowledgeAndSkillFoundation.md" +ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md" + +REQUIRED = { + DOC: [ + "## MVP Separation Model", + "Knowledge:", + "Practical experience:", + "Physical stats:", + "Tools:", + "Infrastructure:", + "basic survival actions must remain possible", + ], + ROADMAP: [ + "[x] Define the MVP separation between knowledge, practical experience, physical stats, tools, and infrastructure.", + ], +} + + +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: knowledge/skill separation model is documented.") + + +if __name__ == "__main__": + main()