I felt something was off with my project, but I was shocked that modern AI models, by default, lack even basic, universally useful project management skills.

Discussion

I was surprised that modern AI models, by default, lack even basic project management skills, especially since these rules seem obvious to me, because they are pretty universal and extremely useful not only for LLMs due to better context management and simpler debugging, but also for humans.

I was trying to build a relatively small yet complicated app as a personal benchmark of modern models' capabilities.

I am something of an ex-programmer (C/C++) myself. And I learned a bit of C# as a hobby because I was curious. Therefore, I touched upon OOP and its principles. So I grasped some basic concepts.

Even though I am a complete amateur in this and have not spent many years doing it, I came to understand for myself the main purpose of programming.

I see it as translating and carefully describing processes, as if you were writing a very structured, highly detailed book about what is happening and what you are doing with data. Something like an analytical philosophy book or a book about logical principles. Programming languages are LANGUAGES. Therefore, all this should be extremely carefully grouped, organized and understandable.

I naively expected that frontier AI labs would bake basic project-management rules like, at least, file-length limits (e.g., 120 lines) or folder structures into their system prompts, harnesses or RL training, let alone logic flowcharts or something similar.

I found out, in my experience, that current LLMs do not follow even elementary SWE practices unless you explicitly tell them to. (Maybe some harnesses or wrappers do it, but I used Hermes, DeepSeek Harness, Little-Coder, and Arena AI Code Mode. I did not see it in any of them.)

So, if you care and know about something that seems obvious, do not assume anyone has done it for you. It is better to spell out those constraints yourself, manually write skills for that and put them in the very first prompt.

To me, current chatbots seem more like an impressive technical demo than finished, refined, products. They require a lot of thinking through, guiding and manuallu crafted pipelines. Now I will keep it in mind.

My examples of rules:

  1. Keep no more than 12 visible items in the repository root. Explanation: Only directory nodes, repository entry docs (README.md, .gitignore), and the primary dependency manifest belong in root. Specific tool configs (linters, formatters, build runners) must be moved into subfolders. Mediocre: 18 items, 6 of them linter configs. Error: Moving package.json into config/ just to reduce the item count. Ideal: src/ tests/ docs/ scripts/ README md .gitignore pyproject.toml.

  2. Avoid creating files longer than 120 lines (2,500 characters max) or folders containing more than 7 items. Explanation: Decompose by domain logic rather than mechanically slice by line count. Mediocre: A 900-line file split into 9 files of 100 lines each. Error: Fragmenting into 30 files of 30 lines each. Ideal: checkout.ts → checkout/{cart,tax,discount,total}.ts.

  3. Limit function bodies to 40 lines; extract any block that requires a header comment into a separate function. Explanation: Do not write inline section comments inside functions. If a group of lines requires an explanatory comment, encapsulate those lines in a helper function instead. Maintain a maximum of 2 levels of indentation per function. Any deeper control structure (`if`, `for`, `try/catch`) must be extracted into a standalone helper function. Mediocre: 60 lines with two logical blocks. Error: A 300-line process() function handling parsing, calculations, emailing, and database writes.

Ideal: parseOrder(), calcTotal(), sendReceipt() inside handleOrder().

Posted Sep 23, 2026, 8:35 AM UTC

010
Loading comments…