PlayTime, Scriptbook, and CentrMark
Write this so someone with no background can follow.
What do I need?
You only need this page if you are changing how playbooks run, or how they talk to the Equivalence Engine.
The three names
Think of a cookbook, a kitchen, and the recipes on the page.
| Layer | Name | Job |
|---|---|---|
Format |
CentrMark ( |
The writing. Directives like |
Engine |
PlayTime |
The kitchen. It reads a playbook, learns what computer you are on, asks the Equivalence Engine for the right command, runs it, and writes a sidecar. It does not own package catalogs. It does not rewrite the |
App |
Scriptbook |
The reader. Today this is the |
- Keep the word playbook for the document (`
-
playbook`). PlayTime is the moment it runs. Scriptbook is the app that starts that moment.
Do not split PlayTime into a new GitHub repo yet. Today PlayTime is the D library in lib/. The CLI in cli/ is Scriptbook. The binary name stays scriptbook. It rhymes with OpenShellOrg (argv, host honesty). It stays here while it is being built.
Who may call whom
-
CentrMark must not call the Equivalence Engine.
-
PlayTime may call
libequivalence. -
Scriptbook may call PlayTime. It must not rank install methods itself.
-
The Equivalence Engine must not parse
.cmkfiles.
What this is not
This is not a translator that rewrites bash into PowerShell.
A playbook should name an intent (what you want). PlayTime binds that intent to a command for this computer. Glue that is already portable can stay as a Nushell (or other) script cell.
See:
-
Playbook profile — directives
-
Host Awareness — how PlayTime learns the OS
-
Sidecar schema — run records