Skip to content

Commit e1e9843

Browse files
author
Bruno Azoulay
authored
Merge pull request #8 from fusengine/chore/skills-latest-versions-2026-09
chore(skills): port 2026-09 latest-versions skills update from claude-plugins
2 parents 6879505 + 58a8066 commit e1e9843

727 files changed

Lines changed: 29482 additions & 27879 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.cursor-plugin/marketplace.json‎

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
},
77
"metadata": {
88
"description": "Professional Cursor plugins with APEX workflow, SOLID principles, and expert development agents for Next.js, Laravel, Swift, Tailwind CSS, and more",
9-
"version": "0.1.1"
9+
"version": "0.1.4"
1010
},
1111
"plugins": [
1212
{
@@ -58,7 +58,7 @@
5858
"name": "fuse-astro",
5959
"source": ".cursor-plugin/plugins/fuse-astro",
6060
"description": "Expert Astro 6 with Islands Architecture, Content Layer, Actions, View Transitions, and multi-framework integration",
61-
"version": "1.0.12",
61+
"version": "1.0.13",
6262
"author": {
6363
"name": "Fusengine",
6464
"email": "hello@fusengine.ch"
@@ -81,7 +81,7 @@
8181
"name": "fuse-cartographer",
8282
"source": ".cursor-plugin/plugins/fuse-cartographer",
8383
"description": "Generates indented markdown maps of the plugin ecosystem for agent navigation",
84-
"version": "1.0.11",
84+
"version": "1.0.12",
8585
"author": {
8686
"name": "Fusengine",
8787
"email": "hello@fusengine.ch"
@@ -145,7 +145,7 @@
145145
"name": "fuse-design",
146146
"source": ".cursor-plugin/plugins/fuse-design",
147147
"description": "Design Director for websites, web apps, iOS, and Android. Generates HTML/CSS directly (Gemini Design MCP, Magic/21st.dev, and shadcn MCP are optional). iOS/Android produce tokens + a device-framed mockup + a handoff spec, never SwiftUI/Compose. Design method, design system tokens, motion, UX copy, and a deterministic design-review gate. Anti-AI-Slop, WCAG 2.2.",
148-
"version": "2.2.8",
148+
"version": "2.2.9",
149149
"author": {
150150
"name": "Fusengine",
151151
"email": "hello@fusengine.ch"
@@ -181,7 +181,7 @@
181181
"name": "fuse-go",
182182
"source": ".cursor-plugin/plugins/fuse-go",
183183
"description": "Expert Go 1.26+ — idioms, concurrency, backend services, cargo-grade tooling (golangci-lint v2, govulncheck), with SOLID principles",
184-
"version": "1.0.5",
184+
"version": "1.0.6",
185185
"author": {
186186
"name": "Fusengine",
187187
"email": "hello@fusengine.ch"
@@ -207,7 +207,7 @@
207207
"name": "fuse-laravel",
208208
"source": ".cursor-plugin/plugins/fuse-laravel",
209209
"description": "Expert Laravel 13 + PHP 8.3+ with SOLID principles, first-class PHP Attributes, Laravel AI SDK, JSON:API Resources, native vector search (pgvector), Eloquent, Livewire, queues with routing, and comprehensive documentation",
210-
"version": "1.2.6",
210+
"version": "1.2.7",
211211
"author": {
212212
"name": "Fusengine",
213213
"email": "hello@fusengine.ch"
@@ -247,7 +247,7 @@
247247
"name": "fuse-nextjs",
248248
"source": ".cursor-plugin/plugins/fuse-nextjs",
249249
"description": "Expert Next.js 16 + React 19 with App Router, Server Components, Prisma 7, and Better Auth",
250-
"version": "1.1.22",
250+
"version": "1.1.23",
251251
"author": {
252252
"name": "Fusengine",
253253
"email": "hello@fusengine.ch"
@@ -269,7 +269,7 @@
269269
"name": "fuse-php",
270270
"source": ".cursor-plugin/plugins/fuse-php",
271271
"description": "Expert modern PHP 8.5/8.4 for non-Laravel projects — libraries, standalone Symfony components, Slim, API-first apps, and CLI tools, with PER Coding Style 3.0, PHPStan, and SOLID principles",
272-
"version": "1.0.5",
272+
"version": "1.0.6",
273273
"author": {
274274
"name": "Fusengine",
275275
"email": "hello@fusengine.ch"
@@ -322,7 +322,7 @@
322322
"name": "fuse-react",
323323
"source": ".cursor-plugin/plugins/fuse-react",
324324
"description": "Expert React 19 with hooks, TanStack Router, Zustand, React Hook Form, Testing Library, shadcn/ui, and SOLID principles",
325-
"version": "1.0.19",
325+
"version": "1.0.20",
326326
"author": {
327327
"name": "Fusengine",
328328
"email": "hello@fusengine.ch"
@@ -359,7 +359,7 @@
359359
"name": "fuse-rust",
360360
"source": ".cursor-plugin/plugins/fuse-rust",
361361
"description": "Expert Rust 1.96+ (2024 edition) — ownership, error handling, async/tokio, axum backends, cargo tooling, with SOLID principles",
362-
"version": "1.0.5",
362+
"version": "1.0.6",
363363
"author": {
364364
"name": "Fusengine",
365365
"email": "hello@fusengine.ch"
@@ -408,7 +408,7 @@
408408
"name": "fuse-seo",
409409
"source": ".cursor-plugin/plugins/fuse-seo",
410410
"description": "SEO/GEO 2026 plugin. Local-first, framework-aware, zero third-party APIs. Covers technical SEO, schema markup, E-E-A-T, AI Overviews optimization, local SEO, sitemaps, hreflang, internal linking, content briefs, semantic clustering, and search experience optimization.",
411-
"version": "1.0.10",
411+
"version": "1.0.11",
412412
"author": {
413413
"name": "Fusengine"
414414
},
@@ -438,7 +438,7 @@
438438
"name": "fuse-shadcn-ui",
439439
"source": ".cursor-plugin/plugins/fuse-shadcn-ui",
440440
"description": "Expert shadcn/ui with Radix UI and Base UI detection, component patterns, registries, theming, and migration",
441-
"version": "1.0.16",
441+
"version": "1.0.17",
442442
"author": {
443443
"name": "Fusengine",
444444
"email": "hello@fusengine.ch"
@@ -462,7 +462,7 @@
462462
"name": "fuse-solid",
463463
"source": ".cursor-plugin/plugins/fuse-solid",
464464
"description": "SOLID principles enforcement with automatic project detection and validation for all languages",
465-
"version": "1.0.17",
465+
"version": "1.0.18",
466466
"author": {
467467
"name": "Fusengine",
468468
"email": "hello@fusengine.ch"
@@ -483,7 +483,7 @@
483483
"name": "fuse-swift-apple-expert",
484484
"source": ".cursor-plugin/plugins/fuse-swift-apple-expert",
485485
"description": "Expert Swift 6.2 + SwiftUI for iOS 26, macOS 26, iPadOS 26, watchOS 26, visionOS 26, tvOS 26 with Liquid Glass, @Observable, actors, SwiftData inheritance",
486-
"version": "1.1.18",
486+
"version": "1.1.19",
487487
"author": {
488488
"name": "Fusengine",
489489
"email": "hello@fusengine.ch"
@@ -510,7 +510,7 @@
510510
"name": "fuse-tailwindcss",
511511
"source": ".cursor-plugin/plugins/fuse-tailwindcss",
512512
"description": "Expert Tailwind CSS v4.1 - CSS-first configuration, @theme, @utility, @variant, Oxide engine 5x faster, OKLCH colors, container queries, 15 specialized skills",
513-
"version": "1.1.9",
513+
"version": "1.1.10",
514514
"author": {
515515
"name": "Fusengine",
516516
"email": "hello@fusengine.ch"
@@ -542,7 +542,7 @@
542542
"name": "fuse-tanstack-start",
543543
"source": ".cursor-plugin/plugins/fuse-tanstack-start",
544544
"description": "Expert TanStack Start (React, RC) full-stack framework with file-based routing, createServerFn server functions, selective SSR, and Nitro deployment",
545-
"version": "1.0.4",
545+
"version": "1.0.5",
546546
"author": {
547547
"name": "Fusengine",
548548
"email": "hello@fusengine.ch"
@@ -567,7 +567,7 @@
567567
"name": "fuse-typescript",
568568
"source": ".cursor-plugin/plugins/fuse-typescript",
569569
"description": "Expert TypeScript 6.0 for pure TS projects — CLI tools, libraries, scripts, and backends on Node 24 LTS or Bun 1.3, with SOLID principles",
570-
"version": "1.0.5",
570+
"version": "1.0.6",
571571
"author": {
572572
"name": "Fusengine",
573573
"email": "hello@fusengine.ch"

‎.cursor-plugin/plugins/fuse-astro/.cursor-plugin/plugin.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "fuse-astro",
3-
"version": "1.0.12",
3+
"version": "1.0.13",
44
"description": "Expert Astro 6 with Islands Architecture, Content Layer, Actions, View Transitions, and multi-framework integration",
55
"author": {
66
"name": "Fusengine",

‎.cursor-plugin/plugins/fuse-astro/agents/astro-expert.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ This agent activates when ANY of the following are detected:
138138
## Content Strategy
139139

140140
- **Static sites** — `output: 'static'` + Content Collections for blogs/docs
141-
- **Hybrid sites** — `output: 'hybrid'` with `prerender = false` for dynamic pages
141+
- **Hybrid sites** — `output: 'static'` + adapter, with `prerender = false` for dynamic pages (there is no `output: 'hybrid'`)
142142
- **Full SSR** — `output: 'server'` + adapter for apps with auth/session
143143

144144
---

‎.cursor-plugin/plugins/fuse-astro/skills/astro-7/SKILL.md‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: astro-7
3-
description: Use when building Astro 7 sites, choosing an output mode (static/server/hybrid), configuring middleware, or upgrading from Astro 5/6.
3+
description: Use when building Astro 7 sites, choosing an output mode (static/server, hybrid via per-route prerender), configuring middleware, or upgrading from Astro 5/6.
44
versions:
55
astro: "7"
66
node: "22.12+"
@@ -11,7 +11,7 @@ related-skills: astro-content, astro-actions, astro-islands, astro-integrations,
1111
---
1212

1313
<objective>
14-
Configures and explains Astro 7 (stable, 7.0.9) core framework mechanics: file-based routing, the three output modes (static/server/hybrid) and per-route `prerender`, middleware for auth/redirects/headers, the Vite Environment API, the single Rust compiler (Go compiler removed, strict HTML parsing), stable Content Security Policy, Live Content Collections, and the built-in Fonts API.
14+
Configures and explains Astro 7 (stable, 7.3.5) core framework mechanics: file-based routing, the two output modes (`static`/`server`) plus hybrid rendering via per-route `prerender`, middleware for auth/redirects/headers, the Vite Environment API, the single Rust compiler (Go compiler removed, strict HTML parsing), stable Content Security Policy, Live Content Collections, and the built-in Fonts API.
1515

1616
Covers initial project setup and migration from Astro 5/6, including breaking changes and Node 22.12+ requirements. Does not cover Content Layer API details (astro-content), Server Actions (astro-actions), Islands hydration directives (astro-islands), UI framework integrations (astro-integrations), or deployment adapters (astro-deployment) — those live in their own skills.
1717
</objective>
@@ -38,7 +38,7 @@ After implementation, run **fuse-ai-pilot:sniper** for validation.
3838

3939
- Building new content-driven websites or blogs
4040
- Migrating from Astro 6 to version 7
41-
- Configuring static, server, or hybrid output modes
41+
- Configuring static or server output (hybrid = per-route `prerender`)
4242
- Setting up middleware for auth or redirects
4343
- Leveraging the new Rust compiler for large sites
4444
- Implementing Content Security Policy (CSP) headers
@@ -54,6 +54,8 @@ After implementation, run **fuse-ai-pilot:sniper** for validation.
5454
| Built-in Fonts API (stable) | Zero-config font loading with performance optimization |
5555
| CSP Support (stable) | Built-in Content Security Policy nonce management |
5656
| Cloudflare Workers | First-class support with workerd runtime in dev |
57+
| Route caching (stable in 7.0) | Top-level `cache` + `routeRules`, `Astro.cache.set({ maxAge, swr, tags })` |
58+
| Advanced Routing (7.0) | Optional `src/fetch.ts` entrypoint (`astro/fetch`, `astro/hono`) |
5759

5860
---
5961

@@ -65,7 +67,7 @@ After implementation, run **fuse-ai-pilot:sniper** for validation.
6567
|------|-------------|----------|
6668
| `static` (default) | All pages prerendered at build | Blogs, docs, marketing |
6769
| `server` | All pages rendered on demand | Apps, dashboards, auth |
68-
| `hybrid` | Mix static + on-demand | Most production sites |
70+
| Hybrid (not an `output` value) | `static` or `server` + per-route `export const prerender` | Most production sites |
6971

7072
### Routing
7173

@@ -94,8 +96,8 @@ After implementation, run **fuse-ai-pilot:sniper** for validation.
9496
## Best Practices
9597

9698
1. **Use `output: 'static'` by default** — Add server only when needed
97-
2. **Per-route `prerender`** — Fine-grained control in hybrid mode
99+
2. **Per-route `prerender`** — Fine-grained hybrid control (`output` only accepts `'static' | 'server'`; there is no `'hybrid'` value)
98100
3. **Middleware for cross-cutting concerns** — Auth, redirects, headers
99101
4. **No compiler flag needed** — the Rust compiler is the only compiler now (Go removed); watch for strict HTML parsing errors on unclosed tags
100-
5. **CSP nonces** — Use built-in stable support instead of custom headers
102+
5. **CSP hashes** — Use built-in stable `security.csp` (hash-based, plus the `Astro.csp` runtime API) instead of custom headers
101103
6. **Node 22.12+ required** — odd-numbered Node versions are unsupported; stay on stable TypeScript tooling, the native `tsgo` compiler can make `astro check`/typecheck fail opaquely (see installation.md)

‎.cursor-plugin/plugins/fuse-astro/skills/astro-7/references/config.md‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ keywords: config, defineConfig, integrations, vite, base, site, server
66
priority: high
77
---
88

9-
# Astro 6 Configuration
9+
# Astro 7 Configuration
1010

1111
## When to Use
1212

@@ -23,7 +23,7 @@ import { defineConfig } from 'astro/config';
2323
export default defineConfig({
2424
site: 'https://example.com',
2525
base: '/',
26-
output: 'static', // 'static' | 'server' | 'hybrid'
26+
output: 'static', // 'static' | 'server' (no 'hybrid' — use per-route prerender)
2727
trailingSlash: 'ignore', // 'always' | 'never' | 'ignore'
2828
compressHTML: 'jsx', // default in Astro 7 — JSX-style whitespace stripping
2929
});
@@ -41,6 +41,10 @@ export default defineConfig({
4141
| `adapter` | object | Server runtime adapter |
4242
| `vite` | object | Vite config passthrough (Vite 8) |
4343
| `srcDir` | string | Source directory (default: `./src`) |
44+
| `session` | `object \| false` | Session driver config; `false` opts out entirely (7.2+) — runtime tree-shaken, adapters skip their default driver |
45+
| `logger.entrypoint` | `URL \| string` | Custom logger module (option since 7.0; URL form 7.1+, relative string 7.2+) |
46+
| `fetchFile` | `string \| null` | Advanced Routing entrypoint (default `src/fetch.ts`); `null` disables it |
47+
| `cache` / `routeRules` | object | Stable route caching (7.0), e.g. `cache: { provider: memoryCache() }` |
4448
| `publicDir` | string | Public assets (default: `./public`) |
4549

4650
## Removed Experimental Flags (Astro 7)

‎.cursor-plugin/plugins/fuse-astro/skills/astro-7/references/installation.md‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
---
22
name: installation
3-
description: Astro 6 installation, upgrade from v5, Node requirements
4-
when-to-use: new project, upgrading from Astro 5, setting up TypeScript
3+
description: Astro 7 installation, upgrade from v5/v6, Node requirements
4+
when-to-use: new project, upgrading from Astro 5/6, setting up TypeScript
55
keywords: setup, init, create, upgrade, node, requirements
66
priority: high
77
---
88

9-
# Astro 6 Installation
9+
# Astro 7 Installation
1010

1111
## When to Use
1212

13-
- Starting a new Astro 6 project
14-
- Upgrading from Astro 4/5
15-
- Configuring Node 22+ environment
13+
- Starting a new Astro 7 project (latest stable: 7.3.5)
14+
- Upgrading from Astro 5/6 (see the official v7 upgrade guide)
15+
- Configuring Node 22.12+ environment
1616

1717
## Requirements
1818

1919
| Requirement | Version |
2020
|-------------|---------|
21-
| Node.js | 22.12+ (odd-numbered Node versions unsupported) |
21+
| Node.js | 22.12+ (`engines.node >=22.12.0`; odd-numbered Node versions unsupported) |
2222
| TypeScript | 5.1+ |
2323

2424
## TS7 / `tsgo` Warning

‎.cursor-plugin/plugins/fuse-astro/skills/astro-7/references/middleware.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
name: middleware
3-
description: Astro 6 middleware — request/response interception, auth, redirects, locals
3+
description: Astro 7 middleware — request/response interception, auth, redirects, locals
44
when-to-use: auth guards, redirects, request logging, setting locals
55
keywords: middleware, locals, auth, redirect, request, response
66
priority: medium
77
---
88

9-
# Astro 6 Middleware
9+
# Astro 7 Middleware
1010

1111
## When to Use
1212

‎.cursor-plugin/plugins/fuse-astro/skills/astro-7/references/new-features.md‎

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ priority: medium
1010

1111
## When to Use
1212

13-
- Leveraging new Astro 6 stable features
13+
- Leveraging Astro 6/7 stable features (7.1–7.3 additions at the end)
1414
- Setting up font optimization
1515
- Implementing Content Security Policy
1616
- Using Live Content Collections for real-time data
@@ -40,28 +40,51 @@ export default defineConfig({
4040

4141
## Content Security Policy (stable)
4242

43-
CSP is stable since Astro 6.0 — `experimental.csp` no longer exists, configure it as a top-level option:
43+
CSP is stable since Astro 6.0 — `experimental.csp` no longer exists, configure it under `security.csp`:
4444

4545
```typescript
4646
export default defineConfig({
47-
csp: true, // Generates nonces automatically
47+
security: {
48+
csp: true, // Hash-based: auto-hashes bundled scripts/styles (SHA-256 default)
49+
},
4850
});
4951
```
5052

5153
## Live Content Collections
5254

53-
Fetch real-time external data through the content layer:
55+
Fetch real-time external data at request time (adapter required). Live collections live in `src/live.config.ts` (not `content.config.ts`) and use `defineLiveCollection()`:
5456

5557
```typescript
56-
// src/content.config.ts
57-
import { defineCollection } from 'astro:content';
58+
// src/live.config.ts
59+
import { defineLiveCollection } from 'astro:content';
5860
import { myLiveLoader } from './loaders/live';
5961

60-
const news = defineCollection({
62+
const news = defineLiveCollection({
6163
loader: myLiveLoader({ url: 'https://api.example.com/news' }),
6264
});
65+
66+
export const collections = { news };
6367
```
6468

69+
Query with `getLiveCollection()` / `getLiveEntry()`.
70+
6571
## Single Rust Compiler (Astro 7)
6672

6773
Astro 7 removed the Go compiler entirely — the Rust compiler is now the only `.astro` file compiler, no flag needed (`experimental.rustCompiler` no longer exists). It also enforces **strict HTML parsing**: unclosed tags and invalid HTML now raise a build error instead of being silently auto-corrected. Audit existing `.astro` templates for unclosed tags before upgrading.
74+
75+
## Astro 7.1 – 7.3 Additions
76+
77+
| Version | Feature | Usage |
78+
|---------|---------|-------|
79+
| 7.1 | Fine-grained CSP directives | `kind: 'element' \| 'attribute'` on CSP hashes/resources → `script-src-elem`, `script-src-attr`, `style-src-elem`, `style-src-attr` |
80+
| 7.1 | Pagination URL control | `paginate(items, { pageSize, format: (url) => url + '.html' })` |
81+
| 7.1 | Multiple dev servers | `astro dev --ignore-lock` (bypasses the dev lockfile) |
82+
| 7.1 | Lower sync memory | `glob({ ..., deferRender: true })` renders entries on demand |
83+
| 7.1 | Logger entrypoint as URL (option exists since 7.0) | `logger: { entrypoint: new URL('./src/custom-logger.js', import.meta.url) }` + `AstroRuntimeLogger` type |
84+
| 7.2 | Opt out of sessions | `session: false` — session runtime removed from the SSR bundle |
85+
| 7.2 | Background preview | `astro preview --background`, then `astro preview status \| logs \| stop` |
86+
| 7.2 | Relative logger entrypoint | `logger: { entrypoint: './src/custom-logger.js' }` |
87+
| 7.3 | Multiple preview servers | `astro preview --ignore-lock` |
88+
| 7.3 | Logger in extension points | Custom image services (`transform(..., logger)`) and cache providers (`onRequest({ logger }, next)`) receive Astro's logger |
89+
90+
Experimental (opt-in, not stable): `experimental.collectionStorage: 'chunked'` (7.1) and `experimental.incrementalBuild` + per-path `cacheKey` in `getStaticPaths()` (7.2).

0 commit comments

Comments
 (0)