@azure-id/orc 0.56.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/CHANGELOG.md +219 -0
  2. package/README-id.md +49 -107
  3. package/README.md +694 -719
  4. package/bin/build-agents.js +18 -11
  5. package/bin/cli.js +33699 -29855
  6. package/bin/onboarding-content.js +0 -3
  7. package/bin/test-run.js +491 -0
  8. package/bin/verify-contracts.js +4330 -3277
  9. package/bin/verify-package.js +76 -6
  10. package/bin/webui/api.js +1201 -1163
  11. package/bin/webui/app.html +210 -198
  12. package/bin/webui/css/06-responsive.css +120 -108
  13. package/bin/webui/css/panels/extra.css +29 -0
  14. package/bin/webui/css/panels/lanes.css +134 -0
  15. package/bin/webui/css/panels/settings.css +79 -3
  16. package/bin/webui/css/panels/wait.css +123 -0
  17. package/bin/webui/fixtures/extra.js +2036 -1934
  18. package/bin/webui/fixtures/flow.js +2 -2
  19. package/bin/webui/fixtures/index.js +510 -486
  20. package/bin/webui/fixtures/lanes.js +218 -0
  21. package/bin/webui/fixtures/settings.js +261 -34
  22. package/bin/webui/fixtures/stats.js +3 -3
  23. package/bin/webui/fixtures/wait.js +97 -0
  24. package/bin/webui/i18n/TERMS.md +135 -134
  25. package/bin/webui/i18n/en/extra.json +345 -313
  26. package/bin/webui/i18n/en/lanes.json +29 -0
  27. package/bin/webui/i18n/en/nav.json +21 -19
  28. package/bin/webui/i18n/en/overview.json +2 -0
  29. package/bin/webui/i18n/en/settings.json +16 -5
  30. package/bin/webui/i18n/en/wait.json +41 -0
  31. package/bin/webui/i18n/id/extra.json +345 -313
  32. package/bin/webui/i18n/id/lanes.json +29 -0
  33. package/bin/webui/i18n/id/nav.json +21 -19
  34. package/bin/webui/i18n/id/overview.json +2 -0
  35. package/bin/webui/i18n/id/settings.json +15 -4
  36. package/bin/webui/i18n/id/wait.json +41 -0
  37. package/bin/webui/js/01-i18n.js +151 -149
  38. package/bin/webui/js/panels/extra.js +3199 -3011
  39. package/bin/webui/js/panels/lanes.js +259 -0
  40. package/bin/webui/js/panels/overview.js +10 -0
  41. package/bin/webui/js/panels/settings.js +149 -3
  42. package/bin/webui/js/panels/wait.js +253 -0
  43. package/package.json +39 -39
  44. package/templates/agents/MODEL-MAPPING.md +23 -35
  45. package/templates/agents/orc-executor-opus-4-7-high.md +1 -1
  46. package/templates/agents/orc-executor-opus-4-7-med.md +1 -1
  47. package/templates/agents/orc-executor-opus-4-8-high.md +1 -1
  48. package/templates/agents/orc-executor-opus-5-high.md +1 -1
  49. package/templates/agents/orc-executor-opus-5-low.md +1 -1
  50. package/templates/agents/orc-executor-opus-5-med.md +1 -1
  51. package/templates/agents/orc-retro-opus-5-med.md +73 -73
  52. package/templates/agents/orc-retro-sonnet-5-high.md +72 -72
  53. package/templates/agents/orc-trace-writer-haiku-4-5.md +107 -107
  54. package/templates/commands/orc-route.md +1 -1
  55. package/templates/commands/orc-wait.md +19 -0
  56. package/templates/commands/orc.md +1 -1
  57. package/templates/hooks/orc-statusline.js +39 -0
  58. package/templates/skills/_shared/README.md +7 -3
  59. package/templates/skills/_shared/config-precedence.md +198 -0
  60. package/templates/skills/_shared/drift-recovery.md +1 -1
  61. package/templates/skills/_shared/extra-dispatch.md +159 -7
  62. package/templates/skills/_shared/interview.md +1 -1
  63. package/templates/skills/_shared/opus5-only.md +9 -7
  64. package/templates/skills/_shared/phases/README.md +82 -0
  65. package/templates/skills/{orc/references → _shared/phases}/analyst-gates.md +15 -3
  66. package/templates/skills/_shared/phases/execution.md +143 -0
  67. package/templates/skills/{orc/references → _shared/phases}/house-rules.md +13 -1
  68. package/templates/skills/{orc/references → _shared/phases}/intake.md +15 -2
  69. package/templates/skills/_shared/phases/mock-example.md +56 -0
  70. package/templates/skills/{orc/references → _shared/phases}/plan-handoff.md +16 -3
  71. package/templates/skills/_shared/phases/planning.md +135 -0
  72. package/templates/skills/_shared/phases/preflight.md +98 -0
  73. package/templates/skills/_shared/phases/review.md +53 -0
  74. package/templates/skills/_shared/phases/scoring.md +65 -0
  75. package/templates/skills/{orc/references → _shared/phases}/security-checklist.md +12 -1
  76. package/templates/skills/_shared/phases/security.md +55 -0
  77. package/templates/skills/_shared/phases/ship.md +88 -0
  78. package/templates/skills/{orc/references/stop-and-resume.md → _shared/phases/stop-resume.md} +169 -160
  79. package/templates/skills/_shared/phases/summary.md +48 -0
  80. package/templates/skills/_shared/phases/testgen.md +51 -0
  81. package/templates/skills/{orc/references/trace-protocol.md → _shared/phases/trace.md} +49 -6
  82. package/templates/skills/_shared/phases/verify.md +70 -0
  83. package/templates/skills/{orc/references → _shared/phases}/wave-grouping.md +14 -2
  84. package/templates/skills/{orc/references → _shared/phases}/wiki-consult.md +13 -1
  85. package/templates/skills/_shared/read-ladder.md +48 -0
  86. package/templates/skills/_shared/wait.md +240 -0
  87. package/templates/skills/context-combiner/SKILL.md +214 -187
  88. package/templates/skills/orc/README.md +148 -150
  89. package/templates/skills/orc/SKILL.md +75 -358
  90. package/templates/skills/orc/config.md +137 -389
  91. package/templates/skills/orc/examples/full-run-mock.md +1 -1
  92. package/templates/skills/orc/references/effort-and-mode.md +16 -18
  93. package/templates/skills/orc/references/phases/intake.md +47 -0
  94. package/templates/skills/orc/references/phases/integration.md +19 -0
  95. package/templates/skills/orc/references/preflight-report.md +4 -4
  96. package/templates/skills/orc/references/ultra-mode.md +117 -123
  97. package/templates/skills/orc/schemas/planning-output.md +279 -279
  98. package/templates/skills/orc/subskills/orc-planner/SKILL.md +260 -264
  99. package/templates/skills/orc/subskills/orc-pr/stack-gate.md +4 -1
  100. package/templates/skills/orc-aftermath/SKILL.md +158 -136
  101. package/templates/skills/orc-analyze/SKILL.md +252 -220
  102. package/templates/skills/orc-analyze/references/branching.md +51 -51
  103. package/templates/skills/orc-analyze/references/thin-input.md +1 -1
  104. package/templates/skills/orc-analyze-mini/SKILL.md +128 -112
  105. package/templates/skills/orc-boundary/SKILL.md +249 -208
  106. package/templates/skills/orc-brainstorm/SKILL.md +377 -339
  107. package/templates/skills/orc-budget/SKILL.md +248 -225
  108. package/templates/skills/orc-challenge/README.md +1 -1
  109. package/templates/skills/orc-challenge/SKILL.md +298 -255
  110. package/templates/skills/orc-challenge/examples/council-full-roster.md +1 -1
  111. package/templates/skills/orc-claude/SKILL.md +221 -199
  112. package/templates/skills/orc-diy/README.md +2 -1
  113. package/templates/skills/orc-diy/SKILL.md +132 -68
  114. package/templates/skills/orc-diy/references/blocks/analyze.md +1 -1
  115. package/templates/skills/orc-diy/references/compile.md +21 -7
  116. package/templates/skills/orc-diy/references/flow-schema.md +2 -2
  117. package/templates/skills/orc-doc/SKILL.md +49 -7
  118. package/templates/skills/orc-explain/SKILL.md +24 -0
  119. package/templates/skills/orc-export/SKILL.md +31 -5
  120. package/templates/skills/orc-fast/SKILL.md +218 -185
  121. package/templates/skills/orc-grill/SKILL.md +238 -207
  122. package/templates/skills/orc-handoff/SKILL.md +223 -204
  123. package/templates/skills/orc-learn/SKILL.md +181 -156
  124. package/templates/skills/orc-mini/SKILL.md +47 -24
  125. package/templates/skills/orc-pact/SKILL.md +255 -218
  126. package/templates/skills/orc-pattern/SKILL.md +154 -124
  127. package/templates/skills/orc-poly/SKILL.md +242 -216
  128. package/templates/skills/orc-poly/references/gather.md +1 -1
  129. package/templates/skills/orc-pr-driver/SKILL.md +196 -167
  130. package/templates/skills/orc-pr-driver/references/orc-run-split.md +1 -1
  131. package/templates/skills/orc-pr-setup/SKILL.md +212 -184
  132. package/templates/skills/orc-quick/README.md +2 -2
  133. package/templates/skills/orc-quick/SKILL.md +51 -13
  134. package/templates/skills/orc-quick/references/dispatch-gate.md +2 -3
  135. package/templates/skills/orc-retro/SKILL.md +249 -222
  136. package/templates/skills/orc-retro/examples/retro-mock.md +171 -171
  137. package/templates/skills/orc-route/SKILL.md +188 -165
  138. package/templates/skills/orc-verify/SKILL.md +103 -84
  139. package/templates/skills/orc-wait/SKILL.md +163 -0
  140. package/templates/skills/orc-wiki/SKILL.md +60 -206
  141. package/templates/skills/orc-wiki/references/phases/phase-0.md +71 -0
  142. package/templates/skills/orc-wiki/references/phases/phase-1.md +35 -0
  143. package/templates/skills/orc-wiki/references/phases/phase-2.md +52 -0
  144. package/templates/skills/orc-wiki/references/phases/phase-3.md +57 -0
  145. package/templates/skills/orc-wiki/references/phases/phase-3c.md +36 -0
  146. package/templates/agents/orc-advisor-fable-5.md +0 -50
  147. package/templates/agents/orc-analyst-fable-5.md +0 -115
  148. package/templates/agents/orc-judge-fable-5.md +0 -79
  149. package/templates/agents/orc-planner-fable-5.md +0 -152
  150. package/templates/agents/orc-reviewer-fable-5.md +0 -57
  151. package/templates/skills/_shared/fable5-override.md +0 -56
  152. package/templates/skills/orc-diy/references/blocks/execution.md +0 -42
  153. package/templates/skills/orc-diy/references/blocks/mock-example.md +0 -22
  154. package/templates/skills/orc-diy/references/blocks/planning.md +0 -34
  155. package/templates/skills/orc-diy/references/blocks/review.md +0 -18
  156. package/templates/skills/orc-diy/references/blocks/scoring.md +0 -16
  157. package/templates/skills/orc-diy/references/blocks/security.md +0 -25
  158. package/templates/skills/orc-diy/references/blocks/ship.md +0 -25
  159. package/templates/skills/orc-diy/references/blocks/summary.md +0 -18
  160. package/templates/skills/orc-diy/references/blocks/testgen.md +0 -17
  161. package/templates/skills/orc-diy/references/blocks/trace.md +0 -28
  162. package/templates/skills/orc-diy/references/blocks/verify.md +0 -25
@@ -1,22 +0,0 @@
1
- ## Phase: Mock example (after a green verify, before ship)
2
-
3
- <!-- diy:when mock_example=off -->
4
- The mock-example phase is DISABLED in this flow. Skip silently.
5
- <!-- /diy:when -->
6
- <!-- diy:when mock_example=ask -->
7
- After the verify/smoke gate is GREEN and BEFORE any ship action, the offer is
8
- MANDATORY (never silently skipped, never silently run): follow
9
- `.claude/skills/_shared/drift-recovery.md` — build
10
- `mock-examples/<change-slug>/` (EXAMPLE.md + one minimal runnable mocked
11
- artifact) only on a yes. After the user runs it, ask the one drift question;
12
- on drift run the `DRIFT-FROM` recovery loop (hard cap 2, then an honest
13
- unresolved report). `mock-examples/` is NEVER staged by the ship phase.
14
- <!-- /diy:when -->
15
- <!-- diy:when mock_example=on -->
16
- After the verify/smoke gate is GREEN and BEFORE any ship action, build the
17
- mocked example without asking, per
18
- `.claude/skills/_shared/drift-recovery.md`: `mock-examples/<change-slug>/`
19
- (EXAMPLE.md + one minimal runnable mocked artifact; mocked inputs only). Then
20
- ask the one drift question; on drift run the `DRIFT-FROM` recovery loop (hard
21
- cap 2). `mock-examples/` is NEVER staged by the ship phase.
22
- <!-- /diy:when -->
@@ -1,34 +0,0 @@
1
- ## Phase: Planning
2
-
3
- <!-- diy:when planning=auto -->
4
- Route planning exactly as the full lane does — Superpowers plan, OpenSpec
5
- change, or ORC's own planner, chosen by what exists in the project. Follow
6
- `.claude/skills/orc/subskills/orc-planner/SKILL.md` for the own-planner path
7
- and validate the planning output against
8
- `.claude/skills/orc/schemas/planning-output.md`.
9
- <!-- /diy:when -->
10
- <!-- diy:when planning=own-planner -->
11
- Always use ORC's own Requirement Planner, even when Superpowers/OpenSpec
12
- artifacts exist: follow `.claude/skills/orc/subskills/orc-planner/SKILL.md`
13
- and validate the planning output against
14
- `.claude/skills/orc/schemas/planning-output.md`.
15
- <!-- /diy:when -->
16
- <!-- diy:when planning=superpowers -->
17
- Plan via Superpowers: require a Superpowers-written plan as planning input
18
- (ask the user to produce one if absent), then convert it to ORC planning
19
- output validated against `.claude/skills/orc/schemas/planning-output.md` —
20
- same conversion the full lane applies on its Superpowers route.
21
- <!-- /diy:when -->
22
- <!-- diy:when planning=openspec -->
23
- Plan via OpenSpec: require an OpenSpec change as planning input (ask the user
24
- to produce one if absent), then convert it to ORC planning output validated
25
- against `.claude/skills/orc/schemas/planning-output.md` — same conversion the
26
- full lane applies on its OpenSpec route.
27
- <!-- /diy:when -->
28
- <!-- diy:when tdd=on -->
29
- TDD is ON for this flow: the plan must carry a `tdd_spec` per requirement
30
- (given/when/then + a runnable skeleton in the project's test framework, or
31
- `tdd: exempt — <reason>`; schema in
32
- `.claude/skills/orc/schemas/planning-output.md`). No test runner in the
33
- project → whole-run exemption, stated once at preflight.
34
- <!-- /diy:when -->
@@ -1,18 +0,0 @@
1
- ## Phase: Review
2
-
3
- <!-- diy:when review=off -->
4
- Code review is DISABLED in this flow. Say so in the run summary line ("review
5
- skipped by flow config") — never imply the work was reviewed.
6
- <!-- /diy:when -->
7
- <!-- diy:when review=on -->
8
- Dispatch the reviewer exactly as the full lane does — follow the review half
9
- of `.claude/skills/orc/subskills/orc-review-verify/SKILL.md` (reviewer agent
10
- `orc-reviewer-opus-5-med`; findings ride the severity ladder from the
11
- locked rules, blocking and advisory findings both surfaced).
12
- <!-- /diy:when -->
13
- <!-- diy:when review=blocking-only -->
14
- Dispatch the reviewer exactly as the full lane does — follow the review half
15
- of `.claude/skills/orc/subskills/orc-review-verify/SKILL.md` — but only
16
- P0/P1 findings gate anything; P2/P3 findings are listed once in the summary
17
- and never re-offered as fix-up tasks.
18
- <!-- /diy:when -->
@@ -1,16 +0,0 @@
1
- ## Phase: Task scoring → executor selection
2
-
3
- <!-- diy:when scoring=on -->
4
- Score each task 0–100 with the full lane's rubric (see the scoring section of
5
- `.claude/skills/orc/SKILL.md`), then dispatch the executor agent from THIS
6
- compiled table — it is already clipped to this flow's session tier; never
7
- substitute a preset from `config.md`:
8
-
9
- {{score_table}}
10
- <!-- /diy:when -->
11
- <!-- diy:when scoring=off -->
12
- Scoring is DISABLED in this flow. Skip the rubric entirely: EVERY execution
13
- task dispatches to **{{fixed_executor}}**. Wave grouping, declared-files
14
- conflict rules, and slice construction are unchanged — scoring off changes
15
- model selection only, never scheduling.
16
- <!-- /diy:when -->
@@ -1,25 +0,0 @@
1
- ## Phase: Security pass
2
-
3
- <!-- diy:when security=off -->
4
- The security pass is OFF in this flow — skip silently.
5
- <!-- /diy:when -->
6
- <!-- diy:when security=ask -->
7
- When at least one task scored at or above the risk floor (70), ask the user
8
- once after review whether to run the security pass; on yes, run it exactly as
9
- the full lane's Phase 5.5 (reviewer re-dispatched with the checklist from
10
- `.claude/skills/orc/references/security-checklist.md`, sweeping only the
11
- run's changed files).
12
- <!-- /diy:when -->
13
- <!-- diy:when security=on -->
14
- When at least one task scored at or above the risk floor (70), dispatch the
15
- security pass without asking — the full lane's Phase 5.5 with the checklist
16
- from `.claude/skills/orc/references/security-checklist.md`, sweeping only the
17
- run's changed files.
18
- <!-- /diy:when -->
19
- <!-- diy:when security=always -->
20
- Dispatch the security pass on EVERY run of this flow, regardless of task
21
- scores — the full lane's Phase 5.5 with the checklist from
22
- `.claude/skills/orc/references/security-checklist.md`, sweeping only the
23
- run's changed files. (This flow removes the risk-floor trigger, not the
24
- pass's mechanics.)
25
- <!-- /diy:when -->
@@ -1,25 +0,0 @@
1
- ## Phase: Ship
2
-
3
- State the current branch and the change summary BEFORE any git action, and
4
- never ship on a red build (locked rule).
5
-
6
- <!-- diy:when ship_mode=ask -->
7
- Ask the user how to ship: commit, PR (via
8
- `.claude/skills/orc/subskills/orc-pr/SKILL.md`), or leave the working tree
9
- as-is. Default when auto-accepted by autonomy: leave as-is and report.
10
- <!-- /diy:when -->
11
- <!-- diy:when ship_mode=commit -->
12
- Commit the run's changes on a green gate without asking (branch first if on
13
- the default branch; conventional message from the intent). PRs only if the
14
- user asks afterwards.
15
- <!-- /diy:when -->
16
- <!-- diy:when ship_mode=pr -->
17
- On a green gate, create the PR without asking via
18
- `.claude/skills/orc/subskills/orc-pr/SKILL.md` (branch + commit + push + PR
19
- body from the run artifacts).
20
- <!-- /diy:when -->
21
- <!-- diy:when ship_mode=report-only -->
22
- NEVER commit or push in this flow. Leave the working tree modified, and end
23
- with the change report + suggested commit message the user can apply
24
- themselves.
25
- <!-- /diy:when -->
@@ -1,18 +0,0 @@
1
- ## Phase: Summary
2
-
3
- <!-- diy:when summary=off -->
4
- No summary phase: end after ship with a single line (tasks done / gate color
5
- / ship action taken) plus usage, and note which phases this flow skipped.
6
- <!-- /diy:when -->
7
- <!-- diy:when summary=short -->
8
- Short summary: one paragraph — what was built, gate results, ship action,
9
- skipped phases, and usage. No per-task breakdown.
10
- <!-- /diy:when -->
11
- <!-- diy:when summary=full -->
12
- Full summary exactly as the full lane's final phase: per-task outcomes with
13
- models used, findings outcomes, verify results, ship action, skipped
14
- phases, and usage.
15
- <!-- /diy:when -->
16
-
17
- Always name the phases this flow skipped by config — the user must never
18
- mistake a DIY run for a full-lane run.
@@ -1,17 +0,0 @@
1
- ## Phase: Test authoring
2
-
3
- <!-- diy:when testgen=off -->
4
- Test authoring is OFF in this flow — skip silently.
5
- <!-- /diy:when -->
6
- <!-- diy:when testgen=ask -->
7
- After verify (or after execution when verify is off), offer test authoring
8
- once; on yes, run the full lane's Phase 6.5 via
9
- `.claude/skills/orc/subskills/orc-testgen/SKILL.md` — it WRITES test cases
10
- and a test plan, never runs them, and never gates the ship.
11
- <!-- /diy:when -->
12
- <!-- diy:when testgen=on -->
13
- After verify (or after execution when verify is off), run the full lane's
14
- Phase 6.5 without asking via
15
- `.claude/skills/orc/subskills/orc-testgen/SKILL.md` — it WRITES test cases
16
- and a test plan, never runs them, and never gates the ship.
17
- <!-- /diy:when -->
@@ -1,28 +0,0 @@
1
- <!-- GENERATED SOURCE BLOCK — stitched by `orc diy compile`. Edit the block
2
- template in skills/orc-diy/references/blocks/, never the compiled file. -->
3
- ## Behavior trace (PERMANENT — always on, no flow key)
4
-
5
- Tracing is NOT composable: every ORC run traces, this one included. Follow
6
- `.claude/skills/orc/references/trace-protocol.md` (load it at run start) — this
7
- block is stitched into every compiled flow so a user-composed pipeline can never
8
- be the one lane that runs blind.
9
-
10
- **Run start:** create `log_dir`, write `log_dir/.current` =
11
- `run-diy-<slug>-<DDMMYY>-<HHMMSS>.txt` AND `touch the trace file` of that name
12
- in the SAME step (a pointer naming a file that does not exist reads as dangling —
13
- the hook rotates away from it and the run splits across two files), then store
14
- `trace_path` in the checkpoint. The lane token is `diy`, whatever the flow is
15
- named.
16
-
17
- **Narration is dispatched, never remembered:** record each event with its REAL
18
- timestamp into a phase packet (`PHASE`, `DISPATCH`/`VERIFY` per spawn —
19
- `actual_model`/`actual_effort` vs expected, surface any ⛔ DOWNGRADE to the user
20
- — `SCORE`, `OUTCOME`, `GATE`, `FINDING`/`VERDICT` for whichever gates this flow
21
- enabled, `FINISH`, plus `decisions` = the WHY), then dispatch
22
- `orc-trace-writer-haiku-4-5` with it, PAIRED with the next phase's first
23
- dispatch. **One packet per ENABLED phase group, minimum 2** — the flow shape is
24
- composed, so the packet count is too; a phase this flow turned OFF owes nothing.
25
- A phase ending with `zero new trace lines is a protocol violation`.
26
-
27
- **Run end:** the `FINISH` packet goes out and RETURNS, then delete
28
- `log_dir/.current`.
@@ -1,25 +0,0 @@
1
- ## Phase: Verify
2
-
3
- <!-- diy:when verify=off -->
4
- Verification is DISABLED in this flow. The build+test evidence in each
5
- executor return is the only green signal; say "verify skipped by flow
6
- config" in the summary. Never claim criteria were verified.
7
- <!-- /diy:when -->
8
- <!-- diy:when verify=smoke -->
9
- Run a SMOKE verify only: dispatch the verifier
10
- (`orc-verifier-opus-5-med`) with an explicitly narrowed scope — build +
11
- full test suite, red/green verdict, NO per-criterion definition-of-done
12
- sweep. Red blocks ship exactly as a full verify would.
13
- <!-- /diy:when -->
14
- <!-- diy:when verify=full -->
15
- Dispatch verification exactly as the full lane does — follow the verify half
16
- of `.claude/skills/orc/subskills/orc-review-verify/SKILL.md` (build + tests +
17
- every acceptance criterion checked against the definition of done).
18
- <!-- /diy:when -->
19
- <!-- diy:when tdd=on -->
20
- TDD gate (rides the verify slot): the verifier slice carries the plan's
21
- `tdd_suite[]`; green is the definition-of-done for non-exempt requirements,
22
- red → the repair loop capped at `tdd_loop_max` (cap hit → STOP + honest red
23
- report). The adversarial half of the verify pass applies as the full lane
24
- defines it.
25
- <!-- /diy:when -->