@dzhechkov/keysarium 1.3.0 → 1.5.0
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/README.md +70 -10
- package/bin/cli.js +0 -0
- package/package.json +5 -3
- package/src/utils.js +1 -1
- package/templates/.claude/commands/analyst-manual.md +38 -0
- package/templates/.claude/commands/brain-export.md +2 -0
- package/templates/.claude/commands/bto-benchmark.md +302 -0
- package/templates/.claude/commands/casarium.md +55 -4
- package/templates/.claude/commands/feature-adr.md +8 -0
- package/templates/.claude/commands/harvest.md +28 -46
- package/templates/.claude/rules/trust-tiers.md +6 -0
- package/templates/.claude/shards/feature-adr.shard.md +64 -10
- package/templates/.claude/shards/phase-ai-factory.shard.md +109 -0
- package/templates/.claude/skills/ai-factory-mapper/README.md +90 -0
- package/templates/.claude/skills/ai-factory-mapper/SKILL.md +309 -0
- package/templates/.claude/skills/ai-factory-mapper/assets/report-template.md +123 -0
- package/templates/.claude/skills/ai-factory-mapper/references/catalog.md +230 -0
- package/templates/.claude/skills/ai-factory-mapper/references/coverage-formula.md +219 -0
- package/templates/.claude/skills/ai-factory-mapper/references/decomposition-checklist.md +183 -0
- package/templates/.claude/skills/ai-factory-mapper/references/pattern-library.md +312 -0
- package/templates/.claude/skills/ai-factory-mapper/scripts/build_docx_report.js +423 -0
- package/templates/.claude/skills/analyst-manual-full/SKILL.md +286 -0
- package/templates/.claude/skills/edu-site-generator/SKILL.md +254 -0
- package/templates/.claude/skills/edu-site-generator/examples/sample-course-structure.md +116 -0
- package/templates/.claude/skills/edu-site-generator/modules/00-content-analysis.md +84 -0
- package/templates/.claude/skills/edu-site-generator/modules/01-course-structure.md +75 -0
- package/templates/.claude/skills/edu-site-generator/modules/02-data-generation.md +186 -0
- package/templates/.claude/skills/edu-site-generator/modules/03-scaffold.md +249 -0
- package/templates/.claude/skills/edu-site-generator/modules/04-components.md +130 -0
- package/templates/.claude/skills/edu-site-generator/modules/05-gamification.md +163 -0
- package/templates/.claude/skills/edu-site-generator/modules/06-deploy.md +88 -0
- package/templates/.claude/skills/edu-site-generator/modules/07-verification.md +97 -0
- package/templates/.claude/skills/edu-site-generator/references/component-templates.md +436 -0
- package/templates/.claude/skills/edu-site-generator/references/data-schemas.md +164 -0
- package/templates/.claude/skills/edu-site-generator/references/exercise-catalog.md +110 -0
- package/templates/.claude/skills/edu-site-generator/references/tech-stack.md +69 -0
- package/templates/.claude/skills/feature-adr/SKILL.md +245 -59
- package/templates/.claude/skills/feature-adr/modules/03-adr.md +43 -0
- package/templates/.claude/skills/feature-adr/modules/03.5-ideation-swarm.md +180 -0
- package/templates/.claude/skills/feature-adr/modules/06-implementation-plan.md +56 -7
- package/templates/.claude/skills/feature-adr/modules/08-qe.md +87 -23
- package/templates/.claude/skills/feature-adr/modules/09-fleet-qe.md +305 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/README.md +143 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/brutal-honesty-review.md +240 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/chaos-engineering-resilience.md +163 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/code-goal-planner.md +446 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/enterprise-integration-testing.md +111 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/mutation-testing.md +236 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/performance-testing.md +315 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qcsd-ideation-swarm.md +126 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qcsd-production-swarm.md +108 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-coverage-analysis.md +193 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-requirements-validation.md +254 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/regression-testing.md +233 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/risk-based-testing.md +212 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/security-testing.md +311 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/shift-left-testing.md +231 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/tdd-london-chicago.md +249 -0
- package/templates/.claude/skills/knowledge-extractor/SKILL.md +254 -0
- package/templates/.claude/skills/knowledge-extractor/modules/01-extract.md +188 -0
- package/templates/.claude/skills/knowledge-extractor/modules/02-classify.md +99 -0
- package/templates/.claude/skills/knowledge-extractor/modules/03-gate.md +150 -0
- package/templates/.claude/skills/knowledge-extractor/modules/04-integrate.md +159 -0
- package/templates/.claude/skills/knowledge-extractor/references/artifact-categories.md +100 -0
- package/templates/.claude/skills/knowledge-extractor/references/maturity-model.md +94 -0
- package/templates/.claude/skills/knowledge-extractor/references/quality-gates.md +98 -0
- package/templates/.claude/skills/knowledge-extractor/templates/artifact-card.md +63 -0
- package/templates/.claude/skills/knowledge-extractor/templates/harvest-report.md +102 -0
- package/templates/.claude/skills/transcript-site-generator/SKILL.md +287 -0
- package/templates/.claude/skills/transcript-site-generator/examples/sample-text-only-site.md +123 -0
- package/templates/.claude/skills/transcript-site-generator/examples/sample-transcript-site.md +134 -0
- package/templates/.claude/skills/transcript-site-generator/modules/00-input-analysis.md +132 -0
- package/templates/.claude/skills/transcript-site-generator/modules/01-content-parsing.md +117 -0
- package/templates/.claude/skills/transcript-site-generator/modules/02-site-generation.md +293 -0
- package/templates/.claude/skills/transcript-site-generator/modules/03-interactivity.md +406 -0
- package/templates/.claude/skills/transcript-site-generator/modules/04-deploy.md +130 -0
- package/templates/.claude/skills/transcript-site-generator/modules/05-verification.md +155 -0
- package/templates/.claude/skills/transcript-site-generator/references/component-catalog.md +86 -0
- package/templates/.claude/skills/transcript-site-generator/references/data-schemas.md +123 -0
- package/templates/.claude/skills/transcript-site-generator/references/tech-stack.md +132 -0
- package/templates/CLAUDE.md +30 -9
- package/templates/docs/continuous-learning-guide.md +622 -0
- package/templates/docs/edu-site-generator/01-deployment-guide.md +911 -0
- package/templates/docs/edu-site-generator/02-admin-guide.md +901 -0
- package/templates/docs/edu-site-generator/03-user-guide.md +1008 -0
- package/templates/docs/edu-site-generator/04-infrastructure-requirements.md +489 -0
- package/templates/docs/edu-site-generator/05-architecture.md +902 -0
- package/templates/docs/edu-site-generator/06-user-flows.md +759 -0
- package/templates/docs/improvement-directions.md +8 -4
- package/templates/docs/keysarium-core/02-functionality.md +3 -1
- package/templates/docs/skills-bto/01-deployment-guide.md +1 -1
- package/templates/docs/skills-bto/02-admin-guide.md +4 -1
- package/templates/docs/skills-bto/03-user-guide.md +4 -3
- package/templates/docs/skills-bto/04-infrastructure-requirements.md +2 -1
- package/templates/docs/skills-bto/05-architecture.md +11 -11
- package/templates/docs/skills-bto/06-user-flows.md +2 -1
- package/templates/docs/transcript-site-generator/01-deployment-guide.md +1042 -0
- package/templates/docs/transcript-site-generator/02-admin-guide.md +918 -0
- package/templates/docs/transcript-site-generator/03-user-guide.md +925 -0
- package/templates/docs/transcript-site-generator/04-infrastructure-requirements.md +482 -0
- package/templates/docs/transcript-site-generator/05-architecture.md +1068 -0
- package/templates/docs/transcript-site-generator/06-user-flows.md +855 -0
- package/templates/lib/dream-engine.md +1 -1
- package/templates/lib/memory-protocol.md +6 -2
- package/templates/lib/reward-tracker.md +6 -3
|
@@ -0,0 +1,489 @@
|
|
|
1
|
+
# Infrastructure Requirements — @dzhechkov/skills-edu-site
|
|
2
|
+
|
|
3
|
+
## Contents
|
|
4
|
+
|
|
5
|
+
1. [Architecture Overview](#1-architecture-overview)
|
|
6
|
+
2. [Build Requirements](#2-build-requirements)
|
|
7
|
+
3. [Runtime Dependencies](#3-runtime-dependencies)
|
|
8
|
+
4. [Storage Requirements](#4-storage-requirements)
|
|
9
|
+
5. [Hosting Options](#5-hosting-options)
|
|
10
|
+
6. [Network Requirements](#6-network-requirements)
|
|
11
|
+
7. [Browser Support](#7-browser-support)
|
|
12
|
+
8. [Accessibility](#8-accessibility)
|
|
13
|
+
9. [Readiness Checklist](#9-readiness-checklist)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1. Architecture Overview
|
|
18
|
+
|
|
19
|
+
@dzhechkov/skills-edu-site generates a fully static React SPA. The architecture has two distinct phases with fundamentally different infrastructure needs:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
PHASE 1: GENERATION PHASE 2: RUNTIME (post-build)
|
|
23
|
+
(Claude Code + Anthropic API) (Static files only)
|
|
24
|
+
|
|
25
|
+
+------------------------------+ +-------------------------+
|
|
26
|
+
| Developer Machine | | Static File Server |
|
|
27
|
+
| | | (GitHub Pages, etc.) |
|
|
28
|
+
| +------------------------+ | | |
|
|
29
|
+
| | Claude Code CLI | | | dist/ |
|
|
30
|
+
| | +-- edu-site-generator| | | +-- index.html |
|
|
31
|
+
| | skill | | | +-- assets/ |
|
|
32
|
+
| +----------+-------------+ | | | +-- index-*.js |
|
|
33
|
+
| | HTTPS | | | +-- index-*.css |
|
|
34
|
+
+-------------+----------------+ | +-- favicon.ico |
|
|
35
|
+
| | |
|
|
36
|
+
+-------v--------+ +-------------------------+
|
|
37
|
+
| Anthropic API | |
|
|
38
|
+
| (generation | | HTTPS
|
|
39
|
+
| phase only) | |
|
|
40
|
+
+----------------+ +------v-------+
|
|
41
|
+
| Browser |
|
|
42
|
+
| (end user) |
|
|
43
|
+
| No API calls|
|
|
44
|
+
| All offline |
|
|
45
|
+
+--------------+
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Key architectural property:** After `npm run build`, the generated site is a collection of static files. No server-side code runs. No API calls are made. No database is needed. The entire application — content, exercises, gamification logic — runs in the browser.
|
|
49
|
+
|
|
50
|
+
This means:
|
|
51
|
+
- **Generation phase** requires Node.js, Claude Code CLI, and Anthropic API access
|
|
52
|
+
- **Runtime phase** requires only a static file server (or even opening `index.html` locally)
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 2. Build Requirements
|
|
57
|
+
|
|
58
|
+
These requirements apply to the developer machine where the site is generated and built.
|
|
59
|
+
|
|
60
|
+
### 2.1. Software dependencies
|
|
61
|
+
|
|
62
|
+
| Component | Minimum version | Recommended | Check | Purpose |
|
|
63
|
+
|-----------|----------------|-------------|-------|---------|
|
|
64
|
+
| Node.js | 16.0.0 | 20 LTS | `node --version` | Build toolchain, Vite, React |
|
|
65
|
+
| npm | 8.0.0 | 10+ | `npm --version` | Package management |
|
|
66
|
+
| Claude Code CLI | Latest | Latest | `claude --version` | Skill execution environment |
|
|
67
|
+
| git | 2.20+ | Latest | `git --version` | Version control, GitHub Pages deploy |
|
|
68
|
+
|
|
69
|
+
### 2.2. Hardware requirements
|
|
70
|
+
|
|
71
|
+
The build process is lightweight. Vite is fast and requires minimal resources.
|
|
72
|
+
|
|
73
|
+
| Component | Minimum | Recommended | Notes |
|
|
74
|
+
|-----------|---------|-------------|-------|
|
|
75
|
+
| CPU | 1 core | 2+ cores | Vite build is fast even on single core |
|
|
76
|
+
| RAM | 1 GB free | 2+ GB | Node.js process during build |
|
|
77
|
+
| Disk | 100 MB free | 500 MB | node_modules (~150 MB) + build output |
|
|
78
|
+
| Terminal | 80 x 24 | 120+ columns | Wider terminals display pipeline output better |
|
|
79
|
+
|
|
80
|
+
### 2.3. Build commands
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Install dependencies (one-time, or after generation)
|
|
84
|
+
npm install
|
|
85
|
+
|
|
86
|
+
# Development server with hot module replacement
|
|
87
|
+
npm run dev
|
|
88
|
+
|
|
89
|
+
# Production build
|
|
90
|
+
npm run build
|
|
91
|
+
|
|
92
|
+
# Preview production build locally
|
|
93
|
+
npm run preview
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 2.4. Build output
|
|
97
|
+
|
|
98
|
+
The `npm run build` command produces the `dist/` directory:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
dist/
|
|
102
|
+
+-- index.html (~2 KB)
|
|
103
|
+
+-- assets/
|
|
104
|
+
| +-- index-[hash].js (~100-300 KB, gzipped ~40-120 KB)
|
|
105
|
+
| +-- index-[hash].css (~10-30 KB, gzipped ~3-8 KB)
|
|
106
|
+
+-- favicon.ico (~1 KB)
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Total output size: 200-500 KB uncompressed, 50-150 KB gzipped.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 3. Runtime Dependencies
|
|
114
|
+
|
|
115
|
+
These are the npm packages included in the generated project.
|
|
116
|
+
|
|
117
|
+
### 3.1. Production dependencies
|
|
118
|
+
|
|
119
|
+
| Package | Version | Size (gzip) | Purpose |
|
|
120
|
+
|---------|---------|------------|---------|
|
|
121
|
+
| react | ^19.0.0 | ~6 KB | UI library |
|
|
122
|
+
| react-dom | ^19.0.0 | ~40 KB | DOM rendering |
|
|
123
|
+
| react-router-dom | ^7.0.0 | ~12 KB | Client-side routing (HashRouter) |
|
|
124
|
+
| zustand | ^5.0.0 | ~1 KB | State management with persist |
|
|
125
|
+
|
|
126
|
+
### 3.2. Dev dependencies
|
|
127
|
+
|
|
128
|
+
| Package | Version | Purpose |
|
|
129
|
+
|---------|---------|---------|
|
|
130
|
+
| vite | ^6.0.0 | Build tool and dev server |
|
|
131
|
+
| @vitejs/plugin-react | ^4.0.0 | React Fast Refresh for Vite |
|
|
132
|
+
| tailwindcss | ^4.0.0 | Utility-first CSS framework |
|
|
133
|
+
| @tailwindcss/vite | ^4.0.0 | TailwindCSS v4 Vite integration |
|
|
134
|
+
|
|
135
|
+
### 3.3. No runtime API dependencies
|
|
136
|
+
|
|
137
|
+
The generated site makes **zero network requests** after loading. All content — sections, exercises, quiz questions, achievements — is bundled into the JavaScript assets at build time. The site works fully offline once loaded.
|
|
138
|
+
|
|
139
|
+
This is a deliberate design choice:
|
|
140
|
+
- No backend server to maintain
|
|
141
|
+
- No API keys to manage
|
|
142
|
+
- No CORS issues
|
|
143
|
+
- Works in air-gapped environments
|
|
144
|
+
- Instant page transitions (all data is local)
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 4. Storage Requirements
|
|
149
|
+
|
|
150
|
+
### 4.1. Source project (before build)
|
|
151
|
+
|
|
152
|
+
| Directory | Typical size | Contains |
|
|
153
|
+
|-----------|-------------|---------|
|
|
154
|
+
| `node_modules/` | ~150 MB | npm dependencies (not deployed) |
|
|
155
|
+
| `src/` | 50-200 KB | Application source code |
|
|
156
|
+
| `public/` | 1-10 KB | Static assets (favicon) |
|
|
157
|
+
| `.github/` | 1 KB | GitHub Actions workflow |
|
|
158
|
+
| **Total (with node_modules)** | **~150 MB** | |
|
|
159
|
+
| **Total (without node_modules)** | **~100-250 KB** | |
|
|
160
|
+
|
|
161
|
+
### 4.2. Build output
|
|
162
|
+
|
|
163
|
+
| File | Typical size |
|
|
164
|
+
|------|-------------|
|
|
165
|
+
| `dist/index.html` | 1-3 KB |
|
|
166
|
+
| `dist/assets/*.js` | 100-300 KB |
|
|
167
|
+
| `dist/assets/*.css` | 10-30 KB |
|
|
168
|
+
| `dist/favicon.ico` | ~1 KB |
|
|
169
|
+
| **Total dist/** | **200-500 KB** |
|
|
170
|
+
|
|
171
|
+
### 4.3. Client-side storage (localStorage)
|
|
172
|
+
|
|
173
|
+
The Zustand persist middleware stores user progress in localStorage:
|
|
174
|
+
|
|
175
|
+
| Data | Typical size | Description |
|
|
176
|
+
|------|-------------|-------------|
|
|
177
|
+
| Completed exercises | 0.5-2 KB | Set of exercise IDs per section |
|
|
178
|
+
| Points and streaks | < 0.1 KB | Numeric values |
|
|
179
|
+
| Unlocked achievements | 0.2-0.5 KB | Array of achievement IDs |
|
|
180
|
+
| Final test results | 0.5-1 KB | Answers and score |
|
|
181
|
+
| **Total localStorage** | **~1-4 KB** | |
|
|
182
|
+
|
|
183
|
+
This is well within browser localStorage limits (5-10 MB typical).
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## 5. Hosting Options
|
|
188
|
+
|
|
189
|
+
### 5.1. GitHub Pages (recommended, free)
|
|
190
|
+
|
|
191
|
+
The generated project includes a GitHub Actions workflow (`.github/workflows/deploy.yml`) for automated deployment.
|
|
192
|
+
|
|
193
|
+
**Setup:**
|
|
194
|
+
1. Push the generated project to a GitHub repository
|
|
195
|
+
2. Go to Settings > Pages > Source: GitHub Actions
|
|
196
|
+
3. The workflow runs on every push to `main`
|
|
197
|
+
|
|
198
|
+
**Requirements:**
|
|
199
|
+
- GitHub account (free tier is sufficient)
|
|
200
|
+
- Repository (public or private — Pages works with both on paid plans)
|
|
201
|
+
- Correct `base` path in `vite.config.js` matching the repository name
|
|
202
|
+
|
|
203
|
+
**URL format:** `https://username.github.io/repository-name/`
|
|
204
|
+
|
|
205
|
+
**Limitations:**
|
|
206
|
+
- Max site size: 1 GB (generated sites are well under this)
|
|
207
|
+
- Bandwidth: 100 GB/month on free tier
|
|
208
|
+
- Build minutes: 2,000/month on free tier
|
|
209
|
+
|
|
210
|
+
### 5.2. Self-hosted static file server
|
|
211
|
+
|
|
212
|
+
Any static file server can host the `dist/` directory.
|
|
213
|
+
|
|
214
|
+
**Nginx example:**
|
|
215
|
+
```nginx
|
|
216
|
+
server {
|
|
217
|
+
listen 80;
|
|
218
|
+
server_name edu.example.com;
|
|
219
|
+
root /var/www/edu-site/dist;
|
|
220
|
+
index index.html;
|
|
221
|
+
|
|
222
|
+
location / {
|
|
223
|
+
try_files $uri $uri/ /index.html;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
# Cache static assets
|
|
227
|
+
location /assets/ {
|
|
228
|
+
expires 1y;
|
|
229
|
+
add_header Cache-Control "public, immutable";
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Requirements:** Any server capable of serving static files (Nginx, Apache, Caddy, Python http.server).
|
|
235
|
+
|
|
236
|
+
### 5.3. Vercel
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Install Vercel CLI
|
|
240
|
+
npm i -g vercel
|
|
241
|
+
|
|
242
|
+
# Deploy (from project root)
|
|
243
|
+
vercel --prod
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Set `base: '/'` in `vite.config.js` when deploying to Vercel.
|
|
247
|
+
|
|
248
|
+
### 5.4. Netlify
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# Install Netlify CLI
|
|
252
|
+
npm i -g netlify-cli
|
|
253
|
+
|
|
254
|
+
# Deploy
|
|
255
|
+
netlify deploy --prod --dir=dist
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Create `netlify.toml` in the project root:
|
|
259
|
+
```toml
|
|
260
|
+
[build]
|
|
261
|
+
command = "npm run build"
|
|
262
|
+
publish = "dist"
|
|
263
|
+
|
|
264
|
+
[[redirects]]
|
|
265
|
+
from = "/*"
|
|
266
|
+
to = "/index.html"
|
|
267
|
+
status = 200
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### 5.5. Local file system (offline)
|
|
271
|
+
|
|
272
|
+
For offline use or internal distribution, the built site can be opened directly from the file system. Since the project uses `HashRouter` (not `BrowserRouter`), routing works correctly without a server.
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
# Build the project
|
|
276
|
+
npm run build
|
|
277
|
+
|
|
278
|
+
# Open directly in browser
|
|
279
|
+
open dist/index.html # macOS
|
|
280
|
+
xdg-open dist/index.html # Linux
|
|
281
|
+
start dist/index.html # Windows
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## 6. Network Requirements
|
|
287
|
+
|
|
288
|
+
### 6.1. Generation phase
|
|
289
|
+
|
|
290
|
+
During generation (running `/edu-site` in Claude Code), the tool requires:
|
|
291
|
+
|
|
292
|
+
| Destination | Port | Protocol | Purpose |
|
|
293
|
+
|-------------|------|----------|---------|
|
|
294
|
+
| api.anthropic.com | 443 | HTTPS | Claude API calls |
|
|
295
|
+
| Target documentation URL (if applicable) | 443 | HTTPS | Content fetching (Step 1) |
|
|
296
|
+
| registry.npmjs.org | 443 | HTTPS | npm install (one-time) |
|
|
297
|
+
|
|
298
|
+
If behind a firewall or proxy, ensure outbound HTTPS access to these domains.
|
|
299
|
+
|
|
300
|
+
### 6.2. Build phase
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
npm install # Requires network (downloads packages)
|
|
304
|
+
npm run build # No network required (local operation)
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
After `npm install` completes, `npm run build` runs entirely offline.
|
|
308
|
+
|
|
309
|
+
### 6.3. Runtime phase
|
|
310
|
+
|
|
311
|
+
**The generated site makes zero network calls.** Once the browser loads the HTML, CSS, and JS assets, everything runs locally. No analytics, no tracking, no telemetry, no API calls.
|
|
312
|
+
|
|
313
|
+
This means:
|
|
314
|
+
- The site works after initial load even if the network goes down
|
|
315
|
+
- The site works in incognito/private mode
|
|
316
|
+
- The site works behind restrictive firewalls
|
|
317
|
+
- The site works on local intranets with no internet access
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## 7. Browser Support
|
|
322
|
+
|
|
323
|
+
### 7.1. Supported browsers
|
|
324
|
+
|
|
325
|
+
The generated site targets modern browsers with ES2020+ support:
|
|
326
|
+
|
|
327
|
+
| Browser | Minimum version | Status |
|
|
328
|
+
|---------|----------------|--------|
|
|
329
|
+
| Chrome | 80+ | Fully supported |
|
|
330
|
+
| Firefox | 80+ | Fully supported |
|
|
331
|
+
| Safari | 14+ | Fully supported |
|
|
332
|
+
| Edge | 80+ (Chromium-based) | Fully supported |
|
|
333
|
+
| Mobile Chrome | 80+ | Fully supported |
|
|
334
|
+
| Mobile Safari | 14+ | Fully supported |
|
|
335
|
+
| Internet Explorer | Any | Not supported |
|
|
336
|
+
|
|
337
|
+
### 7.2. JavaScript features used
|
|
338
|
+
|
|
339
|
+
The generated code uses:
|
|
340
|
+
- ES Modules (`import` / `export`)
|
|
341
|
+
- Optional chaining (`?.`)
|
|
342
|
+
- Nullish coalescing (`??`)
|
|
343
|
+
- `Array.prototype.at()`
|
|
344
|
+
- Template literals
|
|
345
|
+
- Destructuring
|
|
346
|
+
- Arrow functions
|
|
347
|
+
- `async` / `await` (for lazy loading)
|
|
348
|
+
|
|
349
|
+
All of these are supported in the browser versions listed above.
|
|
350
|
+
|
|
351
|
+
### 7.3. CSS features used
|
|
352
|
+
|
|
353
|
+
TailwindCSS v4 output uses:
|
|
354
|
+
- CSS Custom Properties (`--color-primary`)
|
|
355
|
+
- CSS Grid and Flexbox
|
|
356
|
+
- `@media` queries for responsive design
|
|
357
|
+
- `clamp()` for fluid typography (optional)
|
|
358
|
+
- `:has()` pseudo-class (in some generated patterns)
|
|
359
|
+
|
|
360
|
+
### 7.4. Touch support
|
|
361
|
+
|
|
362
|
+
Drag-to-Order and Matching exercises support both mouse and touch events. The generated components use pointer events where possible and fall back to touch events for older mobile browsers.
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## 8. Accessibility
|
|
367
|
+
|
|
368
|
+
### 8.1. Keyboard navigation
|
|
369
|
+
|
|
370
|
+
All interactive elements are keyboard-accessible:
|
|
371
|
+
|
|
372
|
+
| Element | Key | Action |
|
|
373
|
+
|---------|-----|--------|
|
|
374
|
+
| Quiz options | Tab, Space/Enter | Navigate and select |
|
|
375
|
+
| Flashcards | Space/Enter | Flip card |
|
|
376
|
+
| Navigation links | Tab, Enter | Navigate between pages |
|
|
377
|
+
| Buttons | Tab, Space/Enter | Activate |
|
|
378
|
+
| Modal/Toast | Escape | Dismiss |
|
|
379
|
+
|
|
380
|
+
### 8.2. ARIA attributes
|
|
381
|
+
|
|
382
|
+
Generated components include relevant ARIA attributes:
|
|
383
|
+
|
|
384
|
+
```jsx
|
|
385
|
+
// Quiz example
|
|
386
|
+
<div role="radiogroup" aria-labelledby="question-title">
|
|
387
|
+
<label>
|
|
388
|
+
<input
|
|
389
|
+
type="radio"
|
|
390
|
+
name="answer"
|
|
391
|
+
value={index}
|
|
392
|
+
aria-checked={selected === index}
|
|
393
|
+
/>
|
|
394
|
+
{option}
|
|
395
|
+
</label>
|
|
396
|
+
</div>
|
|
397
|
+
|
|
398
|
+
// Progress bar
|
|
399
|
+
<div
|
|
400
|
+
role="progressbar"
|
|
401
|
+
aria-valuenow={progress}
|
|
402
|
+
aria-valuemin={0}
|
|
403
|
+
aria-valuemax={100}
|
|
404
|
+
aria-label="Section progress"
|
|
405
|
+
/>
|
|
406
|
+
|
|
407
|
+
// Toast notification
|
|
408
|
+
<div
|
|
409
|
+
role="status"
|
|
410
|
+
aria-live="polite"
|
|
411
|
+
aria-atomic="true"
|
|
412
|
+
>
|
|
413
|
+
Achievement Unlocked!
|
|
414
|
+
</div>
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
### 8.3. Color contrast
|
|
418
|
+
|
|
419
|
+
The default themes meet WCAG 2.1 AA contrast ratios:
|
|
420
|
+
- Text on background: minimum 4.5:1
|
|
421
|
+
- Large text on background: minimum 3:1
|
|
422
|
+
- Interactive element boundaries: minimum 3:1
|
|
423
|
+
|
|
424
|
+
### 8.4. Screen reader support
|
|
425
|
+
|
|
426
|
+
- All pages have descriptive `<title>` tags
|
|
427
|
+
- Headings follow a logical hierarchy (h1 > h2 > h3)
|
|
428
|
+
- Images (if added) require `alt` attributes
|
|
429
|
+
- Form inputs have associated `<label>` elements
|
|
430
|
+
- Navigation landmarks use `<nav>`, `<main>`, `<aside>`, `<footer>`
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
|
|
434
|
+
## 9. Readiness Checklist
|
|
435
|
+
|
|
436
|
+
Use this checklist before running your first edu-site generation.
|
|
437
|
+
|
|
438
|
+
### Generation environment
|
|
439
|
+
|
|
440
|
+
- [ ] Node.js 16+ installed (`node --version` returns v16.x.x or higher)
|
|
441
|
+
- [ ] npm 8+ installed (`npm --version` returns 8.x.x or higher)
|
|
442
|
+
- [ ] Claude Code CLI installed (`claude --version` succeeds)
|
|
443
|
+
- [ ] git installed (`git --version` succeeds)
|
|
444
|
+
- [ ] @dzhechkov/skills-edu-site initialized (`npx @dzhechkov/skills-edu-site init` completed)
|
|
445
|
+
|
|
446
|
+
### Skill files
|
|
447
|
+
|
|
448
|
+
- [ ] `.claude/skills/edu-site-generator/SKILL.md` exists and is non-empty
|
|
449
|
+
- [ ] `.claude/skills/edu-site-generator/modules/` contains 8 module files
|
|
450
|
+
- [ ] `.claude/skills/edu-site-generator/references/` contains 5 reference files
|
|
451
|
+
- [ ] `.claude/commands/edu-site.md` exists
|
|
452
|
+
|
|
453
|
+
### API access (generation phase only)
|
|
454
|
+
|
|
455
|
+
- [ ] `ANTHROPIC_API_KEY` environment variable set, or `claude auth login` completed
|
|
456
|
+
- [ ] Outbound HTTPS to `api.anthropic.com:443` is permitted
|
|
457
|
+
- [ ] (Optional) Outbound HTTPS to documentation URLs is permitted
|
|
458
|
+
|
|
459
|
+
### Deployment (if using GitHub Pages)
|
|
460
|
+
|
|
461
|
+
- [ ] GitHub account active
|
|
462
|
+
- [ ] Target repository created
|
|
463
|
+
- [ ] GitHub Pages enabled (Settings > Pages > Source: GitHub Actions)
|
|
464
|
+
|
|
465
|
+
### Verification
|
|
466
|
+
|
|
467
|
+
Run the doctor command to confirm the skill installation:
|
|
468
|
+
|
|
469
|
+
```bash
|
|
470
|
+
npx @dzhechkov/skills-edu-site doctor
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
Expected output when everything is in order:
|
|
474
|
+
|
|
475
|
+
```
|
|
476
|
+
Edu-Site Doctor -- Health Check
|
|
477
|
+
---
|
|
478
|
+
Node.js: v20.11.0 OK
|
|
479
|
+
npm: 10.2.4 OK
|
|
480
|
+
Claude Code: 1.x.x OK
|
|
481
|
+
SKILL.md: present OK
|
|
482
|
+
modules/: 8 files OK
|
|
483
|
+
references/: 5 files OK
|
|
484
|
+
commands/: 1 file OK
|
|
485
|
+
API key: present OK (not validated)
|
|
486
|
+
---
|
|
487
|
+
Status: READY
|
|
488
|
+
Run /edu-site "test topic" to verify end-to-end.
|
|
489
|
+
```
|