Specifications Are Coming


Specifications are documents that describe how software should behave and what functions it must perform. In other words, they are another implementation that exists independently of the actual program. By leveraging specifications, we can verify that our software is constructed correctly, which improves its safety and reliability. Yet maintaining specifications is hard and boring. Because specifications do not directly improve performance or features, most companies neglect them. Once a specification falls behind, it quickly degrades into legacy that nobody reads or maintains.…
Read more ⟶

Reinforced Concrete


The history of architecture can be divided into before and after the development of reinforced concrete. Steel rebar and concrete each have strength against different types of forces: tension and compression. When combined, both materials’ advantages can be fully utilized. Moreover, the two materials have nearly identical thermal expansion coefficients, preventing cracks from forming even with temperature changes. There are also attempts to develop reinforced concrete in the AI field: Neuro-Symbolic AI.…
Read more ⟶

A Language for Writing Prompts


It is arduous to read and remember a whole prompt written in natural language. For example, Claude’s system prompt is 16,000 words long. If the subject described in the prompt is constantly changing (e.g., API specification), the prompt must be continuously updated, which is a demanding task. This problem is very similar to the issue of inconsistency between traditional software specifications and their implementation. Because specifications are written in natural language, if the person in charge forgets, changes in the implementation may not be reflected in the specification, and discovering such inconsistencies is also presents a challenge.…
Read more ⟶