بنقرة واحدة
opensquad-dev
// opensquad development checklist — verifies templates sync, package integrity, and distribution correctness.
// opensquad development checklist — verifies templates sync, package integrity, and distribution correctness.
Opensquad — Multi-agent orchestration framework. Create and run AI squads for your business.
Opensquad — Multi-agent orchestration framework. Create and run AI squads for your business.
Opensquad — Multi-agent orchestration framework. Create and run AI squads for your business.
Use when creating, modifying, or designing 2D virtual office scenes for the opensquad dashboard — room layouts, furniture placement, avatar integration, environment design, or any visual improvement. Also use when the dashboard looks empty, flat, lifeless, or lacks personality.
Web scraping and automation platform. Extract data from any website, run pre-built scrapers (Actors), and automate web workflows using thousands of ready-made tools from the Apify Store.
Social media publishing and scheduling platform. Publish and schedule posts across Instagram, LinkedIn, Twitter/X, TikTok, YouTube, and more. Upload media and monitor post status.
| name | opensquad-dev |
| description | opensquad development checklist — verifies templates sync, package integrity, and distribution correctness. |
You are running the opensquad-dev verification skill inside the opensquad repository. Your job is to detect and report distribution issues before they reach users.
Understand this before checking anything:
templates/ → Copied by src/init.js:copyCommonTemplates() during npx opensquad init
and by src/update.js during npx opensquad update. Everything in templates/ except
ide-templates/ is copied recursively to the user's project. This is the PRIMARY
distribution mechanism — if a file isn't in templates, users don't get it on init.
templates/ide-templates/ → IDE-specific files. Copied selectively based on user's
IDE selection during init. Each subfolder (claude-code/, opencode/, codex/,
antigravity/) maps to one IDE choice.
agents/ (project root) → Predefined agent catalog, distributed via npm
(package.json files[]). Auto-installed during npx opensquad init and new agents
added during npx opensquad update. Protected from overwrites in
src/update.js:PROTECTED_PATHS. Users can also install manually via
npx opensquad agents install.
skills/ (project root) → Bundled skills catalog, distributed via npm
(package.json files[]). Non-MCP skills are auto-installed during init.
MCP skills (type: mcp/hybrid or with env vars) are offered interactively
during init. Users can also install manually via npx opensquad skills install.
_opensquad/core/* → Framework core files. MUST have a mirror copy in
templates/_opensquad/core/*. Any change to a core file that isn't synced to templates
means npx opensquad init delivers STALE content to new users.
skills/* → Bundled skills catalog. Two distribution sub-types:
opensquad-skill-creator):
also have a mirror in templates/skills/* so the full directory structure is copied during init.
Check B verifies this sync.SKILL.md, no subdirs, e.g. opensquad-agent-creator):
distributed via installSkill() — no template copy needed. Check B does NOT apply to these.package.json files[] → Controls what enters the npm package.
Currently: bin/, src/, agents/, skills/, templates/.
src/update.js:PROTECTED_PATHS → Directories NEVER overwritten during update:
_opensquad/_memory, _opensquad/_investigations, agents, squads.
opensquad supports multiple IDEs. When a user runs npx opensquad init, they choose which IDE(s) to install for. Files are copied from two places:
templates/, excluding ide-templates/) — copied to every project regardless of IDEtemplates/ide-templates/{ide}/) — copied only for the selected IDE(s)| Type | Definition | Location |
|---|---|---|
| SHARED | Applies to all IDEs equally | _opensquad/core/, templates/ (excluding ide-templates/) |
| IDE-SPECIFIC | Applies to one IDE only | templates/ide-templates/{ide}/ |
| IDE | Template Folder | Example Files |
|---|---|---|
| Claude Code | templates/ide-templates/claude-code/ | SKILL.md, CLAUDE.md, .mcp.json |
| Antigravity | templates/ide-templates/antigravity/ | .agent/rules/opensquad.md, .agent/workflows/opensquad.md |
| OpenCode | templates/ide-templates/opencode/ | AGENTS.md, .opencode/commands/opensquad.md |
| Codex | templates/ide-templates/codex/ | AGENTS.md |
When a change is requested for a specific IDE, modify ONLY files inside
templates/ide-templates/{ide}/. NEVER add conditional logic ("if antigravity, do X") to shared files.
Violation example:
_opensquad/core/runner.pipeline.md adding if antigravity: run sequentiallytemplates/ide-templates/antigravity/.agent/rules/opensquad.md with the sequential execution instructionsLegitimate shared file edit:
_opensquad/core/architect.agent.yaml because the change benefits ALL IDEs equally.Run these commands to identify changed files:
# Uncommitted changes (staged + unstaged)
git diff --name-only HEAD
# If no uncommitted changes, check recent commits
git log --oneline -5
git diff --name-only HEAD~5..HEAD
Collect all changed file paths into a list.
For each changed file, apply the matching verification rules below. Only run checks that are relevant to the actual changes detected.
_opensquad/core/** changed)For EACH changed file matching _opensquad/core/**:
Compute the expected template path: templates/{same relative path}
Example: _opensquad/core/runner.pipeline.md → templates/_opensquad/core/runner.pipeline.md
Run diff:
diff "_opensquad/core/{file}" "templates/_opensquad/core/{file}"
If diff shows differences:
cp _opensquad/core/{file} templates/_opensquad/core/{file}If template file doesn't exist:
_opensquad/core/{file}"mkdir -p templates/_opensquad/core/{dir} && cp _opensquad/core/{file} templates/_opensquad/core/{file}skills/** changed)Only applies to multi-file skills — skills that have subdirectories (scripts/, assets/, agents/, etc.)
alongside their SKILL.md. These require a template mirror so the full directory is copied during init.
Single-file skills (only SKILL.md, no subdirs) are distributed via installSkill() and do NOT need
a templates/skills/ counterpart. Do not flag them as missing.
For each changed multi-file skill:
skills/{skill}/SKILL.mdtemplates/skills/{skill}/SKILL.mdagents/** changed)package.json, parse the files array"agents/" is present in the array"agents/" not in package.json files[]src/init.js changed)src/init.jscopyCommonTemplates function exists and references TEMPLATES_DIRgetTemplateEntries recursively scans the templates directorysrc/update.js changed)src/update.jsPROTECTED_PATHS array_opensquad/_memory (user preferences and company context)_opensquad/_investigations (Sherlock investigation data)agents (user-installed/customized agents)squads (user-created squads)package.json changed)package.json, parse files arraybin/, src/, agents/, skills/, templates/files[]: FAILls -d */ at project rootpackage.json files[]? (if it should be distributed)PROTECTED_PATHS? (if it's user-owned content)templates/? (if it should be copied during init)src/init.js changed)src/init.js./agents.js: listAvailable (aliased as listAvailableAgents) and installAgentinstallAllAgents function exists and is called in init()installNonMcpSkills function exists and is called in init()installNonMcpSkills filters out: opensquad-skill-creator, type mcp, type hybrid, skills with envsrc/update.js changed)src/update.js./agents.js: listAvailable, listInstalled, installAgent./skills.js: listAvailable, listInstalled, installSkill, getSkillMeta_opensquad/core/** or templates/** changed, excluding templates/ide-templates/**)Scan shared files for IDE-specific conditional logic that should live in templates/ide-templates/{ide}/ instead.
Files to scan:
_opensquad/core/templates/ EXCEPT those under templates/ide-templates/What to look for: Content that says "do X for IDE Y" or "if using IDE Y, behave differently."
Contamination keywords (IDE names used as conditional subjects):
antigravity or .antigravitycursorrules or .cursor/windsurf or windsurfrulesopencode or open-codecodexExclusions: Mentions inside this opensquad-dev SKILL.md itself (documentation), and any comment explicitly labeled as a cross-reference.
Pass: No IDE-specific conditional logic found in shared files.
Fail: Report the file path, relevant line, and the correct location where the change should go instead (i.e., which templates/ide-templates/{ide}/ file).
Present a clear summary:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔧 opensquad Dev Checklist
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Files changed: {N}
Checks run: {N}
✅ Check A: Core file sync — {N}/{N} files in sync
❌ Check B: Skills sync — {file} out of sync
Fix: cp skills/{x}/SKILL.md templates/skills/{x}/SKILL.md
✅ Check F: Package manifest — all directories present
✅ Check J: IDE contamination — no IDE-specific logic in shared files
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Result: {N} issues found
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
If ALL checks pass, report clean:
✅ All {N} checks passed — distribution is consistent.
If any check fails, list the fix commands at the end so the user can approve them in batch.