@magnusekdahl/parallix 1.5.440 → 1.5.458
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/NOTICES +1 -1
- package/README.md +2 -0
- package/build/asset-manifest.json +8 -0
- package/build/manifest.sha256 +10 -8
- package/build/migrations/0042-execution-activity.sql +67 -0
- package/build/package.json +1 -1
- package/build/prompts/repair.md +112 -0
- package/build/px.mjs +688 -693
- package/build/px.mjs.map +4 -4
- package/build/sbom.json +2 -2
- package/build/web/assets/index-CpXzuHrK.js +9 -0
- package/build/web/index.html +1 -1
- package/build/web/manifest.json +4 -4
- package/package.json +4 -3
- package/build/web/assets/index-CldvmTYt.js +0 -9
package/NOTICES
CHANGED
package/README.md
CHANGED
|
@@ -165,6 +165,8 @@ Both are optional integrations, and each one is wired independently of the other
|
|
|
165
165
|
|
|
166
166
|
**Forgejo.** Review publication is off until you opt in. If you want its reviewer surface, `px setup` can bootstrap the review repository, agent tokens, and the `review` git remote; otherwise the branch/worktree workflow runs without Forgejo. Forgejo user accounts must already exist before that optional setup; see [`docs/forgejo-setup.md`](docs/forgejo-setup.md) for account creation, token layout, and running a local instance.
|
|
167
167
|
|
|
168
|
+
Historical review-state and review-event files are no longer imported; review resumes from the database-owned Review.
|
|
169
|
+
|
|
168
170
|
## Use cases
|
|
169
171
|
|
|
170
172
|
The durable capability guide and confidence boundaries are in [`docs/use-cases.md`](docs/use-cases.md).
|
|
@@ -41,6 +41,10 @@
|
|
|
41
41
|
"key": "prompts/review.md",
|
|
42
42
|
"sha256": "06431c3f965935db27b254164d3bfa66aa7cc2a5602031f181dcc5e32f3e5739"
|
|
43
43
|
},
|
|
44
|
+
{
|
|
45
|
+
"key": "prompts/repair.md",
|
|
46
|
+
"sha256": "18aeb66654f075f284a0ad934d5c71b5a9ff89426b5068c6b7af4e5be08381cf"
|
|
47
|
+
},
|
|
44
48
|
{
|
|
45
49
|
"key": "templates/mission-scaffold.md",
|
|
46
50
|
"sha256": "64ceff9f8a45d1769c8e70b0545a554065ffd285aa33b862447cb2ac70d28093"
|
|
@@ -221,6 +225,10 @@
|
|
|
221
225
|
"key": "migrations/0041-admission-resources.sql",
|
|
222
226
|
"sha256": "eb04fe7a9e4c295f3b751c65b915580e897d22d4f771dd75e531295c92973ed0"
|
|
223
227
|
},
|
|
228
|
+
{
|
|
229
|
+
"key": "migrations/0042-execution-activity.sql",
|
|
230
|
+
"sha256": "6d8778c163b19db959dfcbe801d2f6640bccc39bfc8bab6f1188a3d2a9ffc464"
|
|
231
|
+
},
|
|
224
232
|
{
|
|
225
233
|
"key": "decision/tokenizer-data.gz",
|
|
226
234
|
"sha256": "c83abf9a2ab7966fbeec566cacb00c1aa48f6ac0ca66054fa7999d000c020012"
|
package/build/manifest.sha256
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
c39ad8da9770a1e4a6493cf28f30101ccb48bbf392de1d12ef68e32567d27d5e asset-manifest.json
|
|
2
2
|
ec3ec505e42adc8cddc17651d7a1a85b6359a433e1e62f3c6c22a4896150187f config/agents.json
|
|
3
3
|
6a4ec47387d1240e32967dc8e4ce54a15d69df2676b7a96ff72baafe996fef7d config/state-map.json
|
|
4
4
|
c83abf9a2ab7966fbeec566cacb00c1aa48f6ac0ca66054fa7999d000c020012 decision/tokenizer-data.gz
|
|
@@ -46,21 +46,23 @@ d59c6e91e82e9cdd93fb2735209a396cfd9d68c73dbee18b55b4db68b00d44f1 migrations/003
|
|
|
46
46
|
899d9d535e079ef2bd04cc1a52b24ab8fdb82195f1d6257218f0dc4827c20562 migrations/0039-workflow-operations.sql
|
|
47
47
|
f600df1684fe3a7e8423090759a6578378e44a306a6498457e69eb72c858d902 migrations/0040-goal-check-carried-from.sql
|
|
48
48
|
eb04fe7a9e4c295f3b751c65b915580e897d22d4f771dd75e531295c92973ed0 migrations/0041-admission-resources.sql
|
|
49
|
-
|
|
49
|
+
6d8778c163b19db959dfcbe801d2f6640bccc39bfc8bab6f1188a3d2a9ffc464 migrations/0042-execution-activity.sql
|
|
50
|
+
f8a14db7c9f445d7abecf9cf55bce0303c2e0aaa09d4f4c97e2e127f4bce027b package.json
|
|
50
51
|
e0f14f5d559391eccebd1a85da0c709c90ff74f04a5cb8809303f0d372a3bc86 prompts/act-on-review-core.md
|
|
51
52
|
c3e7caaaaa110fd7da1b055a593d8f56a66cb8bb7bb70ccdb3f43250fba7e9d2 prompts/act-on-review.md
|
|
52
53
|
352006d7edd95c47dd405d98b7ec1103b1705e9232e153e89637ddb4bf389655 prompts/draft-core.md
|
|
53
54
|
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 prompts/draft.md
|
|
54
55
|
de5ad6f1eef4b856e912865667cb738fc0716b707dd62068ef176f89f0bf3032 prompts/execute-core.md
|
|
55
56
|
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 prompts/execute.md
|
|
57
|
+
18aeb66654f075f284a0ad934d5c71b5a9ff89426b5068c6b7af4e5be08381cf prompts/repair.md
|
|
56
58
|
f0c58cd3d9853de4e2715f85d6e43a99c2820e84b86bc0f8f1c54d82618c457b prompts/review-core.md
|
|
57
59
|
06431c3f965935db27b254164d3bfa66aa7cc2a5602031f181dcc5e32f3e5739 prompts/review.md
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
eaa35910e840dde09ba8837bc7fedce436e170b47a97436a527a6985352857d0 px.mjs
|
|
61
|
+
d32dc901cc501d3b12febed63b656974869169613072bfc4619b74ebeb30ae93 px.mjs.map
|
|
62
|
+
4e636002cbe472f0714e44851bf9696fe0d44bed9ff4583d14bd617d6a2b1fd4 sbom.json
|
|
61
63
|
64ceff9f8a45d1769c8e70b0545a554065ffd285aa33b862447cb2ac70d28093 templates/mission-scaffold.md
|
|
62
64
|
35a828a2a248c396af77c4b3090d2cb1ec37858128a591df62398457f909618d web/assets/index-BLNC0e_y.css
|
|
63
|
-
|
|
65
|
+
c5a03ebd14e136e740a36c14ce144c18f91bcd2ae307f08386d634fc1d9b2973 web/assets/index-CpXzuHrK.js
|
|
64
66
|
844d5ef0608e16d8234ded7a0dd60eedeb2fe404ed62932df8ff26f03bbf6279 web/fonts/FONTS.txt
|
|
65
67
|
ad3a6fb70cbc6264692395e7ed71de8bc8919f63e7fd194c6a5eb047d0f248ea web/fonts/OFL-Barlow-Condensed.txt
|
|
66
68
|
a76abf002c49097d146e86740a3105a5d00450b1592e820a1109a8c5680cd697 web/fonts/OFL-JetBrains-Mono.txt
|
|
@@ -69,5 +71,5 @@ a76abf002c49097d146e86740a3105a5d00450b1592e820a1109a8c5680cd697 web/fonts/OFL-
|
|
|
69
71
|
14425ba9c695763c1547f48a206b7aa60350a33ae23de09f0407877f3fcd89eb web/fonts/jetbrains-mono-latin-400.woff2
|
|
70
72
|
cb182feeed4d798ff6961d3c79f7026279448fca0676438aaecb21f3fc39553a web/fonts/jetbrains-mono-latin-500.woff2
|
|
71
73
|
d0d4e818808f2a0ba39b2b09d1989366f63494e295f003c7ef436697378507e8 web/fonts/jetbrains-mono-latin-700.woff2
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
e6adcf80bb9a5af9a71b635c8a79ce034bd8c4e98defb599358b27cdc056b1ae web/index.html
|
|
75
|
+
7b8cfd15cf19dabfb6397ba35f5b7a19f00bce8876238bc334c203f49720a0c1 web/manifest.json
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
DROP INDEX workflow_exclusive_mission;
|
|
2
|
+
UPDATE workflow_operations
|
|
3
|
+
SET phase = 'executing', record_json = json_set(record_json, '$.phase', 'executing')
|
|
4
|
+
WHERE phase IN ('preparing', 'waiting', 'running', 'checking');
|
|
5
|
+
UPDATE workflow_operations
|
|
6
|
+
SET record_json = json_set(record_json, '$.command', 'review:submit')
|
|
7
|
+
WHERE json_extract(record_json, '$.command') = 'handoff:record';
|
|
8
|
+
CREATE UNIQUE INDEX workflow_exclusive_mission ON workflow_operations(repository_id, mission_id)
|
|
9
|
+
WHERE phase IN ('accepted', 'executing', 'stopping');
|
|
10
|
+
-- This is live repair metadata, not an audit/version row. The value is the
|
|
11
|
+
-- workflow's internal non-gate marker; it must not be replayed as a shell check.
|
|
12
|
+
UPDATE mission_checkpoints
|
|
13
|
+
SET repair_json = json_set(repair_json, '$.command', 'review-preparation')
|
|
14
|
+
WHERE repair_json IS NOT NULL AND json_valid(repair_json)
|
|
15
|
+
AND json_extract(repair_json, '$.command') = 'px handoff';
|
|
16
|
+
|
|
17
|
+
-- Early review entry and verified submission are separate durable boundaries.
|
|
18
|
+
ALTER TABLE missions ADD COLUMN review_preparation_pending INTEGER NOT NULL DEFAULT 0
|
|
19
|
+
CHECK (review_preparation_pending IN (0, 1));
|
|
20
|
+
|
|
21
|
+
CREATE TABLE execution_activity (
|
|
22
|
+
repository_id TEXT NOT NULL,
|
|
23
|
+
mission_id TEXT NOT NULL,
|
|
24
|
+
snapshot_json TEXT NOT NULL,
|
|
25
|
+
PRIMARY KEY(repository_id, mission_id)
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
-- The cutover assumes no running operations. Preserve unresolved failure facts
|
|
29
|
+
-- as current snapshots without changing any original audit row or its identity.
|
|
30
|
+
-- A later supported start supersedes a blocker; diagnostic recovery does not.
|
|
31
|
+
WITH history AS MATERIALIZED (
|
|
32
|
+
SELECT id, event_data, created_at,
|
|
33
|
+
json_extract(event_data, '$.missionId') AS mission_id,
|
|
34
|
+
json_extract(event_data, '$.operationId') AS operation_id,
|
|
35
|
+
json_extract(event_data, '$.state') AS state,
|
|
36
|
+
json_extract(event_data, '$.phase') AS phase
|
|
37
|
+
FROM operational_history
|
|
38
|
+
WHERE event_type = 'mission.current-work' AND json_valid(event_data)
|
|
39
|
+
), blockers AS (
|
|
40
|
+
SELECT h.* FROM history h
|
|
41
|
+
WHERE h.state = 'blocked' AND h.phase IN ('draft','execute','waiting','handoff','review','review-response','integrate')
|
|
42
|
+
AND NOT EXISTS (SELECT 1 FROM history later WHERE later.mission_id = h.mission_id
|
|
43
|
+
AND later.id > h.id AND later.state = 'running' AND later.phase <> 'recovery')
|
|
44
|
+
AND NOT EXISTS (SELECT 1 FROM history started WHERE started.mission_id = h.mission_id
|
|
45
|
+
AND started.state = 'running' AND started.phase <> 'recovery'
|
|
46
|
+
AND started.operation_id IS NOT NULL AND h.operation_id IS NOT NULL
|
|
47
|
+
AND started.operation_id <> h.operation_id
|
|
48
|
+
AND started.id = (SELECT MAX(id) FROM history newest WHERE newest.mission_id = h.mission_id
|
|
49
|
+
AND newest.state = 'running' AND newest.phase <> 'recovery'))
|
|
50
|
+
), retained AS (
|
|
51
|
+
SELECT b.*, COALESCE(NULLIF(b.operation_id, ''), 'cutover-history-row:' || b.id) AS execution_id
|
|
52
|
+
FROM blockers b WHERE b.id = (SELECT MAX(id) FROM blockers latest WHERE latest.mission_id = b.mission_id)
|
|
53
|
+
)
|
|
54
|
+
INSERT INTO execution_activity (repository_id, mission_id, snapshot_json)
|
|
55
|
+
SELECT m.repository_id, r.mission_id, json_object(
|
|
56
|
+
'missionId', r.mission_id, 'operationId', r.execution_id,
|
|
57
|
+
'frames', json_array(json_object('sourceId', r.execution_id, 'event', json_set(r.event_data,
|
|
58
|
+
'$.operationId', r.execution_id, '$.phase', CASE r.phase WHEN 'handoff' THEN 'review' ELSE r.phase END,
|
|
59
|
+
'$.occurredAt', r.created_at, '$.processId', NULL,
|
|
60
|
+
'$.blockedReason', COALESCE(json_extract(r.event_data, '$.blockedReason'), 'operation cannot continue autonomously')))),
|
|
61
|
+
'closedSources', json_array(), 'supersededOperations', json_array(),
|
|
62
|
+
'retainedBlocker', NULL, 'terminal', NULL)
|
|
63
|
+
FROM retained r JOIN missions m ON m.id = r.mission_id;
|
|
64
|
+
|
|
65
|
+
-- Activity has one persistence owner after cutover.
|
|
66
|
+
UPDATE workflow_operations SET record_json = json_remove(record_json, '$.activities')
|
|
67
|
+
WHERE json_type(record_json, '$.activities') IS NOT NULL;
|
package/build/package.json
CHANGED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Automatic repair prompts
|
|
2
|
+
|
|
3
|
+
## repair
|
|
4
|
+
|
|
5
|
+
{{label}} — FRESH-CONTEXT DIAGNOSTIC REPAIR REQUIRED
|
|
6
|
+
|
|
7
|
+
Mission: {{slug}}
|
|
8
|
+
{{worktreeLine}}{{facts}}
|
|
9
|
+
|
|
10
|
+
Original failure evidence (this is not necessarily the root cause):
|
|
11
|
+
---
|
|
12
|
+
{{originalDiagnostic}}
|
|
13
|
+
---
|
|
14
|
+
Latest failure evidence (this is not necessarily the root cause):
|
|
15
|
+
---
|
|
16
|
+
{{latestDiagnostic}}
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
Classification: {{failureClass}} — {{dispatchAction}}
|
|
20
|
+
Recovery strategy: fresh-diagnostic ({{attempt}}/{{maxAttempts}})
|
|
21
|
+
Retry attempt: {{attempt}}/{{maxAttempts}}
|
|
22
|
+
|
|
23
|
+
{{evidenceRoute}}
|
|
24
|
+
{{authorityRoute}}
|
|
25
|
+
|
|
26
|
+
You have a fresh context. Re-diagnose the failure from the repository and exact evidence; do not assume either diagnostic identifies the root cause.
|
|
27
|
+
Before repair, reload px status {{slug}} --json for the locked goal, scope, success criteria, gates, review disposition and authorized repair/checkpoint obligations. Read applicable AGENTS.md repository rules and inspect the current branch revision and working-tree edits. If authority or evidence is missing, incomplete or stale, report that explicitly; do not invent retrieval or treat an old revision as current proof.
|
|
28
|
+
This dedicated repair prompt defines this launch; do not inherit prior execute/review conversation instructions or review-approval authority. Honor recorded operator decisions and the authorized mission behavior. Preserve locked gates and success criteria; investigate and repair failures rather than bypassing checks or claiming unverified success.
|
|
29
|
+
{{remedy}}
|
|
30
|
+
The failing check re-runs automatically after your fix; this bounce is only reported as fixed when that re-run passes.
|
|
31
|
+
Perform the repair and preserve valid commits and working-tree edits already in the mission worktree; do not reset, clean or silently recommit unrelated work. Commit tracked repair changes as required above. Only the harness rerunning this exact failing check can establish success.
|
|
32
|
+
|
|
33
|
+
## authority
|
|
34
|
+
|
|
35
|
+
REPAIR AUTHORITY: These dedicated instructions govern this session, including resumed execute or act-on-review context. Preserve locked gates and success criteria. Test code and assertions are repairable within the authorized mission after investigating the behavior they protect.
|
|
36
|
+
Before changing a test, inspect its owning suite, nearby assertions and Git history to understand why the test exists. Trace what this mission changes through the production callers and compare the failure with the authorized behavior. If it exposes a product regression, fix the production code. If the authorized change supersedes the old expectation, update the test while preserving distinct safety and behavioral coverage. Make this decision yourself within the authorized mission, explain the evidence and product risks in the repair checkpoint, and verify the repaired behavior. A failing assertion or the need to edit a test is not a reason to request human attention. Escalate only an unresolved product decision or conflict with locked gates, scope or success criteria that you cannot resolve from the mission, recorded operator decisions and repository evidence; identify the conflicting requirements, investigated alternatives and behavioral consequences.
|
|
37
|
+
Run px checkpoint check --slug {{slug}} --json before declaring completion. Inspect ready and primaryStopReason. A recorded unresolved human-only contract blocker is the primary stop reason even when checkpoint evidence is incomplete: stop for the operator; do not fabricate proof, start repeated evidence-only repair, use record --force, or treat prose as resolution. Only an explicit operator decision can clear the recorded blocker.
|
|
38
|
+
Only a successful harness rerun of the authorized required check establishes repair success; an unrelated passing test or an agent claim does not.
|
|
39
|
+
|
|
40
|
+
## checkpoint
|
|
41
|
+
|
|
42
|
+
Harness-created repair checkpoint: {{checkpointName}}; Version at launch: {{checkpointVersion}}.
|
|
43
|
+
Within the locked scope and success criteria, record verifiable evidence with px checkpoint record --name {{checkpointName}} --criterion "<exact affected success criterion>" --evidence "<verifiable reference and result>" --next "<specific next action>" for {{checkpointName}}, and the same command with --name <CP-N> for every other planned checkpoint (for example an original CP-3) still without recorded evidence. The write resolves its own current version. Retain valid earlier evidence for unaffected criteria without restating it; affected criteria need fresh verifiable evidence from this round. If the fix shows earlier evidence is no longer accurate, re-record that checkpoint with corrected fresh evidence for the criteria it affects. Every planned checkpoint needs evidence and every success criterion must be covered before review preparation. Complete every remaining planned checkpoint before review preparation. Do not edit locked scope or criteria, weaken or bypass gates, or self-approve: independent review stays the approver.
|
|
44
|
+
|
|
45
|
+
## report
|
|
46
|
+
|
|
47
|
+
Only if that investigation establishes an unresolved conflict requiring a product decision outside your authority, run px checkpoint report-invalid-contract --name {{checkpointName}} --command "<exact failing command>" --diagnostic "<exact diagnostic>" --authority-reason "<investigated conflict requiring operator authority>" --proposed-correction "<operator correction>", then stop. The first report stops automatic repair retries and routes that unresolved decision to human review.
|
|
48
|
+
|
|
49
|
+
## report-without-checkpoint
|
|
50
|
+
|
|
51
|
+
Only after establishing an unresolved conflict outside your authority, report it with command, diagnostic, authorityReason and proposedCorrection, then stop for human review.
|
|
52
|
+
|
|
53
|
+
## repair-authority
|
|
54
|
+
|
|
55
|
+
Diagnose the actual cause from the failed check and its logs; do not assume it is a test or code path inside the original mission scope. Repair the cause wherever it lies within your authority (repository code, tests, configuration, the local environment, or runner configuration). Preserve locked gates and success criteria, mission deliverables and safety boundaries; do not suppress failures or reduce behavioral coverage merely to obtain a passing check. If the repair changes tracked files, commit it before the automatic re-verification: the re-run verifies the committed mission tree, so an uncommitted repair cannot be verified and is reported as still failing. A repair outside the repository needs no commit. If the cause is external and you cannot repair it (for example a model service or network dependency that is down), make no speculative changes: report the exact blocker with its evidence and stop, because another repair attempt cannot fix it.
|
|
56
|
+
|
|
57
|
+
## mission-outcome
|
|
58
|
+
|
|
59
|
+
the locked goal and success criteria of {{slug}} (px status {{slug}}), delivered with this check passing
|
|
60
|
+
|
|
61
|
+
## integration-cause
|
|
62
|
+
|
|
63
|
+
The integration gate (not the review gate) failed: the mission was reviewed and approved, then a red pre-integration gate rejected the finalized tree on the way to a human integration. Repair the integration failure, not a review finding.
|
|
64
|
+
|
|
65
|
+
## gate
|
|
66
|
+
|
|
67
|
+
Start with the listed gate command in the listed worktree and the captured failure output. Do not substitute a broader verification command or integration suite to rediscover the failure. {{repairAuthority}}
|
|
68
|
+
|
|
69
|
+
## hook
|
|
70
|
+
|
|
71
|
+
Make the Git hook pass when Parallix commits or rebases this mission. {{repairAuthority}}
|
|
72
|
+
|
|
73
|
+
## rebase
|
|
74
|
+
|
|
75
|
+
Review shared conflicts semantically in the mission worktree. Preserve newer base behavior, completed work and unique mission intent; do not resurrect retired metadata or use blanket ours/theirs. Stage every resolved path and continue through successive pauses until Git reports no rebase and no unmerged paths. Stop on ambiguous intent or a human-only decision.
|
|
76
|
+
|
|
77
|
+
## review-preparation
|
|
78
|
+
|
|
79
|
+
Fix the underlying issue so review preparation verification passes.
|
|
80
|
+
|
|
81
|
+
## declaration
|
|
82
|
+
|
|
83
|
+
Stop and request an operator decision for this mechanically invalid declaration; do not replace your own locked check.
|
|
84
|
+
|
|
85
|
+
## artifacts
|
|
86
|
+
|
|
87
|
+
Produce the complete {{role}} artifacts the workflow requires.
|
|
88
|
+
|
|
89
|
+
## timeout
|
|
90
|
+
|
|
91
|
+
Produce {{output}} and report it through the normal review artifact or provider path.
|
|
92
|
+
|
|
93
|
+
## history
|
|
94
|
+
|
|
95
|
+
Earlier agent runs of this mission are searchable with `px history search <pattern>` and `px history show <ref>` (bounded; cite the run: references).
|
|
96
|
+
|
|
97
|
+
## evidence-read
|
|
98
|
+
|
|
99
|
+
Read the stdout/stderr files directly. Repository APIs (not CLI commands or callable agent tools; use the captured mission identity): listRecoveryEvidence({ cwd }) or lookupRecoveryEvidence({ cwd, incidentId: "{{incidentId}}" }).
|
|
100
|
+
|
|
101
|
+
## reviewer-output
|
|
102
|
+
|
|
103
|
+
{{label}}
|
|
104
|
+
Reviewer output recovery. You have a fresh context. You remain the independent reviewer.
|
|
105
|
+
Retry attempt: {{attempt}}/{{maxAttempts}}
|
|
106
|
+
{{expectedOutput}}{{evidenceRoute}}
|
|
107
|
+
Mission: {{slug}}; attempt {{attempt}}/{{maxAttempts}}.
|
|
108
|
+
Original failure: {{originalDiagnostic}}
|
|
109
|
+
Latest failure: {{latestDiagnostic}}
|
|
110
|
+
Read px status {{slug}} --json and the current revision; complete the remaining independent review obligations.
|
|
111
|
+
Submit your verdict through px verdict approve or px verdict request-changes with the assigned reviewer actor. You have authority to approve a correct fix.
|
|
112
|
+
Read applicable AGENTS.md repository rules. Inspect the current branch revision and working-tree edits. If evidence is missing or stale, report it explicitly. This retry requires reviewer output only. Preserve the mission tree and report any workflow rejection with its cause and supported operator recovery action.
|