Repository navigation
fix(plugin): ship an icon; restore the human-members template - #2493
Conversation
- 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>
🟠 Impact Analysis — PR #2493Risk tier: 🟠 HIGH 📊 Summary
🎯 Risk Factors
📦 Modules Affecteddocs (1 file)
root (5 files)
scripts (1 file)
squad-cli (1 file)
squad-sdk (2 files)
templates (1 file)
tests (1 file)
This report is generated automatically for every PR. See #733 for details. |
🛫 PR Readiness Check
PR Scope: 📦🔧 Mixed (product + infrastructure)
|
| 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.
There was a problem hiding this comment.
🔵 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)
# Conflicts: # CHANGELOG.md
…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>
Two small first-run gaps.
Plugin icon
claude plugin validate plugins/squadwarnedICON_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.CLAUDE_PLUGIN_STATIC_FILESin the SDK.scripts/build-claude-plugin.mjscopies it and--checkcompares it byte for byte.test/claude-plugin.test.tscounts it in the tree, checks it matches its source, and checks it's a square PNG of 512 to 2048 px under 2 MB..gitattributeshadplugins/** 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 markedbinaryafter that rule.human-members.mdThe 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:git config user.nameis 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