orc-ai 0.1.36 → 0.1.40

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 (146) hide show
  1. package/README.md +141 -27
  2. package/dist/index.js +776 -640
  3. package/dist/skills/orc-platform/SKILL.md +51 -0
  4. package/dist/skills/orc-platform/references/execution.md +147 -0
  5. package/dist/skills/orc-platform/references/knowledge.md +186 -0
  6. package/dist/skills/orc-platform/references/memory.md +48 -0
  7. package/dist/skills/orc-platform/references/packages.md +86 -0
  8. package/dist/skills/orc-platform/references/rules.md +44 -0
  9. package/dist/skills/orc-platform/references/session-archive.md +199 -0
  10. package/dist/skills/orc-platform/references/setup.md +142 -0
  11. package/dist/skills/orc-platform/references/work.md +120 -0
  12. package/dist/skills/orc-platform/scripts/sync-sessions.py +297 -0
  13. package/dist/skills/orc-sdlc/SKILL.md +93 -0
  14. package/dist/skills/orc-sdlc/references/development.md +137 -0
  15. package/dist/skills/orc-sdlc/references/planning.md +103 -0
  16. package/dist/skills/orc-sdlc/references/review-and-delivery.md +95 -0
  17. package/dist/web/assets/{Agents-BCgZS9yM.js → Agents-KNRLNcpI.js} +1 -1
  18. package/dist/web/assets/Audit-ngeaHJiy.js +1 -0
  19. package/dist/web/assets/{Dashboard-Dt96DD5F.js → Dashboard-3F8aWN_d.js} +1 -1
  20. package/dist/web/assets/{DocumentWorkspace-BHbUy7ic.js → DocumentWorkspace-VHzjE2ih.js} +1 -1
  21. package/dist/web/assets/{FileEditor-DCslTjES.js → FileEditor-DijNrJWf.js} +1 -1
  22. package/dist/web/assets/JobWebhooks-BtzsOTHL.js +1 -0
  23. package/dist/web/assets/Jobs-DmkPxHxP.js +11 -0
  24. package/dist/web/assets/Knowledge-R_6uAqDE.js +28 -0
  25. package/dist/web/assets/{PackageCatalog-Dch8MV9_.js → PackageCatalog-CkZgscbx.js} +4 -4
  26. package/dist/web/assets/Pager-DjrHsuOJ.js +1 -0
  27. package/dist/web/assets/{Rules-CoMlVvUV.js → Rules-BEzXQ7L5.js} +2 -2
  28. package/dist/web/assets/Sessions-CCpWptIl.js +5 -0
  29. package/dist/web/assets/Settings-O3qQRgTI.js +20 -0
  30. package/dist/web/assets/Skills-B3R-l8Ou.js +1 -0
  31. package/dist/web/assets/{SourceEditor-DPHhZVrM.js → SourceEditor-CHubUpaP.js} +1 -1
  32. package/dist/web/assets/{Tasks-rgOphGCq.js → Tasks-DF9FqHDq.js} +8 -13
  33. package/dist/web/assets/Terminals-DODPh4gr.css +1 -0
  34. package/dist/web/assets/Terminals-wWVDPX68.js +115 -0
  35. package/dist/web/assets/Webhooks-DW7d9R_t.js +1 -0
  36. package/dist/web/assets/{abnfDiagram-VCTEODGH-Comk2Rw4.js → abnfDiagram-VCTEODGH-BVZ_t6ts.js} +1 -1
  37. package/dist/web/assets/{arc-Bvi_lKMF.js → arc-Bp1Q5GVT.js} +1 -1
  38. package/dist/web/assets/{architectureDiagram-5GKGNRK7-BTnv8TEv.js → architectureDiagram-5GKGNRK7-Cw_Fh8Fr.js} +1 -1
  39. package/dist/web/assets/{blockDiagram-I7D4REHJ-DeeC122Z.js → blockDiagram-I7D4REHJ-C9qLtS_w.js} +1 -1
  40. package/dist/web/assets/{c4Diagram-7LVT6UL2-BgW5C1aW.js → c4Diagram-7LVT6UL2-k3kt69iB.js} +1 -1
  41. package/dist/web/assets/channel-BSVHIa5R.js +1 -0
  42. package/dist/web/assets/{chunk-2Q5K7J3B-DNjz7yJz.js → chunk-2Q5K7J3B-DVLrwP2r.js} +1 -1
  43. package/dist/web/assets/{chunk-5VM5RSS4-JLiAXzlU.js → chunk-5VM5RSS4-D3tEfTaL.js} +1 -1
  44. package/dist/web/assets/{chunk-F27PBJKO-4rWBzZDo.js → chunk-F27PBJKO-DfkCzGL9.js} +1 -1
  45. package/dist/web/assets/{chunk-IMKFNOWR-D4mPRcFe.js → chunk-IMKFNOWR-yN65S3YD.js} +1 -1
  46. package/dist/web/assets/{chunk-JWPE2WC7-BgD0K5Ez.js → chunk-JWPE2WC7-ByQ6NS99.js} +1 -1
  47. package/dist/web/assets/{chunk-POPQ4Y6H-ClQOYSty.js → chunk-POPQ4Y6H-CHRLyTiT.js} +1 -1
  48. package/dist/web/assets/{chunk-SVP7TREG-D3Cn_lvd.js → chunk-SVP7TREG-DvLoUZ9h.js} +1 -1
  49. package/dist/web/assets/{chunk-TICWLB2K-DPn2znfA.js → chunk-TICWLB2K-BvzbxDY6.js} +1 -1
  50. package/dist/web/assets/{chunk-XXDRQBXY-2xXr8EXw.js → chunk-XXDRQBXY-DkfEU2XD.js} +1 -1
  51. package/dist/web/assets/classDiagram-ZZMXUADV-3BGzDrBP.js +1 -0
  52. package/dist/web/assets/classDiagram-v2-VYDZK3BY-3BGzDrBP.js +1 -0
  53. package/dist/web/assets/{cose-bilkent-JH36ORCC-CHqRRPA_.js → cose-bilkent-JH36ORCC-D2Hh7gs6.js} +1 -1
  54. package/dist/web/assets/{cynefin-OW5HDTMX-Bu5NPO95.js → cynefin-OW5HDTMX-DwbOregT.js} +1 -1
  55. package/dist/web/assets/{cynefinDiagram-5FMLGOSQ-BI3nxgnD.js → cynefinDiagram-5FMLGOSQ-vE21HTel.js} +1 -1
  56. package/dist/web/assets/{dagre-GXQ25YYZ-B7lINgif.js → dagre-GXQ25YYZ-Dtj5PNkl.js} +1 -1
  57. package/dist/web/assets/{diagram-S7CK7UJ4-C-D6efep.js → diagram-S7CK7UJ4-CE958Up8.js} +1 -1
  58. package/dist/web/assets/{diagram-UQ7AKVKN-BLuEz09b.js → diagram-UQ7AKVKN-eKQdP4HV.js} +1 -1
  59. package/dist/web/assets/{diagram-VSXAHHWV-CUPoEtgr.js → diagram-VSXAHHWV-CYvYJQrA.js} +1 -1
  60. package/dist/web/assets/{diagram-VX7I27RA-CSSKOhYt.js → diagram-VX7I27RA-BbKYzLMW.js} +1 -1
  61. package/dist/web/assets/{diagram-Z3DM3KII-DPn5bqOq.js → diagram-Z3DM3KII-DV77g65D.js} +1 -1
  62. package/dist/web/assets/{download-CM6xWttS.js → download-36kk3IeP.js} +1 -1
  63. package/dist/web/assets/{ebnfDiagram-PWID7BFC-MFXoS-Jz.js → ebnfDiagram-PWID7BFC-D0sEmHPl.js} +1 -1
  64. package/dist/web/assets/{erDiagram-RLTQ6QDP-4HM-oT_n.js → erDiagram-RLTQ6QDP-DK-Z6i0m.js} +1 -1
  65. package/dist/web/assets/{flowDiagram-HODETNUW-C4Fh3QeO.js → flowDiagram-HODETNUW-Dp0aJQEZ.js} +1 -1
  66. package/dist/web/assets/folder-open-D1-I40k-.js +16 -0
  67. package/dist/web/assets/{ganttDiagram-EL5Y4UJY-BB0_ZKN6.js → ganttDiagram-EL5Y4UJY-BoG15yoq.js} +1 -1
  68. package/dist/web/assets/{gitGraphDiagram-WWUBYQGX-BmQ3vg7J.js → gitGraphDiagram-WWUBYQGX-K4reAMXM.js} +1 -1
  69. package/dist/web/assets/{highlighted-body-KPVGNVTW-oCX1KOoZ.js → highlighted-body-KPVGNVTW-5ZVqRrCq.js} +1 -1
  70. package/dist/web/assets/index-CB3c1nr-.css +1 -0
  71. package/dist/web/assets/index-SOCnaNS0.js +453 -0
  72. package/dist/web/assets/{infoDiagram-27XIBGKW-BTPkoR3C.js → infoDiagram-27XIBGKW-67wFgmJP.js} +1 -1
  73. package/dist/web/assets/{ishikawaDiagram-5VMMS53U-CiHd2ebW.js → ishikawaDiagram-5VMMS53U-B9jfOEH9.js} +1 -1
  74. package/dist/web/assets/{journeyDiagram-3NMN7TZE-CxaySxDn.js → journeyDiagram-3NMN7TZE-CuSLYkR9.js} +1 -1
  75. package/dist/web/assets/{kanban-definition-UXKFOSKX-BOX0YIRw.js → kanban-definition-UXKFOSKX-Cw5N-uDl.js} +1 -1
  76. package/dist/web/assets/{layout-BhNFpPPe.js → layout-CWCq0m-I.js} +1 -1
  77. package/dist/web/assets/{linear-DHq-y1s_.js → linear-DKAXfoGA.js} +1 -1
  78. package/dist/web/assets/list-CaqywJgg.js +6 -0
  79. package/dist/web/assets/mermaid-HWGCJPDP-CMQlzgg9.js +609 -0
  80. package/dist/web/assets/{mindmap-definition-YA3MSWOX-DZGpGSz5.js → mindmap-definition-YA3MSWOX-CA6cGhJr.js} +1 -1
  81. package/dist/web/assets/{pegDiagram-XKGWAZYB-BxMh-_51.js → pegDiagram-XKGWAZYB-CX-B1UCC.js} +1 -1
  82. package/dist/web/assets/{pencil-B6dqJ9w4.js → pencil-C-6rguDb.js} +1 -1
  83. package/dist/web/assets/{pieDiagram-E7YTZNPT-CS3y4-9p.js → pieDiagram-E7YTZNPT-ZxtffUUp.js} +1 -1
  84. package/dist/web/assets/{quadrantDiagram-AXDQQJYC-CpI43lZu.js → quadrantDiagram-AXDQQJYC-hp3sjfpX.js} +1 -1
  85. package/dist/web/assets/{railroadDiagram-O6MQD6OU-DjJq4i95.js → railroadDiagram-O6MQD6OU-DA06SOlR.js} +1 -1
  86. package/dist/web/assets/{refresh-cw-DlrGbI-a.js → refresh-cw-BQyph7xD.js} +1 -1
  87. package/dist/web/assets/{requirementDiagram-BXWQKSXE-s2eQx2yN.js → requirementDiagram-BXWQKSXE-B6uWt2Rc.js} +1 -1
  88. package/dist/web/assets/{sankeyDiagram-P5KCCOFB-D_Vdp4pK.js → sankeyDiagram-P5KCCOFB-C5_tPpb5.js} +1 -1
  89. package/dist/web/assets/{save-C9B3YcwG.js → save-qGawhRKH.js} +1 -1
  90. package/dist/web/assets/{scroll-area-BlQvOdJP.js → scroll-area-C-MTuK1y.js} +1 -1
  91. package/dist/web/assets/{sequenceDiagram-WJ2MYXX4-CQHywZuE.js → sequenceDiagram-WJ2MYXX4-CP1FmNA0.js} +1 -1
  92. package/dist/web/assets/{sizeCapture-INFHLROL-BInl5f7-.js → sizeCapture-INFHLROL-BnZ0rzQe.js} +1 -1
  93. package/dist/web/assets/{stateDiagram-D77RDMKH-DzvPlBSY.js → stateDiagram-D77RDMKH-B--86L9i.js} +1 -1
  94. package/dist/web/assets/stateDiagram-v2-MP3YSRHH-CXtInY-i.js +1 -0
  95. package/dist/web/assets/{swimlanes-42K2YHIH-Dg2ec7U4.js → swimlanes-42K2YHIH-BV8_rH1v.js} +1 -1
  96. package/dist/web/assets/swimlanesDiagram-VR7AAH4N-DyVW1GT5.js +8 -0
  97. package/dist/web/assets/{timeline-definition-24CTP7MA-CIv5WXwQ.js → timeline-definition-24CTP7MA-Cm1hEfH0.js} +1 -1
  98. package/dist/web/assets/{upload-Bj7E30a8.js → upload-CCnbjfQN.js} +1 -1
  99. package/dist/web/assets/useJobs-DDRY0jra.js +1 -0
  100. package/dist/web/assets/{useKnowledge-D0_usn9_.js → useKnowledge-CHZ4AwZh.js} +1 -1
  101. package/dist/web/assets/{useMemories-8BpYi3YI.js → useMemories-BGxDOJge.js} +1 -1
  102. package/dist/web/assets/useProjectScope-B28fk5NO.js +1 -0
  103. package/dist/web/assets/{vennDiagram-4TSXK5OY-XAHw4n3M.js → vennDiagram-4TSXK5OY-vVCoILPC.js} +1 -1
  104. package/dist/web/assets/{wardleyDiagram-VM6X3IG4-BIEdfrsN.js → wardleyDiagram-VM6X3IG4-CnkLT61Q.js} +1 -1
  105. package/dist/web/assets/{xychartDiagram-S5SC5T6Z-BaNxlHBC.js → xychartDiagram-S5SC5T6Z-Bvv63kic.js} +1 -1
  106. package/dist/web/index.html +3 -3
  107. package/package.json +1 -1
  108. package/dist/skills/orc-bugfix/SKILL.md +0 -26
  109. package/dist/skills/orc-coder/SKILL.md +0 -38
  110. package/dist/skills/orc-gateway/SKILL.md +0 -103
  111. package/dist/skills/orc-git-flow/SKILL.md +0 -26
  112. package/dist/skills/orc-handoff/SKILL.md +0 -86
  113. package/dist/skills/orc-knowledge/SKILL.md +0 -106
  114. package/dist/skills/orc-main-base/SKILL.md +0 -32
  115. package/dist/skills/orc-memory/SKILL.md +0 -91
  116. package/dist/skills/orc-memory-review/SKILL.md +0 -26
  117. package/dist/skills/orc-planner/SKILL.md +0 -24
  118. package/dist/skills/orc-report/SKILL.md +0 -90
  119. package/dist/skills/orc-requirements/SKILL.md +0 -111
  120. package/dist/skills/orc-reviewer/SKILL.md +0 -47
  121. package/dist/skills/orc-session/SKILL.md +0 -117
  122. package/dist/skills/orc-tasks/SKILL.md +0 -39
  123. package/dist/skills/orc-wiki/SKILL.md +0 -15
  124. package/dist/skills/orc-worker-base/SKILL.md +0 -59
  125. package/dist/web/assets/Audit-PGckH0vM.js +0 -1
  126. package/dist/web/assets/Jobs-CXU4KM7g.js +0 -11
  127. package/dist/web/assets/Knowledge-Dl4SueEz.js +0 -38
  128. package/dist/web/assets/Pager-DP4jbc0w.js +0 -1
  129. package/dist/web/assets/Sessions-B5wUetrc.js +0 -1
  130. package/dist/web/assets/Settings-CrMlCCF0.js +0 -12
  131. package/dist/web/assets/Skills-p8PK9QQh.js +0 -1
  132. package/dist/web/assets/Terminals-BbWYyHA3.css +0 -1
  133. package/dist/web/assets/Terminals-krsRcQI9.js +0 -43
  134. package/dist/web/assets/channel-DEfxPxY-.js +0 -1
  135. package/dist/web/assets/classDiagram-ZZMXUADV-AHd3Z06u.js +0 -1
  136. package/dist/web/assets/classDiagram-v2-VYDZK3BY-AHd3Z06u.js +0 -1
  137. package/dist/web/assets/folder-open-B4mla76J.js +0 -6
  138. package/dist/web/assets/index-1DuOwIVM.css +0 -1
  139. package/dist/web/assets/index-C8LK_ZGr.js +0 -379
  140. package/dist/web/assets/mermaid-HWGCJPDP-DJNeD_0S.js +0 -609
  141. package/dist/web/assets/schemas-Cwl03S4d.js +0 -57
  142. package/dist/web/assets/stateDiagram-v2-MP3YSRHH-BiG6-goP.js +0 -1
  143. package/dist/web/assets/swimlanesDiagram-VR7AAH4N-CGOOp6ap.js +0 -8
  144. package/dist/web/assets/useJobs-5iAiSyqW.js +0 -1
  145. package/dist/web/assets/useProjectScope-CRW39JH-.js +0 -1
  146. /package/dist/skills/{orc-handoff → orc-platform}/scripts/upload-session.py +0 -0
package/README.md CHANGED
@@ -61,6 +61,8 @@ On first launch the app sets everything up:
61
61
 
62
62
  The builds are unsigned: on macOS right-click the app and choose Open the first time, on Windows choose "More info" then "Run anyway".
63
63
 
64
+ The sidebar shows the saved execution host, for example `Connected (lab)` or `Connected (local)`. Switching hosts applies to new actions immediately. For a full restart, use **Settings → ORC server → Restart ORC server**; it keeps settings and reconnects the dashboard automatically. Restart closes active terminals and may interrupt running work. Host changes never trigger a restart automatically.
65
+
64
66
  <details>
65
67
  <summary>Headless / CLI-only install (servers, Docker, CI)</summary>
66
68
 
@@ -122,6 +124,38 @@ orc task list
122
124
 
123
125
  Open `http://localhost:7700` to use the web dashboard - task board, kanban, flow runs, jobs, memories, sessions, knowledge, and a live chat panel. The same server hosts both the REST API and the prebuilt React SPA, so there is no separate command to run for the UI.
124
126
 
127
+ Chat uses the shared agent runtime: Claude through its SDK, Codex through its native
128
+ CLI, and other agents through ACPX. Choose a model from the composer; configure
129
+ model choices, conversation instructions, the ORC MCP connection and automatic
130
+ actions in **Settings → Chat**. Defaults are stored in `preferences.chat` in ORC's
131
+ JSON configuration and apply to new conversations on every device. The model
132
+ dialog shows the current conversation's setup. Claude appends the instructions
133
+ to its coding system prompt; Codex and ACPX receive them as turn instructions.
134
+ Agent and workspace instructions may also apply.
135
+
136
+ Automatic actions default off: Claude can request approval in chat, Codex uses a
137
+ read-only sandbox, and ACPX follows its agent's native permission policy. Enabling
138
+ automatic actions lets Claude bypass permission prompts and Codex write inside
139
+ its workspace; ORC rules remain enforced. The ORC MCP option adds an authenticated
140
+ connection for Claude and Codex without exposing credentials to the browser.
141
+ Host configuration can include additional MCP servers; choosing host configuration
142
+ does not disable those servers. Other ACPX agents require host configuration.
143
+
144
+ Use the history icon to continue a saved chat or an ended Claude/Codex coding
145
+ session. Synced sessions use the existing verified repository/commit handoff;
146
+ provide missing checkout details before importing. Native history stays with the
147
+ agent, while chat displays up to 100 recent imported turns. An active source session
148
+ must end before chat resumes it. Resume failures never trigger a fresh session.
149
+ New chats use the API working directory locally or the selected SSH host's home;
150
+ resumed chats retain their execution host and folder. New conversation keeps the
151
+ previous chat in history.
152
+
153
+ Responses show provider-supplied text, collapsible thinking summaries and tool
154
+ input/results as they arrive, with a responding indicator during quiet periods.
155
+ Some providers emit complete blocks rather than individual tokens. Conversation
156
+ messages and activity are saved in the ORC database. Full-screen mode preserves
157
+ the conversation; phones and tablets use a full-screen chat sheet automatically.
158
+
125
159
  > [!TIP]
126
160
  > The database is created automatically at `~/.orc/orc.db` on first run. No setup needed.
127
161
 
@@ -197,6 +231,27 @@ The `--mcp-config` flag wires the host agent back to ORC's [HTTP MCP endpoint](#
197
231
 
198
232
  ## Connect your agent
199
233
 
234
+ For coding-agent access, check the installed `spec` CLI bridge first (`spec --help`,
235
+ `spec specs`). It can call ORC's MCP server without configuring MCP separately in
236
+ each agent. Use an existing ORC registration or an inline endpoint for your selected
237
+ installation:
238
+
239
+ ```sh
240
+ spec call --mcp-http http://127.0.0.1:7700/mcp context --data '{"project":"my-app"}'
241
+ spec call --mcp-http http://127.0.0.1:7700/mcp skill_read --data '{"name":"orc-sdlc","project":"my-app"}'
242
+ ```
243
+
244
+ For authenticated servers, use existing secure secret references in spec configuration;
245
+ do not put secrets in command arguments. Use `SPEC_NO_CACHE=1` when refreshing live
246
+ context and effective skills. Direct MCP connections below remain supported when
247
+ already configured. Check the CLI bridge before reporting ORC unavailable.
248
+
249
+ Lifecycle hooks and MCP registration are separate. The hook examples below record
250
+ session activity; also register ORC in the client's supported MCP configuration
251
+ using `orc mcp` (stdio) or `<origin>/mcp` (HTTP). Preserve existing servers and
252
+ configure authentication privately. Verify tool discovery and a project-scoped
253
+ `context` call in each client; installed hooks alone do not establish MCP access.
254
+
200
255
  ### Claude Code
201
256
 
202
257
  Add to `~/.claude/settings.json`:
@@ -309,17 +364,18 @@ The task loop automatically picks up queued tasks and spawns worker agents:
309
364
 
310
365
  ```bash
311
366
  # Create a task with a workflow and backend
312
- orc task add "Implement user auth" --skill orc-coder --backend claude --priority high
367
+ orc task add "Implement user auth" --skill orc-sdlc --backend claude --priority high
313
368
 
314
369
  # Or batch-create with dependencies via MCP
315
370
  task_batch_create({ tasks: [
316
- { title: "Design schema", skill_name: "orc-planner" },
317
- { title: "Implement API", skill_name: "orc-coder", blocked_by: [0] },
318
- { title: "Review code", skill_name: "orc-reviewer", blocked_by: [1] }
371
+ { ref: "design", title: "Design schema", skill_name: "orc-sdlc" },
372
+ { ref: "api", title: "Implement API", skill_name: "orc-sdlc", depends_on: ["design"] },
373
+ { ref: "tests", title: "Verify API integration", skill_name: "orc-sdlc", depends_on: ["api"] }
319
374
  ]})
320
375
  ```
321
376
 
322
377
  The loop handles concurrency, session resume on feedback, review round limits, stale claim cleanup, and backend routing.
378
+ Each task's configured flow handles its review; a separate review task is unnecessary.
323
379
 
324
380
  Every task runs a **flow graph** (see [Task flows](#task-flows)); `orc-default` is the build → review → done pipeline described above.
325
381
 
@@ -371,6 +427,8 @@ Enable the task loop in `~/.orc/config.json`:
371
427
 
372
428
  Projects group tasks, memories, and jobs. Set an active project and all commands auto-scope:
373
429
 
430
+ Projects can also store an optional Git remote URL in the create/edit dialog or through `--git-remote-url`. HTTPS and SSH addresses are supported without embedded credentials. The address is project metadata; setting it does not clone a repository or change a checkout's remote. Clear it in the editor, send `git_remote_url: null` through the API, or use `orc project update my-app --clear-git-remote-url`.
431
+
374
432
  ```bash
375
433
  orc project add my-app -d "Main application"
376
434
  orc project use my-app # set active
@@ -464,7 +522,7 @@ The graph itself is deterministic; only the nodes are agents. That means loops,
464
522
  ```bash
465
523
  orc flow list # what graphs are available
466
524
  orc flow show orc-default # nodes, edges, limits
467
- orc task add "Fix the flaky test" --flow orc-default --skill orc-bugfix
525
+ orc task add "Fix the flaky test" --flow orc-default --skill orc-sdlc
468
526
  orc flow status <taskId> # active nodes + the ledger of outcomes
469
527
  orc flow resume <taskId> --outcome approved # resolve a human gate
470
528
  orc flow halt <taskId> # stop it and kill live nodes
@@ -508,6 +566,53 @@ orc job add on-change --command "bun run lint" --trigger watch --watch "./s
508
566
  orc job add on-push --command "bun run ci" --trigger webhook
509
567
  ```
510
568
 
569
+ Jobs separate **what runs** from **when it runs**. Choose **Run command**,
570
+ **Run agent**, or **Create task** in the dashboard. Command is required only for
571
+ Run command. Agent jobs save instructions, backend, optional model and explicit
572
+ tool approval; each run links to its tracked session. Task jobs save a task title
573
+ and instructions and link to the created task. **Start the task flow automatically**
574
+ is off by default, so generated tasks wait for a manual flow start.
575
+ The CLI accepts typed actions through `--action-config <json>`.
576
+
577
+ New jobs are disabled by default. Select **Enable this job immediately** during
578
+ creation or pass `orc job add ... --enable` to opt in. Jobs supports enable/disable
579
+ directly in the list and for selected rows. Projects shares the selection toolbar
580
+ for activate, pause and archive actions; select-all applies only to displayed rows.
581
+ Failed bulk updates remain selected so you can retry them.
582
+
583
+ ### Webhooks
584
+
585
+ Open **Activity → Webhooks** to see all configured event sources and their connected
586
+ jobs. Create a source without a job, copy its URL and one-time signing secret, then
587
+ register them with the provider. Sources belong to the selected project, or are
588
+ shared across projects when created in All projects.
589
+
590
+ In **Jobs → New job** (or Edit), choose **Webhook** as the trigger, select an
591
+ existing source or create one inline, and set this job's event/action filters.
592
+ One source can trigger multiple enabled jobs, each with its own filters and action.
593
+ The Webhooks page shows source enablement, connected jobs and recent deliveries,
594
+ including individual run results and links to generated tasks or agent sessions.
595
+ Deleting a job disconnects it while preserving the reusable source.
596
+
597
+ For command jobs, accepted JSON is passed unchanged on stdin; bounded metadata is
598
+ also available as `ORC_WEBHOOK_*` environment variables. Agent and task jobs receive
599
+ up to 50,000 characters of event data, explicitly marked as untrusted input, alongside
600
+ the configured instructions. Delivery history stores event metadata and a payload
601
+ hash, not the payload body or signing secret; generated tasks and agent prompts can
602
+ contain the supplied event data.
603
+
604
+ Generic endpoints verify `X-Orc-Signature-256: sha256=<HMAC-SHA256 of the raw body>`.
605
+ Use `X-Orc-Event` for event filtering and `X-Orc-Delivery` (or
606
+ `Idempotency-Key`) for deduplication. GitHub endpoints use
607
+ `X-Hub-Signature-256`, `X-GitHub-Event` and `X-GitHub-Delivery` directly.
608
+ Event names and payload `action` values are configurable, so PR lifecycle,
609
+ reviews, workflow runs, releases, or later providers use the same job trigger.
610
+
611
+ Signing secrets are encrypted at rest and shown only when an endpoint is created or
612
+ rotated. The receiver is intentionally outside normal ORC bearer authentication;
613
+ the per-endpoint HMAC is its authentication boundary. Management remains under the
614
+ authenticated API.
615
+
511
616
  ### Gateway (Telegram / Slack)
512
617
 
513
618
  Approve agent work from your phone, search memory, or start a live AI session.
@@ -551,7 +656,7 @@ Same commands as Telegram. Create a Slack app at [api.slack.com/apps](https://ap
551
656
 
552
657
  ## Skills
553
658
 
554
- ORC ships with agent workflow skills and built-in skill templates for the task loop.
659
+ ORC ships two entry-point skills. Their supporting references load only when needed; custom skills and packages remain supported.
555
660
 
556
661
  ### Install skills
557
662
 
@@ -560,21 +665,23 @@ ORC ships with agent workflow skills and built-in skill templates for the task l
560
665
  npx skills add niradler/orc --all
561
666
 
562
667
  # Or pick specific ones
563
- npx skills add niradler/orc --skill orc-session orc-tasks
668
+ npx skills add niradler/orc --skill orc-platform orc-sdlc
564
669
 
565
670
  # Global install
566
671
  npx skills add niradler/orc --all -g
567
672
  ```
568
673
 
569
- ### Agent workflow skills
674
+ ### Entry-point skills
570
675
 
571
- | Skill | Triggers on |
572
- | --------------- | -------------------------------------------------------------------------- |
573
- | `orc-session` | Session start, context compaction, resuming work |
574
- | `orc-tasks` | Task creation, status updates, HITL review, task decomposition |
575
- | `orc-memory` | Short project facts, "remember this", "what did we decide" |
576
- | `orc-knowledge` | Searching indexed docs, managing knowledge collections |
577
- | `orc-gateway` | Telegram/Slack setup, remote approval, live agent sessions |
676
+ | Skill | Purpose |
677
+ | --- | --- |
678
+ | `orc-platform` | Operate ORC domains: setup/interfaces/auth, memory and maintained KBs/digests/embeddings, work/operations, sessions/SSH/Git/chat, rules and agent packages |
679
+ | `orc-sdlc` | Requirements → risk/complexity classification → direct work or plan → implementation → tests/completeness → review/rework → authorized Git delivery, with shared learning throughout |
680
+
681
+ Start with the relevant entry point and read only its selected reference. Platform
682
+ guidance groups related domains while keeping memory, execution and rules independently
683
+ loadable; SDLC has planning, development and review/delivery references. Clear low-risk
684
+ work can execute directly; assigned managed nodes preserve roles and flow contracts.
578
685
 
579
686
  ### Built-in skill templates
580
687
 
@@ -585,7 +692,7 @@ On the **Skills** page, each built-in has an **Agent discovery** toggle, plus
585
692
  across the installation and defaults to visible. Hidden built-ins stay on the
586
693
  Skills page for management and remain readable by name, including supporting
587
694
  files; existing task flows continue to use them. User/imported skills and authored
588
- global/project instruction overrides remain discoverable.
695
+ global/project instruction overrides of current skills remain discoverable.
589
696
 
590
697
  The policy is saved under `skills.hidden_builtins` in `~/.orc/config.json` and
591
698
  read afresh for discovery, including by existing MCP processes. `GET /api/skills`
@@ -595,16 +702,14 @@ omits hidden built-ins; `include_hidden=true` returns the management catalog wit
595
702
  API authentication. This installation-wide preference ignores project config.
596
703
  New built-ins default to visible until hidden explicitly.
597
704
 
598
- | Skill | Type | Purpose |
599
- | ------------------ | -------- | --------------------------------------------------------------------------- |
600
- | `orc-worker-base` | Base | Default worker behavior - ORC awareness, status updates, deliverable format |
601
- | `orc-main-base` | Base | Orchestration agent - planning, decomposition, monitoring |
602
- | `orc-coder` | Workflow | Implementation - understand, plan, implement, verify, submit |
603
- | `orc-planner` | Workflow | Task decomposition with dependencies and workflow assignment |
604
- | `orc-reviewer` | Workflow | Structured evaluation - correctness, tests, security, conventions |
605
- | `orc-bugfix` | Workflow | Bug investigation - reproduce, root-cause, fix, regression test |
606
- | `orc-requirements` | Skill | Requirements interview - outcome, criteria, constraints, scope |
607
- | `orc-report` | Skill | Project status report - health summary, blockers, active work |
705
+ Retired built-in names (such as `orc-coder` and `orc-reviewer`) remain readable
706
+ as compatibility routes for saved tasks, authored overrides and frozen flows, but
707
+ are not additional discovery entries. New tasks and built-in flows use
708
+ `orc-sdlc`; the node role selects implementation versus independent review.
709
+ Applicable authored legacy worker/coder/reviewer/knowledge instructions remain
710
+ role-scoped supplements with revision provenance, including on resume. Other authored
711
+ legacy domain guidance is indexed from the canonical effective read and loads by name
712
+ when relevant. Conflicts are surfaced rather than silently rewriting stored overlays.
608
713
 
609
714
  Add custom skills by creating a `SKILL.md` in `~/.orc/skills/my-workflow/SKILL.md`.
610
715
 
@@ -629,7 +734,7 @@ orc skill validate ./my-workflow
629
734
  orc skill export my-workflow ./exported/my-workflow
630
735
  ```
631
736
 
632
- Import public GitHub skills from **Skills → Import from GitHub**. Paste a repository URL, `owner/repo`, a GitHub skill-folder URL, or a `https://skills.sh/owner/repo/skill` link, discover the skills, then select which to import. ORC copies each complete folder at the displayed commit, including nested documentation, scripts and binary assets. Existing names are never overwritten by an import. Select up to 16 skills per import (64 MiB total).
737
+ Import GitHub skills from **Skills → Import from GitHub**. Paste a repository URL, `owner/repo`, a GitHub skill-folder URL, or a `https://skills.sh/owner/repo/skill` link, discover the skills, then select which to import. Private repositories use `gh` credentials on the configured execution host (local by default, remote when `ssh.host` is set), falling back to `ORC_GITHUB_TOKEN` / `github.token` on the ORC server; credentials need access to the repository. Without credentials, public repositories still work. ORC copies each complete folder at the displayed commit, including nested documentation, scripts and binary assets. Existing names are never overwritten by an import. Select up to 16 skills per import (64 MiB total).
633
738
 
634
739
  ```bash
635
740
  orc skill import vercel-labs/agent-skills --list
@@ -670,6 +775,15 @@ The **Agents** page creates/reads specialist profiles. API `/api/agents` and `/a
670
775
 
671
776
  ## MCP tools
672
777
 
778
+ Agents can fetch original skill scripts/assets with
779
+ `skill_read({name: "orc-platform", ref: "scripts/upload-session.py", download: true, project: "my-app"})`.
780
+ It returns a signed ten-minute `download_url`, `sha256`, `size_bytes` and expiry
781
+ instead of the file body. Download to a local file and verify the hash; do not
782
+ reconstruct scripts from tool text. The URL authorizes only that file version and
783
+ does not contain the API secret. Keep it private. Expiry, API restart or file changes
784
+ require a new URL. Downloading never executes scripts. The authenticated REST mint
785
+ endpoint is `POST /api/skills/<name>/download` with `ref` and optional scope.
786
+
673
787
  Tools are available to any connected agent. Start every session with `context`.
674
788
 
675
789
  | Category | Tools |