devrites 7.0.0 → 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/CHANGELOG.md +16 -0
- package/README.md +1 -1
- package/docs/command-map.md +1 -1
- package/docs/usage.md +7 -2
- package/engine/internal/gate/gate.go +7 -0
- package/engine/internal/gate/predecessor.go +67 -0
- package/engine/internal/lib/claims.go +57 -7
- package/engine/internal/lib/resolve.go +11 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +14 -0
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +7 -3
- package/pack/.claude/skills/rite-autocomplete/reference/lookahead.md +50 -0
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +7 -0
- package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +4 -0
- package/pack/.claude/skills/rite-spec/SKILL.md +2 -1
- package/pack/.claude/skills/rite-vet/SKILL.md +3 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +14 -0
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +7 -3
- package/pack/generated/claude/skills/rite-autocomplete/reference/lookahead.md +50 -0
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +7 -0
- package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +4 -0
- package/pack/generated/claude/skills/rite-spec/SKILL.md +2 -1
- package/pack/generated/claude/skills/rite-vet/SKILL.md +3 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +14 -0
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-autocomplete/reference/lookahead.md +50 -0
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +7 -0
- package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +4 -0
- package/pack/generated/codex/skills/rite-spec/SKILL.md +2 -1
- package/pack/generated/codex/skills/rite-vet/SKILL.md +3 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/performance.md +14 -0
- package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +7 -3
- package/pack/generated/devin/skills/rite-autocomplete/reference/lookahead.md +50 -0
- package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +7 -0
- package/pack/generated/devin/skills/rite-build/reference/spec-drift-guard.md +4 -0
- package/pack/generated/devin/skills/rite-spec/SKILL.md +2 -1
- package/pack/generated/devin/skills/rite-vet/SKILL.md +3 -1
- package/pack/generated/omp/commands/rite-autocomplete.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/performance.md +14 -0
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +7 -3
- package/pack/generated/omp/skills/rite-autocomplete/reference/lookahead.md +50 -0
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +7 -0
- package/pack/generated/omp/skills/rite-build/reference/spec-drift-guard.md +4 -0
- package/pack/generated/omp/skills/rite-spec/SKILL.md +2 -1
- package/pack/generated/omp/skills/rite-vet/SKILL.md +3 -1
- package/pack/generated/pi/prompts/rite-autocomplete.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/performance.md +14 -0
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +7 -3
- package/pack/generated/pi/skills/rite-autocomplete/reference/lookahead.md +50 -0
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +7 -0
- package/pack/generated/pi/skills/rite-build/reference/spec-drift-guard.md +4 -0
- package/pack/generated/pi/skills/rite-spec/SKILL.md +2 -1
- package/pack/generated/pi/skills/rite-vet/SKILL.md +3 -1
- package/package.json +1 -1
|
@@ -124,7 +124,8 @@ load a routed standard to discover required behavior, not to prescribe implement
|
|
|
124
124
|
owned prerequisites. Keep a build checkpoint only for unavailable pre-code evidence or a
|
|
125
125
|
mandatory action-time approval. **Completion:** no foreseeable human choice is deferred.
|
|
126
126
|
5. **Create or update the workspace** + set `.devrites/ACTIVE` from
|
|
127
|
-
[state-workspace](reference/state-workspace.md)
|
|
127
|
+
[state-workspace](reference/state-workspace.md); a `--lookahead` run
|
|
128
|
+
leaves `.devrites/ACTIVE` unchanged. If the slug already exists,
|
|
128
129
|
update the existing workspace rather than overwrite it; preserve history and
|
|
129
130
|
unrelated settled content. Write every required artifact and conditional
|
|
130
131
|
annex exactly from [spec-template](reference/spec-template.md)
|
|
@@ -211,7 +211,9 @@ plan declares a root-authored executable workflow file, read
|
|
|
211
211
|
`marker sweep:` line is recorded in `eng-review.md`; a kept hit blocks READY. Write phase/next step and emit one
|
|
212
212
|
`Readiness inputs SHA-256` with
|
|
213
213
|
`devrites-engine check readiness --emit-binding <slug>`; normal readiness check
|
|
214
|
-
must pass.
|
|
214
|
+
must pass. A `sequence_lookahead: yes` workspace also records one
|
|
215
|
+
`Predecessor readiness: <predecessor> <digest>` line from the predecessor's
|
|
216
|
+
`--emit-binding` hex; readiness re-checks it. Record the per-input drift baseline alongside it:
|
|
215
217
|
`devrites-engine check drift <slug> --record` — a later stale binding then
|
|
216
218
|
names the exact artifact that moved instead of "something changed". An `ADVISORY
|
|
217
219
|
proportion:` line names a slice whose proof outgrew its ACs: move its rows without a
|
|
@@ -28,6 +28,20 @@ Measure first. An optimization without a measurement is a guess that adds comple
|
|
|
28
28
|
flaking wall-clock test is a flaky test, [`testing.md`](testing.md)). Budget regression:
|
|
29
29
|
re-measure; fix to budget or record the accepted regression with reason and owner.
|
|
30
30
|
|
|
31
|
+
## Performance gate protocol
|
|
32
|
+
- A gate that judges a timing budget or a regression percentage pins its protocol
|
|
33
|
+
before Build: the environment (isolated cores, swap state, build flags such as
|
|
34
|
+
`CGO_ENABLED`), the repetitions and the aggregate (a median of at least five runs,
|
|
35
|
+
never one sample), and a noise floor measured as an A/A spread on that same
|
|
36
|
+
environment. Vet blocks READY on a timing gate without one. A threshold at or
|
|
37
|
+
below the noise floor is a plan defect for the owner, never a Build repair.
|
|
38
|
+
- A timing gate that fails while no code changed (an A/A run, a rerun) is noise or
|
|
39
|
+
host state, not a code defect. Stop wright rounds on it and fix the protocol or the
|
|
40
|
+
environment first.
|
|
41
|
+
- **Failing case:** a 10% p99 regression gate runs one sample per run on a shared host;
|
|
42
|
+
26 wright rounds repair code against noise until the owner reserves cores and asks
|
|
43
|
+
for a median of five.
|
|
44
|
+
|
|
31
45
|
## Frontend: Core Web Vitals
|
|
32
46
|
For UI work, measure-first means LCP / INP / CLS judged against real numbers, each labeled
|
|
33
47
|
by source (`Field (CrUX)`, `Lab (Lighthouse)`, `Trace (DevTools)`): field and lab are not
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite-autocomplete
|
|
3
3
|
description: Run the full DevRites lifecycle unattended; --ship continues to the final Git approval boundary. Use for one-shot autonomous work; not for a single phase.
|
|
4
|
-
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model]"
|
|
4
|
+
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model] [--lookahead]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/one-shot-actions.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","rite-autocomplete/reference/decision-policy.md","rite-autocomplete/reference/loop.md","rite-autocomplete/reference/stop-conditions.md"],"triggers":{"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","questions.md","decisions.md","drift.md","evidence.md","test-plan.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/workflow-artifacts.md"]} -->
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/one-shot-actions.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","rite-autocomplete/reference/decision-policy.md","rite-autocomplete/reference/loop.md","rite-autocomplete/reference/stop-conditions.md"],"triggers":{"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"lookahead":["rite-autocomplete/reference/lookahead.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","questions.md","decisions.md","drift.md","evidence.md","test-plan.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/workflow-artifacts.md","rite-autocomplete/reference/lookahead.md"]} -->
|
|
9
9
|
> Read-set manifest: `devrites-engine context --skills-root .agents/skills <slug> --phase autocomplete` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
10
|
|
|
11
11
|
|
|
@@ -69,7 +69,7 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
69
69
|
not a stop either: follow it in your next tool call, never in a text-only
|
|
70
70
|
acknowledgement.
|
|
71
71
|
- Parse flags only from this invocation. `--ship`, `--yolo`, `--max-slices`,
|
|
72
|
-
`--parallel`, `--full`,
|
|
72
|
+
`--parallel`, `--full`, `--cross-model`, and `--lookahead` activate only as exact standalone
|
|
73
73
|
tokens in `$ARGUMENTS`; examples or earlier messages can never arm them.
|
|
74
74
|
`--max-slices` must occur once and be followed by a positive base-10 integer;
|
|
75
75
|
`--parallel` must occur once and be followed by a base-10 integer in `1`–`10`.
|
|
@@ -82,6 +82,10 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
82
82
|
|
|
83
83
|
## Workflow
|
|
84
84
|
|
|
85
|
+
With `--lookahead` (trigger `lookahead`), follow
|
|
86
|
+
[`lookahead.md`](reference/lookahead.md) instead of the steps below: plan the
|
|
87
|
+
next sequence continuation through Vet in a second session, then stop.
|
|
88
|
+
|
|
85
89
|
1. **Orient and parse.** Resolve the explicit or active slug; when a workspace exists,
|
|
86
90
|
require its `state.md` and read its cursor; a fresh idea starts empty at step 2.
|
|
87
91
|
Before honoring `blocked` with terminal `next_action`,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Sequence lookahead (`--lookahead`)
|
|
2
|
+
|
|
3
|
+
> Root-only: not inlined in --role bundles.
|
|
4
|
+
|
|
5
|
+
A second session plans the next sequence continuation while the active
|
|
6
|
+
workspace builds, so the child's Spec → Vet overlaps its predecessor's
|
|
7
|
+
Build → Seal. The main loop later resumes the planned child instead of
|
|
8
|
+
specifying it again.
|
|
9
|
+
|
|
10
|
+
## Start and target
|
|
11
|
+
|
|
12
|
+
The operator starts the second host session with `$rite-autocomplete
|
|
13
|
+
--lookahead` once the `.devrites/ACTIVE` workspace is in Build or later. The
|
|
14
|
+
agent never launches a session itself. The target is the next recorded
|
|
15
|
+
continuation after the active workspace: the entry
|
|
16
|
+
[sequence continuation](loop.md#sequence-continuation) would open. Stop with
|
|
17
|
+
nothing to do when the active workspace is before Build, no entry remains,
|
|
18
|
+
`continue_sequence: false`, or the sequence budget is spent.
|
|
19
|
+
|
|
20
|
+
## Lease
|
|
21
|
+
|
|
22
|
+
Before any write, take the workspace lease:
|
|
23
|
+
`devrites-engine claim add --session lookahead-<target> --ttl 240 --workspace <target> --reason lookahead`.
|
|
24
|
+
Exit 3 means another session holds the target: stop. Re-add the lease with the
|
|
25
|
+
same session at each phase start, and release it with `devrites-engine claim
|
|
26
|
+
release` on every stop. A crashed session's lease reads `dead` and frees itself.
|
|
27
|
+
|
|
28
|
+
## Rules
|
|
29
|
+
|
|
30
|
+
- Never read or write `.devrites/ACTIVE`. Pass the target slug explicitly to every
|
|
31
|
+
skill and engine command, including `$rite-spec <target> "<objective>"` and
|
|
32
|
+
`devrites-engine handoff <target> --resume`.
|
|
33
|
+
- After the workspace exists, run `devrites-engine state set <target> sequence_lookahead=yes`.
|
|
34
|
+
- Run Spec → Clarify → Temper → Define → Plan → Vet as the main loop does.
|
|
35
|
+
Define and Plan read the predecessor's current tree and plan. Record an
|
|
36
|
+
assumption for each predecessor interface the plan relies on.
|
|
37
|
+
- At Vet, beside the readiness binding, record exactly one line
|
|
38
|
+
`Predecessor readiness: <active-slug> <digest>` in `eng-review.md`. `<digest>`
|
|
39
|
+
is the hex that `devrites-engine check readiness --emit-binding <active-slug>`
|
|
40
|
+
prints. When the predecessor later changes its planning inputs, the child's
|
|
41
|
+
readiness check blocks with `DRV-GATE-READINESS-STALE` and the main loop
|
|
42
|
+
re-vets the child before Build.
|
|
43
|
+
- Never Build, never write product source or tests, never commit, and never
|
|
44
|
+
arm or rewrite `.devrites/AFK`. Owner questions go to the target's
|
|
45
|
+
`questions.md` and stop the lookahead.
|
|
46
|
+
- Stop at Vet `READY` with `next_action: build after predecessor Seal GO`, at a
|
|
47
|
+
human gate, or when the target's lease is lost.
|
|
48
|
+
|
|
49
|
+
**Failing case:** the lookahead passes Vet and starts Build while the
|
|
50
|
+
predecessor is still sealing, so two root sessions write one tree.
|
|
@@ -93,6 +93,13 @@ step 10 does not end the run: leave the sealed workspace unshipped with its
|
|
|
93
93
|
(`$rite-spec <parent>-<n> "<objective>"` from the parent's `decisions.md` sequence)
|
|
94
94
|
and re-enter step 1. Spend one workspace per opened continuation.
|
|
95
95
|
|
|
96
|
+
When that workspace already exists because a [lookahead](lookahead.md) session
|
|
97
|
+
planned it, do not specify it again. Wait while `devrites-engine claim check
|
|
98
|
+
--workspace <child>` exits 3 (a live lookahead holds it), then set
|
|
99
|
+
`.devrites/ACTIVE` to the child and resume from its cursor at step 1. A
|
|
100
|
+
predecessor replan since its Vet blocks the child's readiness with
|
|
101
|
+
`DRV-GATE-READINESS-STALE`; route that to `$rite-vet` before Build.
|
|
102
|
+
|
|
96
103
|
Spend accounting is durable in `state.md` cursors, not chat. Before invoking the
|
|
97
104
|
continuation, ensure the current workspace's `sequence_workspaces_remaining` is
|
|
98
105
|
set — absent, write `max_workspaces - 1` and `sequence_position: 1` first — and
|
|
@@ -12,6 +12,10 @@ phases. Never silently code against a known-wrong plan.
|
|
|
12
12
|
- the design system / existing UX pattern contradicts the planned UI;
|
|
13
13
|
- a missing user decision that affects product behavior surfaces.
|
|
14
14
|
|
|
15
|
+
A timing gate that fails with no code cause is a protocol or environment defect
|
|
16
|
+
([performance.md § Performance gate protocol](../../devrites-lib/reference/standards/performance.md#performance-gate-protocol)),
|
|
17
|
+
never another wright round.
|
|
18
|
+
|
|
15
19
|
## Workflow
|
|
16
20
|
```
|
|
17
21
|
1. STOP coding.
|
|
@@ -124,7 +124,8 @@ load a routed standard to discover required behavior, not to prescribe implement
|
|
|
124
124
|
owned prerequisites. Keep a build checkpoint only for unavailable pre-code evidence or a
|
|
125
125
|
mandatory action-time approval. **Completion:** no foreseeable human choice is deferred.
|
|
126
126
|
5. **Create or update the workspace** + set `.devrites/ACTIVE` from
|
|
127
|
-
[state-workspace](reference/state-workspace.md)
|
|
127
|
+
[state-workspace](reference/state-workspace.md); a `--lookahead` run
|
|
128
|
+
leaves `.devrites/ACTIVE` unchanged. If the slug already exists,
|
|
128
129
|
update the existing workspace rather than overwrite it; preserve history and
|
|
129
130
|
unrelated settled content. Write every required artifact and conditional
|
|
130
131
|
annex exactly from [spec-template](reference/spec-template.md)
|
|
@@ -211,7 +211,9 @@ plan declares a root-authored executable workflow file, read
|
|
|
211
211
|
`marker sweep:` line is recorded in `eng-review.md`; a kept hit blocks READY. Write phase/next step and emit one
|
|
212
212
|
`Readiness inputs SHA-256` with
|
|
213
213
|
`devrites-engine check readiness --emit-binding <slug>`; normal readiness check
|
|
214
|
-
must pass.
|
|
214
|
+
must pass. A `sequence_lookahead: yes` workspace also records one
|
|
215
|
+
`Predecessor readiness: <predecessor> <digest>` line from the predecessor's
|
|
216
|
+
`--emit-binding` hex; readiness re-checks it. Record the per-input drift baseline alongside it:
|
|
215
217
|
`devrites-engine check drift <slug> --record` — a later stale binding then
|
|
216
218
|
names the exact artifact that moved instead of "something changed". An `ADVISORY
|
|
217
219
|
proportion:` line names a slice whose proof outgrew its ACs: move its rows without a
|
|
@@ -28,6 +28,20 @@ Measure first. An optimization without a measurement is a guess that adds comple
|
|
|
28
28
|
flaking wall-clock test is a flaky test, [`testing.md`](testing.md)). Budget regression:
|
|
29
29
|
re-measure; fix to budget or record the accepted regression with reason and owner.
|
|
30
30
|
|
|
31
|
+
## Performance gate protocol
|
|
32
|
+
- A gate that judges a timing budget or a regression percentage pins its protocol
|
|
33
|
+
before Build: the environment (isolated cores, swap state, build flags such as
|
|
34
|
+
`CGO_ENABLED`), the repetitions and the aggregate (a median of at least five runs,
|
|
35
|
+
never one sample), and a noise floor measured as an A/A spread on that same
|
|
36
|
+
environment. Vet blocks READY on a timing gate without one. A threshold at or
|
|
37
|
+
below the noise floor is a plan defect for the owner, never a Build repair.
|
|
38
|
+
- A timing gate that fails while no code changed (an A/A run, a rerun) is noise or
|
|
39
|
+
host state, not a code defect. Stop wright rounds on it and fix the protocol or the
|
|
40
|
+
environment first.
|
|
41
|
+
- **Failing case:** a 10% p99 regression gate runs one sample per run on a shared host;
|
|
42
|
+
26 wright rounds repair code against noise until the owner reserves cores and asks
|
|
43
|
+
for a median of five.
|
|
44
|
+
|
|
31
45
|
## Frontend: Core Web Vitals
|
|
32
46
|
For UI work, measure-first means LCP / INP / CLS judged against real numbers, each labeled
|
|
33
47
|
by source (`Field (CrUX)`, `Lab (Lighthouse)`, `Trace (DevTools)`): field and lab are not
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite-autocomplete
|
|
3
3
|
description: Run the full DevRites lifecycle unattended; --ship continues to the final Git approval boundary. Use for one-shot autonomous work; not for a single phase.
|
|
4
|
-
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model]"
|
|
4
|
+
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model] [--lookahead]"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/one-shot-actions.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","rite-autocomplete/reference/decision-policy.md","rite-autocomplete/reference/loop.md","rite-autocomplete/reference/stop-conditions.md"],"triggers":{"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","questions.md","decisions.md","drift.md","evidence.md","test-plan.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/workflow-artifacts.md"]} -->
|
|
7
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/one-shot-actions.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","rite-autocomplete/reference/decision-policy.md","rite-autocomplete/reference/loop.md","rite-autocomplete/reference/stop-conditions.md"],"triggers":{"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"lookahead":["rite-autocomplete/reference/lookahead.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","questions.md","decisions.md","drift.md","evidence.md","test-plan.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/workflow-artifacts.md","rite-autocomplete/reference/lookahead.md"]} -->
|
|
8
8
|
> Read-set manifest: `devrites-engine context --skills-root .devin/skills <slug> --phase autocomplete` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
9
9
|
|
|
10
10
|
|
|
@@ -68,7 +68,7 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
68
68
|
not a stop either: follow it in your next tool call, never in a text-only
|
|
69
69
|
acknowledgement.
|
|
70
70
|
- Parse flags only from this invocation. `--ship`, `--yolo`, `--max-slices`,
|
|
71
|
-
`--parallel`, `--full`,
|
|
71
|
+
`--parallel`, `--full`, `--cross-model`, and `--lookahead` activate only as exact standalone
|
|
72
72
|
tokens in `$ARGUMENTS`; examples or earlier messages can never arm them.
|
|
73
73
|
`--max-slices` must occur once and be followed by a positive base-10 integer;
|
|
74
74
|
`--parallel` must occur once and be followed by a base-10 integer in `1`–`10`.
|
|
@@ -81,6 +81,10 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
81
81
|
|
|
82
82
|
## Workflow
|
|
83
83
|
|
|
84
|
+
With `--lookahead` (trigger `lookahead`), follow
|
|
85
|
+
[`lookahead.md`](reference/lookahead.md) instead of the steps below: plan the
|
|
86
|
+
next sequence continuation through Vet in a second session, then stop.
|
|
87
|
+
|
|
84
88
|
1. **Orient and parse.** Resolve the explicit or active slug; when a workspace exists,
|
|
85
89
|
require its `state.md` and read its cursor; a fresh idea starts empty at step 2.
|
|
86
90
|
Before honoring `blocked` with terminal `next_action`,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Sequence lookahead (`--lookahead`)
|
|
2
|
+
|
|
3
|
+
> Root-only: not inlined in --role bundles.
|
|
4
|
+
|
|
5
|
+
A second session plans the next sequence continuation while the active
|
|
6
|
+
workspace builds, so the child's Spec → Vet overlaps its predecessor's
|
|
7
|
+
Build → Seal. The main loop later resumes the planned child instead of
|
|
8
|
+
specifying it again.
|
|
9
|
+
|
|
10
|
+
## Start and target
|
|
11
|
+
|
|
12
|
+
The operator starts the second host session with `/rite-autocomplete
|
|
13
|
+
--lookahead` once the `.devrites/ACTIVE` workspace is in Build or later. The
|
|
14
|
+
agent never launches a session itself. The target is the next recorded
|
|
15
|
+
continuation after the active workspace: the entry
|
|
16
|
+
[sequence continuation](loop.md#sequence-continuation) would open. Stop with
|
|
17
|
+
nothing to do when the active workspace is before Build, no entry remains,
|
|
18
|
+
`continue_sequence: false`, or the sequence budget is spent.
|
|
19
|
+
|
|
20
|
+
## Lease
|
|
21
|
+
|
|
22
|
+
Before any write, take the workspace lease:
|
|
23
|
+
`devrites-engine claim add --session lookahead-<target> --ttl 240 --workspace <target> --reason lookahead`.
|
|
24
|
+
Exit 3 means another session holds the target: stop. Re-add the lease with the
|
|
25
|
+
same session at each phase start, and release it with `devrites-engine claim
|
|
26
|
+
release` on every stop. A crashed session's lease reads `dead` and frees itself.
|
|
27
|
+
|
|
28
|
+
## Rules
|
|
29
|
+
|
|
30
|
+
- Never read or write `.devrites/ACTIVE`. Pass the target slug explicitly to every
|
|
31
|
+
skill and engine command, including `/rite-spec <target> "<objective>"` and
|
|
32
|
+
`devrites-engine handoff <target> --resume`.
|
|
33
|
+
- After the workspace exists, run `devrites-engine state set <target> sequence_lookahead=yes`.
|
|
34
|
+
- Run Spec → Clarify → Temper → Define → Plan → Vet as the main loop does.
|
|
35
|
+
Define and Plan read the predecessor's current tree and plan. Record an
|
|
36
|
+
assumption for each predecessor interface the plan relies on.
|
|
37
|
+
- At Vet, beside the readiness binding, record exactly one line
|
|
38
|
+
`Predecessor readiness: <active-slug> <digest>` in `eng-review.md`. `<digest>`
|
|
39
|
+
is the hex that `devrites-engine check readiness --emit-binding <active-slug>`
|
|
40
|
+
prints. When the predecessor later changes its planning inputs, the child's
|
|
41
|
+
readiness check blocks with `DRV-GATE-READINESS-STALE` and the main loop
|
|
42
|
+
re-vets the child before Build.
|
|
43
|
+
- Never Build, never write product source or tests, never commit, and never
|
|
44
|
+
arm or rewrite `.devrites/AFK`. Owner questions go to the target's
|
|
45
|
+
`questions.md` and stop the lookahead.
|
|
46
|
+
- Stop at Vet `READY` with `next_action: build after predecessor Seal GO`, at a
|
|
47
|
+
human gate, or when the target's lease is lost.
|
|
48
|
+
|
|
49
|
+
**Failing case:** the lookahead passes Vet and starts Build while the
|
|
50
|
+
predecessor is still sealing, so two root sessions write one tree.
|
|
@@ -93,6 +93,13 @@ step 10 does not end the run: leave the sealed workspace unshipped with its
|
|
|
93
93
|
(`/rite-spec <parent>-<n> "<objective>"` from the parent's `decisions.md` sequence)
|
|
94
94
|
and re-enter step 1. Spend one workspace per opened continuation.
|
|
95
95
|
|
|
96
|
+
When that workspace already exists because a [lookahead](lookahead.md) session
|
|
97
|
+
planned it, do not specify it again. Wait while `devrites-engine claim check
|
|
98
|
+
--workspace <child>` exits 3 (a live lookahead holds it), then set
|
|
99
|
+
`.devrites/ACTIVE` to the child and resume from its cursor at step 1. A
|
|
100
|
+
predecessor replan since its Vet blocks the child's readiness with
|
|
101
|
+
`DRV-GATE-READINESS-STALE`; route that to `/rite-vet` before Build.
|
|
102
|
+
|
|
96
103
|
Spend accounting is durable in `state.md` cursors, not chat. Before invoking the
|
|
97
104
|
continuation, ensure the current workspace's `sequence_workspaces_remaining` is
|
|
98
105
|
set — absent, write `max_workspaces - 1` and `sequence_position: 1` first — and
|
|
@@ -12,6 +12,10 @@ phases. Never silently code against a known-wrong plan.
|
|
|
12
12
|
- the design system / existing UX pattern contradicts the planned UI;
|
|
13
13
|
- a missing user decision that affects product behavior surfaces.
|
|
14
14
|
|
|
15
|
+
A timing gate that fails with no code cause is a protocol or environment defect
|
|
16
|
+
([performance.md § Performance gate protocol](../../devrites-lib/reference/standards/performance.md#performance-gate-protocol)),
|
|
17
|
+
never another wright round.
|
|
18
|
+
|
|
15
19
|
## Workflow
|
|
16
20
|
```
|
|
17
21
|
1. STOP coding.
|
|
@@ -123,7 +123,8 @@ load a routed standard to discover required behavior, not to prescribe implement
|
|
|
123
123
|
owned prerequisites. Keep a build checkpoint only for unavailable pre-code evidence or a
|
|
124
124
|
mandatory action-time approval. **Completion:** no foreseeable human choice is deferred.
|
|
125
125
|
5. **Create or update the workspace** + set `.devrites/ACTIVE` from
|
|
126
|
-
[state-workspace](reference/state-workspace.md)
|
|
126
|
+
[state-workspace](reference/state-workspace.md); a `--lookahead` run
|
|
127
|
+
leaves `.devrites/ACTIVE` unchanged. If the slug already exists,
|
|
127
128
|
update the existing workspace rather than overwrite it; preserve history and
|
|
128
129
|
unrelated settled content. Write every required artifact and conditional
|
|
129
130
|
annex exactly from [spec-template](reference/spec-template.md)
|
|
@@ -210,7 +210,9 @@ plan declares a root-authored executable workflow file, read
|
|
|
210
210
|
`marker sweep:` line is recorded in `eng-review.md`; a kept hit blocks READY. Write phase/next step and emit one
|
|
211
211
|
`Readiness inputs SHA-256` with
|
|
212
212
|
`devrites-engine check readiness --emit-binding <slug>`; normal readiness check
|
|
213
|
-
must pass.
|
|
213
|
+
must pass. A `sequence_lookahead: yes` workspace also records one
|
|
214
|
+
`Predecessor readiness: <predecessor> <digest>` line from the predecessor's
|
|
215
|
+
`--emit-binding` hex; readiness re-checks it. Record the per-input drift baseline alongside it:
|
|
214
216
|
`devrites-engine check drift <slug> --record` — a later stale binding then
|
|
215
217
|
names the exact artifact that moved instead of "something changed". An `ADVISORY
|
|
216
218
|
proportion:` line names a slice whose proof outgrew its ACs: move its rows without a
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: "Run the full DevRites lifecycle unattended; --ship continues to the final Git approval boundary. Use for one-shot autonomous work; not for a single phase."
|
|
3
|
-
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model]"
|
|
3
|
+
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model] [--lookahead]"
|
|
4
4
|
---
|
|
5
5
|
Read and follow the DevRites skill `skill://rite-autocomplete` (`.omp/skills/rite-autocomplete/SKILL.md`). Apply it to these arguments, or to the current request when they are empty: $ARGUMENTS
|
|
@@ -28,6 +28,20 @@ Measure first. An optimization without a measurement is a guess that adds comple
|
|
|
28
28
|
flaking wall-clock test is a flaky test, [`testing.md`](testing.md)). Budget regression:
|
|
29
29
|
re-measure; fix to budget or record the accepted regression with reason and owner.
|
|
30
30
|
|
|
31
|
+
## Performance gate protocol
|
|
32
|
+
- A gate that judges a timing budget or a regression percentage pins its protocol
|
|
33
|
+
before Build: the environment (isolated cores, swap state, build flags such as
|
|
34
|
+
`CGO_ENABLED`), the repetitions and the aggregate (a median of at least five runs,
|
|
35
|
+
never one sample), and a noise floor measured as an A/A spread on that same
|
|
36
|
+
environment. Vet blocks READY on a timing gate without one. A threshold at or
|
|
37
|
+
below the noise floor is a plan defect for the owner, never a Build repair.
|
|
38
|
+
- A timing gate that fails while no code changed (an A/A run, a rerun) is noise or
|
|
39
|
+
host state, not a code defect. Stop wright rounds on it and fix the protocol or the
|
|
40
|
+
environment first.
|
|
41
|
+
- **Failing case:** a 10% p99 regression gate runs one sample per run on a shared host;
|
|
42
|
+
26 wright rounds repair code against noise until the owner reserves cores and asks
|
|
43
|
+
for a median of five.
|
|
44
|
+
|
|
31
45
|
## Frontend: Core Web Vitals
|
|
32
46
|
For UI work, measure-first means LCP / INP / CLS judged against real numbers, each labeled
|
|
33
47
|
by source (`Field (CrUX)`, `Lab (Lighthouse)`, `Trace (DevTools)`): field and lab are not
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite-autocomplete
|
|
3
3
|
description: Run the full DevRites lifecycle unattended; --ship continues to the final Git approval boundary. Use for one-shot autonomous work; not for a single phase.
|
|
4
|
-
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model]"
|
|
4
|
+
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model] [--lookahead]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/one-shot-actions.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","rite-autocomplete/reference/decision-policy.md","rite-autocomplete/reference/loop.md","rite-autocomplete/reference/stop-conditions.md"],"triggers":{"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","questions.md","decisions.md","drift.md","evidence.md","test-plan.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/workflow-artifacts.md"]} -->
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/one-shot-actions.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","rite-autocomplete/reference/decision-policy.md","rite-autocomplete/reference/loop.md","rite-autocomplete/reference/stop-conditions.md"],"triggers":{"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"lookahead":["rite-autocomplete/reference/lookahead.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","questions.md","decisions.md","drift.md","evidence.md","test-plan.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/workflow-artifacts.md","rite-autocomplete/reference/lookahead.md"]} -->
|
|
9
9
|
> Read-set manifest: `devrites-engine context --skills-root .omp/skills <slug> --phase autocomplete` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
10
|
|
|
11
11
|
|
|
@@ -69,7 +69,7 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
69
69
|
not a stop either: follow it in your next tool call, never in a text-only
|
|
70
70
|
acknowledgement.
|
|
71
71
|
- Parse flags only from this invocation. `--ship`, `--yolo`, `--max-slices`,
|
|
72
|
-
`--parallel`, `--full`,
|
|
72
|
+
`--parallel`, `--full`, `--cross-model`, and `--lookahead` activate only as exact standalone
|
|
73
73
|
tokens in `$ARGUMENTS`; examples or earlier messages can never arm them.
|
|
74
74
|
`--max-slices` must occur once and be followed by a positive base-10 integer;
|
|
75
75
|
`--parallel` must occur once and be followed by a base-10 integer in `1`–`10`.
|
|
@@ -82,6 +82,10 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
82
82
|
|
|
83
83
|
## Workflow
|
|
84
84
|
|
|
85
|
+
With `--lookahead` (trigger `lookahead`), follow
|
|
86
|
+
[`lookahead.md`](reference/lookahead.md) instead of the steps below: plan the
|
|
87
|
+
next sequence continuation through Vet in a second session, then stop.
|
|
88
|
+
|
|
85
89
|
1. **Orient and parse.** Resolve the explicit or active slug; when a workspace exists,
|
|
86
90
|
require its `state.md` and read its cursor; a fresh idea starts empty at step 2.
|
|
87
91
|
Before honoring `blocked` with terminal `next_action`,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Sequence lookahead (`--lookahead`)
|
|
2
|
+
|
|
3
|
+
> Root-only: not inlined in --role bundles.
|
|
4
|
+
|
|
5
|
+
A second session plans the next sequence continuation while the active
|
|
6
|
+
workspace builds, so the child's Spec → Vet overlaps its predecessor's
|
|
7
|
+
Build → Seal. The main loop later resumes the planned child instead of
|
|
8
|
+
specifying it again.
|
|
9
|
+
|
|
10
|
+
## Start and target
|
|
11
|
+
|
|
12
|
+
The operator starts the second host session with `/rite-autocomplete
|
|
13
|
+
--lookahead` once the `.devrites/ACTIVE` workspace is in Build or later. The
|
|
14
|
+
agent never launches a session itself. The target is the next recorded
|
|
15
|
+
continuation after the active workspace: the entry
|
|
16
|
+
[sequence continuation](loop.md#sequence-continuation) would open. Stop with
|
|
17
|
+
nothing to do when the active workspace is before Build, no entry remains,
|
|
18
|
+
`continue_sequence: false`, or the sequence budget is spent.
|
|
19
|
+
|
|
20
|
+
## Lease
|
|
21
|
+
|
|
22
|
+
Before any write, take the workspace lease:
|
|
23
|
+
`devrites-engine claim add --session lookahead-<target> --ttl 240 --workspace <target> --reason lookahead`.
|
|
24
|
+
Exit 3 means another session holds the target: stop. Re-add the lease with the
|
|
25
|
+
same session at each phase start, and release it with `devrites-engine claim
|
|
26
|
+
release` on every stop. A crashed session's lease reads `dead` and frees itself.
|
|
27
|
+
|
|
28
|
+
## Rules
|
|
29
|
+
|
|
30
|
+
- Never read or write `.devrites/ACTIVE`. Pass the target slug explicitly to every
|
|
31
|
+
skill and engine command, including `/rite-spec <target> "<objective>"` and
|
|
32
|
+
`devrites-engine handoff <target> --resume`.
|
|
33
|
+
- After the workspace exists, run `devrites-engine state set <target> sequence_lookahead=yes`.
|
|
34
|
+
- Run Spec → Clarify → Temper → Define → Plan → Vet as the main loop does.
|
|
35
|
+
Define and Plan read the predecessor's current tree and plan. Record an
|
|
36
|
+
assumption for each predecessor interface the plan relies on.
|
|
37
|
+
- At Vet, beside the readiness binding, record exactly one line
|
|
38
|
+
`Predecessor readiness: <active-slug> <digest>` in `eng-review.md`. `<digest>`
|
|
39
|
+
is the hex that `devrites-engine check readiness --emit-binding <active-slug>`
|
|
40
|
+
prints. When the predecessor later changes its planning inputs, the child's
|
|
41
|
+
readiness check blocks with `DRV-GATE-READINESS-STALE` and the main loop
|
|
42
|
+
re-vets the child before Build.
|
|
43
|
+
- Never Build, never write product source or tests, never commit, and never
|
|
44
|
+
arm or rewrite `.devrites/AFK`. Owner questions go to the target's
|
|
45
|
+
`questions.md` and stop the lookahead.
|
|
46
|
+
- Stop at Vet `READY` with `next_action: build after predecessor Seal GO`, at a
|
|
47
|
+
human gate, or when the target's lease is lost.
|
|
48
|
+
|
|
49
|
+
**Failing case:** the lookahead passes Vet and starts Build while the
|
|
50
|
+
predecessor is still sealing, so two root sessions write one tree.
|
|
@@ -93,6 +93,13 @@ step 10 does not end the run: leave the sealed workspace unshipped with its
|
|
|
93
93
|
(`/rite-spec <parent>-<n> "<objective>"` from the parent's `decisions.md` sequence)
|
|
94
94
|
and re-enter step 1. Spend one workspace per opened continuation.
|
|
95
95
|
|
|
96
|
+
When that workspace already exists because a [lookahead](lookahead.md) session
|
|
97
|
+
planned it, do not specify it again. Wait while `devrites-engine claim check
|
|
98
|
+
--workspace <child>` exits 3 (a live lookahead holds it), then set
|
|
99
|
+
`.devrites/ACTIVE` to the child and resume from its cursor at step 1. A
|
|
100
|
+
predecessor replan since its Vet blocks the child's readiness with
|
|
101
|
+
`DRV-GATE-READINESS-STALE`; route that to `/rite-vet` before Build.
|
|
102
|
+
|
|
96
103
|
Spend accounting is durable in `state.md` cursors, not chat. Before invoking the
|
|
97
104
|
continuation, ensure the current workspace's `sequence_workspaces_remaining` is
|
|
98
105
|
set — absent, write `max_workspaces - 1` and `sequence_position: 1` first — and
|
|
@@ -12,6 +12,10 @@ phases. Never silently code against a known-wrong plan.
|
|
|
12
12
|
- the design system / existing UX pattern contradicts the planned UI;
|
|
13
13
|
- a missing user decision that affects product behavior surfaces.
|
|
14
14
|
|
|
15
|
+
A timing gate that fails with no code cause is a protocol or environment defect
|
|
16
|
+
([performance.md § Performance gate protocol](skill://devrites-lib/reference/standards/performance.md#performance-gate-protocol)),
|
|
17
|
+
never another wright round.
|
|
18
|
+
|
|
15
19
|
## Workflow
|
|
16
20
|
```
|
|
17
21
|
1. STOP coding.
|
|
@@ -124,7 +124,8 @@ load a routed standard to discover required behavior, not to prescribe implement
|
|
|
124
124
|
owned prerequisites. Keep a build checkpoint only for unavailable pre-code evidence or a
|
|
125
125
|
mandatory action-time approval. **Completion:** no foreseeable human choice is deferred.
|
|
126
126
|
5. **Create or update the workspace** + set `.devrites/ACTIVE` from
|
|
127
|
-
[state-workspace](reference/state-workspace.md)
|
|
127
|
+
[state-workspace](reference/state-workspace.md); a `--lookahead` run
|
|
128
|
+
leaves `.devrites/ACTIVE` unchanged. If the slug already exists,
|
|
128
129
|
update the existing workspace rather than overwrite it; preserve history and
|
|
129
130
|
unrelated settled content. Write every required artifact and conditional
|
|
130
131
|
annex exactly from [spec-template](reference/spec-template.md)
|
|
@@ -211,7 +211,9 @@ plan declares a root-authored executable workflow file, read
|
|
|
211
211
|
`marker sweep:` line is recorded in `eng-review.md`; a kept hit blocks READY. Write phase/next step and emit one
|
|
212
212
|
`Readiness inputs SHA-256` with
|
|
213
213
|
`devrites-engine check readiness --emit-binding <slug>`; normal readiness check
|
|
214
|
-
must pass.
|
|
214
|
+
must pass. A `sequence_lookahead: yes` workspace also records one
|
|
215
|
+
`Predecessor readiness: <predecessor> <digest>` line from the predecessor's
|
|
216
|
+
`--emit-binding` hex; readiness re-checks it. Record the per-input drift baseline alongside it:
|
|
215
217
|
`devrites-engine check drift <slug> --record` — a later stale binding then
|
|
216
218
|
names the exact artifact that moved instead of "something changed". An `ADVISORY
|
|
217
219
|
proportion:` line names a slice whose proof outgrew its ACs: move its rows without a
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: "Run the full DevRites lifecycle unattended; --ship continues to the final Git approval boundary. Use for one-shot autonomous work; not for a single phase."
|
|
3
|
-
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model]"
|
|
3
|
+
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model] [--lookahead]"
|
|
4
4
|
---
|
|
5
5
|
Read and follow the DevRites skill at `.pi/skills/rite-autocomplete/SKILL.md`, applying it to: ${ARGUMENTS:-the current request}.
|
|
@@ -28,6 +28,20 @@ Measure first. An optimization without a measurement is a guess that adds comple
|
|
|
28
28
|
flaking wall-clock test is a flaky test, [`testing.md`](testing.md)). Budget regression:
|
|
29
29
|
re-measure; fix to budget or record the accepted regression with reason and owner.
|
|
30
30
|
|
|
31
|
+
## Performance gate protocol
|
|
32
|
+
- A gate that judges a timing budget or a regression percentage pins its protocol
|
|
33
|
+
before Build: the environment (isolated cores, swap state, build flags such as
|
|
34
|
+
`CGO_ENABLED`), the repetitions and the aggregate (a median of at least five runs,
|
|
35
|
+
never one sample), and a noise floor measured as an A/A spread on that same
|
|
36
|
+
environment. Vet blocks READY on a timing gate without one. A threshold at or
|
|
37
|
+
below the noise floor is a plan defect for the owner, never a Build repair.
|
|
38
|
+
- A timing gate that fails while no code changed (an A/A run, a rerun) is noise or
|
|
39
|
+
host state, not a code defect. Stop wright rounds on it and fix the protocol or the
|
|
40
|
+
environment first.
|
|
41
|
+
- **Failing case:** a 10% p99 regression gate runs one sample per run on a shared host;
|
|
42
|
+
26 wright rounds repair code against noise until the owner reserves cores and asks
|
|
43
|
+
for a median of five.
|
|
44
|
+
|
|
31
45
|
## Frontend: Core Web Vitals
|
|
32
46
|
For UI work, measure-first means LCP / INP / CLS judged against real numbers, each labeled
|
|
33
47
|
by source (`Field (CrUX)`, `Lab (Lighthouse)`, `Trace (DevTools)`): field and lab are not
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite-autocomplete
|
|
3
3
|
description: Run the full DevRites lifecycle unattended; --ship continues to the final Git approval boundary. Use for one-shot autonomous work; not for a single phase.
|
|
4
|
-
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model]"
|
|
4
|
+
argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model] [--lookahead]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/one-shot-actions.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","rite-autocomplete/reference/decision-policy.md","rite-autocomplete/reference/loop.md","rite-autocomplete/reference/stop-conditions.md"],"triggers":{"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","questions.md","decisions.md","drift.md","evidence.md","test-plan.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/workflow-artifacts.md"]} -->
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/one-shot-actions.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","rite-autocomplete/reference/decision-policy.md","rite-autocomplete/reference/loop.md","rite-autocomplete/reference/stop-conditions.md"],"triggers":{"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"lookahead":["rite-autocomplete/reference/lookahead.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","questions.md","decisions.md","drift.md","evidence.md","test-plan.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/workflow-artifacts.md","rite-autocomplete/reference/lookahead.md"]} -->
|
|
9
9
|
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --phase autocomplete` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
10
|
|
|
11
11
|
|
|
@@ -69,7 +69,7 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
69
69
|
not a stop either: follow it in your next tool call, never in a text-only
|
|
70
70
|
acknowledgement.
|
|
71
71
|
- Parse flags only from this invocation. `--ship`, `--yolo`, `--max-slices`,
|
|
72
|
-
`--parallel`, `--full`,
|
|
72
|
+
`--parallel`, `--full`, `--cross-model`, and `--lookahead` activate only as exact standalone
|
|
73
73
|
tokens in `$ARGUMENTS`; examples or earlier messages can never arm them.
|
|
74
74
|
`--max-slices` must occur once and be followed by a positive base-10 integer;
|
|
75
75
|
`--parallel` must occur once and be followed by a base-10 integer in `1`–`10`.
|
|
@@ -82,6 +82,10 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
82
82
|
|
|
83
83
|
## Workflow
|
|
84
84
|
|
|
85
|
+
With `--lookahead` (trigger `lookahead`), follow
|
|
86
|
+
[`lookahead.md`](reference/lookahead.md) instead of the steps below: plan the
|
|
87
|
+
next sequence continuation through Vet in a second session, then stop.
|
|
88
|
+
|
|
85
89
|
1. **Orient and parse.** Resolve the explicit or active slug; when a workspace exists,
|
|
86
90
|
require its `state.md` and read its cursor; a fresh idea starts empty at step 2.
|
|
87
91
|
Before honoring `blocked` with terminal `next_action`,
|