← Back to Skills Marketplace
adeydas

Family Grocery List

by adeydas · GitHub ↗ · v1.0.0 · MIT-0
linuxdarwinwin32 ✓ Security Clean
252
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install family-grocery
Description
Shared family grocery list — multiple members add, remove, and view items organized by store. Admin-managed access, web-verified store addresses and item ava...
README (SKILL.md)

When to Use

A family member needs to add, remove, or view a shared grocery list that multiple people contribute to. The list is organized by store (with address). Focus: what to buy and where, not meal planning.

Architecture

Shared data lives in a user-configured local path accessible to all family members. See memory-template.md for file templates.

[shared-path]/
├── config.json    # Stores, primary store, fallback order, category→store map
├── users.md       # Family members and roles (admin/member)
├── list.md        # Current grocery list, grouped by store
└── history.md     # Log of all adds, removes, and merges

Skill reference files:

Topic File
Data file templates memory-template.md
List operations lists.md
Store management stores.md
User management user-management.md

Startup Sequence

Run this every invocation, in order:

Step 1 — Resolve user identity

  1. Ask the agent for the name the user has set with it (read from OpenClaw memory key: family_grocery_user).
  2. If no name is stored → deny: "No name found on this agent. Ask your admin to configure your agent with your name." Stop.

Step 2 — Resolve shared path

  1. Read shared path from OpenClaw memory (key: family_grocery_path).
  2. If not found → this is a first-time setup. Go to Admin Init Flow below.

Step 3 — Load config and verify access

  1. Read [shared-path]/config.json and [shared-path]/users.md.
  2. Look up the username (from Step 1) in users.md.
  3. If not found → deny: "[name] is not on the family list. Ask your admin to add you."
  4. If found → proceed. Note whether user is admin or member.

Admin Init Flow

Only runs when no shared path is in OpenClaw memory.

  1. Ask: "What shared path should I use for the family grocery data? (e.g. /Users/Shared/grocery)"
  2. Create directory: mkdir -p [path]
  3. Initialize files from memory-template.md: config.json, users.md, list.md, history.md
  4. Write the current user to users.md as admin
  5. Save path to OpenClaw memory as family_grocery_path
  6. Confirm: "Setup complete. You are admin. Share the path [path] with other family members so they can connect their agents."

Scope

This skill ONLY:

  • Manages the shared grocery list (add, remove, view)
  • Tracks stores and their addresses
  • Assigns items to stores (by user input, category, or primary store default)
  • Checks item availability and store addresses via web search (when available)
  • Manages family member access
  • Surfaces change history on request

This skill NEVER:

  • Makes purchases or places orders
  • Plans meals or suggests recipes
  • Reads or writes files outside [shared-path]
  • Accesses live store inventory systems
  • Pushes notifications when the list changes

Core Rules

1. Always reload config and users on every invocation

Never cache across sessions. Always re-read config.json and users.md at startup to pick up changes made by other family members.

2. Identity is resolved from OpenClaw memory

  • Never ask the user for their name — always read it from the agent's OpenClaw memory. If absent, deny access.
  • Never ask for the shared path if it's in memory.
  • Save both on first encounter so they're never asked again.
  • Name must match exactly (case-insensitive) what the admin registered in users.md.

3. Adding items — always resolve a store first

Resolution order: user input → category mapping → primary store.

See lists.md for full add flow including duplicate detection and web search.

4. Duplicate detection before every add

Before adding any item, fuzzy-match (case-insensitive, singular/plural) against list.md. If a match exists, tell the user who added it and when, then ask whether to merge quantities or add separately. Log merges in history.md.

5. Every write is attributed

Every entry in list.md and history.md must include the user name and ISO timestamp.

6. Web search is optional — always degrade gracefully

  • If web search is available: use it to verify store addresses and item availability.
  • If unavailable: proceed without it, note the limitation to the user once.
  • Never block an action waiting for web search.

7. Store headings always include address

When displaying the list, format each store heading as: 🏪 [Store Name] ([Full Address]) — [Store Hours]

If store hours are missing, resolve them before displaying: web search → confirm with user → save to config.json. If search unavailable, ask user. If user skips, omit hours from heading. This ensures migration from older configs that lack store hours.

Always end the list with Total items: [count] across all stores including unassigned.

8. Admin-only actions

Action Who can do it
Add a user Admin only
Set primary store Admin only
Set fallback order Admin only
Update category→store map Admin only
Add a new store Any user
Add/remove list items Any user
View list Any user
View history Any user

If a member attempts an admin-only action: "Only the admin can do that."


Common Traps

  • Reading from a stale cached config → always reload config.json and users.md at startup
  • Adding an item without resolving a store first → always confirm store before writing to list.md
  • Showing a list dump without store grouping → always group by store with address heading
  • Forgetting to attribute changes → every write must include user + timestamp
  • Blocking on web search when unavailable → degrade gracefully, proceed without it
  • Asking for user name or path every session → these must be in OpenClaw memory after first use
Usage Guidance
This skill appears coherent for a local, shared grocery list. Before installing: (1) Ensure the 'shared path' you give the skill is a safe, dedicated folder that all participants can access (avoid system directories like /etc or your home directory root). Consider creating a dedicated shared folder (e.g., /Users/Shared/grocery or a shared cloud-drive folder) and verify permissions. (2) Be aware that optional web searches (store address/hours/item availability) will send item/store names to whatever external search service the agent uses — if you want privacy, disable web search or avoid adding sensitive items. (3) Confirm that the admin you trust initializes the list and that each family member sets their per-agent name (family_grocery_user) correctly; mismatches will deny access. (4) If you need stronger safety, test the skill with a harmless test path first and review the created files (config.json, users.md, list.md, history.md).
Capability Analysis
Type: OpenClaw Skill Name: family-grocery Version: 1.0.0 The 'Family Grocery' skill is a well-structured tool for managing a shared grocery list across multiple users via a local shared directory. It implements basic role-based access control (Admin vs. Member), uses OpenClaw memory keys for persistence, and includes clear operational boundaries that restrict file access to the user-defined shared path. No evidence of data exfiltration, malicious execution, or harmful prompt injection was found in SKILL.md, lists.md, or the management files.
Capability Assessment
Purpose & Capability
Name and description match the instructions: the skill manages a shared grocery list, stores, users, and history. Requested capabilities (reading/writing files in a shared path, consulting per-agent OpenClaw memory keys, optional web search for addresses/availability) are appropriate for that purpose.
Instruction Scope
All runtime instructions are confined to a single user-provided shared path and agent memory keys. The skill will create directories and files under that path and will perform optional web searches to verify store addresses and availability. Two small issues: (1) a minor inconsistency — SKILL.md says 'Never ask the user for their name' while user-connect flow elsewhere describes asking for a username when an agent hasn't saved it yet; (2) web search queries will transmit item and store names to whatever web-search facility the agent uses, which could leak shopping data to that external service. Both are in-scope for the described feature but worth being aware of.
Install Mechanism
Instruction-only skill with no install steps and no code files. There is nothing written to disk by an installer; the only writes come from the skill's own file operations into the configured shared path at runtime.
Credentials
The skill requires no environment variables, no external credentials, and uses only OpenClaw per-agent memory keys (family_grocery_user and family_grocery_path). These are proportional to the functionality described.
Persistence & Privilege
The skill does persist the shared-path value into the agent's OpenClaw memory and creates/writes files under the chosen shared-path. always:false and normal autonomous invocation are used. Important user-facing risk: the admin-supplied shared path is trusted by the skill — if an admin or user points this to a sensitive location (or a symlink to one), the skill could create or modify files there. The skill's documented rule 'never read/write outside [shared-path]' relies on the shared-path being chosen safely.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install family-grocery
  3. After installation, invoke the skill by name or use /family-grocery
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Family Grocery 1.0.0 — Initial Release - Shared family grocery list for multiple members, organized by store with verified addresses. - Role-based access: admin manages users and store settings, members can add/remove/view items. - Web search integration for store addresses and item availability, with graceful fallback if unavailable. - All changes logged with user attribution and timestamps; history viewable on request. - Requires per-user identity and shared data path configured in OpenClaw memory before use.
Metadata
Slug family-grocery
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Family Grocery List?

Shared family grocery list — multiple members add, remove, and view items organized by store. Admin-managed access, web-verified store addresses and item ava... It is an AI Agent Skill for Claude Code / OpenClaw, with 252 downloads so far.

How do I install Family Grocery List?

Run "/install family-grocery" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Family Grocery List free?

Yes, Family Grocery List is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Family Grocery List support?

Family Grocery List is cross-platform and runs anywhere OpenClaw / Claude Code is available (linux, darwin, win32).

Who created Family Grocery List?

It is built and maintained by adeydas (@adeydas); the current version is v1.0.0.

💬 Comments