@simpleapps-com/augur-skills 0.0.22 → 2026.3.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simpleapps-com/augur-skills",
3
- "version": "0.0.22",
3
+ "version": "2026.03.1",
4
4
  "description": "Install curated Claude Code skills",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  name: augur-packages
3
- description: Shared npm packages under @simpleapps-com/augur-*. Covers what each package provides, correct import patterns, key usage patterns, and what custom code they replace. Use when writing code for a site that consumes augur packages, during migration, or when deciding whether to write custom code.
3
+ description: Shared npm packages under @simpleapps-com/augur-*. Directs agents to check installed packages before writing custom code. This skill is a starting point always read the actual package code for current API surface.
4
+ allowed-tools:
5
+ - Read
6
+ - Glob
7
+ - Grep
4
8
  ---
5
9
 
6
10
  # Augur Packages
@@ -9,116 +13,40 @@ Shared npm packages for Next.js ecommerce sites and React Native apps. Published
9
13
 
10
14
  Before writing custom code, check whether a package export already solves the problem.
11
15
 
12
- ## augur-utils
16
+ ## Ground Truth: Read the Code
13
17
 
14
- Types, formatters, cache config. Zero framework dependencies. Works everywhere.
18
+ This skill is a **stub, not an archive**. New packages are created, existing packages gain features, APIs evolve. This skill MUST NOT be treated as the complete picture.
15
19
 
16
- ```typescript
17
- import { formatPrice, CACHE_CONFIG } from "@simpleapps-com/augur-utils";
18
- import type { TCartLine, TProductItem } from "@simpleapps-com/augur-utils";
19
- import { cn } from "@simpleapps-com/augur-utils/web"; // clsx + tailwind-merge
20
- ```
20
+ **Always read the installed packages in your project's `node_modules/`:**
21
21
 
22
- **Types** cover: cart, category, inventory, product, pricing, attributes, UOM, supplier, filter, customer, menu, order, shipping, search, tax, metadata. Each has a Valibot schema (e.g., `CartLineSchema`).
22
+ 1. Run `ls repo/node_modules/@simpleapps-com/` to discover ALL available packages there may be packages not listed here
23
+ 2. Read `repo/node_modules/@simpleapps-com/<package>/package.json` for the `exports` field to find available sub-paths
24
+ 3. Read files in `repo/node_modules/@simpleapps-com/<package>/dist/` to understand the current API surface
25
+ 4. Do NOT look at the source repo or other folders — only read what is installed in your project's `node_modules/`
23
26
 
24
- **Cache tiers** for React Query every hook maps to one of these:
27
+ When this skill and the installed code disagree, **the installed code wins**. This skill exists to point you in the right direction, not to replace reading the code.
25
28
 
26
- | Tier | Use Case |
27
- |------|----------|
28
- | `CACHE_CONFIG.STATIC` | Rarely changes (categories, item master) |
29
- | `CACHE_CONFIG.SEMI_STATIC` | Changes occasionally (pricing, search) |
30
- | `CACHE_CONFIG.DYNAMIC` | Changes frequently (stock levels) |
31
- | `CACHE_CONFIG.CART` | User-specific, short-lived |
32
- | `CACHE_CONFIG.REALTIME` | Always refetch |
29
+ ## Known Packages
33
30
 
34
- ## augur-web
31
+ These are starting hints — not a complete list. Always check `node_modules/@simpleapps-com/` for the full set.
35
32
 
36
- shadcn/Radix UI components. Per-component entry points — no barrel export, only what you import gets bundled.
33
+ | Package | Purpose |
34
+ |---------|---------|
35
+ | `augur-utils` | Types, formatters, cache config, Valibot schemas. Zero framework dependencies. |
36
+ | `augur-web` | shadcn/Radix UI components. Per-component entry points. |
37
+ | `augur-hooks` | React Query hooks and Zustand stores. Cross-platform. |
38
+ | `augur-server` | Server-side utilities for Next.js — Redis caching, auth factory, query client. |
39
+ | `augur-tailwind` | Tailwind v4 CSS theme. No config file needed. |
37
40
 
38
- ```typescript
39
- import { Button } from "@simpleapps-com/augur-web/button";
40
- import { Dialog, DialogContent, DialogTitle } from "@simpleapps-com/augur-web/dialog";
41
- import { Card, CardHeader, CardContent } from "@simpleapps-com/augur-web/card";
42
- ```
41
+ ## How to Check for Package Solutions
43
42
 
44
- **Component conventions:** CVA variants, `React.forwardRef`, `asChild` via Radix Slot, `cn()` for class merging, `"use client"` preserved in build, `displayName` set, icons use `react-icons/lu`.
43
+ When considering custom code:
45
44
 
46
- **Tailwind content detection:** Tailwind v4 auto-detects sources. If augur-web classes are missing, add `@source "../node_modules/@simpleapps-com/augur-web/dist";` to your CSS.
47
-
48
- ## augur-hooks
49
-
50
- React Query hooks and Zustand stores. Cross-platform (works in Next.js and React Native).
51
-
52
- ```typescript
53
- // Cross-platform
54
- import { useItemPrice, useCartStore, useDebounce, AugurHooksProvider } from "@simpleapps-com/augur-hooks";
55
- // Web only (DOM-dependent)
56
- import { useIsMobile, useIsHydrated } from "@simpleapps-com/augur-hooks/web";
57
- ```
58
-
59
- **Hook triple pattern** — every query hook exports three things:
60
- - `use<Name>(params, options?)` — client-side hook (reads SDK from provider context)
61
- - `get<Name>Options(api, params)` — server-side prefetch (accepts SDK directly)
62
- - `get<Name>Key(params)` — query key factory for cache invalidation
63
-
64
- ```typescript
65
- // Client
66
- const { data } = useItemPrice(itemId, customerId, 1);
67
-
68
- // Server prefetch (no React context)
69
- await queryClient.prefetchQuery(getItemPriceOptions(api, itemId, customerId));
70
-
71
- // Cache invalidation
72
- queryClient.invalidateQueries({ queryKey: getItemPriceKey(itemId, customerId) });
73
- ```
74
-
75
- **queryFn override** — web consumers can route through cached server actions:
76
-
77
- ```typescript
78
- const { data } = useItemPrice(itemId, customerId, 1, {
79
- queryFn: () => getCachedItemPrice(itemId, customerId, 1),
80
- });
81
- ```
82
-
83
- **Cart hooks** use dependency injection — the package provides React Query orchestration (optimistic updates, invalidation, loading states), consumers inject site-specific mutation callbacks.
84
-
85
- **Provider required:** All query hooks need `AugurHooksProvider` wrapping the app with an SDK instance.
86
-
87
- ## augur-server
88
-
89
- Server-side utilities for Next.js. Redis caching, auth factory, query client, environment detection.
90
-
91
- ```typescript
92
- import { cachedSdkCall, getServerQueryClient, isDev, sdkCall } from "@simpleapps-com/augur-server";
93
- import { createAuthConfig } from "@simpleapps-com/augur-server/auth";
94
- ```
95
-
96
- **cachedSdkCall** wraps SDK calls with Redis caching (SHA-256 key hashing, per-method stats, fire-and-forget writes, circuit breaker). Falls through without caching if ioredis is not installed.
97
-
98
- **createAuthConfig** — NextAuth 5 factory with dependency-injected callbacks:
99
-
100
- ```typescript
101
- export const { handlers, signIn, signOut, auth } = NextAuth(
102
- createAuthConfig({
103
- callbacks: { getUserProfile, cartHdrLookup }, // site-specific
104
- defaultCustomerId: process.env.NEXT_PUBLIC_DEFAULT_CUSTOMER_ID,
105
- }),
106
- );
107
- ```
108
-
109
- **Site action registry** — `createServerSite()` creates a process-global singleton. Self-heals via three-tier fallback (globalThis → module cache → auto-init from env vars).
110
-
111
- ## augur-tailwind
112
-
113
- Tailwind v4 CSS theme. No `tailwind.config.ts` needed.
114
-
115
- ```css
116
- @import "tailwindcss";
117
- @import "@simpleapps-com/augur-tailwind/base.css";
118
- @plugin "tailwindcss-animate";
119
- ```
120
-
121
- Override brand with CSS variables: `--primary`, `--secondary`, `--radius`, etc. All HSL components (no wrapper).
45
+ 1. Run `ls repo/node_modules/@simpleapps-com/` to see what's installed
46
+ 2. Read the package's `package.json` `exports` and its `dist/` files for available functions, hooks, and components
47
+ 3. Look for the hook triple pattern in augur-hooks: `use<Name>`, `get<Name>Options`, `get<Name>Key`
48
+ 4. Check augur-web for UI components before building custom ones
49
+ 5. Only use what is in your `node_modules/` do not reference the source repo
122
50
 
123
51
  ## What Stays Site-Specific
124
52
 
@@ -126,38 +54,26 @@ MUST NOT be replaced by packages:
126
54
  - **Server actions** (`"use server"`) — site-specific business logic
127
55
  - **Layout components** (Header, Footer, MainMenu) — brand-specific
128
56
  - **Domain components** (ProductItem, CartTable, CategoryCard) — compose UI primitives
129
- - **Auth callbacks** (`getUserProfile`, `cartHdrLookup`) — injected into `createAuthConfig`
57
+ - **Auth callbacks** — injected into package auth factory
130
58
  - **Cart mutation callbacks** — depend on site-specific server actions
131
59
  - **CSS variable overrides** — brand colors, fonts, radius
132
60
  - **next.config** — image domains, redirects, security headers
133
61
  - **Site integrations** — GA4, Maps, reCAPTCHA
134
62
 
135
- ## Anti-Pattern Catalog
136
-
137
- Custom code that duplicates package exports. When you see these in a site, replace with the package version.
138
-
139
- | Custom Code | Replace With |
140
- |-------------|-------------|
141
- | `cn()` in `@/lib/utils` | `cn` from `augur-utils/web` |
142
- | `formatPrice()` helpers | `formatPrice` from `augur-utils` |
143
- | Local types (`@/types/T*`) | Types from `augur-utils` |
144
- | Custom `CACHE_CONFIG` / inline TTLs | `CACHE_CONFIG` from `augur-utils` |
145
- | `@/components/ui/*` imports | `augur-web/<component>` |
146
- | Custom breadcrumb, quantity, pagination, form inputs | `augur-web/<component>` |
147
- | Custom `useDebounce` | `useDebounce` from `augur-hooks` |
148
- | Custom `useIsMobile` / `useIsHydrated` | From `augur-hooks/web` |
149
- | Custom price/cart hooks or stores | From `augur-hooks` |
150
- | Custom `cachedSdkCall` / SDK cache | `cachedSdkCall` from `augur-server` |
151
- | Custom `getServerQueryClient` | From `augur-server` |
152
- | Custom `isDev` / env detection | From `augur-server` |
153
- | Manual NextAuth Credentials config | `createAuthConfig` from `augur-server/auth` |
154
- | `lucide-react` / `@heroicons/react` | `react-icons/lu` |
155
- | `tailwind.config.ts` (v3) | `augur-tailwind/base.css` CSS-first |
156
-
157
- ## Platform Standard
63
+ ## Suggest Package Improvements
64
+
65
+ The augur packages exist to share common code across ALL Node projects. When you find yourself writing code that would benefit other sites, suggest it as a package addition:
66
+
67
+ - Create a GitHub issue on `simpleapps-com/augur-packages` describing the proposed addition
68
+ - Explain what it does, which sites would benefit, and why it belongs in the shared package
69
+ - Examples: a new utility function, a reusable hook, a common UI component, a shared type
70
+
71
+ The goal is to grow the packages over time so sites write less custom code.
72
+
73
+ ## Platform Standards
158
74
 
159
75
  - **Icons:** `react-icons/lu`
160
- - **Tailwind:** v4, CSS-first via `augur-tailwind/base.css`
76
+ - **Tailwind:** v4, CSS-first
161
77
  - **Validation:** Valibot (not Zod, not Yup)
162
- - **Auth:** NextAuth 5 via `createAuthConfig()`
78
+ - **Auth:** NextAuth 5 via package auth factory
163
79
  - **Reference site:** ampro-online
@@ -1,6 +1,12 @@
1
1
  ---
2
2
  name: basecamp
3
3
  description: Basecamp 2 integration via MCP. Covers MCP tool reference, URL parsing, authentication, Chrome fallback, attachments, and site-info documents. Use when reading or writing Basecamp data.
4
+ allowed-tools:
5
+ - Read
6
+ - Glob
7
+ - Grep
8
+ - mcp__plugin_simpleapps_basecamp__*
9
+ - mcp__claude-in-chrome__*
4
10
  ---
5
11
 
6
12
  # Basecamp 2
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: claude-code-docs
3
3
  description: Claude Code documentation reference and discovery. Use when looking up Claude Code features, configuration, plugins, skills, hooks, or troubleshooting.
4
+ allowed-tools:
5
+ - Read
6
+ - WebFetch
4
7
  ---
5
8
 
6
9
  # Claude Code Documentation
@@ -1,6 +1,13 @@
1
1
  ---
2
2
  name: fyxer
3
3
  description: Fyxer AI meeting recording integration. Covers extraction, local caching, posting to Basecamp, and Fyxer Index management. Use when processing Fyxer recordings or meeting transcripts.
4
+ allowed-tools:
5
+ - Read
6
+ - Write
7
+ - Glob
8
+ - Bash
9
+ - mcp__plugin_simpleapps_basecamp__*
10
+ - mcp__claude-in-chrome__*
4
11
  ---
5
12
 
6
13
  # Fyxer
@@ -1,7 +1,12 @@
1
1
  ---
2
2
  name: github
3
3
  description: GitHub conventions for SimpleApps. Covers org structure, git safety, issue creation, PR workflows, and gh CLI usage. Use when creating issues, PRs, or working with GitHub repos.
4
- allowed-tools: Skill(project-defaults)
4
+ allowed-tools:
5
+ - Skill(project-defaults)
6
+ - Read
7
+ - Glob
8
+ - Grep
9
+ - Bash
5
10
  ---
6
11
 
7
12
  First, use Skill("project-defaults") to load the project layout.
@@ -1,11 +1,32 @@
1
1
  ---
2
2
  name: project-defaults
3
3
  description: SimpleApps project conventions. Covers directory layout, symlink setup for .claude integration, permission defaults (deny cd, kill), and per-project baseline settings. Use when setting up projects, checking structure, or configuring Claude Code defaults.
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
4
7
  ---
5
8
 
6
9
  # Project Defaults
7
10
 
8
- ## Directory Layout
11
+ ## Base Directory Standard
12
+
13
+ All projects live under `~/projects/` in two groups:
14
+
15
+ ```
16
+ ~/projects/
17
+ ├── simpleapps/ # Internal repos (augur-*, shared infra)
18
+ │ ├── augur-skills/
19
+ │ ├── augur-packages/
20
+ │ └── augur/
21
+ └── clients/ # Client site repos
22
+ ├── ampro-online/
23
+ └── directsupplyinc/
24
+ ```
25
+
26
+ - Internal repos go in `~/projects/simpleapps/`
27
+ - Client site repos go in `~/projects/clients/`
28
+
29
+ ## Project Directory Layout
9
30
 
10
31
  Every project MUST use this layout:
11
32
 
@@ -57,6 +78,9 @@ Every project SHOULD configure `.claude/settings.local.json` with these deny rul
57
78
  ```json
58
79
  {
59
80
  "permissions": {
81
+ "allow": [
82
+ "Bash(pnpm:*)"
83
+ ],
60
84
  "deny": [
61
85
  "Bash(cd:*)",
62
86
  "Bash(cat:*)",
@@ -64,7 +88,12 @@ Every project SHOULD configure `.claude/settings.local.json` with these deny rul
64
88
  "Bash(grep:*)",
65
89
  "Bash(sleep:*)",
66
90
  "Bash(kill:*)",
67
- "Bash(pkill:*)"
91
+ "Bash(pkill:*)",
92
+ "Bash(find:*)",
93
+ "Bash(head:*)",
94
+ "Bash(tail:*)",
95
+ "Bash(awk:*)",
96
+ "Bash(rg:*)"
68
97
  ]
69
98
  }
70
99
  }
@@ -77,8 +106,29 @@ Why each is denied:
77
106
  - **`sed`** — Use the Edit tool instead.
78
107
  - **`grep`** — Use the Grep tool instead.
79
108
  - **`sleep`** — Unnecessary; use proper sequencing or background tasks.
109
+ - **`find`** — Use the Glob tool instead.
110
+ - **`head`/`tail`** — Use the Read tool with `offset` and `limit` parameters instead.
111
+ - **`awk`** — Use the Edit tool instead.
112
+ - **`rg`** — Use the Grep tool instead (it uses ripgrep internally).
80
113
  - **`kill`/`pkill`** — Use `TaskStop` to manage background processes. For internal tasks running in the background (dev servers, watchers, etc.), always use `TaskStop` instead of shell kill commands. `TaskStop` cleanly shuts down the task and updates Claude Code's internal tracking.
81
114
 
115
+ ## Bin Scripts (PATH)
116
+
117
+ The augur-skills plugin includes shell scripts (`cld`, `cldo`, `tmcld`, etc.) in `plugins/simpleapps/bin/`. When installed via the Claude Code marketplace, these live at:
118
+
119
+ ```
120
+ ~/.claude/plugins/marketplaces/augur-skills/plugins/simpleapps/bin/
121
+ ```
122
+
123
+ To make them available on PATH, add to `~/.zshrc`:
124
+
125
+ ```bash
126
+ # SimpleApps augur-skills bin scripts
127
+ export PATH="$PATH:$HOME/.claude/plugins/marketplaces/augur-skills/plugins/simpleapps/bin"
128
+ ```
129
+
130
+ This path is stable across plugin updates (marketplace updates are git pulls). The `project-init` command checks for this and adds it if missing.
131
+
82
132
  ## New Project Setup
83
133
 
84
134
  ```bash
@@ -1,6 +1,13 @@
1
1
  ---
2
2
  name: wiki
3
3
  description: Wiki conventions for SimpleApps projects. Covers token budget, writing for three audiences, page conventions, maintenance rules, and git workflow. Use when reading, writing, or auditing wiki content.
4
+ allowed-tools:
5
+ - Read
6
+ - Glob
7
+ - Grep
8
+ - Edit
9
+ - Write
10
+ - Bash
4
11
  ---
5
12
 
6
13
  # Wiki
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  name: workflow
3
3
  description: How we track and deliver work. Covers the Basecamp-to-GitHub flow for client requests, task tracking, cross-linking, and issue templates. Use when working on client tasks, creating issues, or checking assignments.
4
+ allowed-tools:
5
+ - Read
6
+ - Glob
7
+ - Grep
4
8
  ---
5
9
 
6
10
  # Workflow