feat: add SmartMoving CLI read-only MVP - #10
Conversation
|
Added the SmartMoving CLI epic roadmap and future loop plans to the repo. New docs:
Also updated docs/ROADMAP.md to point to the CLI roadmap and loop plans. Verification:
This lays out init, doctor, schema --json, shared MCP/CLI registry, all 62 tools in CLI, write/destructive safety gates, agent UX, docs generation, packaging, smoke tests, and later power features. |
|
Starting the scheduled CLI implementation loop now. Cadence: 8 one-shot loops, 18 minutes apart, all targeting this PR/branch. Plan:
Guardrails for every loop:
|
|
Avery loop 1 update: Implemented bounded CLI init/doctor work from What changed:
Verification run from
Commit pushed: Note: local working tree still has an unrelated untracked |
|
Loop 2 update pushed in Changes:
Verification run from
Notes:
|
|
Loop 3 update (Avery): implemented the read-only CLI command coverage from What changed:
Verification run from
Safety notes:
Pushed commit: |
|
Loop 4 update (Avery): implemented guarded SmartMoving CLI write commands on What changed:
Tests / verification run locally from
Safety notes:
Pushed commit: Current PR check state when I looked: |
|
Loop 5 update: destructive/high-risk CLI safety gates are implemented and pushed in What changed:
Verification run locally from
No live destructive SmartMoving API calls were made; all safety tests used mocked HTTP servers. |
|
Loop 6 update: implemented the agent-friendly CLI UX layer from What changed:
Verification run from
Pushed commit: Note: local repo still has an untracked |
|
Loop 7 update pushed in What changed:
Verification run from
CI note: |
|
Loop 8 packaging/release smoke update pushed: What changed:
Verification run locally from
PR checks note:
Remaining blockers / not done by design:
|
|
Kicking off the docs/site/onboarding/npm-prep loop now. Schedule:
Guardrails:
Plan doc: docs/plans/10-doc-site-onboarding-npm-launch.md |
|
Loop A complete: Astro/Starlight docs site scaffold. Summary:
Verification run locally:
Guardrails observed:
Commit pushed to |
|
Loop B update pushed in What changed:
Verification run:
Guardrails followed: no npm publish, no merge, no push to |
|
Loop C onboarding smoke is complete and pushed in What changed:
Smoke covered:
Verification:
Guardrails respected: no npm publish, no merge/main push, and no write/destructive SmartMoving calls. |
|
Docs/onboarding loop D update:
Smoke-tested the production alias with
Build/readiness checks run:
Remaining manual approval steps before public release:
|
|
CI follow-up: PR #10 |
|
Final docs deployment verification complete. Production docs URL: Vercel deployment verified:
Verification commands run:
Results:
Small fix pushed:
Remaining manual step:
|
Summary
Adds an unofficial, read-only
smartmovingCLI MVP alongside the existing SmartMoving MCP server so Matt can test SmartMoving API access from a terminal without going through an MCP client.Commands added
Package binary metadata now exposes both:
{ "smartmoving-mcp-server": "dist/index.js", "smartmoving": "dist/cli.js" }Safety posture
SMARTMOVING_API_KEYis required through environment variables; API keys should not be passed as command arguments or committed.SMARTMOVING_ALLOW_WRITES=true.SMARTMOVING_ALLOW_WRITES=trueandSMARTMOVING_ALLOW_DESTRUCTIVE=true.Verification output
Ran from
mcp-server/:npm audit --audit-level=highexited successfully; the reported esbuild advisory is low severity.Also checked CLI help locally:
How Matt can test locally
From the existing checkout:
If testing IDs from a real authorized account:
node dist/cli.js customers get CUSTOMER_UUID --json node dist/cli.js opportunities get OPPORTUNITY_UUID --json node dist/cli.js jobs get JOB_UUID --opportunity-id OPPORTUNITY_UUID --json node dist/cli.js followups due --opportunity-id OPPORTUNITY_UUID --jsonFuture npx usage after maintainers choose to publish may look like:
SMARTMOVING_API_KEY="replace-with-your-key" npx -y --package smartmoving-mcp-server smartmoving pingDeferred intentionally
smartmoving-clipackage.