You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENTS.md
+62-1Lines changed: 62 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ This file is the single source of truth for agents entering this repository. Rea
8
8
- Contribution and environment: `CONTRIBUTING.md`, `docs/i18n/CONTRIBUTING.zh-CN.md`.
9
9
- Architecture and protocols: `docs/architecture.md`, `docs/skills-protocol.md`, `docs/agent-adapters.md`, `docs/modes.md`.
10
10
- Historical product baseline: `docs/spec.md`, `docs/roadmap.md` (both explicitly archived; do not treat their dated decisions as current behavior).
11
-
- References and current plans: `docs/references.md`, `docs/code-review-guidelines.md`, `specs/current/maintainability-roadmap.md`, `specs/current/ci.md` (CI scope confidence methodology — required before changing confidenceor guard fields in `scripts/scopes.ts`).
11
+
- References and current plans: `docs/references.md`, `docs/code-review-guidelines.md`, `specs/current/maintainability-roadmap.md`, `specs/current/ci.md` (CI scope confidence methodology — required before changing planner confidence, routing, or omission policy in `.github/config/scopes.json` and `.github/scripts/scopes.py`).
Do not add a new business-named follow-on workflow such as `foo.comment.atom.yml` or `bar.autofix.atom.yml` without first trying to express the flow as a `ci.yml` producer plus the existing `comment`, `autofix`, or `report` capability. Keep artifact naming, storage layout, and parser behavior centralized in `.github/scripts/handoff.py`; do not let individual workflows invent parallel handoff conventions.
153
153
154
+
## CI test-set orchestration guidance
155
+
156
+
Use the following as a recommended convergence model, not a repository-wide
157
+
conformance gate. Existing workflows and coarse test lanes may remain while
158
+
their boundaries are understood. Do not block an unrelated change or require it
159
+
to repay adjacent orchestration debt solely because it touches an existing
160
+
lane. Apply these recommendations incrementally when the local scope and
161
+
measured scheduling benefit justify the migration.
162
+
163
+
Prefer one selection direction: changed paths → source units → test sets →
164
+
execution workloads. Because the `plan` job runs before and governs downstream
165
+
jobs, new omission policy should live in the planner rather than rely on a
166
+
downstream guard to justify it after scheduling has already occurred.
167
+
168
+
When a CI area is being reorganized, prefer three named responsibilities:
169
+
170
+
-**Source units** name stable ownership or behavior boundaries in production,
171
+
test, fixture, and control-plane paths. Prefer composing repeated selectors
172
+
under a named unit instead of copying prefixes into unrelated rules.
173
+
-**Test sets** name independently useful semantic validation groups. Their
174
+
membership and execution contract should converge on one authoritative
175
+
declaration instead of accumulating more matrix or file-list copies across
176
+
planner configuration, workflow YAML, and framework-local registries.
177
+
-**Routes** map source units to the test sets required to validate them. Routes
178
+
should express impact rather than runner mechanics; runner image, setup,
179
+
sharding, and job packing can remain execution concerns derived after
180
+
selection.
181
+
182
+
Good split candidates have a stable boundary, change work that can actually be
183
+
omitted, and carry enough runtime cost or diagnostic value to justify another
184
+
scheduling identity. Directory size, file count, or the ability to write a
185
+
narrower glob is weak evidence on its own. Prefer a small number of composable
186
+
semantic units over per-file mappings, exception lists, or negative-rule
187
+
forests. Treat existing duplicated or implicit declarations as migration
188
+
surfaces without requiring every nearby change to remove them.
189
+
190
+
Before promoting a new route from observation to active omission, retain
191
+
conservative behavior such as:
192
+
193
+
- unknown, mixed, unresolved, invalid, or below-threshold input selects the
194
+
conservative full plan;
195
+
- editing a test, fixture, or suite manifest selects the test set that consumes
196
+
it; shared harness, contract, setup, or lockfile changes fan out to every
197
+
affected set;
198
+
- making a selected test-set identifier that the executor cannot run fail
199
+
visibly instead of being ignored;
200
+
- direct planner tests cover representative in-bound, out-of-bound, mixed, and
201
+
fallback inputs without reimplementing the evaluator in another language.
202
+
203
+
Keep scope routing and hash invalidation conceptually orthogonal: scope answers
204
+
which test sets are necessary for a change, while hash answers whether the
205
+
selected workload's declared inputs equal a previous invocation. New designs
206
+
should not use hash equality to weaken source-to-test coverage or copy route
207
+
policy into `.github/config/hash.json`.
208
+
209
+
For work whose purpose is CI orchestration, start by inventorying the current
210
+
chain from changed path to match, effect, workload, job command, and concrete
211
+
test cases. Prefer naming or removing implicit joins before making them finer.
212
+
Changes under `.github/` must also follow `.github/AGENTS.md` and the current
213
+
confidence methodology in `specs/current/ci.md`.
214
+
154
215
## Release channel model
155
216
156
217
-`beta` is the daily R&D/development validation channel. It is optimized for fast development feedback and is not part of the stable promotion gate.
0 commit comments