sherpa-1099

●live dormant dev

This is an app to electronically file 1099s directly with IRS for ourselves and clients.

README

No README.

STATUS

---
type: project-status
project: sherpa-1099
last_updated: 2026-04-27
---

# STATUS — sherpa-1099

*The freshest file. Answers "where am I on this project?" Updated at the end of every substantive session.*

---

## Current state

<One short paragraph: what state is the project in right now? Mid-build? Shipped MVP? Stalled waiting on something? Be concrete.>

## In progress

- [ ] <What's actively being worked on. If nothing, write "Nothing in flight.">

## Next up

1. <The next thing to pick up when work resumes.>
2. <The thing after that, if obvious.>

## Blocked / waiting on

<External dependencies, decisions you need from someone, vendor responses, etc. "Nothing blocking" is a fine answer.>

## Known issues

<Bugs you know about but haven't fixed, edge cases not yet handled, debt you've taken on. Be specific so future-you doesn't get blindsided.>

## Recent wins

- 2026-04-27: <What was completed in the last session or two. Concrete, with dates.>

## Last session recap

*2026-04-27* — <One paragraph: what got done, what was learned, anything surprising. Read this first when picking up the project after a break.>

DECISIONS

---
type: project-decisions
project: sherpa-1099
last_updated: 2026-04-27
---

# DECISIONS — sherpa-1099

*Architectural and scope choices. Append-only log. Each entry is a decision that shouldn't be re-litigated without new information. If you find yourself reopening a decision, either add a new entry that overrides the old (and say why) or leave both so the history is visible.*

---

## How to use this file

Each decision gets a dated entry with: what was decided, why, what was considered instead, and what would change our mind. Never delete entries — if a decision is reversed, add a new one that supersedes it.

---

## 2026-04-27 — <Short decision title>

**Decision:** <what we chose>

**Context:** <the problem or question that forced a choice>

**Alternatives considered:** <what else was on the table and why we passed>

**Reasoning:** <why this option won>

**Would reconsider if:** <what new information would flip this>

---

## 2026-04-27 — <Short decision title>

**Decision:**

**Context:**

**Alternatives considered:**

**Reasoning:**

**Would reconsider if:**

---

<!-- Append new entries at the top. Older decisions remain below. -->

MEMORY

---
type: project-memory
project: sherpa-1099
last_updated: 2026-04-27
---

# MEMORY — sherpa-1099

*Standing facts, preferences, and accumulated context. Long-lived — not "what I did yesterday" (that's STATUS.md). Update when you learn something worth keeping.*

---

## Purpose and scope

<Why this app exists, who uses it, what problem it solves. 2-3 sentences max.>

## Domain knowledge

<Rules of the domain that Claude should know before making changes. For tax apps: the specific IRS rules this module implements, state conformity notes, edge cases. For non-tax apps: business rules, workflows, naming conventions specific to this app's world.>

## User preferences discovered

<Things Ken has said he prefers, or patterns that work / don't work. Example: "Ken prefers server-rendered HTML over SPAs for internal tools." "Don't auto-format tax return numbers with commas on input, only on display.">

## Integrations and external systems

<APIs, webhooks, third-party services this app talks to. Auth patterns, rate limits, quirks.>

## Gotchas and lessons learned

<The things that have bitten us. Non-obvious behavior, debugging dead-ends, environment quirks. Write these when they happen so the next session doesn't repeat the mistake.>

## Data model highlights

<Key tables/models and what's non-obvious about them. Don't duplicate the schema — reference it. Focus on the things you'd warn someone about.>

CLAUDE.md

# Sherpa 1099 - CLAUDE.md

## Project Overview
**Name:** Sherpa 1099 (Slipstream 1099 e-Filing)
**Port:** 8002
**Stack:** Python, FastAPI, Supabase (PostgreSQL), IRS IRIS API
**GitHub:** https://github.com/klill6506/sherpa-1099
**Production URL:** https://sherpa-1099.onrender.com
**Status:** ✅ LIVE - Deployed to Render.com

## What This App Does
Converts client 1099 workbooks into IRS-compliant format and submits via IRIS e-file system.
- Imports horizontal Excel workbooks, normalizes to rows
- Validates TIN, state/ZIP, NEC/MISC rules
- Generates IRS-compliant XML for IRIS submission
- Handles 1099-NEC, MISC, DIV, INT, B, R, 1098

## Development & Deployment

**Production only** - No local development. Push to GitHub and Render auto-deploys.

```powershell
cd "T:\sherpa-1099"
git add <files>
git commit -m "message"
git push origin main
```
Render deploys in ~2 minutes. Test at: https://sherpa-1099.onrender.com

## Current State / What I Was Working On
<!-- UPDATE THIS SECTION BEFORE CLOSING CLAUDE CODE -->
**Last session:** 2026-03-09
**Working on:** Fixed 1098 field mapping (mort_box* → f1098_box*), added correction filing validation, added irs_record_id tooltip on filer detail page.

### 🎉 PRODUCTION E-FILING WORKING! (2026-01-29)
IRS approved Sherpa 1099 for production IRIS e-filing. First successful production submission completed!

### What's Working:
- ✅ **Production e-filing to IRS** - Successfully submitted 1099-NEC forms
- ✅ **Individual form e-filing** - Can now e-file single forms from filer detail page (2026-02-03)
- ✅ **Email 1099s to recipients** - Added email field to recipient form (2026-02-03)
- ✅ **Save button visibility** - Fixed bg-primary to bg-blue-600 for light mode (2026-02-03)
- ✅ **& character handling** - HTML entity decoding prevents &amp; display (2026-02-03)
- ✅ **1098 field mapping fixed** - Validation/form-building now uses correct f1098_box* column names (2026-03-09)
- ✅ **Correction validation** - Pre-submission check catches missin

…(truncated for upload size)

Diary mentions

No recent diary mentions for this app.

Render