Skip to content

Commit 251c670

Browse files
committed
refactor: rename project from mcp-slack-blockkit to mcp-slack-block-kit
Renames "Block Kit" everywhere to match Slack's own product name (two words): - GitHub repo: hishamkaram/mcp-slack-blockkit -> hishamkaram/mcp-slack-block-kit - Go module path: github.com/hishamkaram/mcp-slack-block-kit - Binary: mcp-slack-block-kit (cmd/mcp-slack-block-kit/) - Public Go package: package block_kit (block_kit/) - MCP tool names: convert_markdown_to_block_kit, validate_block_kit, preview_block_kit, lint_block_kit (split_blocks unchanged) - Cosign release-signature identity regex updated to new repo URL - Homebrew formula name (next release will publish mcp-slack-block-kit) Adds a path-scoped revive exclusion in .golangci.yml so the underscore in package block_kit doesn't trip var-naming. GitHub auto-redirects the old repo URL for ~12 months. External MCP client configs with "command": "mcp-slack-blockkit" need to update. CHANGELOG [Unreleased] / Changed documents the breaking surface.
1 parent a4871ea commit 251c670

34 files changed

Lines changed: 193 additions & 175 deletions

.claude/rules/security.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: Security-critical mention sanitization rule for the converter and M
33
paths:
44
- "internal/converter/**"
55
- "internal/server/**"
6-
- "blockkit/**"
6+
- "block_kit/**"
77
---
88

99
# Mention sanitization is mandatory

.claude/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"Bash(govulncheck:*)",
1010
"Bash(goreleaser:*)",
1111
"Bash(lefthook:*)",
12-
"Bash(./bin/mcp-slack-blockkit:*)"
12+
"Bash(./bin/mcp-slack-block-kit:*)"
1313
]
1414
}
1515
}

.claude/skills/release/SKILL.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: release
3-
description: Cut a new release of mcp-slack-blockkit. Bump the version, move CHANGELOG `[Unreleased]` to a new version section, create a signed tag, push it, and confirm GoReleaser publishes successfully. Use when the maintainer asks for a release, a tag, or a version bump.
3+
description: Cut a new release of mcp-slack-block-kit. Bump the version, move CHANGELOG `[Unreleased]` to a new version section, create a signed tag, push it, and confirm GoReleaser publishes successfully. Use when the maintainer asks for a release, a tag, or a version bump.
44
allowed-tools: Read, Edit, Bash, Grep
55
---
66

@@ -85,8 +85,8 @@ the release.
8585

8686
## 6. Post-release
8787

88-
- Verify `brew upgrade mcp-slack-blockkit` (or first-time install) works.
89-
- Verify `go install github.com/hishamkaram/mcp-slack-blockkit/cmd/mcp-slack-blockkit@vX.Y.Z` works.
88+
- Verify `brew upgrade mcp-slack-block-kit` (or first-time install) works.
89+
- Verify `go install github.com/hishamkaram/mcp-slack-block-kit/cmd/mcp-slack-block-kit@vX.Y.Z` works.
9090
- Update the MCP Registry / Smithery / Glama listings with the new tag.
9191

9292
## Don't

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ body:
1717
id: version
1818
attributes:
1919
label: Version
20-
description: Output of `mcp-slack-blockkit --version`.
20+
description: Output of `mcp-slack-block-kit --version`.
2121
placeholder: "v0.1.0 (commit abc1234, built 2026-05-09)"
2222
validations:
2323
required: true
@@ -47,7 +47,7 @@ body:
4747
- Continue.dev
4848
- Zed
4949
- Cline
50-
- CLI (`mcp-slack-blockkit convert`)
50+
- CLI (`mcp-slack-block-kit convert`)
5151
- Other / library import
5252
validations:
5353
required: true
@@ -74,7 +74,7 @@ body:
7474
label: Reproduction steps
7575
description: Minimal steps to reproduce. Include the exact markdown input if possible.
7676
placeholder: |
77-
1. Run `echo '...' | mcp-slack-blockkit convert --mode rich_text`
77+
1. Run `echo '...' | mcp-slack-block-kit convert --mode rich_text`
7878
2. Observe ...
7979
validations:
8080
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
blank_issues_enabled: false
22
contact_links:
33
- name: Security vulnerability
4-
url: https://github.com/hishamkaram/mcp-slack-blockkit/security/advisories/new
4+
url: https://github.com/hishamkaram/mcp-slack-block-kit/security/advisories/new
55
about: Report security issues privately via GitHub's Private Vulnerability Reporting — please do not open public issues for security concerns.
66
- name: Question or discussion
7-
url: https://github.com/hishamkaram/mcp-slack-blockkit/discussions
7+
url: https://github.com/hishamkaram/mcp-slack-block-kit/discussions
88
about: Ask a question, share an idea, or discuss design.

.github/workflows/ci.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,17 @@ jobs:
3232
run: go tool cover -func=cover.out
3333

3434
- name: Coverage gate (≥80% on listed packages)
35-
# Per research.md §8 mandate: blockkit + the four conversion-engine
35+
# Per research.md §8 mandate: block_kit + the four conversion-engine
3636
# packages must hit at least 80% statement coverage. Other packages
3737
# are advisory.
3838
run: |
3939
set -euo pipefail
4040
for pkg in \
41-
github.com/hishamkaram/mcp-slack-blockkit/blockkit \
42-
github.com/hishamkaram/mcp-slack-blockkit/internal/converter \
43-
github.com/hishamkaram/mcp-slack-blockkit/internal/validator \
44-
github.com/hishamkaram/mcp-slack-blockkit/internal/splitter \
45-
github.com/hishamkaram/mcp-slack-blockkit/internal/preview \
41+
github.com/hishamkaram/mcp-slack-block-kit/blockkit \
42+
github.com/hishamkaram/mcp-slack-block-kit/internal/converter \
43+
github.com/hishamkaram/mcp-slack-block-kit/internal/validator \
44+
github.com/hishamkaram/mcp-slack-block-kit/internal/splitter \
45+
github.com/hishamkaram/mcp-slack-block-kit/internal/preview \
4646
; do
4747
line=$(go tool cover -func=cover.out | awk -v p="$pkg/" '$1 ~ p && $1 ~ /total:|\.go/' | grep -E "^${pkg}/[a-z_]+\.go" | awk '{ sum += $NF; n++ } END { if (n) printf "%.1f", sum/n; else print "0" }') || line=0
4848
# Fallback: use the per-file coverage average. This is approximate;

.golangci.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ linters:
3535
# repeated string literals, etc. are conventional in Go test code.
3636
- path: _test\.go
3737
linters: [errcheck, gosec, gocritic]
38+
# The public Go package is named `block_kit` to mirror Slack's "Block Kit"
39+
# product name; the underscore trips revive's var-naming rule. Scoped
40+
# exclusion so other underscore violations elsewhere are still caught.
41+
- path: ^block_kit/
42+
linters: [revive]
43+
text: "should not use underscores in Go names"
3844

3945
formatters:
4046
enable:

.goreleaser.yaml

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# GoReleaser config for mcp-slack-blockkit.
1+
# GoReleaser config for mcp-slack-block-kit.
22
# https://goreleaser.com/customization/
33
#
44
# Locally: goreleaser build --snapshot --clean
@@ -10,16 +10,16 @@
1010
# <user>/homebrew-tap repo; required for tap push.
1111
version: 2
1212

13-
project_name: mcp-slack-blockkit
13+
project_name: mcp-slack-block-kit
1414

1515
before:
1616
hooks:
1717
- go mod tidy
1818

1919
builds:
20-
- id: mcp-slack-blockkit
21-
main: ./cmd/mcp-slack-blockkit
22-
binary: mcp-slack-blockkit
20+
- id: mcp-slack-block-kit
21+
main: ./cmd/mcp-slack-block-kit
22+
binary: mcp-slack-block-kit
2323
env:
2424
- CGO_ENABLED=0
2525
goos:
@@ -30,7 +30,7 @@ builds:
3030
- amd64
3131
- arm64
3232
# ldflags inject build-time metadata into main.{version,commit,date}.
33-
# See cmd/mcp-slack-blockkit/main.go for the matching package vars.
33+
# See cmd/mcp-slack-block-kit/main.go for the matching package vars.
3434
ldflags:
3535
- -s -w
3636
- -X main.version={{.Version}}
@@ -77,18 +77,18 @@ changelog:
7777
# Homebrew tap formula publishing. Requires a public repo named
7878
# `homebrew-tap` under the same owner; see docs.brew.sh/Taps.
7979
brews:
80-
- name: mcp-slack-blockkit
80+
- name: mcp-slack-block-kit
8181
repository:
8282
owner: hishamkaram
8383
name: homebrew-tap
8484
token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
85-
homepage: https://github.com/hishamkaram/mcp-slack-blockkit
85+
homepage: https://github.com/hishamkaram/mcp-slack-block-kit
8686
description: "MCP server that converts markdown into Slack Block Kit JSON"
8787
license: MIT
8888
test: |
89-
system "#{bin}/mcp-slack-blockkit", "--version"
89+
system "#{bin}/mcp-slack-block-kit", "--version"
9090
install: |
91-
bin.install "mcp-slack-blockkit"
91+
bin.install "mcp-slack-block-kit"
9292
9393
# CycloneDX SBOM generated via syft (bundled with goreleaser).
9494
sboms:
@@ -112,33 +112,33 @@ signs:
112112
release:
113113
github:
114114
owner: hishamkaram
115-
name: mcp-slack-blockkit
115+
name: mcp-slack-block-kit
116116
draft: false
117117
prerelease: auto
118118
mode: replace
119119
header: |
120-
## mcp-slack-blockkit {{ .Version }}
120+
## mcp-slack-block-kit {{ .Version }}
121121
122122
Single-binary MCP server that converts AI-generated markdown into Slack
123-
Block Kit JSON. Five tools: `convert_markdown_to_blockkit`,
124-
`validate_blockkit`, `preview_blockkit`, `lint_blockkit`, `split_blocks`.
123+
Block Kit JSON. Five tools: `convert_markdown_to_block_kit`,
124+
`validate_block_kit`, `preview_block_kit`, `lint_block_kit`, `split_blocks`.
125125
126126
### Install
127127
128128
```sh
129-
brew install hishamkaram/tap/mcp-slack-blockkit
129+
brew install hishamkaram/tap/mcp-slack-block-kit
130130
# or
131-
go install github.com/hishamkaram/mcp-slack-blockkit/cmd/mcp-slack-blockkit@{{ .Tag }}
131+
go install github.com/hishamkaram/mcp-slack-block-kit/cmd/mcp-slack-block-kit@{{ .Tag }}
132132
```
133133
134134
### Verify (cosign)
135135
136136
```sh
137137
cosign verify-blob \
138-
--certificate-identity-regexp 'https://github\.com/hishamkaram/mcp-slack-blockkit/.+' \
138+
--certificate-identity-regexp 'https://github\.com/hishamkaram/mcp-slack-block-kit/.+' \
139139
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
140140
--certificate checksums.txt.pem --signature checksums.txt.sig \
141141
checksums.txt
142142
```
143143
footer: |
144-
**Full changelog**: https://github.com/hishamkaram/mcp-slack-blockkit/compare/{{ .PreviousTag }}...{{ .Tag }}
144+
**Full changelog**: https://github.com/hishamkaram/mcp-slack-block-kit/compare/{{ .PreviousTag }}...{{ .Tag }}

CHANGELOG.md

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
77

88
## [Unreleased]
99

10+
### Changed (BREAKING — pre-1.0; no installed binaries in the wild)
11+
- Project renamed from `mcp-slack-blockkit` to `mcp-slack-block-kit` to match
12+
Slack's own product naming ("Block Kit" is two words). Affects the GitHub
13+
repo URL, Go module path (`github.com/hishamkaram/mcp-slack-block-kit`),
14+
binary name (`mcp-slack-block-kit`), public Go package
15+
(`block_kit`, in `block_kit/`), four MCP tool names
16+
(`convert_markdown_to_block_kit`, `validate_block_kit`,
17+
`preview_block_kit`, `lint_block_kit`; `split_blocks` unchanged), and the
18+
cosign release-signature identity regex. GitHub auto-redirects the old
19+
repo URL for ~12 months. External MCP client configs with
20+
`"command": "mcp-slack-blockkit"` need to update to the new binary name.
21+
1022
### Added
1123
- `Renderer.ConvertWithWarnings(input) ([]slack.Block, []string, error)`
1224
the full converter API, returning fallback warnings alongside blocks.
1325
`Renderer.Convert(input)` is now a thin wrapper that drops warnings,
1426
preserving the v0.1 signature.
15-
- `MCP convert_markdown_to_blockkit` tool: response `warnings` field now
27+
- `MCP convert_markdown_to_block_kit` tool: response `warnings` field now
1628
surfaces converter-side fallback notes (auto-mode routing decisions etc.),
1729
not just chunker/preview notes.
1830
- New nested-pattern detection in the auto-mode picker
@@ -52,17 +64,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
5264
### Added
5365
- Initial release.
5466
- Five MCP tools registered on top of `modelcontextprotocol/go-sdk` v1.6.0:
55-
- `convert_markdown_to_blockkit` — markdown → Slack Block Kit, with
67+
- `convert_markdown_to_block_kit` — markdown → Slack Block Kit, with
5668
auto-mode picker between the new `markdown` block (Feb 2025) and
5769
deterministic decomposition.
58-
- `validate_blockkit` — full Slack constraint validation with
70+
- `validate_block_kit` — full Slack constraint validation with
5971
structured violations.
60-
- `preview_blockkit` — Block Kit Builder URL generation for one-click
72+
- `preview_block_kit` — Block Kit Builder URL generation for one-click
6173
visual QA.
62-
- `lint_blockkit` — near-limit and deprecated-pattern warnings.
74+
- `lint_block_kit` — near-limit and deprecated-pattern warnings.
6375
- `split_blocks` — enforce 50-block-per-message + `only_one_table_allowed`.
6476
- `convert` CLI subcommand for offline testing.
65-
- `blockkit/` public Go library re-exports for embedded use.
77+
- `block_kit/` public Go library re-exports for embedded use.
6678
- Mention-sanitization layer that entity-escapes broadcast strings
6779
(`<!channel>`, `<@U…>`, etc.) by default — opt-in passthrough via
6880
`AllowBroadcasts`.
@@ -75,5 +87,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
7587
- Mention sanitization is the documented security-critical path.
7688
See [SECURITY.md](SECURITY.md) and `.claude/rules/security.md`.
7789

78-
[Unreleased]: https://github.com/hishamkaram/mcp-slack-blockkit/compare/v0.1.0...HEAD
79-
[0.1.0]: https://github.com/hishamkaram/mcp-slack-blockkit/releases/tag/v0.1.0
90+
[Unreleased]: https://github.com/hishamkaram/mcp-slack-block-kit/compare/v0.1.0...HEAD
91+
[0.1.0]: https://github.com/hishamkaram/mcp-slack-block-kit/releases/tag/v0.1.0

CLAUDE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# mcp-slack-blockkit — Claude Code project notes
1+
# mcp-slack-block-kit — Claude Code project notes
22

33
Single-binary MCP server + CLI that converts AI-generated markdown into
44
Slack Block Kit JSON. Go 1.25+. Zero external runtime dependencies.
@@ -9,7 +9,7 @@ Slack Block Kit JSON. Go 1.25+. Zero external runtime dependencies.
99

1010
| Action | Command |
1111
|---|---|
12-
| Build local binary | `make build` (output: `bin/mcp-slack-blockkit`) |
12+
| Build local binary | `make build` (output: `bin/mcp-slack-block-kit`) |
1313
| Run all tests | `make test` |
1414
| Race tests + coverage | `make test-race` |
1515
| HTML coverage report | `make cover` |
@@ -61,13 +61,13 @@ CI mirrors all of the above. Coverage gate: **≥80% overall, enforced in
6161
## Repository layout
6262

6363
```
64-
cmd/mcp-slack-blockkit/ cobra entry point (server default + convert subcommand)
64+
cmd/mcp-slack-block-kit/ cobra entry point (server default + convert subcommand)
6565
internal/converter/ goldmark renderer + emoji/mentions/markdown_block
6666
internal/validator/ slack constraint suite + structured Violations
6767
internal/splitter/ SplitText + ChunkBlocks (50-block + table-isolation)
6868
internal/preview/ Block Kit Builder URL encoder
6969
internal/server/ MCP wiring (5 tools on top of go-sdk v1.6.0)
70-
blockkit/ Public Go library re-exports (semver-stable surface)
70+
block_kit/ Public Go library re-exports (semver-stable surface)
7171
docs/ Public docs (CLAUDE-architecture.md, etc.)
7272
docs/internal/ Gitignored design notes (research.md lives here)
7373
```

0 commit comments

Comments
 (0)