# Mycopunk Swag - AI Assistant Context

## Project Overview

This repository manages mycopunk merchandise (stickers, shirts, patches) with automated print-on-demand fulfillment. The workflow is CLI-driven, using open-source tools (Inkscape, GIMP, ImageMagick) for design work and API integrations with Printful and Prodigi for fulfillment.

## Key Concepts

### Design Structure
Each design lives in its own directory under `designs/{category}/{slug}/`:
- `{slug}.svg` - Source vector file
- `metadata.yaml` - Product configuration and metadata
- `exports/` - Generated output files (don't edit manually)

### POD Providers
- **Printful** - Primary for apparel (t-shirts, hoodies)
- **Prodigi** - Primary for stickers and art prints

### CLI Tool
Located in `cli/`, installed with `pip install -e .`
Main entry point: `mycopunk` command

## File Locations

| What | Where |
|------|-------|
| Design sources | `designs/{stickers,shirts,misc}/` |
| Product templates | `templates/{printful,prodigi}/` |
| CLI source | `cli/mycopunk/` |
| Configuration | `config/` |
| API credentials | `config/.env` (gitignored) |

## Common Tasks

### Creating a New Design
```bash
mycopunk design new stickers/design-name --template=sticker-3x3
# Then edit designs/stickers/design-name/design-name.svg in Inkscape
```

### Exporting Designs
```bash
# Export single design
mycopunk design export stickers/design-name

# Batch export all stickers
mycopunk batch export --type=sticker
```

### POD Operations
```bash
# Always test in sandbox first
mycopunk product create stickers/design-name --provider=prodigi --sandbox

# Push to production
mycopunk product push stickers/design-name --provider=prodigi
```

## Design Requirements Quick Reference

| Product | Dimensions | Pixels @ 300 DPI |
|---------|-----------|------------------|
| T-shirt front | 12" × 16" | 3600 × 4800 |
| Sticker 3×3" | 3" × 3" | 900 × 900 |
| Sticker 6×6" | 6" × 6" | 1800 × 1800 |
| Art print 8×10 | 8" × 10" | 2400 × 3000 |

## Metadata.yaml Structure

```yaml
name: "Design Name"
slug: design-name
description: "What this design represents"
tags: [mycelium, punk, nature]
created: 2025-01-24
author: jeff

source:
  file: design-name.svg
  format: svg
  dimensions: { width: 4800, height: 4800 }
  dpi: 300
  color_profile: sRGB

products:
  - type: sticker
    provider: prodigi
    sku: STICKER-VINYL-KISS-3X3
    variants: [matte, gloss]
    retail_price: 3.50

status: active  # draft, active, retired
```

## API Configuration

Credentials stored in `config/.env` (never commit):
```bash
PRINTFUL_API_TOKEN=xxx
PRODIGI_API_KEY_SANDBOX=xxx
PRODIGI_API_KEY_LIVE=xxx
```

## Development Workflow

1. Work on `dev` branch for new features
2. Test CLI changes with `pip install -e .`
3. Run `mycopunk design validate` before committing
4. Push to Gitea, auto-mirrors to GitHub
5. Merge to `main` when verified working

## Important Notes

- Always validate designs before pushing to POD services
- Use `--sandbox` flag when testing POD integrations
- Exports are gitignored - regenerate with `mycopunk design export`
- Mockups require POD API access (not available offline)

## Links

- [Printful API Docs](https://developers.printful.com/docs/)
- [Prodigi API Docs](https://www.prodigi.com/print-api/docs/)
- [Inkscape CLI Reference](https://wiki.inkscape.org/wiki/Using_the_Command_Line)
