Odoo Assistant Store Manager
Analysis
This appears to be a real Odoo store-management skill, but it deserves review because it can change ERP inventory/products and includes an optional long-running Discuss bot that can trigger CLI actions.
Findings (5)
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.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
python3 src/odoo_manager.py update_stock --ref "NAME OR BARCODE" --qty 10 ... python3 src/odoo_manager.py add_product --name "…" --price 9.95 --qty 5
These documented commands can mutate Odoo inventory and product records. The skill does not show an explicit confirmation or preview requirement before an agent performs these high-impact business actions.
Optional listener: `src/odoo_listener.py` polls Odoo Discuss and runs CLI commands. Long-running, privileged. Only run if the user requests it
The skill discloses a persistent, privileged listener. It is optional and user-requested, but users should notice that it can keep operating until stopped.
Version: 1.0.1
The registry metadata lists version 1.0.1, while SKILL.md and skill.json declare version 1.1.0. This is a packaging/provenance inconsistency rather than direct malicious behavior.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
"ODOO_USER" ... "ODOO_PASSWORD", "description": "Password or API key; ODOO_PASS is accepted as an alias"
The skill requires Odoo account credentials, which is expected for this purpose. However, the registry metadata provided for evaluation says required env vars and primary credential are none, reducing install-time visibility.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
cmd = ["python3", script_path] + shlex.split(command_args) ... while True: ... ['message_type', '=', 'comment'] ... is_channel_chat = model == 'discuss.channel'
The listener continuously polls Odoo comments/channels and has a helper that runs the manager CLI. The visible artifacts do not show a clear channel allowlist, user allowlist, or per-command approval boundary.
