omp-conductor 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +549 -234
  2. package/package.json +8 -5
  3. package/schema/config.schema.json +609 -0
  4. package/src/availability.ts +165 -0
  5. package/src/board.ts +19 -32
  6. package/src/brief-upgrade.ts +1 -1
  7. package/src/briefs/orchestrator.md +72 -31
  8. package/src/briefs/policy.md +48 -36
  9. package/src/briefs/probes/gates.md +51 -0
  10. package/src/briefs/probes/project-context.md +59 -0
  11. package/src/briefs/probes/release-procedure.md +81 -0
  12. package/src/cli.ts +356 -212
  13. package/src/config-schema.ts +352 -0
  14. package/src/config.ts +1037 -679
  15. package/src/confinement.ts +54 -0
  16. package/src/daemon.ts +644 -390
  17. package/src/diff-flags.ts +73 -4
  18. package/src/digest-schedule.ts +92 -24
  19. package/src/escalate.ts +89 -22
  20. package/src/fleet.ts +351 -46
  21. package/src/generate-schema.ts +21 -0
  22. package/src/graph.ts +3 -3
  23. package/src/host.ts +16 -0
  24. package/src/omp.ts +21 -1
  25. package/src/orchestrator-tick.ts +732 -56
  26. package/src/privileged.ts +264 -0
  27. package/src/reports.ts +203 -6
  28. package/src/session-host.ts +3 -0
  29. package/src/setup-host.ts +209 -24
  30. package/src/setup-install.ts +320 -0
  31. package/src/setup-probe.ts +412 -0
  32. package/src/setup-wizard.ts +1946 -0
  33. package/src/setup.ts +457 -53
  34. package/src/store.ts +610 -98
  35. package/src/tracker/github.ts +43 -5
  36. package/src/types.ts +153 -14
  37. package/src/upgrade.ts +44 -10
  38. package/src/verbs/actions.ts +131 -13
  39. package/src/verbs/server.ts +40 -18
  40. package/src/wizard-ui.ts +249 -0
  41. package/src/worker.ts +24 -7
  42. package/skills/conductor-onboarding/SKILL.md +0 -748
  43. package/skills/conductor-update/SKILL.md +0 -51
  44. package/src/plugin.ts +0 -1495
@@ -0,0 +1,81 @@
1
+ You are reading one repository to turn an operator's stated release *intent* into
2
+ that repository's own machinery. You have been given reading tools only: there is no shell,
3
+ no editor and no verb here, so reading and answering is the whole of what you can
4
+ do.
5
+
6
+ ## The one thing you must not do
7
+
8
+ **You are not deciding the release policy.** The operator has already decided it,
9
+ below. Your job is to find how this repository actually ships and express their
10
+ intent in its terms. Do not widen the boundary, do not add a step they did not
11
+ ask for, and do not write the procedure from the intent alone without reading the
12
+ repository — an invented procedure reads exactly like a real one and fails the
13
+ first time it is followed.
14
+
15
+ ## Stated intent — given, not yours to revise
16
+
17
+ - **Where the orchestrator's leg ends:** {{BOUNDARY}}
18
+ - **What may be released, and from which branch:** {{WHAT}}
19
+ - **When — batched how, after which named checks:** {{WHEN}}
20
+ - **Proof that must be held first:** {{PROOF}}
21
+ - **What must still be asked, every time:** {{ASK}}
22
+ - **Permanently forbidden:** {{FORBIDDEN}}
23
+ - **A release worth cutting:** {{WORTH_CUTTING}}
24
+ - **Rollback owner:** {{ROLLBACK_OWNER}}
25
+
26
+ ## Where you are, and what to read
27
+
28
+ Your working directory holds **one directory per routing repo**, each a shallow
29
+ clone. Release machinery does not always live in the repo you would expect, so look
30
+ across all of them before writing: the repo that ships may not be the first one.
31
+
32
+ Each routing key and the directory it was cloned into:
33
+
34
+ {{REPOS}}
35
+
36
+ **Name repos by their routing key, never by the directory.** The directory is
37
+ scratch and will not exist when anyone reads your answer; the key is what an issue
38
+ carries and what an orchestrator routes on.
39
+
40
+ In each, read the release workflows (`.github/workflows/*release*`, `*publish*`,
41
+ `*tag*`), the package manifest's version and publish configuration, any
42
+ `RELEASING.md` / `CONTRIBUTING.md` release section, and how a version is bumped.
43
+
44
+ For every workflow that publishes anything — a release, a tag, an image, a package,
45
+ a deployment — **the trigger is the fact that matters**:
46
+
47
+ - `workflow_dispatch` → the release is *dispatched*. That workflow is the authority,
48
+ and the instruction is "dispatch it with the planned version", never "do what it
49
+ does".
50
+ - `on: push: tags:` → a pushed tag is the trigger, so **tagging is releasing**.
51
+ - `on: release: published` → the GitHub Release is the trigger.
52
+
53
+ Also record **what the workflow enforces** — many reject a tag unless several
54
+ version files agree — because that is what turns a release attempt into a failure
55
+ an operator has to unpick.
56
+
57
+ Name the repo each step belongs to. A procedure that does not say where it runs is
58
+ one an orchestrator applies in the wrong checkout.
59
+
60
+ ## What to write
61
+
62
+ - **The named authority, and how it is invoked.** If shipping is a protected or
63
+ dispatchable workflow, the instruction is to *dispatch it and verify the run* —
64
+ never to reproduce what it does by hand, even when every step is visible. A
65
+ hand-rolled release skips the checks the workflow exists to enforce.
66
+ - **The steps on the agent's side, each with the check that proves it.** A step
67
+ with no verifiable outcome is a step that silently did not happen.
68
+ - **The forbidden list, with a file citation** — cite the file that says so
69
+ (`AGENTS.md`, a runbook) so the rule survives a future session that thinks it has
70
+ found a shortcut. Force-push, secrets and production data are forbidden
71
+ everywhere, always, whether or not this repository restates them.
72
+ - **Where the leg ends**, restated as a concrete artefact or commit, matching the
73
+ boundary above.
74
+
75
+ If the repository has no release machinery at all, say that in one line rather
76
+ than inventing a plausible one. That is a finding the operator needs.
77
+
78
+ ## Answer
79
+
80
+ One fenced markdown block containing the procedure and nothing else. No preamble,
81
+ no commentary after it.