|
| 1 | +# v1.0 release prep — announcement bundle |
| 2 | + |
| 3 | +The two gates standing between today and `v1.0.0`: |
| 4 | + |
| 5 | +1. **Second successive eval refresh ≥85%.** First was 37/39 (95%) on |
| 6 | + 2026-05-20. This is satisfied automatically by the quarterly |
| 7 | + `tools/refresh.sh --with-eval` cycle. If the second refresh holds |
| 8 | + the bar, the SemVer rule in [`MAINTENANCE.md`](../../MAINTENANCE.md) |
| 9 | + triggers a `v1.0.0` bump. |
| 10 | + |
| 11 | +2. **≥1 external installer.** Per the binding plan's Phase 8 acceptance |
| 12 | + ([`PLAN.md`](../../PLAN.md) §8). This is genuinely social — someone |
| 13 | + other than `parasxos@gmail.com` needs to install via the marketplace |
| 14 | + command and ideally provide a confirming signal (a star, an issue, |
| 15 | + a comment, a clone). |
| 16 | + |
| 17 | +The release-prep work below is everything that lowers friction for the |
| 18 | +second gate. Copy-paste from the channel-specific snippets below. |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## Channel-specific snippets |
| 23 | + |
| 24 | +### Hacker News — "Show HN" submission |
| 25 | + |
| 26 | +**Title** *(80 char limit)*: |
| 27 | +``` |
| 28 | +Show HN: cpp26-adapter – Claude plugin that biases your LLM toward C++26 idioms |
| 29 | +``` |
| 30 | + |
| 31 | +**URL**: |
| 32 | +``` |
| 33 | +https://github.com/parasxos/cpp26-adapter |
| 34 | +``` |
| 35 | + |
| 36 | +**Comment body** *(first comment from OP)*: |
| 37 | +``` |
| 38 | +The base LLM in any coding assistant defaults to whatever C++ idiom |
| 39 | +dominates its training data — overwhelmingly pre-C++26. Ask Claude |
| 40 | +for "enum to string" and you'll get X-macros or magic_enum instead |
| 41 | +of std::meta reflection + template for. |
| 42 | +
|
| 43 | +cpp26-adapter is a Claude Code plugin (skill + MCP server + reviewer |
| 44 | +subagent + hooks) that flips that default. Architectural invariant: |
| 45 | +"recommendations follow the standard, not the toolchain" — if your |
| 46 | +local clang/gcc doesn't support a feature, the C++26 form is suggested |
| 47 | +anyway and compiler errors are surfaced as informational compiler-lag |
| 48 | +classifications, never auto-rewritten into pre-C++26 workarounds. |
| 49 | +
|
| 50 | +Eval gate (39 held tasks, regex on fenced cpp blocks + clang |
| 51 | +-fsyntax-only + LLM-judge): 37/39 (95%) vs vanilla Claude's 14/39 |
| 52 | +(36%) on the same suite. |
| 53 | +
|
| 54 | +The corpus tracks all 216 plenary-approved C++26 papers from |
| 55 | +cplusplus/papers, with 16 of the headline features hand-curated as |
| 56 | +deep references (P2996 reflection, P2900 contracts, P2300 senders, |
| 57 | +P1306 template for, P2662 pack indexing, #embed, std::inplace_vector, |
| 58 | +hazard pointers, RCU, library hardening, …). |
| 59 | +
|
| 60 | +Install: `/plugin marketplace add parasxos/claude-plugins` then |
| 61 | +`/plugin install cpp26-adapter@parasxos/claude-plugins`. |
| 62 | +
|
| 63 | +MIT (code) + CC-BY-SA-4.0 (corpus). Solo build over ~6 weeks; binding |
| 64 | +plan and per-phase acceptance criteria in PLAN.md. |
| 65 | +``` |
| 66 | + |
| 67 | +### Reddit — `r/cpp` |
| 68 | + |
| 69 | +**Title**: |
| 70 | +``` |
| 71 | +[Tool] cpp26-adapter — Claude Code plugin that biases the LLM toward C++26 final-form idioms (95% eval pass rate) |
| 72 | +``` |
| 73 | + |
| 74 | +**Body**: |
| 75 | +``` |
| 76 | +TL;DR: Claude Code plugin that makes your LLM emit C++26 idioms |
| 77 | +(std::meta reflection, contracts, std::execution senders, template |
| 78 | +for, #embed, std::inplace_vector, …) instead of the pre-C++26 |
| 79 | +fossils the model was trained on. Standard-first: suggests the |
| 80 | +C++26 form even when clang/gcc don't implement it yet; compiler |
| 81 | +errors are classified informationally. |
| 82 | +
|
| 83 | +GitHub: https://github.com/parasxos/cpp26-adapter |
| 84 | +Install (Claude Code): `/plugin install cpp26-adapter@parasxos/claude-plugins` |
| 85 | +
|
| 86 | +Eval suite (39 tasks, methodology in eval/run.py): 37/39 = 95% with |
| 87 | +plugin, 14/39 = 36% baseline. |
| 88 | +
|
| 89 | +The corpus covers all 216 plenary-approved C++26 papers; 16 of the |
| 90 | +headline features (reflection, contracts, senders, expansion |
| 91 | +statements, pack indexing, #embed, hardening, hazard pointers, RCU, |
| 92 | +linalg, …) have hand-curated references with frontmatter + canonical |
| 93 | +example + pre-C++26 equivalent + gotchas. |
| 94 | +
|
| 95 | +It's pre-1.0 — gating on a second successive eval-pass refresh and |
| 96 | +some external usage. Happy to take eval task suggestions; if there's |
| 97 | +a C++26 idiom you think the plugin should bias toward and isn't yet, |
| 98 | +file an issue. |
| 99 | +``` |
| 100 | + |
| 101 | +### r/ClaudeAI / Discord — "look what I built" |
| 102 | + |
| 103 | +**Body** (fits in a single message): |
| 104 | +``` |
| 105 | +Built a Claude Code plugin that turns the LLM into a C++26 specialist: |
| 106 | +https://github.com/parasxos/cpp26-adapter |
| 107 | +
|
| 108 | +Architecture: skill (always-in-context decision table) + MCP server |
| 109 | +(3 tools over a 216-paper corpus) + reviewer subagent (regex Pass 1 |
| 110 | ++ clang -fsyntax-only Pass 2 with bug-vs-compiler-lag classification) |
| 111 | ++ SessionStart toolchain probe + PostToolUse anti-pattern lint + a |
| 112 | +/cpp26-init slash command to scaffold C++26-ready CMakeLists. |
| 113 | +
|
| 114 | +Architectural invariant: recommendations follow the standard, not the |
| 115 | +toolchain. So if clang 22 doesn't ship reflection yet, you still get |
| 116 | +the std::meta form — compiler errors get classified informationally |
| 117 | +as compiler-lag, never auto-rewritten. |
| 118 | +
|
| 119 | +Eval: 37/39 (95%) vs baseline 14/39 (36%) on a 39-task held suite. |
| 120 | +
|
| 121 | +Install: /plugin marketplace add parasxos/claude-plugins |
| 122 | + /plugin install cpp26-adapter@parasxos/claude-plugins |
| 123 | +
|
| 124 | +MIT (code) + CC-BY-SA-4.0 (corpus). v0.9.0, pre-1.0. |
| 125 | +``` |
| 126 | + |
| 127 | +### Mastodon / Bluesky / X — short post |
| 128 | + |
| 129 | +**Tweet-length** (280 char): |
| 130 | +``` |
| 131 | +Just shipped cpp26-adapter — a Claude Code plugin that biases your |
| 132 | +LLM toward C++26 final-form idioms (reflection, contracts, senders, |
| 133 | +#embed) even when clang/gcc lag. 37/39 = 95% on the held eval. |
| 134 | +
|
| 135 | +/plugin install cpp26-adapter@parasxos/claude-plugins |
| 136 | +
|
| 137 | +https://github.com/parasxos/cpp26-adapter |
| 138 | +``` |
| 139 | + |
| 140 | +### LinkedIn / blog post — long form |
| 141 | + |
| 142 | +A long-form post that walks through the architecture lives at |
| 143 | +[`docs/architecture.md`](../architecture.md) and the binding plan |
| 144 | +that drove the implementation lives at [`PLAN.md`](../../PLAN.md). |
| 145 | +For a blog, the natural structure is: |
| 146 | + |
| 147 | +1. The problem (LLMs default to pre-C++26 because of training data) |
| 148 | +2. Three constraints that shaped the design (solo maintainer, |
| 149 | + compiler-lag honesty, ≥85% eval gate) |
| 150 | +3. The architectural invariant |
| 151 | +4. Component-by-component walkthrough using the cyan/pink diagram |
| 152 | +5. The eval methodology and the 23→37 first-run audit story |
| 153 | +6. v1.0 gating + how readers can contribute |
| 154 | + |
| 155 | +--- |
| 156 | + |
| 157 | +## Suggested install-verification ask |
| 158 | + |
| 159 | +Add to the top of the HN/Reddit/Discord post if you want a concrete |
| 160 | +ask that satisfies the "≥1 external installer" gate cleanly: |
| 161 | + |
| 162 | +> If you try the install, a quick "👍 it works" reply on this |
| 163 | +> thread (or a ⭐ on the repo) is the social signal the plugin |
| 164 | +> needs to clear its v1.0 gate. Happy to debug anything that |
| 165 | +> doesn't. |
| 166 | +
|
| 167 | +--- |
| 168 | + |
| 169 | +## Tracking signals |
| 170 | + |
| 171 | +After posting, watch: |
| 172 | + |
| 173 | +- ⭐ count on https://github.com/parasxos/cpp26-adapter |
| 174 | +- New issues / discussions |
| 175 | +- `gh api repos/parasxos/cpp26-adapter/traffic/clones --jq .count` |
| 176 | + (clone count; needs push auth) |
| 177 | +- Network of forks: `gh api repos/parasxos/cpp26-adapter/forks` |
| 178 | + |
| 179 | +Any of those moving past zero is the "≥1 external installer" gate |
| 180 | +cleared. |
| 181 | + |
| 182 | +--- |
| 183 | + |
| 184 | +## When both gates close |
| 185 | + |
| 186 | +1. Run `tools/package.sh` and verify the tarball is unchanged from |
| 187 | + v0.9.0 (or carries only the corpus refresh diff). |
| 188 | +2. Bump `.claude-plugin/plugin.json` to `1.0.0`. |
| 189 | +3. Bump the marketplace entry's `ref` to `v1.0.0`. |
| 190 | +4. Update `MAINTENANCE.md` to record the date of the v1.0 trigger. |
| 191 | +5. Tag `git tag -a v1.0.0 -m "v1.0.0 — eval gate held across two refreshes; external installer confirmed"`. |
| 192 | +6. Push tag, push marketplace update. |
| 193 | +7. Announce the v1.0 cut (LinkedIn / X / dev.to long-form). |
0 commit comments