From 8f0994dee02fd2cd13841e630971a6d835610600 Mon Sep 17 00:00:00 2001 From: Sil Date: Sun, 11 Oct 2026 23:06:05 +0200 Subject: [PATCH 1/4] Align product descriptions and agent skill with current APIs --- .changeset/cleanup-product-descriptions.md | 5 +++++ README.md | 5 +++-- dist/cli.mjs | 2 +- package.json | 2 +- skills/fulldev/SKILL.md | 24 ++++++++++++++-------- src/apps.ts | 2 +- 6 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 .changeset/cleanup-product-descriptions.md diff --git a/.changeset/cleanup-product-descriptions.md b/.changeset/cleanup-product-descriptions.md new file mode 100644 index 0000000..c8ab290 --- /dev/null +++ b/.changeset/cleanup-product-descriptions.md @@ -0,0 +1,5 @@ +--- +"fulldev": patch +--- + +Update Contacts descriptions for multiple accounts, document Send and Work, and include HTTP API discovery in the agent skill. diff --git a/README.md b/README.md index 745a35e..9735268 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,9 @@ Use Fulldev apps from a terminal or an AI agent. The CLI discovers the full HTTP | `scan` | Scanning websites with [Fulldev Scan](https://scan.full.dev), for administrators only | | `sites` | A finished website from [Fulldev Sites](https://sites.full.dev), for administrators only | | `pages` | Reports and plans as web pages with [Fulldev Pages](https://pages.full.dev), for administrators only | -| `contacts` | The daily copy of your Google contacts with [Fulldev Contacts](https://contacts.full.dev) | +| `contacts` | Daily synchronization of your Google contacts across multiple accounts. | +| `send` | Customer message scenarios and deliveries. | +| `work` | Tasks, projects and goals in your organization. | ## Install @@ -55,7 +57,6 @@ How it works: - The CLI is a public OAuth client that needs no registration: its client id is the address of its [Client ID Metadata Document](https://full.dev/oauth/cli.json), which the authorization server at `https://app.full.dev/api/auth` reads. It never registers a client, so sign-in to a server that does not support such documents fails with `CLIENT_METADATA_UNSUPPORTED`. - Tokens are stored in the OS keychain (macOS Keychain, Windows Credential Manager, or the Secret Service on Linux) under the service `fulldev`, one entry per server. Where no keychain is available, such as in many containers and CI runners, they go to `~/.config/fulldev/auth.json` (or `$XDG_CONFIG_HOME/fulldev/auth.json`), readable only by you; `fulldev status` says which one is used. - Access tokens are refreshed when they expire. Parallel commands take turns through a lock file next to it, so they never refresh the same token twice. -- Sign-ins from fulldev 0.3 and earlier were per app and made with Clerk, and no longer work: run `fulldev login` again. Commands never start a sign-in without a terminal (when stdin or stdout is not a TTY): they fail at once with exit code 3 and say to run `fulldev login`. At a terminal they open the browser sign-in themselves; `--no-login` turns that off. diff --git a/dist/cli.mjs b/dist/cli.mjs index 456f081..aaa3c9a 100644 --- a/dist/cli.mjs +++ b/dist/cli.mjs @@ -903,7 +903,7 @@ const apps = [ { name: "contacts", title: "Fulldev Contacts", - description: "Look after the daily copy of your Google contacts from one Google account to another: its runs, look-alike questions, pausing and resuming." + description: "Manage the daily sync of your Google contacts across multiple accounts: runs, look-alike questions, pausing and resuming." }, { name: "send", diff --git a/package.json b/package.json index a81a059..9feda81 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fulldev", "version": "0.6.0", - "description": "Use Fulldev products, such as the CMS, Connect and Scan, from the command line through their MCP servers.", + "description": "Use Fulldev products from the command line through their shared MCP server and HTTP APIs.", "license": "MIT", "repository": { "type": "git", diff --git a/skills/fulldev/SKILL.md b/skills/fulldev/SKILL.md index fe93567..2a09e84 100644 --- a/skills/fulldev/SKILL.md +++ b/skills/fulldev/SKILL.md @@ -1,6 +1,6 @@ --- name: fulldev -description: Use the Fulldev CLI to work with Fulldev apps for the person. Use cms when they want to change their Fulldev website, such as text, pages, images, prices, opening hours, or contact details, or publish a change. Use connect when they want to use their business tools, such as Shopify, through Fulldev Connect. Use scan to scan websites, only for Fulldev administrators. Use sites when they want Fulldev to make a new website from a brief, only for Fulldev administrators for now. Use pages to publish a report or plan as a clear web page, only for Fulldev administrators for now. Use contacts when they want to check, pause or resume the daily copy of their Google contacts with Fulldev Contacts, or answer its look-alike questions. +description: Use the Fulldev CLI to work with Fulldev apps for the person. Use cms when they want to change their Fulldev website, such as text, pages, images, prices, opening hours, or contact details, or publish a change. Use connect when they want to use their business tools, such as Shopify, through Fulldev Connect. Use scan to scan websites, only for Fulldev administrators. Use sites when they want Fulldev to make a new website from a brief, only for Fulldev administrators for now. Use pages to publish a report or plan as a clear web page, only for Fulldev administrators for now. Use send for customer message scenarios and deliveries. Use work for tasks, projects and goals in their organization. Use contacts when they want to check, pause or resume the daily synchronization of their Google contacts across multiple accounts with Fulldev Contacts, or answer its look-alike questions. license: MIT compatibility: Needs Node.js 24 or later and network access to app.full.dev. --- @@ -9,14 +9,20 @@ compatibility: Needs Node.js 24 or later and network access to app.full.dev. The `fulldev` CLI talks to the Fulldev MCP server, which has the tools of every Fulldev app the person may use. Each app's tools start with its name, such as `cms_`. The tools, their schemas and the instructions come from the server, so they are always current. -| App | For | -| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| `cms` | Editing the person's website. Every change goes to a branch and a draft pull request, within the file permissions Fulldev grants the person. | -| `connect` | The person's business tools, such as Shopify, with the access their organization grants them. | -| `scan` | Scanning websites. Only for Fulldev administrators. | -| `sites` | Making a new website with Fulldev Sites from a brief and design options. Only for Fulldev administrators for now. | -| `pages` | Publishing a report or plan as a web page with Fulldev Pages. Only for Fulldev administrators for now. | -| `contacts` | The person's daily copy of Google contacts from one of their Google accounts to another: its runs, look-alike questions, pausing and resuming. | +| App | For | +| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `cms` | Editing the person's website. Every change goes to a branch and a draft pull request, within the file permissions Fulldev grants the person. | +| `connect` | The person's business tools, such as Shopify, with the access their organization grants them. | +| `scan` | Scanning websites. Only for Fulldev administrators. | +| `sites` | Making a new website with Fulldev Sites from a brief and design options. Only for Fulldev administrators for now. | +| `pages` | Publishing a report or plan as a web page with Fulldev Pages. Only for Fulldev administrators for now. | +| `contacts` | Daily synchronization of Google contacts across multiple accounts: runs, look-alike questions, pausing and resuming. | +| `send` | Customer message scenarios and deliveries. | +| `work` | Tasks, projects and goals in their organization. | + +## HTTP API + +Use `fulldev api --help` to discover the HTTP operations and `fulldev api . '' --org ` to call one. MCP shortcuts expose the curated tools; HTTP discovery exposes the app's supported API operations. Authentication and permissions are shared. ## Run diff --git a/src/apps.ts b/src/apps.ts index 933af20..ec35bb1 100644 --- a/src/apps.ts +++ b/src/apps.ts @@ -56,7 +56,7 @@ export const apps: Array = [ name: "contacts", title: "Fulldev Contacts", description: - "Look after the daily copy of your Google contacts from one Google account to another: its runs, look-alike questions, pausing and resuming.", + "Manage the daily sync of your Google contacts across multiple accounts: runs, look-alike questions, pausing and resuming.", }, { name: "send", From c24d62e3d905db26f4f877f51db059f41d34c10c Mon Sep 17 00:00:00 2001 From: Sil Date: Sun, 11 Oct 2026 23:15:24 +0200 Subject: [PATCH 2/4] Correct HTTP discovery and clarify Contacts import/export --- README.md | 2 +- dist/cli.mjs | 2 +- skills/fulldev/SKILL.md | 6 +++--- src/apps.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9735268..b6f5e5f 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Use Fulldev apps from a terminal or an AI agent. The CLI discovers the full HTTP | `scan` | Scanning websites with [Fulldev Scan](https://scan.full.dev), for administrators only | | `sites` | A finished website from [Fulldev Sites](https://sites.full.dev), for administrators only | | `pages` | Reports and plans as web pages with [Fulldev Pages](https://pages.full.dev), for administrators only | -| `contacts` | Daily synchronization of your Google contacts across multiple accounts. | +| `contacts` | Daily synchronization of your Google contacts across multiple accounts with Import and Export. | | `send` | Customer message scenarios and deliveries. | | `work` | Tasks, projects and goals in your organization. | diff --git a/dist/cli.mjs b/dist/cli.mjs index aaa3c9a..64ab4a8 100644 --- a/dist/cli.mjs +++ b/dist/cli.mjs @@ -903,7 +903,7 @@ const apps = [ { name: "contacts", title: "Fulldev Contacts", - description: "Manage the daily sync of your Google contacts across multiple accounts: runs, look-alike questions, pausing and resuming." + description: "Manage the daily sync of your Google contacts across multiple accounts with Import and Export: runs, look-alike questions, pausing and resuming." }, { name: "send", diff --git a/skills/fulldev/SKILL.md b/skills/fulldev/SKILL.md index 2a09e84..7959bf7 100644 --- a/skills/fulldev/SKILL.md +++ b/skills/fulldev/SKILL.md @@ -1,6 +1,6 @@ --- name: fulldev -description: Use the Fulldev CLI to work with Fulldev apps for the person. Use cms when they want to change their Fulldev website, such as text, pages, images, prices, opening hours, or contact details, or publish a change. Use connect when they want to use their business tools, such as Shopify, through Fulldev Connect. Use scan to scan websites, only for Fulldev administrators. Use sites when they want Fulldev to make a new website from a brief, only for Fulldev administrators for now. Use pages to publish a report or plan as a clear web page, only for Fulldev administrators for now. Use send for customer message scenarios and deliveries. Use work for tasks, projects and goals in their organization. Use contacts when they want to check, pause or resume the daily synchronization of their Google contacts across multiple accounts with Fulldev Contacts, or answer its look-alike questions. +description: Use the Fulldev CLI to work with Fulldev apps for the person. Use cms when they want to change their Fulldev website, such as text, pages, images, prices, opening hours, or contact details, or publish a change. Use connect when they want to use their business tools, such as Shopify, through Fulldev Connect. Use scan to scan websites, only for Fulldev administrators. Use sites when they want Fulldev to make a new website from a brief, only for Fulldev administrators for now. Use pages to publish a report or plan as a clear web page, only for Fulldev administrators for now. Use send for customer message scenarios and deliveries. Use work for tasks, projects and goals in their organization. Use contacts when they want to check, pause or resume the daily synchronization of their Google contacts across multiple accounts with Import and Export in Fulldev Contacts, or answer its look-alike questions. license: MIT compatibility: Needs Node.js 24 or later and network access to app.full.dev. --- @@ -16,13 +16,13 @@ The `fulldev` CLI talks to the Fulldev MCP server, which has the tools of every | `scan` | Scanning websites. Only for Fulldev administrators. | | `sites` | Making a new website with Fulldev Sites from a brief and design options. Only for Fulldev administrators for now. | | `pages` | Publishing a report or plan as a web page with Fulldev Pages. Only for Fulldev administrators for now. | -| `contacts` | Daily synchronization of Google contacts across multiple accounts: runs, look-alike questions, pausing and resuming. | +| `contacts` | Daily synchronization of Google contacts across multiple accounts with Import and Export: runs, look-alike questions, pausing and resuming. | | `send` | Customer message scenarios and deliveries. | | `work` | Tasks, projects and goals in their organization. | ## HTTP API -Use `fulldev api --help` to discover the HTTP operations and `fulldev api . '' --org ` to call one. MCP shortcuts expose the curated tools; HTTP discovery exposes the app's supported API operations. Authentication and permissions are shared. +Use `fulldev api ` to discover the HTTP operations and `fulldev api . '' --org ` to call one. MCP shortcuts expose the curated tools; HTTP discovery exposes the app's supported API operations. Authentication and permissions are shared. ## Run diff --git a/src/apps.ts b/src/apps.ts index ec35bb1..424c13c 100644 --- a/src/apps.ts +++ b/src/apps.ts @@ -56,7 +56,7 @@ export const apps: Array = [ name: "contacts", title: "Fulldev Contacts", description: - "Manage the daily sync of your Google contacts across multiple accounts: runs, look-alike questions, pausing and resuming.", + "Manage the daily sync of your Google contacts across multiple accounts with Import and Export: runs, look-alike questions, pausing and resuming.", }, { name: "send", From 636f0547b5159d9f286d846020bb76b3bb25560e Mon Sep 17 00:00:00 2001 From: Sil Date: Sun, 11 Oct 2026 23:16:27 +0200 Subject: [PATCH 3/4] Keep CLI product links and package metadata consistent --- README.md | 22 ++++++++++------------ package.json | 5 +++++ skills/fulldev/SKILL.md | 4 ++-- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index b6f5e5f..81d1d9b 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,16 @@ Use Fulldev apps from a terminal or an AI agent. The CLI discovers the full HTTP API from OpenAPI and is a thin client of the Fulldev MCP server at `https://app.full.dev/mcp`, which has the tools of every app your organization gives you: it reads the tools, their schemas, and the instructions from the server each time, so it stays in step with the apps. Each app's tools start with its name, such as `cms_`. -| App | For | -| ---------- | ---------------------------------------------------------------------------------------------------- | -| `cms` | Editing your website through the [Fulldev CMS](https://cms.full.dev) | -| `connect` | Your business tools, such as Shopify, through [Fulldev Connect](https://connect.full.dev) | -| `scan` | Scanning websites with [Fulldev Scan](https://scan.full.dev), for administrators only | -| `sites` | A finished website from [Fulldev Sites](https://sites.full.dev), for administrators only | -| `pages` | Reports and plans as web pages with [Fulldev Pages](https://pages.full.dev), for administrators only | -| `contacts` | Daily synchronization of your Google contacts across multiple accounts with Import and Export. | -| `send` | Customer message scenarios and deliveries. | -| `work` | Tasks, projects and goals in your organization. | +| App | For | +| ---------- | -------------------------------------------------------------------------------------------------------------------------- | +| `cms` | Editing your website through the [Fulldev CMS](https://cms.full.dev) | +| `connect` | Your business tools, such as Shopify, through [Fulldev Connect](https://connect.full.dev) | +| `scan` | Scanning websites with [Fulldev Scan](https://scan.full.dev), for administrators only | +| `sites` | A finished website from [Fulldev Sites](https://sites.full.dev), for administrators only | +| `pages` | Reports and plans as web pages with [Fulldev Pages](https://pages.full.dev), for administrators only | +| `contacts` | [Daily synchronization of your Google contacts across multiple accounts with Import and Export](https://contacts.full.dev) | +| `send` | [Customer message scenarios and deliveries](https://send.full.dev) | +| `work` | Tasks, projects and goals in your organization | ## Install @@ -153,5 +153,3 @@ fulldev contacts api accounts.list --file input.json --org my-company ``` Use an operation id from `fulldev api `. Input is a JSON object, a file with `--file`, or stdin with `-`. Reads send query parameters; changes send JSON. Existing OAuth credentials and organization grants cover both interfaces. The CLI refuses redirects and paths outside the selected app before sending credentials. Servers without OpenAPI continue to support the existing MCP commands. - -Send and Work are also available as `fulldev send` and `fulldev work`. diff --git a/package.json b/package.json index 9feda81..f9d03f8 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,12 @@ "fulldev", "cms", "connect", + "contacts", + "pages", "scan", + "send", + "sites", + "work", "mcp", "cli", "agent-skills" diff --git a/skills/fulldev/SKILL.md b/skills/fulldev/SKILL.md index 7959bf7..1090efd 100644 --- a/skills/fulldev/SKILL.md +++ b/skills/fulldev/SKILL.md @@ -1,13 +1,13 @@ --- name: fulldev -description: Use the Fulldev CLI to work with Fulldev apps for the person. Use cms when they want to change their Fulldev website, such as text, pages, images, prices, opening hours, or contact details, or publish a change. Use connect when they want to use their business tools, such as Shopify, through Fulldev Connect. Use scan to scan websites, only for Fulldev administrators. Use sites when they want Fulldev to make a new website from a brief, only for Fulldev administrators for now. Use pages to publish a report or plan as a clear web page, only for Fulldev administrators for now. Use send for customer message scenarios and deliveries. Use work for tasks, projects and goals in their organization. Use contacts when they want to check, pause or resume the daily synchronization of their Google contacts across multiple accounts with Import and Export in Fulldev Contacts, or answer its look-alike questions. +description: Use the Fulldev CLI to work with Fulldev apps for the person. Use cms when they want to change their Fulldev website, such as text, pages, images, prices, opening hours, or contact details, or publish a change. Use connect when they want to use their business tools, such as Shopify, through Fulldev Connect. Use scan to scan websites, only for Fulldev administrators. Use sites when they want Fulldev to make a new website from a brief, only for Fulldev administrators for now. Use pages to publish a report or plan as a clear web page, only for Fulldev administrators for now. Use send for customer message scenarios and deliveries. Use work for tasks, projects and goals in their organization. Use contacts when they want to check, start, pause or resume the daily synchronization of their Google contacts across multiple accounts with Import and Export in Fulldev Contacts, or answer its look-alike questions. license: MIT compatibility: Needs Node.js 24 or later and network access to app.full.dev. --- # Fulldev -The `fulldev` CLI talks to the Fulldev MCP server, which has the tools of every Fulldev app the person may use. Each app's tools start with its name, such as `cms_`. The tools, their schemas and the instructions come from the server, so they are always current. +The `fulldev` CLI uses the shared HTTP APIs and the Fulldev MCP server, which has the tools of every Fulldev app the person may use. Each app's tools start with its name, such as `cms_`. The tools, their schemas and the instructions come from the server, so they are always current. | App | For | | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------- | From d59c3187ecfd0e4c93185b6dfc8a64517b4f6c99 Mon Sep 17 00:00:00 2001 From: Sil Date: Sun, 11 Oct 2026 23:36:46 +0200 Subject: [PATCH 4/4] Document API discovery fallback to MCP commands --- skills/fulldev/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skills/fulldev/SKILL.md b/skills/fulldev/SKILL.md index 1090efd..c54b454 100644 --- a/skills/fulldev/SKILL.md +++ b/skills/fulldev/SKILL.md @@ -22,7 +22,7 @@ The `fulldev` CLI uses the shared HTTP APIs and the Fulldev MCP server, which ha ## HTTP API -Use `fulldev api ` to discover the HTTP operations and `fulldev api . '' --org ` to call one. MCP shortcuts expose the curated tools; HTTP discovery exposes the app's supported API operations. Authentication and permissions are shared. +Use `fulldev api ` to discover the HTTP operations and `fulldev api . '' --org ` to call one. Discovery requires the server's OpenAPI specification. If it reports `API_UNAVAILABLE`, use the app's MCP commands instead. MCP shortcuts expose the curated tools; HTTP discovery exposes the app's supported API operations. Authentication and permissions are shared. ## Run