SpolettaDocs

The OPM language

OPL sentences

OPL, the Object-Process Language, says the board in sentences, one fact per sentence. Spoletta writes the OPL of every board as you draw it. It is the fastest way to check a flow says what you meant.

Reading a flow's OPL

Press OPL in the board's toolbar. The panel lists the sentences, with Refresh and Copy. Objects come first, then processes from top to bottom as the board places them, then the start, the end, and each zoomed board indented beneath its flow process.

OPL · Release notes

Release manager is a person.

Release exhibits version and previous.

Notes can be approved, changes requested or rejected.

Pick release is a human process, which a person carries out.

Release manager handles Pick release.

Pick release has a person fill in Release.

Draft is an agent process, which an AI agent carries out.

Draft takes Release.

Draft yields Notes.

Approve is a human process, which a person carries out.

Release manager handles Approve.

Approve decides whether Notes is approved, changes requested or rejected.

Revise is an agent process, which an AI agent carries out.

Notes entering changes requested triggers Revise.

Revise yields Notes.

Post is an agent process, which an AI agent carries out.

Notes entering approved triggers Post.

The flow starts with Pick release.

Why it matters

  • Checking. Mistakes show up as missing or surprising sentences. No The flow starts with… means no start; an agent that takes something no sentence says is generated or filled in will get it empty.
  • Agents. Tick Tell it about the flow it works in, in OPL on an agent and its prompt includes the flow's OPL, so it knows where its step fits.
  • Designing. Write a flow as sentences first and read them to whoever asked for it. People check sentences far more easily than diagrams.

Every sentence

ConstructSentence
personEditor is a person.
listExceptions is a list of items, at least 1.
specializationBug is a Ticket.
storedExceptions is stored, so each run keeps what it generated of it.
sharedException is shared, so every flow using it reads and writes the same records.
statesPost can be good or weak.
ruleTicket is urgent when priority <= 2.
attributesTicket exhibits key and summary.
aggregated partsRelease consists of a list of Change.
kindFix is an agent process, which an AI agent carries out.
procedureTriage is a procedure, which runs the flow Triage ticket.
agent linkEditor handles Review.
eventPost entering weak triggers Write.
conditionFix occurs if Ticket is bug, and is skipped otherwise.
instrumentFix requires Guide, which it doesn't change.
consumptionShip consumes Token.
querySummarize looks up the latest 5 stored records of Review in approved where score >= 4.
plain inputFix takes Exception.
reviewCritic decides whether Post is good or weak.
decided outputTriage yields Ticket as bug or feature, deciding which.
entryRequest has a person fill in Ticket.
effectEdit affects Notes.
output in a stateDraft yields Notes as draft.
outputFix yields Patch.
quorumSummarize needs 2 of what it takes, and is skipped once it can't get them.
roundsCritic runs at most 3 rounds.
timeoutFix fails after 900 seconds.
retriesFix is tried again up to 2 times when it fails.
failureEscalate handles a failure of Fix.
nextOpen PR follows Fix.
startThe flow starts with Request.
end objectsThe flow ends with Report.
zoomEach exception zooms into:
Spoletta · spoletta.comBusiness processes, drawn and run.