What
abcd capture redacts committed prose (iss-2608231025198888). abcd intent "<text>" does not.
CreateFromText stores the caller's text as title and body verbatim:
internal/core/intent/create.go:41-55 — SeedBody: trimmed, Title: titleLine(trimmed)
internal/core/intent/create.go:250-254 — seedDraft writes # + title and ## Why This Matters + SeedBody with no scanner pass
There is no redact symbol under internal/core/intent/. Capture's redactLedgerText (internal/core/capture/redact.go:29) is the sibling that already does this for the issue ledger.
abcd intent "fix /Users/alice/.ssh/id_rsa leftover in the install receipt"
commits that path under .abcd/development/intents/drafts/itd-N-….md.
deriveIntentSlug (create.go:152) kebab-cases the same way capture's CLI does, so the filename can pick up users-alice-… as well (same shape as the capture-slug leak).
Suggested fix
Run the capture redactor (or a shared helper) on title and SeedBody before CreateDraft. Add a test that CreateFromText with $HOME in the text writes no home root into the draft file. Watch it fail on main.
Related: iss-2608231025198888 (capture only). Not a duplicate.
Happy to send a PR once this is accepted.
What
abcd captureredacts committed prose (iss-2608231025198888).abcd intent "<text>"does not.CreateFromTextstores the caller's text as title and body verbatim:internal/core/intent/create.go:41-55—SeedBody: trimmed,Title: titleLine(trimmed)internal/core/intent/create.go:250-254— seedDraft writes#+ title and## Why This Matters+ SeedBody with no scanner passThere is no redact symbol under
internal/core/intent/. Capture'sredactLedgerText(internal/core/capture/redact.go:29) is the sibling that already does this for the issue ledger.commits that path under
.abcd/development/intents/drafts/itd-N-….md.deriveIntentSlug(create.go:152) kebab-cases the same way capture's CLI does, so the filename can pick upusers-alice-…as well (same shape as the capture-slug leak).Suggested fix
Run the capture redactor (or a shared helper) on title and SeedBody before
CreateDraft. Add a test thatCreateFromTextwith$HOMEin the text writes no home root into the draft file. Watch it fail onmain.Related:
iss-2608231025198888(capture only). Not a duplicate.Happy to send a PR once this is accepted.