@jeger-ai/opengantry 2.2.5 → 2.3.1

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 (267) hide show
  1. package/README.md +61 -59
  2. package/dist/cli/commands/context-request.d.ts +2 -2
  3. package/dist/cli/commands/context-request.d.ts.map +1 -1
  4. package/dist/cli/commands/context-request.js +13 -13
  5. package/dist/cli/commands/context-request.js.map +1 -1
  6. package/dist/cli/commands/doctor.d.ts.map +1 -1
  7. package/dist/cli/commands/doctor.js +2 -2
  8. package/dist/cli/commands/doctor.js.map +1 -1
  9. package/dist/cli/commands/init.js +2 -2
  10. package/dist/cli/commands/onboarding.js +4 -4
  11. package/dist/cli/commands/onboarding.js.map +1 -1
  12. package/dist/cli/commands/planner.d.ts +11 -0
  13. package/dist/cli/commands/{teacher.d.ts.map → planner.d.ts.map} +1 -1
  14. package/dist/cli/commands/{teacher.js → planner.js} +11 -11
  15. package/dist/cli/commands/{teacher.js.map → planner.js.map} +1 -1
  16. package/dist/cli/commands/runtime.d.ts +1 -1
  17. package/dist/cli/commands/runtime.d.ts.map +1 -1
  18. package/dist/cli/commands/runtime.js +4 -4
  19. package/dist/cli/commands/runtime.js.map +1 -1
  20. package/dist/cli/commands/status.js +2 -2
  21. package/dist/cli/commands/status.js.map +1 -1
  22. package/dist/cli/lib/audience-output.d.ts +2 -2
  23. package/dist/cli/lib/audience-output.d.ts.map +1 -1
  24. package/dist/cli/lib/audience-output.js +27 -38
  25. package/dist/cli/lib/audience-output.js.map +1 -1
  26. package/dist/cli/lib/break-glass.js +1 -1
  27. package/dist/cli/lib/command-reporter.d.ts.map +1 -1
  28. package/dist/cli/lib/command-reporter.js +9 -4
  29. package/dist/cli/lib/command-reporter.js.map +1 -1
  30. package/dist/cli/lib/config-namespace.d.ts +2 -2
  31. package/dist/cli/lib/config-namespace.js +2 -2
  32. package/dist/cli/lib/constants.d.ts +8 -8
  33. package/dist/cli/lib/constants.d.ts.map +1 -1
  34. package/dist/cli/lib/constants.js +8 -8
  35. package/dist/cli/lib/constants.js.map +1 -1
  36. package/dist/cli/lib/context-feed-remediation.d.ts.map +1 -1
  37. package/dist/cli/lib/context-feed-remediation.js +25 -3
  38. package/dist/cli/lib/context-feed-remediation.js.map +1 -1
  39. package/dist/cli/lib/context-request.d.ts +4 -4
  40. package/dist/cli/lib/context-request.d.ts.map +1 -1
  41. package/dist/cli/lib/context-request.js +11 -11
  42. package/dist/cli/lib/context-request.js.map +1 -1
  43. package/dist/cli/lib/doctor-core.d.ts.map +1 -1
  44. package/dist/cli/lib/doctor-core.js +49 -20
  45. package/dist/cli/lib/doctor-core.js.map +1 -1
  46. package/dist/cli/lib/doctor-types.d.ts +2 -2
  47. package/dist/cli/lib/errors.js +6 -6
  48. package/dist/cli/lib/errors.js.map +1 -1
  49. package/dist/cli/lib/executor-log-integrity.d.ts +4 -0
  50. package/dist/cli/lib/executor-log-integrity.d.ts.map +1 -0
  51. package/dist/cli/lib/executor-log-integrity.js +48 -0
  52. package/dist/cli/lib/executor-log-integrity.js.map +1 -0
  53. package/dist/cli/lib/{worker-log-line-map.d.ts → executor-log-line-map.d.ts} +4 -4
  54. package/dist/cli/lib/executor-log-line-map.d.ts.map +1 -0
  55. package/dist/cli/lib/{worker-log-line-map.js → executor-log-line-map.js} +4 -4
  56. package/dist/cli/lib/executor-log-line-map.js.map +1 -0
  57. package/dist/cli/lib/file-merge-gxt.js +1 -1
  58. package/dist/cli/lib/file-merge-gxt.js.map +1 -1
  59. package/dist/cli/lib/fix-hints.d.ts +6 -6
  60. package/dist/cli/lib/fix-hints.d.ts.map +1 -1
  61. package/dist/cli/lib/fix-hints.js +36 -30
  62. package/dist/cli/lib/fix-hints.js.map +1 -1
  63. package/dist/cli/lib/git-metrics.js +10 -10
  64. package/dist/cli/lib/git-metrics.js.map +1 -1
  65. package/dist/cli/lib/git-proof.d.ts +7 -5
  66. package/dist/cli/lib/git-proof.d.ts.map +1 -1
  67. package/dist/cli/lib/git-proof.js +42 -19
  68. package/dist/cli/lib/git-proof.js.map +1 -1
  69. package/dist/cli/lib/gxt-config.d.ts +9 -0
  70. package/dist/cli/lib/gxt-config.d.ts.map +1 -0
  71. package/dist/cli/lib/gxt-config.js +20 -0
  72. package/dist/cli/lib/gxt-config.js.map +1 -0
  73. package/dist/cli/lib/gxt-error-codes.d.ts +2 -0
  74. package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
  75. package/dist/cli/lib/gxt-error-codes.js +7 -3
  76. package/dist/cli/lib/gxt-error-codes.js.map +1 -1
  77. package/dist/cli/lib/init-compose.js +1 -1
  78. package/dist/cli/lib/init-interactive.js +1 -1
  79. package/dist/cli/lib/init-interactive.js.map +1 -1
  80. package/dist/cli/lib/init-plan.d.ts.map +1 -1
  81. package/dist/cli/lib/init-plan.js +6 -18
  82. package/dist/cli/lib/init-plan.js.map +1 -1
  83. package/dist/cli/lib/init-tutorial.js +14 -14
  84. package/dist/cli/lib/init-tutorial.js.map +1 -1
  85. package/dist/cli/lib/kpi-engine.d.ts +1 -1
  86. package/dist/cli/lib/kpi-engine.d.ts.map +1 -1
  87. package/dist/cli/lib/kpi-engine.js +15 -11
  88. package/dist/cli/lib/kpi-engine.js.map +1 -1
  89. package/dist/cli/lib/legislate-forbidden-zone.d.ts +7 -0
  90. package/dist/cli/lib/legislate-forbidden-zone.d.ts.map +1 -0
  91. package/dist/cli/lib/legislate-forbidden-zone.js +43 -0
  92. package/dist/cli/lib/legislate-forbidden-zone.js.map +1 -0
  93. package/dist/cli/lib/legislate.d.ts.map +1 -1
  94. package/dist/cli/lib/legislate.js +7 -3
  95. package/dist/cli/lib/legislate.js.map +1 -1
  96. package/dist/cli/lib/mcp-governance.d.ts +2 -2
  97. package/dist/cli/lib/mcp-governance.d.ts.map +1 -1
  98. package/dist/cli/lib/mcp-governance.js +40 -10
  99. package/dist/cli/lib/mcp-governance.js.map +1 -1
  100. package/dist/cli/lib/mcp-tools-register.js +3 -3
  101. package/dist/cli/lib/mcp-tools-register.js.map +1 -1
  102. package/dist/cli/lib/mcp-upgrade.d.ts.map +1 -1
  103. package/dist/cli/lib/mcp-upgrade.js +8 -0
  104. package/dist/cli/lib/mcp-upgrade.js.map +1 -1
  105. package/dist/cli/lib/mcp-write-guard.d.ts +20 -0
  106. package/dist/cli/lib/mcp-write-guard.d.ts.map +1 -0
  107. package/dist/cli/lib/mcp-write-guard.js +82 -0
  108. package/dist/cli/lib/mcp-write-guard.js.map +1 -0
  109. package/dist/cli/lib/missions/formatter.d.ts +1 -1
  110. package/dist/cli/lib/missions/formatter.js +1 -1
  111. package/dist/cli/lib/onboarding-flow.js +1 -1
  112. package/dist/cli/lib/out-of-scope-hint.js +1 -1
  113. package/dist/cli/lib/perimeter.d.ts +1 -1
  114. package/dist/cli/lib/perimeter.js +10 -10
  115. package/dist/cli/lib/planner-identity.d.ts +23 -0
  116. package/dist/cli/lib/{teacher-identity.d.ts.map → planner-identity.d.ts.map} +1 -1
  117. package/dist/cli/lib/{teacher-identity.js → planner-identity.js} +34 -34
  118. package/dist/cli/lib/{teacher-identity.js.map → planner-identity.js.map} +1 -1
  119. package/dist/cli/lib/planner-signature.d.ts +11 -0
  120. package/dist/cli/lib/planner-signature.d.ts.map +1 -0
  121. package/dist/cli/lib/planner-signature.js +17 -0
  122. package/dist/cli/lib/planner-signature.js.map +1 -0
  123. package/dist/cli/lib/program-audience-hook.js +1 -1
  124. package/dist/cli/lib/program-audience-hook.js.map +1 -1
  125. package/dist/cli/lib/register-proposals.js +1 -1
  126. package/dist/cli/lib/runtime-env.d.ts +3 -3
  127. package/dist/cli/lib/runtime-env.d.ts.map +1 -1
  128. package/dist/cli/lib/runtime-env.js +4 -4
  129. package/dist/cli/lib/runtime-env.js.map +1 -1
  130. package/dist/cli/lib/runtime-exec.d.ts +4 -4
  131. package/dist/cli/lib/runtime-exec.d.ts.map +1 -1
  132. package/dist/cli/lib/runtime-exec.js +14 -14
  133. package/dist/cli/lib/runtime-exec.js.map +1 -1
  134. package/dist/cli/lib/staged-tmvc-guard.js +1 -1
  135. package/dist/cli/lib/staged-tmvc-guard.js.map +1 -1
  136. package/dist/cli/lib/start-orchestration.d.ts.map +1 -1
  137. package/dist/cli/lib/start-orchestration.js +28 -13
  138. package/dist/cli/lib/start-orchestration.js.map +1 -1
  139. package/dist/cli/lib/status-report.d.ts +1 -1
  140. package/dist/cli/lib/status-report.js +7 -7
  141. package/dist/cli/lib/status-report.js.map +1 -1
  142. package/dist/cli/lib/surgeon.d.ts +3 -3
  143. package/dist/cli/lib/surgeon.d.ts.map +1 -1
  144. package/dist/cli/lib/surgeon.js +7 -7
  145. package/dist/cli/lib/surgeon.js.map +1 -1
  146. package/dist/cli/lib/surgeons/registry.d.ts +1 -1
  147. package/dist/cli/lib/surgeons/registry.d.ts.map +1 -1
  148. package/dist/cli/lib/telemetry-log.d.ts +1 -1
  149. package/dist/cli/lib/telemetry-log.d.ts.map +1 -1
  150. package/dist/cli/lib/telemetry-log.js +4 -4
  151. package/dist/cli/lib/telemetry-log.js.map +1 -1
  152. package/dist/cli/lib/tmvc-path.d.ts +1 -1
  153. package/dist/cli/lib/tmvc-path.d.ts.map +1 -1
  154. package/dist/cli/lib/tmvc-path.js +1 -1
  155. package/dist/cli/lib/tmvc-path.js.map +1 -1
  156. package/dist/cli/lib/trace.d.ts +8 -8
  157. package/dist/cli/lib/trace.d.ts.map +1 -1
  158. package/dist/cli/lib/trace.js +21 -21
  159. package/dist/cli/lib/trace.js.map +1 -1
  160. package/dist/cli/lib/triage-logic.js +1 -1
  161. package/dist/cli/lib/types.d.ts +1 -1
  162. package/dist/cli/lib/upgrade-apply.d.ts.map +1 -1
  163. package/dist/cli/lib/upgrade-apply.js +14 -2
  164. package/dist/cli/lib/upgrade-apply.js.map +1 -1
  165. package/dist/cli/lib/upgrade-plan.js +3 -3
  166. package/dist/cli/lib/verify-engine.d.ts +8 -5
  167. package/dist/cli/lib/verify-engine.d.ts.map +1 -1
  168. package/dist/cli/lib/verify-engine.js +40 -30
  169. package/dist/cli/lib/verify-engine.js.map +1 -1
  170. package/dist/cli/lib/verify-failure-normalize-phases.d.ts +1 -1
  171. package/dist/cli/lib/verify-failure-normalize-phases.d.ts.map +1 -1
  172. package/dist/cli/lib/verify-failure-normalize-phases.js +1 -1
  173. package/dist/cli/lib/verify-failure-normalize-phases.js.map +1 -1
  174. package/dist/cli/lib/verify-failure-normalize.d.ts +54 -8
  175. package/dist/cli/lib/verify-failure-normalize.d.ts.map +1 -1
  176. package/dist/cli/lib/verify-failure-normalize.js +0 -25
  177. package/dist/cli/lib/verify-failure-normalize.js.map +1 -1
  178. package/dist/cli/lib/verify-hints.d.ts +3 -2
  179. package/dist/cli/lib/verify-hints.d.ts.map +1 -1
  180. package/dist/cli/lib/verify-hints.js +33 -24
  181. package/dist/cli/lib/verify-hints.js.map +1 -1
  182. package/dist/cli/lib/verify-payload-types.d.ts +1 -0
  183. package/dist/cli/lib/verify-payload-types.d.ts.map +1 -1
  184. package/dist/cli/lib/verify-payload.d.ts.map +1 -1
  185. package/dist/cli/lib/verify-payload.js +3 -0
  186. package/dist/cli/lib/verify-payload.js.map +1 -1
  187. package/dist/cli/lib/verify-presentation.d.ts +4 -4
  188. package/dist/cli/lib/verify-presentation.d.ts.map +1 -1
  189. package/dist/cli/lib/verify-presentation.js +6 -2
  190. package/dist/cli/lib/verify-presentation.js.map +1 -1
  191. package/dist/cli/lib/verify-presenters.js +3 -3
  192. package/dist/cli/lib/verify-presenters.js.map +1 -1
  193. package/dist/cli/lib/version.gen.d.ts +1 -1
  194. package/dist/cli/lib/version.gen.js +1 -1
  195. package/dist/cli/program-core.d.ts.map +1 -1
  196. package/dist/cli/program-core.js +4 -17
  197. package/dist/cli/program-core.js.map +1 -1
  198. package/dist/cli/program-mission.js +15 -15
  199. package/dist/cli/program-mission.js.map +1 -1
  200. package/dist/cli/program-planner.d.ts +3 -0
  201. package/dist/cli/program-planner.d.ts.map +1 -0
  202. package/dist/cli/program-planner.js +19 -0
  203. package/dist/cli/{program-teacher.js.map → program-planner.js.map} +1 -1
  204. package/dist/cli/program-workflow.js +7 -7
  205. package/dist/cli/program-workflow.js.map +1 -1
  206. package/dist/cli/program.js +3 -3
  207. package/dist/cli/program.js.map +1 -1
  208. package/package.json +3 -2
  209. package/templates/.cursor/hooks/gxt-before-shell.sh +4 -4
  210. package/templates/.cursor/hooks/gxt-session-start.sh +2 -2
  211. package/templates/.cursor/rules/opengantry-gxt-substrate.mdc +4 -4
  212. package/templates/.gitagent/ARCHITECTURE.pointer.json +2 -2
  213. package/templates/.gitagent/foreman/MANIFEST.json +3 -3
  214. package/templates/.gitagent/foreman/PLANNER.allowlist.example +4 -0
  215. package/templates/.gitagent/missions/README.md +1 -1
  216. package/templates/.gitagent/{teacher → planner}/ARCHITECTURE-ACCESS.md +3 -3
  217. package/templates/.gitagent/{teacher → planner}/ARCHITECTURE-DISCOVERY.md +2 -2
  218. package/templates/.gitagent/{teacher/WORKER_LOG.template.md → planner/EXECUTOR_LOG.template.md} +2 -2
  219. package/templates/.gitagent/{teacher → planner}/MISSION-ARCHITECT.md +11 -11
  220. package/templates/.gitagent/{teacher → planner}/RULES.md +4 -4
  221. package/templates/.githooks/post-checkout +4 -4
  222. package/templates/.githooks/pre-push +1 -1
  223. package/templates/.github/workflows/gxt-validate.yml +1 -1
  224. package/templates/.gitignore.gxt +1 -1
  225. package/templates/.prettierignore.gxt +1 -1
  226. package/templates/AGENTS.md +6 -6
  227. package/templates/docs/ARCHITECTURE.md +2 -2
  228. package/templates/integrations/aider/.aider.conf.yml +1 -1
  229. package/templates/integrations/antigravity/.agent/rules/gxt.md +1 -1
  230. package/templates/integrations/asset-catalog.json +7 -7
  231. package/templates/integrations/claude-code/CLAUDE.md +1 -1
  232. package/templates/integrations/cline/.clinerules/gxt.md +1 -1
  233. package/templates/integrations/compatibility.json +1 -1
  234. package/templates/integrations/junie/.junie/guidelines.md +1 -1
  235. package/templates/integrations/opencode/opencode.json +1 -1
  236. package/templates/integrations/openhands/.openhands/microagents/gxt.md +1 -1
  237. package/templates/integrations/recipes/_footer.md +7 -7
  238. package/templates/integrations/recipes/_preamble.md +7 -7
  239. package/templates/integrations/recipes/claude-code.md +1 -1
  240. package/templates/integrations/recipes/cursor.md +2 -2
  241. package/templates/scripts/gxt-manifest-lib.mjs +30 -5
  242. package/templates/scripts/gxt-runtime-env.sh +1 -1
  243. package/templates/scripts/validate-gxt.sh +6 -1
  244. package/templates/skills/gantry.md +1 -1
  245. package/templates/skills/substrate.md +1 -1
  246. package/dist/cli/commands/teacher.d.ts +0 -11
  247. package/dist/cli/lib/teacher-identity.d.ts +0 -23
  248. package/dist/cli/lib/verify-failure-format.d.ts +0 -4
  249. package/dist/cli/lib/verify-failure-format.d.ts.map +0 -1
  250. package/dist/cli/lib/verify-failure-format.js +0 -6
  251. package/dist/cli/lib/verify-failure-format.js.map +0 -1
  252. package/dist/cli/lib/verify-failure-normalize-types.d.ts +0 -32
  253. package/dist/cli/lib/verify-failure-normalize-types.d.ts.map +0 -1
  254. package/dist/cli/lib/verify-failure-normalize-types.js +0 -2
  255. package/dist/cli/lib/verify-failure-normalize-types.js.map +0 -1
  256. package/dist/cli/lib/verify-failure-presentation-types.d.ts +0 -29
  257. package/dist/cli/lib/verify-failure-presentation-types.d.ts.map +0 -1
  258. package/dist/cli/lib/verify-failure-presentation-types.js +0 -2
  259. package/dist/cli/lib/verify-failure-presentation-types.js.map +0 -1
  260. package/dist/cli/lib/worker-log-line-map.d.ts.map +0 -1
  261. package/dist/cli/lib/worker-log-line-map.js.map +0 -1
  262. package/dist/cli/program-teacher.d.ts +0 -3
  263. package/dist/cli/program-teacher.d.ts.map +0 -1
  264. package/dist/cli/program-teacher.js +0 -19
  265. package/templates/.gitagent/foreman/TEACHER.allowlist.example +0 -4
  266. /package/templates/.gitagent/{teacher → planner}/KPI-REPORT.schema.yaml +0 -0
  267. /package/templates/.gitagent/{teacher → planner}/MISSION.schema.yaml +0 -0
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **OpenGantry is a platform for Autonomous Repository Engineering** — AI-assisted product delivery where every material agent change is scoped before execution, verified by deterministic gates, and traceable in Git before merge.
4
4
 
5
- It is **not** a real-time conversational agent wrapper. Use OpenGantry when you need auditable, mission-scoped repository work with explicit Teacher approval and forensic trace.
5
+ It is **not** a real-time conversational agent wrapper. Use OpenGantry when you need auditable, mission-scoped repository work with explicit Planner approval and forensic trace.
6
6
 
7
7
  > **Not [Gantry.io](https://gantry.io)?** **Open Source Gantry** is the **`gantry` CLI** for **local-first**, **vendor-neutral**, **git-native governance** in your repository — not a hosted observability dashboard. If you are looking for infrastructure monitoring, see [Gantry.io](https://gantry.io).
8
8
 
@@ -14,11 +14,11 @@ Use OpenGantry when you need:
14
14
 
15
15
  ### What you get in production
16
16
 
17
- - **Review before run:** workers do not complete the loop until a human-approved mission defines scope, gates, and trace rows.
18
- - **No silent governance edits:** hooks and `gantry verify` fail closed on law, manifest, and mission paths without a Teacher `[MSN-XXXX]` commit.
19
- - **Audit in Git:** `git log --grep='MSN-0042'` plus `WORKER_LOG.md` quotes that verifiers must cite verbatim.
17
+ - **Review before run:** executors do not complete the loop until a human-approved mission defines scope, gates, and trace rows.
18
+ - **No silent governance edits:** hooks and `gantry verify` fail closed on law, manifest, and mission paths without a Planner `[MSN-XXXX]` commit.
19
+ - **Audit in Git:** `git log --grep='MSN-0042'` plus `EXECUTOR_LOG.md` quotes that verifiers must cite verbatim.
20
20
 
21
- **Protocol (implementers):** under the hood, **GXT (Git-native eXecution and Trace)** binds law, Foreman routing, deterministic gates, and trace mapping to `WORKER_LOG.md`. This repository is both the **specimen** and the **template**. Run **`gantry init`** (or **`gantry init --tutorial`**) in your repo and adapt it.
21
+ **Protocol (implementers):** under the hood, **GXT (Git-native eXecution and Trace)** binds law, Foreman routing, deterministic gates, and trace mapping to `EXECUTOR_LOG.md`. This repository is both the **specimen** and the **template**. Run **`gantry init`** (or **`gantry init --tutorial`**) in your repo and adapt it.
22
22
 
23
23
  ## Gantry CLI — local-first governance
24
24
 
@@ -59,7 +59,7 @@ Developing this repository from source: `npm ci && npm run build` — see [gantr
59
59
  | **See benchmark ROI (3 min)** | [`examples/benchmark-agent/`](examples/benchmark-agent/) → [`docs/ADOPTION.md`](docs/ADOPTION.md) |
60
60
  | **Wire IDE agents** | [`docs/INTEGRATIONS.md`](docs/INTEGRATIONS.md) |
61
61
  | **Contribute / dogfood** | [`docs/DEVELOPMENT.md`](docs/DEVELOPMENT.md) |
62
- | **Governance law + workflow** | [`.gitagent/README.md`](.gitagent/README.md) · [`.gitagent/teacher/RULES.md`](.gitagent/teacher/RULES.md) |
62
+ | **Governance law + workflow** | [`.gitagent/README.md`](.gitagent/README.md) · [`.gitagent/planner/RULES.md`](.gitagent/planner/RULES.md) |
63
63
  | **Roadmap / open work** | [`docs/BACKLOG.md`](docs/BACKLOG.md) |
64
64
  | **Compliance framing** | [`docs/COMPLIANCE-ISO.md`](docs/COMPLIANCE-ISO.md) |
65
65
  | **Ephemeral virtualization (stretch)** | [`docs/ADR-EPHEMERAL-VIRTUALIZATION.md`](docs/ADR-EPHEMERAL-VIRTUALIZATION.md) |
@@ -69,19 +69,21 @@ Developing this repository from source: `npm ci && npm run build` — see [gantr
69
69
  | Outcome | How OpenGantry delivers it |
70
70
  |---------|---------------------------|
71
71
  | **Lower onboarding friction** | `gantry init --tutorial`, `gantry onboarding`, `gantry start "<intent>"`, `gantry status --json` |
72
- | **No unreviewed agent scope** | Teacher reviews mission YAML **before** `runtime env` / worker execution; TMVC roots + forbidden zones enforce paths |
73
- | **Audit-ready evidence** | `[MSN-XXXX]` commit subjects; verifier PASS requires a verbatim quote from `WORKER_LOG.md` |
72
+ | **No unreviewed agent scope** | Planner reviews mission YAML **before** `runtime env` / executor execution; TMVC roots + forbidden zones enforce paths |
73
+ | **Audit-ready evidence** | `[MSN-XXXX]` commit subjects; verifier PASS requires a verbatim quote from `EXECUTOR_LOG.md` |
74
74
  | **Regulated / ISO-aligned workflows** | SOD, mission authorization, and Git-native trace — see [`docs/COMPLIANCE-ISO.md`](docs/COMPLIANCE-ISO.md) (27001 change control, 42001 AI governance) |
75
- | **Faster recovery from failure** | Stable `GXT_*` error codes, `gantry verify --fix`, role output via `--audience worker\|teacher\|verifier` |
75
+ | **Faster recovery from failure** | Stable `GXT_*` error codes, `gantry verify --fix`, role output via `--audience executor\|planner\|verifier` |
76
76
 
77
- **Protocol maturity:** substrate law **v0.5.0**; **`gantry` v2.2.5** — unified CLI naming (`gantry` primary; legacy `gapman` alias). Current npm publish: **v2.2.5**. See [.gitagent/teacher/RUNTIME.md](.gitagent/teacher/RUNTIME.md).
77
+ **Protocol maturity:** substrate law **v0.5.0**; **`gantry` v2.3.1** — unified CLI naming (`gantry` primary; legacy `gapman` alias). Current npm publish: **v2.3.1**. See [.gitagent/planner/RUNTIME.md](.gitagent/planner/RUNTIME.md).
78
78
 
79
79
  ## Release timeline (latest first)
80
80
 
81
- Current npm release in this repository: **`gantry` v2.2.5**. Use [`docs/ADOPTION.md`](docs/ADOPTION.md) for the ordered runbook.
81
+ Current npm release in this repository: **`gantry` v2.3.1**. Use [`docs/ADOPTION.md`](docs/ADOPTION.md) for the ordered runbook.
82
82
 
83
83
  | Release | Highlights |
84
84
  |---------|------------|
85
+ | **v2.3.1** | **Breaking:** Planner/Executor rename ([#110](https://github.com/jeger-ai/opengantry/issues/110)) — `gantry planner`, `.gitagent/planner/`, `EXECUTOR_LOG.md`, `GXT_PLANNER_*` / `GXT_EXECUTOR_*` env vars (no aliases). ADR-gated cage: MCP write guard ([#14](https://github.com/jeger-ai/opengantry/issues/14)), break-glass ADR ([#17](https://github.com/jeger-ai/opengantry/issues/17)), optional `planner_signature` tier ([#37](https://github.com/jeger-ai/opengantry/issues/37)) |
86
+ | **v2.3.0** | Cage hardening — `gen:dogfood` ([#105](https://github.com/jeger-ai/opengantry/issues/105)), typed `kpiKind` ([#103](https://github.com/jeger-ai/opengantry/issues/103)), audience-tagged start ([#104](https://github.com/jeger-ai/opengantry/issues/104)), doctor EXECUTOR_LOG checks ([#38](https://github.com/jeger-ai/opengantry/issues/38)), TS/mjs parity ([#106](https://github.com/jeger-ai/opengantry/issues/106)), verify failure contract ([#102](https://github.com/jeger-ai/opengantry/issues/102)), legislate forbidden-zone warn ([#35](https://github.com/jeger-ai/opengantry/issues/35)); removed deprecated `upgrade --apply`/`--dry-run` parent flags |
85
87
  | **v2.2.5** | Quality remediation — recursive test glob ([#99](https://github.com/jeger-ai/opengantry/issues/99)), dead verify code prune ([#100](https://github.com/jeger-ai/opengantry/issues/100)–[#101](https://github.com/jeger-ai/opengantry/issues/101)), mechanical cleanups ([#107](https://github.com/jeger-ai/opengantry/issues/107)) |
86
88
  | **v2.2.4** | Unified gantry naming cutover ([#94](https://github.com/jeger-ai/opengantry/issues/94)); docs positioning — Gantry.io disambiguation, long-tail SEO (`Open Source Gantry`, `Gantry CLI`, `Gantry Git hook`), vendor-neutral local governance framing ([#95](https://github.com/jeger-ai/opengantry/issues/95)–[#97](https://github.com/jeger-ai/opengantry/issues/97)) |
87
89
  | **v2.2.3** | Declarative `trusted_automation` policy in `.gitagent/config.json` — repository-legislated bot maintenance bypass with `max_net_loc <= 5` ([#92](https://github.com/jeger-ai/opengantry/issues/92)) |
@@ -100,37 +102,37 @@ Current npm release in this repository: **`gantry` v2.2.5**. Use [`docs/ADOPTION
100
102
 
101
103
  | Idea | Where it lives |
102
104
  |------|----------------|
103
- | **Law** (SOD, trace mapping, risk tiers, TMVC, manifest sync) | [`.gitagent/teacher/RULES.md`](.gitagent/teacher/RULES.md) |
105
+ | **Law** (SOD, trace mapping, risk tiers, TMVC, manifest sync) | [`.gitagent/planner/RULES.md`](.gitagent/planner/RULES.md) |
104
106
  | **Routing map** (skills, roots, forbidden zones, path risks) | [`.gitagent/foreman/MANIFEST.json`](.gitagent/foreman/MANIFEST.json) |
105
107
  | **Foreman** (cheap, manifest-only triage) | [`.gitagent/foreman/SOUL.md`](.gitagent/foreman/SOUL.md) |
106
- | **Worker Runtime Contract** (env exports for IDE agents / scripts) | [`.gitagent/teacher/RUNTIME.md`](.gitagent/teacher/RUNTIME.md) |
108
+ | **Executor Runtime Contract** (env exports for IDE agents / scripts) | [`.gitagent/planner/RUNTIME.md`](.gitagent/planner/RUNTIME.md) |
107
109
  | **Bootstrap** (zero-friction substrate install) | `gantry init` + packaged [`templates/`](templates/) |
108
- | **Architecture pointer** (where agents find code layout) | [`.gitagent/ARCHITECTURE.pointer.json`](.gitagent/ARCHITECTURE.pointer.json), [ARCHITECTURE-DISCOVERY.md](.gitagent/teacher/ARCHITECTURE-DISCOVERY.md) |
109
- | **Work order + commit receipt** | YAML via `gantry legislate` + [`.gitagent/teacher/MISSION.example.yaml`](.gitagent/teacher/MISSION.example.yaml); Markdown reference: [`.gitagent/teacher/MISSION.template.md`](.gitagent/teacher/MISSION.template.md), [`.gitagent/teacher/commit-template.md`](.gitagent/teacher/commit-template.md) |
110
+ | **Architecture pointer** (where agents find code layout) | [`.gitagent/ARCHITECTURE.pointer.json`](.gitagent/ARCHITECTURE.pointer.json), [ARCHITECTURE-DISCOVERY.md](.gitagent/planner/ARCHITECTURE-DISCOVERY.md) |
111
+ | **Work order + commit receipt** | YAML via `gantry legislate` + [`.gitagent/planner/MISSION.example.yaml`](.gitagent/planner/MISSION.example.yaml); Markdown reference: [`.gitagent/planner/MISSION.template.md`](.gitagent/planner/MISSION.template.md), [`.gitagent/planner/commit-template.md`](.gitagent/planner/commit-template.md) |
110
112
  | **gantry CLI** | `npm install -g @jeger-ai/opengantry` or `npx @jeger-ai/opengantry` — see [gantry](#gantry-cli) |
111
113
  | **Full orientation + workflow diagram** | [`.gitagent/README.md`](.gitagent/README.md) |
112
114
 
113
115
  Core behaviors in plain language:
114
116
 
115
117
  - **Git-native missions:** commit subjects use **`[MSN-XXXX]`** so history is greppable (`git log --grep='MSN-0042'`).
116
- - **Auditable execution log:** verifier PASS requires quotes from **`WORKER_LOG.md`** (process control paired with SOD and deterministic gates).
118
+ - **Auditable execution log:** verifier PASS requires quotes from **`EXECUTOR_LOG.md`** (process control paired with SOD and deterministic gates).
117
119
  - **Risk tiers:** cheap automation where safe; stricter human paths for sensitive areas.
118
120
  - **Approved edit paths:** work under declared **tmvc_roots**; **forbidden zones** are hard stops; out-of-scope access needs a logged **context request**.
119
- - **Honest limits:** trace mapping is **not cryptographic proof**—it records what ran under your reviewed mission (see [`.gitagent/teacher/RULES.md`](.gitagent/teacher/RULES.md)).
121
+ - **Honest limits:** trace mapping is **not cryptographic proof**—it records what ran under your reviewed mission (see [`.gitagent/planner/RULES.md`](.gitagent/planner/RULES.md)).
120
122
 
121
123
  ## Start here (5 minutes)
122
124
 
123
125
  ```bash
124
126
  gantry init --tutorial # or: gantry init && gantry onboarding
125
- gantry teacher set "$(git config user.email)"
127
+ gantry planner set "$(git config user.email)"
126
128
  gantry start "Your first change" --msn MSN-0001 --skill-key <manifest-key>
127
- # Teacher: review mission scope/gates, then commit [MSN-0001] including the mission file
129
+ # Planner: review mission scope/gates, then commit [MSN-0001] including the mission file
128
130
  git log --grep='MSN-' --oneline
129
131
  ```
130
132
 
131
133
  ### Human handbrake
132
134
 
133
- If you do **not** review the **mission** under `.gitagent/missions/` **before** the worker runs, the trace records **what you allowed to happen**—not a substitute for intent checks. You still sign off on scope, TMVC roots, and the deterministic gate.
135
+ If you do **not** review the **mission** under `.gitagent/missions/` **before** the executor runs, the trace records **what you allowed to happen**—not a substitute for intent checks. You still sign off on scope, TMVC roots, and the deterministic gate.
134
136
 
135
137
  ## Using this outside the OpenGantry repo
136
138
 
@@ -155,7 +157,7 @@ From a built OpenGantry tree (or after copying the `gantry` CLI + `templates/` i
155
157
  ```bash
156
158
  npm ci && npm run build # in the OpenGantry repo, or use a globally linked gantry
157
159
  gantry init --tutorial # recommended first run; or gantry init (wizard / --yes)
158
- gantry teacher set "$(git config user.email)" # repo-local (recommended)
160
+ gantry planner set "$(git config user.email)" # repo-local (recommended)
159
161
  gantry doctor
160
162
  git config core.hooksPath .githooks
161
163
  ```
@@ -180,9 +182,9 @@ After `init`, customize your manifest and skills, then legislate. See [`docs/ADO
180
182
 
181
183
  - Edit **[`.gitagent/foreman/MANIFEST.json`](.gitagent/foreman/MANIFEST.json)**
182
184
  Set `path_risks`, `risk_keywords`, and each skill's `tmvc_roots`, `forbidden_zones`, and `trust_threshold` to match **your** directories and risk appetite.
183
- - Align **[`.gitagent/teacher/RULES.md`](.gitagent/teacher/RULES.md)** with your review policy (tiers, who counts as "human audit", merge gates).
185
+ - Align **[`.gitagent/planner/RULES.md`](.gitagent/planner/RULES.md)** with your review policy (tiers, who counts as "human audit", merge gates).
184
186
  - Point **deterministic gates** in missions at **your** stack (`npm test`, `pytest`, `cargo test`, etc.).
185
- - Store mission files you intend to **`gantry verify`** under **`.gitagent/missions/`** and configure **Teacher allowlist** per repo (`gantry teacher set`, `.gitagent/foreman/TEACHER.allowlist.local`, or `git config gantry.teacherEmails`).
187
+ - Store mission files you intend to **`gantry verify`** under **`.gitagent/missions/`** and configure **Planner allowlist** per repo (`gantry planner set`, `.gitagent/foreman/PLANNER.allowlist.local`, or `git config gantry.plannerEmails`).
186
188
 
187
189
  **Concrete gate example** (YAML fields in a mission file; adjust paths and commands):
188
190
 
@@ -191,7 +193,7 @@ gate_command: "npm test -- src/components/Button.test.tsx"
191
193
  gate_success_substring: "Tests: 1 passed"
192
194
  ```
193
195
 
194
- The gate is whatever command **fails closed** for your repo (lint, typecheck, integration suite). One explicit command beats a vague "run tests somewhere." Primary reference: [`.gitagent/teacher/MISSION.example.yaml`](.gitagent/teacher/MISSION.example.yaml). Markdown missions remain supported (`gantry verify` parses both); [`.gitagent/teacher/MISSION.template.md`](.gitagent/teacher/MISSION.template.md) is a human-readable reference, not the `legislate` default.
196
+ The gate is whatever command **fails closed** for your repo (lint, typecheck, integration suite). One explicit command beats a vague "run tests somewhere." Primary reference: [`.gitagent/planner/MISSION.example.yaml`](.gitagent/planner/MISSION.example.yaml). Markdown missions remain supported (`gantry verify` parses both); [`.gitagent/planner/MISSION.template.md`](.gitagent/planner/MISSION.template.md) is a human-readable reference, not the `legislate` default.
195
197
 
196
198
  ### gantry CLI
197
199
 
@@ -205,32 +207,32 @@ Requires **Node.js 24+** (Active LTS line). Published as **`@jeger-ai/opengantry
205
207
 
206
208
  | Step | Command | Outcome |
207
209
  |------|---------|---------|
208
- | Onboard | `gantry init --tutorial` or `gantry onboarding` | Feel Teacher stamp + verify loop (~3 min) |
209
- | Scope + approve | `gantry start` → Teacher `[MSN-…]` commit | Unreviewed stub cannot pass full verify |
210
+ | Onboard | `gantry init --tutorial` or `gantry onboarding` | Feel Planner stamp + verify loop (~3 min) |
211
+ | Scope + approve | `gantry start` → Planner `[MSN-…]` commit | Unreviewed stub cannot pass full verify |
210
212
  | Prove work | `gantry verify` | Gate + log quotes + greppable history |
211
213
 
212
- **Global output:** `gantry --audience worker\|teacher\|verifier\|platform <cmd>` (or `GXT_AUDIENCE=verifier` in CI — silence unless `[GXT_*]` errors).
214
+ **Global output:** `gantry --audience executor\|planner\|verifier\|platform <cmd>` (or `GXT_AUDIENCE=verifier` in CI — silence unless `[GXT_*]` errors).
213
215
 
214
216
  | Command | Purpose |
215
217
  |--------|---------|
216
218
  | `gantry init` | Bootstrap substrate + IDE packs + hooks + CI. `--tutorial` runs guided first loop after scaffold. |
217
- | `gantry upgrade` | Plan substrate updates (`gantry upgrade plan` / `--dry-run` for preview JSON). Stage with `gantry upgrade`; `gantry upgrade apply --mission …` after Teacher commit. |
219
+ | `gantry upgrade` | Plan substrate updates (`gantry upgrade plan` / `--dry-run` for preview JSON). Stage with `gantry upgrade`; `gantry upgrade apply --mission …` after Planner commit. |
218
220
  | `gantry check` | Validate `MANIFEST.json` shape + **Rule 4.4** sync: every `manifest.skills` key must have `skills/<key>.md`, with no orphan skill files. |
219
- | `gantry status` | GXT readiness dashboard (`--json`, `--verbose`, `--audience worker\|teacher\|verifier\|platform`). |
221
+ | `gantry status` | GXT readiness dashboard (`--json`, `--verbose`, `--audience executor\|planner\|verifier\|platform`). |
220
222
  | `gantry start "<intent>"` | Goal-first orchestration: triage → legislate stub → runtime next steps (`--msn`, `--skill-key`, `--json`). |
221
223
  | `gantry onboarding` | Interactive walkthrough of the strict mission loop. Blocks on corrupt configured integration state; allows pristine uninitialized repos. |
222
- | `gantry doctor` | Active readiness check (manifest, Teacher email, bypass secret match, hooks, architecture pointer, integration staleness). Warnings exit 0. `--audience` tailors next steps. |
224
+ | `gantry doctor` | Active readiness check (manifest, Planner email, bypass secret match, hooks, architecture pointer, integration staleness). Warnings exit 0. `--audience` tailors next steps. |
223
225
  | `gantry triage "<intent>"` | Foreman-style routing ([`SOUL.md`](.gitagent/foreman/SOUL.md)). `--json` for machine output (may include non-binding `adr_hints` from [`.gitagent/out-of-scope/`](.gitagent/out-of-scope/README.md)). `--emit-mission --msn MSN-0007` writes `.gitagent/missions/ACTIVE_MISSION.md` by default on **DIRECT_EXECUTION** only. |
224
- | `gantry teacher show\|set` | Repo-local Teacher git-proof allowlist (`.gitagent/foreman/TEACHER.allowlist.local`; avoids global `GANTRY_TEACHER_EMAILS` leaking across projects). |
225
- | `gantry legislate "<intent>" --msn MSN-0007` | Emit stub **YAML** mission under `.gitagent/missions/` with explicit MSN (`--skill-key` when triage would escalate; `--gate-command` / `--gate-success-substring` for one-click handoff). Teacher still **`git commit`**-legislates from an allowlisted email. |
226
- | `gantry mission validate --file <path>` | Validate a mission `.md` or `.yaml` (YAML checked against [`.gitagent/teacher/MISSION.schema.yaml`](.gitagent/teacher/MISSION.schema.yaml)). |
226
+ | `gantry planner show\|set` | Repo-local Planner git-proof allowlist (`.gitagent/foreman/PLANNER.allowlist.local`; avoids global `GANTRY_PLANNER_EMAILS` leaking across projects). |
227
+ | `gantry legislate "<intent>" --msn MSN-0007` | Emit stub **YAML** mission under `.gitagent/missions/` with explicit MSN (`--skill-key` when triage would escalate; `--gate-command` / `--gate-success-substring` for one-click handoff). Planner still **`git commit`**-legislates from an allowlisted email. |
228
+ | `gantry mission validate --file <path>` | Validate a mission `.md` or `.yaml` (YAML checked against [`.gitagent/planner/MISSION.schema.yaml`](.gitagent/planner/MISSION.schema.yaml)). |
227
229
  | `gantry mission snapshot --file <path>` | Write start-state JSON under `.gitagent/history/` (git HEAD, branch, dirty flag, manifest hash, hashes of files under the mission skill's `tmvc_roots`). |
228
- | `gantry runtime env --mission <path>` | Worker Runtime Contract: emit `GXT_REPO_ROOT`, `GXT_MISSION_FILE`, `GXT_MSN_ID`, `GXT_SKILL_KEY`, `GXT_TMVC_ROOTS`, `GXT_FORBIDDEN_ZONES`, `GXT_WORKER_LOG`. Default: POSIX `export …` lines; `--json` for scripts. [.gitagent/teacher/RUNTIME.md](.gitagent/teacher/RUNTIME.md). |
229
- | `gantry runtime exec --mission <path> -- <cmd…>` | Run worker command with mission env, telemetry capture, and forbidden-zone scan (strongest TMVC trap). |
230
- | `gantry context-request --path <p…> --reason <text>` | Append a PENDING Context Request to `WORKER_LOG.md` (RULES §4 TMVC expansion). Uses pinned mission or `--mission`. `--stage-worker-log` opt-in stages the log. |
230
+ | `gantry runtime env --mission <path>` | Executor Runtime Contract: emit `GXT_REPO_ROOT`, `GXT_MISSION_FILE`, `GXT_MSN_ID`, `GXT_SKILL_KEY`, `GXT_TMVC_ROOTS`, `GXT_FORBIDDEN_ZONES`, `GXT_EXECUTOR_LOG`. Default: POSIX `export …` lines; `--json` for scripts. [.gitagent/planner/RUNTIME.md](.gitagent/planner/RUNTIME.md). |
231
+ | `gantry runtime exec --mission <path> -- <cmd…>` | Run executor command with mission env, telemetry capture, and forbidden-zone scan (strongest TMVC trap). |
232
+ | `gantry context-request --path <p…> --reason <text>` | Append a PENDING Context Request to `EXECUTOR_LOG.md` (RULES §4 TMVC expansion). Uses pinned mission or `--mission`. `--stage-worker-log` opt-in stages the log. |
231
233
  | `gantry tmvc guard [--strict]` | Pre-commit TMVC path guard: advisory warnings on staged paths outside mission `tmvc_roots` (stderr; exit 0). `--strict` or `GXT_TMVC_GUARD_STRICT=1` blocks. Skips when no pinned mission. |
232
234
  | `gantry mcp serve` | Stdio MCP server exposing `gxt_*` tools (legislation, pin, runtime env, verify with `fix_hints`, `gxt_start_orchestration`, exec). `gxt_verify` uses the flat `--json` envelope — see [ADOPTION.md § MCP verify envelope](docs/ADOPTION.md). Configure via `.cursor/mcp.json`. |
233
- | `gantry verify --mission <path>` | Teacher-approved mission commit + gate + trace. **`--json`** structured output (`status`, `phase`, `error_code`, `fix_hints`). **`--fix`** guided repair; when a **Code Surgeon** applies a quarantine mutation, logs `[SURGEON-MUTATION]` to `WORKER_LOG.md` and reruns full verify with fix disabled (never auto-PASS). CI: `--audience verifier` (errors only). Failures emit **`GXT_*`** codes. Optional **`kpi_gate`** phase reads committed [KPI report](.gitagent/teacher/KPI-REPORT.schema.yaml) (after gate, before trace). **`--ci`** / **`--pre-push`**: fail-closed on stale KPI evidence. |
235
+ | `gantry verify --mission <path>` | Teacher-approved mission commit + gate + trace. **`--json`** structured output (`status`, `phase`, `error_code`, `fix_hints`). **`--fix`** guided repair; when a **Code Surgeon** applies a quarantine mutation, logs `[SURGEON-MUTATION]` to `EXECUTOR_LOG.md` and reruns full verify with fix disabled (never auto-PASS). CI: `--audience verifier` (errors only). Failures emit **`GXT_*`** codes. Optional **`kpi_gate`** phase reads committed [KPI report](.gitagent/planner/KPI-REPORT.schema.yaml) (after gate, before trace). **`--ci`** / **`--pre-push`**: fail-closed on stale KPI evidence. |
234
236
  | `gantry scan --mission <path>` | Run mission `llm_verifiers` (BYO commands) and write namespaced KPI report JSON for `kpi_gate`. |
235
237
  | `gantry register <dir>` | AST discovery: propose skill scope from folder imports/exports (does not mutate `MANIFEST.json`). |
236
238
  | `gantry check-imports <dir> --ban <spec…>` | Deterministic banned-import scan (usable as `gate_command`; no LLM). |
@@ -241,16 +243,16 @@ Requires **Node.js 24+** (Active LTS line). Published as **`@jeger-ai/opengantry
241
243
  | `gantry context-feed [--json] [--clear]` | Read or atomically clear the latest verify remediation snapshot (`.gitagent/tmp/NEXT_REMEDIATION.json`) for IDE repair loops. |
242
244
  | `gantry audit-rigor [--json] [--strict]` | Meta-governance audit: TypeScript strictness, coverage artifacts, MANIFEST wildcard hygiene. |
243
245
 
244
- **Who can approve missions (Teacher allowlist):** only allowlisted identities can legislate missions that verify accepts. Precedence:
246
+ **Who can approve missions (Planner allowlist):** only allowlisted identities can legislate missions that verify accepts. Precedence:
245
247
 
246
- 1. `.gitagent/foreman/TEACHER.allowlist` (+ optional gitignored `.local` merge)
247
- 2. `git config gantry.teacherEmails "a@x.com,b@y.com"`
248
- 3. `GANTRY_TEACHER_EMAILS` env (CI escape hatch only)
248
+ 1. `.gitagent/foreman/PLANNER.allowlist` (+ optional gitignored `.local` merge)
249
+ 2. `git config gantry.plannerEmails "a@x.com,b@y.com"`
250
+ 3. `GANTRY_PLANNER_EMAILS` env (CI escape hatch only)
249
251
  4. implicit `git config user.email` when nothing else is set
250
252
 
251
- Use **`gantry teacher set "$(git config user.email)"`** after clone — do not rely on a global shell export when you work across multiple projects.
253
+ Use **`gantry planner set "$(git config user.email)"`** after clone — do not rely on a global shell export when you work across multiple projects.
252
254
 
253
- ### Worker Runtime quickstart
255
+ ### Executor Runtime quickstart
254
256
 
255
257
  Agents (Cursor, Junie, local scripts) should not guess TMVC roots — read them from **`gantry runtime env`**.
256
258
 
@@ -259,7 +261,7 @@ Each `--mission` path must refer to **an existing mission file** (ENOENT means t
259
261
  ```bash
260
262
  npm ci && npm run build
261
263
 
262
- # Existing mission (tracked example — swap for yours after Teacher legislates it):
264
+ # Existing mission (tracked example — swap for yours after Planner legislates it):
263
265
  eval "$(node dist/cli/index.js runtime env --mission .gitagent/missions/example.verify.yaml)"
264
266
 
265
267
  # Or machine-readable JSON for a wrapper script:
@@ -269,17 +271,17 @@ node dist/cli/index.js runtime env --mission .gitagent/missions/example.verify.y
269
271
  node dist/cli/index.js runtime exec --mission .gitagent/missions/example.verify.yaml -- <your-agent-command>
270
272
  ```
271
273
 
272
- Inspect `GXT_TMVC_ROOTS`, `GXT_FORBIDDEN_ZONES`, and `GXT_WORKER_LOG`; write forensic trace quotes to **`WORKER_LOG.md`** (or `--worker-log` at verify time), then **`gantry verify`** as usual.
274
+ Inspect `GXT_TMVC_ROOTS`, `GXT_FORBIDDEN_ZONES`, and `GXT_EXECUTOR_LOG`; write forensic trace quotes to **`EXECUTOR_LOG.md`** (or `--executor-log` at verify time), then **`gantry verify`** as usual.
273
275
 
274
- **Legislate a stub mission (Teacher edits + commits — then wire `runtime env` to that file path):**
276
+ **Legislate a stub mission (Planner edits + commits — then wire `runtime env` to that file path):**
275
277
 
276
278
  ```bash
277
279
  node dist/cli/index.js legislate "Fix login spinner on checkout — ui" --msn MSN-0007 --skill-key ui
278
- # Teacher: tune gate/trace rows; git commit -m "[MSN-0007] legislate …" including the mission file
280
+ # Planner: tune gate/trace rows; git commit -m "[MSN-0007] legislate …" including the mission file
279
281
  # eval "$(node dist/cli/index.js runtime env --mission .gitagent/missions/MSN-0007.<slug>.yaml)"
280
282
  ```
281
283
 
282
- Details and variable semantics: [.gitagent/teacher/RUNTIME.md](.gitagent/teacher/RUNTIME.md).
284
+ Details and variable semantics: [.gitagent/planner/RUNTIME.md](.gitagent/planner/RUNTIME.md).
283
285
 
284
286
  ### 3. Wire agents (and optionally CI)
285
287
 
@@ -291,7 +293,7 @@ Details and variable semantics: [.gitagent/teacher/RUNTIME.md](.gitagent/teacher
291
293
  - **gantry:** `npm ci` / `npm run build`, then `gantry check`, `gantry doctor`, and unit tests.
292
294
  - **Manifest (jq parity):** validates [`.gitagent/foreman/MANIFEST.json`](.gitagent/foreman/MANIFEST.json) via [`scripts/validate-gxt.sh`](scripts/validate-gxt.sh) `manifest`.
293
295
  - **Changed-code quality (PR only):** ESLint complexity, import layers, line budgets on touched `src/cli/**/*.ts`.
294
- - **MSN (PR only, path-scoped):** on **pull_request** only, any **non-merge** commit in the PR range that touches `.gitagent/`, repo-root `WORKER_LOG.md`, `.githooks/`, or [`.github/workflows/gxt-validate.yml`](.github/workflows/gxt-validate.yml) must have a subject starting with **`[MSN-NNNN]`** (four digits). Other paths (e.g. root `README.md` only) do not trigger this check.
296
+ - **MSN (PR only, path-scoped):** on **pull_request** only, any **non-merge** commit in the PR range that touches `.gitagent/`, repo-root `EXECUTOR_LOG.md`, `.githooks/`, or [`.github/workflows/gxt-validate.yml`](.github/workflows/gxt-validate.yml) must have a subject starting with **`[MSN-NNNN]`** (four digits). Other paths (e.g. root `README.md` only) do not trigger this check.
295
297
  - **Mission purity (PR only):** [`scripts/verify-pr-missions.sh`](scripts/verify-pr-missions.sh) requires exactly one `[MSN-NNNN]` in `${base}..${head}` commit subjects before full `gantry verify` on changed missions.
296
298
  - **Local (full stack):** [`scripts/dev-validate.sh`](scripts/dev-validate.sh) / `npm run validate` — superset of CI (includes changed-code + MSN vs `origin/main`).
297
299
 
@@ -307,7 +309,7 @@ npm run validate
307
309
 
308
310
  ### 4. Run the loop (human + models)
309
311
 
310
- High level: **Foreman** routes → **Teacher** authors a mission when needed → **Worker** executes inside TMVC and writes **`WORKER_LOG.md`** → **deterministic gate** runs → **Verifier** maps passes to the log → commits follow **`[MSN-XXXX]`** + receipt template.
312
+ High level: **Foreman** routes → **Planner** authors a mission when needed → **Worker** executes inside TMVC and writes **`EXECUTOR_LOG.md`** → **deterministic gate** runs → **Verifier** maps passes to the log → commits follow **`[MSN-XXXX]`** + receipt template.
311
313
 
312
314
  Details and the workflow diagram: **[`.gitagent/README.md`](.gitagent/README.md)**.
313
315
 
@@ -317,7 +319,7 @@ If you cannot run `gantry init`, copy at least:
317
319
 
318
320
  - `.gitagent/` (entire tree)
319
321
  - `skills/` (optional in minimal vendoring, but **required** for Rule 4.4: one `skills/<skill-key>.md` per manifest skill — enforced by `gantry check`)
320
- - `.githooks/` (optional: creates an empty repo-root `WORKER_LOG.md` when you check out a feature branch)
322
+ - `.githooks/` (optional: creates an empty repo-root `EXECUTOR_LOG.md` when you check out a feature branch)
321
323
  - `AGENTS.md` (or merge its bullets into your existing agent instructions)
322
324
  - Optionally `.cursor/rules/opengantry-gxt-substrate.mdc` if you use Cursor
323
325
 
@@ -328,7 +330,7 @@ Add to your **`.gitignore`** (if not already present):
328
330
  .gitagent/history/
329
331
  ```
330
332
 
331
- **Empty `WORKER_LOG.md` on branch checkout:** after copying, point Git at the vendored hooks once per clone (`git config core.hooksPath .githooks`). On branch checkouts **other than** `main` or `master`, if `WORKER_LOG.md` is missing at the repo root, [`.githooks/post-checkout`](.githooks/post-checkout) copies [`.gitagent/teacher/WORKER_LOG.template.md`](.gitagent/teacher/WORKER_LOG.template.md) into place. It **never overwrites** an existing file. Keep formatters off `WORKER_LOG.md` — see [docs/ADOPTION.md](docs/ADOPTION.md) (formatter guard under stale trace evidence).
333
+ **Empty `EXECUTOR_LOG.md` on branch checkout:** after copying, point Git at the vendored hooks once per clone (`git config core.hooksPath .githooks`). On branch checkouts **other than** `main` or `master`, if `EXECUTOR_LOG.md` is missing at the repo root, [`.githooks/post-checkout`](.githooks/post-checkout) copies [`.gitagent/planner/EXECUTOR_LOG.template.md`](.gitagent/planner/EXECUTOR_LOG.template.md) into place. It **never overwrites** an existing file. Keep formatters off `EXECUTOR_LOG.md` — see [docs/ADOPTION.md](docs/ADOPTION.md) (formatter guard under stale trace evidence).
332
334
 
333
335
  ## Staying in sync
334
336
 
@@ -337,8 +339,8 @@ Add to your **`.gitignore`** (if not already present):
337
339
  ```bash
338
340
  npm install @jeger-ai/opengantry@latest
339
341
  gantry upgrade
340
- # Review .gitagent/.upgrade-tmp/; Teacher-commit the upgrade mission YAML
341
- gantry upgrade --apply --mission .gitagent/missions/MSN-9001.upgrade-vX.Y.Z.yaml
342
+ # Review .gitagent/.upgrade-tmp/; Planner-commit the upgrade mission YAML
343
+ gantry upgrade apply --mission .gitagent/missions/MSN-9001.upgrade-vX.Y.Z.yaml
342
344
  gantry doctor
343
345
  ```
344
346
 
@@ -369,8 +371,8 @@ git clone https://github.com/jeger-ai/opengantry.git /tmp/opengantry && \
369
371
  Fetch a single file from `main` when you only want the latest template text:
370
372
 
371
373
  ```bash
372
- curl -fsSL -o .gitagent/teacher/MISSION.example.yaml \
373
- https://raw.githubusercontent.com/jeger-ai/opengantry/main/.gitagent/teacher/MISSION.example.yaml
374
+ curl -fsSL -o .gitagent/planner/MISSION.example.yaml \
375
+ https://raw.githubusercontent.com/jeger-ai/opengantry/main/.gitagent/planner/MISSION.example.yaml
374
376
  ```
375
377
 
376
378
  Always **review the diff** before commit; never bulk-overwrite a customized `MANIFEST.json`.
@@ -379,16 +381,16 @@ Always **review the diff** before commit; never bulk-overwrite a customized `MAN
379
381
 
380
382
  | Pattern | Typical shape | Audit / production readiness |
381
383
  |---------|----------------|------------------------------|
382
- | **GXT / OpenGantry** | Git-native missions, manifest routing, deterministic gates, auditable log mapped to **`WORKER_LOG.md`**, human `[MSN-XXXX]` approval + SOD ([`RULES.md`](.gitagent/teacher/RULES.md)) | **Autonomous Repository Engineering** — scoped missions, not always-on chat. Greppable missions + gate output + log quotes. **Local-first**, **vendor-neutral** governance engine in your repo. |
384
+ | **GXT / OpenGantry** | Git-native missions, manifest routing, deterministic gates, auditable log mapped to **`EXECUTOR_LOG.md`**, human `[MSN-XXXX]` approval + SOD ([`RULES.md`](.gitagent/planner/RULES.md)) | **Autonomous Repository Engineering** — scoped missions, not always-on chat. Greppable missions + gate output + log quotes. **Local-first**, **vendor-neutral** governance engine in your repo. |
383
385
  | Cloud observability / agent dashboards | Hosted UI for metrics, traces, or agent session visibility | Strong for **fleet visibility**; per-repo change authorization and Git-native audit artifacts are typically layered separately |
384
386
  | Agent "swarm" / choreography layers | Orchestrates model calls across services; emphasizes throughput and parallelism | Strong on **coverage** of tasks; lineage and per-change evidence depends on tooling above the swarm |
385
387
  | Unstructured desktop assistants | Reactive help in-editor or OS-wide; informal plans | Lightweight for exploration; weakest default for **reproducible** production sign-off without additional discipline |
386
388
 
387
- GXT deliberately trades "always-on improvisation" for a **narrow, inspectable envelope**: Foreman chooses a skill footprint, Teachers legislate commits, Workers stay inside TMVC (or Context Request → accept/reject), and Verifiers bind PASS claims to log quotes.
389
+ GXT deliberately trades "always-on improvisation" for a **narrow, inspectable envelope**: Foreman chooses a skill footprint, Teachers legislate commits, Executors stay inside TMVC (or Context Request → accept/reject), and Verifiers bind PASS claims to log quotes.
388
390
 
389
391
  ## Relationship to this repository
390
392
 
391
- **jeger-ai/opengantry** is the **canonical reference tree** for **GXT** (manifest `schema_version` **v0.5.0** law + **`gantry` v2.2.5** CLI). Install the CLI with `npm install -g @jeger-ai/opengantry`, or fork this repo and run `gantry init` in your project.
393
+ **jeger-ai/opengantry** is the **canonical reference tree** for **GXT** (manifest `schema_version` **v0.5.0** law + **`gantry` v2.3.1** CLI). Install the CLI with `npm install -g @jeger-ai/opengantry`, or fork this repo and run `gantry init` in your project.
392
394
 
393
395
  ## Security
394
396
 
@@ -3,8 +3,8 @@ export interface ContextRequestCliOptions {
3
3
  paths: string[];
4
4
  reason?: string;
5
5
  proposed?: string[];
6
- stageWorkerLog?: boolean;
7
- workerLog?: string;
6
+ stageExecutorLog?: boolean;
7
+ executorLog?: string;
8
8
  json?: boolean;
9
9
  }
10
10
  export declare function runContextRequest(options: ContextRequestCliOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"context-request.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/context-request.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAoFzE"}
1
+ {"version":3,"file":"context-request.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/context-request.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAoFzE"}
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- import { appendContextRequest, stageWorkerLogIfRequested, workerLogRepoRelative, } from "../lib/context-request.js";
2
+ import { appendContextRequest, stageExecutorLogIfRequested, executorLogRepoRelative, } from "../lib/context-request.js";
3
3
  import { logError, logInfo, logWarn, setExitCode, errorMessage } from "../lib/cli-io.js";
4
4
  import { resolveRuntimeEnv } from "../lib/runtime-env.js";
5
5
  import { resolvePinnedMission } from "../lib/missions/parser.js";
@@ -26,11 +26,11 @@ export function runContextRequest(options) {
26
26
  return;
27
27
  }
28
28
  const resolved = resolveRuntimeEnv(workspace, missionRel);
29
- const workerLogPath = options.workerLog
30
- ? path.resolve(workspace.root, options.workerLog)
31
- : resolved.worker_log;
29
+ const executorLogPath = options.executorLog
30
+ ? path.resolve(workspace.root, options.executorLog)
31
+ : resolved.executor_log;
32
32
  const line = appendContextRequest({
33
- workerLogPath,
33
+ executorLogPath,
34
34
  entry: {
35
35
  status: "PENDING",
36
36
  paths,
@@ -39,31 +39,31 @@ export function runContextRequest(options) {
39
39
  msnId: resolved.msn_id || undefined,
40
40
  },
41
41
  });
42
- const stageResult = stageWorkerLogIfRequested(workspace.root, workerLogPath, options.stageWorkerLog === true);
43
- const workerLogRel = workerLogRepoRelative(workspace.root, workerLogPath);
42
+ const stageResult = stageExecutorLogIfRequested(workspace.root, executorLogPath, options.stageExecutorLog === true);
43
+ const executorLogRel = executorLogRepoRelative(workspace.root, executorLogPath);
44
44
  if (options.json) {
45
45
  logInfo(JSON.stringify({
46
46
  status: "ok",
47
47
  mission: resolved.mission_file,
48
48
  msn_id: resolved.msn_id,
49
- worker_log: workerLogRel,
49
+ executor_log: executorLogRel,
50
50
  line,
51
51
  staged: stageResult.staged,
52
52
  }, null, 2));
53
53
  return;
54
54
  }
55
- logInfo(`context-request: appended to ${workerLogRel}`);
55
+ logInfo(`context-request: appended to ${executorLogRel}`);
56
56
  logInfo(` ${line}`);
57
- if (options.stageWorkerLog === true) {
57
+ if (options.stageExecutorLog === true) {
58
58
  if (stageResult.staged) {
59
- logInfo(` staged: ${workerLogRel}`);
59
+ logInfo(` staged: ${executorLogRel}`);
60
60
  }
61
61
  else {
62
- logWarn(`failed to stage ${workerLogRel}: ${stageResult.stderr || "git add failed"}`);
62
+ logWarn(`failed to stage ${executorLogRel}: ${stageResult.stderr || "git add failed"}`);
63
63
  }
64
64
  }
65
65
  else {
66
- logWarn(`run: git add ${workerLogRel} (or pass --stage-worker-log to stage automatically)`);
66
+ logWarn(`run: git add ${executorLogRel} (or pass --stage-worker-log to stage automatically)`);
67
67
  }
68
68
  }
69
69
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"context-request.js","sourceRoot":"","sources":["../../../src/cli/commands/context-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-request.js","sourceRoot":"","sources":["../../../src/cli/commands/context-request.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYpD,MAAM,UAAU,iBAAiB,CAAC,OAAiC;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,uCAAuC,CAAC,CAAC;YAClD,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,kDAAkD,CAAC,CAAC;YAC7D,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAE3F,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,QAAQ,CACN,uGAAuG,CACxG,CAAC;YACF,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW;YACzC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;YACnD,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAE1B,MAAM,IAAI,GAAG,oBAAoB,CAAC;YAChC,eAAe;YACf,KAAK,EAAE;gBACL,MAAM,EAAE,SAAS;gBACjB,KAAK;gBACL,MAAM;gBACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,IAAI,SAAS;aACpC;SACF,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,2BAA2B,CAC7C,SAAS,CAAC,IAAI,EACd,eAAe,EACf,OAAO,CAAC,gBAAgB,KAAK,IAAI,CAClC,CAAC;QAEF,MAAM,cAAc,GAAG,uBAAuB,CAAC,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAEhF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CACL,IAAI,CAAC,SAAS,CACZ;gBACE,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,QAAQ,CAAC,YAAY;gBAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,YAAY,EAAE,cAAc;gBAC5B,IAAI;gBACJ,MAAM,EAAE,WAAW,CAAC,MAAM;aAC3B,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,gCAAgC,cAAc,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACrB,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACtC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvB,OAAO,CAAC,aAAa,cAAc,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,mBAAmB,cAAc,KAAK,WAAW,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,cAAc,uDAAuD,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,WAAW,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAA2C,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG5F,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AA4BD,wBAAgB,SAAS,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAO,GAAG,IAAI,CAe3F"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAA2C,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG5F,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AA+BD,wBAAgB,SAAS,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAO,GAAG,IAAI,CAe3F"}
@@ -1,5 +1,5 @@
1
1
  import { logInfo, setExitCode, errorMessage } from "../lib/cli-io.js";
2
- import { audienceSectionTitle, filterNextStepsForAudience, } from "../lib/audience-output.js";
2
+ import { audienceSectionTitle, filterTaggedStepsForAudience, } from "../lib/audience-output.js";
3
3
  import { doctorLinesHasFail, collectDoctorReport } from "../lib/doctor.js";
4
4
  import { loadWorkspace } from "../lib/workspace.js";
5
5
  function emitDoctor(lines, nextStep, hasFail, json, audience) {
@@ -12,7 +12,7 @@ function emitDoctor(lines, nextStep, hasFail, json, audience) {
12
12
  logInfo(`${line.level}: ${line.message}`);
13
13
  }
14
14
  const section = audienceSectionTitle(audience);
15
- const steps = filterNextStepsForAudience(audience, nextStep ? [nextStep] : []);
15
+ const steps = filterTaggedStepsForAudience(audience, nextStep ? [{ audience: "platform", step: nextStep }] : []);
16
16
  if (section && steps.length > 0) {
17
17
  logInfo(`${section}:`);
18
18
  for (const step of steps)
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAE3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAmB,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,SAAS,UAAU,CACjB,KAAmB,EACnB,QAAuB,EACvB,OAAgB,EAChB,IAAyB,EACzB,QAAyB;IAEzB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,OAAO;QAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,UAAyD,EAAE;IACnF,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnD,UAAU,CACR,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,QAAQ,EACf,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAChC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,QAAQ,CACjB,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAE7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAmB,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,SAAS,UAAU,CACjB,KAAmB,EACnB,QAAuB,EACvB,OAAgB,EAChB,IAAyB,EACzB,QAAyB;IAEzB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,4BAA4B,CACxC,QAAQ,EACR,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAC3D,CAAC;QACF,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,OAAO;QAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,UAAyD,EAAE;IACnF,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnD,UAAU,CACR,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,QAAQ,EACf,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAChC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,QAAQ,CACjB,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC"}
@@ -11,7 +11,7 @@ import { defaultInitProfile, mergeInitProfile, profileFromCliFlags, shouldRunInt
11
11
  import { applyInitWrites, logInitNextSteps, logInitSummary, planInitAssets, } from "../lib/init-plan.js";
12
12
  import { mergeGitignoreFromTemplate, mergePrettierignoreFromTemplate, } from "../lib/file-merge-gxt.js";
13
13
  import { ensureSubstrateVersionOnInit } from "../lib/substrate-version.js";
14
- import { ensureTeacherAllowlistOnInit } from "../lib/teacher-identity.js";
14
+ import { ensurePlannerAllowlistOnInit } from "../lib/planner-identity.js";
15
15
  function planArchitecturePointerWrite(profile, repoRoot) {
16
16
  const targetAbs = path.join(repoRoot, REL_ARCHITECTURE_POINTER.split("/").join(path.sep));
17
17
  if (fs.existsSync(targetAbs))
@@ -169,7 +169,7 @@ export async function runInit(options = {}) {
169
169
  }
170
170
  applyInitWrites(allWrites);
171
171
  ensureSubstrateVersionOnInit(repoRoot, templatesRoot);
172
- ensureTeacherAllowlistOnInit(repoRoot);
172
+ ensurePlannerAllowlistOnInit(repoRoot);
173
173
  if (docWrite) {
174
174
  logInfo(`${CLI_NAME} init: wrote composed ${profile.integrationsDocPath}`);
175
175
  }
@@ -19,7 +19,7 @@ async function resolveOnboardingMissionPath(p, root, intent) {
19
19
  const useExample = fs.existsSync(path.join(root, EXAMPLE_MISSION));
20
20
  if (useExample) {
21
21
  p.log.step("Step 3 — Example mission available");
22
- logInfo(` Use existing ${EXAMPLE_MISSION} after Teacher stamps it.`);
22
+ logInfo(` Use existing ${EXAMPLE_MISSION} after Planner stamps it.`);
23
23
  logInfo(` ${onboardingVerifyHint(EXAMPLE_MISSION)}`);
24
24
  return { missionPath, useExample };
25
25
  }
@@ -87,8 +87,8 @@ export async function runOnboarding(options = {}) {
87
87
  p.cancel("Onboarding cancelled");
88
88
  return;
89
89
  }
90
- p.log.step("Step 1 — Teacher allowlist");
91
- logInfo(' gantry teacher set "$(git config user.email)"');
90
+ p.log.step("Step 1 — Planner allowlist");
91
+ logInfo(' gantry planner set "$(git config user.email)"');
92
92
  p.log.step("Step 2 — Declare intent (gantry start)");
93
93
  const intent = await p.text({
94
94
  message: "What do you want to build?",
@@ -106,7 +106,7 @@ export async function runOnboarding(options = {}) {
106
106
  p.outro("Onboarding incomplete");
107
107
  return;
108
108
  }
109
- p.log.step("Step 4 — Worker runtime");
109
+ p.log.step("Step 4 — Executor runtime");
110
110
  logInfo(` ${onboardingRuntimeEnvHint(resolved.missionPath)}`);
111
111
  p.log.step("Step 5 — Verify with guided repair");
112
112
  logInfo(` ${onboardingVerifyHint(resolved.missionPath)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../../src/cli/commands/onboarding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../../src/cli/commands/onboarding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface PlannerShowOptions {
2
+ json?: boolean;
3
+ cwd?: string;
4
+ }
5
+ export interface PlannerSetOptions {
6
+ emails: string[];
7
+ cwd?: string;
8
+ }
9
+ export declare function runPlannerShow(options?: PlannerShowOptions): void;
10
+ export declare function runPlannerSet(options: PlannerSetOptions): void;
11
+ //# sourceMappingURL=planner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"teacher.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/teacher.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,kBAAuB,GAAG,IAAI,CAwBrE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAoB9D"}
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/planner.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,kBAAuB,GAAG,IAAI,CAwBrE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAoB9D"}