Ocean Desk

PendingVirusTotal audit pending.

Overview

No VirusTotal analysis has been recorded yet. File reputation checks will appear here once the artifact hash has been scanned.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Real customer details or conversation summaries could be routed through the default public OceanBus environment, and any agent that can address the desk OpenID may be able to inject tickets if additional controls are not implemented elsewhere.

Why it was flagged

The documented inter-agent flow sends customer context to Ocean Desk over OceanBus, and the default endpoint is a public test server unless configured otherwise. The artifacts do not clearly show an allowlist or origin validation for which brand agents may create tickets.

Skill content
OCEANBUS_BASE_URL ... Defaults to public test server ... 品牌 Agent ... 发 ocean-thread/v1 create 给 ocean-desk ... "customer_name" ... "ai_summary"
Recommendation

Before production use, configure a trusted OCEANBUS_BASE_URL, require/verify authorized brand-agent OpenIDs, validate message origin and protocol fields, and minimize customer data included in escalation payloads.

What this means

Customer-service history and AI-provided context will be retained locally and may influence human operators who review tickets.

Why it was flagged

Ticket records persist customer profiles, AI summaries, recommended actions, and conversation logs in a local JSON file.

Skill content
const TICKETS_FILE = path.join(DATA_DIR, 'tickets.json'); ... context: { customer_profile: src.customer_profile || {}, ai_summary: src.ai_summary || '', recommended_actions: src.recommended_actions || [], conversation_log: src.conversation_log || [] }
Recommendation

Use appropriate file protections, define retention/deletion procedures, and treat AI summaries or recommended actions as untrusted context that should be verified by staff.

What this means

Anyone who can read the local credentials file may be able to act as the Ocean Desk identity on OceanBus.

Why it was flagged

Setup registers an OceanBus identity and stores its API key locally for the desk.

Skill content
const CRED_FILE = path.join(DATA_DIR, 'credentials.json'); ... fs.writeFileSync(CRED_FILE, JSON.stringify({ agent_id: agentId, api_key: apiKey, openid, created_at: new Date().toISOString() }, null, 2));
Recommendation

Restrict access to ~/.oceanbus-desk, avoid sharing the credentials file, rotate the OceanBus API key if exposed, and remove the file when decommissioning the desk.

What this means

A mistaken or premature send command could deliver an incorrect customer-facing response.

Why it was flagged

The CLI can send replies back through the brand agent to customers; the workflow does call out human confirmation before sending.

Skill content
→ 起草回复 draft / template use → 【人工确认】发送 send → ocean-thread/v1 reply → 品牌 Agent → 客户
Recommendation

Require explicit human review before running send, and consider adding an interactive confirmation or approval gate for production desks.

What this means

Future dependency updates could change runtime behavior after npm install.

Why it was flagged

The skill relies on an npm dependency with a semver range rather than a pinned exact version.

Skill content
"dependencies": { "oceanbus": "^0.4.0" }
Recommendation

Use a lockfile or pin/audit dependencies before deploying the desk in a production customer-service environment.

What this means

The desk may keep accepting new tickets while the listener process is running.

Why it was flagged

The listener is a long-running process that continuously watches for new work, which is expected for a help desk but should be explicitly managed.

Skill content
node scripts/desk.js listen ... # 启动实时监听(保持运行)
Recommendation

Run the listener only in the intended environment, monitor it, and stop it when the desk should not accept new tickets.