@@ -3,8 +3,8 @@ set -euo pipefail
33
44REPO_ROOT=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) /.." && pwd) "
55REVIEW=" ${REPO_ROOT} /docs/rpg-experience-review.md"
6- README =" ${REPO_ROOT} /README .md"
7- RECEIPT =" ${REPO_ROOT} /docs/rpg-final-acceptance-receipt .md"
6+ SESSION_TEMPLATE =" ${REPO_ROOT} /docs/rpg-experience-session-template .md"
7+ PLAYTEST_CHECKLIST =" ${REPO_ROOT} /docs/rpg-experience-playtest-checklist .md"
88
99log () { printf ' [verify-rpg-experience-review] %s\n' " $* " ; }
1010die () { printf ' [verify-rpg-experience-review] ERROR: %s\n' " $* " >&2 ; exit 1; }
@@ -17,17 +17,20 @@ require_text() {
1717
1818log " checking required files"
1919[[ -f " ${REVIEW} " ]] || die " missing review doc: docs/rpg-experience-review.md"
20- [[ -f " ${README} " ]] || die " missing README.md"
21- [[ -f " ${RECEIPT} " ]] || die " missing final receipt"
2220
2321log " checking claim boundary language"
2422for text in \
23+ " ## Claim Boundary" \
2524 " automated Interaction evidence" \
2625 " playable" \
2726 " release-ready" \
2827 " Experience-layer completion" \
2928 " Release-layer completion" \
29+ " Completion Language" \
30+ " Allowed completion language" \
31+ " Forbidden completion language" \
3032 " not_claimed" \
33+ " release_ready_claim: \" not_claimed\" " \
3134 " No live human playtest, screenshot, or video artifact was produced" ; do
3235 require_text " ${REVIEW} " " ${text} "
3336done
@@ -44,6 +47,16 @@ for field in \
4447 require_text " ${REVIEW} " " ${field} "
4548done
4649
50+ log " checking claim boundary schema fields"
51+ for field in \
52+ " claim_boundary:" \
53+ " automated_interaction_evidence:" \
54+ " experience_claim:" \
55+ " playable_claim:" \
56+ " release_ready_claim:" ; do
57+ require_text " ${REVIEW} " " ${field} "
58+ done
59+
4760log " checking playtest issue schema fields"
4861for field in \
4962 " phase:" \
@@ -56,6 +69,16 @@ for field in \
5669 require_text " ${REVIEW} " " ${field} "
5770done
5871
72+ log " checking relative artifact guidance"
73+ for text in \
74+ " Minimum Experience session fields" \
75+ " repository-relative paths" \
76+ " Do not use local absolute paths" \
77+ " blocked" \
78+ " needs_followup" ; do
79+ require_text " ${REVIEW} " " ${text} "
80+ done
81+
5982log " checking initial review references automated commands and artifacts"
6083for text in \
6184 " bash scripts/verify_rpg_ui_content.sh" \
@@ -68,9 +91,50 @@ for text in \
6891 require_text " ${REVIEW} " " ${text} "
6992done
7093
71- log " checking README and final receipt links"
72- require_text " ${README} " " docs/rpg-experience-review.md"
73- require_text " ${RECEIPT} " " docs/rpg-experience-review.md"
74- require_text " ${RECEIPT} " " Experience Review Boundary"
94+ log " checking next-step checklist"
95+ for text in \
96+ " ## Next Human/AI-Assisted Review Checklist" \
97+ " Battle UI clarity" \
98+ " Menu affordance clarity" \
99+ " Sample content usefulness" \
100+ " Save/replay interpretability" \
101+ " Evidence capture" ; do
102+ require_text " ${REVIEW} " " ${text} "
103+ done
104+
105+ log " checking optional template documents"
106+ if [[ -f " ${SESSION_TEMPLATE} " ]]; then
107+ require_text " ${REVIEW} " " docs/rpg-experience-session-template.md"
108+ for field in \
109+ " timestamp:" \
110+ " session_id:" \
111+ " phase:" \
112+ " actor:" \
113+ " status:" \
114+ " artifact_paths:" \
115+ " claim_boundary:" \
116+ " not_claimed" ; do
117+ require_text " ${SESSION_TEMPLATE} " " ${field} "
118+ done
119+ fi
120+
121+ if [[ -f " ${PLAYTEST_CHECKLIST} " ]]; then
122+ require_text " ${REVIEW} " " docs/rpg-experience-playtest-checklist.md"
123+ for text in \
124+ " Battle UI clarity" \
125+ " Menu affordance clarity" \
126+ " Sample content usefulness" \
127+ " Evidence capture" ; do
128+ require_text " ${PLAYTEST_CHECKLIST} " " ${text} "
129+ done
130+ fi
131+
132+ log " checking repository docs do not contain local absolute artifact paths"
133+ experience_docs=(" ${REVIEW} " )
134+ [[ -f " ${SESSION_TEMPLATE} " ]] && experience_docs+=(" ${SESSION_TEMPLATE} " )
135+ [[ -f " ${PLAYTEST_CHECKLIST} " ]] && experience_docs+=(" ${PLAYTEST_CHECKLIST} " )
136+ if grep -Eq ' (/home/|/tmp/|file://)' " ${experience_docs[@]} " ; then
137+ die " Experience docs must not contain local absolute paths or file:// URLs"
138+ fi
75139
76140log " PASS"
0 commit comments