Repository navigation
Expand file tree
/
Copy pathprojects.ts
More file actions
208 lines (203 loc) · 8.84 KB
/
Copy pathprojects.ts
File metadata and controls
208 lines (203 loc) · 8.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
import type { Locale } from '@/i18n/config';
type Localized<T> = Record<Locale, T>;
export type ProjectKind = 'skill' | 'guide' | 'site';
export type ProjectStatus = 'active' | 'in-progress';
export interface Project {
/** Repository name and URL segment: /projects/<slug>/ */
slug: string;
kind: ProjectKind;
status: ProjectStatus;
/** Kept in sync by hand with the project's latest release */
version?: string;
license: string;
/** Runtime requirement, if any */
requires?: string;
/** Number of npm dependencies the project needs at runtime */
dependencies?: number;
repo: string;
/** The project's own website, if it has one */
site?: string;
/** One sentence for cards */
summary: Localized<string>;
/** Longer description for the detail page */
description: Localized<string>;
preview: { src: string; width: number; height: number; alt: Localized<string> };
/** Skills only: how to install it */
install?: { npx: string; git: { unix: string; windows: string } };
/** Skills only: example requests that show what it is good at */
prompts?: Localized<string[]>;
/** Real outputs published on the project's site, shown live on its detail page */
artifacts?: { base: string; items: { file: string; label: Localized<string>; note: Localized<string> }[] };
}
// To add a project: append an entry and drop its preview image in public/projects/<slug>/
export const projects: Project[] = [
{
slug: 'network-engineering',
kind: 'skill',
status: 'active',
version: '1.1.1',
license: 'MIT',
requires: 'Node 22.18+',
dependencies: 0,
repo: 'https://github.com/whetstone-dev/network-engineering',
site: 'https://whetstone-dev.github.io/network-engineering/',
summary: {
en: 'An agent skill to design, configure and troubleshoot networks, with Cisco Packet Tracer labs and interactive topology diagrams.',
es: 'Una skill para diseñar, configurar y diagnosticar redes, con laboratorios de Cisco Packet Tracer y diagramas de topología interactivos.',
},
description: {
en: 'Turns your agent into a network engineer: topologies, Cisco IOS configs, Packet Tracer labs, subnetting and troubleshooting.',
es: 'Convierte a tu agente en un ingeniero de redes: topologías, configuraciones Cisco IOS, laboratorios de Packet Tracer, subnetting y diagnóstico.',
},
preview: {
src: '/projects/network-engineering/preview.png',
width: 1440,
height: 900,
alt: {
en: 'Interactive topology diagram of a collapsed-core campus, generated by the network-engineering skill',
es: 'Diagrama de topología interactivo de un campus collapsed-core, generado por la skill network-engineering',
},
},
install: {
npx: 'npx skills add whetstone-dev/network-engineering',
git: {
unix: 'git clone https://github.com/whetstone-dev/network-engineering.git ~/.claude/skills/network-engineering',
windows: 'git clone https://github.com/whetstone-dev/network-engineering.git "$HOME\\.claude\\skills\\network-engineering"',
},
},
prompts: {
en: [
'Build a Packet Tracer lab with 3 VLANs and router-on-a-stick',
'Subnet 10.10.0.0/16 for these five sites with VLSM',
"Why can't PC-A2 reach the web server?",
],
es: [
'Arma un laboratorio de Packet Tracer con 3 VLAN y router-on-a-stick',
'Divide 10.10.0.0/16 para estas cinco sedes con VLSM',
'¿Por qué PC-A2 no llega al servidor web?',
],
},
artifacts: {
base: 'https://whetstone-dev.github.io/network-engineering/examples/',
items: [
{
file: 'campus-ospf-nat',
label: { en: 'Campus OSPF + NAT', es: 'Campus OSPF + NAT' },
note: { en: '13 devices, 0 errors, 6/6 tests', es: '13 equipos, 0 errores, 6/6 pruebas' },
},
{
file: 'pt-3vlan-roas-dhcp',
label: { en: '3-VLAN lab', es: 'Lab de 3 VLAN' },
note: { en: 'Packet Tracer, 0 errors, 4/4 tests', es: 'Packet Tracer, 0 errores, 4/4 pruebas' },
},
{
file: 'wan-2sites-ospf-serial',
label: { en: 'Two sites over serial', es: 'Dos sedes por serial' },
note: { en: 'OSPF area 0, 0 errors, 6/6 tests', es: 'OSPF área 0, 0 errores, 6/6 pruebas' },
},
{
file: 'asa-dmz',
label: { en: 'ASA with DMZ', es: 'ASA con DMZ' },
note: { en: 'NAT and ACLs, 0 errors, 5/5 tests', es: 'NAT y ACL, 0 errores, 5/5 pruebas' },
},
],
},
},
{
slug: 'rack-cabling-designer',
kind: 'skill',
status: 'active',
version: '0.1.0',
license: 'MIT',
requires: 'Node 22.18+',
dependencies: 0,
repo: 'https://github.com/whetstone-dev/rack-cabling-designer',
site: 'https://whetstone-dev.github.io/rack-cabling-designer/',
summary: {
en: 'An agent skill to design, validate and document IT racks, structured cabling and rack power, from one model.',
es: 'Una skill para diseñar, validar y documentar racks, cableado estructurado y energía de rack, desde un solo modelo.',
},
description: {
en: 'Turns your agent into an infrastructure designer: rack elevations, cable schedules, labels, BOM and A/B power budgets, checked against 38 engineering rules. Works with Claude Code, Codex and Cursor.',
es: 'Convierte a tu agente en un diseñador de infraestructura: elevaciones de rack, cable schedules, etiquetas, BOM y presupuestos de energía A/B, validados contra 38 reglas de ingeniería. Funciona con Claude Code, Codex y Cursor.',
},
preview: {
src: '/projects/rack-cabling-designer/preview.png',
width: 1440,
height: 900,
alt: {
en: 'The rack-cabling-designer website with an interactive rack elevation of a two-rack data hall pod',
es: 'La web de rack-cabling-designer con una elevación de rack interactiva de un pod de data center de dos racks',
},
},
install: {
npx: 'npx skills add whetstone-dev/rack-cabling-designer',
git: {
unix: 'git clone https://github.com/whetstone-dev/rack-cabling-designer.git && node rack-cabling-designer/installer/install.ts',
windows: 'git clone https://github.com/whetstone-dev/rack-cabling-designer.git; node rack-cabling-designer/installer/install.ts',
},
},
prompts: {
en: [
'Design a 24U comms cabinet for one office floor and give me the elevation and the BOM',
'Will PDU A survive if feed B fails?',
'Is it OK to run 10GBASE-T over 60 m of Cat6?',
],
es: [
'Diseña un gabinete de 24U para un piso de oficina y dame la elevación y el BOM',
'¿La PDU A aguanta si falla la acometida B?',
'¿Puedo correr 10GBASE-T sobre 60 m de Cat6?',
],
},
artifacts: {
base: 'https://whetstone-dev.github.io/rack-cabling-designer/examples/',
items: [
{
file: 'datacenter-pod/elevation',
label: { en: 'Data hall pod', es: 'Pod de data center' },
note: { en: '2 × 42U, A/B power, 0 errors', es: '2 × 42U, energía A/B, 0 errores' },
},
{
file: 'small-office/elevation',
label: { en: 'Small office cabinet', es: 'Gabinete de oficina' },
note: { en: '24U, horizontal cabling, 0 errors', es: '24U, cableado horizontal, 0 errores' },
},
{
file: 'broken-rack/elevation',
label: { en: 'Broken rack', es: 'Rack con errores' },
note: { en: 'Breaks every rule family on purpose', es: 'Rompe cada familia de reglas a propósito' },
},
],
},
},
{
slug: 'whetstone-dev.github.io',
kind: 'site',
status: 'active',
license: 'MIT',
repo: 'https://github.com/whetstone-dev/whetstone-dev.github.io',
site: 'https://whetstone-dev.github.io/',
summary: {
en: 'This website. A bilingual static site in Next.js, open source like everything else we make.',
es: 'Esta web. Un sitio estático bilingüe en Next.js, open source como todo lo que hacemos.',
},
description: {
en: 'The home of the organization: who we are, what we build and how to reach us. Next.js static export, TypeScript and plain CSS, deployed to GitHub Pages.',
es: 'La casa de la organización: quiénes somos, qué construimos y cómo contactarnos. Next.js con exportación estática, TypeScript y CSS plano, publicado en GitHub Pages.',
},
preview: {
src: '/projects/whetstone-dev.github.io/preview.png',
width: 1440,
height: 900,
alt: {
en: 'The whetstone-dev home page with the grinding-wheel horizon',
es: 'El inicio de whetstone-dev con el horizonte de la muela de afilar',
},
},
},
];
export function getProject(slug: string): Project {
const project = projects.find((p) => p.slug === slug);
if (!project) throw new Error(`Unknown project: ${slug}`);
return project;
}