Articles

What leaves the map: documents without AI, and private parts that never reach a prompt

In PlyLoom 0.11 the map became a source: a document, a table or a diagram is assembled from it with no AI and no network, and assembled again after any edit. Private sheets, nodes and attributes never go into a prompt, and go into a file for someone else only if you choose so. Before the map leaves, you can see it exactly as it will go.

An example in a minute

Take a training map from the examples. A shop has received version 3 of its returns policy, and by Friday the manager wants to know what it means for us. The map has five sheets: Changes, Affected processes, What to do, Questions, and a private sheet For me with my own assessments, not for sending around.

I open Project → Assemble a document…, choose every sheet and press Download .html. Out comes a memo: the changes with clause numbers in both versions, the processes they touch, the actions with owners and due dates, and the open questions at the end. The header names the map version the memo was built from. The For me sheet is not in it: private parts stay out of an assembly until I tick them in.

A memo assembled from the map: changes with clause numbers, relations to processes, the map version in the header
The memo opens in a browser and prints to PDF.

I saved the settings as the assembly Memo for the manager. A week later the briefing moves to 4 December. I change the date on one node and choose Project → Assemble again: Memo for the manager. The new memo has the new date and a new map version in its header. Open this example and try it yourself.

Why this was needed

Almost every use case ends not with a map but with a file for another person: a memo, a specification, a CV, a table. Yet all that came out of PlyLoom was .plyloom, .drawio and Canvas. Text for people could be had from an AI chat, but it came out different every time and could not be rebuilt after an edit.

Back in the first article I wrote about a single source: one fragment living in several documents. Assembly is the first working version of that idea.

A document is assembled from the map, not written again

  • A sheet becomes a section; a node becomes a subsection with its text, attributes and relations.
  • The order is how the sheet reads: top to bottom, left to right.
  • A node on several sheets is given in full once, then as a “see the section” reference.
  • The header and the footer name the map version.

It is the same idea as a build in code: one source, and the outputs are never edited by hand, only built again. No AI takes part in assembly, on purpose. The same map gives the same file byte for byte: nothing appears in the memo that is not in the map, and nothing that is in the map goes missing.

The Assemble from the map window: what goes in, the format, the boxes and the saved assembly Memo for the manager
Saved assemblies at the top; at the bottom, save the current settings under your own name.

A document comes in two formats. HTML reads in a browser, prints to PDF and opens in Word. Markdown suits wikis, Git and Obsidian.

Tables and a coverage matrix

The same map assembles into CSV: a row per node with its attributes, or a row per relation. Spreadsheets in European locales get semicolons, decimal commas and a UTF-8 mark. Text that looks like a formula starts with an apostrophe, so a table from someone else’s map runs nothing.

The most useful part is the rows × columns matrix: requirements as rows and checks as columns, say. A cell holds the relations between the two, and the last column counts the columns related to the row. A zero is a requirement without a single check. A sheet can also come out as Mermaid code for GitHub, GitLab, Obsidian and wikis.

Private: what never leaves the map

A sheet, a node or an attribute can be marked private. A node that stands only on a private sheet becomes private. A node that also stands on an ordinary sheet stays visible: its text is shared by all its sheets. To hide it completely, mark the node itself.

An AI — through the clipboard. The prompt is text you copy yourself. Private parts are cut out of it with their relations, and if a model returns the whole project, the comparison does not offer to delete them: the model never saw them.

People — through files. If the map has private parts, Download .plyloom asks who the file is for: “For me — the whole file” or “For someone else — without private parts”. When a colleague sends the copy back edited, Compare with a file shows their edits item by item and does not offer to delete what the copy never held.

What goes out: look before it leaves

Before a file for someone else, a prompt and an assembly there is a What goes out button. Left, the sheets and nodes: what goes, what stays with you, what goes without the values of private attributes, what is not part of this output. Right, the very text that goes, with a search that also says how many times the same words stand in the whole map.

What goes out: a file for someone else — the summary, the structure with a private sheet, and a search of the file’s text
A phrase from a private note: 0 in the output, 1 in the whole map.

The check looks for every private name, line of text and value in the output. A match is not always a leak: the same words can stand in an ordinary node. But if you typed your e-mail by hand into an ordinary node, it goes out with that node — and the check shows which private string it came from.

Limits

  • A document is assembled from whole sheets. Several documents from shared fragments in one archive is the next step.
  • The styling is plain: a document in a company template needs a finishing pass in Word.
  • The check looks for private text as whole strings; a retelling in other words gets past it.
  • Privacy is your local mark: it never arrives with edits and is not compared.

Screenshots are from version 0.11.1 on the training maps “A new version of the returns policy” and “A CV: one achievement, many applications”; the shop, the policy and the person are fictional.

Read also