@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 +1 -1
- package/skills/simpleapps/augur-packages/SKILL.md +43 -127
- package/skills/simpleapps/basecamp/SKILL.md +6 -0
- package/skills/simpleapps/claude-code-docs/SKILL.md +3 -0
- package/skills/simpleapps/fyxer/SKILL.md +7 -0
- package/skills/simpleapps/github/SKILL.md +6 -1
- package/skills/simpleapps/project-defaults/SKILL.md +52 -2
- package/skills/simpleapps/wiki/SKILL.md +7 -0
- package/skills/simpleapps/workflow/SKILL.md +4 -0
package/package.json
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: augur-packages
|
|
3
|
-
description: Shared npm packages under @simpleapps-com/augur-*.
|
|
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
|
-
##
|
|
16
|
+
## Ground Truth: Read the Code
|
|
13
17
|
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
31
|
+
These are starting hints — not a complete list. Always check `node_modules/@simpleapps-com/` for the full set.
|
|
35
32
|
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
|
|
43
|
+
When considering custom code:
|
|
45
44
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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**
|
|
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
|
-
##
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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
|
|
76
|
+
- **Tailwind:** v4, CSS-first
|
|
161
77
|
- **Validation:** Valibot (not Zod, not Yup)
|
|
162
|
-
- **Auth:** NextAuth 5 via
|
|
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:
|
|
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
|
|
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
|