@azure-id/orc 1.9.1 → 2.0.2
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 +390 -0
- package/README-id.md +20 -36
- package/README.md +24 -34
- package/bin/build-agents.js +206 -109
- package/bin/cli.js +760 -62
- package/bin/gotcha-import.js +1081 -0
- package/bin/gotcha.js +1286 -0
- package/bin/graph-query.js +1 -1
- package/bin/graph.js +717 -717
- package/bin/habit.js +1453 -0
- package/bin/mockrun-catalog.js +281 -276
- package/bin/onboarding-content.js +4 -4
- package/bin/pricing.json +207 -200
- package/bin/run-undo.js +398 -0
- package/bin/trace-write.js +657 -0
- package/bin/verify-contracts.js +527 -81
- package/bin/verify-package.js +58 -11
- package/bin/webui/api.js +26 -0
- package/bin/webui/app.html +239 -232
- package/bin/webui/css/00-tokens.css +110 -92
- package/bin/webui/css/04-motion.css +249 -152
- package/bin/webui/css/06-responsive.css +203 -178
- package/bin/webui/css/panels/behaviour.css +205 -0
- package/bin/webui/css/panels/knowledge.css +563 -116
- package/bin/webui/fixtures/behaviour.js +532 -0
- package/bin/webui/fixtures/extra.js +2036 -2036
- package/bin/webui/fixtures/hookui.js +5 -5
- package/bin/webui/fixtures/index.js +34 -0
- package/bin/webui/fixtures/knowledge.js +7 -1
- package/bin/webui/fixtures/settings.js +305 -305
- package/bin/webui/fixtures/stats.js +16 -0
- package/bin/webui/i18n/en/behaviour.json +143 -0
- package/bin/webui/i18n/en/knowledge.json +117 -2
- package/bin/webui/i18n/en/nav.json +25 -24
- package/bin/webui/i18n/en/tour.json +37 -35
- package/bin/webui/i18n/id/behaviour.json +143 -0
- package/bin/webui/i18n/id/knowledge.json +117 -2
- package/bin/webui/i18n/id/nav.json +25 -24
- package/bin/webui/i18n/id/tour.json +37 -35
- package/bin/webui/js/01-i18n.js +155 -154
- package/bin/webui/js/90-tour.js +498 -494
- package/bin/webui/js/91-shortcuts.js +126 -126
- package/bin/webui/js/99-boot.js +121 -118
- package/bin/webui/js/panels/behaviour.js +1022 -0
- package/bin/webui/js/panels/knowledge.js +552 -7
- package/bin/webui/js/panels/overview.js +13 -4
- package/mock-run/INDEX.md +109 -107
- package/mock-run/context-combiner.md +100 -100
- package/mock-run/gotcha-import.md +118 -0
- package/mock-run/habits.md +129 -0
- package/mock-run/orc-budget.md +534 -534
- package/mock-run/orc-challenge-council.md +262 -262
- package/mock-run/orc-quick.md +6 -1
- package/mock-run/orc-ultra.md +103 -103
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +49 -49
- package/templates/agents/orc-advisor-opus-5-xhigh.md +50 -56
- package/templates/agents/orc-analyze-mini-opus-5-med.md +55 -60
- package/templates/agents/orc-analyze-mini-sonnet-5-high.md +55 -58
- package/templates/agents/orc-challenge-advisor-opus-5-med.md +75 -75
- package/templates/agents/orc-challenge-contrarian-opus-5-high.md +110 -110
- package/templates/agents/orc-challenge-executor-opus-5-med.md +114 -114
- package/templates/agents/orc-challenge-expansionist-opus-5-med.md +112 -112
- package/templates/agents/orc-challenge-judge-opus-5-high.md +132 -132
- package/templates/agents/orc-challenge-outsider-opus-5-low.md +109 -109
- package/templates/agents/orc-challenge-principles-opus-5-high.md +109 -109
- package/templates/agents/orc-challenge-reader-opus-5-low.md +90 -90
- package/templates/agents/orc-claude-writer-opus-4-8-high.md +48 -53
- package/templates/agents/orc-claude-writer-opus-5-med.md +48 -55
- package/templates/agents/orc-context-combiner-opus-5-high.md +78 -88
- package/templates/agents/orc-doc-checker-opus-5-low.md +108 -108
- package/templates/agents/orc-doc-writer-opus-5-med.md +134 -134
- package/templates/agents/orc-executor-haiku-4-5.md +14 -6
- package/templates/agents/orc-executor-opus-4-7-high.md +14 -6
- package/templates/agents/orc-executor-opus-4-7-med.md +14 -6
- package/templates/agents/orc-executor-opus-4-8-high.md +14 -6
- package/templates/agents/orc-executor-opus-5-high.md +15 -7
- package/templates/agents/orc-executor-opus-5-low.md +15 -7
- package/templates/agents/orc-executor-opus-5-med.md +15 -7
- package/templates/agents/orc-executor-sonnet-4-6-high.md +14 -6
- package/templates/agents/orc-executor-sonnet-4-6-med.md +14 -6
- package/templates/agents/orc-executor-sonnet-5-high.md +14 -6
- package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +1 -10
- package/templates/agents/orc-judge-opus-5-xhigh.md +81 -85
- package/templates/agents/orc-learn-writer-opus-5-low.md +67 -73
- package/templates/agents/orc-pattern-codifier-opus-5-med.md +58 -65
- package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +58 -63
- package/templates/agents/orc-planner-mini-opus-5-med.md +4 -7
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +2 -3
- package/templates/agents/orc-planner-opus-5-med.md +157 -160
- package/templates/agents/orc-recon-opus-5-low.md +3 -10
- package/templates/agents/orc-recon-sonnet-4-6-med.md +1 -8
- package/templates/agents/orc-retro-opus-5-med.md +8 -10
- package/templates/agents/orc-retro-sonnet-5-high.md +6 -7
- package/templates/agents/orc-reviewer-opus-5-med.md +96 -60
- package/templates/agents/orc-scout-opus-5-low.md +35 -40
- package/templates/agents/orc-scout-sonnet-4-6-high.md +35 -39
- package/templates/agents/orc-system-analyst-opus-5-high.md +115 -120
- package/templates/agents/orc-test-author-opus-5-med.md +70 -71
- package/templates/agents/orc-test-designer-opus-5-high.md +158 -158
- package/templates/agents/orc-test-interpreter-opus-5-low.md +130 -130
- package/templates/agents/orc-trace-writer-haiku-4-5.md +3 -7
- package/templates/agents/orc-verifier-opus-5-med.md +77 -69
- package/templates/agents/orc-wiki-scanner-opus-4-8-high.md +74 -79
- package/templates/agents/orc-wiki-scanner-opus-5-med.md +74 -81
- package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +97 -106
- package/templates/commands/orc-analyze.md +13 -21
- package/templates/commands/orc-fast.md +10 -15
- package/templates/commands/orc-poly.md +12 -21
- package/templates/commands/orc-pr-driver.md +11 -30
- package/templates/commands/orc-pr-setup.md +10 -31
- package/templates/commands/orc-route.md +11 -41
- package/templates/commands/orc-test.md +5 -60
- package/templates/commands/orc-ultra.md +17 -17
- package/templates/commands/orc-verify.md +11 -11
- package/templates/hooks/README.md +36 -2
- package/templates/hooks/orc-effort-guard.js +178 -178
- package/templates/hooks/orc-session-hook.js +264 -0
- package/templates/hooks/orc-statusline.js +9 -7
- package/templates/skills/_shared/README.md +9 -0
- package/templates/skills/_shared/code-graph.md +48 -56
- package/templates/skills/_shared/config-precedence.md +200 -198
- package/templates/skills/_shared/extra-dispatch.md +1331 -1346
- package/templates/skills/_shared/gotchas.md +228 -177
- package/templates/skills/_shared/habits.md +101 -0
- package/templates/skills/_shared/lane-contract.md +84 -0
- package/templates/skills/_shared/opus5-only.md +8 -8
- package/templates/skills/_shared/phases/README.md +142 -83
- package/templates/skills/_shared/phases/analyst-gates.md +125 -136
- package/templates/skills/_shared/phases/execution.md +8 -14
- package/templates/skills/_shared/phases/house-rules.md +27 -32
- package/templates/skills/_shared/phases/intake.md +127 -133
- package/templates/skills/_shared/phases/mock-example.md +46 -56
- package/templates/skills/_shared/phases/plan-handoff.md +91 -97
- package/templates/skills/_shared/phases/planning.md +7 -17
- package/templates/skills/_shared/phases/preflight.md +19 -42
- package/templates/skills/_shared/phases/review.md +23 -27
- package/templates/skills/_shared/phases/rules.md +18 -42
- package/templates/skills/_shared/phases/scoring.md +55 -65
- package/templates/skills/_shared/phases/security-checklist.md +46 -50
- package/templates/skills/_shared/phases/security.md +45 -55
- package/templates/skills/_shared/phases/ship.md +6 -15
- package/templates/skills/_shared/phases/stop-resume.md +2 -5
- package/templates/skills/_shared/phases/summary.md +73 -48
- package/templates/skills/_shared/phases/testgen.md +41 -51
- package/templates/skills/_shared/phases/trace-verbs.md +433 -0
- package/templates/skills/_shared/phases/trace.md +136 -367
- package/templates/skills/_shared/phases/verify.md +62 -70
- package/templates/skills/_shared/phases/wave-grouping.md +128 -133
- package/templates/skills/_shared/phases/wiki-consult.md +10 -6
- package/templates/skills/_shared/read-ladder.md +2 -55
- package/templates/skills/_shared/return-validation.md +17 -70
- package/templates/skills/_shared/review-slice.md +79 -0
- package/templates/skills/_shared/smoke-gate.md +46 -28
- package/templates/skills/context-combiner/SKILL.md +16 -45
- package/templates/skills/context-combiner/schemas/combined-report.md +78 -78
- package/templates/skills/orc/README.md +2 -2
- package/templates/skills/orc/SKILL.md +41 -69
- package/templates/skills/orc/config.md +9 -9
- package/templates/skills/orc/examples/full-run-mock.md +73 -73
- package/templates/skills/orc/references/effort-and-mode.md +222 -222
- package/templates/skills/orc/references/pattern-gate.md +89 -89
- package/templates/skills/orc/references/phases/intake.md +41 -47
- package/templates/skills/orc/references/phases/integration.md +13 -19
- package/templates/skills/orc/references/preflight-report.md +10 -11
- package/templates/skills/orc/references/ultra-mode.md +11 -9
- package/templates/skills/orc/subskills/orc-execution/SKILL.md +27 -73
- package/templates/skills/orc/subskills/orc-execution/core.md +12 -99
- package/templates/skills/orc/subskills/orc-execution/subagent.md +14 -13
- package/templates/skills/orc/subskills/orc-planner/SKILL.md +2 -2
- package/templates/skills/orc/subskills/orc-planner-mini/SKILL.md +121 -121
- package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +35 -76
- package/templates/skills/orc/subskills/orc-review-verify/core.md +52 -135
- package/templates/skills/orc/subskills/orc-review-verify/subagent.md +7 -7
- package/templates/skills/orc/subskills/orc-testgen/SKILL.md +34 -45
- package/templates/skills/orc/subskills/orc-testgen/core.md +20 -59
- package/templates/skills/orc/subskills/orc-testgen/subagent.md +7 -7
- package/templates/skills/orc-advisor/SKILL.md +56 -60
- package/templates/skills/orc-analyze/SKILL.md +32 -68
- package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -42
- package/templates/skills/orc-analyze/schemas/report-audit.md +84 -83
- package/templates/skills/orc-analyze/schemas/report-prose.md +64 -63
- package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -78
- package/templates/skills/orc-analyze-mini/SKILL.md +35 -70
- package/templates/skills/orc-challenge/README.md +142 -142
- package/templates/skills/orc-challenge/examples/council-full-roster.md +273 -273
- package/templates/skills/orc-challenge/references/council.md +315 -315
- package/templates/skills/orc-challenge/references/intake.md +171 -171
- package/templates/skills/orc-claude/SKILL.md +14 -14
- package/templates/skills/orc-diy/README.md +174 -143
- package/templates/skills/orc-diy/SKILL.md +23 -74
- package/templates/skills/orc-diy/references/blocks/pattern.md +18 -18
- package/templates/skills/orc-diy/references/flow-schema.md +1 -1
- package/templates/skills/orc-doc/README.md +229 -229
- package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +325 -325
- package/templates/skills/orc-doc/references/chunking.md +527 -527
- package/templates/skills/orc-fast/SKILL.md +45 -73
- package/templates/skills/orc-judge/SKILL.md +77 -82
- package/templates/skills/orc-learn/SKILL.md +14 -14
- package/templates/skills/orc-learn/examples/learn-run-mock.md +61 -61
- package/templates/skills/orc-mini/SKILL.md +65 -113
- package/templates/skills/orc-pattern/SKILL.md +27 -48
- package/templates/skills/orc-poly/SKILL.md +32 -61
- package/templates/skills/orc-pr-driver/SKILL.md +25 -51
- package/templates/skills/orc-pr-driver/references/green-gate.md +113 -105
- package/templates/skills/orc-pr-setup/SKILL.md +20 -45
- package/templates/skills/orc-quick/README.md +43 -2
- package/templates/skills/orc-quick/SKILL.md +76 -107
- package/templates/skills/orc-quick/references/dispatch-gate.md +16 -5
- package/templates/skills/orc-quick/references/gh-mode.md +48 -1
- package/templates/skills/orc-quick/references/look.md +3 -1
- package/templates/skills/orc-retro/SKILL.md +19 -18
- package/templates/skills/orc-retro/examples/retro-mock.md +1 -1
- package/templates/skills/orc-route/SKILL.md +25 -45
- package/templates/skills/orc-test/SKILL.md +16 -37
- package/templates/skills/orc-verify/SKILL.md +21 -39
- package/templates/skills/orc-verify/examples/verify-mock.md +33 -33
- package/templates/skills/orc-wait/SKILL.md +156 -163
- package/templates/skills/orc-wiki/references/extra.md +1 -1
- package/templates/skills/orc-wiki/references/phases/phase-0.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-1.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-2.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-3.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-3c.md +1 -6
|
@@ -1,45 +1,34 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: orc-testgen
|
|
3
|
-
description: >
|
|
4
|
-
Worker subskill for ORC's opt-in Phase 6.5 (Test Authoring). Fires when the user
|
|
5
|
-
opts into writing tests ("write test cases", "generate tests", "author test
|
|
6
|
-
cases for these changes"). Writes test cases as a deliverable — automated test
|
|
7
|
-
files, a manual TEST-PLAN.md, and (for HTTP/API backends) a Postman-importable
|
|
8
|
-
curl bundle. It NEVER runs tests and NEVER gates the ship; the user tests
|
|
9
|
-
manually. ALWAYS invoked as a spawned subagent by the orchestrator. Not for
|
|
10
|
-
direct user invocation.
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# orc-testgen
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
actually exists on disk **at the pinned path** (test files in the project's
|
|
36
|
-
conventions; TEST-PLAN.md and — when the stack exposes HTTP — test-cases.http
|
|
37
|
-
under `test-generator/<change-slug>/`) before emitting the return contract in `core.md`.
|
|
38
|
-
|
|
39
|
-
Fixed model: `orc-test-author-opus-5-med` (Opus 5 medium — authoring good
|
|
40
|
-
integration tests is a judgment task). Opt-in: the orchestrator dispatches this
|
|
41
|
-
only when the user accepts the offer, defaulted from `config.generate_tests`. The
|
|
42
|
-
full lane runs it as Phase 6.5 (after Verify, confirmed at intake); **orc-mini
|
|
43
|
-
also offers it** as an end-of-run ask (only on a GREEN smoke gate). Either lane,
|
|
44
|
-
it never runs tests and never gates the ship. orc-mini still skips full
|
|
45
|
-
review/verify.
|
|
1
|
+
---
|
|
2
|
+
name: orc-testgen
|
|
3
|
+
description: >
|
|
4
|
+
Worker subskill for ORC's opt-in Phase 6.5 (Test Authoring). Fires when the user
|
|
5
|
+
opts into writing tests ("write test cases", "generate tests", "author test
|
|
6
|
+
cases for these changes"). Writes test cases as a deliverable — automated test
|
|
7
|
+
files, a manual TEST-PLAN.md, and (for HTTP/API backends) a Postman-importable
|
|
8
|
+
curl bundle. It NEVER runs tests and NEVER gates the ship; the user tests
|
|
9
|
+
manually. ALWAYS invoked as a spawned subagent by the orchestrator. Not for
|
|
10
|
+
direct user invocation.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# orc-testgen
|
|
14
|
+
|
|
15
|
+
A pointer. The orchestrator spawns `orc-test-author-opus-5-med` via the Task
|
|
16
|
+
tool, prepending `subagent.md` framing + the input slice. It WRITES test cases;
|
|
17
|
+
it never runs them and never gates the ship.
|
|
18
|
+
|
|
19
|
+
- **Input slice** (the orchestrator builds it): `core.md`.
|
|
20
|
+
- **Procedure + return contract** (the ONE source): the agent file,
|
|
21
|
+
`.claude/agents/orc-test-author-opus-5-med.md`. The manual deliverables
|
|
22
|
+
(TEST-PLAN.md + test-cases.http) are pinned to
|
|
23
|
+
**`test-generator/<change-slug>/` at the project root** — a visible user
|
|
24
|
+
deliverable, never inside `.claude/` or the run folder.
|
|
25
|
+
- **Validator** (the caller checks every return against it):
|
|
26
|
+
`../../../_shared/return-validation.md`.
|
|
27
|
+
|
|
28
|
+
Fixed model: `orc-test-author-opus-5-med` (Opus 5.5 medium — authoring good
|
|
29
|
+
integration tests is a judgment task). Opt-in: the orchestrator dispatches this
|
|
30
|
+
only when the user accepts the offer, defaulted from `config.generate_tests`. The
|
|
31
|
+
full lane runs it as Phase 6.5 (after Verify, confirmed at intake); **orc-mini
|
|
32
|
+
also offers it** as an end-of-run ask (only on a GREEN smoke gate). Either lane,
|
|
33
|
+
it never runs tests and never gates the ship. orc-mini still skips full
|
|
34
|
+
review/verify.
|
|
@@ -1,59 +1,20 @@
|
|
|
1
|
-
# orc-testgen — Core (
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
2. Derive a **test matrix** from changed_files + acceptance_criteria + flows —
|
|
22
|
-
one row per case {id, type, target, asserts, external_deps}. Bound regression
|
|
23
|
-
to the diff's blast radius; never test the whole app.
|
|
24
|
-
3. Author **automated test files** in the project's framework/conventions where
|
|
25
|
-
feasible. Match existing test style. These stay in the project's own test
|
|
26
|
-
conventions (`output_conventions`) — do NOT move them.
|
|
27
|
-
4. **Pin the manual-QA output folder.** The two manual deliverables below are
|
|
28
|
-
USER deliverables, not run state — write BOTH to
|
|
29
|
-
**`test-generator/<change-slug>/` at the PROJECT ROOT** (create the folder if
|
|
30
|
-
absent). `<change-slug>` = the run's existing kebab-case run-folder slug (e.g.
|
|
31
|
-
`post-users`). NEVER write them inside `.claude/`, and NEVER inside the run
|
|
32
|
-
folder — a hidden path is invisible for self-QA.
|
|
33
|
-
5. Write **`test-generator/<change-slug>/TEST-PLAN.md`** (manual cases: scenario,
|
|
34
|
-
setup, steps, expected) with two CLEARLY SEPARATED sections:
|
|
35
|
-
- "Run the automated test suite" — the exact CLI command(s), pasted.
|
|
36
|
-
- "Exercise the real running service" — manual steps / curl.
|
|
37
|
-
6. If `is_http_api`: write **`test-generator/<change-slug>/test-cases.http`** —
|
|
38
|
-
one Postman-importable `curl` per endpoint/flow (env-var placeholders for base
|
|
39
|
-
URL + auth; NEVER real secrets). Reference it from TEST-PLAN.md.
|
|
40
|
-
7. Advisory only: note (do not gate) any case the code likely won't satisfy.
|
|
41
|
-
|
|
42
|
-
## Return contract (emit EXACTLY this; the caller validates)
|
|
43
|
-
|
|
44
|
-
- test_matrix[] — the rows above (or counts by type)
|
|
45
|
-
- files_authored[] — automated test files created/updated
|
|
46
|
-
- test_plan_path — path to TEST-PLAN.md; MUST be inside
|
|
47
|
-
`test-generator/<change-slug>/` (any other location is
|
|
48
|
-
a malformed return)
|
|
49
|
-
- curl_bundle_path — path to test-cases.http (also inside
|
|
50
|
-
`test-generator/<change-slug>/`), or null (non-API projects)
|
|
51
|
-
- run_command — exact CLI command(s) to run the authored tests
|
|
52
|
-
- notes[] — advisory gaps noticed while authoring (non-blocking); else []
|
|
53
|
-
- actual_model — model id quoted VERBATIM from your system prompt ("The
|
|
54
|
-
exact model ID is …"); NEVER inferred; `unknown` if absent
|
|
55
|
-
- actual_effort — the value of $CLAUDE_EFFORT (read via Bash)
|
|
56
|
-
- failure_reason — required if you could not author; else null
|
|
57
|
-
|
|
58
|
-
Malformed returns are treated as failure by the caller. Never run tests; never
|
|
59
|
-
spawn subagents.
|
|
1
|
+
# orc-testgen — Core (the input slice)
|
|
2
|
+
|
|
3
|
+
The INPUT SLICE the orchestrator builds for ONE `orc-test-author-opus-5-med`
|
|
4
|
+
dispatch. The procedure and the return contract live in ONE place: the agent
|
|
5
|
+
file, `.claude/agents/orc-test-author-opus-5-med.md`. The orchestrator never
|
|
6
|
+
runs this itself. **Authoring only — RUN NOTHING, GATE NOTHING.** The user tests manually.
|
|
7
|
+
|
|
8
|
+
## Input slice (you receive exactly this)
|
|
9
|
+
|
|
10
|
+
- changed_files[] — the surface the change touched (from the run's actual_files)
|
|
11
|
+
- acceptance_criteria[] — the intent-spec's definition-of-done (the "new behaviour")
|
|
12
|
+
- touched_flows[] — user journeys through the changed code (may be empty)
|
|
13
|
+
- constraints[] — intent-spec hard rules
|
|
14
|
+
- stack — {language, test_framework, is_http_api}; detect if absent
|
|
15
|
+
- test_types[] — subset of {new_behaviour, flow, change, regression}; default all
|
|
16
|
+
- output_conventions — where tests live in this repo
|
|
17
|
+
|
|
18
|
+
The manual deliverables go to `test-generator/<change-slug>/` at the PROJECT
|
|
19
|
+
ROOT (`<change-slug>` = the run's kebab-case run-folder slug). Malformed returns
|
|
20
|
+
are treated as failure by the caller.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# orc-testgen — Subagent wrapper (orchestrator prepends at spawn)
|
|
2
|
-
|
|
3
|
-
You are an isolated test-authoring worker. You WRITE test cases from the slice
|
|
4
|
-
below; you never run them, never fix code, never gate the ship. Make manual
|
|
5
|
-
testing easy for the user. Emit the return structure
|
|
6
|
-
|
|
7
|
-
[Orchestrator: append the input slice here at spawn time.]
|
|
1
|
+
# orc-testgen — Subagent wrapper (orchestrator prepends at spawn)
|
|
2
|
+
|
|
3
|
+
You are an isolated test-authoring worker. You WRITE test cases from the slice
|
|
4
|
+
below; you never run them, never fix code, never gate the ship. Make manual
|
|
5
|
+
testing easy for the user. Emit the return structure your agent file defines and STOP.
|
|
6
|
+
|
|
7
|
+
[Orchestrator: append the input slice here at spawn time.]
|
|
@@ -1,60 +1,56 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: orc-advisor
|
|
3
|
-
description: >
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
brief
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
($CLAUDE_EFFORT). The orchestrator validates the return, emits the `ADVISE`
|
|
58
|
-
trace line when logging, relays the open questions to the user in ONE batched
|
|
59
|
-
round, folds the answers into the intent-spec, and records unanswered
|
|
60
|
-
defaults as UNCONFIRMED in the assumption ledger.
|
|
1
|
+
---
|
|
2
|
+
name: orc-advisor
|
|
3
|
+
description: >
|
|
4
|
+
Internal to /orc-ultra: the pre-analysis Advisor. Runs ONCE at Phase U0 and
|
|
5
|
+
writes the advisory brief, the security-risk section and the rubric the ultra
|
|
6
|
+
judges score against. No slash command of its own.
|
|
7
|
+
disable-model-invocation: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ORC-ADVISOR (ultra-lane advisory brief)
|
|
11
|
+
|
|
12
|
+
Ultra-complex tasks fail on wrong interpretation, silent assumptions, and
|
|
13
|
+
generic quality bars. The Advisor front-loads the fix: one max-effort pass
|
|
14
|
+
that frames the request against the REAL codebase and hands every downstream
|
|
15
|
+
role — analyst, planner, judges, executors — the same request-specific brief.
|
|
16
|
+
|
|
17
|
+
Ultra lane ONLY. There is no `/orc-advisor` command; the orchestrator
|
|
18
|
+
dispatches `orc-advisor-opus-5-xhigh` at Phase U0 of an `/orc-ultra` run.
|
|
19
|
+
Cost is accepted by definition of the lane — no consent prompt.
|
|
20
|
+
|
|
21
|
+
## Hard rules
|
|
22
|
+
|
|
23
|
+
1. **The orchestrator never advises — it spawns.** Dispatch
|
|
24
|
+
`orc-advisor-opus-5-xhigh` with the slice below; the advisor writes the
|
|
25
|
+
brief; the orchestrator relays and injects.
|
|
26
|
+
2. **The advisor is read-only on the project** (Read/Glob/Grep + Bash for
|
|
27
|
+
git introspection). It never edits code, never spawns subagents.
|
|
28
|
+
3. **One dispatch per run.** The advisor is never re-dispatched for
|
|
29
|
+
revisions — post-brief quality is the judges' job.
|
|
30
|
+
4. **The brief is injected LITERALLY** (never a file pointer) into the
|
|
31
|
+
analyst slice, the planner slice, all three judge slices, and — as
|
|
32
|
+
advisory notes — the executor slices.
|
|
33
|
+
5. **The security section may not be skipped.** "No security surface" is a
|
|
34
|
+
legitimate conclusion but must be stated with reasoning.
|
|
35
|
+
|
|
36
|
+
## Dispatch slice (orchestrator → advisor)
|
|
37
|
+
|
|
38
|
+
- The user's request verbatim (plus the doc path when one exists).
|
|
39
|
+
- The run-folder path for `advisory-brief.md`.
|
|
40
|
+
- Detected stack summary (from intake — never re-detected).
|
|
41
|
+
|
|
42
|
+
## Brief contents (see the agent file for the full section spec)
|
|
43
|
+
|
|
44
|
+
Risks & pitfalls (anchored) · alternatives + trade-offs · security risks
|
|
45
|
+
(mandatory) · the three-part RUBRIC (correct analysis / correct plan /
|
|
46
|
+
faithful implementation) · open questions with proposed defaults · seed
|
|
47
|
+
assumption-ledger entries.
|
|
48
|
+
|
|
49
|
+
## Return contract
|
|
50
|
+
|
|
51
|
+
`brief_path`, `open_questions[]`, `assumptions[]`, `actual_model` (verbatim
|
|
52
|
+
from the agent's system-prompt model-id line), `actual_effort`
|
|
53
|
+
($CLAUDE_EFFORT). The orchestrator validates the return, emits the `ADVISE`
|
|
54
|
+
trace line when logging, relays the open questions to the user in ONE batched
|
|
55
|
+
round, folds the answers into the intent-spec, and records unanswered
|
|
56
|
+
defaults as UNCONFIRMED in the assumption ledger.
|
|
@@ -2,22 +2,17 @@
|
|
|
2
2
|
name: orc-analyze
|
|
3
3
|
description: >
|
|
4
4
|
System Analyst for ORC. Use for "/orc-analyze", "analyze this doc for scope
|
|
5
|
-
X", or "analyze this requirement against the code"
|
|
6
|
-
|
|
7
|
-
code-grounded requirement set
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
quote-anchored file:line evidence, and challenges the user with recommended
|
|
11
|
-
options. Opt-in DEEP mode adds a scout-driven code sweep, verify-every-claim,
|
|
12
|
-
and alternatives + risks. Also auto-triggers inside /orc on a doc or
|
|
13
|
-
ambiguous requirement. The orchestrator dispatches this to a subagent — it
|
|
14
|
-
never analyzes itself.
|
|
5
|
+
X", or "analyze this requirement against the code". Turns a document (PDF by
|
|
6
|
+
path or pasted) or a plain-language request into a scope-bounded,
|
|
7
|
+
code-grounded requirement set with quote-anchored file:line evidence BEFORE
|
|
8
|
+
any planning, and challenges the user with recommended options. Opt-in DEEP
|
|
9
|
+
mode adds a scout-driven code sweep. Also auto-triggers inside /orc on a doc.
|
|
15
10
|
---
|
|
16
11
|
|
|
17
12
|
# ORC-ANALYZE (System Analyst)
|
|
18
13
|
|
|
19
14
|
The orchestrator stays on top and **dispatches a System Analyst subagent
|
|
20
|
-
(Opus 5, high)** to do this work — it never analyzes itself, keeping its own
|
|
15
|
+
(Opus 5.5, high)** to do this work — it never analyzes itself, keeping its own
|
|
21
16
|
context lean. This skill defines what that subagent does, how the orchestrator
|
|
22
17
|
runs the standard/deep gate + scout dispatch, and how it relays challenges and
|
|
23
18
|
branches on the result.
|
|
@@ -33,7 +28,7 @@ the user meant.
|
|
|
33
28
|
## Hard rules
|
|
34
29
|
|
|
35
30
|
1. **Dispatched, not self-run.** The orchestrator coordinates; the Analyst
|
|
36
|
-
subagent (Opus 5 high) reads the source, reads the code, and reconciles.
|
|
31
|
+
subagent (Opus 5.5 high) reads the source, reads the code, and reconciles.
|
|
37
32
|
2. **Evidence-or-mark (never hallucinate) — quote-anchored.** Every
|
|
38
33
|
requirement interpretation and code claim carries `file:line — "verbatim
|
|
39
34
|
snippet"` evidence (≤1 line, quoted not paraphrased; no quote →
|
|
@@ -79,24 +74,20 @@ the user meant.
|
|
|
79
74
|
|
|
80
75
|
## Behavior trace (always on)
|
|
81
76
|
|
|
82
|
-
`../_shared/phases/trace.md` (`core`, at run start; `orc lane phases`
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
Nothing else about the protocol is restated here; a phase that ends with
|
|
88
|
-
`zero new trace lines is a protocol violation`.
|
|
77
|
+
`../_shared/phases/trace.md` (`core`, at run start; `orc lane phases orc-analyze --json` →
|
|
78
|
+
`trace_grammar` gives the verbs). Lane token `analyze`, tier
|
|
79
|
+
**Single-dispatch**. At run start write `log_dir/.current` =
|
|
80
|
+
`run-analyze-<slug>-<DDMMYY>-<HHMMSS>.txt` AND `touch the trace file` of that name
|
|
81
|
+
in the SAME step. A phase that ends with `zero new trace lines is a protocol violation`.
|
|
89
82
|
|
|
90
83
|
`context-combiner` is a PHASE of this run, not a lane: its `DISPATCH`/`RETURN`,
|
|
91
84
|
its Phase D verdicts and its conservation-gate result fold into THIS packet.
|
|
92
85
|
|
|
93
86
|
## Phases
|
|
94
87
|
|
|
95
|
-
`orc lane phases orc-analyze --json` is this lane's pipeline
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
manifest, because a `read: section` pointer names a HEADING and a renamed heading
|
|
99
|
-
is a pointer into nothing.
|
|
88
|
+
`orc lane phases orc-analyze --json` is this lane's pipeline. **The CLI owns the order**:
|
|
89
|
+
never derive it from the headings below, and never rename or renumber one
|
|
90
|
+
without the manifest (`../_shared/lane-contract.md` §Phases).
|
|
100
91
|
|
|
101
92
|
## Phase A — Ingest & detect source mode
|
|
102
93
|
|
|
@@ -133,12 +124,11 @@ offer wording, the auto-consume back here: `references/thin-input.md`.
|
|
|
133
124
|
|
|
134
125
|
## Phase A′ — Standard vs Deep gate (default STANDARD)
|
|
135
126
|
|
|
136
|
-
Before reconciliation, offer the depth choice (
|
|
137
|
-
presets
|
|
138
|
-
|
|
139
|
-
standard = faster,
|
|
140
|
-
|
|
141
|
-
requires explicit consent — never auto-escalates — and is **two-pass with
|
|
127
|
+
Before reconciliation, offer the depth choice (H `any.analysis.depth`). Config
|
|
128
|
+
`default_analysis_depth` presets it; mention the free switch `orc config set
|
|
129
|
+
default_analysis_depth deep`. Deep = wider sweep, verify every claim, more
|
|
130
|
+
questions, alternatives, more tokens; standard = faster, the hard rule 4 floor.
|
|
131
|
+
Deep needs explicit consent EVERY run (never auto) and is **two-pass with
|
|
142
132
|
scouts**: load `references/deep-mode.md`. Standard is single-pass.
|
|
143
133
|
|
|
144
134
|
## Phase B — Bound scope
|
|
@@ -216,44 +206,18 @@ another RELATED doc (multi-analyze loop → combiner once 2+ related analyses
|
|
|
216
206
|
exist). Menu rules, relatedness gate, combiner handling:
|
|
217
207
|
`references/branching.md`.
|
|
218
208
|
|
|
219
|
-
##
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
`effective`, print every line in `announce[]` VERBATIM at preflight, and honour
|
|
231
|
-
`stops[]` before wave 1. Never re-derive a value, a precedence or an inertness
|
|
232
|
-
from `.claude/orc.config.yaml` — a key this lane does not read is not in the
|
|
233
|
-
answer, and a key another key shadows comes back already marked. Exit ≠ 0 → say
|
|
234
|
-
the CLI is unavailable and fall back to `../_shared/config-precedence.md`'s
|
|
235
|
-
documented defaults, out loud. Priorities and families:
|
|
236
|
-
`../_shared/config-precedence.md`.
|
|
237
|
-
|
|
238
|
-
## Calls
|
|
239
|
-
|
|
240
|
-
**ONE catalogue, and it is not you:** `orc lane calls orc-analyze --json` names every
|
|
241
|
-
CLI call this lane makes, each with its exit-code contract, its cost, when to run
|
|
242
|
-
it, and what an EMPTY answer means. Never invent a spelling, never re-word an
|
|
243
|
-
exit code, and never re-derive a state word — the CLI's state words are the only
|
|
244
|
-
state words, and **an exit code is an ANSWER wherever that contract says so, not
|
|
245
|
-
a failure**. A call the answer does not name is a call this lane does not make.
|
|
246
|
-
Exit ≠ 0 from the catalogue itself → say the CLI is unavailable and name the
|
|
247
|
-
command you are about to run, out loud, before running it.
|
|
248
|
-
|
|
249
|
-
## Rules — the anti-slop card (`../_shared/phases/rules.md`)
|
|
250
|
-
|
|
251
|
-
`orc rules slice --lane orc-analyze --json` is the ONLY assembler; never build
|
|
252
|
-
the card here. It rides under the house rules and above the task —
|
|
253
|
-
**house rules > your project's rules > ORC's own packs** — and its `line` prints
|
|
254
|
-
VERBATIM at preflight. Returns gain `rules_applied[]`, `rules_conflicts[]` (a gap,
|
|
255
|
-
never a silent choice) and `rules_overridden[]`.
|
|
209
|
+
## Lane contract (`../_shared/lane-contract.md` — read it ONLY when a call exits ≠ 0)
|
|
210
|
+
|
|
211
|
+
- **Calls:** `orc lane calls orc-analyze --json` names every call and its exit codes.
|
|
212
|
+
**An exit code is an ANSWER where it says so, not a failure.** Make no other call.
|
|
213
|
+
- **Config:** `orc lane config orc-analyze --json`. Obey `effective`, print every line
|
|
214
|
+
in `announce[]` VERBATIM at preflight, and honour `stops[]` before wave 1.
|
|
215
|
+
Never merge `.claude/orc.config.yaml` yourself (`../_shared/config-precedence.md`).
|
|
216
|
+
- **Habits:** `habits{}` in that answer → `../_shared/habits.md`; else ignore `(H …)`.
|
|
217
|
+
- **Rules:** `orc rules slice --lane orc-analyze --json` is the ONLY assembler
|
|
218
|
+
(`../_shared/phases/rules.md`). Its `line` prints VERBATIM at preflight.
|
|
219
|
+
|
|
256
220
|
## Waiting mid-run (`/orc-wait`)
|
|
257
221
|
|
|
258
222
|
Canonical: `../_shared/wait.md`. **`a lane that waits without a hand-back` has broken this contract.**
|
|
259
|
-
Checkpoint **full** · safe point **after the analyst returns**.
|
|
223
|
+
Checkpoint **full** · safe point **after the analyst returns**.
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
# Example — Annotated System Analysis (dry run)
|
|
2
|
-
|
|
3
|
-
A: = analyst (Opus 5 high) · U: = user. Nothing real. Bounds the DELIVERABLE to
|
|
4
|
-
the asked scope; every claim is grounded with file:line evidence OR marked an
|
|
5
|
-
assumption and turned into a question. The orchestrator dispatches this — it never
|
|
6
|
-
analyzes itself.
|
|
7
|
-
|
|
8
|
-
U: /orc-analyze security-audit.pdf — implement the AUTH findings only
|
|
9
|
-
|
|
10
|
-
## Mode + scope
|
|
11
|
-
A: [reads the PDF] Mode: AUDIT (structured findings sheet). Scope X = auth.
|
|
12
|
-
Payments and logging findings exist in the doc — recognized only to EXCLUDE them
|
|
13
|
-
(they never become tasks). Depth gate: standard or deep? (default standard)
|
|
14
|
-
U: standard
|
|
15
|
-
|
|
16
|
-
## Ground against real code (evidence-or-mark)
|
|
17
|
-
A: Finding A1 "login lacks rate-limit" → CONFIRMED, auth/login.py:33 has no limiter.
|
|
18
|
-
Finding A2 "JWT uses HS256, should be RS256" → auth/token.py:12 uses HS256 ✓ real.
|
|
19
|
-
Finding A3 "missing UUID check on /reset" → ⚠ STALE: reset.py:20 renamed that field
|
|
20
|
-
to `token_id` and DOES validate it. Marking A3 UNVERIFIED → question.
|
|
21
|
-
|
|
22
|
-
## Challenge (recommended options, one at a time)
|
|
23
|
-
A: A3 looks stale against the code. Options:
|
|
24
|
-
(a) Drop A3 — code already validates (RECOMMENDED: evidence at reset.py:20).
|
|
25
|
-
(b) Keep A3 — you know of a gap the diff doesn't show.
|
|
26
|
-
U: (a) drop it
|
|
27
|
-
|
|
28
|
-
## Adjacent context (anchored, do-not-build)
|
|
29
|
-
A: A2's RS256 switch depends on the key-loading in config/keys.py — captured as
|
|
30
|
-
"Additional context (do not build)", anchored to A2, so the build respects it
|
|
31
|
-
without treating it as a task.
|
|
32
|
-
|
|
33
|
-
## Artifacts + branch
|
|
34
|
-
A: Writes orc/analyzer/auth-audit/report.md (Evidence column + Assumptions & Open
|
|
35
|
-
Questions) + derived requirement-spec.md. handoff_ready: true.
|
|
36
|
-
Keep as report, or take into build?
|
|
37
|
-
U: take into build → hands both files to /orc, which plans from the spec (no
|
|
38
|
-
re-questioning of scope — it's already settled).
|
|
39
|
-
|
|
40
|
-
## (Phase F) Another related doc?
|
|
41
|
-
A: You could analyze a related doc in this same scope; once 2+ related analyses
|
|
42
|
-
exist I'll offer context-combiner to merge them into one spec. [not needed here]
|
|
1
|
+
# Example — Annotated System Analysis (dry run)
|
|
2
|
+
|
|
3
|
+
A: = analyst (Opus 5.5 high) · U: = user. Nothing real. Bounds the DELIVERABLE to
|
|
4
|
+
the asked scope; every claim is grounded with file:line evidence OR marked an
|
|
5
|
+
assumption and turned into a question. The orchestrator dispatches this — it never
|
|
6
|
+
analyzes itself.
|
|
7
|
+
|
|
8
|
+
U: /orc-analyze security-audit.pdf — implement the AUTH findings only
|
|
9
|
+
|
|
10
|
+
## Mode + scope
|
|
11
|
+
A: [reads the PDF] Mode: AUDIT (structured findings sheet). Scope X = auth.
|
|
12
|
+
Payments and logging findings exist in the doc — recognized only to EXCLUDE them
|
|
13
|
+
(they never become tasks). Depth gate: standard or deep? (default standard)
|
|
14
|
+
U: standard
|
|
15
|
+
|
|
16
|
+
## Ground against real code (evidence-or-mark)
|
|
17
|
+
A: Finding A1 "login lacks rate-limit" → CONFIRMED, auth/login.py:33 has no limiter.
|
|
18
|
+
Finding A2 "JWT uses HS256, should be RS256" → auth/token.py:12 uses HS256 ✓ real.
|
|
19
|
+
Finding A3 "missing UUID check on /reset" → ⚠ STALE: reset.py:20 renamed that field
|
|
20
|
+
to `token_id` and DOES validate it. Marking A3 UNVERIFIED → question.
|
|
21
|
+
|
|
22
|
+
## Challenge (recommended options, one at a time)
|
|
23
|
+
A: A3 looks stale against the code. Options:
|
|
24
|
+
(a) Drop A3 — code already validates (RECOMMENDED: evidence at reset.py:20).
|
|
25
|
+
(b) Keep A3 — you know of a gap the diff doesn't show.
|
|
26
|
+
U: (a) drop it
|
|
27
|
+
|
|
28
|
+
## Adjacent context (anchored, do-not-build)
|
|
29
|
+
A: A2's RS256 switch depends on the key-loading in config/keys.py — captured as
|
|
30
|
+
"Additional context (do not build)", anchored to A2, so the build respects it
|
|
31
|
+
without treating it as a task.
|
|
32
|
+
|
|
33
|
+
## Artifacts + branch
|
|
34
|
+
A: Writes orc/analyzer/auth-audit/report.md (Evidence column + Assumptions & Open
|
|
35
|
+
Questions) + derived requirement-spec.md. handoff_ready: true.
|
|
36
|
+
Keep as report, or take into build?
|
|
37
|
+
U: take into build → hands both files to /orc, which plans from the spec (no
|
|
38
|
+
re-questioning of scope — it's already settled).
|
|
39
|
+
|
|
40
|
+
## (Phase F) Another related doc?
|
|
41
|
+
A: You could analyze a related doc in this same scope; once 2+ related analyses
|
|
42
|
+
exist I'll offer context-combiner to merge them into one spec. [not needed here]
|