voidmachine 7.0.1 → 7.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/core-assets/.claude-plugin/plugin.json +2 -2
- package/core-assets/codex/hooks.json +1 -1
- package/core-assets/data/catalog.v3.json +6 -6
- package/core-assets/data/certification.json +1 -1
- package/core-assets/data/model.json +5 -5
- package/core-assets/hooks/_void-hook.mjs +366 -107
- package/core-assets/skills/void-autopilot/SKILL.md +4 -1
- package/core-assets/skills/void-merge/SKILL.md +22 -15
- package/core-assets/skills/void-verify/references/ci-feedback.md +45 -6
- package/dist/main.js +735 -599
- package/package.json +2 -2
|
@@ -339,7 +339,10 @@ its proofs and returns its commit for coordinator publication; `semantic` -- two
|
|
|
339
339
|
sends the ticket to a human. A worker never picks a side of a semantic conflict to keep the loop
|
|
340
340
|
moving.
|
|
341
341
|
|
|
342
|
-
**Serial fallback.**
|
|
342
|
+
**Serial fallback.** This path requires no queue service or paid plan.
|
|
343
|
+
For CI optimization, use [void-verify CI feedback](../void-verify/references/ci-feedback.md);
|
|
344
|
+
add neither a second scheduler nor a mandatory duration gate.
|
|
345
|
+
Without a merge queue, merges run one at a time: the oldest ready pull request
|
|
343
346
|
(or the one already merging) holds the turn. The kernel reads whether the base moved past its head
|
|
344
347
|
itself, since GitHub reports it only under a protection that requires it: a head behind gets
|
|
345
348
|
`update-branch`, its new head is reviewed again, then merged, then the next. `merge` reads it once
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: void-merge
|
|
3
|
-
description: Vider la file des PR ouvertes sans casser le dépôt.
|
|
3
|
+
description: Vider la file des PR ouvertes sans casser le dépôt. Fusions séquentielles, ordre stable et dépendances explicites, CI verte ET à jour, artefacts générés régénérés, conflits de contenu rendus à leur auteur. Use when merging pull requests.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# merge — voidcorp craftsman edition
|
|
7
7
|
|
|
8
8
|
`void-implement` s'arrête à la PR ouverte. `void-autopilot` laisse à une personne les PR qu'il ne peut
|
|
9
|
-
pas
|
|
9
|
+
pas fusionner dans son mandat. Personne ne dit comment vider la file. Ce geste a l'air trivial jusqu'au moment où il ne l'est pas.
|
|
10
10
|
|
|
11
11
|
**Attribution**: see `.source`.
|
|
12
12
|
|
|
@@ -36,19 +36,26 @@ Sortent de la file, sans discussion :
|
|
|
36
36
|
|
|
37
37
|
Une file vide est un résultat, pas un échec : le dire et s'arrêter.
|
|
38
38
|
|
|
39
|
-
## Étape 2 —
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
2.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
39
|
+
## Étape 2 — Garder un ordre stable, identifier les dépendances
|
|
40
|
+
|
|
41
|
+
Une seule fusion à la fois suffit, sans service de file ni abonnement particulier.
|
|
42
|
+
Une file native déjà configurée reste compatible ; ses protections restent applicables.
|
|
43
|
+
|
|
44
|
+
1. **Conserver le tour engagé.** Dans `void-autopilot`, le noyau choisit : une PR dont la
|
|
45
|
+
fusion est déjà armée garde son tour ; sinon, la plus ancienne PR ouverte non brouillon
|
|
46
|
+
parmi les tickets suivis passe d'abord. Utiliser ses actions, pas un script de fusion parallèle.
|
|
47
|
+
2. **Hors autopilot, garder l'ordre des PR admissibles.** À défaut d'ordre explicite, partir
|
|
48
|
+
de la plus ancienne. Une PR dont la revue est acquise et dont seule la CI attendue tourne
|
|
49
|
+
conserve son tour ; une PR plus récente ne la dépasse pas simplement parce qu'elle est verte.
|
|
50
|
+
3. **Un déblocage réel se traite explicitement.** Nommer la dépendance, le conflit ou le
|
|
51
|
+
blocage durable et son propriétaire. Hors autopilot, une PR préalable peut passer d'abord
|
|
52
|
+
avec cette raison. Sous autopilot, rendre ce blocage au coordinateur : ne pas contourner
|
|
53
|
+
le tour choisi par le noyau. Une PR rouge ou en conflit ne justifie pas une attente indéfinie.
|
|
54
|
+
|
|
55
|
+
Remettre à jour seulement la PR dont le tour arrive, puis attendre ses preuves avant de
|
|
56
|
+
fusionner. Ne pas remettre toutes les branches à jour après chaque fusion : la suivante
|
|
57
|
+
ferait immédiatement vieillir ce travail. Le temps déjà dépensé ne rend jamais valide
|
|
58
|
+
une preuve liée à un ancien commit ou à une ancienne base.
|
|
52
59
|
|
|
53
60
|
## Étape 3 — Trois conditions pour merger, toutes nécessaires
|
|
54
61
|
|
|
@@ -40,15 +40,16 @@ concurrency keys: `cancel-in-progress: false` alone still replaces pending runs
|
|
|
40
40
|
shared group. Keep integration checks before entry to the protected branch; checking
|
|
41
41
|
only after merge permits broken integration.
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
Where a repository already uses a merge queue, preserve both its required PR and
|
|
44
|
+
merge-group checks. A queue is optional; sequential merging needs no queue setup.
|
|
45
|
+
Remove a redundant post-merge run only after checking that no release, promotion or artifact consumer
|
|
45
46
|
needs it, and that the protected integration path proves the merged result. The
|
|
46
47
|
example has no push trigger; add one where it provides distinct release evidence.
|
|
47
48
|
|
|
48
|
-
For reusable enforcement, the caller must also declare `ready_for_review
|
|
49
|
-
`converted_to_draft
|
|
50
|
-
|
|
51
|
-
`github.workflow` and must not cancel the same group. Its admission guard runs
|
|
49
|
+
For reusable enforcement, the caller must also declare `ready_for_review` and
|
|
50
|
+
`converted_to_draft`, keeping its existing check names. Preserve
|
|
51
|
+
`merge_group: checks_requested` where a queue is configured. Put concurrency only
|
|
52
|
+
in that caller; the called workflow inherits `github.workflow` and must not cancel the same group. Its admission guard runs
|
|
52
53
|
from the immutable harness checkout before Node setup and floor execution.
|
|
53
54
|
GitHub-hosted runner usage belongs to the caller, even when the reusable workflow
|
|
54
55
|
is public and the caller private. Compare latency and job-minutes before making
|
|
@@ -71,6 +72,41 @@ Rollback: restore the prior workflow triggers and admission step together. Resto
|
|
|
71
72
|
full draft CI costs runner time but does not weaken the floor. Leave protection and
|
|
72
73
|
review evidence unchanged. Existing missions and receipts are not migrated.
|
|
73
74
|
|
|
75
|
+
## Measure feedback before changing CI
|
|
76
|
+
|
|
77
|
+
On a CI optimization request, use existing run history to agree a project-specific
|
|
78
|
+
feedback target, separately for ordinary changes and documentation changes. Around ten
|
|
79
|
+
minutes for a complete PR and a few minutes for documentation can start the discussion;
|
|
80
|
+
they are advisory targets, not timeouts, required checks or permission to omit tests.
|
|
81
|
+
Report the sample size, median and p95 when the sample supports it. A missed target
|
|
82
|
+
calls for diagnosis of the critical path, not a retry or another reporting service.
|
|
83
|
+
|
|
84
|
+
Record separately: time waiting for execution, elapsed time until all required results
|
|
85
|
+
are available, and summed job execution minutes across parallel jobs and all attempts.
|
|
86
|
+
Include cancelled work and runs invalidated by branch updates. A later PR overtaking an
|
|
87
|
+
older one only wastes CI when that change actually invalidates work; do not assume a
|
|
88
|
+
saving from ordering alone. Use provider billing data for money: job-minutes are not
|
|
89
|
+
billed minutes. Missing runner-wait timestamps mean unknown, not zero; dependency waits
|
|
90
|
+
are not automatically runner waits. A run update timestamp is not its completion time.
|
|
91
|
+
|
|
92
|
+
For GitHub, inspect a concrete run and repeat for earlier attempts when present:
|
|
93
|
+
|
|
94
|
+
```sh
|
|
95
|
+
gh run view RUN_ID --repo OWNER/REPO --attempt ATTEMPT --json attempt,event,headSha,createdAt,startedAt,jobs
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Job start/completion times describe execution intervals; inspect the workflow dependencies
|
|
99
|
+
and every required workflow before deriving the feedback delay. Another CI provider's
|
|
100
|
+
native run/job view supplies the same evidence; this is no GitHub prerequisite.
|
|
101
|
+
|
|
102
|
+
Investigate a full build/test cache miss on a documentation-only diff by tracing actual
|
|
103
|
+
inputs and cache keys. Markdown may feed generated assets, executable skills or contract
|
|
104
|
+
tests; the extension alone proves nothing. Optimize unaffected work only when dependencies
|
|
105
|
+
are proven; otherwise keep the complete suite above. Preserve exact-candidate checks,
|
|
106
|
+
release artifacts and integration evidence. Reuse local evidence with unchanged inputs
|
|
107
|
+
instead of asking every agent to repeat the same full suite. Adopt workflow changes in
|
|
108
|
+
the consumer's existing configuration; updating these references does not rewrite it.
|
|
109
|
+
|
|
74
110
|
Sources read for GitHub Actions (hosted service):
|
|
75
111
|
- https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request
|
|
76
112
|
- https://docs.github.com/en/actions/how-tos/write-workflows/choose-when-workflows-run/control-workflow-concurrency
|
|
@@ -78,3 +114,6 @@ Sources read for GitHub Actions (hosted service):
|
|
|
78
114
|
- https://docs.github.com/en/actions/how-tos/write-workflows/choose-when-workflows-run/control-jobs-with-conditions
|
|
79
115
|
|
|
80
116
|
- https://docs.github.com/en/actions/reference/workflows-and-actions/reusing-workflow-configurations
|
|
117
|
+
|
|
118
|
+
- https://cli.github.com/manual/gh_run_view
|
|
119
|
+
- https://docs.github.com/en/rest/actions/workflow-jobs
|