@azure-id/orc 2.1.0 → 2.1.1

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.
@@ -1,145 +1,145 @@
1
- # The quick context doc — shape and rules
2
-
3
- This is the file orc-quick writes after every request. It is written for a
4
- HUMAN to read later, in this session or a different one.
5
-
6
- ## Where it goes
7
-
8
- ```
9
- <projectRoot>/orc-quick/<slug>/quick-context.md
10
- ```
11
-
12
- - `<slug>` is the slug of the **first** request in the thread. No date in the
13
- folder name.
14
- - **One file per folder. Never make a second `.md` file.** No `review.md`, no
15
- `diff.md`, no per-request files.
16
- - It sits at the project root, next to folders like `test-generator/` and
17
- `learning-docs/` — never inside `.claude/`.
18
-
19
- ## Rules
20
-
21
- 1. **Write it BEFORE the offers** (test / review / commit). If the user walks
22
- away, the entry is still complete.
23
- 2. **Every request gets an entry** — even a read-only dig. There, the answer IS
24
- the result.
25
- 3. **Never read the body of this file.** Only two exceptions:
26
- - the TOC block, when you re-open a thread;
27
- - the user asks you to read it.
28
- 4. **Never commit it.** It is not staged, ever. Do not edit `.gitignore`.
29
- 5. One entry can hold **several dispatches**. A dig that turns into a fix is ONE
30
- entry with two rows in its table.
31
-
32
- ## The TOC block
33
-
34
- The top of the file has a short list between markers:
35
-
36
- ```markdown
37
- <!-- orc-quick:toc -->
38
- 1. Change json payload A → B 05-08-2026 14:23:10 ✅ committed a1b2c3d
39
- 2. How does tenant scoping work? 05-08-2026 15:47:02 ℹ answered
40
- 3. Why does /orders 500? — found & fixed 10-08-2026 09:15:44 ✅ committed 7f2e1a9
41
- <!-- /orc-quick:toc -->
42
- ```
43
-
44
- **Why the markers matter.** When you open a thread again, you need to know the
45
- next number. You read ONLY this block — it is small and cheap. You do not read
46
- the entries below it. That is how "never read the doc" and "keep counting" can
47
- both be true.
48
-
49
- Inside one session, the count is also kept in
50
- `.claude/orc/run/<run-slug>/quick-checkpoint.md`. That file is run state, not
51
- the deliverable, so you may read it freely.
52
-
53
- **If the TOC is broken or missing:** rebuild it by scanning ONLY the lines that
54
- start with `## <number>.`. Do not read the text under them. Then write the block
55
- back between the markers. Never start a second thread because of a broken TOC.
56
-
57
- ## Entry shape
58
-
59
- Use as many of these as apply. Leave out what does not fit.
60
-
61
- ```markdown
62
- ## <n>. <short title>
63
- **asked** DD-MM-YYYY HH:MM:SS
64
- > the user's request, word for word
65
-
66
- **kind** code-change | context-dig | investigate → code-change | pr-comments | …
67
- **resolved intent** one or two sentences: what you actually decided to do.
68
-
69
- **clarified**
70
- - <question> → **Y**: <what won> · X was <what the user first said> ·
71
- Z was <the other idea, and why it lost>
72
-
73
- **knowledge** wiki FRESH · docs=<paths> · pattern express@v3
74
-
75
- **dispatches**
76
- | # | kind | agent / model | expect | actual | result |
77
- |---|---|---|---|---|---|
78
- | 1 | recon | `orc-recon-sonnet-4-6-med` | sonnet-4-6/medium | sonnet-4-6/medium ✅ | what it found |
79
- | 2 | executor | `orc-executor-sonnet-4-6-med` | sonnet-4-6/medium | sonnet-4-6/medium ✅ | 3 files |
80
-
81
- Only an **other** dispatch keeps the `*(ad-hoc, untraced-by-hook)*` mark. A
82
- dispatch of either pinned recon agent is a normal row with the agent's name.
83
-
84
- **files changed** path · path · path
85
-
86
- **repro** red → green · `npm test -- tests/orders.search.test.js` (before: exit 1 · after: exit 0)
87
- **blast radius** 3 symbols · callers 7 in 4 files · tests reach 2 · risk high: searchByItemPrefix (exported, fan-in 4, no test reaches it)
88
- **tests** reached 12 passed · suite 41 passed
89
- **graph** gen 42 · cards 2 · <the `orc graph gain` line, word for word>
90
-
91
- **how it was resolved** a short, plain explanation of the fix and WHY this way.
92
- Say what you did not do, and why. This is the most useful part later.
93
-
94
- **build** GREEN · **tests** 41 passed
95
- **unmet** things you did not do, on purpose or not
96
-
97
- **follow-through** tests · review result · commit hash · pushed or not
98
- ```
99
-
100
- For PR work, also add:
101
-
102
- ```markdown
103
- **pr** #142 "title" · branch · url
104
-
105
- **threads taken** 2 of 3
106
- | # | reviewer | anchor | comment |
107
- |---|---|---|---|
108
- | 1 | @dana | src/routes/export.js:34 | the comment text |
109
-
110
- **github writes** NONE — no reply, no resolve, no review.
111
- ```
112
-
113
- These four lines are optional and go in that order, after `**files changed**`.
114
- Leave out the ones that do not apply:
115
-
116
- - **`repro`** — only on a defect entry. `repro: none` writes
117
- `**repro** not reproduced — <the reason>` instead. Never leave it out to keep
118
- the entry tidy: an unreproduced fix is the thing the reader most needs to know.
119
- - **`blast radius`** — a `risk` word NEVER appears without its `why`. Nothing in
120
- the graph → `none indexed (<n> files not in the graph)`.
121
- - **`graph`** — the gain line is an estimate with a range. Copy it; never turn
122
- it into a saving.
123
-
124
- ## A read-only entry
125
-
126
- A dig has no files, no build and no tests. It still gets a full entry:
127
-
128
- - **`how it was resolved`** holds the recon `answer`.
129
- - **`unmet`** holds the recon `unresolved[]`.
130
- - A blast-radius dig lists the four caller classes apart — `direct`, `route`
131
- (reached through a URL), `via_alias`, `inherited` — and, when any list rests
132
- on the graph alone, the sentence the agent returned, word for word:
133
- *A card lists every caller that NAMES the symbol. A card's silence is not
134
- proof of absence.*
135
-
136
- ## Writing style for entries
137
-
138
- Write for a person who comes back in three weeks and forgot everything.
139
-
140
- - Use plain words. Short sentences.
141
- - Always name real files and line numbers.
142
- - Say **why** you chose one option and not the other. A rejected idea with its
143
- reason saves the next person from trying it again.
144
- - Record what you did NOT do. "Backfill not done — user asked to leave it" is
145
- more useful than silence.
1
+ # The quick context doc — shape and rules
2
+
3
+ This is the file orc-quick writes after every request. It is written for a
4
+ HUMAN to read later, in this session or a different one.
5
+
6
+ ## Where it goes
7
+
8
+ ```
9
+ <projectRoot>/orc-quick/<slug>/quick-context.md
10
+ ```
11
+
12
+ - `<slug>` is the slug of the **first** request in the thread. No date in the
13
+ folder name.
14
+ - **One file per folder. Never make a second `.md` file.** No `review.md`, no
15
+ `diff.md`, no per-request files.
16
+ - It sits at the project root, next to folders like `test-generator/` and
17
+ `learning-docs/` — never inside `.claude/`.
18
+
19
+ ## Rules
20
+
21
+ 1. **Write it BEFORE the offers** (test / review / commit). If the user walks
22
+ away, the entry is still complete.
23
+ 2. **Every request gets an entry** — even a read-only dig. There, the answer IS
24
+ the result.
25
+ 3. **Never read the body of this file.** Only two exceptions:
26
+ - the TOC block, when you re-open a thread;
27
+ - the user asks you to read it.
28
+ 4. **Never commit it.** It is not staged, ever. Do not edit `.gitignore`.
29
+ 5. One entry can hold **several dispatches**. A dig that turns into a fix is ONE
30
+ entry with two rows in its table.
31
+
32
+ ## The TOC block
33
+
34
+ The top of the file has a short list between markers:
35
+
36
+ ```markdown
37
+ <!-- orc-quick:toc -->
38
+ 1. Change json payload A → B 05-08-2026 14:23:10 ✅ committed a1b2c3d
39
+ 2. How does tenant scoping work? 05-08-2026 15:47:02 ℹ answered
40
+ 3. Why does /orders 500? — found & fixed 10-08-2026 09:15:44 ✅ committed 7f2e1a9
41
+ <!-- /orc-quick:toc -->
42
+ ```
43
+
44
+ **Why the markers matter.** When you open a thread again, you need to know the
45
+ next number. You read ONLY this block — it is small and cheap. You do not read
46
+ the entries below it. That is how "never read the doc" and "keep counting" can
47
+ both be true.
48
+
49
+ Inside one session, the count is also kept in
50
+ `.claude/orc/run/<run-slug>/quick-checkpoint.md`. That file is run state, not
51
+ the deliverable, so you may read it freely.
52
+
53
+ **If the TOC is broken or missing:** rebuild it by scanning ONLY the lines that
54
+ start with `## <number>.`. Do not read the text under them. Then write the block
55
+ back between the markers. Never start a second thread because of a broken TOC.
56
+
57
+ ## Entry shape
58
+
59
+ Use as many of these as apply. Leave out what does not fit.
60
+
61
+ ```markdown
62
+ ## <n>. <short title>
63
+ **asked** DD-MM-YYYY HH:MM:SS
64
+ > the user's request, word for word
65
+
66
+ **kind** code-change | context-dig | investigate → code-change | pr-comments | …
67
+ **resolved intent** one or two sentences: what you actually decided to do.
68
+
69
+ **clarified**
70
+ - <question> → **Y**: <what won> · X was <what the user first said> ·
71
+ Z was <the other idea, and why it lost>
72
+
73
+ **knowledge** wiki FRESH · docs=<paths> · pattern express@v3
74
+
75
+ **dispatches**
76
+ | # | kind | agent / model | expect | actual | result |
77
+ |---|---|---|---|---|---|
78
+ | 1 | recon | `orc-recon-sonnet-5-med` | sonnet-5-5/medium | sonnet-5-5/medium ✅ | what it found |
79
+ | 2 | executor | `orc-executor-sonnet-5-med` | sonnet-5-5/medium | sonnet-5-5/medium ✅ | 3 files |
80
+
81
+ Only an **other** dispatch keeps the `*(ad-hoc, untraced-by-hook)*` mark. A
82
+ dispatch of either pinned recon agent is a normal row with the agent's name.
83
+
84
+ **files changed** path · path · path
85
+
86
+ **repro** red → green · `npm test -- tests/orders.search.test.js` (before: exit 1 · after: exit 0)
87
+ **blast radius** 3 symbols · callers 7 in 4 files · tests reach 2 · risk high: searchByItemPrefix (exported, fan-in 4, no test reaches it)
88
+ **tests** reached 12 passed · suite 41 passed
89
+ **graph** gen 42 · cards 2 · <the `orc graph gain` line, word for word>
90
+
91
+ **how it was resolved** a short, plain explanation of the fix and WHY this way.
92
+ Say what you did not do, and why. This is the most useful part later.
93
+
94
+ **build** GREEN · **tests** 41 passed
95
+ **unmet** things you did not do, on purpose or not
96
+
97
+ **follow-through** tests · review result · commit hash · pushed or not
98
+ ```
99
+
100
+ For PR work, also add:
101
+
102
+ ```markdown
103
+ **pr** #142 "title" · branch · url
104
+
105
+ **threads taken** 2 of 3
106
+ | # | reviewer | anchor | comment |
107
+ |---|---|---|---|
108
+ | 1 | @dana | src/routes/export.js:34 | the comment text |
109
+
110
+ **github writes** NONE — no reply, no resolve, no review.
111
+ ```
112
+
113
+ These four lines are optional and go in that order, after `**files changed**`.
114
+ Leave out the ones that do not apply:
115
+
116
+ - **`repro`** — only on a defect entry. `repro: none` writes
117
+ `**repro** not reproduced — <the reason>` instead. Never leave it out to keep
118
+ the entry tidy: an unreproduced fix is the thing the reader most needs to know.
119
+ - **`blast radius`** — a `risk` word NEVER appears without its `why`. Nothing in
120
+ the graph → `none indexed (<n> files not in the graph)`.
121
+ - **`graph`** — the gain line is an estimate with a range. Copy it; never turn
122
+ it into a saving.
123
+
124
+ ## A read-only entry
125
+
126
+ A dig has no files, no build and no tests. It still gets a full entry:
127
+
128
+ - **`how it was resolved`** holds the recon `answer`.
129
+ - **`unmet`** holds the recon `unresolved[]`.
130
+ - A blast-radius dig lists the four caller classes apart — `direct`, `route`
131
+ (reached through a URL), `via_alias`, `inherited` — and, when any list rests
132
+ on the graph alone, the sentence the agent returned, word for word:
133
+ *A card lists every caller that NAMES the symbol. A card's silence is not
134
+ proof of absence.*
135
+
136
+ ## Writing style for entries
137
+
138
+ Write for a person who comes back in three weeks and forgot everything.
139
+
140
+ - Use plain words. Short sentences.
141
+ - Always name real files and line numbers.
142
+ - Say **why** you chose one option and not the other. A rejected idea with its
143
+ reason saves the next person from trying it again.
144
+ - Record what you did NOT do. "Backfill not done — user asked to leave it" is
145
+ more useful than silence.