Skip to main content

Workflow

Drop — Development Workflow

Overview

Drop development follows the GOTCHA framework workflow: Boot → Mission Control → Agent Spawn → Build → Validate → Done


1. Boot (boot.sh)

Every session starts with:

bash ~/system/boot.sh

This verifies all 6 GOTCHA layers:

  • Goals — specs and rules loaded
  • Orchestration — John (AI Director) ready
  • Tools — task.sh, mc.js, hivemind accessible
  • Context — domain knowledge available
  • Hard prompts — instruction templates loaded
  • Args — behavior config applied

Boot also reads HiveMind intel.


2. Mission Control — Task Management

Create a task

node ~/system/tools/mc.js add "Feature: Send Money" --desc "Wire /send to /api/transactions" --priority H --owner john

Start working

node ~/system/tools/mc.js start <id>

This creates /tmp/mc-active-task — required by enforcer hooks to allow Write/Edit operations.

Complete

node ~/system/tools/mc.js done <id> "Wired /send to API. Tests passing."

Other commands

mc.js list                    # All open tasks
mc.js list --owner john       # My tasks
mc.js pause <id>              # Pause (blocks Write/Edit)
mc.js resume <id>             # Resume paused task
mc.js block <id> "reason"     # Block with reason
mc.js show <id>               # Full details
mc.js active                  # Who's working on what

3. Agent Spawn — Builder/Validator Teams

For implementation tasks, John spawns Claude subagents:

Builder Agent

  • Role: Implements ONE task
  • Tools: Read, Write, Edit, Bash, Glob, Grep
  • Model: Sonnet (never Opus for agents)
  • Config: ~/.claude/agents/builder.md

Spawn pattern:

Task tool → subagent_type: "general-purpose"
Prompt: "Implement feature X. Read the code first. Follow CLAUDE.md rules."

Validator Agent

  • Role: Verifies ONE task (READ-ONLY)
  • Tools: Read, Bash, Glob, Grep (no Write/Edit)
  • Model: Sonnet or Haiku
  • Config: ~/.claude/agents/validator.md

Spawn pattern:

Task tool → subagent_type: "general-purpose"
Prompt: "Validate feature X. Check code quality, tests, no regressions."

Model Budget

Model When
Opus Alem session, planning — NEVER for agents
Sonnet Builders, validators — default for agents
Haiku Trivial tasks — file search, lint, git

4. Development Flow — Feature Lifecycle

[Pending] → mc.js start → [In Progress] → Build → Test → mc.js done → [Done]
                              ↓
                        spawn builder
                              ↓
                        spawn validator
                              ↓
                         HiveMind post

Feature Tracking

Drop uses a built-in feature tracking system (src/lib/features.ts) with 25 features across categories:

Category Features Status
Authentication Registration, PIN Login, Logout, Biometric 3/4 passing
KYC Identity Verification 1/1 passing
Banking IBAN, Balance, Send, Receive, History, Top-up 5/6 passing
Cards Virtual, Freeze/Unfreeze, Transactions, Physical 4/4 passing

Check feature status:

import { getFeatureStats, printFeatureReport } from '@/lib/features'
printFeatureReport() // ASCII status report

5. Architecture Quick Reference

Stack

  • Framework: Next.js 16.1.6 (App Router)
  • Runtime: React 19.2.3
  • Database: SQLitePostgreSQL 16 (dev)all /environments) PostgreSQLvia (prod)Drizzle ORM
  • Auth: JWT (7-day expiry) + SHA-256 PIN hashing
  • Styling: Tailwind CSS 4

API Endpoints

Endpoint Method Purpose
/api/auth/register POST Register (phone + PIN)
/api/auth/login POST Login
/api/account GET Account details + balance
/api/cards GET/POST List/create cards
/api/cards/[id] GET/PATCH Card details/freeze
/api/transactions GET/POST List/send money
/api/transactions/simulate POST Simulate incoming (demo)
/api/health GET Health check

Service Mocks (dev mode)

Service Provider Mock File
BaaS Swan src/lib/services/mock-swan.ts
Cards Stripe Issuing src/lib/services/mock-stripe.ts
KYC Sumsub src/lib/services/mock-sumsub.ts

Mode controlled by NEXT_PUBLIC_SERVICE_MODE env var (default: "mock").

Database Schema

4 tables: users, accounts, cards, transactions Schema defined in src/lib/db.ts

State Management

Global context via AppProvider (src/lib/context/AppContext.tsx):

  • Auth: register, login, logout
  • KYC: start, submit, check
  • Banking: getBalance, sendMoney, refreshTransactions
  • Cards: create, freeze, getDetails
  • Demo: simulateIncoming, simulatePurchase

6. Local Development

cd ~/ALAI/products/Drop/src/drop-app
npm install
npm run dev          # Dev server on localhost:3000
npm run build        # Production build
npm run test         # Jest tests (25 tests, 100% passing)
npm run lint         # ESLint

Test Results (Feb 7, 2026)

  • 25 tests total — 100% passed
  • Integration: 9/9
  • Edge cases: 16/16
  • Execution time: 21.2s

7. Deployment

  • Platform: AWS Amplify (Next.js optimized)
  • Region: eu-central-1 (Frankfurt)
  • Build: Turbopack with standalone output
  • Details: See DEPLOYMENT.md

8. Open Tasks (Drop)

Task Priority Owner Description
#191 HIGH john Wire /send page to /api/transactions/remittance
#192 HIGH john Wire /scan page to /api/transactions/qr-payment
#193 HIGH john Wire /merchant page to real APIs
#180 MED john E2E test: full remittance flow
#182 MED john Update design and layout
#196 MED john Document merchant, recipients, rates feature
#198 LOW john Delete mock-data.ts and orphaned components

9. Anti-Hallucination Rules

From ~/system/rules/agent-anti-hallucination.md:

  • TBD > Hallucination — say "I don't know" rather than guess
  • Cross-file check — read schema before writing code
  • No phantom deps — only import what exists in package.json
  • Placeholder = fatalError() — never leave silent stubs