# Stop reviewing code that misunderstood the product.

Coding agents write plenty of code. That's not the constraint.

The constraint is meaning. When an agent doesn't know what the product is supposed to do, it guesses from nearby files. The diff can look tidy and still be wrong.

Codemix gives engineers and agents a queryable product model before implementation starts. Less re-explaining. Less plausible nonsense. More code that matches the decision.

---

# Tasks

5 pending/3 done

## Task A3F2B1C8
**Status**: In progress  
**Assigned to**: CP Charles Pick
**Source**: Proposal

### Accept and verify plan change notifications
Updated 88d ago (Mar 19, 2026, 10:34 AM) • Created Mar 19, 2026, 9:10 AM  
**Subtasks**: 1/3 subtasks

**Summary**
- This task closes the gap between what Stripe knows and what Stratum knows. Right now, when a customer's subscription changes, Stratum doesn't find out — so their access level in the product stays wrong until someone manually fixes it.
- The scope of this task is narrow: receive a notification, confirm it's genuine, and pass it along for processing. Deciding what the change means for a tenant's access is handled by a separate task.
- Updating feature access, notifying users, and enforcing new limits are all out of scope here. Those depend on this task being done first.

### What to implement
1. **Receive plan change notifications** — The product listens for billing notifications from Stripe. When one arrives, it's held for verification before any action is taken.
2. **Verify the notification is genuine** — Each notification is checked against a shared secret to confirm it actually came from Stripe. Notifications that can't be verified are rejected, and Stripe will retry delivery.
3. **Route to the right handler** — Once verified, the notification is passed to whichever part of the product handles that type of billing change. Notifications for unrecognised change types are accepted but ignored.

## Discussion

0 Threads

---

## Your agents are building confidently. The problem is they're guessing.

AI coding tools are good at plausible output. They are bad at knowing what the product is supposed to do. That is not a prompting problem. It is a missing context problem.

Without product intent, agents fill gaps from nearby code. The diff looks clean. The tests pass. The behavior is wrong in a way you find after merge.

### Start from product intent

Most drift starts before the first line is written. A ticket title is not enough context for a human or an agent.

Codemix keeps the product model queryable: concepts, flows, constraints, and decisions. You start from intent instead of reverse-engineering it from nearby code.

---

## Demo

Multi-tenant analytics SaaS platform

### Work in motion
- **Proposals**: 2  
- **Reviewing**: 1  
- **Approved**: 1  
- **Tasks**: 5  
  - **Running**: 1  
  - **Ready**: 3  
  - **Blocked**: 1  
  - **Completed**: 3

### Model inventory
- **Requirements**  
- **Intent**: 8  
- **Concepts**  
- **Domain**: 14  
- **Personas**  
- **Audience**: 3  
- **Flows**  
- **Journeys**: 9  
- **Screens**  
- **Surfaces**: 6  
- **Stories**  
- **Behavior**: 18  
- **Systems**  
- **Mechanics**: 5

### Integrations
- **3/4 live**  
- GitHub connected  
- MCP connected  
- CLI connected  
- Slack ready

### Build Checklist
- **TECHNICAL READINESS**  
  - All critical API endpoints covered by integration tests  
  - Rate limiting in place on public endpoints  
  - Database backups verified and restore tested  
- **PRODUCT & ONBOARDING**  
  - Onboarding flow end-to-end tested with external user  
  - Help docs cover the top 5 user questions  
  - Feedback channel (Slack / email) ready and monitored

---

## Behavioral change (what must now be true)
- When a customer upgrades, their new plan limits apply before their next action in the product.
- When a customer downgrades, their access steps down at the end of their current billing period.
- When a customer cancels, they keep full access until their paid period expires, then move to the free tier.
- If the same billing notification arrives more than once, the tenant's access is updated exactly once.
- If a notification can't be verified as genuine, it is rejected and Stripe will automatically retry.

### What to implement
1. **Receive plan change notifications**  
2. **Verify each notification is genuine**  
3. **Apply each notification exactly once**  
4. **Update tenant access**  
5. **Confirm the behaviour end to end**

### Out of scope
- Sending email notifications when subscription state changes
- Changing which features are available on each plan
- Reacting to payment failures or invoice events
- Registering the notification endpoint with Stripe

---

### Proposal
When a customer upgrades their plan, how long does it take for their new limits to apply?

Right now, they don't apply automatically. Stripe notifies Stratum when a subscription changes, but the product doesn't react — so a tenant can pay for a higher tier and still be on their old limits until someone manually updates the database.

---

## How it works
### How Codemix carries context through the full lifecycle
Most product drift happens in the handoffs: from discussion to spec, spec to task, task to code, and code back to the roadmap. Codemix keeps those handoffs explicit.

1. Start with a conversation or from code  
   - Chat with codemix if you're still at the idea stage, or import your existing codebase.
2. Model the product  
   - Codemix builds a working model of the product: the concepts, screens, actions, rules, edge cases, and decisions that explain how it is meant to behave.
3. Shape the change  
   - Before implementation starts, you can ask questions, edit the spec, and turn a rough idea into a concrete proposal for what should change.
4. Write the tasks  
   - Once the proposal is approved, Codemix turns it into implementation work. Send it to Linear or Jira.
5. Answer questions mid-build  
   - Codemix gives engineers answers from the product model, so they don't have to guess from a ticket title or a nearby file.
6. Review what changed  
   - Codemix reviews the code against the product decision.
7. Ship, then update the spec  
   - Shipping often reveals details nobody saw at planning time.
8. Bring the context forward  
   - Bring in bugs, customer feedback, support notes, and product signals.

---

## Pricing

### Codemix pays for itself on day 1.

Build better apps with codemix faster than ever before. Save time, stop wasting tokens and keep humans in control.

### Pay As You Go
- $50 pro user / month, for teams  
- 20k credits per pro user / month
- Solo 
  - For one-person workspaces that want to try codemix without committing to a subscription.
- Pro 
  - Self-serve pricing for teams ready to start now.  
- Enterprise 
  - For teams that need custom terms, SSO, compliance, or support.

---

## Ready to ship correctly?
Stop reviewing code that only looks right. Codemix gives engineers and tech leads a shared product model that agents can build against. What ships should match what was decided, not what the agent guessed.
No credit card required.
