Commits

We close the plans redesign and open two phases: AI that writes and 6,000 articles

The plans redesign is closed with visual verification, the project-log

Thursday of phase changes. The project-log enters the repo and the first thing it does is put a transition day in writing: the plans redesign closes, and two new lines open — the AI integration in LaIA and the categorization of old content.

The plans redesign, closed

The plan page stretched to the full width and got lost on a big screen. Now it has its own classes, and profile, My plans and the plan share the 1200px width as a standard. The verification has been with screenshots and Playwright asserts: three pages at 1200px, seven days with 21 slots and 14 cards, no inline styles, and mobile without horizontal scroll.

Even here there has been a known struggle: the Playwright login with wait_until="networkidle" wasn't completing the client redirect. The reliable measure was expect_response('/api/users/login') with wait_for_url. And the first batch of screenshots recorded the entry page because the session was broken: invalid screenshots, correct session, repeat. If you have to assert "1200px on the three pages", first validate that the session is open.

project-log: the diary inside the repo

From today, every session leaves a structured entry at docs/dev-journal/YYYY-MM-DD.md: phases, decisions, bugs and struggles with the agent, without anyone having to ask for it. The install decision: no install scripts for CLIs we don't use; copy only what's needed. Less ghost infrastructure.

AI writes, doesn't choose content

The architectural decision of the day: the deterministic engine keeps deciding WHAT goes each day (which event, which getaway, which restaurant), with verifiable sources and ids. The LLM only writes HOW it's told. If the AI chose content it could hallucinate a non-existent business and destroy the value of real cards. If the model fails, templates return: the plan never breaks because of the AI.

6,000 articles and one overfull category

The diagnosis with real data from the database: agenda with 1,450 entries and 99.7% inside "culture"; tips with 727 and only 3 of 7 categories in use; getaways without their own type. The plan: closed taxonomies of 5 to 10 categories per collection, classifier by keywords for the obvious 60–80%, and LLM for the rest — about 110 calls with mistral-small for roughly €0.50, with a dry-run of 50 cards before touching anything.