Skip to content

Add spoiler-awareness to casting/naming rules#1196

Open
obit91 wants to merge 4 commits into
bradygaster:devfrom
obit91:obit91/spoiler-aware-casting
Open

Add spoiler-awareness to casting/naming rules#1196
obit91 wants to merge 4 commits into
bradygaster:devfrom
obit91:obit91/spoiler-aware-casting

Conversation

@obit91
Copy link
Copy Markdown
Contributor

@obit91 obit91 commented May 30, 2026

Problem

Squad's casting system allocates agent names from fictional universes, but the naming rules never screened those names for plot spoilers. The existing "easter egg" rule only hides the casting rationale — it does nothing to stop a chosen name from leaking a future plot point to whoever is setting up the squad (who may not have finished the source material). Names appear in plain text everywhere: team.md, spawn prompts, logs, and generated files.

Change

  • squad.agent.md -> Name Allocation: new always-loaded rule — do not allocate names, titles, or epithets that reveal hidden identity, fate, twists, or later-acquired roles/states; prefer the name as introduced early; otherwise pick a different spoiler-free character from the same universe. Intro paragraph now says names are "spoiler-free easter eggs."
  • casting-reference.md -> new "Spoiler Awareness" section: explains why (names are plain-text easter eggs; the user may be mid-series) and how to avoid it, plus a scrubbed motivating example.
  • Propagated to all mirror targets via scripts/sync-templates.mjs --sync.

Motivating story (spoiler-scrubbed)

A user set up a squad requesting the Malazan Book of the Fallen universe (Steven Erikson) while only four books into the series. The casting allocated two spoiler-bearing names:

  • one bundled a title/epithet the character only earns after a major mid-series development, encoding a role they do not yet hold at the reader's current point;
  • the other referenced a state/transformation that has not yet occurred at the reader's position, revealing what later becomes of that character.

Both leaked future plot. Character names are deliberately omitted here so this PR does not reproduce the spoiler.

Notes

  • Template/governance change only — no packages/*/src/ files, so no changeset is required (changelog-gate does not trigger).
  • Template changes are prompt-interpreted at runtime (see CONTRIBUTING "Testing Template Changes"). Mechanical validation done: template-sync test 194/194, npm run build green, npm run lint green.

@obit91
Copy link
Copy Markdown
Contributor Author

obit91 commented May 30, 2026

Note for reviewers — line-ending false diff (identified, fixed, resolved)

Heads up on the history of casting-reference.md in this PR, in case you looked at an earlier revision.

What happened: the four casting-reference.md files are committed upstream with CRLF line endings. When the "Spoiler Awareness" section was added, local Git settings (core.autocrlf=true) normalized the files to LF. That rewrote every line ending, so the diff showed the whole file as changed (122 insertions / 104 deletions) and buried the real change — the file was effectively unreviewable, every line appearing as a delta.

Fix: the line endings were restored to CRLF (staged with core.autocrlf=false so the original endings are preserved in the blob). The unchanged lines are now byte-identical to the base, so the diff collapses to the genuine change only: 18 insertions, 0 deletions for each casting-reference.md. The squad.agent.md files were unaffected (LF in base, LF here) and show their real 10/9 edit.

So to be explicit: the formatting normalization was identified, the cosmetic change was reverted back to the original CRLF endings after review, and what remains is solely the intended content addition. No functional content was changed by the line-ending fix — template-sync parity test still passes 194/194.

@obit91
Copy link
Copy Markdown
Contributor Author

obit91 commented May 30, 2026

Follow-up tracked in #1197 — a dedicated, later PR will add a CONTRIBUTING.md guideline against incidental reformatting/refactoring (and line-ending rewrites) when editing existing files, so the kind of false whole-file diff seen on this PR's casting-reference.md is prevented going forward. Keeping that doc change out of this PR to preserve its scope.

@obit91 obit91 marked this pull request as ready for review May 30, 2026 18:17
Copilot AI review requested due to automatic review settings May 30, 2026 18:17
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds spoiler-awareness guidance to squad agent naming/casting documentation to prevent character-name choices from leaking plot details.

Changes:

  • Update “Casting & Persistent Naming” guidance to require spoiler-free easter-egg names.
  • Add a new “Spoiler Awareness” section to casting reference documentation with practical rules and a motivating example.
  • Propagate the same documentation updates across root templates, SDK/CLI packages, and squad template copies.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
templates/squad.agent.md.template Adds spoiler-free constraint to agent naming rules and casting checklist.
templates/casting-reference.md Introduces “Spoiler Awareness” guidance for name selection.
packages/squad-sdk/templates/squad.agent.md.template Mirrors spoiler-free naming and checklist updates for SDK templates.
packages/squad-sdk/templates/casting-reference.md Mirrors “Spoiler Awareness” section for SDK docs.
packages/squad-cli/templates/squad.agent.md.template Mirrors spoiler-free naming and checklist updates for CLI templates.
packages/squad-cli/templates/casting-reference.md Mirrors “Spoiler Awareness” section for CLI docs.
.squad-templates/squad.agent.md Mirrors spoiler-free naming and checklist updates for squad templates.
.squad-templates/casting-reference.md Mirrors “Spoiler Awareness” section for squad templates.
.github/agents/squad.agent.md Mirrors spoiler-free naming and checklist updates for GitHub agent docs.

Comment thread templates/casting-reference.md Outdated
Comment thread templates/casting-reference.md Outdated
Comment thread templates/squad.agent.md.template
Comment thread templates/squad.agent.md.template
obit91 and others added 4 commits June 6, 2026 19:16
Squad's casting system allocated character names from fictional universes
but never screened them for plot spoilers. The existing easter-egg rule
only hides the casting *rationale*, not spoiler-bearing names. A name that
encodes a character's later title, role, transformation, or fate can spoil
a user who is mid-way through the source material, since names appear in
plain text across team.md, prompts, and logs.

Adds an always-loaded Name Allocation rule in squad.agent.md and a new
"Spoiler Awareness" section in casting-reference.md (with a scrubbed
motivating example), propagated to all mirrors via sync-templates.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…false diff

The Spoiler Awareness edit was made on files whose committed blobs use CRLF, but local normalization rewrote them to LF. That made all 104 existing lines appear changed (122 ins / 104 del) and hid the real 18-line addition. Restoring CRLF collapses the diff to the genuine change only (18 insertions, 0 deletions).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Address review feedback on the Spoiler Awareness section:
- Use standard spelling 'midway' instead of 'mid-way'.
- Replace the ambiguous 'Never reorganize the casting around the spoiler'
  with explicit guidance: keep existing name mappings stable and only
  let the next/new allocation pick a different spoiler-safe character.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@obit91 obit91 force-pushed the obit91/spoiler-aware-casting branch from 9d8daea to 15b7d2d Compare June 6, 2026 16:17
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 6, 2026

🛫 PR Readiness Check

ℹ️ This comment updates on each push. Last checked: commit 15b7d2d

PR Scope: 🔧 Infrastructure

⚠️ 3 item(s) to address before review

Status Check Details
Single commit 4 commits — consider squashing before review
Not in draft Ready for review
Branch up to date Up to date with dev
Copilot review No Copilot review yet — it may still be processing
Changeset present Changeset file found
Scope clean No .squad/ or docs/proposals/ files
No merge conflicts No merge conflicts
Copilot threads resolved 2 active Copilot thread(s) resolved (2 outdated skipped)
CI passing 7 check(s) still running

Files Changed (10 files, +151 −45)

File +/−
.changeset/spoiler-aware-casting.md +29 −0
.github/agents/squad.agent.md +10 −9
.squad-templates/casting-reference.md +18 −0
.squad-templates/squad.agent.md +10 −9
packages/squad-cli/templates/casting-reference.md +18 −0
packages/squad-cli/templates/squad.agent.md.template +10 −9
packages/squad-sdk/templates/casting-reference.md +18 −0
packages/squad-sdk/templates/squad.agent.md.template +10 −9
templates/casting-reference.md +18 −0
templates/squad.agent.md.template +10 −9

Total: +151 −45


This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements for details.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 6, 2026

🟠 Impact Analysis — PR #1196

Risk tier: 🟠 HIGH

📊 Summary

Metric Count
Files changed 10
Files added 1
Files modified 9
Files deleted 0
Modules touched 5

🎯 Risk Factors

  • 10 files changed (6-20 → MEDIUM)
  • 5 modules touched (5-8 → HIGH)

📦 Modules Affected

ci-workflows (1 file)
  • .github/agents/squad.agent.md
root (3 files)
  • .changeset/spoiler-aware-casting.md
  • templates/casting-reference.md
  • templates/squad.agent.md.template
squad-cli (2 files)
  • packages/squad-cli/templates/casting-reference.md
  • packages/squad-cli/templates/squad.agent.md.template
squad-sdk (2 files)
  • packages/squad-sdk/templates/casting-reference.md
  • packages/squad-sdk/templates/squad.agent.md.template
templates (2 files)
  • .squad-templates/casting-reference.md
  • .squad-templates/squad.agent.md

This report is generated automatically for every PR. See #733 for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants