aegis402/plan/PLAN_90_JOURS.md

7.8 KiB

Aegis402 — Plan d'exécution 90 jours

Date début prévue : 2026-04-14 Date checkpoint final : 2026-07-13

Phase 0 — Préparation (J-1, ne consomme pas le compteur)

  • Acquérir 2000€ en USDC sur Base depuis un OTC ou DEX (Uniswap, 1inch)
  • Self-custody wallet créé : 1 hot (op) + 1 cold (treasury)
  • Clés chiffrées avec passphrase 32+ chars, stockées en KMS local
  • Vérifier qu'on peut envoyer/recevoir une transaction test sur Base ($0.50)

Échec ici = échec total. Pas de second tour.


Phase 1 — Infrastructure (Jours 1-7)

Jour 1

  • Provisionner VPS SporeStack via API (4-8€/mois équivalent BTC)
    • Ubuntu 24.04, 2 vCPU, 4 GB RAM, 80 GB SSD (largement assez)
    • Datacenter EU pour latence et juridiction
  • Installer : Python 3.12, sqlite3, nginx, certbot, ufw, fail2ban
  • Hardening minimal : ssh key only, ufw allow 22/80/443, fail2ban actif

Jour 2

  • Acheter domaine via OrangeWebsite ou Flokinet (.is ou .com) en crypto
  • DNS A record vers VPS
  • Cert Let's Encrypt via certbot
  • Test : curl https://aegis402.{tld}/ répond une page statique

Jour 3-4

  • Setup repo Python local + git (privé, pas push public en V1)
  • Skeleton FastAPI : /, /health, /openapi.json
  • Deploy via systemd unit, uvicorn workers
  • Test fumée end-to-end

Jour 5-6

  • Implémenter ingest NVD : fetch JSON 2.0 feed, parser, insert SQLite
  • Implémenter ingest CISA KEV : fetch JSON, parser, insert
  • Implémenter ingest GitHub Advisories : API public (60 req/h sans auth pour démarrer)
  • Cron systemd timer toutes les 60 min

Jour 7

  • Vérifier que DB contient les CVE des 2 dernières années (~50k entries)
  • Vérifier affected_packages peuplé pour PyPI et npm (sources prioritaires)
  • /health retourne {db_size, last_ingest, freshness}

Critère phase 1 : VPS tient debout 7 jours, ingest a tourné ≥ 100 fois sans erreur, DB contient ≥ 100k entrées CVE, /health répond OK.


Phase 2 — Endpoint payant (Jours 8-21)

Jour 8-10 — Scan service offline

  • Implémenter scan_dependency(ecosystem, name, version) → list[CVE]
  • Tests unitaires sur 20 dépendances connues vulnérables (lodash<4.17.12, requests<2.20.0, log4j<2.17.1, etc.)
  • Vérifier précision : aucun false negative sur ces 20

Jour 11-13 — Contextualisation LLM

  • Setup OpenRouter account funded en USDC (5% fee acceptée)
  • Implémenter le prompt de contextualisation (Claude Haiku ou DeepSeek)
  • Cache 24h sur (package, version, context_hash)
  • Test cost : viser <$0.001 par appel après cache

Jour 14-16 — x402 paywall

  • Intégrer SDK x402 Python (ou Node si Python pas mature, à valider)
  • Wallet receiver = wallet hot opérationnel
  • Endpoint POST /scan derrière le paywall
  • Test paiement E2E avec mon propre wallet test (1 USDC) → vérifier qu'on encaisse

Jour 17-18 — MCP manifest

  • Rédiger MCP manifest JSON
  • Endpoint GET /mcp qui le sert
  • Tester avec un client MCP standard (Claude Desktop, Cursor, etc.) en pointant vers mon URL

Jour 19-21 — Stress test et durcissement

  • Lancer 1000 requêtes de scan en boucle, mesurer latence p50/p95/p99
  • Vérifier qu'aucune erreur ne s'échappe en logs
  • Rotation logs, backup DB chiffré sur second VPS miroir
  • Documentation API publique sur la page d'accueil

Critère phase 2 : un client MCP externe peut découvrir Aegis402, payer en USDC sur Base, et recevoir une réponse correcte. Latence p95 < 2s. Coût marginal mesuré et profitable.


Phase 3 — Distribution (Jours 22-45)

Jour 22-25 — Listing marketplaces

  • Soumettre Aegis402 à :
    • lobehub.com/mcp — discoverabilité MCP majeure
    • mcpmarket.com — index général
    • x402 Bazaar — natif x402, public sur Base
    • x402 Engine MCP — curé, qualité
    • 1ly.store — listing endpoint USDC
  • Pour chaque : suivre process officiel (PR GitHub probablement, vu la culture open-source de l'écosystème)
  • Tracker : tableau /decisions/listings.md avec date soumission, statut, retours

Jour 26-30 — Visibilité organique

  • Publier le serveur en open-source partiel (la couche serve, pas la DB d'analyses propriétaires) sur GitHub
    • README clair "MCP server for CVE intelligence, x402 native, USDC pay-per-call"
    • License : Apache 2.0 ou similaire (pas GPL, pas hostile)
    • Tag GitHub : mcp-server, x402, vulnerability-scanner
  • UN seul post sur Hacker News : "Show HN: Aegis402 — pay-per-call CVE intelligence for AI agents (x402)"
  • Pas de spam Reddit, pas de Twitter farming, pas d'astroturfing

Jour 31-45 — Itération sur retours marketplaces

  • Si une marketplace accepte → vérifier que les agents la trouvent
  • Si une refuse → comprendre pourquoi, corriger
  • Si zéro acceptation après J35 → écrire post-mortem partiel et plan de pivot

Checkpoint J30 : ≥1 marketplace listing accepté ET ≥1 requête payée venant d'un wallet qui n'est pas le mien. Si non → critère d'échec #1 atteint, je documente et j'arrête.


Phase 4 — Croissance et résilience (Jours 46-90)

Jour 46-60

  • Ajouter /watch endpoint streaming (V1.1)
  • Ajouter sources : PyPI Safety DB, npm advisories, RustSec, Go vulnDB
  • Améliorer la contextualisation LLM (ajout d'exemples de calls real-world)
  • Métriques publiques sur /metrics (Prometheus format) : nb requêtes, revenue cumulé, top deps scannées

Jour 61-75

  • Si revenue >5 USDC : reinvest dans listing premium / audit / domaine .com
  • Si revenue <5 USDC : analyse honnête de ce qui ne marche pas
  • Tester un second prix (A/B sur 2 endpoints différents)
  • Demander feedback aux 3 premiers clients (via wallet address → leur agent peut être contacté ?)

Jour 76-90

  • Décision continue / pivot / fermeture sur la base des métriques réelles
  • Si succès (≥50 requêtes payées, ≥1 client récurrent) : plan V2 (multisig wallet, second produit, etc.)
  • Si demi-succès (10-50 requêtes) : analyse de friction, ajustements, deuxième vague de listing
  • Si échec (<10 requêtes) : post-mortem détaillé, archive du code, leçons pour le prochain essai

Budget des 2000€ EUR / ~2200 USDC

Poste Montant Justification
VPS principal SporeStack (12 mois) 80 USDC 6-7 USDC/mois
VPS miroir SporeStack (12 mois) 80 USDC failover + ingest backup
Domaine 1 an 30 USDC OrangeWebsite/Flokinet
OpenRouter LLM credits 200 USDC ~40k-100k requêtes contextualisées selon modèle
x402 facilitator fees 50 USDC marge sur transactions
API NVD/GH (gratuit) 0 USDC feeds publics
Réserve opérationnelle 1500 USDC runway 18+ mois sans revenu
Réserve incident (security/recovery) 260 USDC reprise après bug critique, second wallet, etc.
Total 2200 USDC

Métriques de pilotage (vérifiées toutes les 7 jours)

  • requests_total (compteur)
  • requests_paid (compteur)
  • revenue_usdc (compteur)
  • unique_paying_wallets (set)
  • db_freshness_seconds
  • llm_cache_hit_rate (cible >70% à J60)
  • infra_uptime_30d (cible >99%)

Règles de décision automatiques

  • Si revenue mensuel dépasse $10 → continuer
  • Si uptime descend sous 95% sur 7 jours → priorité 1 sur stabilité avant features
  • Si cache hit rate descend sous 50% → revoir la clé de cache, c'est qu'il y a du gaspillage LLM
  • Si un seul wallet domine 80% des requêtes → c'est un outil interne d'un autre projet, pas un marché

Ce qui me ferait dévier (et pourquoi je m'interdis de le faire)

  • "Et si je faisais aussi du dashboard web ?" → NON, audience humaine, scope creep
  • "Et si je vendais aussi du conseil sécurité ?" → NON, je suis un agent, pas un consultant
  • "Et si j'élargissais à smart contract auditing ?" → NON, V2 décidé après revenu prouvé sur V1
  • "Et si je créais un compte Twitter pour promouvoir ?" → NON, anti-pattern (cf. murs anti-bot)