Files
archy/loop/prompt.md
Dorian c45de13752 fix: add 6 missing apps to first-boot and fix penpot icon path
Added searxng, onlyoffice, filebrowser, nginx-proxy-manager, portainer,
and tailscale to first-boot-containers.sh so fresh ISO installs have all
marketplace apps ready. Fixed penpot icon path in Marketplace.vue to use
the correct app-icons directory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 00:18:28 +00:00

92 lines
4.5 KiB
Markdown

You are running a 2-year production roadmap for Archipelago (Archy) — taking it from developer preview to a flawless, mass-market Bitcoin Node OS (v1.0).
Read these files first:
1. `loop/plan.md` — Your task checklist (mark items `- [x]` as you complete them)
2. `CLAUDE.md` — Archy project conventions, architecture, coding standards
## Architecture Quick Reference
```
Server: 192.168.1.228 (ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228)
Frontend: neode-ui/ → builds to web/dist/neode-ui/ → deployed to /opt/archipelago/web-ui/
Backend: core/archipelago/ → Rust binary → deployed to /usr/local/bin/archipelago
Nginx: /etc/nginx/sites-available/archipelago (source: image-recipe/configs/nginx-archipelago.conf)
Systemd: /etc/systemd/system/archipelago.service (source: image-recipe/configs/archipelago.service)
Deploy: scripts/deploy-to-target.sh, scripts/first-boot-containers.sh
ISO: image-recipe/build-auto-installer-iso.sh
```
## Key Paths
- Views: `neode-ui/src/views/*.vue`
- Components: `neode-ui/src/components/*.vue`
- Stores: `neode-ui/src/stores/*.ts`
- API clients: `neode-ui/src/api/*.ts`
- Global styles: `neode-ui/src/style.css`
- Router: `neode-ui/src/router/index.ts`
- Context broker: `neode-ui/src/services/contextBroker.ts`
- Types: `neode-ui/src/types/*.ts`
- Backend entry: `core/archipelago/src/main.rs`
- RPC handlers: `core/archipelago/src/api/rpc/*.rs`
- Container mgmt: `core/container/src/*.rs`
- Security: `core/security/src/*.rs`
- Identity: `core/archipelago/src/identity/` (to be created)
- Network: `core/archipelago/src/network/` (to be created)
- Wallet: `core/archipelago/src/wallet/` (to be created)
- Nginx config: `image-recipe/configs/nginx-archipelago.conf`
- Systemd service: `image-recipe/configs/archipelago.service`
- Web5 docs: `docs/WEB5_NOSTR_IDENTITY.md`
- Three-mode UI spec: `docs/three-mode-ui-design.md`
- Port assignments: `apps/PORTS.md`
## For each task in loop/plan.md:
1. Find the first unchecked `- [ ]` item
2. Read the task description carefully — it tells you exactly what to do
3. Read ALL relevant source files before making changes
4. Make the change following CLAUDE.md conventions strictly:
- Global CSS classes in style.css, NEVER inline Tailwind in components
- `<script setup lang="ts">` only, no Options API
- No `any` types — use proper TypeScript types
- No `unwrap()`/`expect()` in Rust production code — use `?` operator
- Use `tracing` for Rust logging — never `println!`
5. For frontend changes:
- Run `cd neode-ui && npm run type-check` — fix ALL errors
- Run `cd neode-ui && npm run build` — must succeed
- Deploy: `./scripts/deploy-to-target.sh --live`
- Verify at http://192.168.1.228
6. For backend changes:
- Do NOT build Rust on macOS — the deploy script handles it
- Deploy: `./scripts/deploy-to-target.sh --live`
- Verify the service is running on the server
7. For nginx/systemd/infra changes:
- Deploy the config file to the server (commands in the task description)
- Validate config before applying (nginx -t)
- Verify the service works after applying
8. For new feature development:
- Create new files in the appropriate module directories
- Follow existing patterns in the codebase
- Wire new RPC endpoints through the existing RPC system
- Add new views to the router
- Add new stores as needed
9. Mark it done `- [x]` in `loop/plan.md`
10. Commit: `type: description`
11. Move to the next unchecked task immediately
## Critical Rules
- **Do NOT break existing functionality** — if your change breaks something, fix it before moving on
- **Read files before editing** — understand before changing
- **Never skip type-check or build** — if it fails, fix before moving on
- **Always deploy after completing a task** — changes must be live
- **Use SSH key, not password**: `ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228`
- For sudo: pipe the password `echo "EwPDR8q45l0Upx@" | sudo -S <command>`
- **Follow the design system** — glass cards, glass buttons, existing color tokens, no gradient buttons
- **Replace dummy data with real backends** — no more hardcoded values in Web5.vue
- **New Rust modules** go in `core/archipelago/src/` with proper error types
- **New Vue views** go in `neode-ui/src/views/` with `<script setup lang="ts">`
- If a task is proving difficult after 15+ genuine attempts, add `(BLOCKED: reason)` to the task and move on
- Do not stop until all tasks are checked or you hit rate limits
- Commit after each completed task