@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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
3
  "name": "fullwell",
4
- "version": "1.1.1",
4
+ "version": "1.1.2",
5
5
  "description": "Keep an evidence-backed family food journal with Claude.",
6
6
  "author": {
7
7
  "name": "Fullwell"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fullwell",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "Keep an evidence-backed family food journal with Codex.",
5
5
  "homepage": "https://fullwell.souschefstudio.com/install",
6
6
  "license": "UNLICENSED",
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. The shared skills ask about grocery sources first and recipe sources second, skip a declined section without showing a setup menu, and resume per-user progress through the hosted MCP service. A section is complete only when its canonical household report exists.
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
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema_version": 1,
3
- "release": "1.1.1",
3
+ "release": "1.1.2",
4
4
  "mcp_url": "https://fullwell.souschefstudio.com/mcp",
5
5
  "install_page": "https://fullwell.souschefstudio.com/install",
6
6
  "platforms": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fullwell/fullwell",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "private": false,
5
5
  "description": "Shared Codex and Claude client for Fullwell",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: audit-grocery-purchases
3
- description: Audit grocery purchase histories for snacks and drinks, update pantry profiles, compare stores, or recalculate evidence-backed recurrence reports.
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 which stores to inspect when the profile is absent, then ask which installed browser the user authorizes for background access.
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: Start or resume Fullwell's conversational first run, set up or migrate a household food journal, authenticate, manage family access, or export data.
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
- When the user greets Fullwell, asks to set it up, or selects the setup starter, begin the questions below. Do not ask what they want to set up and do not present snacks-versus-recipes choices.
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 which grocery stores the user orders from. Use the grocery-audit skill for the remaining source authorization and audit. 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 asking where the user saves, finds, or discusses recipes. Use the recipe-history skill for source scope, meaning, authorization, and collection.
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: Track recipe discovery, Saved, Cooked, and Liked evidence, cooking dates, preparation changes, source scope, and recipe images.
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 which websites, bookmark services, notes, communications, and other sources are authorized. For each site, clarify the whole discoverable site or exact subsection and what presence means.
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.