feat(audit): classify scripted gameplay telemetry - #222
Draft
zoeyrose wants to merge 25 commits into
Draft
Conversation
This was referenced Aug 14, 2026
zoeyrose
added a commit
that referenced
this pull request
Aug 14, 2026
## Summary - centralize durable top-level and nested quest lifecycle milestones in the shared `QuestManager` - use stable qualified quest and nested-part identities with exact before/after status - journal repeat reset and objective removal while preserving kept objective items without false removal records - suppress duplicate start/completion/failure hooks and retain uncertain intents for reconciliation ## Relationship Supports atrinik/classic#161. The Classic PR is the sole issue-closing path. Depends on the trusted gameplay-journal Python API delivered by atrinik/classic#159 and consumed by the companion Classic branch `feat/161-milestone-journal`. The scripted telemetry inventory in #222 does not overlap these files and remains independently mergeable. ## Validation - `python3 tools/validate.py` — passed: 167 tests plus full catalog, schema, authored syntax, runtime collection, licensing, and provenance validation - composed Classic server suite — passed before the independent current-base scoped-source regression: 51/51 CMake tests, including 441 Python plugin tests - final owner-native Classic suite — passed at companion Classic head: 51/51, including the Python plugin suite - `git diff --check` — passed ## Review Two complete base-to-head review rounds found and fixed intent ordering, repeat-reset coverage, and dead local-state issues. The post-fix review has zero known actionable findings. Tracked independent workspace/runtime limitations: atrinik/atrinik#418, atrinik/atrinik#420, atrinik/atrinik#424, atrinik/atrinik#425, and atrinik/classic#318.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
QuestManagerlifecycle producers from feat(quests): journal lifecycle milestones #223 and the authoritative reason taxonomy from feat(server): audit meaningful quest, progression, and survival milestones classic#161This draft will add the remaining executable integrations after the server-owned recovery contracts stabilize.
Tracks #160. The closing reference will be restored only after the executable draft gates below are complete.
Dependencies and branch disposition
mainby feat(quests): journal lifecycle milestones #223.mainis the sole authored source. No1.xbranch, artifact, release, or retained evidence is changed. The final Classic target will be derived from this exactmainrevision through the existing target publisher.Coordinates
main@02f30929ca1e9514127986133c0658a513654eeffeat/160-scripted-audit-eventsa94358f4534041db51e8c2c0b29d08abdbc22431/workspaces/atrinik/workspace/worktrees/content/issue-160-scripted-audita891847d5and2dba16002mergemain;afb95d1cealigns the quest inventory;af8c3b2dcaligns the Jail inventory after status publishing89efbb2a2,aa691bcbd,0b993dfbb,a571e83b3,f6e10c22e,df1aa8479,0e43b814e,7f7e8eab688b7442b5,42c73945a,2d7cf68b3,a0e14034d,f62650086,cba4601a2,23ebacd93,4783dd365,82f013fd3,fee21a733,efe55177f,bcf0387f1,a94358f45Validation
python3 -m unittest tools.tests.test_scripted_gameplay_audit -v— 59 passedpython3 tools/validate.py— 226 tests plus release-line parity, 1,355-archetype/3,651-map lossless audit, lighting, schema, catalog, contracts, syntax, isolated generic/Classic runtime collection, licensing, and provenance gates passedpython3 -m compileall -q tools maps/python/QuestManager.py maps/python/tests/QuestManager.py— passedgit diff main..HEAD --check— passedReview fixes
maps/pythonto every authoredmaps/**/*.pyscript outside fixturesGuild.log_addpersistence sink, qualified/module aliases, factory-derived guild receivers, and reserved-name shadow/rebinding ruleseval/exec/interactive-console boundaries, module-qualified prints, built-in/operator reflection, namespace lookup, and ambiguous telemetry-receiver rebindingDraft gates
The clean content aggregate validation and all latest-head hosted checks pass. Exact Classic server/runtime verification remains pending the two server recovery contracts above; the current isolated wrapper retry also encountered the unrelated incomplete shared source-generation bug tracked by atrinik/atrinik#427. Replacement runtime adapters remain unavailable under atrinik/atrinik#266, atrinik/atrinik#269, and atrinik/atrinik#270; Classic is the declared target of this shared authored source.