@fullwell/fullwell 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/CHANGELOG.md +5 -0
- package/README.md +1 -1
- package/install-metadata.json +1 -1
- package/package.json +1 -1
- package/skills/audit-grocery-purchases/SKILL.md +2 -2
- package/skills/manage-household-food-journal/SKILL.md +5 -5
- package/skills/track-recipe-history/SKILL.md +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 1.1.2 - 2026-07-21
|
|
6
|
+
|
|
7
|
+
- Route a bare `@Fullwell hi` through unresolved onboarding before general help, starting snacks and then recipes with only the missing source, authorization, and preference questions each audit needs.
|
|
8
|
+
- Add an exact bare-greeting regression eval and forbid generic greetings while onboarding remains open.
|
|
9
|
+
|
|
5
10
|
## 1.1.1 - 2026-07-21
|
|
6
11
|
|
|
7
12
|
- Renamed the public Codex and Claude plugin selectors to `fullwell@fullwell` while retaining the `@fullwell/fullwell` npm package and `household-food-journal` MCP service identifier.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
One shared skill package connects Codex and Claude to the hosted Household Food Journal MCP service and defines the local-only grocery-restocking workflow. The service performs authentication and all canonical journal mutations; this package contains no credentials, household data, Git client, or synchronization state.
|
|
4
4
|
|
|
5
|
-
After installation, start with `@Fullwell hi` in Codex or `Set up Fullwell.` in Claude.
|
|
5
|
+
After installation, start with `@Fullwell hi` in Codex or `Set up Fullwell.` in Claude. A bare greeting checks onboarding state before replying: while work remains, the shared skills begin snacks, ask only for missing source authorization and preferences, then advance to recipes without a setup menu or generic help question. A declined section is skipped and per-user progress resumes through the hosted MCP service. A section is complete only when its canonical household report exists.
|
|
6
6
|
|
|
7
7
|
The restocking skill reads only a private revisioned snapshot prepared by `@fullwell/local-runner`. Product selection and retailer cart control stay on the user's Mac; the WhatsApp gateway relays encrypted user-facing text and transport state only.
|
|
8
8
|
|
package/install-metadata.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: audit-grocery-purchases
|
|
3
|
-
description:
|
|
3
|
+
description: Start or continue Fullwell snack onboarding and audit grocery purchase histories for snacks and drinks, including store scope, browser authorization, household preferences, pantry profiles, comparisons, and evidence-backed recurrence reports.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Audit Grocery Purchases
|
|
@@ -8,7 +8,7 @@ description: Audit grocery purchase histories for snacks and drinks, update pant
|
|
|
8
8
|
Follow [the MCP contract](../../references/mcp-tool-contract.md), [semantic rules](../../references/semantic-food-rules.md), and [privacy rules](../../references/privacy-and-sharing.md).
|
|
9
9
|
|
|
10
10
|
1. Call `hfj_get_context` and choose an editable household. If snack onboarding is `not_started`, call `hfj_update_onboarding` with `transition.action: "start"` and `expected_revision: 0`; if it is `skipped`, resume it with the returned revision. Do not mutate a `complete` section.
|
|
11
|
-
2. Call `hfj_get_profile` for `snacks`. Ask
|
|
11
|
+
2. Call `hfj_get_profile` for `snacks`. Reuse confirmed store scope and household preferences. Ask only for missing or changed stores, snack/drink preferences or exclusions that affect interpretation, and which installed browser the user authorizes for background access.
|
|
12
12
|
3. Before collecting any store, verify the user is already signed in to every authorized store. Never request credentials or one-time codes.
|
|
13
13
|
4. Use a trailing 12-month window and recurrence threshold of two distinct orders unless the user requests different values. Inspect every qualifying order, expand every item list, and preserve exact store, order, date, and line-item evidence privately.
|
|
14
14
|
5. Call `hfj_append_evidence` in batches of at most 100 with the current HEAD and a stable idempotency key.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: manage-household-food-journal
|
|
3
|
-
description:
|
|
3
|
+
description: Handle every Fullwell greeting or setup request, including a bare @Fullwell hi, by checking unresolved snack-then-recipe onboarding before general help; also authenticate, select or migrate a household, manage family access, profiles, and exports.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Manage Household Food Journal
|
|
@@ -9,7 +9,7 @@ Use the hosted MCP service for all reads and writes. Follow [the MCP contract](.
|
|
|
9
9
|
|
|
10
10
|
## Start or resume
|
|
11
11
|
|
|
12
|
-
1. Call `hfj_get_context
|
|
12
|
+
1. Call `hfj_get_context` before replying to any Fullwell greeting or setup request.
|
|
13
13
|
2. If authentication is required, tell the user to finish in the service browser window. Never request a token.
|
|
14
14
|
3. Resume a pending family invitation or collection import before ordinary setup.
|
|
15
15
|
4. If there is no pending intent and no household, ask for a short household name and call `hfj_create_household` with an idempotency key.
|
|
@@ -18,13 +18,13 @@ Use the hosted MCP service for all reads and writes. Follow [the MCP contract](.
|
|
|
18
18
|
|
|
19
19
|
## Guided first run
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Treat every greeting addressed to Fullwell, including a bare `@Fullwell hi`, as a request to start or resume guided first run. If `hfj_get_context` reports any `not_started`, `in_progress`, or `skipped` section, continue the flow in the same response after the required tool calls. Do not return a generic greeting, list capabilities, ask what is on the user's mind, ask what they want to set up, or present snacks-versus-recipes choices while onboarding work remains. General help is appropriate only when both sections are `complete`.
|
|
22
22
|
|
|
23
23
|
1. Use the `onboarding` object from `hfj_get_context`. Handle `snacks` first, then `recipes`.
|
|
24
24
|
2. For a `not_started` section, call `hfj_update_onboarding` with `transition: { "action": "start" }` and `expected_revision: 0` before asking its first question. For `in_progress`, continue without another transition. For `complete`, advance immediately.
|
|
25
25
|
3. Leave a `skipped` section alone while another section is `not_started` or `in_progress`. On a later greeting or setup request, when no such section remains, call `hfj_update_onboarding` with `transition: { "action": "resume" }` and the returned revision before revisiting the earliest skipped section. Never revisit a section during the same guided run in which the user skipped it.
|
|
26
|
-
4. Start snacks by asking
|
|
27
|
-
5. After snacks completes or is skipped, start recipes by asking where the user saves, finds, or discusses recipes
|
|
26
|
+
4. Start snacks by calling `hfj_get_profile` for `snacks`. Reuse confirmed stores and preferences without re-asking. Ask the first missing question about grocery stores the user orders from; after sources are named, ask only for the browser authorization and preference or exclusion details needed to interpret the audit. Use the grocery-audit skill for collection. Unless the user asks to change them, use a trailing 12-month window and a recurrence threshold of two distinct orders instead of asking extra setup questions.
|
|
27
|
+
5. After snacks completes or is skipped, start recipes by calling `hfj_get_profile` for `recipes`. Reuse confirmed sources and preferences without re-asking. Ask where the user saves, finds, or discusses recipes, then ask only the source-scope, meaning, authorization, and preference questions needed for collection. Use the recipe-history skill for the audit.
|
|
28
28
|
6. If the user naturally declines the current section, call `hfj_update_onboarding` with `transition.action: "skip"`, its current revision, and exactly one reason: `no_sources` when they have no applicable sources, `not_now` when they defer or say never mind, or `user_declined` for another refusal. Then advance to the next section without asking permission to continue. After recipes is skipped, end the current guided run precisely instead of looping back to snacks.
|
|
29
29
|
7. Interpret the user's meaning conversationally. Do not implement or imitate keyword matching. If the user explicitly asks to stop, cancel, or quit the whole setup, end it without starting or skipping the next section; an `in_progress` section remains resumable.
|
|
30
30
|
8. Never send `complete` to `hfj_update_onboarding`. A section becomes complete only when its canonical report exists, which the next `hfj_get_context` reports.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: track-recipe-history
|
|
3
|
-
description:
|
|
3
|
+
description: Start or continue Fullwell recipe onboarding and track recipe discovery, source scope and meaning, household preferences, Saved, Cooked, and Liked evidence, cooking dates, preparation changes, and recipe images.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Track Recipe History
|
|
@@ -8,7 +8,7 @@ description: Track recipe discovery, Saved, Cooked, and Liked evidence, cooking
|
|
|
8
8
|
Follow [the MCP contract](../../references/mcp-tool-contract.md), [semantic rules](../../references/semantic-food-rules.md), and [privacy rules](../../references/privacy-and-sharing.md).
|
|
9
9
|
|
|
10
10
|
1. Call `hfj_get_context` and choose an editable household. If recipe onboarding is `not_started`, call `hfj_update_onboarding` with `transition.action: "start"` and `expected_revision: 0`; if it is `skipped`, resume it with the returned revision. Do not mutate a `complete` section.
|
|
11
|
-
2. Call `hfj_get_profile` for `recipes`. Ask
|
|
11
|
+
2. Call `hfj_get_profile` for `recipes`. Reuse confirmed source scope, meaning, and household preferences. Ask only for missing or changed websites, bookmark services, notes, communications, preferences, and other authorized sources. For each site, clarify the whole discoverable site or exact subsection and what presence means.
|
|
12
12
|
3. Verify access and sign-in before collection without requesting credentials. Inspect every authorized occurrence, including duplicates and conflicts.
|
|
13
13
|
4. Append discovery, cooking, confirmation, or correction evidence with `hfj_append_evidence` before conclusions. Preserve canonical URL, audited page, displayed image URL, author/publisher, scope meaning, dates, limitations, and provenance.
|
|
14
14
|
5. Use `hfj_search_items` and `hfj_get_item` to find current candidates. Decide recipe identity in reasoning. Keep Saved, Cooked, and Liked independent.
|