create-a2a — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited create-a2a (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
OpenCode mirror: sourced from ~/.config/opencode/skills/create-a2a and mirrored for OpenCode CLI usage.JEDER A2A Agent ruft LLMs AUSSCHLIESSLICH über die `opencode` CLI auf — NIEMALS über direkte API-Calls!
import subprocess, json
def call_llm(prompt: str, timeout: int = 120) -> str:
result = subprocess.run(
["opencode", "run", prompt, "--format", "json"],
capture_output=True, text=True, timeout=timeout,
)
parts = []
for line in result.stdout.splitlines():
try:
ev = json.loads(line)
if ev.get("type") == "text":
parts.append(ev.get("part", {}).get("text", ""))
except json.JSONDecodeError:
pass
return "".join(parts).strip()REGELN:
opencode run --format json nutzt das Antigravity Plugin — identisch auf Mac, OCI VM und HF VMshttp://92.5.60.87:4100/v1 direkt per HTTP anrufen = VERBOTEN (500-Fehler)openai/gpt-5.4 für ALLE allgemeinen A2A Agentennvidia/minimaxai/minimax-m2.7 für ALLE Agentenmultimodal-looker behält google/antigravity-gemini-3.1-prosin-worker-prolific verwendet google/antigravity-gemini-3-flash (schneller, vision-fähig, höhere Rate Limits)opencode run "..." --model openai/gpt-5.4 --fallback nvidia/minimaxai/minimax-m2.7Use this skill when the task is any of:
This skill is the only approved creation path for new SIN A2A agents. We build fleets that scale infinitely, not fragile single-instance toys.
/Users/jeremy/dev/OpenSIN-backend/a2a/template-repo/A2A-SIN-Agent-Template/Users/jeremy/dev/OpenSIN-backend/scripts/create-sin-a2a-agent.mjs/Users/jeremy/dev/OpenSIN-backend/scripts/scaffold-a2a-agent-page.mjs/Users/jeremy/dev/OpenSIN-backend/scripts/validate-sin-a2a-fleet.mjs/Users/jeremy/dev/OpenSIN-backend/dashboard-enterprise/components/a2a/controlPlaneRegistry.ts/Users/jeremy/dev/OpenSIN-backend/dashboard-enterprise/components/a2a/registry.ts/Users/jeremy/dev/OpenSIN-backend/scripts/alpha/generate-control-plane-registry-projection.mjs/Users/jeremy/dev/OpenSIN-backend/Docs/operations/a2a-control-plane-projection.json/Users/jeremy/dev/OpenSIN-backend/scripts/sync-a2a-google-doc.mjs/Users/jeremy/dev/OpenSIN-backend/a2a/team-infratructur/A2A-SIN-Server/hf-docs/https://docs.google.com/document/d/1RtoHn4I0GntuEEOHHkqoh_dMuGzgMwQz7_8oxAOpQbw/edit?tab=t.g960r14v6jethttps://docs.google.com/document/d/1RtoHn4I0GntuEEOHHkqoh_dMuGzgMwQz7_8oxAOpQbw/edit?tab=t.koo06y5ox1e5/Users/jeremy/.config/opencode/INBOUND_WORK_ARCHITECTURE.md/Users/jeremy/.config/opencode/templates/repo-governance.schema.json/Users/jeremy/.config/opencode/templates/platform-registry.schema.json/Users/jeremy/.config/opencode/templates/pr-watcher.schema.json/Users/jeremy/.config/opencode/templates/work-item.schema.jsonRead /Users/jeremy/.config/opencode/skills/create-a2a/references/checklist.md before creating or normalizing an agent.
Before creating, upgrading, or declaring any HF-hosted agent ready, read these repo-local artifacts first:
/Users/jeremy/dev/OpenSIN-backend/a2a/team-infratructur/A2A-SIN-Server/hf-docs/hf-coder-fleet-ssot.json/Users/jeremy/dev/OpenSIN-backend/a2a/team-infratructur/A2A-SIN-Server/hf-docs/hf-coder-fleet-playbook.jsonThe previous incomplete agent rollouts proved that repo scaffolding alone is not enough. A new agent is incomplete until the dashboard/detail-page surfaces are fail-closed.
Mandatory rules:
dashboard-enterprise/app/agents/<slug>/page.tsx via scripts/scaffold-a2a-agent-page.mjs/agents/<slug> URLs are forbidden unless the static page file existsscripts/validate-sin-a2a-fleet.mjs now fails if a published canonical /agents/<slug> route has no page fileMandatory behavior:
RUNNING as insufficient by itself; claim-safe requires explicit Room-13 worker proofBUILD_ERRORa2a-verify-hf-vm-readiness.mjs as a live-surface verifier: --health-url is required and /health, /.well-known/agent-card.json, and /a2a/v1 must answer before the agent is considered readyAZA-SIN-Coder-•-GitHub-Issues owns triage/lifecycle comments and AZA-SIN-Coder-e-Global-HermesBote owns dispatch-state commentshf-docs/ bundle in the same workstreamROOM13_COORDINATOR_URL and ROOM13_BEARER_TOKEN end-to-end instead of shipping an unauthenticated worker clientAll newly created or migrated A2A agents MUST utilize the LangGraph.js framework for stateful, multi-agent orchestration.
@langchain/langgraph StateGraph.ToolNode), and API interaction.bindTools() to the core LLM before passing into the graph./a2a/v1/invoke, /a2a/v1/stream) must handle .streamEvents() from the compiled graph.When creating an agent, ensure package.json includes:
@langchain/langgraph@langchain/core@langchain/openaiEVERY new A2A agent MUST be scaffolded with optional sinInChrome browser automation capability.
sinInChrome is the OpenSIN browser automation system providing deep Chrome/Chromium integration for AI agents:
Every new agent MUST include:
sin-in-chrome to mcp-config.json if browser automation is neededsrc/clients/sin-in-chrome.ts for API-based browser accessagent.jsondocs/02_spec/PRODUCT_SPEC.md{
"capabilities": {
"browserAutomation": {
"enabled": true,
"mode": "api" | "mcp" | "direct",
"browsers": ["chrome", "brave", "arc"],
"maxTabs": 200,
"rateLimit": {
"free": 100,
"premium": 10000
}
}
}
}EVERY new A2A agent targeting macOS MUST be scaffolded with optional sin-computer-use capability.
sin-computer-use is the OpenSIN macOS GUI automation system providing full desktop control:
Every new macOS agent MUST include:
sin-computer-use to mcp-config.json if GUI automation is needed@opensin/sin-computer-use-swift and @opensin/sin-computer-use-input dependenciesdrainRunLoop wrapper for native calls under libuv{
"capabilities": {
"computerUse": {
"enabled": true,
"platform": "darwin",
"permissions": ["accessibility", "screen-recording"],
"coordinateMode": "pixels" | "normalized",
"features": {
"mouseAnimation": true,
"clipboardGuard": true,
"escAbort": true,
"pixelValidation": false
}
}
}
}EVERY new A2A agent MUST implement the 7-layer security hardening standard.
Every new agent repo MUST include:
.githooks/pre-commit with secret detection and external code scanning.githooks/pre-push with commit message leak detectiongovernance/source-code-classification.md defining PUBLIC/PRIVATE/SECRET/LEAKABLE levels.github/workflows/leak-prevention.yml with secret scanning, external code detection, and sensitive pattern scanninggovernance/incident-response-playbook.md with step-by-step leak response procedures.secrets.baseline for detect-secrets integrationBefore calling an agent complete, verify:
grep -r "claude\|anthropic\|@ant/" --include="*.ts" --include="*.py" . returns 0 resultsdetect-secrets scan --baseline .secrets.baseline passes1. No Blind Agents (The Dual-Supabase Protocol): Every A2A agent MUST natively implement two distinct database connections to the 200GB OCI Supabase instance.
Fleet Correction Event MUST be logged here. When an agent solves a bug, it pushes the fix to the global vector store so no other agent repeats the mistake.2. Dedicated n8n Connector Sync: Agents MUST NOT rely on ad-hoc web searches for their primary connectors.
n8n-workflows/ directory containing an n8n project.n8n-workflows/docs-sync.json MUST be scaffolded by this skill.1. No Blind Agents (The Sentinel Protocol): Every A2A agent MUST natively implement comprehensive telemetry to the 200GB OCI Supabase instance.
fleet_knowledge_vectors for past fleet fixes. When it solves a new bug, it MUST write a Fleet Correction Event to Supabase.2. Dedicated n8n Connector Sync: Agents MUST NOT rely on ad-hoc web searches for their primary connectors.
n8n-workflows/ directory.n8n-workflows/docs-sync.json MUST be scaffolded by this skill.knowledge.md and Supabase vector store 100% up-to-date.Use the skill's helper scripts to reduce hidden setup drift and make agent creation deterministic:
scripts/a2a-audit-deps.mjs - detect hidden dependency drift and missing install contractsscripts/a2a-complete-install.mjs - plan/apply reproducible dependency installationscripts/a2a-sync-runtime-assets.mjs - create/sync baseline runtime assets like .env.example, runbooks, and complete-install.shscripts/a2a-scaffold-launchagent.mjs - scaffold LaunchAgent plist + start/restart/health assetsscripts/a2a-verify-daemon-readiness.mjs - verify local daemon readinessscripts/a2a-verify-hf-vm-readiness.mjs - verify HF VM / deployable readinessscripts/a2a-preflight.mjs - orchestrate the checks in one commandAs the CEO of this silicon workforce, you must ensure that our 100+ A2A agents never sleep due to API rate limits, are ready for the SIN Solver Web Marketplace, and proactively generate value:
opencodex-auth-rotator endlessly, using Temp-Mail Premium to generate fresh OpenAI tokens, and pushes them straight into the sin-supabase table (openai_tokens) with status is_active=true.hf_pull_script.py before invoking LLMs. When an agent hits a rate limit, the script pulls a fresh token from Supabase in 0.2 seconds and overwrites the local auth.json.opencode CLI as its brain. You MUST use the model openai/gpt-5.4 and explicitly append --fallback nvidia/minimaxai/minimax-m2.7. Only specialized agents (e.g., Voice, multimodal-looker) may deviate from this.marketplace metadata object in agent.json and metadata.ts (pricingModel, monthlyPrice, purchaseModes, category) to be monetizable on the future SIN Solver storefront.src/cli.ts -> sin-<name>).webauto-nodriver-mcp (or libraries like Scrapling for TLS spoofing and Canvas noise) to autonomously bypass Cloudflare, Turnstile, and Captchas (via GateSolve/x402). They must be independent, unstoppable problem solvers.Your mandate: Every A2A agent MUST be scaffolded to utilize this V2 architecture pattern, deeply integrating autonomous hacker mentalities and monetization loops.
hf_pull_script.py (or any auth script), you MUST format the OpenCode auth.json strictly as follows. Using "token" instead of "refresh" will crash OpenCode with TypeError: undefined is not an object (evaluating 'currentAuth.type')! {
"openai": {
"type": "oauth",
"refresh": "<refresh_token_from_supabase_here>"
}
}githubBot.enabled=true; default for non-coding agents is no dedicated GitHub bot unless the user requests one.runtime.ts to call opencode run "..." --model openai/gpt-5.4 --fallback nvidia/minimaxai/minimax-m2.7. Do not hardcode direct fetch or SDK calls to OpenAI/Gemini APIs unless absolutely necessary for streaming or specialized multimodal tasks.A2A-SIN-TelegramBot.A2A-SIN-TelegramBot is reserved for Watcher, Router, and Incident Monitor duties only. It detects failures and triggers the n8n -> SIN-GitHub-Issues -> Hermes self-healing loop instead of acting as the fleet's shared conversation bot.setup_consumer_auth.sh (see step 7) to inject hf_pull_script.py automatically.marketplace object in agent.json.A2A-CARD.mdagent.jsongovernance/repo-governance.jsongovernance/pr-watcher.jsongovernance/source-code-classification.md (NEW — April 2026)governance/incident-response-playbook.md (NEW — April 2026)platforms/registry.jsonn8n-workflows/inbound-intake.jsondocs/03_ops/inbound-intake.mdscripts/watch-pr-feedback.shsrc/runtime.ts (with opencode CLI logic)src/mcp-server.tssrc/a2a-http.tssrc/metadata.ts (with marketplace object)src/cli.ts (Native CLI)scripts/complete-install.shscripts/hf_pull_script.py.githooks/pre-commit (NEW — April 2026).githooks/pre-push (NEW — April 2026).secrets.baseline (NEW — April 2026)src/clients/sin-in-chrome.ts (optional — browser automation)src/clients/sin-computer-use.ts (optional — macOS GUI automation).githooks/pre-commit (NEW — April 2026).githooks/pre-push (NEW — April 2026).secrets.baseline (NEW — April 2026)src/clients/sin-in-chrome.ts (optional — browser automation)src/clients/sin-computer-use.ts (optional — macOS GUI automation)agent-spec.example.json and fill all required fields.githubBot.enabled MUST be true and the spec must include appSlug, botName, appIdEnv, clientIdEnv, privateKeyEnv, and webhookSecretEnv.githubBot is optional. If omitted or enabled=false, no dedicated GitHub bot routing example is generated.node /Users/jeremy/dev/OpenSIN-backend/scripts/create-sin-a2a-agent.mjs --spec /abs/path/to/spec.json4b. If you are repairing an older agent or the route file was missing, run the page scaffold explicitly:
node /Users/jeremy/dev/OpenSIN-backend/scripts/scaffold-a2a-agent-page.mjs --slug sin-<agentname>repoUrl.node /Users/jeremy/.config/opencode/skills/create-a2a/scripts/a2a-audit-deps.mjs --agent-root /abs/path/to/new-agent-root --format text
node /Users/jeremy/.config/opencode/skills/create-a2a/scripts/a2a-sync-runtime-assets.mjs --agent-root /abs/path/to/new-agent-root --mode apply --format textruntime.ts).7b. MCP Surface Generation (AUTOMATED): Invoke skill /create-a2a-mcp to scaffold the MCP server surface. This generates src/mcp-server.ts, mcp-config.json, clients/opencode-mcp.json, and patches src/cli.ts. Run:
MCP_SCRIPTS=~/.config/opencode/skills/create-a2a-mcp/scripts
node $MCP_SCRIPTS/mcp-scaffold.mjs --agent-root /abs/path/to/new-agent-root --slug sin-<agentname> --tools '<domain-specific-tools-json>'
node $MCP_SCRIPTS/mcp-register-global.mjs --slug sin-<agentname> --agent-root /abs/path/to/new-agent-root --bin-wrapper
node $MCP_SCRIPTS/mcp-verify.mjs --agent-root /abs/path/to/new-agent-root --slug sin-<agentname>/Users/jeremy/.config/opencode/skills/create-a2a/scripts/setup_consumer_auth.sh /abs/path/to/new-agent-rootscripts/complete-install.shscripts/hf_pull_script.pycd /Users/jeremy/dev/OpenSIN-backend && npm run sync:a2a:control-plane-projectiongovernance/repo-governance.jsongovernance/pr-watcher.jsonplatforms/registry.jsonn8n-workflows/inbound-intake.json aligned to the shared work-item schemascripts/watch-pr-feedback.sh starts a repo watcher contract cleanlya2a.delqhi.com.dashboard-enterprise/app/agents/<slug>/page.tsx must exist before you publish or link the agent.A2A-CARD.md (legacy shared-doc tabs are fallback-only during migration).Run all of these before calling the agent complete:
npm --prefix /abs/path/to/agent-root run build
node /abs/path/to/agent-root/dist/src/cli.js run-action '{"action":"agent.help"}'
node /abs/path/to/agent-root/dist/src/cli.js print-card
node /Users/jeremy/dev/OpenSIN-backend/scripts/scaffold-a2a-agent-page.mjs --slug sin-<agentname> --dry-run true
cd /Users/jeremy/dev/OpenSIN-backend && npm run test:a2a:fleet
cd /Users/jeremy/dev/OpenSIN-backend && npm run sync:a2a:control-plane-projection
node /Users/jeremy/.config/opencode/skills/create-a2a/scripts/a2a-verify-hf-vm-readiness.mjs --agent-root /abs/path/to/agent-root --health-url https://<public-host>/health --format textThe fleet validator now explicitly blocks these incomplete states:
/agents/<slug> URL without dashboard-enterprise/app/agents/<slug>/page.tsx/agent/<slug> drift on canonical hostsRecommended front-door verifier:
node /Users/jeremy/.config/opencode/skills/create-a2a/scripts/a2a-preflight.mjs --agent-root /abs/path/to/agent-root --targets deps,install,assets,daemon,hf --format textFor every HF VM / deployable repo also run:
bash /abs/path/to/agent-root/scripts/complete-install.shAnd verify all of these before calling it complete:
.env.example or equivalent contracta2a-verify-hf-vm-readiness.mjs --health-url <public>/health and fail closed unless the public surfaces answerUse the same checklist when normalizing older agents. Specifically check:
hf_pull_script.py by running the automation macro (setup_consumer_auth.sh).scripts/complete-install.sh plus explicit dependency manifests.Apply this to every HF VM / deployable A2A repo.
scripts/complete-install.sh is the single supported full install/configure entrypoint.package-lock.json, bun.lock, requirements.txt, poetry.lock, etc.).logs, data, caches, state dirs) inside the agent-owned layout.sin-sync)Every A2A agent depends on an identical OpenCode CLI environment across Mac, OCI VM, and HF VMs. The sin-sync tool ensures this.
~/.config/opencode/ — skills, MCPs, plugins, tools, agents, opencode.jsonauth.json, token.json, antigravity-accounts.json, telegram_config.json*.db, *.sqlite*, logs/, tmp/, .cache/# Sync from Mac to OCI VM (run on Mac)
sin-sync
# Underlying script
~/.local/bin/sync-opencode.shAfter creating or updating any skill, MCP config, or agent definition in ~/.config/opencode/:
sin-sync to push to OCI VMcomplete-install.sh or CI pipeline~/.config/opencode/skills/~/.config/opencode/opencode.json (new MCPs, models, agents)~/.config/opencode/AGENTS.md governance rulescreate-a2a session that touches global configEach VM maintains its own auth files. HF VMs use hf_pull_script.py to pull tokens from Supabase. The OCI VM has its own credentials. The Mac has its own rotator-produced auth. These are NEVER mixed.
When the task is finished, report:
When creating or upgrading an agent, assume autonomous execution can exist, but only under strict control:
OpenSIN-AI is now 100% feature-equivalent + superior to Claude Code in all categories:
| Feature | Claude Code | OpenSIN-AI | Status |
|---|---|---|---|
| Browser Automation | ✅ claudeInChrome | ✅ sinInChrome (13 actions, 7 browsers) | ✅ EQUAL + BETTER |
| macOS GUI Automation | ✅ computerUse | ✅ sin-computer-use (14 files, 652 lines) | ✅ EQUAL |
| API Gateway | ❌ | ✅ REST API for free users | ✅ BETTER |
| Health Monitoring | ❌ | ✅ 3-check system | ✅ BETTER |
| Telemetry | ❌ | ✅ Buffered analytics | ✅ BETTER |
| Auto-Reconnect | ❌ | ✅ 3 attempts with backoff | ✅ BETTER |
| Batch Operations | ❌ | ✅ Up to 50 actions | ✅ BETTER |
| Rate Limiting | ❌ | ✅ 100/h free, 10k/h premium | ✅ BETTER |
| Security Hardening | Basic | ✅ 7-layer protection | ✅ BETTER |
| Leak Prevention CI | ❌ | ✅ GitHub Actions | ✅ BETTER |
Creation Mandate: Every new agent MUST be built with awareness that OpenSIN-AI now exceeds Claude Code capabilities. Never position OpenSIN as "alternative to" — position it as "superior to".
~/.config/opencode/google-account-matrix.json and ~/.config/opencode/GOOGLE-ACCOUNTS.md.[email protected] via oauth_user.[email protected] via oauth_user.[email protected] only for explicitly shared or service-account-owned files/folders..docx generation via sin-document-forge into /Users/jeremy/Google Drive/Geteilte Ablagen/OpenSolver-Repo in Organisation verschieben.sin-google-docs commands ensure-access, ensure-patent-structure, and replace-patent-tabs when relevant.Every new A2A Agent (especially those deployed to HF VMs or OCI VMs) MUST include the ssot-daemon.sh in its background lifecycle (start.sh, server.js, or Dockerfile).
[email protected]:OpenSIN-AI/OpenSIN-Code.git (or https if no SSH key) on startup.~/.config/opencode/ and the local .opencode/ directory on the VM.OpenSIN-AI/OpenSIN-Code fork is updated. No exceptions.When deploying many A2A agents to HuggingFace Spaces, a single HF account hits rate limits (20 spaces/day) and capacity limits.
agent.json must declare which HF account owns its space via deployment.hfAccount.sin-server is the central auto-healing orchestrator for all HF VMs and OCI VMs.
/health endpoints every 60 seconds.complete-install.sh + hf_pull_script.py automatically./health, /.well-known/agent-card.json, and /a2a/v1 endpoints.The template runtime.ts MUST include:
--model openai/gpt-5.4 --fallback nvidia/minimaxai/minimax-m2.7confirm: trueEvery agent.json MUST include:
marketplace object with pricingModel, monthlyPrice, purchaseModes, categoryprimaryModel set to openai/gpt-5.4controlPlane object with all required fieldsdeployment object with workforceIndex, landingPage, publicA2A, cimdAnchor, vmServerEvery Dockerfile MUST:
hf_pull_script.py before starting the agentnode:22-slim as base image~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.