19 Commits

Author SHA1 Message Date
Chris Farhood 0bc6365a8e Add .mcp.json 2026-05-25 21:47:51 +00:00
coupon-carl-ceo[bot] a7eaa00323 Update company/images/org-chart.png (company structure update) 2026-04-21 18:30:57 +00:00
coupon-carl-ceo[bot] 5b1ff3ee35 Update company/images/company-logo.png (company structure update) 2026-04-21 18:30:55 +00:00
coupon-carl-ceo[bot] f1c5d4a7dc Update company/agents/stockboy-steve/AGENTS.md (company structure update) 2026-04-21 18:30:39 +00:00
coupon-carl-ceo[bot] 6e3ea1a3b4 Update company/agents/savannah-savings/AGENTS.md (company structure update) 2026-04-21 18:30:37 +00:00
coupon-carl-ceo[bot] f47c7cdc3a Update company/agents/markdown-martha/AGENTS.md (company structure update) 2026-04-21 18:30:34 +00:00
coupon-carl-ceo[bot] 63b2747995 Update company/agents/coupon-carl/AGENTS.md (company structure update) 2026-04-21 18:30:32 +00:00
coupon-carl-ceo[bot] a705117b05 Update company/agents/checkout-charlie/AGENTS.md (company structure update) 2026-04-21 18:30:30 +00:00
coupon-carl-ceo[bot] 99d8ef7821 Update company/agents/barcode-betty/AGENTS.md (company structure update) 2026-04-21 18:30:29 +00:00
coupon-carl-ceo[bot] 75e54432fa Update company/README.md (company structure update) 2026-04-21 18:30:27 +00:00
coupon-carl-ceo[bot] 44f00a1512 Update company/.paperclip.yaml (company structure update) 2026-04-21 18:30:26 +00:00
cartsnitch-cto[bot] 2b63b25e45 chore: sync company/ export snapshot with current configuration
chore: sync company/ export snapshot with current configuration
2026-04-15 21:00:20 +00:00
cartsnitch-cto[bot] a653f30a21 Merge pull request #7 from cartsnitch/docs/add-organization-documentation
Add documentation to .github organization repository
2026-04-15 10:27:59 +00:00
Markdown Martha f22d0aaf19 Fix profile README - replace non-existent repos with actual ones
Replace references to non-existent repositories (api, common, infra) with
actual CartSnitch repositories (.github, cartsnitch.github.io, skills).

Fixes CAR-563.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-15 02:08:17 +00:00
Barcode Betty 478df0b75d Add documentation to .github organization repository
- Add README.md explaining repo purpose and folder structure
- Add CONTRIBUTING.md with contribution guidelines for org-level changes
- Document Paperclip, agents, and skills configuration
- Add instructions for maintaining org settings
2026-04-14 14:22:40 +00:00
Chris Farhood af7de2a618 Merge pull request #6 from cartsnitch/enhance/github-org-profile
Enhance CartSnitch GitHub organization profile
2026-04-14 07:22:18 -04:00
Markdown Martha b4be9d402d Enhance CartSnitch GitHub organization profile README
- Add comprehensive 'About CartSnitch' section with mission statement
- Expand developer section with tech stack details
- Add infrastructure information (CloudNativePG, DragonflyDB, Better-Auth, Authentik)
- Add key repositories table with new 'skills' repo
- Include getting started resources for developers
- Improve messaging to reflect CartSnitch's consumer savings focus

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-14 11:20:44 +00:00
cartsnitch-cto[bot] 8b25f234aa Merge pull request #4 from cartsnitch/chore/sync-company-export
Merging company export sync — approved by CTO.
2026-04-06 12:58:54 +00:00
cartsnitch-engineer[bot] b7fe62b48c Rebrand organization profile for shopper-first messaging (#3)
Align CartSnitch org profile with shopper-first mission: benefit-driven headline, shopper-centric messaging, $50+/month value prop, fixed broken links.
2026-03-31 19:32:44 +00:00
14 changed files with 468 additions and 119 deletions
+11
View File
@@ -0,0 +1,11 @@
{
"mcpServers": {
"gitea": {
"type": "http",
"url": "https://git-mcp.farh.net/mcp",
"headers": {
"Authorization": "Bearer ${GITEA_TOKEN}"
}
}
}
}
+123
View File
@@ -0,0 +1,123 @@
# Contributing to CartSnitch Organization
This document outlines the process for making changes to the `.github` organization repository.
## When to Modify This Repository
Changes to this repository are appropriate for:
- Adding or updating organization profile content (`profile/README.md`)
- Adding new agents or modifying existing agent configurations
- Adding, removing, or updating shared skills
- Modifying Renovate configuration
- Updating company metadata
- Adding documentation about organization-wide practices
## When NOT to Modify This Repository
Do NOT use this repository for:
- Application code changes (use the appropriate application repository)
- Infrastructure changes (use `cartsnitch/infra`)
- Documentation for specific applications (add to the application's repo)
## Change Process
### 1. Create a Branch
Create a feature branch from `main`:
```bash
git checkout main
git pull origin main
git checkout -b feature/your-change-name
```
### 2. Make Your Changes
Make the necessary changes following the guidelines below.
#### Adding a New Agent
1. Create a new folder in `company/agents/<agent-name>/`
2. Add the agent configuration to `company/.paperclip.yaml`
3. Create at minimum:
- `AGENTS.md` - Agent instructions and role definition
- `MEMORY.md` - Initial memory/knowledge base (can start empty)
#### Adding a New Skill
1. Create or identify the appropriate `company/skills/<source>/` folder
2. Add the skill definition to `company/.paperclip.yaml`
3. Ensure skill files exist in the appropriate subdirectory
#### Updating Organization Profile
1. Edit `profile/README.md`
2. Ensure any new links are valid
3. Maintain consistent formatting
### 3. Commit Your Changes
Commit with a clear, descriptive message:
```bash
git add .
git commit -m "Add <agent-name> agent configuration"
```
### 4. Submit a Pull Request
Open a PR against `main`:
```bash
git push origin feature/your-change-name
gh pr create --base main --title "Add <agent-name> agent" --body "Description of changes"
```
### 5. Review and Merge
- PRs require approval from the CTO (Savannah Savings) or CEO (Coupon Carl)
- After approval, the PR can be merged
- Merges to `main` are automatically deployed to the organization
## Guidelines
### Agent Naming
- Use kebab-case for agent names (e.g., `barcode-betty`, `checkout-charlie`)
- Agent names should be descriptive of the role
### Agent Configuration
When adding or updating agents in `.paperclip.yaml`:
- Include a clear `capabilities` description
- Set appropriate `icon` for the UI
- Configure heartbeat settings appropriately for the role:
- Engineers/QA: 14400 seconds (4 hours)
- CEO: 28800 seconds (8 hours)
- UAT (Deal Dottie): 300 seconds (5 minutes) for rapid response
### Paperclip Configuration Schema
The `.paperclip.yaml` uses schema version `paperclip/v1`. When editing:
- Ensure valid YAML syntax
- Follow the existing structure and conventions
- Include all required fields for agent definitions
### Skill Documentation
When adding new skills:
- Ensure the skill folder contains a `SKILL.md` file
- Include a brief description of the skill's purpose
- Reference the external source if applicable
## Contacts
For questions about this repository or the change process:
- **CTO (Savannah Savings)**: Technical decisions, agent configuration
- **CEO (Coupon Carl)**: Organizational decisions, high-level direction
+116
View File
@@ -0,0 +1,116 @@
# CartSnitch Organization Repository
This is the [CartSnitch](https://github.com/cartsnitch) organization health repository. It contains organization-wide configuration, company metadata, agent definitions, and shared skills.
## Repository Purpose
- **Organization Profile**: Public-facing profile at `profile/README.md`
- **Company Metadata**: Internal company information at `company/`
- **Agent Definitions**: Paperclip agent configurations at `company/agents/`
- **Shared Skills**: Reusable skills at `company/skills/`
- **Dependency Management**: Renovate configuration at `renovate-config.json`
## Folder Structure
```
.github/
├── profile/
│ ├── README.md # Organization public profile (shown on github.com/cartsnitch)
│ └── cartsnitch-logo.png # Organization logo
├── company/
│ ├── README.md # Company overview and agent/skill inventory
│ ├── .paperclip.yaml # Paperclip configuration (agents, skills, company settings)
│ ├── agents/ # Per-agent configuration and instructions
│ │ ├── <agent-name>/
│ │ │ ├── AGENTS.md # Agent-specific instructions
│ │ │ ├── MEMORY.md # Agent memory/knowledge base
│ │ │ └── ... # Agent-specific files (life/, memory/, etc.)
│ └── skills/ # Shared skill definitions
│ ├── farhoodliquor/ # Third-party skills (playwright-ephemeral, shannon, github-app-token)
│ ├── fluxcd/ # Flux CD skills (gitops-knowledge, gitops-repo-audit)
│ ├── minimax-ai/ # MiniMax AI skills
│ └── paperclipai/ # Paperclip platform skills (paperclip, para-memory-files, etc.)
├── renovate-config.json # Renovate dependency update configuration
└── cartsnitch-logo.png # Organization logo (also in profile/)
```
## Key Components
### Organization Profile (`profile/`)
The `profile/README.md` is displayed on the CartSnitch GitHub organization page at https://github.com/cartsnitch. It includes:
- Organization branding and logo
- Links to key repositories
- Tech stack overview
- Getting started information for developers
### Paperclip Configuration (`company/.paperclip.yaml`)
This file defines:
- All agents in the CartSnitch organization (role, capabilities, adapter config, runtime settings)
- Company branding settings (brand color, logo)
- Agent sidebar ordering
### Agent Definitions (`company/agents/`)
Each agent has its own folder containing:
- `AGENTS.md` - Agent-specific instructions and role definition
- `MEMORY.md` - Agent's persistent knowledge base
- Additional agent-specific files (heartbeat configs, github settings, etc.)
### Skills (`company/skills/`)
Shared skills are organized by source:
- `farhoodliquor/` - Third-party skills from Farhood Liquor
- `fluxcd/` - Flux CD operational skills
- `minimax-ai/` - MiniMax AI capabilities
- `paperclipai/` - Paperclip platform skills
## Maintenance
### Updating Agent Configurations
Agent configurations are defined in `company/.paperclip.yaml`. To update an agent:
1. Edit the agent section in `.paperclip.yaml`
2. Update the agent's `AGENTS.md` file if role/capabilities changed
3. Submit changes via PR following the contribution guidelines
### Adding New Agents
New agents should be added to `company/.paperclip.yaml` with:
- Unique agent name
- Role (engineer, qa, ceo, cto, cmo)
- Icon selection
- Capabilities description
- Adapter configuration
- Runtime settings (heartbeat interval, max concurrent runs)
- Required environment inputs
### Managing Skills
Skills are imported from external sources:
- `paperclipai/*` skills are sourced from the Paperclip repository
- `fluxcd/*` skills are sourced from the Flux CD agent-skills repository
- `farhoodliquor/*` skills are sourced from Farhood Liquor skills repository
- `minimax-ai/*` skills are sourced from MiniMax AI skills repository
To add or update a skill, edit `company/.paperclip.yaml` and ensure the skill files exist in the appropriate `company/skills/` subdirectory.
### Renovate Configuration
The `renovate-config.json` defines dependency update behavior for all CartSnitch repositories. Updates are automated via Mend Renovate with:
- Weekly schedule (Monday before 7am)
- Auto-merge enabled for minor/patch updates
- Manual review required for major updates
- Grouped updates for related packages (ESLint, TypeScript, testing, Docker, Kubernetes)
## Related Repositories
| Repository | Purpose |
|------------|---------|
| [cartsnitch](https://github.com/cartsnitch/cartsnitch) | Main application and consumer interface |
| [api](https://github.com/cartsnitch/api) | Backend API and services |
| [common](https://github.com/cartsnitch/common) | Shared libraries and utilities |
| [infra](https://github.com/cartsnitch/infra) | Infrastructure and deployment |
| [receiptwitness](https://github.com/cartsnitch/receiptwitness) | Receipt parsing and processing |
+157 -71
View File
@@ -6,24 +6,19 @@ agents:
capabilities: "Principal engineer responsible for core product engineering. Designs and implements features that help consumers maximize grocery savings." capabilities: "Principal engineer responsible for core product engineering. Designs and implements features that help consumers maximize grocery savings."
adapter: adapter:
config: config:
dangerouslySkipPermissions: true graceSec: 15
model: "minimax/MiniMax-M2.7" serviceAccountName: "cartsnitch-developer"
timeoutSec: 3600 timeoutSec: 3600
type: "opencode_local" type: "claude_k8s"
runtime: runtime:
heartbeat: heartbeat:
enabled: true
intervalSec: 14400 intervalSec: 14400
maxConcurrentRuns: 1 maxConcurrentRuns: 1
inputs: inputs:
env: env:
AGENT_HOME:
description: "Optional default for AGENT_HOME on agent barcode-betty"
kind: "plain"
default: "/paperclip/instances/default/companies/52204f8e-f1cc-4f45-b5bf-455ccefee08d/agents/71f37521-8e62-4d27-bd9c-cfd52b5b3a07/instructions"
portability: "system_dependent"
requirement: "optional"
ANTHROPIC_AUTH_TOKEN: ANTHROPIC_AUTH_TOKEN:
description: "Optional default for ANTHROPIC_AUTH_TOKEN on agent barcode-betty" description: "Provide ANTHROPIC_AUTH_TOKEN for agent barcode-betty"
kind: "secret" kind: "secret"
default: "" default: ""
requirement: "optional" requirement: "optional"
@@ -32,11 +27,41 @@ agents:
kind: "plain" kind: "plain"
default: "https://api.minimax.io/anthropic" default: "https://api.minimax.io/anthropic"
requirement: "optional" requirement: "optional"
ANTHROPIC_DEFAULT_HAIKU_MODEL:
description: "Optional default for ANTHROPIC_DEFAULT_HAIKU_MODEL on agent barcode-betty"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
ANTHROPIC_DEFAULT_OPUS_MODEL:
description: "Optional default for ANTHROPIC_DEFAULT_OPUS_MODEL on agent barcode-betty"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
ANTHROPIC_DEFAULT_SONNET_MODEL:
description: "Optional default for ANTHROPIC_DEFAULT_SONNET_MODEL on agent barcode-betty"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
ANTHROPIC_MODEL: ANTHROPIC_MODEL:
description: "Optional default for ANTHROPIC_MODEL on agent barcode-betty" description: "Optional default for ANTHROPIC_MODEL on agent barcode-betty"
kind: "plain" kind: "plain"
default: "MiniMax-M2.7" default: "MiniMax-M2.7"
requirement: "optional" requirement: "optional"
ANTHROPIC_SMALL_FAST_MODEL:
description: "Optional default for ANTHROPIC_SMALL_FAST_MODEL on agent barcode-betty"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
API_TIMEOUT_MS:
description: "Optional default for API_TIMEOUT_MS on agent barcode-betty"
kind: "plain"
default: "3000000"
requirement: "optional"
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:
description: "Optional default for CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC on agent barcode-betty"
kind: "plain"
default: "1"
requirement: "optional"
GITHUB_APP_ID: GITHUB_APP_ID:
description: "Optional default for GITHUB_APP_ID on agent barcode-betty" description: "Optional default for GITHUB_APP_ID on agent barcode-betty"
kind: "plain" kind: "plain"
@@ -53,30 +78,30 @@ agents:
default: "/secrets/cartsnitch/cartsnitch-engineer.pem" default: "/secrets/cartsnitch/cartsnitch-engineer.pem"
portability: "system_dependent" portability: "system_dependent"
requirement: "optional" requirement: "optional"
HOME:
description: "Optional default for HOME on agent barcode-betty"
kind: "plain"
default: "$AGENT_HOME"
requirement: "optional"
checkout-charlie: checkout-charlie:
role: "qa" role: "qa"
icon: "bug" icon: "bug"
capabilities: "Senior QA engineer responsible for test strategy, quality assurance, and release validation. Ensures the product reliably delivers value to grocery shoppers." capabilities: "Senior QA engineer responsible for test strategy, quality assurance, and release validation. Ensures the product reliably delivers value to grocery shoppers."
adapter: adapter:
config: config:
dangerouslySkipPermissions: true graceSec: 15
model: "minimax/MiniMax-M2.7" serviceAccountName: "cartsnitch-developer"
timeoutSec: 3600 timeoutSec: 3600
type: "opencode_local" type: "claude_k8s"
runtime: runtime:
heartbeat: heartbeat:
enabled: true
intervalSec: 14400 intervalSec: 14400
maxConcurrentRuns: 1 maxConcurrentRuns: 1
inputs: inputs:
env: env:
AGENT_HOME:
description: "Optional default for AGENT_HOME on agent checkout-charlie"
kind: "plain"
default: "/paperclip/instances/default/companies/52204f8e-f1cc-4f45-b5bf-455ccefee08d/agents/b8b294e3-a12d-4bff-b321-6f020792b21c/instructions"
portability: "system_dependent"
requirement: "optional"
ANTHROPIC_AUTH_TOKEN: ANTHROPIC_AUTH_TOKEN:
description: "Optional default for ANTHROPIC_AUTH_TOKEN on agent checkout-charlie" description: "Provide ANTHROPIC_AUTH_TOKEN for agent checkout-charlie"
kind: "secret" kind: "secret"
default: "" default: ""
requirement: "optional" requirement: "optional"
@@ -85,11 +110,41 @@ agents:
kind: "plain" kind: "plain"
default: "https://api.minimax.io/anthropic" default: "https://api.minimax.io/anthropic"
requirement: "optional" requirement: "optional"
ANTHROPIC_DEFAULT_HAIKU_MODEL:
description: "Optional default for ANTHROPIC_DEFAULT_HAIKU_MODEL on agent checkout-charlie"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
ANTHROPIC_DEFAULT_OPUS_MODEL:
description: "Optional default for ANTHROPIC_DEFAULT_OPUS_MODEL on agent checkout-charlie"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
ANTHROPIC_DEFAULT_SONNET_MODEL:
description: "Optional default for ANTHROPIC_DEFAULT_SONNET_MODEL on agent checkout-charlie"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
ANTHROPIC_MODEL: ANTHROPIC_MODEL:
description: "Optional default for ANTHROPIC_MODEL on agent checkout-charlie" description: "Optional default for ANTHROPIC_MODEL on agent checkout-charlie"
kind: "plain" kind: "plain"
default: "MiniMax-M2.7" default: "MiniMax-M2.7"
requirement: "optional" requirement: "optional"
ANTHROPIC_SMALL_FAST_MODEL:
description: "Optional default for ANTHROPIC_SMALL_FAST_MODEL on agent checkout-charlie"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
API_TIMEOUT_MS:
description: "Optional default for API_TIMEOUT_MS on agent checkout-charlie"
kind: "plain"
default: "3000000"
requirement: "optional"
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:
description: "Optional default for CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC on agent checkout-charlie"
kind: "plain"
default: "1"
requirement: "optional"
GITHUB_APP_ID: GITHUB_APP_ID:
description: "Optional default for GITHUB_APP_ID on agent checkout-charlie" description: "Optional default for GITHUB_APP_ID on agent checkout-charlie"
kind: "plain" kind: "plain"
@@ -106,17 +161,21 @@ agents:
default: "/secrets/cartsnitch/cartsnitch-qa.pem" default: "/secrets/cartsnitch/cartsnitch-qa.pem"
portability: "system_dependent" portability: "system_dependent"
requirement: "optional" requirement: "optional"
HOME:
description: "Optional default for HOME on agent checkout-charlie"
kind: "plain"
default: "$AGENT_HOME"
requirement: "optional"
coupon-carl: coupon-carl:
role: "ceo" role: "ceo"
icon: "crown" icon: "crown"
adapter: adapter:
config: config:
dangerouslySkipPermissions: true graceSec: 15
effort: "high" model: "claude-sonnet-4-6"
maxTurnsPerRun: 300 serviceAccountName: "cartsnitch-developer"
model: "claude-opus-4-6"
timeoutSec: 3600 timeoutSec: 3600
type: "claude_local" type: "claude_k8s"
runtime: runtime:
heartbeat: heartbeat:
intervalSec: 28800 intervalSec: 28800
@@ -125,12 +184,6 @@ agents:
canCreateAgents: true canCreateAgents: true
inputs: inputs:
env: env:
AGENT_HOME:
description: "Optional default for AGENT_HOME on agent coupon-carl"
kind: "plain"
default: "/paperclip/instances/default/companies/52204f8e-f1cc-4f45-b5bf-455ccefee08d/agents/f2395b62-cb26-4595-b026-d506fde1c2c1/instructions"
portability: "system_dependent"
requirement: "optional"
GITHUB_APP_ID: GITHUB_APP_ID:
description: "Optional default for GITHUB_APP_ID on agent coupon-carl" description: "Optional default for GITHUB_APP_ID on agent coupon-carl"
kind: "plain" kind: "plain"
@@ -147,29 +200,30 @@ agents:
default: "/secrets/cartsnitch/cartsnitch-ceo.pem" default: "/secrets/cartsnitch/cartsnitch-ceo.pem"
portability: "system_dependent" portability: "system_dependent"
requirement: "optional" requirement: "optional"
HOME:
description: "Optional default for HOME on agent coupon-carl"
kind: "plain"
default: "$AGENT_HOME"
requirement: "optional"
deal-dottie: deal-dottie:
role: "qa" role: "qa"
icon: "microscope" icon: "microscope"
capabilities: "User Acceptance Tester — validates features from an end-user perspective using browser automation before anything reaches production" capabilities: "User Acceptance Tester — validates features from an end-user perspective using browser automation before anything reaches production"
adapter: adapter:
config: config:
model: "claude-sonnet-4-6" graceSec: 15
serviceAccountName: "cartsnitch-developer"
timeoutSec: 3600 timeoutSec: 3600
type: "claude_local" type: "claude_k8s"
runtime: runtime:
heartbeat: heartbeat:
intervalSec: 300 enabled: true
intervalSec: 14400
maxConcurrentRuns: 1 maxConcurrentRuns: 1
inputs: inputs:
env: env:
AGENT_HOME:
description: "Optional default for AGENT_HOME on agent deal-dottie"
kind: "plain"
default: "/paperclip/instances/default/companies/52204f8e-f1cc-4f45-b5bf-455ccefee08d/agents/ff0b8079-5823-4c4f-ad40-6a5147246594/instructions"
portability: "system_dependent"
requirement: "optional"
ANTHROPIC_AUTH_TOKEN: ANTHROPIC_AUTH_TOKEN:
description: "Optional default for ANTHROPIC_AUTH_TOKEN on agent deal-dottie" description: "Provide ANTHROPIC_AUTH_TOKEN for agent deal-dottie"
kind: "secret" kind: "secret"
default: "" default: ""
requirement: "optional" requirement: "optional"
@@ -229,29 +283,28 @@ agents:
default: "/secrets/cartsnitch/cartsnitch-qa.pem" default: "/secrets/cartsnitch/cartsnitch-qa.pem"
portability: "system_dependent" portability: "system_dependent"
requirement: "optional" requirement: "optional"
HOME:
description: "Optional default for HOME on agent deal-dottie"
kind: "plain"
default: "$AGENT_HOME"
requirement: "optional"
markdown-martha: markdown-martha:
role: "cmo" role: "cmo"
icon: "target" icon: "target"
capabilities: "Leads all marketing initiatives, brand, content, and customer research. Owns public messaging, market positioning, and product strategy for CartSnitch. First gate for all feature requests — reviews and accepts, backlogs, or denies incoming product requests before they reach engineering." capabilities: "Leads all marketing initiatives, brand, content, and customer research. Owns public messaging, market positioning, and product strategy for CartSnitch. First gate for all feature requests — reviews and accepts, backlogs, or denies incoming product requests before they reach engineering."
adapter: adapter:
config: config:
dangerouslySkipPermissions: true graceSec: 15
maxTurnsPerRun: 300
model: "claude-haiku-4-5-20251001" model: "claude-haiku-4-5-20251001"
serviceAccountName: "cartsnitch-developer"
timeoutSec: 3600 timeoutSec: 3600
type: "claude_local" type: "claude_k8s"
runtime: runtime:
heartbeat: heartbeat:
intervalSec: 14400 intervalSec: 14400
maxConcurrentRuns: 1 maxConcurrentRuns: 1
inputs: inputs:
env: env:
AGENT_HOME:
description: "Optional default for AGENT_HOME on agent markdown-martha"
kind: "plain"
default: "/paperclip/instances/default/companies/52204f8e-f1cc-4f45-b5bf-455ccefee08d/agents/9becc57b-c4a8-4420-9f73-c037ba26b410/instructions"
portability: "system_dependent"
requirement: "optional"
GITHUB_APP_ID: GITHUB_APP_ID:
description: "Optional default for GITHUB_APP_ID on agent markdown-martha" description: "Optional default for GITHUB_APP_ID on agent markdown-martha"
kind: "plain" kind: "plain"
@@ -268,13 +321,18 @@ agents:
default: "/secrets/cartsnitch/cartsnitch-engineer.pem" default: "/secrets/cartsnitch/cartsnitch-engineer.pem"
portability: "system_dependent" portability: "system_dependent"
requirement: "optional" requirement: "optional"
HOME:
description: "Optional default for HOME on agent markdown-martha"
kind: "plain"
default: "$AGENT_HOME"
requirement: "optional"
MINIMAX_API_HOST: MINIMAX_API_HOST:
description: "Optional default for MINIMAX_API_HOST on agent markdown-martha" description: "Optional default for MINIMAX_API_HOST on agent markdown-martha"
kind: "plain" kind: "plain"
default: "https://api.minimax.io" default: "https://api.minimax.io"
requirement: "optional" requirement: "optional"
MINIMAX_API_KEY: MINIMAX_API_KEY:
description: "Optional default for MINIMAX_API_KEY on agent markdown-martha" description: "Provide MINIMAX_API_KEY for agent markdown-martha"
kind: "secret" kind: "secret"
default: "" default: ""
requirement: "optional" requirement: "optional"
@@ -284,23 +342,17 @@ agents:
capabilities: "Owns technical roadmap, system architecture, engineering execution, and code quality. First engineer. Builds the product that helps consumers get the most value from grocery spending." capabilities: "Owns technical roadmap, system architecture, engineering execution, and code quality. First engineer. Builds the product that helps consumers get the most value from grocery spending."
adapter: adapter:
config: config:
dangerouslySkipPermissions: true graceSec: 15
maxTurnsPerRun: 300
model: "claude-opus-4-6" model: "claude-opus-4-6"
serviceAccountName: "cartsnitch-developer"
timeoutSec: 3600 timeoutSec: 3600
type: "claude_local" type: "claude_k8s"
runtime: runtime:
heartbeat: heartbeat:
intervalSec: 14400 intervalSec: 14400
maxConcurrentRuns: 1 maxConcurrentRuns: 1
inputs: inputs:
env: env:
AGENT_HOME:
description: "Optional default for AGENT_HOME on agent savannah-savings"
kind: "plain"
default: "/paperclip/instances/default/companies/52204f8e-f1cc-4f45-b5bf-455ccefee08d/agents/22731e25-f40f-48bd-a16e-28e1bbef5946/instructions"
portability: "system_dependent"
requirement: "optional"
GITHUB_APP_ID: GITHUB_APP_ID:
description: "Optional default for GITHUB_APP_ID on agent savannah-savings" description: "Optional default for GITHUB_APP_ID on agent savannah-savings"
kind: "plain" kind: "plain"
@@ -317,30 +369,29 @@ agents:
default: "/secrets/cartsnitch/cartsnitch-cto.pem" default: "/secrets/cartsnitch/cartsnitch-cto.pem"
portability: "system_dependent" portability: "system_dependent"
requirement: "optional" requirement: "optional"
HOME:
description: "Optional default for HOME on agent savannah-savings"
kind: "plain"
default: "$AGENT_HOME"
requirement: "optional"
stockboy-steve: stockboy-steve:
role: "engineer" role: "engineer"
icon: "shield" icon: "shield"
capabilities: "Security engineer responsible for security code review in the SDLC and scheduled penetration testing against Prod/Demo. Board-authorized for offensive security analysis of the CartSnitch production and demo environments." capabilities: "Security engineer responsible for security code review in the SDLC and scheduled penetration testing against Prod/Demo. Board-authorized for offensive security analysis of the CartSnitch production and demo environments."
adapter: adapter:
config: config:
dangerouslySkipPermissions: true graceSec: 15
model: "minimax/MiniMax-M2.7" serviceAccountName: "cartsnitch-developer"
timeoutSec: 3600 timeoutSec: 3600
type: "opencode_local" type: "claude_k8s"
runtime: runtime:
heartbeat: heartbeat:
intervalSec: 14400 intervalSec: 14400
maxConcurrentRuns: 1 maxConcurrentRuns: 1
inputs: inputs:
env: env:
AGENT_HOME:
description: "Optional default for AGENT_HOME on agent stockboy-steve"
kind: "plain"
default: "/paperclip/instances/default/companies/52204f8e-f1cc-4f45-b5bf-455ccefee08d/agents/01dfbf79-c93d-4224-a7d9-05b2779e425e/instructions"
portability: "system_dependent"
requirement: "optional"
ANTHROPIC_AUTH_TOKEN: ANTHROPIC_AUTH_TOKEN:
description: "Optional default for ANTHROPIC_AUTH_TOKEN on agent stockboy-steve" description: "Provide ANTHROPIC_AUTH_TOKEN for agent stockboy-steve"
kind: "secret" kind: "secret"
default: "" default: ""
requirement: "optional" requirement: "optional"
@@ -349,11 +400,41 @@ agents:
kind: "plain" kind: "plain"
default: "https://api.minimax.io/anthropic" default: "https://api.minimax.io/anthropic"
requirement: "optional" requirement: "optional"
ANTHROPIC_DEFAULT_HAIKU_MODEL:
description: "Optional default for ANTHROPIC_DEFAULT_HAIKU_MODEL on agent stockboy-steve"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
ANTHROPIC_DEFAULT_OPUS_MODEL:
description: "Optional default for ANTHROPIC_DEFAULT_OPUS_MODEL on agent stockboy-steve"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
ANTHROPIC_DEFAULT_SONNET_MODEL:
description: "Optional default for ANTHROPIC_DEFAULT_SONNET_MODEL on agent stockboy-steve"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
ANTHROPIC_MODEL: ANTHROPIC_MODEL:
description: "Optional default for ANTHROPIC_MODEL on agent stockboy-steve" description: "Optional default for ANTHROPIC_MODEL on agent stockboy-steve"
kind: "plain" kind: "plain"
default: "MiniMax-M2.7" default: "MiniMax-M2.7"
requirement: "optional" requirement: "optional"
ANTHROPIC_SMALL_FAST_MODEL:
description: "Optional default for ANTHROPIC_SMALL_FAST_MODEL on agent stockboy-steve"
kind: "plain"
default: "MiniMax-M2.7"
requirement: "optional"
API_TIMEOUT_MS:
description: "Optional default for API_TIMEOUT_MS on agent stockboy-steve"
kind: "plain"
default: "3000000"
requirement: "optional"
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:
description: "Optional default for CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC on agent stockboy-steve"
kind: "plain"
default: "1"
requirement: "optional"
GITHUB_APP_ID: GITHUB_APP_ID:
description: "Optional default for GITHUB_APP_ID on agent stockboy-steve" description: "Optional default for GITHUB_APP_ID on agent stockboy-steve"
kind: "plain" kind: "plain"
@@ -370,6 +451,11 @@ agents:
default: "/secrets/cartsnitch/cartsnitch-engineer.pem" default: "/secrets/cartsnitch/cartsnitch-engineer.pem"
portability: "system_dependent" portability: "system_dependent"
requirement: "optional" requirement: "optional"
HOME:
description: "Optional default for HOME on agent stockboy-steve"
kind: "plain"
default: "$AGENT_HOME"
requirement: "optional"
company: company:
brandColor: "#0061ff" brandColor: "#0061ff"
logoPath: "images/company-logo.png" logoPath: "images/company-logo.png"
@@ -381,4 +467,4 @@ sidebar:
- "barcode-betty" - "barcode-betty"
- "checkout-charlie" - "checkout-charlie"
- "deal-dottie" - "deal-dottie"
- "stockboy-steve" - "stockboy-steve"
+1 -1
View File
@@ -55,4 +55,4 @@ pnpm paperclipai company import this-github-url-or-folder
See [Paperclip](https://paperclip.ing) for more information. See [Paperclip](https://paperclip.ing) for more information.
--- ---
Exported from [Paperclip](https://paperclip.ing) on 2026-04-15 Exported from [Paperclip](https://paperclip.ing) on 2026-04-21
+1 -12
View File
@@ -2,17 +2,6 @@
name: "Barcode Betty" name: "Barcode Betty"
title: "Principal Engineer" title: "Principal Engineer"
reportsTo: "savannah-savings" reportsTo: "savannah-savings"
skills:
- "paperclipai/paperclip/paperclip"
- "paperclipai/paperclip/paperclip-create-agent"
- "paperclipai/paperclip/paperclip-create-plugin"
- "paperclipai/paperclip/para-memory-files"
- "better-auth/skills/better-auth-best-practices"
- "better-auth/skills/better-auth-security-best-practices"
- "better-auth/skills/create-auth-skill"
- "better-auth/skills/email-and-password-best-practices"
- "farhoodliquor/skills/github-app-token"
- "fluxcd/agent-skills/gitops-knowledge"
--- ---
# CartSnitch Engineer Agent # CartSnitch Engineer Agent
@@ -158,4 +147,4 @@ Invoke it whenever you need to remember, retrieve, or organize anything.
* Never cancel cross-team tasks — reassign to manager with a comment. * Never cancel cross-team tasks — reassign to manager with a comment.
* Above 80% budget, focus on critical tasks only. * Above 80% budget, focus on critical tasks only.
* **Never create subtasks.** If you think the work needs to be broken down, block the task and tell the CTO. Task decomposition is the CTO's job, not yours. * **Never create subtasks.** If you think the work needs to be broken down, block the task and tell the CTO. Task decomposition is the CTO's job, not yours.
* **Never make technology or architecture decisions.** If a decision must be made, block and escalate. * **Never make technology or architecture decisions.** If a decision must be made, block and escalate.
+3 -5
View File
@@ -7,12 +7,10 @@ skills:
- "paperclipai/paperclip/paperclip-create-agent" - "paperclipai/paperclip/paperclip-create-agent"
- "paperclipai/paperclip/paperclip-create-plugin" - "paperclipai/paperclip/paperclip-create-plugin"
- "paperclipai/paperclip/para-memory-files" - "paperclipai/paperclip/para-memory-files"
- "better-auth/skills/better-auth-best-practices"
- "better-auth/skills/email-and-password-best-practices"
- "farhoodliquor/skills/github-app-token" - "farhoodliquor/skills/github-app-token"
- "fluxcd/agent-skills/gitops-knowledge" - "better-auth/skills/better-auth-best-practices"
- "fluxcd/agent-skills/gitops-repo-audit"
- "better-auth/skills/better-auth-security-best-practices" - "better-auth/skills/better-auth-security-best-practices"
- "fluxcd/agent-skills/gitops-repo-audit"
--- ---
# CartSnitch QA Engineer Agent # CartSnitch QA Engineer Agent
@@ -195,4 +193,4 @@ You MUST use the `para-memory-files` skill for all memory operations: storing fa
* Above 80% budget, focus on critical tasks only. * Above 80% budget, focus on critical tasks only.
* **Never create new Paperclip issues.** If you discover a bug unrelated to the PR, document it in a comment and block the task — the CTO decides what to do with it. * **Never create new Paperclip issues.** If you discover a bug unrelated to the PR, document it in a comment and block the task — the CTO decides what to do with it.
* **Never decide which engineer to assign to on failure.** If the task does not specify, escalate to CTO. * **Never decide which engineer to assign to on failure.** If the task does not specify, escalate to CTO.
* **Never substitute code review for browser testing.** If you cannot browser-test, block the task. * **Never substitute code review for browser testing.** If you cannot browser-test, block the task.
+5 -1
View File
@@ -6,6 +6,10 @@ skills:
- "paperclipai/paperclip/paperclip-create-plugin" - "paperclipai/paperclip/paperclip-create-plugin"
- "paperclipai/paperclip/para-memory-files" - "paperclipai/paperclip/para-memory-files"
- "farhoodliquor/skills/github-app-token" - "farhoodliquor/skills/github-app-token"
- "better-auth/skills/better-auth-best-practices"
- "better-auth/skills/better-auth-security-best-practices"
- "fluxcd/agent-skills/gitops-repo-audit"
- "fluxcd/agent-skills/gitops-knowledge"
--- ---
# CartSnitch CEO Agent # CartSnitch CEO Agent
@@ -140,4 +144,4 @@ These files are essential. Read them.
* `HEARTBEAT.md` — execution and extraction checklist. Run every heartbeat. * `HEARTBEAT.md` — execution and extraction checklist. Run every heartbeat.
* `SOUL.md` — who you are and how you should act. * `SOUL.md` — who you are and how you should act.
* `GITHUB.md` — policy and access information for GitHub. * `GITHUB.md` — policy and access information for GitHub.
* `TOOLS.md` — tools you have access to. * `TOOLS.md` — tools you have access to.
+1 -2
View File
@@ -8,7 +8,6 @@ skills:
- "paperclipai/paperclip/paperclip-create-plugin" - "paperclipai/paperclip/paperclip-create-plugin"
- "paperclipai/paperclip/para-memory-files" - "paperclipai/paperclip/para-memory-files"
- "farhoodliquor/skills/github-app-token" - "farhoodliquor/skills/github-app-token"
- "minimax-ai/skills/minimax-multimodal-toolkit"
--- ---
# CartSnitch CMPO Agent # CartSnitch CMPO Agent
@@ -97,4 +96,4 @@ These files are essential. Read them.
* `HEARTBEAT.md` — execution and extraction checklist. Run every heartbeat. * `HEARTBEAT.md` — execution and extraction checklist. Run every heartbeat.
* `SOUL.md` — who you are and how you should act. * `SOUL.md` — who you are and how you should act.
* `GITHUB.md` — policy and access information for GitHub. * `GITHUB.md` — policy and access information for GitHub.
+4 -5
View File
@@ -8,11 +8,10 @@ skills:
- "paperclipai/paperclip/paperclip-create-plugin" - "paperclipai/paperclip/paperclip-create-plugin"
- "paperclipai/paperclip/para-memory-files" - "paperclipai/paperclip/para-memory-files"
- "farhoodliquor/skills/github-app-token" - "farhoodliquor/skills/github-app-token"
- "fluxcd/agent-skills/gitops-repo-audit"
- "fluxcd/agent-skills/gitops-knowledge"
- "better-auth/skills/better-auth-security-best-practices"
- "better-auth/skills/better-auth-best-practices" - "better-auth/skills/better-auth-best-practices"
- "better-auth/skills/email-and-password-best-practices" - "better-auth/skills/better-auth-security-best-practices"
- "fluxcd/agent-skills/gitops-knowledge"
- "fluxcd/agent-skills/gitops-repo-audit"
--- ---
# CartSnitch CTO Agent # CartSnitch CTO Agent
@@ -143,4 +142,4 @@ You have IC direct reports. The following are exclusively their domain:
* Use numbered lists and clear structure for complex topics * Use numbered lists and clear structure for complex topics
* Reference specific files, lines, and commits when discussing code * Reference specific files, lines, and commits when discussing code
* When disagreeing, state the trade-off explicitly: "X optimizes for A at the cost of B. I'd pick Y because B matters more here because..." * When disagreeing, state the trade-off explicitly: "X optimizes for A at the cost of B. I'd pick Y because B matters more here because..."
* Never say "it depends" without immediately following up with the factors it depends on * Never say "it depends" without immediately following up with the factors it depends on
+1 -2
View File
@@ -7,7 +7,6 @@ skills:
- "paperclipai/paperclip/paperclip-create-agent" - "paperclipai/paperclip/paperclip-create-agent"
- "paperclipai/paperclip/paperclip-create-plugin" - "paperclipai/paperclip/paperclip-create-plugin"
- "paperclipai/paperclip/para-memory-files" - "paperclipai/paperclip/para-memory-files"
- "better-auth/skills/better-auth-security-best-practices"
- "farhoodliquor/skills/github-app-token" - "farhoodliquor/skills/github-app-token"
--- ---
@@ -180,4 +179,4 @@ Invoke it whenever you need to remember, retrieve, or organize anything.
* Never look for unassigned work. * Never look for unassigned work.
* Above 80% budget, focus on critical tasks only. * Above 80% budget, focus on critical tasks only.
* **Never commit code or open PRs.** Your role is review and testing only. * **Never commit code or open PRs.** Your role is review and testing only.
* **Report vulnerabilities in Paperclip only. Never embed exploit payloads or raw credentials in GitHub.** * **Report vulnerabilities in Paperclip only. Never embed exploit payloads or raw credentials in GitHub.**
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

+45 -20
View File
@@ -11,39 +11,64 @@
</div> </div>
<h3 align="center">Your vigilant shopping companion.</h3> <h3 align="center">Save money on every grocery trip.</h3>
<p align="center"> <p align="center">
<a href="#">Documentation</a> <strong>CartSnitch finds deals you'd miss. Never overpay for groceries again.</strong>
</p>
<p align="center">
We empower consumers to get the most value from what they spend at the grocery store.
</p>
<p align="center">
<a href="https://cartsnitch.farh.net">Get Started</a>
· ·
<a href="https://github.com/cartsnitch/.github/issues">Report an Issue</a> <a href="https://cartsnitch.farh.net/docs">Help & Guides</a>
· ·
<a href="#">Contributing</a> <a href="https://github.com/cartsnitch/.github/issues">Feedback</a>
</p> </p>
--- ---
## Overview ## About CartSnitch
CartSnitch is a modern, TypeScript-powered tool for monitoring and tracking shopping carts, price changes, and availability across multiple retailers. CartSnitch is a real-time grocery savings platform that monitors prices and deals across your favorite grocery stores. Our mission is to empower every shopper to save money without sacrificing convenience.
## Tech Stack Save $50+ per month with deals you actually use. CartSnitch integrates with your shopping habits to surface relevant discounts, coupons, and price drops before you check out.
| Category | Technologies | ## How It Works
|----------|-------------|
| Language | TypeScript |
| Runtime | Node.js |
| Testing | Vitest, Playwright |
| Infrastructure | Docker, Kubernetes |
## Our Projects CartSnitch monitors prices and deals across your favorite grocery stores in real time. Savings that matter, when they matter.
| Project | Description | ### For Shoppers
|---------|-------------| - **Real-time deal alerts** — Never miss a sale on items you buy
| [cartsnitch](https://github.com/cartsnitch/cartsnitch) | Main application | - **Smart coupon matching** — One tap to find coupons for your cart
| [api](https://github.com/cartsnitch/api) | Backend API | - **Grocery tracking** — Monitor prices and plan your shopping
| [agents](https://github.com/cartsnitch/agents) | Agent services |
| [receiptwitness](https://github.com/cartsnitch/receiptwitness) | Receipt validation | ### For Developers
CartSnitch is built on modern, scalable technology and welcomes community contributions.
#### Key Repositories
| Repository | Purpose |
|------------|---------|
| [cartsnitch](https://github.com/cartsnitch/cartsnitch) | Main application and consumer interface |
| [.github](https://github.com/cartsnitch/.github) | Organization health files and CI/CD workflows |
| [cartsnitch.github.io](https://github.com/cartsnitch/cartsnitch.github.io) | Public website and documentation |
| [skills](https://github.com/cartsnitch/skills) | Paperclip agent skills and integrations |
#### Tech Stack
- **Backend**: Modern cloud-native architecture with CloudNativePG (Postgres)
- **Cache**: DragonflyDB for high-performance caching
- **Auth**: Better-Auth + OAuth2 with Authentik OIDC provider
- **Secrets**: Bitnami Sealed Secrets for secure credential management
- **Infrastructure**: Kubernetes-based deployments
#### Getting Started
- 📖 [Developer Documentation](https://cartsnitch.farh.net/docs)
- 🤝 [Contributing Guidelines](https://github.com/cartsnitch/.github/blob/main/CONTRIBUTING.md)
- 💬 [Community Discussions](https://github.com/orgs/cartsnitch/discussions)
--- ---