# /cook - Full dApp Code Generation

**Agents:** `smart-contract`, `frontend`

Generate complete production-ready code for a Movement blockchain dApp.

**IMPORTANT**: Delegate to `smart-contract` agent for contracts, then `frontend` agent for frontend.

## Prerequisites

### Install Movement CLI

Before generating code, ensure the Movement CLI is installed. See [Movement CLI docs](https://docs.movementnetwork.xyz/devs/movementcli) for details.

#### Quick Install (Testnet - with Move 2 support)

**macOS (Apple Silicon/M-series):**
```bash
curl -LO https://github.com/movementlabsxyz/homebrew-movement-cli/releases/download/bypass-homebrew/movement-move2-testnet-macos-arm64.tar.gz && mkdir -p temp_extract && tar -xzf movement-move2-testnet-macos-arm64.tar.gz -C temp_extract && chmod +x temp_extract/movement && sudo mv temp_extract/movement /usr/local/bin/movement && rm -rf temp_extract movement-move2-testnet-macos-arm64.tar.gz
```

**macOS (Intel):**
```bash
curl -LO https://github.com/movementlabsxyz/homebrew-movement-cli/releases/download/bypass-homebrew/movement-move2-testnet-macos-x86_64.tar.gz && mkdir -p temp_extract && tar -xzf movement-move2-testnet-macos-x86_64.tar.gz -C temp_extract && chmod +x temp_extract/movement && sudo mv temp_extract/movement /usr/local/bin/movement && rm -rf temp_extract movement-move2-testnet-macos-x86_64.tar.gz
```

**Linux (x86_64):**
```bash
curl -LO https://github.com/movementlabsxyz/homebrew-movement-cli/releases/download/bypass-homebrew/movement-move2-testnet-linux-x86_64.tar.gz && mkdir -p temp_extract && tar -xzf movement-move2-testnet-linux-x86_64.tar.gz -C temp_extract && chmod +x temp_extract/movement && sudo mv temp_extract/movement /usr/local/bin/movement && rm -rf temp_extract movement-move2-testnet-linux-x86_64.tar.gz
```

**Verify installation:**
```bash
movement --version
```

### Initialize Account (if not done)
```bash
movement init --network testnet
```

This creates a `.movement/config.yaml` with your account credentials.

### Get Testnet Tokens
Visit https://faucet.movementnetwork.xyz/ to get testnet MOVE tokens.

## Workflow

This command orchestrates the generation of a complete dApp:

### Phase 1: Research & Planning (if no plan exists)
Check for existing plans and read Move language reference:
```bash
cat docs/MOVE_LANGUAGE_REFERENCE.md
ls plans/
```

### Phase 2: Smart Contract Implementation
Generate in `contracts/`:
- `Move.toml` - Package manifest with dependencies
- `sources/*.move` - Move module source files
- `tests/*.move` - Move unit tests

### Phase 3: Frontend Implementation
Generate in `frontend/`:
- `package.json` - React dependencies
- `src/App.tsx` - Main application component
- `src/components/*.tsx` - UI components
- `src/hooks/*.ts` - Custom React hooks
- `src/contexts/*.tsx` - React contexts (wallet, etc.)
- `tests/*.test.tsx` - Frontend tests

### Phase 4: Testing
Ensure:
- Move unit tests pass
- Frontend tests pass
- Coverage >90%

### Phase 5: Code Review
Check:
- Move security best practices
- No vulnerabilities
- Code quality standards
- Documentation completeness

## Sub-Commands

### /cook:contracts
Generate only Move smart contracts

### /cook:frontend
Generate only React frontend

## Output Summary

After completion, display:
```markdown
# 🍳 Cook Complete!

## Generated Files
- Contracts: {count} files
- Frontend: {count} files
- Tests: {count} files

## Test Results
- Move tests: ✅ {passed}/{total}
- Frontend tests: ✅ {passed}/{total}
- Coverage: {percentage}%

## Next Steps
1. Review generated code
2. Run `/test` for comprehensive testing
3. Run `/review` for security audit
4. Run `/deploy-full` to deploy to testnet
```

## Success Criteria
- Contracts generated in <3 minutes
- Frontend generated in <3 minutes
- All tests passing
- Coverage >90%

