alvin-bot 4.18.1 → 4.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AEC-PLUGINS-SOURCES.md +53 -0
- package/CHANGELOG.md +15 -0
- package/DESIGN-SKILLS-SOURCES.md +81 -0
- package/dist/providers/claude-sdk-provider.js +24 -0
- package/package.json +1 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# AEC Plugin Skills — Installed 22.04.2026
|
|
2
|
+
|
|
3
|
+
54 Skills aus 3 Claude-Code-Plugins, erstellt von **Abhinav Bhardwaj** (GitHub: `Amanbh997`).
|
|
4
|
+
Installiert via direkte Kopie in `~/.claude/skills/` — Claude Code auto-discovered via SKILL.md frontmatter.
|
|
5
|
+
|
|
6
|
+
Vorher: 89 Skills. Nachher: **143 Skills** (+54).
|
|
7
|
+
|
|
8
|
+
## Quellen
|
|
9
|
+
|
|
10
|
+
| Plugin | Repo | Skills | Stars |
|
|
11
|
+
|---|---|---|---|
|
|
12
|
+
| **Urban Design** | [Amanbh997/Urban-Design-Skills-Claude](https://github.com/Amanbh997/Urban-Design-Skills-Claude) | 18 | ⭐ 76 |
|
|
13
|
+
| **Architecture** | [Amanbh997/Skills-Architects](https://github.com/Amanbh997/Skills-Architects) | 18 | ⭐ 118 |
|
|
14
|
+
| **Computational Design** | [Amanbh997/Claude-skills-for-Computational-Designers](https://github.com/Amanbh997/Claude-skills-for-Computational-Designers) | 18 | ⭐ 127 |
|
|
15
|
+
|
|
16
|
+
Jedes Plugin: 35.000+ Zeilen, 7 Python-Calculators, 50+ Theorists, 30+ Tools, hunderte numerische Benchmarks.
|
|
17
|
+
|
|
18
|
+
## Skill-Inventar
|
|
19
|
+
|
|
20
|
+
### Urban Design (18)
|
|
21
|
+
block-and-density · climate-responsive-design · cost-estimation · design-brief · design-evaluation · masterplan-design · mixed-use-programming · mobility-and-transport · precedent-study · public-space-design · site-analysis · street-design · sustainability-scoring · tod-design · urban-calculator · urban-design-foundations · urban-regeneration · zoning-and-codes
|
|
22
|
+
|
|
23
|
+
### Architecture (18)
|
|
24
|
+
accessibility-design · acoustic-design · architect-calculator · architect-foundations · building-codes · building-envelope · building-programming · building-services · building-sustainability · building-typology · concept-design · construction-documentation · daylighting-design · design-theory · fire-life-safety · material-selection · spatial-planning · structural-systems
|
|
25
|
+
|
|
26
|
+
### Computational Design (18)
|
|
27
|
+
algorithmic-patterns · bim-scripting · cd-calculator · cd-foundations · computational-geometry · data-driven-design · design-automation · digital-fabrication · environmental-simulation · facade-computation · generative-design · interoperability · mesh-processing · ml-for-aec · optimization-methods · parametric-modeling · scripting-reference · structural-computation
|
|
28
|
+
|
|
29
|
+
## Update ziehen
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
cd /tmp && rm -rf aec-skills && mkdir aec-skills && cd aec-skills
|
|
33
|
+
git clone --depth 1 https://github.com/Amanbh997/Urban-Design-Skills-Claude.git
|
|
34
|
+
git clone --depth 1 https://github.com/Amanbh997/Skills-Architects.git
|
|
35
|
+
git clone --depth 1 https://github.com/Amanbh997/Claude-skills-for-Computational-Designers.git
|
|
36
|
+
cp -R Urban-Design-Skills-Claude/skills/* ~/.claude/skills/
|
|
37
|
+
cp -R Skills-Architects/skills/* ~/.claude/skills/
|
|
38
|
+
cp -R Claude-skills-for-Computational-Designers/skills/* ~/.claude/skills/
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Wie die Skills ausgelöst werden
|
|
42
|
+
|
|
43
|
+
Jeder Skill hat im SKILL.md frontmatter eine `description`-Zeile die spezifische User-Anfragen matcht. Beispiele:
|
|
44
|
+
|
|
45
|
+
- „Design a mixed-use quarter" → Urban Design Plugin (masterplan-design, tod-design, mixed-use-programming, zoning-and-codes, mobility-and-transport …)
|
|
46
|
+
- „Check if this floor plan meets fire code" → Architecture Plugin (fire-life-safety, building-codes, accessibility-design, construction-documentation …)
|
|
47
|
+
- „Generate a parametric facade pattern in Grasshopper" → Computational Design Plugin (parametric-modeling, facade-computation, algorithmic-patterns, digital-fabrication …)
|
|
48
|
+
|
|
49
|
+
Laut Creator: *"Ask Claude to design a mixed-use quarter and all three plugins kick in working together."*
|
|
50
|
+
|
|
51
|
+
## Quelle
|
|
52
|
+
Reel vom Creator: https://www.instagram.com/reel/DXXhJS2kqAf/
|
|
53
|
+
Uploader: Abhinav Bhardwaj / "Claude for AEC!"
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to Alvin Bot are documented here.
|
|
4
4
|
|
|
5
|
+
## [4.18.2] — 2026-04-23
|
|
6
|
+
|
|
7
|
+
### 🐛 Fix: silent empty-stream after OAuth-token rotation
|
|
8
|
+
|
|
9
|
+
**Problem:** After running `/extra-usage`, `/login`, or any other flow that rotates the Claude OAuth token in the macOS Keychain, the Alvin-Bot silently broke for long-lived sessions. The in-memory Claude SDK client held the old token, the CLI subprocess emitted no text chunks (the 401 was swallowed upstream), the stream terminated normally with zero output tokens, and the user saw the fallback `"(Keine Antwort)"` — with no indication that a token refresh was needed.
|
|
10
|
+
|
|
11
|
+
**Fix** (`src/providers/claude-sdk-provider.ts`): In the `result` branch of the SDK stream loop, detect the empty-stream signature (`accumulatedText === ""` and `outputTokens === 0`). When that fires:
|
|
12
|
+
|
|
13
|
+
1. Invalidate the `isAvailable()` cache so the next heartbeat probe spawns a fresh CLI subprocess that reads the current Keychain entry.
|
|
14
|
+
2. Yield an explicit `error` chunk with actionable text so the user sees *"…token rotation — please resend your message"* instead of a silent `"(Keine Antwort)"`.
|
|
15
|
+
|
|
16
|
+
**Applies to:** every token-rotation flow — extra-usage activation, extra-usage expiry, weekly-reset (no rotation → unaffected), manual `claude login`.
|
|
17
|
+
|
|
18
|
+
**Net effect:** Bot self-heals after token changes. A single resend on the user side is enough; no manual restart required.
|
|
19
|
+
|
|
5
20
|
## [4.18.1] — 2026-04-20
|
|
6
21
|
|
|
7
22
|
### 🔒 Privacy-Guard: pre-publish check blocks PII leaks in shipped files
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Design Skills — Installed 22.04.2026
|
|
2
|
+
|
|
3
|
+
19 neue Skills aus 2 Repos + Bestätigung dass Frontend Design bereits via Anthropic Plugin installiert ist.
|
|
4
|
+
|
|
5
|
+
## Quellen
|
|
6
|
+
|
|
7
|
+
| Skill | Repo | Stars | Status |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| **Impeccable** (18 commands) | [pbakaus/impeccable](https://github.com/pbakaus/impeccable) | ⭐ 21.419 | ✅ Neu installiert |
|
|
10
|
+
| **Design Motion Principles** | [kylezantos/design-motion-principles](https://github.com/kylezantos/design-motion-principles) | ⭐ 293 | ✅ Neu installiert |
|
|
11
|
+
| **Frontend Design** | [anthropics/skills/frontend-design](https://github.com/anthropics/skills) | — | ℹ️ War bereits aktiv (Plugin `frontend-design:frontend-design`) |
|
|
12
|
+
|
|
13
|
+
## Reel-Quelle
|
|
14
|
+
Marc Cleroux auf Instagram — https://www.instagram.com/reel/DXdVUiOjKUv/ (22.04.2026)
|
|
15
|
+
|
|
16
|
+
## Impeccable-Commands (18)
|
|
17
|
+
|
|
18
|
+
Vokabular um Claude bei frontend-design zu steuern wenn dir die richtigen Worte fehlen.
|
|
19
|
+
|
|
20
|
+
| Command | Funktion |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `/impeccable` | Core skill mit 18 commands + 7 Referenz-Domänen |
|
|
23
|
+
| `/adapt` | Responsive / Breakpoints / Touch-Targets |
|
|
24
|
+
| `/animate` | Purposeful motion + micro-interactions |
|
|
25
|
+
| `/audit` | Technische Quality Checks (a11y, perf, responsive) + scored report |
|
|
26
|
+
| `/bolder` | Bland → visuell interessanter |
|
|
27
|
+
| `/clarify` | Unklare UX-Copy verbessern |
|
|
28
|
+
| `/colorize` | Strategische Farbe einführen |
|
|
29
|
+
| `/critique` | UX Design Review (Hierarchie, Klarheit, Resonanz) |
|
|
30
|
+
| `/delight` | Joy-Momente, Personality, Memorable Touches |
|
|
31
|
+
| `/distill` | Auf Essenz reduzieren, Complexity weg |
|
|
32
|
+
| `/harden` | Error Handling, Empty States, Onboarding, i18n, Edge Cases |
|
|
33
|
+
| `/layout` | Layout / Spacing / Visual Rhythm fixen |
|
|
34
|
+
| `/optimize` | Performance (Bundle, Rendering, Images) |
|
|
35
|
+
| `/overdrive` | Technisch ambitioniert — Shaders, Spring Physics, 60fps |
|
|
36
|
+
| `/polish` | Final Quality Pass pre-shipping |
|
|
37
|
+
| `/quieter` | Overstimulating Design beruhigen |
|
|
38
|
+
| `/shape` | UX/UI-Plan vor Code |
|
|
39
|
+
| `/typeset` | Typografie fixen |
|
|
40
|
+
|
|
41
|
+
### 7 Referenz-Domänen in `impeccable`
|
|
42
|
+
typography · color-and-contrast · spatial-design · motion-design · interaction-design · responsive-design · ux-writing
|
|
43
|
+
|
|
44
|
+
## Design Motion Principles
|
|
45
|
+
|
|
46
|
+
Motion-Audit-Skill basierend auf den Philosophien von:
|
|
47
|
+
- **Emil Kowalski** — iOS-native UI polish
|
|
48
|
+
- **Jakub Krehel** — smooth interaction design
|
|
49
|
+
- **Jhey Tompkins** — creative web animation
|
|
50
|
+
|
|
51
|
+
Use case: *"Audit the hover states and transitions on my landing page"* → strukturierter Motion-Report.
|
|
52
|
+
|
|
53
|
+
## Installation
|
|
54
|
+
|
|
55
|
+
Geklont + direkt in `~/.claude/skills/` einzeln kopiert (Impeccable folgt dem Pattern aus ihrer README: `cp -r dist/claude-code/.claude/* ~/.claude/`).
|
|
56
|
+
|
|
57
|
+
## Update ziehen
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
cd /tmp && rm -rf design-skills && mkdir design-skills && cd design-skills
|
|
61
|
+
git clone --depth 1 https://github.com/pbakaus/impeccable.git
|
|
62
|
+
git clone --depth 1 https://github.com/kylezantos/design-motion-principles.git
|
|
63
|
+
cp -R impeccable/.claude/skills/. ~/.claude/skills/
|
|
64
|
+
cp -R design-motion-principles/skills/design-motion-principles ~/.claude/skills/
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Stand Skills-Inventar (22.04.2026)
|
|
68
|
+
- Vorher: 143 (nach AEC-Installation)
|
|
69
|
+
- Nachher: **162** (+19)
|
|
70
|
+
|
|
71
|
+
## Nebenbaustelle
|
|
72
|
+
Impeccable bringt zusätzlich eine `.claude/agents/anti-patterns.md` mit — nicht installiert (würde Permission für `~/.claude/agents/` brauchen). Das ist optional: Die 18 Skills funktionieren unabhängig vom Anti-Patterns-Agent. Falls später gewünscht: `cp -R /tmp/design-skills/impeccable/.claude/agents/. ~/.claude/agents/`
|
|
73
|
+
|
|
74
|
+
## Empfohlene Workflow-Kombination
|
|
75
|
+
|
|
76
|
+
Laut Marc Cleroux im Reel ist das Power-Trio:
|
|
77
|
+
1. **shape** (plan before code) — Teil von Impeccable
|
|
78
|
+
2. **frontend-design** (implement mit Geschmack) — schon installiert
|
|
79
|
+
3. **audit** + **critique** + **polish** (iterieren) — Impeccable
|
|
80
|
+
|
|
81
|
+
Bei jedem neuen Frontend-Build: `/shape` → `/impeccable craft` → `/audit` → `/critique` → `/polish` → shippen.
|
|
@@ -309,6 +309,30 @@ export class ClaudeSDKProvider {
|
|
|
309
309
|
? (usage.input_tokens || 0) + (usage.cache_creation_input_tokens || 0) + (usage.cache_read_input_tokens || 0)
|
|
310
310
|
: 0;
|
|
311
311
|
const outputTok = usage?.output_tokens || 0;
|
|
312
|
+
// v4.18.2 — Silent-empty-stream detection.
|
|
313
|
+
//
|
|
314
|
+
// If the stream terminated cleanly but produced ZERO text chunks,
|
|
315
|
+
// something went wrong that the SDK didn't surface as an error:
|
|
316
|
+
// most commonly a stale OAuth token after /extra-usage or /login
|
|
317
|
+
// rotated the Keychain entry while our in-memory SDK client was
|
|
318
|
+
// still holding the old one. The CLI subprocess silently gets a
|
|
319
|
+
// 401, emits no text, and we complete the stream with
|
|
320
|
+
// accumulatedText === "". The user sees "(Keine Antwort)".
|
|
321
|
+
//
|
|
322
|
+
// We flip this from silent failure to explicit error. Clearing
|
|
323
|
+
// the availability cache forces the next heartbeat probe to
|
|
324
|
+
// re-check `claude auth status` with a fresh subprocess (which
|
|
325
|
+
// reads the current Keychain entry).
|
|
326
|
+
if (accumulatedText === "" && outputTok === 0) {
|
|
327
|
+
this.invalidateAvailabilityCache();
|
|
328
|
+
yield {
|
|
329
|
+
type: "error",
|
|
330
|
+
error: "Claude returned an empty response. " +
|
|
331
|
+
"This can happen right after /extra-usage, /login, or a token refresh — " +
|
|
332
|
+
"the SDK held a stale auth token. I've invalidated the cache; please resend your message.",
|
|
333
|
+
};
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
312
336
|
yield {
|
|
313
337
|
type: "done",
|
|
314
338
|
text: accumulatedText,
|