@azure-id/orc 1.4.2 → 1.5.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 +111 -0
- package/README.md +46 -46
- package/bin/cli.js +5918 -400
- package/bin/mockrun-catalog.js +4 -0
- package/bin/verify-contracts.js +4475 -4410
- package/bin/verify-package.js +21 -2
- package/bin/webui/api.js +108 -8
- package/bin/webui/app.html +9 -0
- package/bin/webui/css/06-responsive.css +14 -0
- package/bin/webui/css/panels/test.css +132 -0
- package/bin/webui/fixtures/index.js +23 -1
- package/bin/webui/fixtures/test.js +547 -0
- package/bin/webui/i18n/en/common.json +1 -0
- package/bin/webui/i18n/en/nav.json +1 -0
- package/bin/webui/i18n/en/overview.json +4 -0
- package/bin/webui/i18n/en/test.json +141 -0
- package/bin/webui/i18n/id/common.json +1 -0
- package/bin/webui/i18n/id/nav.json +1 -0
- package/bin/webui/i18n/id/overview.json +4 -0
- package/bin/webui/i18n/id/test.json +141 -0
- package/bin/webui/js/01-i18n.js +1 -0
- package/bin/webui/js/panels/challenge.js +8 -3
- package/bin/webui/js/panels/overview.js +10 -0
- package/bin/webui/js/panels/test.js +733 -0
- package/bin/webui/serve.js +572 -557
- package/mock-run/orc-test.md +327 -0
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +2 -0
- package/templates/agents/orc-test-designer-opus-5-high.md +158 -0
- package/templates/agents/orc-test-interpreter-opus-5-low.md +130 -0
- package/templates/commands/orc-test.md +66 -0
- package/templates/skills/_shared/extra-dispatch.md +1346 -1337
- package/templates/skills/_shared/live-target.md +188 -0
- package/templates/skills/_shared/phases/trace.md +2 -2
- package/templates/skills/_shared/wait.md +241 -240
- package/templates/skills/orc-test/SKILL.md +233 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run the tests against the real running system — happy path to security — and report only what was observed
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc-test** skill. Standalone — no plan, no build, no code written into
|
|
6
|
+
your project.
|
|
7
|
+
|
|
8
|
+
Every other ORC lane reasons about your system. This one **runs it**:
|
|
9
|
+
|
|
10
|
+
> **A test that ran is a FACT; a test that was written is an OPINION.**
|
|
11
|
+
|
|
12
|
+
ORC already has a lane that WRITES tests and never runs them (Phase 6.5,
|
|
13
|
+
`test-generator/`). This is the mirror image, and the two never mix: `/orc-test`
|
|
14
|
+
writes nothing into your test tree and runs everything.
|
|
15
|
+
|
|
16
|
+
**It never edits the system it is testing.** If the server will not come up, it
|
|
17
|
+
prints exactly what it ran and the tail of the output, and hands back. You fix
|
|
18
|
+
it, and re-run for free — the same shape as `/orc-challenge`, and for the same
|
|
19
|
+
reason: a session that just fixed the code cannot be trusted to measure it.
|
|
20
|
+
|
|
21
|
+
**It never reports a result it did not observe.** Three verdicts and no fourth:
|
|
22
|
+
`pass` (observed, matched), `fail` (observed, did not match), and `unknown` —
|
|
23
|
+
not observed. `unknown` keeps its slot in the report and never becomes a pass.
|
|
24
|
+
A flake is recorded, never retried away: there is no retry count, because if the
|
|
25
|
+
same case answers differently twice, *that instability is the finding*.
|
|
26
|
+
|
|
27
|
+
One pass:
|
|
28
|
+
|
|
29
|
+
1. **Target** — `orc test init <slug>` asks what it must not guess: back end or
|
|
30
|
+
front end, local or remote, the base URL. On a remote target it also requires
|
|
31
|
+
`--authorized "<who authorized this, and where it is recorded>"`, stored
|
|
32
|
+
verbatim and reprinted at the head of every report. ORC cannot verify
|
|
33
|
+
authorization and does not pretend to — it makes the assertion impossible to
|
|
34
|
+
skip. Frozen, and never asked again.
|
|
35
|
+
2. **Surface** — free, deterministic: an OpenAPI or GraphQL spec on disk, the
|
|
36
|
+
same spec at the target, route extraction by framework fingerprint, FE router
|
|
37
|
+
config. Anything ambiguous comes back as `unresolved[]` and is never guessed.
|
|
38
|
+
The **code-vs-live diff** is a first-class output: routes that answer live and
|
|
39
|
+
exist in no source file are zombie APIs.
|
|
40
|
+
3. **Flow** — it digs the repo for how a request reaches your endpoint: the
|
|
41
|
+
route registration, the middleware in order, the handler, what it writes, what
|
|
42
|
+
must be true first, which fields name an object, and the login flow itself.
|
|
43
|
+
4. **Environment** (local only) — it brings the system up and waits for health.
|
|
44
|
+
Five states, one next action each.
|
|
45
|
+
5. **Cases** — the CLI derives the bulk for free: equivalence partitions,
|
|
46
|
+
boundary values, method and content-type negatives, stateful create → read →
|
|
47
|
+
update → delete sequences. An agent fills only what a schema cannot know.
|
|
48
|
+
6. **Run** — paced, capped, and fenced to the frozen origin. A 429 is a RESULT,
|
|
49
|
+
not an error: it means rate limiting works. Every case leaves its exact
|
|
50
|
+
request, its exact response and a reproducible `curl`, with every credential
|
|
51
|
+
redacted **before the bytes reach disk**.
|
|
52
|
+
7. **Report** — `orc/orc-test/<slug>/REPORT.md`, written for someone who does
|
|
53
|
+
not read code.
|
|
54
|
+
|
|
55
|
+
The security tier is a **closed set** mapped to the OWASP API Security Top 10
|
|
56
|
+
(2023), and it demonstrates a CONDITION rather than an extraction — confirming
|
|
57
|
+
an exploit is your decision on your authority. With one identity, BOLA and BFLA
|
|
58
|
+
report `UNCHECKABLE`, which keeps its slot and never becomes a pass.
|
|
59
|
+
|
|
60
|
+
**The run folder is never staged.** Evidence contains real response bodies from
|
|
61
|
+
a real system. The lane offers you the one `.gitignore` line; it does not edit
|
|
62
|
+
`.gitignore` itself.
|
|
63
|
+
|
|
64
|
+
Read the state back any time without this lane: `orc test status <slug>`.
|
|
65
|
+
|
|
66
|
+
The slug to open or reopen (or nothing, and it will ask): $ARGUMENTS
|