Skip to content

docs: clarify that .squad/casting/* files are identity, not two-layer state#1230

Open
tamirdresher wants to merge 1 commit into
bradygaster:mainfrom
tamirdresher:fix/casting-classification-hook
Open

docs: clarify that .squad/casting/* files are identity, not two-layer state#1230
tamirdresher wants to merge 1 commit into
bradygaster:mainfrom
tamirdresher:fix/casting-classification-hook

Conversation

@tamirdresher
Copy link
Copy Markdown
Collaborator

Problem

.squad/casting/* files (policy.json, registry.json, history.json) have been misclassified as two-layer runtime mutable state that should live on the squad-state orphan branch. This causes confusion and blocks the use of these critical team identity files.

Root Cause

The classification was unclear in the codebase. While .squad/casting/* files are correctly created and not ignored, there was no explicit documentation clarifying that they are AUTHORITATIVE IDENTITY files per squad.agent.md (the source-of-truth governance document).

Solution

Added clarifying documentation to three files:

  1. .gitignore - Added explicit NOTE that casting/* MUST be committed to main, not ignored
  2. .gitattributes - Added NOTE explaining that casting/* files are identity (not append-only mutable state) and don't need union merge
  3. packages/squad-sdk/src/config/init.ts - Enhanced comments explaining the correct classification

Authority

Per .github/agents/squad.agent.md (the authoritative classification table):

  • .squad/casting/policy.json: Authoritative casting config
  • .squad/casting/registry.json: Authoritative name registry
  • .squad/casting/history.json: Derived / append-only

These files define the agent universe, persistent name-to-ID mappings, and usage history - fundamental team identity committed to main alongside team.md and routing.md.

Files Changed

  • .gitignore
  • .gitattributes
  • packages/squad-sdk/src/config/init.ts

… state

.squad/casting/* files (policy.json, registry.json, history.json) are
AUTHORITATIVE IDENTITY files that should be committed to 'main' alongside
team.md and routing.md. They define the agent universe, name registry, and
usage history - fundamental team identity, not runtime mutable state.

This change adds clarifying documentation to:
- .gitignore: explicit NOTE that casting/* MUST NOT be ignored
- .gitattributes: explicit NOTE that casting/* is identity, not append-only
- init.ts: enhanced comments explaining casting/* classification

This resolves confusion where casting files were misclassified as two-layer
runtime state. Per squad.agent.md (the source of truth), casting files are
'Authoritative' and belong on main.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 8, 2026

🛫 PR Readiness Check

ℹ️ This comment updates on each push. Last checked: commit 13df483

PR Scope: 📦🔧 Mixed (product + infrastructure)

⚠️ 5 item(s) to address before review

Status Check Details
Single commit 1 commit — clean history
Not in draft Ready for review
Branch up to date main is 427 commit(s) ahead — rebase recommended
Copilot review No Copilot review yet — it may still be processing
Changeset present Missing .changeset/*.md or CHANGELOG.md edit — run npx changeset add (or add skip-changelog label)
Scope clean No .squad/ or docs/proposals/ files
No merge conflicts Merge conflicts detected — resolve before review
Copilot threads resolved No Copilot review threads
CI passing No CI checks have run yet

Files Changed (3 files, +19 −2)

File +/−
.gitattributes +6 −0
.gitignore +5 −2
packages/squad-sdk/src/config/init.ts +8 −0

Total: +19 −2


This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements 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.

1 participant