skills bijgewerkt

This commit is contained in:
2026-08-31 09:48:50 +02:00
parent 4d65bc8b94
commit 389b6297ca
4 changed files with 51 additions and 15 deletions
+29
View File
@@ -0,0 +1,29 @@
#lang racket/base
(require racket-makefile)
(makefile 'skill
(target 'all
(displayln "Use (make 'install)"))
(target 'install
(let ((home (getenv "HOME")))
(when (eq? home #f)
(error "No $HOME environment variable, cannot find place of .codex"))
(let* ((pwd (current-directory))
(skilld (build-path home ".codex" "skills"))
(racket-skilld (build-path skilld "racket-skill"))
(js-skilld (build-path skilld "javascript-skill"))
(cp (lambda (to-dir file)
(let ((from (build-path pwd file))
(to (build-path to-dir "SKILL.md")))
(unless (directory-exists? to-dir)
(make-directory to-dir))
(displayln (format "cp ~a -> ~a" from to))
(copy-file from to #:exists-ok? #t))))
)
(cp racket-skilld "racket-skill.md")
(cp js-skilld "javascript-skill.md")
)))
)
+3 -8
View File
@@ -1,11 +1,6 @@
# ---
---
name: javascript-programmeer-skill
description: Hiermee wordt mijn voorkeur javascript programmeerstijl aangegeven.
---
---
name: javascript-programmeerstijl
description: Gebruik deze skill wanneer je Javascript-code voor Hans schrijft, wijzigt, refactort of beoordeelt. Pas de bestaande, eenvoudige en object georiënteerde programmeerstijl toe; voorkom over-engineering en onnodige abstracties. Gebruik deze skill niet voor algemene uitleg over Racket waarbij geen code voor zijn projecten wordt gemaakt of aangepast.
description: Gebruik deze skill wanneer je Javascript-code voor Hans schrijft, wijzigt, refactort of beoordeelt. Pas de bestaande, eenvoudige en object georiënteerde programmeerstijl toe; voorkom over-engineering en onnodige abstracties. Gebruik deze skill niet voor algemene uitleg over javascript waarbij geen code voor zijn projecten wordt gemaakt of aangepast.
---
# javascript-programmeerstijl
@@ -14,7 +9,7 @@ Gebruik deze stijl wanneer je Javascript-code voor Hans schrijft of aanpast.
## Uitgangspunt
Schrijf code zoveel mogelijk in lijn met zoals Hans racket code schrijft. Zie daarvoor de racket skill.
Schrijf code zoveel mogelijk in lijn met hoe Hans racket code schrijft. Zie daarvoor de racket skill.
Gebruik bij javascript als je een closure definitie maakt, bij voorkeur classes, m.a.w. ga voor OO en class definities in plaats van property gestuurde closures.
Executable
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
racket -e "(enter! \"Makefile.md\") (make 'install)"
+17 -7
View File
@@ -1,8 +1,3 @@
---
name: racket-programmeer-skill
description: Hiermee wordt mijn voorkeur racket programmeerstijl aangegeven.
---
---
name: racket-programmeerstijl
description: Gebruik deze skill wanneer je Racket-code voor Hans schrijft, wijzigt, refactort of beoordeelt. Pas de bestaande, eenvoudige en procedurele programmeerstijl toe; voorkom over-engineering en onnodige abstracties. Gebruik deze skill niet voor algemene uitleg over Racket waarbij geen code voor zijn projecten wordt gemaakt of aangepast.
@@ -97,8 +92,8 @@ Verzamel dan de lijst en vraag of je ze moet toevoegen.
(cond
([condition] korte body)
([other-condition]
langere body))
(else ... alleen als het nodig is)
langere body)
(else ... alleen als het nodig is))
```
## Mate van abstractie vs leesbaarheid
@@ -122,6 +117,13 @@ Geef de voorkeur aan λ boven lambda.
- Houd state eenvoudig. Een gewone modulevariabele zoals `cached-git-exe` is prima wanneer daarvoor geen zwaarder mechanisme nodig is.
- Gebruik geen parameters, structs, classes of objectlagen wanneer een gewone variabele of procedure voldoende is.
## Condities
- `and` en `or` mogen een willekeurig aantal subexpressies bevatten, zolang
iedere subexpressie eenvoudig en direct leesbaar is.
- Als een subexpressie te ingewikkeld wordt, bereken die dan eerst en geef
het resultaat een duidelijke naam met `let` of `let*`.
## Publieke API
- Gebruik `define/contract` voor publieke procedures wanneer een contract nuttige documentatie en controle geeft.
@@ -205,6 +207,14 @@ Een test die alleen werkt vanuit de development directory, op het development-OS
## Racket Package Index / build-service tests
Als je tests toevoegt aan een racket module, zet daar dan altijd
```racket
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Tests for module <modulenaam> voor.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
```
Behandel de Racket Package Index/build service als een aparte, strikte
en onbekende testomgeving.