Lesson 239: Steam Playtest Feedback Tag Taxonomy Receipt on BUILD_RECEIPT (2026)

Direct answer: Before hotfix week merges Discord screenshots and Steam survey exports, file playtest_feedback_tag_receipt_v1.json proving a single canonical tag list, alias map (Discord emoji ↔ survey dropdown), and tag → owner → BUILD_RECEIPT row crosswalk—then promote BUILD_RECEIPT playtest_feedback_tag_ok. Distinct from Lesson 221 facilitator amendment (version pin / scope) and 18 playtest feedback tools (tool list, not taxonomy governance).

Lesson hero for Steam playtest feedback tag taxonomy receipt

Why this matters now (June 2027 hotfix week)

June 2027 facilitators post #combat-bug in Discord while Steam surveys capture Combat / Balance and ops tracks combat_balance in BUILD_RECEIPT—three strings, one crash. Hotfix triage burns Tuesday arguing labels instead of shipping Lesson 238 save isolation fixes. Lesson 221 updates version pins when depots change; this lesson updates feedback vocabulary when playtest scale starts.

The GameMaker feedback tag preflight is the ninety-second editor checklist (Included Files + alias map)—239 is the BUILD_RECEIPT milestone.

Beginner path (taxonomy in one sitting)

Step Action Success check
1 Export Discord #playtest pins + survey fields Raw lists captured
2 Draft ≤12 canonical tags No duplicate intent
3 Write tag_alias_map_v1.json Every alias resolves
4 Map each tag → owner + BUILD_RECEIPT row No orphan tags
5 Facilitator posts pinned taxonomy message Dated screenshot
6 File receipt + BUILD_RECEIPT taxonomy_ok: true

Time: ~62 minutes first wave; ~15 minutes when alias file is committed.

Developer path (gates F1–F6)

Gate Check Fail when
F1 build_label on taxonomy doc Hand-wavy “June playtest”
F2 ≤12 canonical tags Tag sprawl (>15)
F3 tag_alias_map covers Discord + survey Unmapped alias
F4 Each tag → owner + build_receipt_row Orphan audio tag
F5 Facilitator ack + pin message ID Slack-only verbal agreement
F6 Receipt + BUILD_RECEIPT column Promote before F3 GREEN

Canonical tag table (example — customize)

Canonical tag Discord aliases Steam survey label BUILD_RECEIPT row
save_isolation #saves, save bleed Saves / Progress playtest_save_isolation
audio_init #no-sound, wwise Audio / Music wwise_dsp_init_receipt
npc_inference #tavern-crash, OOM dialogue Performance sentis_npc_batch_receipt
html5_shell #black-screen, wasm Cannot launch corp_coep_fest
analytics_pii #ga4, telemetry Privacy concern construct_playtest_analytics
wasm_heap_cap #oom, tab crash 20min Performance wasm_heap_cap_playtest
facilitator_scope #wrong-build Wrong version facilitator_amendment_pass

Pair GameMaker taxonomy preflight when shipping Included Files alias map on GM HTML5 builds.

tag_alias_map_v1.json

{
  "schema": "tag_alias_map_v1",
  "build_label": "summer-playtest-2027-rc1",
  "canonical_tags": [
    "save_isolation",
    "audio_init",
    "npc_inference",
    "html5_shell",
    "analytics_pii",
    "facilitator_scope"
  ],
  "aliases": {
    "#saves": "save_isolation",
    "save bleed": "save_isolation",
    "#no-sound": "audio_init",
    "#tavern-crash": "npc_inference",
    "#black-screen": "html5_shell",
    "#ga4": "analytics_pii",
    "#wrong-build": "facilitator_scope"
  }
}

Pin under release-evidence/playtest/TAG_ALIAS_MAP.json.

playtest_feedback_tag_receipt_v1.json

{
  "schema": "playtest_feedback_tag_receipt_v1",
  "build_label": "summer-playtest-2027-rc1",
  "taxonomy_version": "2027-06-tags-v1",
  "canonical_tag_count": 6,
  "alias_map_path": "release-evidence/playtest/TAG_ALIAS_MAP.json",
  "facilitator_pin_message_id": "discord:1234567890123456789",
  "owner_map": {
    "save_isolation": { "owner": "gameplay@studio", "build_receipt_row": "playtest_save_isolation" },
    "audio_init": { "owner": "audio@studio", "build_receipt_row": "wwise_dsp_init_receipt" },
    "npc_inference": { "owner": "ai@studio", "build_receipt_row": "sentis_npc_batch_receipt" },
    "html5_shell": { "owner": "web@studio", "build_receipt_row": "corp_coep_fest" },
    "analytics_pii": { "owner": "privacy@studio", "build_receipt_row": "construct_playtest_analytics" },
    "facilitator_scope": { "owner": "ops@studio", "build_receipt_row": "facilitator_amendment_pass" }
  },
  "gates": {
    "F1_build_label": "pass",
    "F2_canonical_cap": "pass",
    "F3_alias_map": "pass",
    "F4_owner_crosswalk": "pass",
    "F5_facilitator_pin": "pass",
    "F6_build_receipt": "pass"
  },
  "taxonomy_ok": true,
  "promotion_allowed": true,
  "cousin_receipts": {
    "facilitator_amendment": "release-evidence/ops/FACILITATOR_AMENDMENT_RECEIPT.json"
  }
}

Pin under release-evidence/playtest/PLAYTEST_FEEDBACK_TAG_RECEIPT.json.

BUILD_RECEIPT row (F6)

Column Pass when
playtest_feedback_tag_ok taxonomy_ok: true
facilitator_amendment_pass Lesson 221 GREEN when scope changed
playtest_save_isolation Lesson 238 independent

Relationship to guide vs Lesson 221

Artifact Role
18 playtest feedback tools Intake tooling
Lesson 221 Version pin / scope amendment
GameMaker tag preflight Editor checklist (queued)
This lesson BUILD_RECEIPT playtest_feedback_tag_ok

When version_pin_after changes mid-week, run 221 first—then bump taxonomy_version if facilitator channels add new aliases.

Key takeaways

  1. One canonical tag list—Discord, survey, and BUILD_RECEIPT use the same vocabulary.
  2. tag_alias_map absorbs emoji shorthand—do not rename BUILD_RECEIPT rows per message.
  3. Pair 221 (scope) with 239 (labels)—amendment without taxonomy still confuses triage.
  4. Lesson 240 — map npc_inference tag to Sentis row.
  5. Q3 capstone 244 requires playtest_feedback_tag_ok GREEN.
  6. Thursday review — one Tags / triage line.
  7. ≤12 tags—sprawl defeats hotfix week.
  8. Community playtest resources — paste taxonomy block into facilitator README.

Common mistakes

  • New Discord emoji every day without updating tag_alias_map.
  • Steam survey free-text only—no dropdown aligned to canonical tags.
  • Tag audio maps to three different BUILD_RECEIPT rows—pick one owner.
  • Paying facilitators before 221 + 239 GREEN on new pin.
  • Conflating with Lesson 220 VOD batch—Whisper tags ≠ player feedback tags.

Troubleshooting

Symptom Lane
Duplicate tickets same bug F3 alias map
Owner disputes scope Lesson 221 amendment
Tag points to missing row F4 crosswalk audit
Survey export mismatch Re-export after F2 cap
AI dialogue reports flood npc_inference Split content_policy tag (Lesson 216)

Mini exercise (60 minutes)

  1. Collect ten real Discord messages—list unique strings.
  2. Collapse to six canonical tags—write alias map.
  3. Assign owners + BUILD_RECEIPT rows.
  4. Facilitator pins taxonomy—capture message ID (F5).
  5. File receipt; run Thursday row review.

Continuity — Q3 2027 summer playtest wave (236–244)

Lesson Receipt focus
236–238 Art, audio, saves
239 (this) Feedback tag taxonomy
240 Sentis NPC batch
241–244 Analytics → capstone

Previous: Lesson 238 — Godot playtest save isolation.
Next: Lesson 240 — Unity Sentis NPC inference batch.

FAQ

Same as 18 playtest tools blog?
Blog lists tools; 239 owns taxonomy + BUILD_RECEIPT wiring.

Same as Lesson 221?
221 = version/scope amendment; 239 = feedback label governance.

Need taxonomy before Lesson 240?
Recommended—npc_inference tag routes OOM reports to Sentis row.

GameMaker guide required?
Guide is preflight cousin; 239 is course milestone.


Hotfix week fails when every channel uses different words for the same bug—canonical tags, alias map, owner crosswalk, then promote playtest_feedback_tag_ok on BUILD_RECEIPT.