Skip to content

Commit 8ce70f0

Browse files
committed
Branding.
1 parent 7ca5774 commit 8ce70f0

4 files changed

Lines changed: 289 additions & 19 deletions

File tree

.agents/skills/ci-cd/SKILL.md

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: ci-cd
3-
description: Use when creating, debugging, or improving GitHub Actions workflows for this repo — especially release workflows for crates.io, PyPI, npm, GitHub Releases, or Debian packages. Covers OpenSSL vendoring, manylinux containers, Perl module gaps, workspace scoping, native vs QEMU arm64 runners, trusted publishing, artifact actions, toolchain parity, and idempotency patterns.
3+
description: Use when creating, debugging, or improving GitHub Actions workflows for this repo — especially release workflows for crates.io, PyPI, npm, GitHub Releases, or Debian packages. Also covers SDK distribution README branding alignment across npm, PyPI, and the main repo. Covers OpenSSL vendoring, manylinux containers, Perl module gaps, workspace scoping, native vs QEMU arm64 runners, trusted publishing, artifact actions, toolchain parity, and idempotency patterns.
44
---
55

66
# CI/CD
@@ -16,6 +16,17 @@ description: Use when creating, debugging, or improving GitHub Actions workflows
1616

1717
All four workflows share the same structural patterns. When editing one, check the others for consistency.
1818

19+
## Source of truth for distribution channel READMEs
20+
21+
| File | Published as |
22+
| ---------------------------- | ------------------------------------------------- |
23+
| `README.MD` | GitHub repo — canonical brand voice |
24+
| `npm/smbcloud-cli/README.md` | npmjs.com — `@smbcloud/cli` |
25+
| `pypi/README.md` | pypi.org — `smbcloud-cli` |
26+
| `npm/README.md.tmpl` | npmjs.com — `@smbcloud/cli-*` (platform packages) |
27+
28+
When the main `README.MD` changes its tagline, logo, quick start, or value proposition, update all three distribution READMEs to match.
29+
1930
---
2031

2132
## Universal workflow patterns
@@ -382,6 +393,60 @@ The default `fail-fast: true` cancels all in-progress jobs as soon as one fails.
382393

383394
---
384395

396+
## SDK distribution README branding
397+
398+
Every distribution channel README must stay aligned with the main `README.MD`. The three elements that must always match exactly:
399+
400+
- **Logo** — `https://avatars.githubusercontent.com/u/89791739?s=200&v=4`, width 128
401+
- **Tagline** — "Deploy to the cloud in one command."
402+
- **Quick start** — `smb login` → `smb init` → `smb deploy`
403+
404+
### Structure per README type
405+
406+
**Wrapper package** (`npm/smbcloud-cli/README.md` → `@smbcloud/cli`, `pypi/README.md` → `smbcloud-cli`):
407+
408+
1. Logo + tagline + nav links + badges
409+
2. About section (copy from main README verbatim)
410+
3. Primary install method for that channel first (`npm install -g` or `pip install`)
411+
4. Quick start
412+
5. All other install methods (Homebrew, npm, pip, shell, PowerShell)
413+
6. Documentation link
414+
7. Platform support table
415+
8. Source & Issues pointer to GitHub
416+
9. License
417+
418+
The PyPI README leads with the PyPI badge; the npm README leads with the npm badge. Both include the full badge row.
419+
420+
**Platform binary package** (`npm/README.md.tmpl` → `@smbcloud/cli-darwin-arm64`, etc.):
421+
422+
Keep it minimal. Show the logo and tagline for brand recognition, then immediately redirect to `@smbcloud/cli`. Do not repeat install instructions — the user landed on the wrong package.
423+
424+
### Platform support table
425+
426+
Keep this table consistent across all READMEs:
427+
428+
```md
429+
| Platform | Architecture |
430+
| ------------- | ------------ |
431+
| macOS | arm64, x64 |
432+
| Linux (glibc) | arm64, x64 |
433+
| Windows | arm64, x64 |
434+
```
435+
436+
Update it whenever a new platform is added to the release matrix.
437+
438+
### PyPI-specific copy
439+
440+
Add this line to distinguish the pip install from npm:
441+
442+
> This package installs the native `smb` executable for your platform directly — no Node.js, no Docker, no runtime dependencies.
443+
444+
### Template variable in `README.md.tmpl`
445+
446+
The platform package template uses `${node_pkg}` as a shell-style variable. This is substituted at release time by the npm publish script. Do not replace it with a hardcoded package name.
447+
448+
---
449+
385450
## Common mistakes
386451

387452
**Building the full workspace in release workflows**
@@ -407,3 +472,9 @@ manylinux2014 is CentOS 7. Use `yum`, not `apt`. For manylinux_2_28 (AlmaLinux 8
407472

408473
**Missing `User-Agent` on crates.io API requests**
409474
crates.io rejects curl requests without a `User-Agent` header. Always include `-H "User-Agent: smbcloud-cli-release-workflow"`.
475+
476+
**Distribution README out of sync with main README**
477+
When the main `README.MD` changes its tagline, logo URL, quick start commands, or value proposition, the npm and PyPI READMEs must be updated in the same commit. Stale distribution READMEs show outdated branding on npmjs.com and pypi.org — the highest-visibility surfaces for new users discovering the CLI.
478+
479+
**Platform support table missing new targets**
480+
When a new platform is added to any release matrix (e.g. `linux-arm64`), update the platform support table in `npm/smbcloud-cli/README.md` and `pypi/README.md` in the same PR.

npm/README.md.tmpl

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,32 @@
1-
# ${node_pkg}
1+
<!-- LOGO -->
2+
<h1>
3+
<p align="center">
4+
<img src="https://avatars.githubusercontent.com/u/89791739?s=200&v=4" alt="smbCloud Logo" width="128">
5+
<br>smbCloud CLI
6+
</h1>
7+
<p align="center">
8+
Deploy to the cloud in one command.
9+
</p>
10+
</p>
211

3-
Not meant to be used directly. Please see [@smbcloud/cli](https://www.npmjs.com/package/@smbcloud/cli).
12+
## `${node_pkg}`
13+
14+
This is a platform-specific binary package for [`@smbcloud/cli`](https://www.npmjs.com/package/@smbcloud/cli).
15+
It is not intended to be installed directly.
16+
17+
Install the main package instead:
18+
19+
```sh
20+
npm install -g @smbcloud/cli
21+
```
22+
23+
The main package resolves and downloads the correct platform binary automatically.
24+
25+
## Source & Issues
26+
27+
Source code and issue tracker:
28+
[github.com/smbcloudXYZ/smbcloud-cli](https://github.com/smbcloudXYZ/smbcloud-cli)
29+
30+
## License
31+
32+
[Apache-2.0](https://github.com/smbcloudXYZ/smbcloud-cli/blob/main/LICENSE)

npm/smbcloud-cli/README.md

Lines changed: 96 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,99 @@
1-
# smbcloud-cli
1+
<!-- LOGO -->
2+
<h1>
3+
<p align="center">
4+
<img src="https://avatars.githubusercontent.com/u/89791739?s=200&v=4" alt="smbCloud Logo" width="128">
5+
<br>smbCloud CLI
6+
</h1>
7+
<p align="center">
8+
Deploy to the cloud in one command.
9+
<br />
10+
<br />
11+
<a href="https://www.smbcloud.xyz/">Website</a>
12+
·
13+
<a href="https://docs.smbcloud.xyz/cli">Documentation</a>
14+
·
15+
<a href="https://github.com/smbcloudXYZ/smbcloud-cli/releases">Releases</a>
16+
·
17+
<a href="https://github.com/smbcloudXYZ/smbcloud-cli/issues">Issues</a>
18+
</p>
19+
<p align="center">
20+
<a href="https://www.npmjs.com/package/@smbcloud/cli"><img alt="npm" src="https://img.shields.io/npm/v/@smbcloud/cli"></a>
21+
<a href="https://pypi.org/project/smbcloud-cli/"><img alt="PyPI" src="https://img.shields.io/pypi/v/smbcloud-cli"></a>
22+
<a href="https://github.com/smbcloudXYZ/smbcloud-cli/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/smbcloudXYZ/smbcloud-cli"></a>
23+
</p>
24+
</p>
225

3-
This is a CLI program to access [smbcloud](https://smbcloud.xyz/).
26+
## About
427

5-
# Important!
28+
**`smb`** is the command-line interface for [smbCloud](https://www.smbcloud.xyz/) — the modern cloud deployment platform. We've eliminated the friction of cloud infrastructure so you can focus on what matters: building an incredible product.
629

7-
This is a binary executable that is compiled from [the Rust project](https://github.com/smbcloudXYZ/smbcloud-cli). Report any issue there. Refer to the repo for documentation.
30+
Ship your Rust, Node.js, Ruby, or Swift app with a single, magical command.
31+
32+
## Install
33+
34+
```sh
35+
npm install -g @smbcloud/cli
36+
```
37+
38+
This package automatically downloads and installs the correct pre-built native binary for your platform.
39+
40+
## Quick Start
41+
42+
```sh
43+
smb login
44+
smb init
45+
smb deploy
46+
```
47+
48+
That's it. Your app is live.
49+
50+
## Other Installation Methods
51+
52+
### Homebrew (macOS & Linux)
53+
54+
```sh
55+
brew tap smbcloudXYZ/tap
56+
brew install cli
57+
```
58+
59+
### pip
60+
61+
```sh
62+
pip install smbcloud-cli
63+
```
64+
65+
### Shell (macOS / Linux)
66+
67+
```sh
68+
curl -fsSL https://raw.githubusercontent.com/smbcloudXYZ/smbcloud-cli/main/install-unix.sh | sh
69+
```
70+
71+
### PowerShell (Windows)
72+
73+
```powershell
74+
irm https://raw.githubusercontent.com/smbcloudXYZ/smbcloud-cli/main/install-windows.sh | iex
75+
```
76+
77+
## Documentation
78+
79+
Full documentation is available at [docs.smbcloud.xyz/cli](https://docs.smbcloud.xyz/cli).
80+
81+
## Platform Support
82+
83+
This package ships pre-built native binaries for:
84+
85+
| Platform | Architecture |
86+
| ------------- | ------------ |
87+
| macOS | arm64, x64 |
88+
| Linux (glibc) | arm64, x64 |
89+
| Windows | arm64, x64 |
90+
91+
## Source & Issues
92+
93+
This is a native binary distributed via npm. The source code lives at
94+
[github.com/smbcloudXYZ/smbcloud-cli](https://github.com/smbcloudXYZ/smbcloud-cli).
95+
Please report bugs and feature requests there.
96+
97+
## License
98+
99+
[Apache-2.0](https://github.com/smbcloudXYZ/smbcloud-cli/blob/main/LICENSE)

pypi/README.md

Lines changed: 90 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,101 @@
1-
# smbcloud-cli
1+
<!-- LOGO -->
2+
<h1>
3+
<p align="center">
4+
<img src="https://avatars.githubusercontent.com/u/89791739?s=200&v=4" alt="smbCloud Logo" width="128">
5+
<br>smbCloud CLI
6+
</h1>
7+
<p align="center">
8+
Deploy to the cloud in one command.
9+
<br />
10+
<br />
11+
<a href="https://www.smbcloud.xyz/">Website</a>
12+
·
13+
<a href="https://docs.smbcloud.xyz/cli">Documentation</a>
14+
·
15+
<a href="https://github.com/smbcloudXYZ/smbcloud-cli/releases">Releases</a>
16+
·
17+
<a href="https://github.com/smbcloudXYZ/smbcloud-cli/issues">Issues</a>
18+
</p>
19+
<p align="center">
20+
<a href="https://pypi.org/project/smbcloud-cli/"><img alt="PyPI" src="https://img.shields.io/pypi/v/smbcloud-cli"></a>
21+
<a href="https://www.npmjs.com/package/@smbcloud/cli"><img alt="npm" src="https://img.shields.io/npm/v/@smbcloud/cli"></a>
22+
<a href="https://github.com/smbcloudXYZ/smbcloud-cli/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/smbcloudXYZ/smbcloud-cli"></a>
23+
</p>
24+
</p>
225

3-
Python distribution for the `smb` command line interface used to access
4-
[smbcloud](https://smbcloud.xyz/).
26+
## About
527

6-
## Installation
28+
**`smb`** is the command-line interface for [smbCloud](https://www.smbcloud.xyz/) — the modern cloud deployment platform. We've eliminated the friction of cloud infrastructure so you can focus on what matters: building an incredible product.
729

8-
```bash
30+
Ship your Rust, Node.js, Ruby, or Swift app with a single, magical command.
31+
32+
## Install
33+
34+
```sh
935
pip install smbcloud-cli
1036
```
1137

12-
This package installs the native `smb` executable for the current platform.
38+
This package installs the native `smb` executable for your platform directly — no Node.js, no Docker, no runtime dependencies.
39+
40+
## Quick Start
41+
42+
```sh
43+
smb login
44+
smb init
45+
smb deploy
46+
```
47+
48+
That's it. Your app is live.
49+
50+
## Other Installation Methods
51+
52+
### Homebrew (macOS & Linux)
53+
54+
```sh
55+
brew tap smbcloudXYZ/tap
56+
brew install cli
57+
```
58+
59+
### npm
60+
61+
```sh
62+
npm install -g @smbcloud/cli
63+
```
64+
65+
### Shell (macOS / Linux)
66+
67+
```sh
68+
curl -fsSL https://raw.githubusercontent.com/smbcloudXYZ/smbcloud-cli/main/install-unix.sh | sh
69+
```
1370

14-
## Usage
71+
### PowerShell (Windows)
1572

16-
```bash
17-
smb --help
73+
```powershell
74+
irm https://raw.githubusercontent.com/smbcloudXYZ/smbcloud-cli/main/install-windows.sh | iex
1875
```
1976

20-
## Project
77+
Or grab a pre-built binary from the [Releases](https://github.com/smbcloudXYZ/smbcloud-cli/releases) page.
78+
79+
## Documentation
80+
81+
Full documentation is available at [docs.smbcloud.xyz/cli](https://docs.smbcloud.xyz/cli).
82+
83+
## Platform Support
84+
85+
This package ships pre-built native binaries for:
86+
87+
| Platform | Architecture |
88+
| ------------- | ------------ |
89+
| macOS | arm64, x64 |
90+
| Linux (glibc) | arm64, x64 |
91+
| Windows | arm64, x64 |
92+
93+
## Source & Issues
94+
95+
This is a native binary distributed via PyPI. The source code lives at
96+
[github.com/smbcloudXYZ/smbcloud-cli](https://github.com/smbcloudXYZ/smbcloud-cli).
97+
Please report bugs and feature requests there.
98+
99+
## License
21100

22-
- Repository: https://github.com/smbcloudXYZ/smbcloud-cli
23-
- Documentation: https://docs.smbcloud.xyz/cli
101+
[Apache-2.0](https://github.com/smbcloudXYZ/smbcloud-cli/blob/main/LICENSE)

0 commit comments

Comments
 (0)