Install
$ agentstack add skill-lexfrei-ccc-slack-formatter ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Convert markdown to rich text and place it in the macOS clipboard so the user can Cmd+V it into Slack with formatting preserved.
When to invoke this skill
Trigger automatically when the user:
- asks to prepare/format text for Slack (any language: "для Slack", "paste to Slack", "send to Slack", "для слака", "put into pbcopy for Slack")
- has a drafted reply in markdown in the conversation and wants it copied to the clipboard for pasting somewhere that supports rich text
- explicitly asks to "put into pbcopy with formatting" / "copy as rich text"
Do not invoke when the user asks for plain text only (tldrpr already covers that case).
Input resolution
Parse $ARGUMENTS:
- If a file path is passed — use that file.
- Otherwise — use the most recent drafted markdown content from the conversation context (a reply, message, summary). Write it to a temp file first:
``bash TMPFILE=$(mktemp -t slackfmt).md # write conversation-drafted markdown here via Write tool ``
If no draft is available and no path given — ask the user what text to format.
Execution
Require pandoc (install via Homebrew if missing: brew install pandoc). Swift is already shipped with macOS.
Run this block, substituting $MDFILE with the resolved input path:
MDFILE="${1:?markdown file required}"
HTMLFILE="${MDFILE%.md}.html"
command -v pandoc >/dev/null || { echo "pandoc not found — brew install pandoc" >&2; exit 1; }
pandoc -f gfm -t html "$MDFILE" -o "$HTMLFILE" || exit 1
SWIFT_SCRIPT=$(mktemp -t slackfmt).swift
cat > "$SWIFT_SCRIPT" = 3 else {
FileHandle.standardError.write("usage: pbcopy_html \n".data(using: .utf8)!)
exit(2)
}
guard let html = try? String(contentsOfFile: CommandLine.arguments[1], encoding: .utf8),
let plain = try? String(contentsOfFile: CommandLine.arguments[2], encoding: .utf8) else {
FileHandle.standardError.write("cannot read input files\n".data(using: .utf8)!)
exit(1)
}
let pb = NSPasteboard.general
pb.clearContents()
pb.setString(html, forType: .html)
pb.setString(plain, forType: .string)
print("OK: html=\(html.count) bytes, plain=\(plain.count) bytes")
SWIFT
swift "$SWIFT_SCRIPT" "$HTMLFILE" "$MDFILE"
rm -f "$SWIFT_SCRIPT" "$HTMLFILE"
Output
After successful copy, confirm to the user with:
- byte sizes reported by the Swift script
- one-line reminder: "Paste in Slack with
Cmd+V— do NOT useCmd+Shift+V(that pastes plain text and drops formatting)."
Notes
pbpastewill only show the plain-text fallback — this is normal. The HTML part is in the clipboard under«class HTML», which is what Slack reads.- Verify with
osascript -e 'clipboard info'if the user reports pasting issues. Expected output includes both«class HTML»and«class utf8». - Slack normalizes HTML on paste:
##headings become bold text, nested lists flatten in predictable ways, fenced code blocks keep monospace font, tables become tab-separated plain text. - GFM input flavor (
-f gfm) handles GitHub-style fenced code blocks with language hints and task lists correctly.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: lexfrei
- Source: lexfrei/ccc
- License: BSD-3-Clause
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.