office secretary
v3.1.0A digital administrative assistant for Microsoft 365 (Outlook & OneDrive).
Security Scan
OpenClaw
Suspicious
high confidencePurpose & Capability
The declared purpose (M365 mail, calendar, OneDrive, Teams) matches the code and requested Graph scopes (Mail.ReadWrite, Calendars.ReadWrite, Files.ReadWrite, ChatMessage.Send). However the registry metadata provided to the platform claims no required environment variables or primary credential, while both SKILL.md and the code require SECRETARY_CLIENT_ID and SECRETARY_TENANT_ID. That registry/metadata mismatch is an incoherence that could lead to missing platform prompts or mistaken trust.
Instruction Scope
SKILL.md instructs creation of an Azure app and use of delegated permissions, and the runtime commands call only Microsoft Graph endpoints. The instructions do not request unrelated files or remote endpoints beyond graph.microsoft.com. The skill uses interactive authentication and stores tokens in a local token_cache.bin file.
Install Mechanism
There is no external install or download spec—this is effectively an instruction + code bundle. Requirements.txt lists msal, requests, python-dotenv which are consistent with the code. No remote installers, URL downloads, or archives are used.
Credentials
The code and SKILL.md require two env vars (SECRETARY_CLIENT_ID and SECRETARY_TENANT_ID) and will create a local token_cache.bin; these are proportionate to the declared functionality. The problem is the registry metadata (the platform-level manifest) does not declare these required env vars or a primary credential, which is inconsistent and may cause confusion about what secrets are needed or what the platform will store/ask for.
Persistence & Privilege
The skill is not marked always:true, does not modify other skills or global agent settings, and only writes a local token cache file (token_cache.bin) under its directory. It enforces file permissions on Unix-like systems. Autonomous invocation is enabled (platform default) but not combined with any other broad or unexpected privileges.
What to consider before installing
What to consider before installing:
- The skill appears to do what it says (read/triage mail, find calendar slots, list old OneDrive files, post to Teams) and the Python code calls only Microsoft Graph endpoints.
- However the registry metadata does not declare the two required environment variables (SECRETARY_CLIENT_ID, SECRETARY_TENANT_ID) shown in SKILL.md and used by the code. This is likely an oversight but could cause the platform not to surface the credential requirements to you—treat it as suspicious until corrected.
- The Azure app will need delegated permissions that allow reading/modifying email and files and sending Teams messages. These are powerful rights (Mail.ReadWrite and Files.ReadWrite can modify or delete content). Only grant them for an account/tenant you trust and consider using a dedicated service account with limited data access.
- The tool uses interactive authentication and stores a local token_cache.bin. Ensure that file is stored securely (it is gitignored here) and that file-system permissions meet your policy. Review and rotate tokens if you later uninstall.
- If you decide to run: inspect the code yourself, register the Azure app in a restricted test tenant, grant only the minimum scopes you accept, and run in an isolated or least-privilege account first.
- Fixes that would increase trust: update the registry manifest to explicitly declare required env vars and a clear primary credential, and add NOTES in SKILL.md about token_cache location and exact consent prompts.Like a lobster shell, security has layers — review code before you run it.
automationazure ademail triageenterprise automationexecutive assistantfile cleanupgraph apilatestm365mailmeeting schedulermicrosfotmicrosoft 365msaloffice 365office 365.onedriveoutlookoutlook automationpdf exportplanner tasksproductivity toolpythonsecretary enginesmart calendarstorage governanceteams notification
🛡️ Role & Logic
I am a Security-First Executive Assistant. I operate using delegated permissions to ensure I only access the user's data.
- Administrative: High-priority email triage and calendar coordination.
- Governance: Identifying stale OneDrive data.
- Communication: Securely posting alerts to Teams channels.
🛠 Command Interface
- Mail:
python3 secretary_engine.py mail(Triage high-priority mail). - Calendar:
python3 secretary_engine.py calendar [email](Find meeting slots). - Drive:
python3 secretary_engine.py drive(List orphaned files). - Teams:
python3 secretary_engine.py teams [team_id] [channel_id] [msg].
🏗 Setup
- App Registration: Create an Azure Entra ID app as a Public Client.
- Permissions: Grant Delegated
Mail.ReadWrite,Calendars.ReadWrite,Files.ReadWrite, andChatMessage.Send. - Env: Provide
SECRETARY_CLIENT_IDandSECRETARY_TENANT_IDin.env.
Comments
Loading comments...
