Skip to content

Commit c8eb2a6

Browse files
Juan Pelaezclaude
andcommitted
docs: add SDK feature deployment checklist to CLAUDE.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 74d8319 commit c8eb2a6

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,48 @@ Releases are automated via GitHub Actions using npm Trusted Publishing (OIDC). P
5050

5151
Manual release: `npm run release` or `npm run release:dry-run`
5252

53+
### SDK Feature Deployment Checklist
54+
55+
**Follow this exact checklist when adding a new feature to any `block-*` package. Do NOT skip steps. Do NOT spend time verifying the release pipeline — it works automatically.**
56+
57+
#### Step 1: Implement the feature in `block-*`
58+
- Create types in `types/` with proper interfaces
59+
- Create mapper in `mappers/` with `ResourceMapper<T>`
60+
- Create service in `services/` with CRUD methods (PUT for updates, never PATCH)
61+
- Wire into block factory (`*.block.ts`) — add to interface, factory return, and `resourceTypes`
62+
- Update barrel exports: `types/index.ts`, `services/index.ts`, `mappers/index.ts`
63+
- Update `src/index.ts` with new public exports
64+
- **Build & verify:** `npx nx build @23blocks/block-xxx --skip-nx-cache`
65+
66+
#### Step 2: Update meta-packages (ALL THREE — mandatory)
67+
Meta-packages bundle block code at build time. Publishing a new block version does NOT deliver fixes to meta-package consumers. You MUST rebuild all three:
68+
69+
- **Angular** (`packages/angular/`): Add getter to the relevant service (e.g., `get evaluations() { return this.ensureConfigured().evaluations; }`)
70+
- **SDK** (`packages/sdk/src/lib/sdk.ts`): Make a real file change (update JSDoc comment) — `--allow-empty` commits do NOT work with nx release
71+
- **React** (`packages/react/src/lib/index.ts`): Make a real file change (update JSDoc comment)
72+
- **Build all:** `npm run build`
73+
74+
#### Step 3: Update documentation
75+
- Update `llms.txt` (root) — add new sub-services to the relevant block section
76+
- Update `packages/sdk/llms.txt` — same additions
77+
78+
#### Step 4: Commit with correct scopes
79+
Commit scope MUST match the nx project name exactly (e.g., `@23blocks/block-rag`, NOT `block-rag`):
80+
81+
```bash
82+
git commit -m "feat(@23blocks/block-xxx): description"
83+
git commit -m "feat(@23blocks/angular): add xxx getter to YyyService"
84+
git commit -m "feat(@23blocks/sdk): rebuild with xxx feature"
85+
git commit -m "feat(@23blocks/react): rebuild with xxx feature"
86+
git commit -m "docs: add xxx to sub-service list in llms.txt"
87+
```
88+
89+
#### Step 5: Push and verify (< 2 minutes)
90+
```bash
91+
git push origin main
92+
```
93+
Then check: `gh run list --workflow=release.yml --limit 1` — confirm status is "completed" + "success". **That's it. Done. Do not dig into logs, do not download tarballs, do not inspect bundles.**
94+
5395
## Architecture
5496

5597
```

0 commit comments

Comments
 (0)