• .claude/skills/javascript/SKILL.md

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun Aug 9 07:19:11 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/850de49a4c13adc69c000667
    Modified Files:
    .claude/skills/javascript/SKILL.md
    Log Message:
    javascript skill: a modified header must be read unexpanded

    put_msg_header() refuses a header fetched with field expansion, and the
    error it gives -- "Message header has 'expanded fields'" -- describes
    the header rather than the call that produced it, so it reads as "this
    message cannot be rewritten" instead of "your read was wrong". Since
    expansion is the default, the obvious spelling of a read-modify-write
    fails and the fix is not in the failing call.

    Documents the expand argument on get_msg_header(), notes that the same
    applies to headers taken from get_all_msg_headers(), and says to leave expansion on for read-only callers -- it is what resolves the fields
    they want. Also points at setting the field at save_msg() time, which
    avoids the round trip where the original write is yours.

    Sits with the sibling traps the section already carries: remove_msg()
    silently returning false when handed a header object, and the lazy-field gotcha. All three are calls that fail for a reason the symptom points
    away from.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun Aug 9 07:19:11 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/3bb1dcd78f9fad924c804e57
    Modified Files:
    .claude/skills/javascript/SKILL.md
    Log Message:
    javascript skill: say what the avoided work is, not "the round trip"

    "Setting a field at save time avoids the round trip entirely" was meant
    to point at the read-modify-write recipe directly above it, but "round
    trip" reads as network latency and never names what is being skipped.

    Says it plainly instead: there is nothing to read back and rewrite, no
    expand argument to get wrong, and no half-corrected message if the
    write fails partway through a batch. Also scopes it -- the advice only
    applies where the original write is yours, which is the distinction
    that decides which of the two approaches a reader needs.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net