Skip to content

DOC

Documentation technique — ulk

Documentation technique — ulk

Reconstitue depuis le code source, install.sh, packages/, agents/_shared/, cheatheet/, .claude/.


1. Architecture du monorepo

1.1 Structure racine

ulk/
├── agents/                     # Source de verite des agents (46+ fichiers .md)
│   ├── _shared/                # 13 protocoles partages
│   ├── orchestrators/          # Bruce, Blackemperor, Lovecraft
│   ├── docs/                   # Friday, Shuri
│   ├── audit/                  # Sargeras, Vision, A11y, Perf, SEO
│   ├── session/                # 2b3, Robocop, Gandalf, Task-runner
│   ├── specials/               # Strange, Agamotto, Sensei, Rodin, Tony
│   ├── mobile/                 # Steve, Fluke, Happy
│   ├── sync/                   # Brigitte, Bifrost
│   ├── analyze/                # Analyseurs par stack (Astro, Next, Nuxt, SPIP, SwiftUI)
│   ├── deploy/                 # Vercel, Netlify, Cloudflare, Docker, AWS
│   ├── test/                   # Unit (Jest/Vitest), E2E (Playwright/Cypress)
│   ├── frontend/               # 7 agents frontend + checklists
│   ├── vps/                    # Suite VPS optionnelle (17+ agents)
│   ├── blueprints/             # Templates metier (futur)
│   ├── bundles/                # Bundles thematiques (futur)
│   ├── registry.json           # Registre auto-genere (72 agents)
│   └── registry.md             # Version Markdown du registre
├── commands/                   # Miroir installable (genere depuis agents/)
├── skills/                     # 12 skills CLI custom (ulk-*/SKILL.md)
├── schemas/                    # 11 JSON Schemas cross-platform (draft-07)
├── packages/
│   ├── core/                   # @ulk/core — TypeScript library
│   ├── status-board/           # Dashboard CLI zero-dependance
│   └── ulk-sdk/                # SDK agents (futur)
├── .claude/
│   ├── agents/                 # 8 subagents avec memoire persistante
│   ├── rules/                  # 6 regles path-specific
│   ├── hooks-examples/         # Hooks memory loop (opt-in)
│   └── settings.local.json     # Configuration locale
├── site/                       # GitHub Pages (HTML/CSS statique)
├── cheatheet/                  # Generateurs de docs (Node.js vanilla)
├── tools/                      # CLI registry + diagnostic
├── community-skills/           # Skills tiers (addy, a11y)
├── install.sh                  # Installation locale
├── install-remote.sh           # Installation distante (curl | bash)
├── uninstall.sh                # Desinstallation
├── package.json                # Workspaces npm (packages/* uniquement)
└── CLAUDE.md                   # Instructions projet pour Claude Code

1.2 Principe de separation agents/ vs commands/

  • agents/ est la source de verite. Contient les fichiers .md, les protocoles partages (_shared/), les README, les checklists.
  • commands/ est le miroir installable. Structure aplatie, generee automatiquement par node cheatheet/generate-commands.cjs. Seuls les fichiers .md pertinents y sont copies.
  • L’installeur (install.sh) copie commands/ vers ~/.claude/commands/ulk/.

2. Stack technique

CoucheTechnologieJustification
Runtime agentsClaude Code CLI (Anthropic)Runtime officiel, integration native
Format agentsMarkdown + frontmatter YAMLAuto-documente, diffable, zero dependance
Generateurs docsNode.js (CommonJS, sans dependances)Portable, leger, pas de build
Package coreTypeScript (ES2022, Node16)Typage fort, parsers, GitHub client
Package status-boardNode.js vanillaCLI dashboard, zero-dependance
Tests (core)Vitest 4.x + @vitest/coverage-v8Rapide, TypeScript natif
SchemasJSON Schema draft-07Cross-platform JS / Swift
Site webHTML/CSS statiqueGitHub Pages, zero infrastructure
CI/CDGitHub ActionsAuto-deploy + cron hebdomadaire
Gestion sourceGit + gh CLIStandard, CLI > MCP

3. Systeme d’agents

3.1 Format d’un agent (fichier Markdown)

Chaque agent est un fichier .md avec frontmatter YAML :

---
name: agent-name
description: |
  Description complete — utilisee par Claude Code
  pour le routage et la decouverte.
tools: Read, Glob, Grep, Bash, Write, Task, AskUserQuestionTool
model: opus | sonnet
phase: review
invocation: /ulk:name or "name" or "trigger phrase"
extends:
  - _shared/base-rules.md
  - _shared/update-protocol.md
---

Champs obligatoires : name, description, tools, model, phase, invocation.

Champs optionnels :

  • memory: local — uniquement pour les subagents .claude/agents/ (memoire persistante)
  • isolation: worktree — travail en worktree isole
  • extends: — liste documentaire des fichiers _shared/ herites

3.2 Phases du cycle de vie (Phase Grid)

PhaseVerbeExemples
defineDefinirBrief, spec, cadrage (tony, rodin, shuri mode=spec)
planPlanifierDecomposition, roadmap (shuri mode=todo, ranma)
buildConstruireImplementation (task-runner, brique, happy, steve, fluke)
verifyVerifierTests, validation (test-unit, test-e2e, visual-auditor)
reviewAuditerQualite, securite, perf (sargeras, vision, a11y, godspeed)
shipLivrerDeploy, commit, sync (2b3, deploy-*, brigitte)
orchestratorMulti-phaseBruce, blackemperor, lovecraft

Un agent peut couvrir jusqu’a 3 phases. Au-dela, il est declare orchestrator.

3.3 Distribution des modeles

ModeleNombreUsage
opus10 agentsOrchestrateurs complexes, analyse multi-fichiers profonde
sonnet62+ agentsTaches focalisees, audits, automation, checklists

Agents opus : bruce, blackemperor, robocop, strange, sargeras, rodin, tony, steve, fluke, happy.

3.4 Registre des agents

Le fichier agents/registry.json est auto-genere par node cheatheet/generate-registry.cjs. Il indexe 72 agents avec les champs : name, file, category, model, phase, description, tools, invocation.

Le fichier agents/registry.md en est la version Markdown lisible.

3.5 Numerotation

PlageCategorie
00-09Agents core (diagnostic, doc, tasks, audit)
10-analyze/Analyseurs de stack (sous-dossier)
11-deploy/Agents de deploiement (sous-dossier)
11-19Agents debug, reverse-doc, orchestrateurs
12-test/Agents de test (sous-dossier)
15-frontend/Suite frontend (sous-dossier)
20-29Agents sync, communications, orchestrateurs PM
30-39Agents specialises (SEO, migration, vault)
40-49Agents avances (audit omniscient, mobiles, IA)
50+Agents strategiques — prochain : 51

4. Protocoles partages (agents/_shared/)

FichierRole
base-rules.mdRegles communes, formats, conventions de scoring, frontmatter standard
context-protocol.mdPassage de contexte inter-agents via bloc CONTEXTE PROJET: (-30% tokens)
update-protocol.mdMise a jour incrementale (jamais de reecriture complete)
auditor-base.mdTemplate rapport + scoring pour agents d’audit
stack-detection.mdDetection automatique de stack
agent-teams.mdPatterns de coordination multi-agents (experimental)
cli-tools-protocol.mdPriorite CLI > MCP
claude-code-mastery.mdBonnes pratiques avancees Claude Code
memory-protocol.mdKnowledge Vault Loop (MEMORY.md, vault Obsidian, distribution)
phase-grid.mdGrille 6 phases + orchestrator, cartographie agents
discovery-protocol.mdSpec frontmatter etendu, pattern d’invocation, mise a jour registre
simplify-principles.md5 principes de simplification + process 4 etapes
checklists/4 checklists tactiques (accessibilite, performance, securite, tests)

5. Pipeline d’installation

5.1 Installation locale (install.sh)

Le script install.sh est la piece maitresse de la distribution. Il est idempotent et modulaire.

Etapes principales :

  1. Lecture de la version depuis package.json (source de verite unique)
  2. Regeneration de commands/ via node cheatheet/generate-commands.cjs (si Node.js disponible)
  3. Creation des repertoires cibles : ~/.claude/commands/, ~/.claude/agents/, ~/.claude/skills/
  4. Nettoyage legacy : suppression des anciens noms (woodman, wm, ulk-old)
  5. Copie des commandes : commands/ vers ~/.claude/commands/ulk/
  6. Copie des subagents : .claude/agents/*.md vers ~/.claude/agents/ulk-*.md
  7. Copie des skills : skills/*/ vers ~/.claude/skills/ulk-*/
  8. Options activables :
    • --with-vps : inclut les agents VPS
    • --with-teams : active Agent Teams (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 dans settings.local.json)
    • --with-addy-skills : installe les skills addyosmani
    • --with-a11y-skills : installe les skills accessibilite Luxembourg (RAWeb/RAAM)
    • --with-memory-loop : installe les hooks memory loop
  9. Ecriture de metadonnees : .version et .source dans le repertoire cible

5.2 Installation distante (install-remote.sh)

curl -fsSL https://raw.githubusercontent.com/izo/ulk/main/install-remote.sh | bash

Clone le depot dans un repertoire temporaire, puis execute install.sh.

5.3 Modes de install.sh

ModeFlagAction
Install(defaut)Installation complete
Uninstall--uninstallSuppression des fichiers ulk
Check--checkDiagnostic CLI + Skills
Verify--verifyVerification de l’installation
Help-h, --helpAffichage de l’aide
Dry-run--dry-runSimulation sans modification

5.4 Mise a jour

git pull && ./install.sh

L’idempotence de install.sh garantit que la mise a jour ecrase proprement les fichiers existants.


6. Packages

6.1 @ulk/core (packages/core/)

Bibliotheque TypeScript partagee. Version 0.1.0.

Stack : TypeScript 6.x, ES2022, module Node16, Vitest 4.x.

Structure :

packages/core/
├── src/
│   ├── index.ts        # Point d'entree, re-exports
│   ├── parsers/        # Parsers todo.md et spec.md
│   ├── types/          # Types TypeScript partages
│   └── github/         # Client GitHub
├── tests/              # Tests Vitest
├── dist/               # Build TypeScript compile
├── package.json        # @ulk/core
└── tsconfig.json       # Config TypeScript stricte

Exports : parseTodoFile(), parseSpecFile(), GitHubClient, types TypeScript.

Commandes :

cd packages/core && npm install && npm run build
npm run test           # Vitest

6.2 packages/status-board

Dashboard CLI de suivi projet. Zero dependance npm (utilise les parsers de @ulk/core en interne).

Commandes :

node packages/status-board/src/cli.js              # Dashboard complet
node packages/status-board/src/cli.js summary       # Resume compact
node packages/status-board/src/cli.js json          # Export JSON
node --test packages/status-board/tests/*.test.js   # Tests

Exports : collectProjectData(), computeMetrics(), renderDashboard(), renderSummary(), exportDashboardJSON().

6.3 Workspaces npm

Le package.json racine definit les workspaces :

{
  "name": "ulk",
  "version": "4.0.1",
  "private": true,
  "workspaces": ["packages/*"]
}

Les scripts racine deleguent aux packages : npm run build, npm run build:core, npm run build:status-board.


7. Systeme de memoire

7.1 Subagents persistants

8 agents dans .claude/agents/ avec memory: local. Memoire stockee dans ~/.claude/agent-memory-local/<agent>/.

SubagentCle memoireDonnees persistees
brucebruce_project_stateEtat projet, stack, derniere/prochaine tache
godspeedgodspeed_cacheCache diagnostic (expire au prochain commit)
gandalfgandalf_last_check% contexte, alertes, recommandations
task-runnertaskrunner_metricsVelocite, ajustements categories, blocages
2b3checkpoint_patternsIssues recurrentes, taux de succes simplification
strangeanalysis_stateEtat analyse, lacunes, documents generes
steveapi_decisionsDecisions API, plateformes cibles, phase
tonytony_user_preferencesStacks preferees, tech evitees, historique

7.2 Knowledge Vault Loop

Boucle de memoire automatique inter-sessions, orchestree par Lovecraft (47) :

  1. Capture : MEMORY.md (staging, racine projet) est parse et ses entrees sont versees dans docs/_memory/<categorie>/ via obsidian-vault (39)
  2. Distribute : les entrees pertinentes du vault sont injectees dans CLAUDE.md (bloc <!-- vault:begin -->...<!-- vault:end -->) via shuri (01)
  3. Surface : resume read-only pour godspeed/bruce/gandalf

Categories de memoire : rules, lessons, patterns, mistakes, insights, research.

Integration automatique :

  • 2b3 (Phase 5.7) capture apres le commit
  • godspeed (Phase 1.5) surface dans le diagnostic
  • gandalf (Phase 5) audite la sante du vault

7.3 Context Protocol

Les orchestrateurs transmettent un bloc CONTEXTE PROJET: aux sous-agents pour eviter les analyses redondantes :

CONTEXTE PROJET:
- Stack: [framework]
- Langages: [liste]
- DB: [type]
- Fichiers source: [nombre]
- Structure: [dossiers]

Gains : -30% tokens par agent, -40% temps via parallelisation.


8. Hooks

8.1 Hooks memory loop (opt-in)

Installables via ./install.sh --with-memory-loop. Copies dans ~/.claude/hooks/memory-loop.json (merge manuel dans settings.json requis).

HookTriggerAction
SessionStartDemarrage de sessiongodspeed (surface vault)
StopFin de session2b3 (capture MEMORY.md)
PostToolUse (errors)Erreur d’outilgrep dans docs/_memory/07-mistakes/

9. Outils et generateurs

9.1 Generateurs (cheatheet/)

ScriptCommandeSortie
generate-commands.cjsnode cheatheet/generate-commands.cjscommands/ (miroir installable depuis agents/)
generate-registry.cjsnode cheatheet/generate-registry.cjsagents/registry.json + agents/registry.md

9.2 Diagnostic (tools/)

FichierRole
check-tools.shScript bash de diagnostic CLI + Skills
check-tools.pyLogique Python extraite (heredoc)
cli-registry.jsonRegistre de 33+ outils CLI avec equivalents MCP
skills-registry.jsonRegistre des skills installes

9.3 Path-specific rules (.claude/rules/)

FichierScopeContenu
agents-authoring.mdagents/**Conventions de creation d’agents
frontend-agents.mdagents/frontend/**Regles specifiques frontend
cheatheet.mdcheatheet/**Regles generateur de docs
packages.mdpackages/**Commandes build/test des packages
native-features.mdAgents cles/batch, auto memory, /schedule
session-practices.mdGlobalHygiene de session, Gandalf

10. Schemas JSON (schemas/)

11 schemas JSON (draft-07) pour la validation cross-platform :

SchemaUsage
todo.schema.jsonFormat todo.md Monoboard Kanban
todo-file.schema.jsonStructure complete du fichier todo
spec.schema.jsonStructure docs/spec.md
project.schema.jsonMetadonnees projet
dashboard.schema.jsonDashboard de suivi
cli-registry.schema.jsonRegistre outils CLI
skills-registry.schema.jsonRegistre skills
recettage-item.schema.jsonItem de recettage
recettage-state.schema.jsonEtat de recettage
figma-design-system-rules.schema.jsonRegles design system Figma

11. References