Hacker News new | ask | show | jobs
by apinstein 18 days ago
> The shared language of a software project is not English or Python but it is the common understanding of what its concepts mean, where the boundaries are, which invariants matter, who owns what, and why the system has the shape it does. This language is rarely written down in one place. It lives partly in documentation and code, but also in code review, conversations, arguments, and the experience of having to explain a change to somebody else.

This is so true. I am a big fan of Christopher Alexander’s “Pattern Language” concept, which addresses this exact problem! In fact he recommends developing your own pattern languages for your own domains (which of course led to the famous GoF Design Patterns book).

I have been experimenting with a “Pattern Language” skill which instructs the AI to maintain 3 pattern languages for every project. One in the business domain, one in the product domain, and one in the technical domain. It is working really well. It is always super cool to see it reference the pattern languages during planning and curate them during implementation and review.

I credit using it with keeping my 100% ai-coded projects well organized, aligned across domains, and easy to work on.

3 comments

Would be interesting to see an example. I heard a couple times that code maturance is very similar on how a city grows naturally, but never seen an example.
Here is the “internal” pattern language I started on “patterns for building software projects with AI”: https://github.com/apinstein/pattern-language-building-with-...

It’s mostly AI-written patterns based on my personal prompts/observations.

And here is the skill for organizing the pattern languages for a single project:

https://github.com/apinstein/skills/tree/main/skills/pattern...

I haven’t really battle tested these so hard yet but it’s a fun concept and really should get back to organizing them more intentionally. Happy to share this early phase just cause it’s cool to see the interest.

Do you have any github examples publically available?