ace-handbook 0.34.0 → 0.35.1
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/handbook/config.yml +0 -0
- data/.ace-defaults/handbook/providers/agents.yml +0 -0
- data/.ace-defaults/nav/protocols/cookbook-sources/ace-handbook.yml +0 -0
- data/.ace-defaults/nav/protocols/guide-sources/ace-handbook.yml +0 -0
- data/.ace-defaults/nav/protocols/skill-sources/ace-handbook.yml +0 -0
- data/.ace-defaults/nav/protocols/tmpl-sources/ace-handbook.yml +0 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-handbook.yml +0 -0
- data/CHANGELOG.md +16 -0
- data/LICENSE +0 -0
- data/Rakefile +0 -0
- data/handbook/cookbooks/setup-starting-a-multi-ruby-gem-monorepo-with-ace.cookbook.md +0 -0
- data/handbook/cookbooks/setup-starting-an-astro-project-with-ace.cookbook.md +0 -0
- data/handbook/guides/ai-agent-integration.g.md +0 -0
- data/handbook/guides/atom-pattern.g.md +0 -0
- data/handbook/guides/changelog.g.md +0 -0
- data/handbook/guides/cli-dry-cli.g.md +0 -0
- data/handbook/guides/cli-support-cli.g.md +0 -0
- data/handbook/guides/coding-standards/ruby.md +0 -0
- data/handbook/guides/coding-standards/rust.md +0 -0
- data/handbook/guides/coding-standards/typescript.md +0 -0
- data/handbook/guides/coding-standards.g.md +0 -0
- data/handbook/guides/debug-troubleshooting.g.md +0 -0
- data/handbook/guides/error-handling/ruby.md +0 -0
- data/handbook/guides/error-handling/rust.md +0 -0
- data/handbook/guides/error-handling/typescript.md +0 -0
- data/handbook/guides/error-handling.g.md +0 -0
- data/handbook/guides/meta/agents-definition.g.md +0 -0
- data/handbook/guides/meta/guides-definition.g.md +0 -0
- data/handbook/guides/meta/markdown-definition.g.md +0 -0
- data/handbook/guides/meta/tools-definition.g.md +0 -0
- data/handbook/guides/meta/workflow-instructions-definition.g.md +0 -0
- data/handbook/guides/mono-repo-patterns.g.md +0 -0
- data/handbook/guides/multi-agent-research.g.md +0 -0
- data/handbook/guides/performance/ruby.md +0 -0
- data/handbook/guides/performance/rust.md +0 -0
- data/handbook/guides/performance/typescript.md +0 -0
- data/handbook/guides/performance.g.md +0 -0
- data/handbook/guides/prompt-caching.g.md +0 -0
- data/handbook/guides/quality-assurance/ruby.md +0 -0
- data/handbook/guides/quality-assurance/rust.md +0 -0
- data/handbook/guides/quality-assurance/typescript.md +0 -0
- data/handbook/guides/quality-assurance.g.md +0 -0
- data/handbook/guides/strategic-planning.g.md +0 -0
- data/handbook/guides/troubleshooting/ruby.md +0 -0
- data/handbook/guides/troubleshooting/rust.md +0 -0
- data/handbook/guides/troubleshooting/typescript.md +0 -0
- data/handbook/guides/workflow-context-embedding.g.md +0 -0
- data/handbook/skills/as-handbook-init-project/SKILL.md +0 -0
- data/handbook/skills/as-handbook-manage-agents/SKILL.md +0 -0
- data/handbook/skills/as-handbook-manage-cookbooks/SKILL.md +0 -0
- data/handbook/skills/as-handbook-manage-guides/SKILL.md +0 -0
- data/handbook/skills/as-handbook-manage-overrides/SKILL.md +0 -0
- data/handbook/skills/as-handbook-manage-workflows/SKILL.md +0 -0
- data/handbook/skills/as-handbook-parallel-research/SKILL.md +0 -0
- data/handbook/skills/as-handbook-perform-delivery/SKILL.md +0 -0
- data/handbook/skills/as-handbook-review-cookbooks/SKILL.md +0 -0
- data/handbook/skills/as-handbook-review-guides/SKILL.md +0 -0
- data/handbook/skills/as-handbook-review-workflows/SKILL.md +0 -0
- data/handbook/skills/as-handbook-synthesize-research/SKILL.md +0 -0
- data/handbook/skills/as-handbook-update-docs/SKILL.md +0 -0
- data/handbook/skills/as-release/SKILL.md +0 -0
- data/handbook/skills/as-release-bump-version/SKILL.md +0 -0
- data/handbook/skills/as-release-rubygems-publish/SKILL.md +0 -0
- data/handbook/skills/as-release-update-changelog/SKILL.md +0 -0
- data/handbook/templates/completed-work-documentation.md +0 -0
- data/handbook/templates/cookbooks/cookbook.template.md +0 -0
- data/handbook/templates/research-comparison.template.md +0 -0
- data/handbook/workflow-instructions/handbook/init-project.wf.md +0 -0
- data/handbook/workflow-instructions/handbook/manage-agents.wf.md +0 -0
- data/handbook/workflow-instructions/handbook/manage-cookbooks.wf.md +0 -0
- data/handbook/workflow-instructions/handbook/manage-guides.wf.md +0 -0
- data/handbook/workflow-instructions/handbook/manage-overrides.wf.md +10 -7
- data/handbook/workflow-instructions/handbook/manage-workflows.wf.md +0 -0
- data/handbook/workflow-instructions/handbook/parallel-research.wf.md +0 -0
- data/handbook/workflow-instructions/handbook/perform-delivery.wf.md +148 -1
- data/handbook/workflow-instructions/handbook/research.wf.md +0 -0
- data/handbook/workflow-instructions/handbook/review-cookbooks.wf.md +0 -0
- data/handbook/workflow-instructions/handbook/review-guides.wf.md +0 -0
- data/handbook/workflow-instructions/handbook/review-workflows.wf.md +0 -0
- data/handbook/workflow-instructions/handbook/synthesize-research.wf.md +0 -0
- data/handbook/workflow-instructions/handbook/update-docs.wf.md +0 -0
- data/handbook/workflow-instructions/release/bump-version.wf.md +0 -0
- data/handbook/workflow-instructions/release/local.wf.md +0 -0
- data/handbook/workflow-instructions/release/publish.wf.md +0 -0
- data/handbook/workflow-instructions/release/rubygems-publish.wf.md +0 -0
- data/handbook/workflow-instructions/release/update-changelog.wf.md +0 -0
- data/lib/ace/handbook/cli/commands/status.rb +0 -0
- data/lib/ace/handbook/cli.rb +0 -0
- data/lib/ace/handbook/models/skill_document.rb +0 -0
- data/lib/ace/handbook/molecules/skill_projection.rb +0 -0
- data/lib/ace/handbook/organisms/skill_inventory.rb +0 -0
- data/lib/ace/handbook/organisms/status_collector.rb +0 -0
- data/lib/ace/handbook/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 265fcff8879eef3a62977ecf5ac29dda8e252f06b5cb18f654da4064e6bb7de9
|
|
4
|
+
data.tar.gz: 7edd597cda3730560bfbf34ea456c02a230f10850da5c312a26d946926825dc6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 39ff2ee4d8a19b8329fd3588c7a78cc222cc139cb5017cb8cc53579867bf270fcb3bf754777b9cadfabca1046268989e8bfa379a54f392ae3ef1bfaaf687f5e1
|
|
7
|
+
data.tar.gz: 82491f08d0331566b9e42539e40d402668ed510cc89dcdecc4f3850575de3f8d8717b94babae38f2505c876091d9dd671341867d535000b36424b3719b76853b
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.35.1] - 2026-10-10
|
|
11
|
+
|
|
12
|
+
### Technical
|
|
13
|
+
|
|
14
|
+
- Clarify guide candidate discovery and the scope of this monorepo's checked-in priority-5 workflow source in `wfi://handbook/manage-overrides`.
|
|
15
|
+
|
|
16
|
+
## [0.35.0] - 2026-10-08
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Document standalone and protected delivery, current canonical campaign round/result handoff and scoped publication prerequisites. Keep source verification separate from installed Lab acceptance.
|
|
21
|
+
|
|
22
|
+
- Route unavailable publication prerequisites through the original assignment failure/status owners without claiming protected publication or retry authority.
|
|
23
|
+
|
|
24
|
+
- Route protected delivery through original worker merge request, canonical status and exact result consumption while preserving ordinary delivery and unresolved protected PR policy.
|
|
25
|
+
|
|
10
26
|
## [0.34.0] - 2026-10-05
|
|
11
27
|
|
|
12
28
|
### Changed
|
data/LICENSE
CHANGED
|
File without changes
|
data/Rakefile
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
|
|
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
|
|
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
|
|
@@ -34,7 +34,7 @@ per URI.
|
|
|
34
34
|
|
|
35
35
|
| Surface | Protocol | Project-local location | Overridable? | Winner of duplicates (shipped defaults) |
|
|
36
36
|
|---------|----------|------------------------|--------------|------------------------------------------|
|
|
37
|
-
| Workflows | `wfi://` | `.ace-handbook/workflow-instructions/<ns>/<name>.wf.md` | Yes | Project-local, when its source priority is lower than the gem source's (e.g.
|
|
37
|
+
| Workflows | `wfi://` | `.ace-handbook/workflow-instructions/<ns>/<name>.wf.md` | Yes | Project-local, when its source priority is lower than the gem source's (e.g. this monorepo's checked-in `local` source at priority 5 vs gem at 10) |
|
|
38
38
|
| Cookbooks | `cookbook://` | `.ace-handbook/cookbooks/<name>.cookbook.md` | Yes | The candidate from the source with the lower priority number. The shipped project-local default registers priority 20 and the gem source 10, so **the gem wins by default**; register a project cookbook source with priority < 10 to make project-local win |
|
|
39
39
|
| Guides | `guide://` | `handbook/guides/<name>.g.md` | Yes, with registration | Requires a project source registration (`.ace/nav/protocols/guide-sources/local.yml` → `handbook/guides`); with priority < 10 the project-local guide wins. Without registration the gem wins |
|
|
40
40
|
| Skills | `skill://` | none | **No** | Always the gem. Skills are thin layers; override the workflow the skill calls instead |
|
|
@@ -44,9 +44,9 @@ per URI.
|
|
|
44
44
|
|
|
45
45
|
Sources for a protocol are scanned in ascending priority order (lower number = higher precedence); the first source
|
|
46
46
|
containing the resource wins and remaining duplicates are ignored. Registration defaults: project sources 10, user
|
|
47
|
-
sources 50, gem defaults 100 — an individual source registration may pin another value
|
|
48
|
-
|
|
49
|
-
to the gem at 10
|
|
47
|
+
sources 50, gem defaults 100 — an individual source registration may pin another value. In this monorepo, the checked-in
|
|
48
|
+
`.ace/nav/protocols/wfi-sources/local.yml` sets priority 5 and beats the gem at 10; downstream projects must register
|
|
49
|
+
their own local workflow source. The shipped project-local cookbook source at 20 loses to the gem at 10.
|
|
50
50
|
|
|
51
51
|
To answer "why did this candidate win?" for a concrete URI without planting probe files:
|
|
52
52
|
|
|
@@ -73,7 +73,8 @@ are ignored and resolution always returns the gem file. The design rule is: **ov
|
|
|
73
73
|
2. **Create the project-local file** at the surface's project-local location (see table), keeping the canonical
|
|
74
74
|
frontmatter and structure so tools keep resolving it.
|
|
75
75
|
3. **Ensure the source registration makes your file win:**
|
|
76
|
-
- workflows:
|
|
76
|
+
- workflows: register `.ace/nav/protocols/wfi-sources/local.yml` with priority below the gem source; this monorepo's
|
|
77
|
+
checked-in registration uses 5, but downstream projects do not receive that project-local source by default.
|
|
77
78
|
- cookbooks: register `.ace/nav/protocols/cookbook-sources/local.yml` with priority < 10 (the shipped
|
|
78
79
|
project-local default of 20 loses to the gem's 10).
|
|
79
80
|
- guides: register `.ace/nav/protocols/guide-sources/local.yml` pointing at `handbook/guides` with priority < 10;
|
|
@@ -135,8 +136,10 @@ ace-handbook sync # regenerates .agents/ski
|
|
|
135
136
|
|
|
136
137
|
- **Override silently loses:** inspect `ace-nav resolve <uri> --why`; the losing candidate's source priority is too
|
|
137
138
|
high — lower it in the source registration.
|
|
138
|
-
- **Guide override not
|
|
139
|
-
|
|
139
|
+
- **Guide override does not win:** a planted guide may be discovered as a losing candidate through the
|
|
140
|
+
`@ace-support-nav` gem-default example source (`./handbook/guides`, priority 100), or it may be absent from the
|
|
141
|
+
candidates, depending on source registration. Register `.ace/nav/protocols/guide-sources/local.yml` with priority
|
|
142
|
+
below the gem source (see Process Step 3), then confirm the project candidate wins with `ace-nav resolve --why`.
|
|
140
143
|
- **Skill edit appears to do nothing:** skills are not overridable; override the workflow the skill calls.
|
|
141
144
|
- **`.agents/skills/` edits keep disappearing:** expected — `ace-handbook sync` regenerates the projection and prunes
|
|
142
145
|
stale entries; edit canonical skills in the owning gem.
|
|
File without changes
|
|
File without changes
|
|
@@ -42,6 +42,22 @@ is recorded, inspect it with
|
|
|
42
42
|
(or `--default-server`, otherwise remote resolution). Inside ACE use source
|
|
43
43
|
`bin/ace-*` commands. Load the relevant implementation and test instructions.
|
|
44
44
|
|
|
45
|
+
## Coordinating parallel delivery
|
|
46
|
+
|
|
47
|
+
The coordinating agent owns the review and integration queue as well as dispatch.
|
|
48
|
+
Before opening another scope, review completed candidates and integrate those
|
|
49
|
+
whose executed checks and independent verdict permit it. If a candidate cannot
|
|
50
|
+
integrate, record its exact blocker and owner in the existing task checklist;
|
|
51
|
+
continue independent work only when it advances the same delivery objective.
|
|
52
|
+
Do not become a review bottleneck by repeatedly starting unrelated work while
|
|
53
|
+
finished candidates wait for your decision.
|
|
54
|
+
|
|
55
|
+
After integration, verify the actual main and requested remote refs and update
|
|
56
|
+
the current checklist. Distinguish committed in a worktree, accepted by review,
|
|
57
|
+
integrated locally, pushed and released. A partial merge is useful incremental
|
|
58
|
+
work, not task completion. Keep the remaining producer/consumer join explicit
|
|
59
|
+
and test it on the combined candidate before declaring that result delivered.
|
|
60
|
+
|
|
45
61
|
## Standalone delivery
|
|
46
62
|
|
|
47
63
|
Implement and commit the requested local task/inline scope using existing task
|
|
@@ -77,7 +93,118 @@ and merge evidence is accepted. Preparation after a completed delivery is a
|
|
|
77
93
|
separate follow-up candidate/scope and must obtain its own required evidence.
|
|
78
94
|
Publication remains separately authorized and gated, including OTP when required.
|
|
79
95
|
|
|
80
|
-
##
|
|
96
|
+
## Protected worker PR operations and status
|
|
97
|
+
|
|
98
|
+
An installed protected worker uses its original prepared assignment, attempt,
|
|
99
|
+
mapping and hierarchical scope. A role charter or selector is not an authority
|
|
100
|
+
capability: the public owners authenticate the actual worker descendant and
|
|
101
|
+
original birth. Other installed participants must delegate to the provisioned
|
|
102
|
+
worker/executor; they cannot select local delivery. Do not run the ordinary
|
|
103
|
+
managed delivery commands below from this protected route. Draft create/update
|
|
104
|
+
may precede independent review, through the same configured receiver. Ready and
|
|
105
|
+
merge require executed checks, current accepted independent review and the exact
|
|
106
|
+
operation authorization. See `wfi://git/pr/create` and `wfi://git/pr/update` for
|
|
107
|
+
the bounded draft input; credentials do not grant those operations.
|
|
108
|
+
|
|
109
|
+
1. Retain the exact accepted candidate head and candidate generation, original
|
|
110
|
+
assignment/attempt/mapping/scope, configured receiver ID, authorization and
|
|
111
|
+
request ID. Use the reviewed retained delivery parameters, explicit authorized
|
|
112
|
+
merge method and exact PR URL. Accepted independent review for this candidate
|
|
113
|
+
remains a canonical authority gate; local report files cannot replace it.
|
|
114
|
+
2. Before the first claim, read
|
|
115
|
+
`ace-assign authority status --mapping MAPPING --assignment ID --attempt ATTEMPT`.
|
|
116
|
+
Its `generation` is the current authority generation and
|
|
117
|
+
`result_candidate_generation` is the candidate generation. They are distinct;
|
|
118
|
+
never increment or substitute one for the other. Verify the candidate generation
|
|
119
|
+
matches the accepted candidate. Unavailable or changed selection blocks the
|
|
120
|
+
request. Keep the exact returned generation for this invocation; a conflict
|
|
121
|
+
is not permission to refresh it and resend.
|
|
122
|
+
3. Select `create`, `update`, `ready` or `merge`. Save one nonsecret input file:
|
|
123
|
+
create/update contain exactly `target`, `delivery`, `title`, `body`; ready
|
|
124
|
+
contains `target`, `delivery`; merge contains `target`, `delivery`, `method`.
|
|
125
|
+
A create target is the selected base repository URL; other operations use
|
|
126
|
+
the exact PR URL. Target contains that URL as `resource` and nullable
|
|
127
|
+
`artifact_digest`; delivery is the retained `forge_server`/`forge_default` and
|
|
128
|
+
complete `pr_provenance` mapping. Method is explicitly squash, merge or rebase.
|
|
129
|
+
The maintained owner reads one unchanged bounded regular file and computes its
|
|
130
|
+
canonical input digest. It does not accept a caller-supplied digest for request.
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{"target":{"resource":"https://forge.example/team/repo/pulls/25","artifact_digest":null},"delivery":{"forge_server":"forge-lab","forge_default":false,"pr_provenance":{"mode":"canonical","head_repository_url":"https://forge.example/team/repo","head_ref":"work","base_repository_url":"https://forge.example/team/repo","base_ref":"main"}},"method":"squash"}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
4. Invoke the existing configured receiver through
|
|
137
|
+
`ace-lab service request --project PROJECT --assignment ID --attempt ATTEMPT --mapping MAPPING --scope SCOPE --service SERVICE --candidate-head SHA --candidate-generation CANDIDATE-GENERATION --expected-generation AUTHORITY-GENERATION --operation OPERATION --authorization AUTHORIZATION --request-id REQUEST --input INPUT.json`.
|
|
138
|
+
No dry-run or standalone fallback exists here. Retain the returned original
|
|
139
|
+
`selection` from either `data` or `error`: it includes input_digest and target.
|
|
140
|
+
`service_claim_accepted` acknowledges a durable claim, not operation completion.
|
|
141
|
+
`service_claim_unconfirmed` requires inspection of this original request;
|
|
142
|
+
neither uncertainty nor a timeout authorizes automatic resubmission.
|
|
143
|
+
5. Read exact canonical status without an effect:
|
|
144
|
+
`ace-lab service status --request REQUEST --project PROJECT --assignment ID --attempt ATTEMPT --mapping MAPPING --scope SCOPE --candidate-head SHA --candidate-generation CANDIDATE-GENERATION --input-digest INPUT-DIGEST --target ORIGINAL-TARGET`.
|
|
145
|
+
Use the original returned selection; omit `--artifact-digest` for null, or
|
|
146
|
+
supply its exact original SHA256 when present. Status does not use a refreshed
|
|
147
|
+
expected generation and never repairs or restarts an uncertain service.
|
|
148
|
+
Missing receiver, review, authorization or installed owner stays a routed
|
|
149
|
+
blocker. A caller-local journal or remote PR observation is not canonical proof.
|
|
150
|
+
6. Only after canonical succeeded status, consume the exact completed result:
|
|
151
|
+
`ace-assign delivery --assignment ID --attempt ATTEMPT --mapping MAPPING --scope SCOPE --operation OPERATION --service-request REQUEST --candidate-head SHA --candidate-generation CANDIDATE-GENERATION --input-digest INPUT-DIGEST --target ORIGINAL-TARGET`.
|
|
152
|
+
Apply the same nullable artifact flag rule. Do not supply local `--tests`,
|
|
153
|
+
`--review`, title/body or parameters. The authority has already verified the
|
|
154
|
+
original review, completion receipt/import and exact input association, and
|
|
155
|
+
atomically published the delivery event. Worker consumption verifies that
|
|
156
|
+
event; it neither appends evidence nor invokes the provider again.
|
|
157
|
+
7. Preserve the original request and result references on resume. Exact read-only
|
|
158
|
+
status is safe; an explicit identical request may only return its retained
|
|
159
|
+
canonical claim/result and must not refresh selectors. Never retry an unknown
|
|
160
|
+
effect to obtain a receipt. Publication, deployment and synchronization still
|
|
161
|
+
require their separate authorization, evidence and OTP where applicable.
|
|
162
|
+
|
|
163
|
+
## Protected campaign result before readiness or merge
|
|
164
|
+
|
|
165
|
+
When the original protected parent registers `review_campaign`, finish the existing
|
|
166
|
+
R1/R2/R3 review policy through its linked, canonically settled collection/check/
|
|
167
|
+
approval children. Follow the protected handoff in `wfi://review/pr`; ordinary
|
|
168
|
+
`ace-review campaign` output and `ace-assign attempt finish` are not substitutes.
|
|
169
|
+
Draft create/update above may run before independent review. Ready and merge wait
|
|
170
|
+
for the current canonical parent campaign result, executed checks and independent
|
|
171
|
+
review acceptance.
|
|
172
|
+
|
|
173
|
+
1. Upload the documented R1 round input using the closed envelope
|
|
174
|
+
`{"version":1,"round":ROUND_OBJECT,"artifacts":[{"path":"report.md","sha256":"SHA256"}]}`.
|
|
175
|
+
Keep the original parent selectors, pinned head/base/scopes and registered
|
|
176
|
+
campaign/requirements/policy. The round attempt_id equals its stable mutation.
|
|
177
|
+
`ace-assign campaign-record-round --mapping MAPPING --assignment ID --attempt ATTEMPT --head SHA --candidate-generation N --mutation ROUND-ATTEMPT --input ROUND-ENVELOPE.json --artifact REPORT-BYTES`
|
|
178
|
+
supplies ordered immutable artifact bytes, not authority-readable worker paths.
|
|
179
|
+
Repeat the artifact flag in envelope order; settled child receipts establish
|
|
180
|
+
execution and approval, not editable reports alone.
|
|
181
|
+
2. After policy acceptance, download its verified exact bytes:
|
|
182
|
+
`ace-assign campaign-export-result --mapping MAPPING --assignment ID --attempt ATTEMPT --head SHA --candidate-generation N --output RESULT.json`.
|
|
183
|
+
Retain exported sha256/result_identity/journal_commit. The authority owns the
|
|
184
|
+
campaign store and validates the accepted immutable candidate; the output file
|
|
185
|
+
is a transfer artifact, not permission to change or bypass policy.
|
|
186
|
+
3. Keep the original parent's succeeded review receipt, independent actors and
|
|
187
|
+
executed checks. Add `campaign: {id: REGISTERED-CAMPAIGN, result: {path:
|
|
188
|
+
RESULT.json, sha256: EXPORTED-SHA256}}` and the identical reference in its
|
|
189
|
+
ordered artifacts. Upload exact exported bytes in that artifact slot with
|
|
190
|
+
`ace-assign submit-result --mapping MAPPING --assignment ID --attempt ATTEMPT --head SHA --candidate-generation N --expected-generation G --mutation RESULT-MUTATION --receipt PARENT-RECEIPT.json --artifact RESULT.json`.
|
|
191
|
+
Supply any other receipt artifacts in their declared order. Submission imports
|
|
192
|
+
evidence; the original reviewer/finish owner still owns acceptance and release.
|
|
193
|
+
G is persisted authority generation; N is candidate generation, never G.
|
|
194
|
+
|
|
195
|
+
Restart retains original mutations, envelope/receipt bytes, ordered artifacts and
|
|
196
|
+
selectors. Exact replay preserves the existing round/result; re-export only accepts
|
|
197
|
+
an identical existing file. Changed candidate, policy or missing canonical child
|
|
198
|
+
settlement rejects current acceptance without erasing history. Ready/merge service
|
|
199
|
+
admission rechecks the canonical parent campaign result. Route a missing producer
|
|
200
|
+
to its owner, keeping delivery unfinished; do not build a new receipt generator,
|
|
201
|
+
refresh conflicting generations or use ordinary commands as a protected fallback.
|
|
202
|
+
|
|
203
|
+
## Ordinary managed delivery steps
|
|
204
|
+
|
|
205
|
+
These steps retain the existing nonprotected managed workflow. They are not a
|
|
206
|
+
fallback for an installed protected participant or a blocked protected operation.
|
|
207
|
+
|
|
81
208
|
|
|
82
209
|
1. Record the requested delivery steps and their owners before implementation.
|
|
83
210
|
Follow the existing task-work plan. Commit the implementation and run appropriate
|
|
@@ -132,6 +259,26 @@ Publication remains separately authorized and gated, including OTP when required
|
|
|
132
259
|
authorized merge; publication is not mandatory. Keep the task in progress until
|
|
133
260
|
all of its actual acceptance criteria are satisfied.
|
|
134
261
|
|
|
262
|
+
## Unavailable publication prerequisite
|
|
263
|
+
|
|
264
|
+
Requested publication is a separate step, never a consequence of merge success.
|
|
265
|
+
Use the existing configured service policy and publisher prerequisites; an absent
|
|
266
|
+
publisher or unavailable required OTP is a routed blocker, not permission to run
|
|
267
|
+
an alternate command/account. The ordinary tested publisher's precondition
|
|
268
|
+
failure is ordinary source evidence only; it does not supply a protected
|
|
269
|
+
publication receipt or positive scoped OTP capability.
|
|
270
|
+
|
|
271
|
+
If the requested step cannot proceed, record its value-free cause through the
|
|
272
|
+
existing assignment failure owner:
|
|
273
|
+
`ace-assign fail --assignment ID@SCOPE --attempt ATTEMPT --mapping MAPPING --message "publication blocked: prerequisite unavailable"`.
|
|
274
|
+
Use the actual original protected selectors; ordinary assignments omit protected
|
|
275
|
+
selectors and use their existing target. Read `ace-assign status` for that same
|
|
276
|
+
scope afterward. The step remains failed/unfinished, with no publication receipt
|
|
277
|
+
or task completion. Preserve an uncertain service request separately: a failure
|
|
278
|
+
report must not claim a definitive denial or effect absence from a lost reply.
|
|
279
|
+
Protected recovery requires the reviewed new prepared version/attempt; never
|
|
280
|
+
finish the failed step or retry publication to manufacture success.
|
|
281
|
+
|
|
135
282
|
## Uncertainty and resume
|
|
136
283
|
|
|
137
284
|
In managed mode, read assignment status and retained qjl delivery events before
|
|
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
|
data/lib/ace/handbook/cli.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/ace/handbook/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ace-handbook
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.35.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michal Czyz
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-10-
|
|
10
|
+
date: 2026-10-12 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ace-support-config
|