Skip to content

Markdown leak check is anchored to start; abstract leaks bold mid-text into definitions and names #54

Description

@idapixl

assessThought rejects markdown leakage with:

if (/^(#{1,6}\s|\*\*)/.test(trimmed)) {
  reasons.push('markdown formatting leaked into thought');
}

That is anchored to the start of the text, so it catches a thought that opens with ** and misses one where the bold appears anywhere after the first character. The abstract phase reliably produces the latter.

Observed on a real dream run — five new abstraction rows, all accepted:

The unifying pattern is **"Persistence through Structure"** — a principle where organized, hierarchical frameworks…

The deeper connection is the **"Boundary Translation Principle"** — a pattern that emphasizes the necessity of…

Because names are derived from definitions, the asterisks propagate into the label too: the stored name is literally The unifying pattern is **"Persistence through Structure"**.

The gate does fire sometimes — [dream:abstract] Rejected abstraction: markdown formatting leaked into thought appeared once in the same run — which is what makes this easy to miss. It looks like a working check.

Suggested fix

Detect paired emphasis anywhere in the text rather than only at position 0, e.g. /\*\*.+?\*\*/ or a general /(^|\s)(\*\*|__)\S/. Worth checking against the existing test corpus first: a legitimate thought could conceivably contain an asterisk, though bold pairs are far less likely than a leading **.

Consider also stripping rather than rejecting for abstract specifically — an abstraction whose only flaw is formatting carries real content, and discarding it loses the synthesis. Rejection is right for refine, where the previous definition survives; it is more costly for abstract, where nothing takes its place.

Found while verifying #52; out of scope for that change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions