Conversation
Hermes-native Box skill: CCG service-account auth, CLI-first workflows, REST fallback, SDK reference, tests, and .env.example block. Co-authored-by: Cursor <cursoragent@cursor.com>
…ands - Modified tags in metadata to reflect API usage instead of CCG. - Expanded usage instructions to include file editing capabilities (rename, versioning). - Clarified service account access requirements and folder sharing process. - Added detailed CLI commands for file editing and version management. - Updated pitfalls section to emphasize collaboration roles and editing limitations.
hbkwong
left a comment
There was a problem hiding this comment.
Thinking about parity on this one. Should we also add BOX_CLIENT_ID/BOX_CLIENT_SECRET/BOX_ENTERPRISE_ID to OPTIONAL_ENV_VARS in hermes_cli/config.py? Looks like other platforms register theirs with category="skill" (my understanding is that they'd surface in hermes setup)
- Introduced new environment variables for Box integration: BOX_CLIENT_ID, BOX_CLIENT_SECRET, and BOX_ENTERPRISE_ID. - Updated skill documentation to reflect changes in CLI command usage and improved clarity on service account requirements. - Revised examples in documentation to align with current command structures and best practices. - Added tests to ensure environment variables are correctly registered and CLI examples are up-to-date.
- Updated comments in .env.example to specify that credentials are required for CCG setup. - Enhanced clarity on the required values for the Box integration setup process.
teknium1
left a comment
There was a problem hiding this comment.
Thanks for the detailed CCG/access model and for addressing the earlier setup-registration and flag-form command feedback. Current main does not contain a Box skill, so this remains a useful contribution, but the current shape needs rework before landing.
Problems
skills/productivity/box/SKILL.md:20-27makes Node 18+, globally installed@box/cli, and Box credentials the primary path in an always-on bundled skill.AGENTS.md:867-868places heavy-dependency or niche skills inoptional-skills/;AGENTS.md:902-914also says new skill prose must not make a third-party CLI its headline interaction surface.skills/productivity/box/SKILL.md:5creditscommunity, butAGENTS.md:926-931requires the external contributor's real name and GitHub handle first.tests/skills/test_box_skill.py:15-32,79-143freezes names and literal documentation strings rather than testing durable contracts, contrary toAGENTS.md:1309-1356.
Suggested changes
- Move this to
optional-skills/productivity/box;tools/skills_hub.py:3158-3174already supports official opt-in skills. - Credit Chris Kim (@iskysun96) in frontmatter.
- Replace snapshot assertions with frontmatter/link/template validation invariants, and keep Box CLI detail progressively disclosed rather than the primary skill surface.
Automated hermes-sweeper review.
| name: box | ||
| description: Box CLI and API for content, search, and SDK apps. | ||
| version: 1.0.0 | ||
| author: community |
There was a problem hiding this comment.
author: community conflicts with AGENTS.md:926-931, which requires an external skill to credit the human contributor first. Please use the contributor's real name and GitHub handle (Chris Kim / @iskysun96).
| - Upload, download, edit(rename, new version), move, or organize files and folders | ||
| - Search content, run metadata queries, or use Box AI | ||
| - Bulk reorganize folders or batch-tag metadata | ||
| - Create webhooks or poll events for automation |
There was a problem hiding this comment.
This makes a globally installed third-party CLI the required primary path for an always-on skill. AGENTS.md:867-868 directs heavy-dependency or niche skills to optional-skills/, and AGENTS.md:902-914 says third-party CLIs must not be the headline surface of new skill prose. Please re-scope this as an opt-in skill and restructure the entrypoint around native Hermes tooling.
| SKILL_DIR = REPO_ROOT / "skills" / "productivity" / "box" | ||
| SKILL_MD = SKILL_DIR / "SKILL.md" | ||
| REFERENCES_DIR = SKILL_DIR / "references" | ||
| TEMPLATES_DIR = SKILL_DIR / "templates" |
There was a problem hiding this comment.
This fixed file inventory, together with the forbidden-name and literal-command assertions below, is a change-detector snapshot: routine documentation restructuring will fail CI without proving a broken contract. Replace these with durable frontmatter, link-resolution, and template-validation invariants.
…nal-test # Conflicts: # hermes_cli/config.py
Box cloud content management via the official @box/cli through the terminal tool: files, folders, sharing, search, metadata, Box AI, Hubs, bulk operations, webhooks, and a REST fallback via box request. OAuth-only auth; SKILL.md routes to ten scoped reference files. Salvaged from PR #52107 by @iskysun96.
|
Merged via PR #85767 — your commit was cherry-picked onto current main with your authorship preserved in git log, plus a small compliance-polish commit on top (frontmatter conventions, docs registration). The skill ships bundled at |
Box cloud content management via the official @box/cli through the terminal tool: files, folders, sharing, search, metadata, Box AI, Hubs, bulk operations, webhooks, and a REST fallback via box request. OAuth-only auth; SKILL.md routes to ten scoped reference files. Salvaged from PR NousResearch#52107 by @iskysun96.
Box cloud content management via the official @box/cli through the terminal tool: files, folders, sharing, search, metadata, Box AI, Hubs, bulk operations, webhooks, and a REST fallback via box request. OAuth-only auth; SKILL.md routes to ten scoped reference files. Salvaged from PR NousResearch#52107 by @iskysun96.
Box cloud content management via the official @box/cli through the terminal tool: files, folders, sharing, search, metadata, Box AI, Hubs, bulk operations, webhooks, and a REST fallback via box request. OAuth-only auth; SKILL.md routes to ten scoped reference files. Salvaged from PR NousResearch#52107 by @iskysun96.
Add
skills/productivity/box/— a Hermes-native bundled Box skill with CCG service-account auth, CLI-first agent workflows, REST fallback, and SDK development reference. Includes tests and.env.exampleCCG block. No MCP integration, no upstream sync, no website doc changes.What does this PR do?
Adds a bundled Box productivity skill so Hermes can manage Box content via CLI and REST — uploads, folders, search, shared links, webhooks, Box AI, bulk operations, and troubleshooting.
Hermes acts as the app's service account (Client Credentials Grant), not the human user. Setup uses a free Box Developer Console Platform App →
BOX_CLIENT_ID/BOX_CLIENT_SECRET/BOX_ENTERPRISE_IDin~/.hermes/.env→box configure:environments:add … --ccg-auth. Free developer accounts auto-authorize CCG apps.This follows the footprint ladder (skill + docs, no new core tools). No MCP catalog entry; agents use
terminalwith Box CLI.Related Issue
Fixes #
Type of Change
Changes Made
skills/productivity/box/SKILL.md— bundled skill (HARDLINE format, CCG-first, CLI tool ladder, reference router)skills/productivity/box/references/auth-and-setup.md— CCG app creation, CLI env wiring, service-account content modelskills/productivity/box/references/cli-guide.md—--json,--fields, serial execution,box requestskills/productivity/box/references/content-workflows.md— files, folders, upload/download, links, collaborationsskills/productivity/box/references/search-and-ai.md— search, metadata-query, Box AI CLIskills/productivity/box/references/bulk-operations.md— inventory-plan-execute-verify for batch opsskills/productivity/box/references/webhooks-and-events.md— webhooks and events patternsskills/productivity/box/references/rest-api.md— curl fallback when CLI unavailableskills/productivity/box/references/sdk-development.md— SDK auth and app development pathskills/productivity/box/references/troubleshooting.md— 401/403/404/409/429, actor mismatchesskills/productivity/box/templates/ccg-config.json.example— template forbox configure:environments:addtests/skills/test_box_skill.py— frontmatter, description length, no MCP, reference path invariants.env.example— isolated commented CCG Box blockHow to Test
Run skill tests:
Confirm skill is listed:
hermes skills list | grep -i boxOptional live CCG + CLI path (requires free Box Developer Platform App with CCG):
Add credentials to
~/.hermes/.env:Copy and fill
skills/productivity/box/templates/ccg-config.json.example, then:Optional end-to-end skill prompt:
hermes --toolsets skills -q "Use the box skill to verify CCG auth and list the service account root folder"Checklist
Code
fix(scope):,feat(scope):, etc.)pytest tests/ -qand all tests passDocumentation & Housekeeping
docs/, docstrings) — or N/Acli-config.yaml.exampleif I added/changed config keys — N/ACONTRIBUTING.mdorAGENTS.mdif I changed architecture or workflows — N/Aplatforms: [linux, macos, windows]For New Skills
@box/cli(Node.js), documented in prerequisiteshermes --toolsets skills -q "Use the box skill to verify CCG auth"— requires live Box CCG appScreenshots / Logs
N/A