| name | vnu-eoffice |
| description | Route VNU eOffice requests to an existing vnu_eoffice package or CLI: monitor updates, list latest incoming/outgoing documents, search by keyword, download attachments, and hand explicit file delivery to the authenticated host queue. |
| user-invocable | true |
| disable-model-invocation | false |
Use this skill when the user asks about VNU eOffice, VNU e-office, eoffice.vnu.edu.vn, incoming documents, outgoing documents, document summaries, document searches, or delivery of eOffice attachments.
Core rules:
- Do not fork or paste target-specific helper code into this canonical skill.
- Do not print credentials, tokens, chat ids, or secret setup instructions.
- Use both modules by default:
den for incoming and di for outgoing.
- Ignore eOffice read/unread state. The user may also read posts manually in a browser, so selection and monitoring must rely on fetched document ids.
- Fetch multiple pages by default. Use
--pages N when the user asks for a deeper or shallower scan.
- Only download and send document files when the user explicitly asks for files or asks to download/send results.
- The VNU package is a retrieval authority only. Always use
--no-notify where
available; never invoke its send command or direct Telegram/OpenClaw notifier,
and never project delivery bot credentials or
AAS_FILE_DELIVERY_SECRETS_FILE into the package process.
- For an explicit delivery request, download first, stage the file in an
authorized AAS export root, and hand a bounded JSON request to the installed
skills/zotero/send_file.sh queue producer on stdin with no delivery metadata
in argv. If that producer is unavailable, report the local path and do not
fall back to a direct provider API.
- Delete local copies only after the authenticated queue reports successful
delivery, unless the user explicitly asks to keep them.
- Preserve the package's numbered latest/search/monitor output. The package persists item numbers for follow-up download/send requests.
- Use
items before resolving an ambiguous follow-up request when the current item numbers are not visible in the conversation.
Execution surface:
- On POSIX, prefer the managed dedicated environment when it exists:
vnu_python="$HOME/.vnu-eoffice_venv/bin/python"
if [ ! -x "$vnu_python" ]; then
vnu_python="$(command -v python3 || true)"
fi
if [ -z "$vnu_python" ]; then
printf '%s\n' 'TECHNICAL_FAIL: vnu-eoffice Python interpreter is missing' >&2
exit 1
fi
"$vnu_python" -m vnu_eoffice <command> [options]
- If the dedicated environment is absent, an already importable checkout or
installed
vnu-eoffice CLI remains an allowed fallback; do not silently
install or switch environments.
- On native Windows, if the dedicated local venv exists, prefer
& "$env:USERPROFILE\.vnu-eoffice_venv\Scripts\vnu-eoffice.exe" <command> or & "$env:USERPROFILE\.vnu-eoffice_venv\Scripts\python.exe" -m vnu_eoffice <command> in PowerShell.
- On native Windows consoles, set
PYTHONUTF8=1 and PYTHONIOENCODING=utf-8 before commands that may print Vietnamese text.
- This skill requires an importable
vnu_eoffice package/checkout or vnu-eoffice executable. If neither is available, report the missing dependency instead of claiming eOffice access.
- If the package is not importable, use the target's normal project checkout mechanism to make
vnu_eoffice importable. Do not hardcode a user-specific checkout path into the skill.
- Target adapters may wrap the package CLI with convenience command names such as
latest, but numbered items are package behavior. Keep adapter-only logic outside this canonical skill body.
- Only eOffice credentials may reach the VNU package. Outbound channel
credentials remain behind the authenticated host worker and are not part of
this skill's environment or secret store.
Common commands:
"$vnu_python" -m vnu_eoffice test-login
"$vnu_python" -m vnu_eoffice monitor --no-notify --limit 60 --pages 2
"$vnu_python" -m vnu_eoffice list --limit 10 --pages 2 --modules den,di
"$vnu_python" -m vnu_eoffice search "<keywords>" --limit 10 --pages 2 --modules den,di
"$vnu_python" -m vnu_eoffice search "<keywords>" --limit 5 --pages 2 --has-attach
"$vnu_python" -m vnu_eoffice items
"$vnu_python" -m vnu_eoffice download --item 5
"$vnu_python" -m vnu_eoffice download --id den:12345
Natural-language routing:
- "start updates now" or "check updates now": run
monitor --no-notify, then reply with a titled summary.
- "send latest 10 summaries" or "login and send top 10": run
list --limit 10; reply with both incoming and outgoing categories, number the results, and retain the module:intid mapping for follow-up.
- "search ": run
search "<keywords>"; reply with numbered results and ask which item numbers to download.
- "search and download results": run
search "<keywords>", number the results, and download only the selected item ids unless the user explicitly asks for all results.
- "download all documents of item 5 to me": run
download --item 5, then use
the authenticated host queue if delivery was explicitly requested.
- "download items 2 and 4": run
download --item 2,4, then use the
authenticated host queue if delivery was explicitly requested.
- "download all results": run the package's download-all selection flow, then
submit each staged export separately through the authenticated host queue.
Target notes:
- This canonical skill is target-adaptable across supported install targets; target-specific paths should be resolved by the installing agent adapter or local environment.
- OpenClaw-specific rebuild material belongs to the OpenClaw adapter/rebuild plan, not to this ai-agents-skills canonical skill body.