@azure-id/orc 1.0.0 → 1.2.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.
- package/CHANGELOG.md +151 -0
- package/README.md +84 -34
- package/bin/cli.js +1110 -0
- package/bin/verify-contracts.js +112 -1
- package/bin/verify-package.js +568 -563
- package/bin/webui/api.js +15 -0
- package/bin/webui/app.html +210 -207
- package/bin/webui/css/panels/wait.css +123 -0
- package/bin/webui/fixtures/index.js +7 -0
- package/bin/webui/fixtures/wait.js +97 -0
- package/bin/webui/i18n/en/nav.json +21 -20
- package/bin/webui/i18n/en/wait.json +41 -0
- package/bin/webui/i18n/id/nav.json +21 -20
- package/bin/webui/i18n/id/wait.json +41 -0
- package/bin/webui/js/01-i18n.js +151 -150
- package/bin/webui/js/panels/wait.js +253 -0
- package/package.json +1 -1
- package/templates/commands/orc-wait.md +19 -0
- package/templates/hooks/orc-statusline.js +227 -1
- package/templates/skills/_shared/phases/execution.md +2 -0
- package/templates/skills/_shared/phases/preflight.md +22 -0
- package/templates/skills/_shared/return-validation.md +222 -145
- package/templates/skills/_shared/wait.md +240 -0
- package/templates/skills/orc/SKILL.md +247 -238
- package/templates/skills/orc-aftermath/SKILL.md +6 -1
- package/templates/skills/orc-analyze/SKILL.md +6 -1
- package/templates/skills/orc-boundary/SKILL.md +6 -1
- package/templates/skills/orc-brainstorm/SKILL.md +6 -1
- package/templates/skills/orc-budget/SKILL.md +6 -1
- package/templates/skills/orc-challenge/SKILL.md +6 -1
- package/templates/skills/orc-claude/SKILL.md +6 -1
- package/templates/skills/orc-diy/SKILL.md +6 -1
- package/templates/skills/orc-doc/SKILL.md +490 -481
- package/templates/skills/orc-explain/SKILL.md +5 -0
- package/templates/skills/orc-export/SKILL.md +5 -0
- package/templates/skills/orc-fast/SKILL.md +222 -215
- package/templates/skills/orc-grill/SKILL.md +6 -1
- package/templates/skills/orc-learn/SKILL.md +6 -1
- package/templates/skills/orc-mini/SKILL.md +252 -244
- package/templates/skills/orc-pact/SKILL.md +6 -1
- package/templates/skills/orc-pattern/SKILL.md +6 -1
- package/templates/skills/orc-poly/SKILL.md +6 -1
- package/templates/skills/orc-quick/SKILL.md +353 -346
- package/templates/skills/orc-retro/SKILL.md +6 -1
- package/templates/skills/orc-route/SKILL.md +6 -1
- package/templates/skills/orc-verify/SKILL.md +6 -1
- package/templates/skills/orc-wait/SKILL.md +163 -0
- package/templates/skills/orc-wiki/SKILL.md +180 -171
package/bin/verify-contracts.js
CHANGED
|
@@ -384,6 +384,43 @@ const CONTRACTS = [
|
|
|
384
384
|
binFiles: ["bin/cli.js"],
|
|
385
385
|
files: ["skills/_shared/extra-dispatch.md"],
|
|
386
386
|
},
|
|
387
|
+
{
|
|
388
|
+
// v1.2.0. A Task error does not kill the subagent behind it. Every lane's
|
|
389
|
+
// retry rule assumed it did, and one graded /orc-quick entry put THREE
|
|
390
|
+
// opus-5-low executors on one task for 266 minutes combined. The guard is
|
|
391
|
+
// only real if every lane that re-dispatches carries the same sentence and
|
|
392
|
+
// the CLI keeps the command it names.
|
|
393
|
+
name: "a re-dispatch is refused over a live attempt (v1.2.0)",
|
|
394
|
+
token: "a lane that re-dispatches over a live attempt",
|
|
395
|
+
binFiles: ["bin/cli.js"],
|
|
396
|
+
files: [
|
|
397
|
+
"skills/_shared/return-validation.md",
|
|
398
|
+
"skills/_shared/phases/execution.md",
|
|
399
|
+
"skills/orc/SKILL.md",
|
|
400
|
+
"skills/orc-doc/SKILL.md",
|
|
401
|
+
"skills/orc-wiki/SKILL.md",
|
|
402
|
+
"skills/orc-quick/SKILL.md",
|
|
403
|
+
"skills/orc-mini/SKILL.md",
|
|
404
|
+
"skills/orc-fast/SKILL.md",
|
|
405
|
+
],
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
// The command the contract above names. A rename on either side silently
|
|
409
|
+
// turns the guard into prose nobody can run.
|
|
410
|
+
name: "the in-flight read is ONE command (v1.2.0)",
|
|
411
|
+
token: "orc run inflight",
|
|
412
|
+
binFiles: ["bin/cli.js"],
|
|
413
|
+
files: [
|
|
414
|
+
"skills/_shared/return-validation.md",
|
|
415
|
+
"skills/_shared/phases/execution.md",
|
|
416
|
+
"skills/orc/SKILL.md",
|
|
417
|
+
"skills/orc-doc/SKILL.md",
|
|
418
|
+
"skills/orc-wiki/SKILL.md",
|
|
419
|
+
"skills/orc-quick/SKILL.md",
|
|
420
|
+
"skills/orc-mini/SKILL.md",
|
|
421
|
+
"skills/orc-fast/SKILL.md",
|
|
422
|
+
],
|
|
423
|
+
},
|
|
387
424
|
{
|
|
388
425
|
// The field a resumed return owes. Absent on a resume slice is MALFORMED,
|
|
389
426
|
// and `restarted` on a non-empty preexisting[] is a finding — both are
|
|
@@ -438,6 +475,65 @@ const CONTRACTS = [
|
|
|
438
475
|
binFiles: ["bin/cli.js"],
|
|
439
476
|
files: ["skills/_shared/extra-dispatch.md"],
|
|
440
477
|
},
|
|
478
|
+
{
|
|
479
|
+
// v1.1.0 W1 — THE WAIT. A wait is a stop, and every stop in ORC writes its
|
|
480
|
+
// hand-back before it ends, because the thing that resumes the run may not
|
|
481
|
+
// be this session: the wake-up message is a Claude Code behaviour ORC
|
|
482
|
+
// cannot promise. Registered as the eighth member of the family with
|
|
483
|
+
// `a lane that answers its own interview question`, `a lane that picks its
|
|
484
|
+
// own favourite`, `a lane that fixes what it judged`, `a lane that picks
|
|
485
|
+
// its own council`, `a lane that reads its own document`, `a lane that
|
|
486
|
+
// sends work off Claude without saying so` and `a lane that re-does work
|
|
487
|
+
// the worktree already contains`.
|
|
488
|
+
//
|
|
489
|
+
// W3 adds every lane spine in WAIT_LANE_SHAPES to `files` — the token plus
|
|
490
|
+
// a pointer, never a forked copy of the prose.
|
|
491
|
+
name: "a wait is a stop, and a stop writes its hand-back (v1.1.0)",
|
|
492
|
+
token: "a lane that waits without a hand-back",
|
|
493
|
+
files: [
|
|
494
|
+
"commands/orc-wait.md",
|
|
495
|
+
"skills/_shared/wait.md",
|
|
496
|
+
"skills/orc-wait/SKILL.md",
|
|
497
|
+
// v1.1.0 W3 — EVERY lane in WAIT_LANE_SHAPES, in one release. A wait
|
|
498
|
+
// whose behaviour depends on which lane you are in is worse than no wait,
|
|
499
|
+
// so a half-rolled-out contract was never an option. /orc-ultra and
|
|
500
|
+
// /orc-plan are covered by skills/orc/SKILL.md — neither has a spine.
|
|
501
|
+
"skills/orc/SKILL.md",
|
|
502
|
+
"skills/orc-aftermath/SKILL.md",
|
|
503
|
+
"skills/orc-analyze/SKILL.md",
|
|
504
|
+
"skills/orc-boundary/SKILL.md",
|
|
505
|
+
"skills/orc-brainstorm/SKILL.md",
|
|
506
|
+
"skills/orc-budget/SKILL.md",
|
|
507
|
+
"skills/orc-challenge/SKILL.md",
|
|
508
|
+
"skills/orc-claude/SKILL.md",
|
|
509
|
+
"skills/orc-diy/SKILL.md",
|
|
510
|
+
"skills/orc-doc/SKILL.md",
|
|
511
|
+
"skills/orc-explain/SKILL.md",
|
|
512
|
+
"skills/orc-export/SKILL.md",
|
|
513
|
+
"skills/orc-fast/SKILL.md",
|
|
514
|
+
"skills/orc-grill/SKILL.md",
|
|
515
|
+
"skills/orc-learn/SKILL.md",
|
|
516
|
+
"skills/orc-mini/SKILL.md",
|
|
517
|
+
"skills/orc-pact/SKILL.md",
|
|
518
|
+
"skills/orc-pattern/SKILL.md",
|
|
519
|
+
"skills/orc-poly/SKILL.md",
|
|
520
|
+
"skills/orc-quick/SKILL.md",
|
|
521
|
+
"skills/orc-retro/SKILL.md",
|
|
522
|
+
"skills/orc-route/SKILL.md",
|
|
523
|
+
"skills/orc-verify/SKILL.md",
|
|
524
|
+
"skills/orc-wiki/SKILL.md",
|
|
525
|
+
],
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
// v1.1.0 W1 — the lane table is CODE, not only prose. Same shape and same
|
|
529
|
+
// reason as the `orc extra` row below it: `WAIT_LANE_SHAPES` in bin/cli.js
|
|
530
|
+
// is the machine-readable copy, and a golden test in test/cli/wait.test.js
|
|
531
|
+
// compares the two IN BOTH DIRECTIONS.
|
|
532
|
+
name: "the wait lane table is CODE, not only prose (v1.1.0)",
|
|
533
|
+
token: "Which lanes support a wait",
|
|
534
|
+
binFiles: ["bin/cli.js"],
|
|
535
|
+
files: ["skills/_shared/wait.md"],
|
|
536
|
+
},
|
|
441
537
|
{
|
|
442
538
|
// v0.52.0 (D6) — WHICH LANES ROUTE FOREIGN. The table was prose in one
|
|
443
539
|
// markdown file and nothing computed it, so the routing table could say
|
|
@@ -1295,6 +1391,9 @@ const CONTRACTS = [
|
|
|
1295
1391
|
"commands/orc-brainstorm.md",
|
|
1296
1392
|
"skills/_shared/README.md",
|
|
1297
1393
|
"skills/_shared/lane-suspend.md",
|
|
1394
|
+
// v1.1.0: wait.md contrasts itself with BOTH leaving shapes in one table.
|
|
1395
|
+
// If a suspend's obligations change, that table is wrong.
|
|
1396
|
+
"skills/_shared/wait.md",
|
|
1298
1397
|
"skills/orc-brainstorm/SKILL.md",
|
|
1299
1398
|
"skills/orc-challenge/references/intake.md",
|
|
1300
1399
|
"skills/orc-doc/SKILL.md",
|
|
@@ -1355,6 +1454,10 @@ const CONTRACTS = [
|
|
|
1355
1454
|
// {run_dir}/{slug}/, and is deleted with the run. A move of one is a move
|
|
1356
1455
|
// of the other.
|
|
1357
1456
|
"skills/_shared/extra-dispatch.md",
|
|
1457
|
+
// v1.1.0 — a wait is a stop, so it owes the same hand-back. The whole
|
|
1458
|
+
// contract token `a lane that waits without a hand-back` rests on this.
|
|
1459
|
+
"skills/_shared/wait.md",
|
|
1460
|
+
"skills/orc-wait/SKILL.md",
|
|
1358
1461
|
"skills/orc-challenge/SKILL.md",
|
|
1359
1462
|
"skills/orc-challenge/examples/tsd-two-iterations.md",
|
|
1360
1463
|
"skills/orc-challenge/references/fix-brief.md",
|
|
@@ -1425,6 +1528,9 @@ const CONTRACTS = [
|
|
|
1425
1528
|
// v0.45.0: lane-suspend.md defines itself AGAINST this contract — leaving
|
|
1426
1529
|
// and returning vs leaving for good. Naming the sibling is the point.
|
|
1427
1530
|
"skills/_shared/lane-suspend.md",
|
|
1531
|
+
// v1.1.0: and wait.md against BOTH of them — a third shape, where nothing
|
|
1532
|
+
// runs at all.
|
|
1533
|
+
"skills/_shared/wait.md",
|
|
1428
1534
|
],
|
|
1429
1535
|
},
|
|
1430
1536
|
{
|
|
@@ -3274,7 +3380,7 @@ const BUDGETS = [
|
|
|
3274
3380
|
// 4 of 31 lanes. The shrinking in this release happens by moving prose to
|
|
3275
3381
|
// `_shared/phases/` (W11–W13) or to a lane's own `references/phases/`, which
|
|
3276
3382
|
// is what orc-wiki did this wave: 352 → 172.
|
|
3277
|
-
{ file: "skills/orc-mini/SKILL.md", maxLines:
|
|
3383
|
+
{ file: "skills/orc-mini/SKILL.md", maxLines: 253 },
|
|
3278
3384
|
// v0.39.0: deliberate raises 195→201 / 179→182 — the analyst gains hard rules
|
|
3279
3385
|
// 2b (a source it did not author is FOREIGN input) and 4a (the read ladder);
|
|
3280
3386
|
// fast gains the ladder as a slice line. Both are hard rules by nature: they
|
|
@@ -3506,6 +3612,11 @@ for (const b of BUDGETS) {
|
|
|
3506
3612
|
"extra_resume_max",
|
|
3507
3613
|
"extra_demote_after",
|
|
3508
3614
|
"extra_demote_stale_min",
|
|
3615
|
+
// v1.1.0 — operating keys of the WAIT itself. A lane runs `orc wait plan`
|
|
3616
|
+
// and the CLI reads these two; no spine ever reads them, exactly as no
|
|
3617
|
+
// spine reads `extra_timeout_s`. An empty lanes[] here is an ANSWER.
|
|
3618
|
+
"wait_hop_minutes",
|
|
3619
|
+
"wait_max_hops",
|
|
3509
3620
|
]);
|
|
3510
3621
|
for (const e of metaEntries) {
|
|
3511
3622
|
if (!e.lanes) {
|