Effector doubles the canonical marker in created comments (classify prepends an already-marked body) #44

Closed
opened 2026-09-02 08:44:33 +00:00 by larandar · 0 comments
Owner

Proposal

First live pass of Slice 1 over this tracker (2026-09-02, 43 open issues) created 43 canonical comments whose body carries the <!-- currycomb:refinement:v1 ... --> marker twice. Convergence is unaffected (has_canonical_marker still matches; reruns no-op), but the rendered projection is malformed.

Design

Contract seam between currycomb-projection and currycomb-effector: desired_body_markdown already embeds the marker as the first line of body_markdown (crates/currycomb-projection/src/canonical_comment.rs). classify in crates/currycomb-effector/src/apply.rs then prepends marker again — compensation for its own test fixture (decl_create) which passed a marker-free body_markdown. The declaration is correct; the effector must treat body_markdown as authoritative and post it verbatim.

Tasks

  • classify Create branch uses body_markdown as-is; drop the marker prepend
  • fixture decl_create carries a marker-embedded body like the real projection
  • assert the recorded create body contains the marker exactly once

Requirement scenario

GIVEN a canonical_comment.create declaration from the projection, WHEN cc-apply posts it, THEN the comment body equals body_markdown byte-for-byte and contains exactly one canonical marker. Repaired on the tracker by deleting marker-bearing canonical comments and re-running reconcile+apply.

Refs #43 — found while running Slice 1 against this tracker.

## Proposal First live pass of Slice 1 over this tracker (2026-09-02, 43 open issues) created 43 canonical comments whose body carries the `<!-- currycomb:refinement:v1 ... -->` marker twice. Convergence is unaffected (`has_canonical_marker` still matches; reruns no-op), but the rendered projection is malformed. ## Design Contract seam between `currycomb-projection` and `currycomb-effector`: `desired_body_markdown` already embeds the marker as the first line of `body_markdown` (`crates/currycomb-projection/src/canonical_comment.rs`). `classify` in `crates/currycomb-effector/src/apply.rs` then prepends `marker` again — compensation for its own test fixture (`decl_create`) which passed a marker-free `body_markdown`. The declaration is correct; the effector must treat `body_markdown` as authoritative and post it verbatim. ## Tasks - [ ] `classify` Create branch uses `body_markdown` as-is; drop the marker prepend - [ ] fixture `decl_create` carries a marker-embedded body like the real projection - [ ] assert the recorded create body contains the marker exactly once ## Requirement scenario GIVEN a `canonical_comment.create` declaration from the projection, WHEN `cc-apply` posts it, THEN the comment body equals `body_markdown` byte-for-byte and contains exactly one canonical marker. Repaired on the tracker by deleting marker-bearing canonical comments and re-running reconcile+apply. Refs #43 — found while running Slice 1 against this tracker.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Ting/CurryComb#44
No description provided.