Tuesday, February 24, 2026

francAIs PROTOTYPE (7)

Comparison of Tools for

VIBE CODING


Simple, practical comparison of the four “Agentic / VIBE CODING” style tools for working through multi-step dev tasks.

Tools

What it is (in practice)

Best at

Typical strengths

Typical tradeoffs

OpenAI Codex

Cloud-based software engineering agent that runs tasks in its own sandbox with your repo, can propose PRs

Longer, parallelized “do the work” tasks (features/bug fixes across files)

Parallel task execution + sandboxed runs; PR-style workflow

Depends on how well your repo/test setup runs in its environment; you’ll still want review/guardrails (OpenAI)

Claude Code

Agentic coding tool available in terminal/IDE/desktop/browser, reads codebase, edits files, runs commands

Fast interactive iteration + refactors + multi-file changes with strong “developer feel”

Great “in-the-loop” flow; broad surface availability; strong tool/agent ecosystem (Claude)

Can be more manual than a fully queued, parallel “job runner” approach (depending on your workflow)

Amp

Terminal-first coding agent designed to “wield frontier models,” pay-as-you-go

Repo-scale changes + using different underlying models

Model-flexible, CLI-first; positioned for complex task execution (ampcode.com)

Product maturity/availability (e.g., free tier admissions can pause); experience varies with chosen model

Mistral Vibe

Terminal-native + IDE surfaces; “one stack, every surface,” with workflows/subagents (Vibe 2.0)

Team workflows, custom subagents/commands, modernization/refactors

Strong CLI + workflow customization; supports agents/IDE extensions; explicit feature list like refactor/review/tests/CI-CD automation (Mistral AI)

Ecosystem/integrations may be narrower than the biggest platforms; best fit if you like Mistral’s models/tooling


Monday, February 23, 2026

francAIs PROTOTYPE (6)

 Blueprint for VIBE CODING


We applied a PROMPT to francAIs SPECS for DEVELOPERS (see previous post) to drive ChatGPT to generate the francAIs Blueprint for VIBE CODING.


Abstract of the PROMPT applied to the SPECS for DEVELOPERS to prepare the documentation for VIBE CODING:


The Prompt was designed to generate first, from the SPECS for DEVELOPERS of the francAIs PROTOTYPE, a step-by-step plan for building the francAIs PROTOTYPE WEB-APP project. Then, once we have the plan, break it down into small, iterative chunks that build on each other. From this foundation provide a series of incremental LLM Prompts for a code-generation that will implement them in a test-driven manner. Make sure that each LLM Prompt builds on the previous LLM Prompts


Then ChatGPT generated a 26-page Blueprint for VIBE CODING with 29 LLM Prompts. Examples of LLM Prompts below:


Prompt 1 – Create Rails App & Basic Config

You are my Rails pair programmer.


Task:

Create a new Ruby on Rails 7 app named `francais_prototype` using PostgreSQL, optimized for a desktop-first web app. Use the default Minitest test framework.


Step-by-step requirements:

1. Generate the Rails app:

   - Database: PostgreSQL.

   - Skip any frontend frameworks beyond default Rails (we'll add Bootstrap manually).

2. Configure database.yml minimally for PostgreSQL (assume local dev).

Etc

______________________________________________________

Prompt 7 – Layout: Navbar & Footer (Basic Wiring)

We now have basic pages.


Task:

Implement a Bootstrap navbar and footer in `application.html.erb` that will support the final app structure.


Requirements:

1. Navbar (visible on all logged-in pages; for now, show same bar always):

   - Left: "francAIs" brand link to root.

   - Center: Placeholder "Modules" dropdown (links can be `#` for now).

   - Right: Placeholder text for:

     - "Modules restants : —"

     - "Niveau : —"

     - Links "Mon profil" and "Déconnexion" (use `link_to` where appropriate; they can point to Devise routes or placeholder paths).

2. Footer:

   - Centered text with links:

     - "Tutoriel" `pages#tutorial`

     - "Contact" `pages#contact`

Etc

______________________________________________________

Prompt 11 – Module 1: Basic View & Static Citation Stub

Navbar and basic structure exist.


Task:

Implement the first version of Module 1 – Citation du jour, using a static stub instead of real AI.


Requirements:

1. In `ModulesController#module1`, set an instance variable:

   - `@citation` (string of a French quote).

   - `@author`

   - `@date` (optional).

2. Create `app/views/modules/module1.html.erb`:

   - Show brief instructions at the top (paragraph).

   - Show a Bootstrap card:

     - Citation text in bold.

     - Author/date in italics.

     - A placeholder TTS button (no JS yet) aligned to the right.

3. Update navbar "Modules" dropdown to link "Module 1 – Citation du jour" to `/module1`.

Etc

______________________________________________________

Prompt 14 – Module 2: Word Counter JS (Soft Stop, Front-End Only)

Server-side validation exists for Module 2.


Task:

Add front-end JS to track word count and block submission when not between 100 and 120, with a soft stop.


Requirements:

1. Add a small JS file (e.g., `app/javascript/module2_word_counter.js` or equivalent for your asset pipeline) that:

   - Listens for input events on the Module 2 textarea.

   - Counts words with same splitting rules as the server.

   - Updates the "Mots : X / 120" display.

   - Changes its color to red when X < 100 or X > 120, normal otherwise.

   - Disables the submit button (via `disabled` attribute) when out of range.

2. Only load this JS on Module 2 pages (e.g., using a data attribute or conditional in the layout).

Etc 

______________________________________________________

Prompt 19 – Module 3: Vocabulary Result Cards & modules_used Increment (Stubbed Data)

Module 3 form exists and validates inputs.


Task:

Render vocabulary results as cards (stubbed words/sentences) and increment modules_used on success.


Requirements:

1. After a valid POST to `submit_module3`:

   - Use static stub data like an array of hashes:

     - `{ word: "manger", sentences: ["Je mange…", "Ils aiment manger…"] }`.

   - Render a view with one Bootstrap card per word:

     - Card title: the word in bold.

     - Card body: two sentences.

2. Increment `current_user.modules_used` by 1 only on successful generation.

3. Test lock interaction:

   - If modules_used reaches 10 due to Module 3, user becomes locked.

Etc

______________________________________________________

Prompt 28 – Final QA: End-to-End Flow Tests

Core functionality and AI integration are in place.


Task:

Add system/integration tests that cover the full user journey:


1. Normal user:

   - Sign-up.

   - Verification (simulate correct code).

   - First Module 2 completion:

     - Level assigned.

     - Trial started.

     - Welcome card shown.

   - Use Module 2 and 3 until lock:

     - modules_used increments correctly.

     - Lock screen appears after 10 uses (or simulated).

2. Demo user:

   - Visit `/demo`.

   - Confirm user is logged in with modules_used = 0 and no level.

   - Go through Module 2 once.

   - Confirm level is set and trial started.

Etc

______________________________________________________

Sunday, February 22, 2026

francAIs PROTOTYPE (5)

SPECS for DEVELOPERS

We applied a PROMPT to francAIs OUTLINE (see previous post) to drive ChatGPT to generate the francAIs SPECS for DEVELOPERS.


Abstract of the PROMPT applied to the OUTLINE to prepare for VIBE CODING:


  • The Prompt was designed to generate from the OUTLINE of the francAIs PROTOTYPE a compilation of all findings into  comprehensive, developer-ready detailed specifications for Ruby on Rails, PostgreSQL, and Bootstrap, including functional and technical requirements, architecture and system design decisions, user flows, database schema and data models, data handling and validation rules, key UI screen descriptions, error handling strategies, and a complete testing plan. 

Then ChatGPT generated a 22-page SPECS for DEVELOPERS with 10 sections. Examples of some sections below:

4.1 Home Page (Landing)
  • Route: GET / PagesController#home
  • Content:
    • Logo “francAIs” (simple text or image).
    • One-sentence tagline: e.g. L’application minimaliste pour améliorer votre français écrit et oral.
    • 3 bullet points:
      • Évaluation CEFR automatique
      • Modules simples et guidés
      • 10 modules gratuits sur 30 jours
    • Buttons:
      • “S’inscrire” Devise sign-up
      • “Se connecter” Devise login
    • etc
_____________________________________

5.1 users Table

  • From Devise:
    • email, encrypted_password, etc.
  • Custom fields:
    • verification_code :string
    • verified_at :datetime
    • cefr_level_id :integer (FK to levels, nullable)
    • etc
_____________________________________

7.1 Shared UI Elements

Navbar (Logged-in)

  • Left: Logo “francAIs” (click / or stays on same page).
  • Center: Modules dropdown:
    • Module 1 – Citation du jour
    • Module 2 – Expression écrite
    • Module 3 – Vocabulaire
  • Right:
    • Text: Modules restants : <modules_remaining>
    • Text: Niveau : <level_code || "—">
    • Link: “Mon profil”
    • Link: “Déconnexion”
    • Etc

_____________________________________

7.3 Module 2 – Expression écrite

Result Cards (in order)

  1. Card: Niveau CEFR
    • Badge: e.g. “B1”
    • Short explanation.
  2. Card: Analyse grammaticale
  3. Card: Analyse du vocabulaire
  4. Card: Analyse orthographique
  5. Card: Organisation des idées
  6. Card: Texte avec fautes marquées
    • Learner’s text with errors highlighted.
  7. Card: Suggestions d’amélioration
  8. Card: Texte corrigé
  9. Card: Texte réécrit au niveau supérieur

etc

_____________________________________

8. AI Integration Details

8.1 General Rules

  • Use chat completion with system + user messages.
  • All output in French, except where translation is explicitly requested.
  • Complexity of language and grammar:
    • Adapted to CEFR level <LEVEL> for situation texts, analyses, and examples.
  • Module 2 rewritten text:
    • Generated at one level higher than evaluated level, if possible.
  • etc

_____________________________________