Skip to content

fix(plugin): ship an icon; restore the human-members template - #2493

Merged
bradygaster merged 4 commits into
devfrom
squad/template-polish
Nov 13, 2026
Merged

bradygaster merged 4 commits into
devfrom
squad/template-polish

Conversation

@bradygaster

Copy link
Copy Markdown
Collaborator

Two small first-run gaps.

Plugin icon

claude plugin validate plugins/squad warned ICON_MISSING, the only warning left. The plugin now ships .claude-plugin/icon.png: the Squad logo from the docs, scaled from 500 to 512 px, the validator's minimum. The validator now reports nothing.

  • The plugin folder is generated, so the icon is a declared static file, CLAUDE_PLUGIN_STATIC_FILES in the SDK. scripts/build-claude-plugin.mjs copies it and --check compares it byte for byte. test/claude-plugin.test.ts counts it in the tree, checks it matches its source, and checks it's a square PNG of 512 to 2048 px under 2 MB.
  • .gitattributes had plugins/** text eol=lf, which made git treat the PNG as text and offer to convert its line endings. That would corrupt it. Images are now marked binary after that rule.
  • The plugin directory may adopt the first icon it sees as the listing icon permanently, so swap the image before the first submission if you want a different one.

human-members.md

The template index lists human-members.md, but the file was missing since the #2030 recast; I found this in the #2487 scenario pass. It's restored from history into .squad-templates/ and synced to the package copies. I made two edits so it agrees with #2491:

  • "Routing to a Human" now includes the sign-off gate: a request for gated work isn't the sign-off.
  • git config user.name is described as a hint about who is at the keyboard, not a sign-off.

The sync also rewrote 17 unrelated files with line-ending-only changes. I left those out.

Tests

The template, manifest, init, upgrade and plugin suites pass: 547 tests.

🤖 Generated with Claude Code

- plugins/squad/.claude-plugin/icon.png: the Squad logo at 512 px, the one
  remaining `claude plugin validate` warning. The build script copies static
  files named by CLAUDE_PLUGIN_STATIC_FILES and checks them byte for byte;
  images are marked binary so the plugins/** LF rule never rewrites them.
- .squad-templates/human-members.md: listed in the template index but
  missing since the #2030 recast. Restored, with the sign-off gate wording
  from the coordinator digest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI dynamic review requested due to automatic review settings November 13, 2026 09:43
@bradygaster
bradygaster enabled auto-merge (squash) November 13, 2026 09:43
@github-actions

Copy link
Copy Markdown
Contributor

🟠 Impact Analysis — PR #2493

Risk tier: 🟠 HIGH

📊 Summary

Metric Count
Files changed 12
Files added 7
Files modified 5
Files deleted 0
Modules touched 7

🎯 Risk Factors

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

📦 Modules Affected

docs (1 file)
  • docs/src/assets/images/squad-plugin-icon.png
root (5 files)
  • .changeset/plugin-icon-human-members.md
  • .gitattributes
  • CHANGELOG.md
  • plugins/squad/.claude-plugin/icon.png
  • templates/human-members.md
scripts (1 file)
  • scripts/build-claude-plugin.mjs
squad-cli (1 file)
  • packages/squad-cli/templates/human-members.md
squad-sdk (2 files)
  • packages/squad-sdk/src/client/adapters/claude-plugin.ts
  • packages/squad-sdk/templates/human-members.md
templates (1 file)
  • .squad-templates/human-members.md
tests (1 file)
  • test/claude-plugin.test.ts

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

@github-actions

github-actions Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

🛫 PR Readiness Check

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

PR Scope: 📦🔧 Mixed (product + infrastructure)

⚠️ 4 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 dev is 1 commit(s) ahead — rebase recommended
❌ 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 Merge status unknown — GitHub is still computing
✅ Copilot threads resolved No Copilot review threads
❌ CI passing 1 check(s) still running

Files Changed (12 files, +387 −7)

File +/−
.changeset/plugin-icon-human-members.md +6 −0
.gitattributes +4 −0
.squad-templates/human-members.md +83 −0
CHANGELOG.md +2 −0
docs/src/assets/images/squad-plugin-icon.png +0 −0
packages/squad-cli/templates/human-members.md +83 −0
packages/squad-sdk/src/client/adapters/claude-plugin.ts +9 −0
packages/squad-sdk/templates/human-members.md +83 −0
plugins/squad/.claude-plugin/icon.png +0 −0
scripts/build-claude-plugin.mjs +15 −4
templates/human-members.md +83 −0
test/claude-plugin.test.ts +19 −3

Total: +387 −7


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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Approval should wait for maintainer confirmation of the external Claude validator and marketplace install, along with resolution of the inconsistent template installation behavior and public SDK packaging contract.

No open issues 🎉

What changed in this PR

This PR adds a validated static icon to the Claude plugin and restores the human-members template across canonical and packaged template locations.

Changes:

  • Adds static plugin asset copying, byte-for-byte checks, PNG validation, and binary Git handling.
  • Restores human sign-off guidance in synchronized template copies.
  • Adds regression coverage, changelog documentation, and release metadata.
File Description
test/​claude-plugin.test.ts Adds coverage for static plugin files, icon identity, PNG dimensions, size, and tracking.
templates/​human-members.md Restores the root human-members template with explicit human sign-off guidance.
scripts/​build-claude-plugin.mjs Copies, checks, removes, and reports declared static plugin assets.
packages/​squad-sdk/​templates/​human-members.md Adds the synchronized SDK copy of the human-members template.
packages/​squad-sdk/​src/​client/​adapters/​claude-plugin.ts Declares the repository source mapping for static plugin assets.
packages/​squad-cli/​templates/​human-members.md Adds the synchronized CLI copy of the human-members template.
CHANGELOG.md Documents the plugin icon and restored human-members template changes.
.squad-templates/​human-members.md Restores the canonical human-members template with updated sign-off instructions.
.gitattributes Marks image files as binary to prevent line-ending conversion.
.changeset/​plugin-icon-human-members.md Records SDK and CLI patch-release metadata for the changes.

Review effort: Lite (dynamic)

bradygaster and others added 2 commits November 13, 2026 08:05
…e icon

`binary` turns off text handling but keeps eol=lf from the plugins/** rule,
which the shebang EOL lint reads, so it flagged the PNG as a CRLF blob.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bradygaster
bradygaster merged commit a4d8331 into dev Nov 13, 2026
34 checks passed
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