logoalt Hacker News

ajmurmann • yesterday at 8:06 PM • 1 reply • view on HN

I think he's right in that the software factory somewhat should emerge. You shouldn't start a project by saying "well, I first should build a software factory to make this faster". Start by building the thing by directing an agent. If you find yourself writing the same thing over and over put it into a skill which you should think of and treat as a macro. When you find yourself developing clear patterns what skill gets invoked when it might be time to start a software factory which in essence puts those decisions and relevant informations behind a pretty interface.

My software factory emerged that way and for the 50-70% of simpler tasks I work on this saves me so much time and, more importantly, mental overhead.


Replies

brightball • today at 2:24 AM

I mean, my personal software factory was building one small project with an overtly enthusiastic and strict set of precommit checks that all must pass. Then starting every new project with "using the same precommit checks from project X"

Using Elixir, Phoenix, LiveView and Ash for everything creates a very well defined and verifiable structure for every part of the codebase with a precommit that looks like this:

  precommit: [
    "compile --warnings-as-errors", # Fail compilation if any warnings exist
    "deps.unlock --check-unused", # Fail if unused dependencies are unlocked
    "deps.audit", # Scan dependencies for known security vulnerabilities
    "cmd mix hex.audit", # Audit Hex packages for retired or vulnerable versions
    "migrations.safety", # Check database migrations for unsafe operations
    "format --check-formatted", # Verify code matches the formatter style
    "credo --strict", # Run strict static code analysis checks
    "sobelow --exit --threshold high --skip", # Fail on high-confidence security issues only
    "ash.codegen --check", # Ensure Ash generated code is up to date
    "usage_rules.sync --check", # Verify usage rules are synchronized
    "cmd bun run lint", # If there's JS beyond LiveView
    "test" # Run the full test suite
  ]
The result has been excellent consistency across my code base and the AI learns fast how it should be working. Everything comes out very readable if I want to dig into something.

For the most part, everything I ask for gets 1 shotted with this approach with typically rare minor tweaks and refinements.

➕ show 1 reply