+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Principles","text":"<ol> <li>Identify and empathise with all audience perspectives on the codebase - contributors, users, operators, AI agents, Build agents.</li> <li>Provide specific interfaces for each audience perspective.</li> <li>Ensure each audience interface is clean and remains maintainable.</li> <li>Provide a consistent abstraction over languages and frameworks.</li> <li>Provide a codebase experience that can be replicated by any audience, anywhere and on any platform.</li> <li>Do not be constrained by current technology and tools - provoke change to how we would like to interact with codebases over current constraints.</li> <li>Utilise cross platform and cross IDE tools and technologies to provide the interfaces.</li> <li>Empathise with your own future self who could become any of the audience perspectives at any time.</li> </ol>"},{"location":"benefits/","title":"Benefits","text":"<p>Benefits can be broken down per codebase audience type as they have been defined up-front. This is a benefit in itself as it allows to be considerate and then specific about the needs of each audience.</p>"},{"location":"benefits/#users","title":"Users","text":"<ul> <li>Users expect to interact with the codebase via a specific entry point that is the README.</li> <li>Users get a consistent experience across codebases and have expectations that can either be met or missed.</li> <li>Users understanding when expectations are missed promotes feedback and improvement.</li> <li>Users should be able to interact with the service based on the good user interface provided by the codebase.</li> </ul>"},{"location":"benefits/#contributors","title":"Contributors","text":"<ul> <li>Contributors expect to interact with the codebase via a specific entry point that is the README.</li> <li>Contributors get a consistent experience across codebases and have expectations that can either be met or missed.</li> <li>Contributors understanding when expectations are missed promotes feedback and improvement.</li> <li>Contributors should be able to make changes to the code base based on the good contributor interface provided by the codebase.</li> </ul>"},{"location":"benefits/#operators","title":"Operators","text":""},{"location":"benefits/#ai-agents","title":"AI Agents","text":""},{"location":"benefits/#build-agents","title":"Build Agents","text":""},{"location":"tooling/","title":"Tooling","text":""},{"location":"tooling/#abstractions","title":"Abstractions","text":"<ul> <li>Taskfile - A simple and easy to use task runner / build tool that aims to be a simpler and more powerful Make alternative. It is written in Go and uses a YAML file to define tasks. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be run from the command line.</li> </ul>"},{"location":"tooling/#ide-agnostic-files","title":"IDE Agnostic Files","text":"<ul> <li>EditorConfig - A file format and collection of text editor plugins for maintaining consistent coding styles between different editors and IDEs. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be used with any text editor or IDE that supports the EditorConfig file format.</li> <li><code>.gitignore</code> - A plain text file that tells Git which files and directories to ignore in a project. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be used with any text editor or IDE that supports Git.</li> <li><code>.gitattributes</code> - A plain text file that tells Git how to handle certain files in a project. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be used with any text editor or IDE that supports Git.</li> <li><code>.dockerignore</code> - A plain text file that tells Docker which files and directories to ignore when building an image. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be used with any text editor or IDE that supports Docker.</li> <li><code>.env</code> - A plain text file that contains environment variables for a project. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be used with any text editor or IDE that supports environment variables.</li> </ul>"}]}
0 commit comments