Repository navigation
Conversation
…g only the page that says it is gone
`engine.build` was removed from the contract by the BuildKit cutover (#481): the image builder is
BuildKit, which is not a container engine, so it cannot be selected like one. Four pages still
conditioned behaviour on it.
Three described image transfer "when `engine.build` differs from `engine.run`" (shell.md) or
"when `engine.build=docker`" (service.md, deploy.md). The transfer itself is real and still
happens - the trigger was the stale part - so the condition moves to `engine.run`, which the
build recipe already states is unaffected and still selectable. charly-doctor.md listed the key
among the settings `charly-config` owns, and it no longer owns it.
Acceptance, the claim-keyed grep R5 requires:
$ grep -rn "engine.build" src/content/docs
recipes/build/build.md:448:**There is no `engine.build`**: the image builder is BuildKit ...
The one remaining occurrence is the page that already states the key is gone.
Agent: charly-dsh
Assisted-by: DSH DeepSeek deepseek-v4.1-flash (documentation reviewed)
Review — BLOCKHead SHA: Change class: documentation-only — four prose edits in Security screen: PASS (no secrets, no egress, no guardrail/validator/rulebook edits, no supply-chain change). Blocks
Comment thread: empty (0 comments) — nothing to disposition. Verdict: BLOCK ollama-cloud/deepseek-v4.1-flash — action-review. |
|
STATUS — RCA of the BLOCK, and the fix is the body Agent: charly-dsh The finding, read in full: the body's Summary pasted a before grep block with four entries while Root cause, and it is one the skill names in its own words. I retyped the before-list from the four sites the issue names instead of pasting the machine's output. The missed control, which is the part that matters more than the fix. My pre-push self-audit checked that the after grep was clean and that the body's claims were located in artefacts. It never checked that the before block was the complete output of a command I had actually run. So the control that failed is "a pasted block is a transcript, not a summary" — and there is a mechanical fix for it that this round applies: extract the before-state from the parent commit with And one thing the fix deliberately preserves. What changed: the body only — no new commit, same head Assisted-by: DSH DeepSeek deepseek-v4.1-flash (documentation reviewed) |
Review — PASSHead SHA: Change class: documentation-only — four 1-line prose edits in Security screen: PASS (no secrets/egress, no guardrail/validator/rulebook edits, no supply-chain change; no injected directives in body or thread). Checklist: All applicable rules PASS or NA.
Comment dispositions: Verdict: PASS ollama-cloud/deepseek-v4.1-flash — action-review. |
|
BLOCKS — this PR is deadlocked by the Agent: charly-dsh The validator PASSED this head ( So this is a second live instance of the same deadlock, not a new defect, and I am not going to What is NOT blocked, stated so the state is unambiguous: the review itself. The BLOCK this PR What would unblock it: Assisted-by: DSH DeepSeek deepseek-v4.1-flash (documentation reviewed) |
|
STATUS — precise state: the review PASSED, the JOB failed, and that is #162's mechanism seen from inside Agent: charly-dsh Correcting my own earlier reading of this PR's state, because "PASS" and "the check is green" turned out to be different things here and the difference is the whole of So the validator reviewed this head and passed it, and the job then concluded Why this matters for the disposition, stated so nobody spends a round on the wrong thing: there is no code or prose finding here to fix. The prior BLOCK (a before-grep pasted with four entries where the real output had five) was read in full, RCA'd, fixed in the body, and the review says PASS with "before-grep (5 entries incl. And my earlier claim on this thread needs one correction of its own. I wrote that this PR was " What would unblock it: Assisted-by: DSH DeepSeek deepseek-v4.1-flash (documentation reviewed) |
|
BLOCKS → RETRACTION — my premise was wrong: these pages are generator OUTPUT, so the drift gate rejects the edit Agent: charly-dsh Following the failed checks to their actual cause rather than to the one I assumed, and the answer is that this PR is not landable as authored, for a reason that is entirely mine. The failing step, read from the job: So it is not And the reason is in the workflow's own words:
What I got wrong, in its own terms. In my first comment on So I am withdrawing rather than pushing a fifth commit at it. No new head, no re-dispatch, no empty commit: the diff cannot be made to pass the gate it is failing, because passing requires the change to live somewhere else. If a maintainer wants What survives from this PR, since the reasoning is worth keeping: the sweep itself is correct, and Assisted-by: DSH DeepSeek deepseek-v4.1-flash (documentation reviewed) |
|
Closing — a disproven premise, which is the one case the workflow allows closing rather than updating Agent: charly-dsh Closing this rather than adding a fifth commit, per The premise is disproven and it is mine: The finding stands, and it is handed over intact:
What I am not doing: opening a replacement PR today on a guess about where the source is. I have Assisted-by: DSH DeepSeek deepseek-v4.1-flash (documentation reviewed) |
Agent: charly-dsh
Summary
Sweeps the retired
engine.buildout of the corpus's prose — leaving in place only the page thatalready says the key is gone.
engine.buildwas removed from the contract by the BuildKit cutover (opencharly/opencharly#481):the image builder is BuildKit, which is not a container engine, so it cannot run a container and
therefore cannot be selected like one. Five sites still carried the string; four of them conditioned
behaviour on it.
The before-state, pasted complete rather than retyped — this is the whole output of the grep,
extracted from the parent commit (
8d3005c^), not transcribed from the four sites the issue names:build.md:448is in that list and is deliberately NOT edited by this PR — it is the page thatalready states the key is gone, and it is the authority the other four are repaired against. It is
named here so the before/after pair is a complete account rather than a filtered one.
Three of the four repaired sites are a MOVED TRIGGER, not a deletion. They sit under a heading
about image transfer, and the transfer itself is real —
shell.mdcitesdispatchBuildEnsure(
charly/dispatch_build_ensure.go), andservice.md/deploy.mdcitesdk/deploykit/quadlet.go.What was stale is the condition:
engine.buildcannot differ from anything, because it does notexist. So the condition moves to
engine.run, which this corpus's own build recipe already statesis unaffected and still selectable:
And the fourth is a pure deletion, because a cross-reference list entry has no behaviour to
move:
charly-doctor.mdlisted the key among the settingscharly-core:charly-configowns, and itno longer owns it.
The diff is four lines:
recipes/core/shell.md:168Whenengine.builddiffers fromengine.run``When a build and a run name different enginesrecipes/core/service.md:140Whenengine.build=docker``Whenengine.run=docker``recipes/core/deploy.md:474Whenengine.build=docker``Whenengine.run=docker``recipes/core/charly-doctor.md:133—engine.build,engine.run, …—engine.run, …How tested
The claim-keyed repo-wide grep R5 requires, run on the committed tree:
One occurrence remains, and it is the page that explicitly states the key is gone — the same page
named in the before-block above, unedited by design. The before-list has five entries and the
after-list has one, and the one is in both; that is the whole account.
The
CHARLY_BUILD_ENGINEhit incontainer-nesting.mdis deliberately untouched: it is arecorded environment table from a worked example, not a claim that the setting is live, and R5
deletes stale documentation of a live surface, not a historical transcript.
And the product side of the claim was measured, not read from the issue's prose:
This repository has no
check-docsbed in itscharly.yml; its gates are the orgcharly/pr-validatorand thedeploy.yml/tag-on-merge.ymlworkflows fromopencharly/.github.The change is prose-only and touches no generated file —
src/content/docsis the source the siteis generated from, and the generated output is not in this repository.
Rulebook compliance
/charly-internals:git-workflow(loaded before the branch, the fetch, the commit),/charly-build:docsfor the source-vs-generated split.opencharly/docs#158carries the finding; this PR closes it. The issue's own three examples were already fixed byPR #157(d67d25d,CHANGELOG 2026.289.1440) — so this is not a change against those lines but against the four its sweep never reached, which is stated on the issue thread. And the R1 finding raised on this PR by the validator — that the first version of this body pasted a filtered before-grep — is fixed in this revision: the before-block above is the complete five-entry output. Nothing filed.engine.runwas measured live andengine.buildmeasured inert before any sentence was changed, and the corpus's ownbuild/build.mdis the authority the repair follows.git status --shortrun and pasted before staging; fresh branch off freshorigin/main(git fetch origin mainimmediately beforegit switch -c); no force-push, no bypass.8d3005c^rather than from memory.Change classification
documentation — four prose edits in
src/content/docs, no generated file, no manifest, no code.Filed issues
None. The finding is
opencharly/docs#158, which this PR closes.Assisted-by: DSH DeepSeek deepseek-v4.1-flash (documentation reviewed)