@azure-id/orc 1.9.0 → 1.9.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 +202 -0
- package/README-id.md +57 -59
- package/README.md +53 -54
- package/bin/build-agents.js +109 -109
- package/bin/cli.js +262 -58
- package/bin/graph-audit.js +235 -0
- package/bin/graph-extract.js +308 -3
- package/bin/graph-gain.js +23 -3
- package/bin/graph-map.js +9 -1
- package/bin/graph-query.js +152 -10
- package/bin/graph-shard.js +6 -1
- package/bin/graph-signals.js +287 -4
- package/bin/graph.js +717 -658
- package/bin/onboarding-content.js +4 -4
- package/bin/pricing.json +207 -200
- package/bin/verify-contracts.js +117 -2
- package/bin/verify-package.js +11 -7
- package/bin/webui/css/04-motion.css +162 -152
- package/bin/webui/css/panels/knowledge.css +563 -116
- package/bin/webui/fixtures/extra.js +2036 -2036
- package/bin/webui/fixtures/hookui.js +5 -5
- package/bin/webui/fixtures/knowledge.js +21 -4
- package/bin/webui/fixtures/settings.js +305 -305
- package/bin/webui/i18n/en/knowledge.json +122 -4
- package/bin/webui/i18n/id/knowledge.json +122 -4
- package/bin/webui/js/panels/knowledge.js +573 -9
- package/bin/webui/js/panels/overview.js +13 -4
- package/mock-run/context-combiner.md +100 -100
- package/mock-run/orc-budget.md +534 -534
- package/mock-run/orc-challenge-council.md +262 -262
- package/mock-run/orc-ultra.md +103 -103
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +43 -43
- package/templates/agents/orc-advisor-opus-5-xhigh.md +56 -56
- package/templates/agents/orc-analyze-mini-opus-5-med.md +60 -60
- package/templates/agents/orc-analyze-mini-sonnet-5-high.md +58 -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-5-med.md +55 -55
- package/templates/agents/orc-context-combiner-opus-5-high.md +88 -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 +2 -1
- package/templates/agents/orc-executor-opus-4-7-high.md +2 -1
- package/templates/agents/orc-executor-opus-4-7-med.md +2 -1
- package/templates/agents/orc-executor-opus-4-8-high.md +2 -1
- package/templates/agents/orc-executor-opus-5-high.md +4 -3
- package/templates/agents/orc-executor-opus-5-low.md +4 -3
- package/templates/agents/orc-executor-opus-5-med.md +4 -3
- package/templates/agents/orc-executor-sonnet-4-6-high.md +2 -1
- package/templates/agents/orc-executor-sonnet-4-6-med.md +2 -1
- package/templates/agents/orc-executor-sonnet-5-high.md +2 -1
- package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +1 -1
- package/templates/agents/orc-judge-opus-5-xhigh.md +85 -85
- package/templates/agents/orc-learn-writer-opus-5-low.md +73 -73
- package/templates/agents/orc-pattern-codifier-opus-5-med.md +65 -65
- package/templates/agents/orc-planner-mini-opus-5-med.md +4 -4
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +1 -1
- package/templates/agents/orc-planner-opus-5-med.md +160 -160
- package/templates/agents/orc-recon-opus-5-low.md +18 -8
- package/templates/agents/orc-recon-sonnet-4-6-med.md +15 -5
- package/templates/agents/orc-retro-opus-5-med.md +3 -3
- package/templates/agents/orc-reviewer-opus-5-med.md +60 -60
- package/templates/agents/orc-scout-opus-5-low.md +40 -40
- package/templates/agents/orc-system-analyst-opus-5-high.md +120 -120
- package/templates/agents/orc-test-author-opus-5-med.md +71 -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-verifier-opus-5-med.md +69 -69
- package/templates/agents/orc-wiki-scanner-opus-5-med.md +81 -81
- package/templates/commands/orc-ultra.md +17 -17
- package/templates/commands/orc-verify.md +11 -11
- package/templates/hooks/README.md +13 -3
- package/templates/hooks/orc-effort-guard.js +178 -178
- package/templates/hooks/orc-graph-hook.js +53 -7
- package/templates/hooks/orc-statusline.js +6 -6
- package/templates/skills/_shared/code-graph.md +57 -18
- package/templates/skills/_shared/config-precedence.md +198 -198
- package/templates/skills/_shared/extra-dispatch.md +1346 -1346
- package/templates/skills/_shared/opus5-only.md +8 -8
- package/templates/skills/_shared/phases/analyst-gates.md +136 -136
- package/templates/skills/_shared/phases/execution.md +4 -4
- package/templates/skills/_shared/phases/planning.md +3 -3
- package/templates/skills/_shared/phases/preflight.md +1 -1
- package/templates/skills/_shared/phases/review.md +4 -2
- package/templates/skills/_shared/phases/ship.md +1 -1
- package/templates/skills/_shared/phases/trace.md +3 -2
- package/templates/skills/_shared/read-ladder.md +14 -1
- package/templates/skills/_shared/return-validation.md +1 -1
- package/templates/skills/context-combiner/SKILL.md +1 -1
- 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 +8 -8
- 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/preflight-report.md +2 -2
- package/templates/skills/orc/references/ultra-mode.md +3 -3
- 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 +76 -76
- package/templates/skills/orc/subskills/orc-testgen/SKILL.md +45 -45
- package/templates/skills/orc-analyze/SKILL.md +2 -2
- package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -42
- package/templates/skills/orc-analyze/schemas/report-audit.md +83 -83
- package/templates/skills/orc-analyze/schemas/report-prose.md +63 -63
- package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -78
- 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 +143 -143
- 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 +4 -4
- 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 +16 -20
- package/templates/skills/orc-mini/references/complexity.md +25 -11
- package/templates/skills/orc-quick/SKILL.md +12 -13
- package/templates/skills/orc-quick/references/gh-mode.md +1 -1
- package/templates/skills/orc-quick/references/look.md +5 -5
- package/templates/skills/orc-verify/SKILL.md +15 -15
- package/templates/skills/orc-verify/examples/verify-mock.md +33 -33
- package/templates/skills/orc-wiki/references/extra.md +1 -1
|
@@ -1,142 +1,142 @@
|
|
|
1
|
-
# Build your own `/orc-challenge` cycle
|
|
2
|
-
|
|
3
|
-
This is the maintainer's guide to the lane. If you just want to use it, run
|
|
4
|
-
`/orc-challenge` and answer the seven intake questions.
|
|
5
|
-
|
|
6
|
-
## The one design decision everything else follows from
|
|
7
|
-
|
|
8
|
-
**The judge and the fixer must never share a context.**
|
|
9
|
-
|
|
10
|
-
Everything unusual about this lane is downstream of that one sentence:
|
|
11
|
-
|
|
12
|
-
- there is no in-session repair loop, because a session that wrote the fix would
|
|
13
|
-
grade its own homework
|
|
14
|
-
- the judge's dispatch slice is paths and ids only, because a summary of what
|
|
15
|
-
changed is written by the party with an interest in passing
|
|
16
|
-
- PASS is computed by the CLI, because a judge that CAN pass something can be
|
|
17
|
-
talked into passing something
|
|
18
|
-
- the stop is the deliverable, not an interruption
|
|
19
|
-
|
|
20
|
-
If you are tempted to add a `challenge_same_session` escape hatch: that config
|
|
21
|
-
key is how the premise dies. It is deliberately not there.
|
|
22
|
-
|
|
23
|
-
## The shape of one iteration
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
C2 lint (free) → C3 the council → C4 judge → C5 record (the CLI decides)
|
|
27
|
-
(parallel, <=3) ├── PASS → C7 final report
|
|
28
|
-
└── FAIL → C6 advise → C8 STOP
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
One iteration is C2 → C8. The user then fixes in a **different session** and
|
|
32
|
-
comes back, and the whole thing runs again with the carried findings.
|
|
33
|
-
|
|
34
|
-
## The eight agents, and why each is pinned where it is
|
|
35
|
-
|
|
36
|
-
| Agent | Effort | Why that effort |
|
|
37
|
-
|---|---|---|
|
|
38
|
-
| `orc-challenge-judge-opus-5-high` | high | D2 is the only dimension no computer can reach, and it is the expensive one |
|
|
39
|
-
| `orc-challenge-advisor-opus-5-med` | medium | grouping twelve findings into three causes is pattern work, not deep reasoning |
|
|
40
|
-
| `orc-challenge-reader-opus-5-low` | **low, on purpose** | a harder-thinking reader reasons AROUND the gaps D4 exists to find. A stronger configuration is a WORSE instrument |
|
|
41
|
-
| `orc-challenge-contrarian-opus-5-high` | high | a shallow contrarian returns the three surface complaints the free lint already caught |
|
|
42
|
-
| `orc-challenge-outsider-opus-5-low` | **low, on purpose** | a harder-thinking outsider reasons its way AROUND an unexplained acronym and reports the document is fine |
|
|
43
|
-
| `orc-challenge-executor-opus-5-med` | medium | pattern work against a concrete artifact — the same class as the advisor |
|
|
44
|
-
| `orc-challenge-principles-opus-5-high` | high | rebuilding a problem statement from the ground up is the deepest reasoning in the lane |
|
|
45
|
-
| `orc-challenge-expansionist-opus-5-med` | medium | pattern work again, pointed at upside instead of at defect |
|
|
46
|
-
|
|
47
|
-
All eight are `claude-opus-5`, so **`opus5_only` is a no-op for this lane** —
|
|
48
|
-
zero new agent pairs, no `LEGACY_KEYS` entry, no rename churn. The lane is
|
|
49
|
-
unaffected, not exempt.
|
|
50
|
-
|
|
51
|
-
**Effort here is a MEASUREMENT choice, not a cost choice.** That is why there is
|
|
52
|
-
no model or effort config key: a key that lets `outsider: low` be tuned is a key
|
|
53
|
-
that lets the instrument be broken.
|
|
54
|
-
|
|
55
|
-
## The council (v0.49.1)
|
|
56
|
-
|
|
57
|
-
Five of those eight are new, and the design is in `references/council.md`. Three
|
|
58
|
-
sentences carry it:
|
|
59
|
-
|
|
60
|
-
- **A lens raises; only the judge resolves.**
|
|
61
|
-
- **ORC proposes the council; the user picks it.** `--council` has no default and
|
|
62
|
-
`init` refuses by name — **a lane that picks its own council has broken this
|
|
63
|
-
contract.**
|
|
64
|
-
- **Two lenses never touch the pass gate.** The expansionist returns
|
|
65
|
-
`opportunity`, the first-principles thinker returns `premise`; neither has a
|
|
66
|
-
severity, and forcing either to have one would make it lie.
|
|
67
|
-
|
|
68
|
-
The gate that makes five extra reviewers safe is `council_coverage_pct`, derived
|
|
69
|
-
by `orc challenge record` from `iteration-NN/council/*.json` on disk — **not from
|
|
70
|
-
the judge's account of them.** The judge cannot shrink the set by omission.
|
|
71
|
-
|
|
72
|
-
They are pinned and dispatched BY NAME for one reason beyond the trace hook: **a
|
|
73
|
-
verdict must be attributable.** `/orc-retro` can then mine downgrade behaviour on
|
|
74
|
-
judging runs like any other lane.
|
|
75
|
-
|
|
76
|
-
## Adding a lens
|
|
77
|
-
|
|
78
|
-
1. `references/council.md` — the roster row, what it is for, how it fails, and
|
|
79
|
-
why its effort is what it is.
|
|
80
|
-
2. `bin/cli.js` — `CHALLENGE_LENSES` and `CHALLENGE_LENS_META`. Pick a prefix
|
|
81
|
-
nothing else uses; prefixes are the raiser's signature and `record` gates on
|
|
82
|
-
them.
|
|
83
|
-
3. The agent file, named in `bin/verify-package.js`, with a `MODEL-MAPPING.md`
|
|
84
|
-
row that states the reason for the effort.
|
|
85
|
-
4. A golden test comparing 1 and 2. The roster is documented drift the token
|
|
86
|
-
lint cannot see, because it is a list, not a token.
|
|
87
|
-
|
|
88
|
-
Decide its CLASS first. If it cannot honestly carry a `serves`, it is not a
|
|
89
|
-
finding lens and it must never enter `findings[]`.
|
|
90
|
-
|
|
91
|
-
## Adding a dimension
|
|
92
|
-
|
|
93
|
-
1. `references/dimensions.md` — the definition, the evidence a finding must
|
|
94
|
-
carry, and which agent produces it.
|
|
95
|
-
2. `bin/cli.js` — `CHALLENGE_DIMS` and the `--dimensions` validator.
|
|
96
|
-
3. `references/kinds.md` — whether any kind selects it by default.
|
|
97
|
-
4. A golden test comparing 1 and 2. The enum is documented drift the token lint
|
|
98
|
-
cannot see, because it is a list, not a token.
|
|
99
|
-
|
|
100
|
-
## Adding a lint check
|
|
101
|
-
|
|
102
|
-
1. `bin/cli.js` — the check itself, in `challengeLint`. Emit `L-###` with a
|
|
103
|
-
dimension and a line number.
|
|
104
|
-
2. `references/plain-english.md` — the row in the table, and the word list if it
|
|
105
|
-
has one.
|
|
106
|
-
3. A fixture in `test/`.
|
|
107
|
-
|
|
108
|
-
Keep both honesty rules intact: it is a signal, not a verdict, and it is
|
|
109
|
-
heuristic. A lint that starts blocking is a lint that starts being argued with.
|
|
110
|
-
|
|
111
|
-
## Adding an artifact kind
|
|
112
|
-
|
|
113
|
-
`references/kinds.md` and `CHALLENGE_KINDS` in `bin/cli.js`. A kind is a
|
|
114
|
-
PROPOSAL of a dimension set and a template hint — never a silent application of
|
|
115
|
-
one.
|
|
116
|
-
|
|
117
|
-
## What this lane must never grow
|
|
118
|
-
|
|
119
|
-
- **an in-session fix.** See above.
|
|
120
|
-
- **a hard loop cap.** Each turn is a separate human sitting down to work.
|
|
121
|
-
`stalled` measures instead, and offers three real options.
|
|
122
|
-
- **a model or effort config key.** That is the pinned agents' job, and the
|
|
123
|
-
efforts are measurements.
|
|
124
|
-
- **a `challenge_council` config key.** A global default roster would silently
|
|
125
|
-
answer the one question the council exists to ask.
|
|
126
|
-
- **a `block` mode on any council output.** Opportunities and premises never
|
|
127
|
-
gate; the finding lenses gate through the EXISTING severity bar and nothing
|
|
128
|
-
else.
|
|
129
|
-
- **auto-severity from corroboration.** Two lenses agreeing is a signal, and
|
|
130
|
-
churn is a signal, not a verdict.
|
|
131
|
-
- **a `block` mode on `challenge_gate`.** The `/orc-pact` precedent: the payoff
|
|
132
|
-
is knowing, not gating.
|
|
133
|
-
- **a second definition of "a plan", "a state", or "fresh".** If a state exists,
|
|
134
|
-
the CLI computes it and everything else renders it.
|
|
135
|
-
|
|
136
|
-
## Reading order for a new maintainer
|
|
137
|
-
|
|
138
|
-
`../_shared/phases/intake.md` (it defines what every later file grades against) →
|
|
139
|
-
`council.md` → `sealed-slice.md` → `rubric.md` → `conservation.md` →
|
|
140
|
-
`cycle-state.md` → `fix-brief.md`. Then `examples/tsd-two-iterations.md` for the
|
|
141
|
-
whole thing end to end, and `examples/council-full-roster.md` for a run where
|
|
142
|
-
the first-principles thinker lands a premise challenge and the goal moves.
|
|
1
|
+
# Build your own `/orc-challenge` cycle
|
|
2
|
+
|
|
3
|
+
This is the maintainer's guide to the lane. If you just want to use it, run
|
|
4
|
+
`/orc-challenge` and answer the seven intake questions.
|
|
5
|
+
|
|
6
|
+
## The one design decision everything else follows from
|
|
7
|
+
|
|
8
|
+
**The judge and the fixer must never share a context.**
|
|
9
|
+
|
|
10
|
+
Everything unusual about this lane is downstream of that one sentence:
|
|
11
|
+
|
|
12
|
+
- there is no in-session repair loop, because a session that wrote the fix would
|
|
13
|
+
grade its own homework
|
|
14
|
+
- the judge's dispatch slice is paths and ids only, because a summary of what
|
|
15
|
+
changed is written by the party with an interest in passing
|
|
16
|
+
- PASS is computed by the CLI, because a judge that CAN pass something can be
|
|
17
|
+
talked into passing something
|
|
18
|
+
- the stop is the deliverable, not an interruption
|
|
19
|
+
|
|
20
|
+
If you are tempted to add a `challenge_same_session` escape hatch: that config
|
|
21
|
+
key is how the premise dies. It is deliberately not there.
|
|
22
|
+
|
|
23
|
+
## The shape of one iteration
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
C2 lint (free) → C3 the council → C4 judge → C5 record (the CLI decides)
|
|
27
|
+
(parallel, <=3) ├── PASS → C7 final report
|
|
28
|
+
└── FAIL → C6 advise → C8 STOP
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
One iteration is C2 → C8. The user then fixes in a **different session** and
|
|
32
|
+
comes back, and the whole thing runs again with the carried findings.
|
|
33
|
+
|
|
34
|
+
## The eight agents, and why each is pinned where it is
|
|
35
|
+
|
|
36
|
+
| Agent | Effort | Why that effort |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| `orc-challenge-judge-opus-5-high` | high | D2 is the only dimension no computer can reach, and it is the expensive one |
|
|
39
|
+
| `orc-challenge-advisor-opus-5-med` | medium | grouping twelve findings into three causes is pattern work, not deep reasoning |
|
|
40
|
+
| `orc-challenge-reader-opus-5-low` | **low, on purpose** | a harder-thinking reader reasons AROUND the gaps D4 exists to find. A stronger configuration is a WORSE instrument |
|
|
41
|
+
| `orc-challenge-contrarian-opus-5-high` | high | a shallow contrarian returns the three surface complaints the free lint already caught |
|
|
42
|
+
| `orc-challenge-outsider-opus-5-low` | **low, on purpose** | a harder-thinking outsider reasons its way AROUND an unexplained acronym and reports the document is fine |
|
|
43
|
+
| `orc-challenge-executor-opus-5-med` | medium | pattern work against a concrete artifact — the same class as the advisor |
|
|
44
|
+
| `orc-challenge-principles-opus-5-high` | high | rebuilding a problem statement from the ground up is the deepest reasoning in the lane |
|
|
45
|
+
| `orc-challenge-expansionist-opus-5-med` | medium | pattern work again, pointed at upside instead of at defect |
|
|
46
|
+
|
|
47
|
+
All eight are `claude-opus-5-5`, so **`opus5_only` is a no-op for this lane** —
|
|
48
|
+
zero new agent pairs, no `LEGACY_KEYS` entry, no rename churn. The lane is
|
|
49
|
+
unaffected, not exempt.
|
|
50
|
+
|
|
51
|
+
**Effort here is a MEASUREMENT choice, not a cost choice.** That is why there is
|
|
52
|
+
no model or effort config key: a key that lets `outsider: low` be tuned is a key
|
|
53
|
+
that lets the instrument be broken.
|
|
54
|
+
|
|
55
|
+
## The council (v0.49.1)
|
|
56
|
+
|
|
57
|
+
Five of those eight are new, and the design is in `references/council.md`. Three
|
|
58
|
+
sentences carry it:
|
|
59
|
+
|
|
60
|
+
- **A lens raises; only the judge resolves.**
|
|
61
|
+
- **ORC proposes the council; the user picks it.** `--council` has no default and
|
|
62
|
+
`init` refuses by name — **a lane that picks its own council has broken this
|
|
63
|
+
contract.**
|
|
64
|
+
- **Two lenses never touch the pass gate.** The expansionist returns
|
|
65
|
+
`opportunity`, the first-principles thinker returns `premise`; neither has a
|
|
66
|
+
severity, and forcing either to have one would make it lie.
|
|
67
|
+
|
|
68
|
+
The gate that makes five extra reviewers safe is `council_coverage_pct`, derived
|
|
69
|
+
by `orc challenge record` from `iteration-NN/council/*.json` on disk — **not from
|
|
70
|
+
the judge's account of them.** The judge cannot shrink the set by omission.
|
|
71
|
+
|
|
72
|
+
They are pinned and dispatched BY NAME for one reason beyond the trace hook: **a
|
|
73
|
+
verdict must be attributable.** `/orc-retro` can then mine downgrade behaviour on
|
|
74
|
+
judging runs like any other lane.
|
|
75
|
+
|
|
76
|
+
## Adding a lens
|
|
77
|
+
|
|
78
|
+
1. `references/council.md` — the roster row, what it is for, how it fails, and
|
|
79
|
+
why its effort is what it is.
|
|
80
|
+
2. `bin/cli.js` — `CHALLENGE_LENSES` and `CHALLENGE_LENS_META`. Pick a prefix
|
|
81
|
+
nothing else uses; prefixes are the raiser's signature and `record` gates on
|
|
82
|
+
them.
|
|
83
|
+
3. The agent file, named in `bin/verify-package.js`, with a `MODEL-MAPPING.md`
|
|
84
|
+
row that states the reason for the effort.
|
|
85
|
+
4. A golden test comparing 1 and 2. The roster is documented drift the token
|
|
86
|
+
lint cannot see, because it is a list, not a token.
|
|
87
|
+
|
|
88
|
+
Decide its CLASS first. If it cannot honestly carry a `serves`, it is not a
|
|
89
|
+
finding lens and it must never enter `findings[]`.
|
|
90
|
+
|
|
91
|
+
## Adding a dimension
|
|
92
|
+
|
|
93
|
+
1. `references/dimensions.md` — the definition, the evidence a finding must
|
|
94
|
+
carry, and which agent produces it.
|
|
95
|
+
2. `bin/cli.js` — `CHALLENGE_DIMS` and the `--dimensions` validator.
|
|
96
|
+
3. `references/kinds.md` — whether any kind selects it by default.
|
|
97
|
+
4. A golden test comparing 1 and 2. The enum is documented drift the token lint
|
|
98
|
+
cannot see, because it is a list, not a token.
|
|
99
|
+
|
|
100
|
+
## Adding a lint check
|
|
101
|
+
|
|
102
|
+
1. `bin/cli.js` — the check itself, in `challengeLint`. Emit `L-###` with a
|
|
103
|
+
dimension and a line number.
|
|
104
|
+
2. `references/plain-english.md` — the row in the table, and the word list if it
|
|
105
|
+
has one.
|
|
106
|
+
3. A fixture in `test/`.
|
|
107
|
+
|
|
108
|
+
Keep both honesty rules intact: it is a signal, not a verdict, and it is
|
|
109
|
+
heuristic. A lint that starts blocking is a lint that starts being argued with.
|
|
110
|
+
|
|
111
|
+
## Adding an artifact kind
|
|
112
|
+
|
|
113
|
+
`references/kinds.md` and `CHALLENGE_KINDS` in `bin/cli.js`. A kind is a
|
|
114
|
+
PROPOSAL of a dimension set and a template hint — never a silent application of
|
|
115
|
+
one.
|
|
116
|
+
|
|
117
|
+
## What this lane must never grow
|
|
118
|
+
|
|
119
|
+
- **an in-session fix.** See above.
|
|
120
|
+
- **a hard loop cap.** Each turn is a separate human sitting down to work.
|
|
121
|
+
`stalled` measures instead, and offers three real options.
|
|
122
|
+
- **a model or effort config key.** That is the pinned agents' job, and the
|
|
123
|
+
efforts are measurements.
|
|
124
|
+
- **a `challenge_council` config key.** A global default roster would silently
|
|
125
|
+
answer the one question the council exists to ask.
|
|
126
|
+
- **a `block` mode on any council output.** Opportunities and premises never
|
|
127
|
+
gate; the finding lenses gate through the EXISTING severity bar and nothing
|
|
128
|
+
else.
|
|
129
|
+
- **auto-severity from corroboration.** Two lenses agreeing is a signal, and
|
|
130
|
+
churn is a signal, not a verdict.
|
|
131
|
+
- **a `block` mode on `challenge_gate`.** The `/orc-pact` precedent: the payoff
|
|
132
|
+
is knowing, not gating.
|
|
133
|
+
- **a second definition of "a plan", "a state", or "fresh".** If a state exists,
|
|
134
|
+
the CLI computes it and everything else renders it.
|
|
135
|
+
|
|
136
|
+
## Reading order for a new maintainer
|
|
137
|
+
|
|
138
|
+
`../_shared/phases/intake.md` (it defines what every later file grades against) →
|
|
139
|
+
`council.md` → `sealed-slice.md` → `rubric.md` → `conservation.md` →
|
|
140
|
+
`cycle-state.md` → `fix-brief.md`. Then `examples/tsd-two-iterations.md` for the
|
|
141
|
+
whole thing end to end, and `examples/council-full-roster.md` for a run where
|
|
142
|
+
the first-principles thinker lands a premise challenge and the goal moves.
|