ace-assign 0.66.1 → 0.68.0
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.
- checksums.yaml +4 -4
- data/.ace-defaults/assign/catalog/composition-rules.yml +0 -0
- data/.ace-defaults/assign/catalog/recipes/batch-tasks.recipe.yml +0 -0
- data/.ace-defaults/assign/catalog/recipes/documentation.recipe.yml +0 -0
- data/.ace-defaults/assign/catalog/recipes/fix-and-review.recipe.yml +0 -0
- data/.ace-defaults/assign/catalog/recipes/implement-simple.recipe.yml +0 -0
- data/.ace-defaults/assign/catalog/recipes/implement-with-pr.recipe.yml +0 -0
- data/.ace-defaults/assign/catalog/recipes/release-only.recipe.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/apply-feedback.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/commit.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/create-retro.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/fix-tests.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/lint.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/mark-task-done.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/onboard-base.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/onboard.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/plan-task.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/pre-commit-review.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/push-to-remote.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/rebase-with-main.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/record-demo.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/reflect-and-refactor.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/reorganize-commits.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/research.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/review-pr.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/security-audit.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/split-subtree-root.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/squash-changelog.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/task-load.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/update-docs.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/verify-test-suite.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/verify-test.step.yml +0 -0
- data/.ace-defaults/assign/catalog/steps/work-on-task.step.yml +0 -0
- data/.ace-defaults/assign/presets/close-delivery.yml +57 -0
- data/.ace-defaults/assign/presets/deliver-release.yml +57 -0
- data/.ace-defaults/assign/presets/integrate-batch.yml +67 -0
- data/.ace-defaults/assign/presets/quick-implement.yml +0 -0
- data/.ace-defaults/assign/presets/release-only.yml +0 -0
- data/.ace-defaults/assign/presets/supervise-delivery.yml +67 -0
- data/.ace-defaults/assign/presets/work-on-docs.yml +0 -0
- data/.ace-defaults/assign/presets/work-on-task-in-place.yml +0 -0
- data/.ace-defaults/nav/protocols/skill-sources/ace-assign.yml +0 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-assign.yml +0 -0
- data/CHANGELOG.md +13 -0
- data/Rakefile +0 -0
- data/docs/demo/canonical-skill-source.gif +0 -0
- data/docs/demo/fork-provider.cast +0 -0
- data/docs/demo/fork-provider.gif +0 -0
- data/docs/demo/fork-provider.recording.json +0 -0
- data/docs/demo/fork-provider.tape.yml +0 -0
- data/docs/getting-started.md +0 -0
- data/docs/handbook.md +0 -0
- data/handbook/guides/fork-context.g.md +0 -0
- data/handbook/skills/as-assign-add-task/SKILL.md +0 -0
- data/handbook/skills/as-assign-compose/SKILL.md +0 -0
- data/handbook/skills/as-assign-create/SKILL.md +0 -0
- data/handbook/skills/as-assign-drive/SKILL.md +0 -0
- data/handbook/skills/as-assign-prepare/SKILL.md +0 -0
- data/handbook/skills/as-assign-recover-fork/SKILL.md +0 -0
- data/handbook/skills/as-assign-run-in-batches/SKILL.md +0 -0
- data/handbook/skills/as-assign-start/SKILL.md +0 -0
- data/handbook/skills/as-create-retro-internal/SKILL.md +0 -0
- data/handbook/skills/as-mark-task-done-internal/SKILL.md +0 -0
- data/handbook/skills/as-reflect-and-refactor-internal/SKILL.md +0 -0
- data/handbook/skills/as-task-load-internal/SKILL.md +0 -0
- data/handbook/workflow-instructions/assign/add-task.wf.md +0 -0
- data/handbook/workflow-instructions/assign/compose.wf.md +0 -0
- data/handbook/workflow-instructions/assign/create-retro-internal.wf.md +0 -0
- data/handbook/workflow-instructions/assign/create.wf.md +0 -0
- data/handbook/workflow-instructions/assign/drive.wf.md +39 -0
- data/handbook/workflow-instructions/assign/mark-task-done-internal.wf.md +0 -0
- data/handbook/workflow-instructions/assign/recover-fork.wf.md +0 -0
- data/handbook/workflow-instructions/assign/reflect-and-refactor-internal.wf.md +0 -0
- data/handbook/workflow-instructions/assign/run-in-batches.wf.md +0 -0
- data/handbook/workflow-instructions/assign/start.wf.md +0 -0
- data/handbook/workflow-instructions/assign/task-load-internal.wf.md +0 -0
- data/handbook/workflow-instructions/assign/verify-test-suite.wf.md +0 -0
- data/lib/ace/assign/atoms/assign_frontmatter_parser.rb +0 -0
- data/lib/ace/assign/atoms/catalog_loader.rb +0 -0
- data/lib/ace/assign/atoms/composition_rules.rb +0 -0
- data/lib/ace/assign/atoms/fixed_merge_schemas.rb +398 -0
- data/lib/ace/assign/atoms/number_generator.rb +0 -0
- data/lib/ace/assign/atoms/preset_expander.rb +0 -0
- data/lib/ace/assign/atoms/preset_loader.rb +0 -0
- data/lib/ace/assign/atoms/preset_step_resolver.rb +0 -0
- data/lib/ace/assign/atoms/step_file_parser.rb +0 -0
- data/lib/ace/assign/atoms/step_numbering.rb +0 -0
- data/lib/ace/assign/atoms/step_sorter.rb +0 -0
- data/lib/ace/assign/atoms/tree_formatter.rb +0 -0
- data/lib/ace/assign/cli/commands/add.rb +0 -0
- data/lib/ace/assign/cli/commands/list.rb +0 -0
- data/lib/ace/assign/cli/commands/retry_cmd.rb +0 -0
- data/lib/ace/assign/errors.rb +5 -1
- data/lib/ace/assign/models/assignment_info.rb +0 -0
- data/lib/ace/assign/models/evidence_event.rb +1 -0
- data/lib/ace/assign/models/queue_state.rb +0 -0
- data/lib/ace/assign/models/step.rb +0 -0
- data/lib/ace/assign/molecules/assignment_discoverer.rb +0 -0
- data/lib/ace/assign/molecules/evidence_journal.rb +281 -10
- data/lib/ace/assign/molecules/fixed_effect_reference.rb +31 -0
- data/lib/ace/assign/molecules/ordinary_merge_cli.rb +68 -0
- data/lib/ace/assign/molecules/ordinary_merge_contract.rb +410 -0
- data/lib/ace/assign/molecules/preset_inferrer.rb +0 -0
- data/lib/ace/assign/molecules/skill_assign_source_resolver.rb +0 -0
- data/lib/ace/assign/molecules/step_renumberer.rb +0 -0
- data/lib/ace/assign/organisms/attempt_coordinator.rb +90 -7
- data/lib/ace/assign/organisms/ordinary_merge_consumer.rb +365 -0
- data/lib/ace/assign/version.rb +1 -1
- data/lib/ace/assign.rb +3 -0
- metadata +11 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e21e0378ad7810b04e9a92cbac849a7e7ce09b9add705c668a826dc9e3cd87f6
|
|
4
|
+
data.tar.gz: 0d56587d4589765dbc83758e882a9482a9ce4a12dc9c803aaeacc7cc0314cb57
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 93380ddd286cd79c67fad691e875f703e60282f585746dbc3da8b04b5145310cc94ff1577416ba4164db25e90a30a1481588ae1b070ce196daea709ba8c55c25
|
|
7
|
+
data.tar.gz: e9ac0d6ef4ac39f6812e1c8f276f64dab32d15aa023830b2bf563a2211addd4353d875736506d2103a6d2b4c01efbdcf66bb205dd2e091e08e361a4146140476
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Close only an accepted delivery scope after preservation and writer checks.
|
|
2
|
+
# Usage: ace-assign create --task TASK[,TASK...] --preset close-delivery
|
|
3
|
+
|
|
4
|
+
name: close-delivery
|
|
5
|
+
description: Preserve delivery evidence and work, prove quiescence, and close only accepted delivery scope
|
|
6
|
+
|
|
7
|
+
parameters:
|
|
8
|
+
taskrefs:
|
|
9
|
+
required: true
|
|
10
|
+
type: array
|
|
11
|
+
description: Producer task references whose accepted delivery scope is being closed
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: preserve-delivery-record
|
|
15
|
+
number: "010"
|
|
16
|
+
instructions: |
|
|
17
|
+
For producer task references {{taskrefs}}, preserve accepted evidence and work
|
|
18
|
+
before any cleanup: exact source heads, decision records, tests, independent
|
|
19
|
+
review, integration/release manifests, operation references, callbacks, receipts,
|
|
20
|
+
blockers, and uncertain effects. Verify the durable destinations and retain the
|
|
21
|
+
delivery tag and producer references so archived delivery remains discoverable.
|
|
22
|
+
Do not change producer task status or reparent producer tasks.
|
|
23
|
+
|
|
24
|
+
- name: verify-no-surviving-writers
|
|
25
|
+
number: "020"
|
|
26
|
+
instructions: |
|
|
27
|
+
Execute current canonical status checks for every assignment, attempt, worker,
|
|
28
|
+
reviewer, integrator, publisher, callback handler, worktree, and other scoped
|
|
29
|
+
actor. Require positive evidence of no surviving writers. Missing, unreadable,
|
|
30
|
+
active, or uncertain lifecycle state blocks closure and cleanup; a quiet terminal
|
|
31
|
+
or completed worker is not proof.
|
|
32
|
+
|
|
33
|
+
- name: verify-accepted-scope
|
|
34
|
+
number: "030"
|
|
35
|
+
instructions: |
|
|
36
|
+
Compare the requested closure against the accepted delivery scope and project
|
|
37
|
+
decision record. Confirm every intended outcome has an attributable accepted
|
|
38
|
+
receipt and every excluded, deferred, blocked, or uncertain item remains visible.
|
|
39
|
+
Close only the accepted delivery scope; never close producer work, unrelated
|
|
40
|
+
delivery tasks, or a broader release because one path succeeded.
|
|
41
|
+
|
|
42
|
+
- name: reference-host-operations
|
|
43
|
+
number: "040"
|
|
44
|
+
instructions: |
|
|
45
|
+
Preserve references to host-owned root installation, deployment, service, and
|
|
46
|
+
cleanup operations. This preset neither performs nor claims those effects. A
|
|
47
|
+
missing root receipt remains attributable to the host owner and blocks only the
|
|
48
|
+
scope that requires it.
|
|
49
|
+
|
|
50
|
+
- name: close-accepted-delivery
|
|
51
|
+
number: "050"
|
|
52
|
+
instructions: |
|
|
53
|
+
After preservation, no-surviving-writers proof, and full accepted-scope
|
|
54
|
+
reconciliation, close and archive only this delivery record through the existing
|
|
55
|
+
task/Assign owner. Preserve the delivery tag, producer references, and evidence
|
|
56
|
+
links. Do not infer implementation-parent or producer task status changes.
|
|
57
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Prepare a stable release cut from an explicitly accepted producer set.
|
|
2
|
+
# Usage: ace-assign create --task TASK[,TASK...] --preset deliver-release
|
|
3
|
+
|
|
4
|
+
name: deliver-release
|
|
5
|
+
description: Prepare and bind a stable release cut without exercising publication authority
|
|
6
|
+
|
|
7
|
+
parameters:
|
|
8
|
+
taskrefs:
|
|
9
|
+
required: true
|
|
10
|
+
type: array
|
|
11
|
+
description: Producer task references contributing to the accepted release source set
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: bind-release-cut
|
|
15
|
+
number: "010"
|
|
16
|
+
instructions: |
|
|
17
|
+
From producer task references {{taskrefs}}, record one immutable release manifest
|
|
18
|
+
containing the exact accepted source set (repository/ref and commit SHA for every
|
|
19
|
+
member), every package name and version, every artifact digest with algorithm,
|
|
20
|
+
the decision actor and timestamp, and the policy/plan revision plus evidence
|
|
21
|
+
references that accepted the cut. Reject incomplete or ambiguous bindings.
|
|
22
|
+
Once accepted, do not add later merges or silently replace a source, version, or
|
|
23
|
+
artifact; make a new release-cut decision instead.
|
|
24
|
+
|
|
25
|
+
- name: verify-release-evidence
|
|
26
|
+
number: "020"
|
|
27
|
+
instructions: |
|
|
28
|
+
Verify tests and independent review are current for every exact source head in the
|
|
29
|
+
manifest. Reconcile target movement and provenance before preparation. A moved or
|
|
30
|
+
rebuilt source requires renewed evidence and a newly bound artifact digest.
|
|
31
|
+
|
|
32
|
+
- name: prepare-release-artifacts
|
|
33
|
+
number: "030"
|
|
34
|
+
instructions: |
|
|
35
|
+
Perform only project-authorized local release preparation. Build artifacts from
|
|
36
|
+
the bound source set, verify the declared package name and version, compute the
|
|
37
|
+
final artifact digest, and update the manifest before it is accepted. Preparation
|
|
38
|
+
is not publication, installation, deployment, or proof of any of those effects.
|
|
39
|
+
|
|
40
|
+
- name: publication-authority-placeholder
|
|
41
|
+
number: "040"
|
|
42
|
+
instructions: |
|
|
43
|
+
Publication placeholder only. Do not run a publish command in this preset. Route
|
|
44
|
+
the exact manifest to the separate publication authority named by project policy.
|
|
45
|
+
Missing credentials, publisher identity, or admission is
|
|
46
|
+
BLOCKED(provision, owner). If that authority accepts a request and returns a
|
|
47
|
+
durable operation reference plus reconciliation path, record
|
|
48
|
+
WAIT(reference, next-check); otherwise preserve uncertainty and do not retry.
|
|
49
|
+
|
|
50
|
+
- name: record-release-outcome
|
|
51
|
+
number: "050"
|
|
52
|
+
instructions: |
|
|
53
|
+
Record only attributable publication, installation, or deployment receipts from
|
|
54
|
+
their owning authorities, each bound to the exact manifest. Host-owned root
|
|
55
|
+
effects remain referenced external operations. Keep later merges outside this
|
|
56
|
+
release outcome.
|
|
57
|
+
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Select and integrate an ordered batch from existing producer tasks.
|
|
2
|
+
# Usage: ace-assign create --task TASK[,TASK...] --preset integrate-batch
|
|
3
|
+
|
|
4
|
+
name: integrate-batch
|
|
5
|
+
description: Select a dependency-valid integration batch and renew exact-head evidence after candidate movement
|
|
6
|
+
|
|
7
|
+
parameters:
|
|
8
|
+
taskrefs:
|
|
9
|
+
required: true
|
|
10
|
+
type: array
|
|
11
|
+
description: Existing producer task references eligible for batch selection
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: select-integration-batch
|
|
15
|
+
number: "010"
|
|
16
|
+
instructions: |
|
|
17
|
+
Resolve the current project delivery guide and evaluate producer task references
|
|
18
|
+
{{taskrefs}}. Record the ordered eligible set, selected entries in intended
|
|
19
|
+
integration order, deferred entries with reasons, decision actor and timestamp,
|
|
20
|
+
policy/plan revision, and evidence references. Bind each selected entry to its
|
|
21
|
+
exact candidate head SHA and the current target branch SHA. Do not derive order
|
|
22
|
+
from completion time and do not reparent producer tasks.
|
|
23
|
+
|
|
24
|
+
- name: delegate-candidate-update
|
|
25
|
+
number: "020"
|
|
26
|
+
instructions: |
|
|
27
|
+
When the target branch moved or a selected candidate needs rebase, conflict
|
|
28
|
+
resolution, or another head-changing update, delegate that update to an
|
|
29
|
+
attributable executor. Retain the old and new exact candidate head SHA and the
|
|
30
|
+
declared delta. Do not perform integration from evidence bound to the old head.
|
|
31
|
+
|
|
32
|
+
- name: delegate-renewed-evidence
|
|
33
|
+
number: "030"
|
|
34
|
+
instructions: |
|
|
35
|
+
After any candidate movement, delegate renewed evidence for the new exact head:
|
|
36
|
+
prove replay content identity with range-diff or a stronger project-approved
|
|
37
|
+
comparison, run fresh relevant tests, and obtain an independent reviewer verdict.
|
|
38
|
+
The reviewer must be independent of the executor. Content beyond the declared
|
|
39
|
+
replay delta requires the full project review gate, not a verdict-stands shortcut.
|
|
40
|
+
|
|
41
|
+
- name: reevaluate-integration-readiness
|
|
42
|
+
number: "040"
|
|
43
|
+
instructions: |
|
|
44
|
+
Re-read dependency state, candidate and target branch heads, evidence,
|
|
45
|
+
authorization, transport, and grouping constraints immediately before requesting
|
|
46
|
+
integration. Any change voids prior eligibility and requires a new complete
|
|
47
|
+
selection decision record. Defer every candidate whose exact-head evidence is no
|
|
48
|
+
longer current.
|
|
49
|
+
|
|
50
|
+
- name: request-integration
|
|
51
|
+
number: "050"
|
|
52
|
+
instructions: |
|
|
53
|
+
Request integration only through the project's authorized integrator, preserving
|
|
54
|
+
the exact ordered candidates and target binding. This step grants no merge
|
|
55
|
+
authority. Missing provision is BLOCKED(provision, owner). After a request is
|
|
56
|
+
accepted, WAIT requires its durable operation reference and exact reconciliation
|
|
57
|
+
path. On an uncertain effect, reconcile the original operation and never repeat
|
|
58
|
+
the merge request blindly.
|
|
59
|
+
|
|
60
|
+
- name: record-integration-result
|
|
61
|
+
number: "060"
|
|
62
|
+
instructions: |
|
|
63
|
+
Record the authoritative result and resulting target head for each selected entry,
|
|
64
|
+
or the attributable blocker. Re-evaluate remaining candidates against the moved
|
|
65
|
+
target before another effect; successful integration does not select a release cut
|
|
66
|
+
or authorize publication.
|
|
67
|
+
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Delivery queue supervision over existing producer tasks.
|
|
2
|
+
# Usage: ace-assign create --task TASK[,TASK...] --preset supervise-delivery
|
|
3
|
+
|
|
4
|
+
name: supervise-delivery
|
|
5
|
+
description: Supervise dependency-aware integration and release decisions for several PR-ready producer tasks
|
|
6
|
+
|
|
7
|
+
parameters:
|
|
8
|
+
taskrefs:
|
|
9
|
+
required: true
|
|
10
|
+
type: array
|
|
11
|
+
description: Existing producer task references to observe as delivery queue entries
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: reconcile-delivery-queue
|
|
15
|
+
number: "010"
|
|
16
|
+
instructions: |
|
|
17
|
+
Reconcile the current canonical Assign attempts, task evidence, candidate heads,
|
|
18
|
+
dependency state, and project delivery guide for producer task references:
|
|
19
|
+
{{taskrefs}}.
|
|
20
|
+
|
|
21
|
+
These are references to producer tasks; never reparent, duplicate, reopen, or
|
|
22
|
+
change producer task status. A PR-ready worker remains terminal even while this
|
|
23
|
+
delivery assignment stays open. No second queue, journal, daemon, or cache may
|
|
24
|
+
be created. Treat an empty observation as current input only: Transiently empty
|
|
25
|
+
is not accepted completion.
|
|
26
|
+
|
|
27
|
+
- name: supervise-delivery-queue
|
|
28
|
+
number: "020"
|
|
29
|
+
instructions: |
|
|
30
|
+
Act as the one running supervisory step for producer task references {{taskrefs}}.
|
|
31
|
+
Apply the resolved project decision guide to dependency readiness, integration
|
|
32
|
+
grouping, evidence freshness, release/demo/production policy, and available
|
|
33
|
+
authority. Integration order follows dependencies and policy, never completion
|
|
34
|
+
order or worker finish timestamps.
|
|
35
|
+
|
|
36
|
+
Before every integration effect, write a canonical step report containing all
|
|
37
|
+
mandatory decision-record fields:
|
|
38
|
+
- ordered eligible set;
|
|
39
|
+
- selected next entry;
|
|
40
|
+
- deferred entries, with a reason for every skipped candidate;
|
|
41
|
+
- decision actor and timestamp;
|
|
42
|
+
- policy/plan revision and evidence references used for the decision.
|
|
43
|
+
|
|
44
|
+
For every entry, evaluate dependency state, exact candidate head SHA, fresh
|
|
45
|
+
test and independent-review evidence bound to that head, required authority and
|
|
46
|
+
transport, and grouping constraints. Re-record the decision after dependency,
|
|
47
|
+
candidate head, evidence, authority, transport, or target-branch movement.
|
|
48
|
+
|
|
49
|
+
- name: reconcile-integration-operation
|
|
50
|
+
number: "030"
|
|
51
|
+
instructions: |
|
|
52
|
+
Reconcile each requested integration through its original canonical operation.
|
|
53
|
+
Use WAIT(reference, next-check) only after an authorized request has a durable
|
|
54
|
+
operation reference and an exact public poll/reconcile path. Use
|
|
55
|
+
BLOCKED(provision, owner) when authority, transport, provisioning, or the durable
|
|
56
|
+
result path is absent. A lost or uncertain response without a durable path is
|
|
57
|
+
BLOCKED with the responsible host owner; never invent WAIT and never blindly
|
|
58
|
+
repeat launch, merge, publication, or deployment.
|
|
59
|
+
|
|
60
|
+
- name: decide-delivery-continuation
|
|
61
|
+
number: "040"
|
|
62
|
+
instructions: |
|
|
63
|
+
Record the explicit project-policy decision to integrate more candidates, cut a
|
|
64
|
+
release from the current accepted set, deploy through a separately authorized
|
|
65
|
+
project workflow, or keep this delivery open. Preserve callbacks and resume from
|
|
66
|
+
canonical state. Producer completion alone never closes this assignment.
|
|
67
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.68.0] - 2026-10-14
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Admit ordinary fixed merge requests through the maintained `ace-lab service request/status --mode ordinary-merge` producer via the closed-argv `OrdinaryMergeCli`, with opaque-reference recovery, exact terminal receipt acceptance, and the canonical request digest defined as lowercase SHA-256 over the full eight-field immutable binding per spec ruling r4 — re-derived from the recorded binding on every poll and validated against every acknowledgment, refusal, status, and receipt echo.
|
|
15
|
+
- Add fixed merge request schemas, opaque fixed-effect references, evidence-journal records, and coordinator primitives (admit/begin/settle/read-only status) so the canonical Assign attempt/evidence state remains the sole durable record: an identical resubmission replays the original acknowledgment, a reused, consumed, expired, or out-of-scope authorization raises the distinct `AuthorizationConflict`, and a restarted receiver can never begin the effect twice.
|
|
16
|
+
|
|
17
|
+
## [0.67.0] - 2026-10-12
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- Add project-adaptable delivery supervision presets for dependency-aware queue decisions, renewed-evidence integration batches, immutable release cuts, and evidence-preserving closure.
|
|
22
|
+
|
|
10
23
|
## [0.66.1] - 2026-10-10
|
|
11
24
|
|
|
12
25
|
### Fixed
|
data/Rakefile
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/docs/demo/fork-provider.gif
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/docs/getting-started.md
CHANGED
|
File without changes
|
data/docs/handbook.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -747,6 +747,45 @@ ace-assign attempt reconcile --attempt "$ATTEMPT_ID" --receipt /tmp/attempt-rece
|
|
|
747
747
|
- Running attempts stay running only while their recorded process is verifiably live; anything else becomes `stopped` or `uncertain`.
|
|
748
748
|
- Never replay `merge`, `publish`, or `deploy` automatically. Reconciliation records evidence; it never re-executes effects.
|
|
749
749
|
|
|
750
|
+
#### Integration Gate and Typed Outcomes (every integration invocation)
|
|
751
|
+
|
|
752
|
+
These gates apply at EVERY integration entry point — a native integrate
|
|
753
|
+
command, a service invocation, or an assignment integration step — with
|
|
754
|
+
shared contract validation so no entry point bypasses them.
|
|
755
|
+
|
|
756
|
+
- Before any mutation, resolve FRESH repository, PR, candidate exact head,
|
|
757
|
+
target base/head, review/test evidence and the authorized executor; recheck
|
|
758
|
+
target/head immediately before the mutation. A detected race invalidates
|
|
759
|
+
eligibility for that invocation.
|
|
760
|
+
- The low-level privileged integrator ENFORCES the gates and returns one typed
|
|
761
|
+
outcome: `merged`, `needs-rebase`, `blocked` or `uncertain`. It never
|
|
762
|
+
authors, rebases or reviews its own candidate. Relay alone is not
|
|
763
|
+
execution: the queue owner monitors until receipt and continuation.
|
|
764
|
+
- If the target (current main) is NOT an ancestor of the candidate head, the
|
|
765
|
+
outcome is `needs-rebase`: never merge and never silently rewrite. The queue
|
|
766
|
+
owner delegates `wfi://git/rebase` (as-git-rebase, including CHANGELOG
|
|
767
|
+
preservation) in the candidate's isolated worktree, obtains refreshed
|
|
768
|
+
exact-head checks plus independent review of the NEW head, updates the PR,
|
|
769
|
+
verifies remote candidate identity and resubmits. A common old base does
|
|
770
|
+
NOT make sibling heads sequentially fast-forwardable.
|
|
771
|
+
- Integration is serial in PREPARATION as well as in effect: the accepted
|
|
772
|
+
receipt for one candidate causes preparation of ONLY the next selected
|
|
773
|
+
candidate — never a mass rebase of the remaining queue. Each candidate, on
|
|
774
|
+
its turn: resolve fresh target main; delegate `wfi://git/rebase` in that
|
|
775
|
+
candidate's isolated worktree IF needed; run the applicable checks; obtain
|
|
776
|
+
an INDEPENDENT EXPLICIT review of the resulting exact head (patch identity
|
|
777
|
+
may support a short delta review but never substitutes the explicit
|
|
778
|
+
independent head approval); verify the remote PR head/base; issue ONE
|
|
779
|
+
scoped integrator request; wait/reconcile the actual integration receipt;
|
|
780
|
+
refresh main; select and prepare ONLY the next candidate. Queued later
|
|
781
|
+
PRs keep their existing branches/heads untouched until their turn; prior
|
|
782
|
+
batch work is never rolled back or reset.
|
|
783
|
+
- `uncertain` triggers reconciliation against the original durable reference;
|
|
784
|
+
it never permits blind retry.
|
|
785
|
+
- Never push directly to main; never switch the canonical checkout to a topic
|
|
786
|
+
branch; never reuse a stale review as approval for a different or moved
|
|
787
|
+
head.
|
|
788
|
+
|
|
750
789
|
### Human-in-the-Loop (HITL) Stall Protocol
|
|
751
790
|
|
|
752
791
|
Canonical source of truth: `wfi://hitl`.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|