Loading the map…
Working with the map
The map connects a desired result to the architecture and the route that will realise it. Each intention immediately begins a line; several intentions and alternative routes can be developed together.
- Create an intention: describe the result and its observable criteria. It appears in the horizontal map immediately.
- Select its line and add a route. A route describes one way to realise that intention.
- Add architectural components and contracts or explanations. These are reusable records with stable identities.
- Add steps to the selected route. In each step, choose the existing components and explanations it uses. A step describes an action; a component describes part of the system.
- Select a step to reveal its linked records above. Use Edit to change it and Validate map to check the document.
- Apply a form, then save the map explicitly. File → Download JSON transfers the accepted map to another browser through Import.
When actions become available
- Intention is always available. Other creation actions open after the first intention. Existing imported records remain available for editing.
- Route requires a selected intention. Route step requires a selected route; use its line to choose the destination.
- Intersection requires at least two existing intentions, steps, components or explanations. Its form stays inactive until two different sources are selected. Routes and estimates are excluded.
What an intersection means
An intersection names a relationship worth explaining: for example, two steps depend on the same validation contract. Write the relationship in its note and choose its sources. Actual component reuse is expressed by both steps referencing the same component.
Several intentions and shared architecture
Add another intention to start another line. Add another route to explore an alternative for the same intention. Components and explanations can be shared across lines by identity; their names remain free to change. The arrows describe a route, while scheduling and time totals need a separate model.
File format and storage
Schema 2 is shared by CLI and WebAssembly. Language changes interface labels and help; authored text and machine IDs keep their original values. Maps are saved in this browser. JSON transfers the full map; Markdown provides a readable export.
HMAP: architecture with a readable trail
HMAP connects software architecture with a development roadmap. Inspired by an earlier review of Donald Knuth's Literate Programming, it brings intentions, reusable components and explanatory contracts into one readable map. Its C++ core and WebAssembly workspace keep the design and its implementation route together, so the reasoning remains part of the work.
Русский
HMAP: архитектура с понятным маршрутом
HMAP связывает архитектуру программы с дорожной картой разработки. Проект вдохновлён ранним обзором статьи Дональда Кнута «Литературное программирование»: намерения, переиспользуемые компоненты и поясняющие контракты образуют единую читаемую карту. Ядро на C++ и рабочая область на WebAssembly соединяют устройство системы с маршрутом реализации, сохраняя ход рассуждений частью работы.
Українська
HMAP: архітектура зі зрозумілим маршрутом
HMAP пов'язує архітектуру програми з дорожньою картою розроблення. Проєкт натхнений раннім оглядом статті Дональда Кнута «Літературне програмування»: наміри, повторно використовувані компоненти та пояснювальні контракти утворюють єдину читабельну карту. Ядро на C++ і робоча область на WebAssembly поєднують будову системи з маршрутом реалізації, зберігаючи хід міркувань частиною роботи.