Compare commits
2 Commits
13234b0e8b
...
a5a0ad4dba
| Author | SHA1 | Date | |
|---|---|---|---|
| a5a0ad4dba | |||
| 8dc67ac03c |
48
projects/CONCEPT/mobilecommand.md
Normal file
48
projects/CONCEPT/mobilecommand.md
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# mobilecommand
|
||||||
|
|
||||||
|
**Statut:** CONCEPT (Concept (Idea Stage))
|
||||||
|
**Type:** C++ Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/mobilecommand.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
Je suis l'assistant de développement pour le projet Mobile Command.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Batch Script, C, C#, C++, C++ Headers, C/C++ Headers, JSON, Markdown, PowerShell, Python, Shell Script, Swift, TypeScript, YAML
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
4. Le module se recharge automatiquement avec préservation d'état ```bash
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
build/
|
||||||
|
config/
|
||||||
|
data/
|
||||||
|
docs/
|
||||||
|
external/
|
||||||
|
plans/
|
||||||
|
src/
|
||||||
|
tests/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
50
projects/CONSTANT/ChineseClass.md
Normal file
50
projects/CONSTANT/ChineseClass.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# ChineseClass
|
||||||
|
|
||||||
|
**Statut:** CONSTANT (Constant (Ongoing/Maintenance))
|
||||||
|
**Type:** Python Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/ChineseClass.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
- **Etudiant**: Alexis - **Lieu**: Thailande (6 mois)
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
JSON, JavaScript, Markdown, Python
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
| Book | Type | Chapters | Status actuel | |------|------|----------|---------------|
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
archive/
|
||||||
|
audio_resources/
|
||||||
|
ClassGenSystem/
|
||||||
|
Content/
|
||||||
|
docs/
|
||||||
|
Ebooks/
|
||||||
|
inventory/
|
||||||
|
plans/
|
||||||
|
Raw/
|
||||||
|
tools/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
54
projects/CONSTANT/Class_generator.md
Normal file
54
projects/CONSTANT/Class_generator.md
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
# Class_generator
|
||||||
|
|
||||||
|
**Statut:** CONSTANT (Constant (Ongoing/Maintenance))
|
||||||
|
**Type:** JavaScript/Node.js Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/Class_generator.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
Educational platform with ultra-modular vanilla JS/HTML/CSS architecture. Strict separation, sealed modules, dependency injection.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Batch Script, JSON, JavaScript, Markdown, PowerShell
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
**Core ✅**: Module.js, EventBus.js, ModuleLoader.js, Router.js, Application.js, Dev Server **DRS ✅**: ContentLoader, IAEngine (OpenAI→DeepSeek), LLMValidator, AI Reports, UnifiedDRS
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
archie_class_homework/
|
||||||
|
assets/
|
||||||
|
content/
|
||||||
|
docs/
|
||||||
|
Legacy/
|
||||||
|
node_modules/
|
||||||
|
nodejs-portable/
|
||||||
|
saves/
|
||||||
|
src/
|
||||||
|
tests/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- - [ ] **Whack-a-Mole**: Adjust size to be more flexible
|
||||||
|
- - [ ] **Whack-a-Mole**: Hard mode is too difficult
|
||||||
|
- - [ ] **Whack-a-Mole**: Add speed meter
|
||||||
|
- - [x] **Adventure Reader**: Add restart button at the top (DONE)
|
||||||
|
- - [x] **Riverrun**: Players don't understand the game mechanics (DONE)
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
44
projects/CONSTANT/civjdr.md
Normal file
44
projects/CONSTANT/civjdr.md
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# civjdr
|
||||||
|
|
||||||
|
**Statut:** CONSTANT (Constant (Ongoing/Maintenance))
|
||||||
|
**Type:** Unknown
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/civjdr.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
JSON, Markdown
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
- **Root directory - Current work:** - `nextUpdate.md`: **Current draft response** to latest GM post with strategic analysis
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
Background/
|
||||||
|
plans_et_idees/
|
||||||
|
Prompts_Images/
|
||||||
|
renseignements/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
46
projects/DONE/videotoMP3Transcriptor.md
Normal file
46
projects/DONE/videotoMP3Transcriptor.md
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# videotoMP3Transcriptor
|
||||||
|
|
||||||
|
**Statut:** DONE (Done (Completed/Archived))
|
||||||
|
**Type:** JavaScript/Node.js Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/videotoMP3Transcriptor.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
Ce projet est une API Node.js/Express pour télécharger des vidéos YouTube en MP3, les transcrire, les traduire et les résumer.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Batch Script, JSON, JavaScript, Markdown, Shell Script
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
Status unknown - inspect repository.
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
docs/
|
||||||
|
node_modules/
|
||||||
|
output/
|
||||||
|
public/
|
||||||
|
scripts/
|
||||||
|
src/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
46
projects/META/freelance_planning.md
Normal file
46
projects/META/freelance_planning.md
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# freelance_planning
|
||||||
|
|
||||||
|
**Statut:** META (Meta-Project (Infrastructure/Coordination))
|
||||||
|
**Type:** Python Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/freelance_planning.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
Je suis l'assistant pour le système de planification et d'automation freelance.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Markdown, Python
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
**Phase actuelle** : Phase 0 (Manuel) → Phase 1 (Automation Upwork) ---
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
backend/
|
||||||
|
data/
|
||||||
|
docs/
|
||||||
|
frontend/
|
||||||
|
prospection_assistant/
|
||||||
|
Upwork-AI-jobs-applier/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
47
projects/PAUSE/secondvoice.md
Normal file
47
projects/PAUSE/secondvoice.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# secondvoice
|
||||||
|
|
||||||
|
**Statut:** PAUSE (Paused (Temporarily Inactive))
|
||||||
|
**Type:** C++ Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/secondvoice.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Batch Script, C++, C/C++ Headers, JSON, Markdown, PowerShell, Shell Script
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
Status unknown - inspect repository.
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
build/
|
||||||
|
denoised/
|
||||||
|
docs/
|
||||||
|
recordings/
|
||||||
|
sessions/
|
||||||
|
src/
|
||||||
|
transcripts/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
50
projects/PAUSE/warfactoryracine.md
Normal file
50
projects/PAUSE/warfactoryracine.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# warfactoryracine
|
||||||
|
|
||||||
|
**Statut:** PAUSE (Paused (Temporarily Inactive))
|
||||||
|
**Type:** C++ Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/warfactoryracine.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
C++, C++ Headers, C/C++ Headers, JSON, JavaScript, Markdown, Python, Shell Script
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
**ALWAYS CHECK**: - `TODO.md` at project root for current implementation roadmap and high-level phases
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
cmake/
|
||||||
|
docs/
|
||||||
|
external/
|
||||||
|
gameData/
|
||||||
|
src/
|
||||||
|
tools/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- ✅ **Phase 1 Complete**: Core Interfaces (IEngine, IModuleSystem, IModule, IIO, ITaskScheduler)
|
||||||
|
- ✅ **Phase 2 Complete**: **BLAZING HOT-RELOAD SYSTEM** - **0.4ms average reload time!**
|
||||||
|
- 🚀 **Current Phase**: Phase 3 - Module Ecosystem Development
|
||||||
|
- ---
|
||||||
|
- - ✅ **IEngine.h** - Engine orchestration interface
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
50
projects/WIP/AlwaysOnRecorder.md
Normal file
50
projects/WIP/AlwaysOnRecorder.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# AlwaysOnRecorder
|
||||||
|
|
||||||
|
**Statut:** WIP (Work In Progress (Active Development))
|
||||||
|
**Type:** JavaScript/Node.js Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/AlwaysOnRecorder.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
Je suis l'assistant de développement pour le projet **AlwaysOnRecorder**.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Batch Script, C/C++ Headers, JSON, JavaScript, Kotlin, Markdown, TypeScript
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
- Mémoire conversationnelle avec recherche future (Phase 2: transcription Whisper) - One-party consent recording légal en Chine
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
android/
|
||||||
|
docs/
|
||||||
|
ios/
|
||||||
|
node_modules/
|
||||||
|
plans/
|
||||||
|
src/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- **Target**: 10-15h development
|
||||||
|
- **Deadline**: December 22, 2025
|
||||||
|
- ---
|
||||||
|
- - [x] Project documentation (README, PROJECT.md, DEVELOPMENT.md)
|
||||||
|
- - [x] Package.json with dependencies
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
50
projects/WIP/aissia.md
Normal file
50
projects/WIP/aissia.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# aissia
|
||||||
|
|
||||||
|
**Statut:** WIP (Work In Progress (Active Development))
|
||||||
|
**Type:** C++ Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/aissia.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
Assistant céleste pour gérer le temps, l'hyperfocus et l'apprentissage de langues. Basé sur **GroveEngine** (C++17 hot-reload module system).
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Batch Script, C, C#, C++, C++ Headers, C/C++ Headers, JSON, Markdown, PowerShell, Python, Shell Script, Swift, TypeScript, YAML
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
| Module | Status | Description | |--------|--------|-------------|
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
audits/
|
||||||
|
build/
|
||||||
|
config/
|
||||||
|
deps/
|
||||||
|
docs/
|
||||||
|
external/
|
||||||
|
models/
|
||||||
|
plans/
|
||||||
|
src/
|
||||||
|
tests/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
46
projects/WIP/confluent.md
Normal file
46
projects/WIP/confluent.md
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# confluent
|
||||||
|
|
||||||
|
**Statut:** WIP (Work In Progress (Active Development))
|
||||||
|
**Type:** Python Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/confluent.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Batch Script, JSON, JavaScript, Markdown, Python, Shell Script
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
Le système linguistique de base est **validé et documenté** : - 67 racines (15 sacrées, 52 standards)
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
ancien-confluent/
|
||||||
|
ConfluentTranslator/
|
||||||
|
data/
|
||||||
|
docs/
|
||||||
|
proto-confluent/
|
||||||
|
scripts/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
50
projects/WIP/groveengine.md
Normal file
50
projects/WIP/groveengine.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# groveengine
|
||||||
|
|
||||||
|
**Statut:** WIP (Work In Progress (Active Development))
|
||||||
|
**Type:** C++ Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/groveengine.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
GroveEngine is a C++17 hot-reload module system for game engines. It supports dynamic loading/unloading of modules (.so) with state preservation during hot-reload.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Batch Script, C, C#, C++, C++ Headers, C/C++ Headers, JSON, Markdown, PowerShell, Python, Shell Script, Swift, TypeScript, YAML
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
| System | Status | Description | Use Case | |--------|--------|-------------|----------|
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
assets/
|
||||||
|
build/
|
||||||
|
build-bgfx/
|
||||||
|
build-mingw/
|
||||||
|
build-msvc/
|
||||||
|
build-test/
|
||||||
|
build-threaded/
|
||||||
|
build-tsan/
|
||||||
|
build-win/
|
||||||
|
docs/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
50
projects/WIP/maicivy.md
Normal file
50
projects/WIP/maicivy.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# maicivy
|
||||||
|
|
||||||
|
**Statut:** WIP (Work In Progress (Active Development))
|
||||||
|
**Type:** JavaScript/Node.js Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/maicivy.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
**Pour Claude, pour les développeurs, pour tout le monde.** Ce fichier est votre **boussole** pour naviguer dans la documentation du projet **maicivy**.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Batch Script, Go, JSON, JavaScript, Markdown, PowerShell, Shell Script, TypeScript, YAML
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
- Roadmap 6 phases - **Temps de lecture : 15-20 min**
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
archive/
|
||||||
|
backend/
|
||||||
|
docker/
|
||||||
|
docs/
|
||||||
|
frontend/
|
||||||
|
load-tests/
|
||||||
|
monitoring/
|
||||||
|
nginx/
|
||||||
|
plans/
|
||||||
|
scripts/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
50
projects/WIP/seogeneratorserver.md
Normal file
50
projects/WIP/seogeneratorserver.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# seogeneratorserver
|
||||||
|
|
||||||
|
**Statut:** WIP (Work In Progress (Active Development))
|
||||||
|
**Type:** JavaScript/Node.js Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/seogeneratorserver.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
JSON, JavaScript, Markdown, YAML
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
- **Full Google Sheets Integration**: ✅ **OPERATIONAL** - 15 AI personalities with random selection (60% variability)
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
lib/
|
||||||
|
logs/
|
||||||
|
node_modules/
|
||||||
|
public/
|
||||||
|
tests/
|
||||||
|
tools/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- - Les fallback IA ont été supprimés pour éviter la dégradation de qualité
|
||||||
|
- - Si une IA échoue (Claude, OpenAI, Gemini, Mistral), le workflow s'arrête brutalement
|
||||||
|
- - Aucune stratégie de récupération intelligente
|
||||||
|
- **Intégrer les préférences IA directement dans les profils de personnalités Google Sheets**
|
||||||
|
- - `LLM_Prefere` : LLM principal pour cette personnalité (ex: "claude", "openai")
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
51
projects/WIP/vba-mcp-monorepo.md
Normal file
51
projects/WIP/vba-mcp-monorepo.md
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# vba-mcp-monorepo
|
||||||
|
|
||||||
|
**Statut:** WIP (Work In Progress (Active Development))
|
||||||
|
**Type:** Python Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/vba-mcp-monorepo.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
VBA MCP Server - Serveur Model Context Protocol pour manipulation de code VBA dans les fichiers Microsoft Office.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Batch Script, JSON, Markdown, Python
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
**Derniere mise a jour:** 30 decembre 2024
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
__pycache__/
|
||||||
|
docs/
|
||||||
|
examples/
|
||||||
|
packages/
|
||||||
|
plans/
|
||||||
|
tests/
|
||||||
|
venv/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- **Last Updated:** 2024-12-30
|
||||||
|
- - Excel: 20/20 (100%)
|
||||||
|
- - Access: 16/16 (100%)
|
||||||
|
- ---
|
||||||
|
- - [x] Extract VBA code from modules
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
45
projects/WIP/vba-mcp-server.md
Normal file
45
projects/WIP/vba-mcp-server.md
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# vba-mcp-server
|
||||||
|
|
||||||
|
**Statut:** WIP (Work In Progress (Active Development))
|
||||||
|
**Type:** Python Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/vba-mcp-server.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code when working with this repository.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
Batch Script, Markdown, Python, Shell Script, YAML
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
**Version actuelle** : 1.0.0 (Lite - En développement)
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- See CLAUDE.md for detailed features
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
docs/
|
||||||
|
examples/
|
||||||
|
src/
|
||||||
|
tests/
|
||||||
|
venv/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
44
projects/WIP/wechat-homework-bot.md
Normal file
44
projects/WIP/wechat-homework-bot.md
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# wechat-homework-bot
|
||||||
|
|
||||||
|
**Statut:** WIP (Work In Progress (Active Development))
|
||||||
|
**Type:** JavaScript/Node.js Application
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/wechat-homework-bot.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
**Auto-Correction Homework System for WeChat** Système de soumission et correction automatique de devoirs audio/vidéo via WeChat Mini Program.
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
JSON, JavaScript, Markdown, TypeScript
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
Last commit: Add voice cloning solutions analysis report (6 weeks ago)
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- Features not documented yet
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
backend/
|
||||||
|
docs/
|
||||||
|
plans/
|
||||||
|
tests/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
- See TODO.md or project plans for next steps
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
⚠️ No CLAUDE.md found - add project documentation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** 2026-01-19
|
||||||
|
**Last Updated:** 2026-01-19
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
453
tools/generate_project_files.py
Normal file
453
tools/generate_project_files.py
Normal file
@ -0,0 +1,453 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Generate missing project tracking .md files by inspecting repositories.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
python tools/generate_project_files.py [--dry-run] [--repo REPO_NAME]
|
||||||
|
"""
|
||||||
|
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
from datetime import datetime
|
||||||
|
from typing import Dict, List, Optional
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
# Force UTF-8 encoding for Windows console (emoji support)
|
||||||
|
os.environ['PYTHONIOENCODING'] = 'utf-8'
|
||||||
|
if hasattr(sys.stdout, 'reconfigure'):
|
||||||
|
sys.stdout.reconfigure(encoding='utf-8')
|
||||||
|
|
||||||
|
# Paths
|
||||||
|
SCRIPT_DIR = Path(__file__).parent
|
||||||
|
PROJECT_TRACKER = SCRIPT_DIR.parent
|
||||||
|
CONFIG_FILE = SCRIPT_DIR / "config.json"
|
||||||
|
TEMPLATE_FILE = SCRIPT_DIR / "templates" / "BASE.md"
|
||||||
|
|
||||||
|
# Category names
|
||||||
|
CATEGORY_NAMES = {
|
||||||
|
"META": "Meta-Project (Infrastructure/Coordination)",
|
||||||
|
"CONSTANT": "Constant (Ongoing/Maintenance)",
|
||||||
|
"WIP": "Work In Progress (Active Development)",
|
||||||
|
"CONCEPT": "Concept (Idea Stage)",
|
||||||
|
"PAUSE": "Paused (Temporarily Inactive)",
|
||||||
|
"DONE": "Done (Completed/Archived)"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Language detection
|
||||||
|
LANGUAGE_EXTENSIONS = {
|
||||||
|
".py": "Python",
|
||||||
|
".js": "JavaScript",
|
||||||
|
".ts": "TypeScript",
|
||||||
|
".cpp": "C++",
|
||||||
|
".c": "C",
|
||||||
|
".h": "C/C++ Headers",
|
||||||
|
".hpp": "C++ Headers",
|
||||||
|
".java": "Java",
|
||||||
|
".cs": "C#",
|
||||||
|
".go": "Go",
|
||||||
|
".rs": "Rust",
|
||||||
|
".rb": "Ruby",
|
||||||
|
".php": "PHP",
|
||||||
|
".swift": "Swift",
|
||||||
|
".kt": "Kotlin",
|
||||||
|
".md": "Markdown",
|
||||||
|
".json": "JSON",
|
||||||
|
".yaml": "YAML",
|
||||||
|
".yml": "YAML",
|
||||||
|
".sh": "Shell Script",
|
||||||
|
".bat": "Batch Script",
|
||||||
|
".ps1": "PowerShell",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def load_json(path: Path) -> dict:
|
||||||
|
"""Load JSON file"""
|
||||||
|
with open(path, 'r', encoding='utf-8') as f:
|
||||||
|
return json.load(f)
|
||||||
|
|
||||||
|
|
||||||
|
def load_template() -> str:
|
||||||
|
"""Load base template"""
|
||||||
|
with open(TEMPLATE_FILE, 'r', encoding='utf-8') as f:
|
||||||
|
return f.read()
|
||||||
|
|
||||||
|
|
||||||
|
def get_category_from_path(project_file: str) -> str:
|
||||||
|
"""Extract category from project file path
|
||||||
|
|
||||||
|
Example: projects/WIP/repo.md -> WIP
|
||||||
|
"""
|
||||||
|
parts = project_file.split('/')
|
||||||
|
if len(parts) >= 2 and parts[0] == "projects":
|
||||||
|
return parts[1]
|
||||||
|
return "UNCATEGORIZED"
|
||||||
|
|
||||||
|
|
||||||
|
def read_file_safe(path: Path, max_lines: int = 50) -> str:
|
||||||
|
"""Read file with error handling"""
|
||||||
|
try:
|
||||||
|
with open(path, 'r', encoding='utf-8', errors='ignore') as f:
|
||||||
|
lines = []
|
||||||
|
for i, line in enumerate(f):
|
||||||
|
if i >= max_lines:
|
||||||
|
break
|
||||||
|
lines.append(line.rstrip())
|
||||||
|
return '\n'.join(lines)
|
||||||
|
except Exception:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
def detect_languages(repo_path: Path) -> List[str]:
|
||||||
|
"""Detect programming languages from file extensions"""
|
||||||
|
languages = set()
|
||||||
|
|
||||||
|
try:
|
||||||
|
for root, dirs, files in os.walk(repo_path):
|
||||||
|
# Skip common ignore directories
|
||||||
|
dirs[:] = [d for d in dirs if d not in {'.git', 'node_modules', '__pycache__', 'build', 'dist', '.venv', 'venv'}]
|
||||||
|
|
||||||
|
for file in files:
|
||||||
|
ext = Path(file).suffix.lower()
|
||||||
|
if ext in LANGUAGE_EXTENSIONS:
|
||||||
|
languages.add(LANGUAGE_EXTENSIONS[ext])
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
return sorted(languages)
|
||||||
|
|
||||||
|
|
||||||
|
def extract_description_from_claude_md(content: str) -> str:
|
||||||
|
"""Extract description from CLAUDE.md"""
|
||||||
|
lines = content.split('\n')
|
||||||
|
|
||||||
|
# Look for first heading or first paragraph
|
||||||
|
description_lines = []
|
||||||
|
in_description = False
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
stripped = line.strip()
|
||||||
|
|
||||||
|
# Skip title/headers until we find content
|
||||||
|
if stripped.startswith('#'):
|
||||||
|
if description_lines: # If we already have content, stop at next header
|
||||||
|
break
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Skip empty lines at start
|
||||||
|
if not stripped and not description_lines:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Collect content
|
||||||
|
if stripped:
|
||||||
|
description_lines.append(stripped)
|
||||||
|
if len(description_lines) >= 3: # First 3 non-empty lines
|
||||||
|
break
|
||||||
|
|
||||||
|
return ' '.join(description_lines[:2]) if description_lines else "No description available."
|
||||||
|
|
||||||
|
|
||||||
|
def extract_status_from_claude_md(content: str) -> str:
|
||||||
|
"""Extract current status from CLAUDE.md"""
|
||||||
|
lines = content.split('\n')
|
||||||
|
|
||||||
|
# Look for status-related sections
|
||||||
|
status_keywords = ['statut', 'status', 'current', 'phase', 'état']
|
||||||
|
status_lines = []
|
||||||
|
|
||||||
|
for i, line in enumerate(lines):
|
||||||
|
lower = line.lower()
|
||||||
|
|
||||||
|
# Check if line contains status keyword
|
||||||
|
if any(kw in lower for kw in status_keywords):
|
||||||
|
# Collect next few non-empty lines
|
||||||
|
for j in range(i, min(i+5, len(lines))):
|
||||||
|
stripped = lines[j].strip()
|
||||||
|
if stripped and not stripped.startswith('#'):
|
||||||
|
status_lines.append(stripped)
|
||||||
|
if len(status_lines) >= 2:
|
||||||
|
break
|
||||||
|
break
|
||||||
|
|
||||||
|
return ' '.join(status_lines) if status_lines else "Status unknown - inspect repository."
|
||||||
|
|
||||||
|
|
||||||
|
def get_last_commit_info(repo_path: Path) -> Dict[str, str]:
|
||||||
|
"""Get last commit date and message"""
|
||||||
|
try:
|
||||||
|
# Check if it's a git repo
|
||||||
|
git_dir = repo_path / ".git"
|
||||||
|
if not git_dir.exists():
|
||||||
|
return {"date": "Unknown", "message": "Not a git repository"}
|
||||||
|
|
||||||
|
# Get last commit date
|
||||||
|
result = subprocess.run(
|
||||||
|
["git", "-C", str(repo_path), "log", "-1", "--format=%ar"],
|
||||||
|
capture_output=True,
|
||||||
|
text=True,
|
||||||
|
timeout=5
|
||||||
|
)
|
||||||
|
date = result.stdout.strip() if result.returncode == 0 else "Unknown"
|
||||||
|
|
||||||
|
# Get last commit message
|
||||||
|
result = subprocess.run(
|
||||||
|
["git", "-C", str(repo_path), "log", "-1", "--format=%s"],
|
||||||
|
capture_output=True,
|
||||||
|
text=True,
|
||||||
|
timeout=5
|
||||||
|
)
|
||||||
|
message = result.stdout.strip() if result.returncode == 0 else "No commits"
|
||||||
|
|
||||||
|
return {"date": date, "message": message}
|
||||||
|
except Exception:
|
||||||
|
return {"date": "Unknown", "message": "Error reading git history"}
|
||||||
|
|
||||||
|
|
||||||
|
def get_directory_structure(repo_path: Path) -> List[str]:
|
||||||
|
"""Get high-level directory structure"""
|
||||||
|
try:
|
||||||
|
dirs = []
|
||||||
|
for item in sorted(repo_path.iterdir()):
|
||||||
|
if item.is_dir() and not item.name.startswith('.'):
|
||||||
|
dirs.append(item.name)
|
||||||
|
return dirs[:10] # Top 10 directories
|
||||||
|
except Exception:
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
def inspect_repo(repo_name: str, repo_path: Path) -> Dict[str, any]:
|
||||||
|
"""Inspect repository and extract information"""
|
||||||
|
|
||||||
|
info = {
|
||||||
|
"repo_exists": repo_path.exists(),
|
||||||
|
"has_claude_md": False,
|
||||||
|
"has_readme": False,
|
||||||
|
"has_todo": False,
|
||||||
|
"claude_content": "",
|
||||||
|
"readme_content": "",
|
||||||
|
"todo_content": "",
|
||||||
|
"languages": [],
|
||||||
|
"last_commit": {},
|
||||||
|
"directories": []
|
||||||
|
}
|
||||||
|
|
||||||
|
if not repo_path.exists():
|
||||||
|
return info
|
||||||
|
|
||||||
|
# Check for CLAUDE.md
|
||||||
|
claude_path = repo_path / "CLAUDE.md"
|
||||||
|
if claude_path.exists():
|
||||||
|
info["has_claude_md"] = True
|
||||||
|
info["claude_content"] = read_file_safe(claude_path, max_lines=100)
|
||||||
|
|
||||||
|
# Check for README
|
||||||
|
for readme_name in ["README.md", "Readme.md", "readme.md"]:
|
||||||
|
readme_path = repo_path / readme_name
|
||||||
|
if readme_path.exists():
|
||||||
|
info["has_readme"] = True
|
||||||
|
info["readme_content"] = read_file_safe(readme_path, max_lines=50)
|
||||||
|
break
|
||||||
|
|
||||||
|
# Check for TODO.md
|
||||||
|
todo_path = repo_path / "TODO.md"
|
||||||
|
if todo_path.exists():
|
||||||
|
info["has_todo"] = True
|
||||||
|
info["todo_content"] = read_file_safe(todo_path, max_lines=20)
|
||||||
|
|
||||||
|
# Detect languages
|
||||||
|
info["languages"] = detect_languages(repo_path)
|
||||||
|
|
||||||
|
# Get last commit
|
||||||
|
info["last_commit"] = get_last_commit_info(repo_path)
|
||||||
|
|
||||||
|
# Get directory structure
|
||||||
|
info["directories"] = get_directory_structure(repo_path)
|
||||||
|
|
||||||
|
return info
|
||||||
|
|
||||||
|
|
||||||
|
def generate_project_md(repo_name: str, category: str, info: Dict, template: str) -> str:
|
||||||
|
"""Generate project .md content from template and extracted info"""
|
||||||
|
|
||||||
|
# Extract description
|
||||||
|
if info["has_claude_md"]:
|
||||||
|
description = extract_description_from_claude_md(info["claude_content"])
|
||||||
|
elif info["has_readme"]:
|
||||||
|
description = extract_description_from_claude_md(info["readme_content"]) # Same logic works
|
||||||
|
else:
|
||||||
|
description = "No description available - repository needs documentation."
|
||||||
|
|
||||||
|
# Tech stack
|
||||||
|
if info["languages"]:
|
||||||
|
tech_stack = ", ".join(info["languages"])
|
||||||
|
else:
|
||||||
|
tech_stack = "Unknown - inspect repository"
|
||||||
|
|
||||||
|
# Current status
|
||||||
|
if info["has_claude_md"]:
|
||||||
|
current_status = extract_status_from_claude_md(info["claude_content"])
|
||||||
|
else:
|
||||||
|
last_commit = info["last_commit"]
|
||||||
|
current_status = f"Last commit: {last_commit['message']} ({last_commit['date']})"
|
||||||
|
|
||||||
|
# Key features
|
||||||
|
key_features = "- See CLAUDE.md for detailed features" if info["has_claude_md"] else "- Features not documented yet"
|
||||||
|
|
||||||
|
# Structure
|
||||||
|
if info["directories"]:
|
||||||
|
structure = "```\n" + "\n".join([f"{d}/" for d in info["directories"]]) + "\n```"
|
||||||
|
else:
|
||||||
|
structure = "Structure not analyzed yet."
|
||||||
|
|
||||||
|
# Next steps
|
||||||
|
if info["has_todo"]:
|
||||||
|
todo_lines = [line.strip() for line in info["todo_content"].split('\n') if line.strip() and not line.startswith('#')]
|
||||||
|
next_steps = "\n".join([f"- {line}" for line in todo_lines[:5]])
|
||||||
|
else:
|
||||||
|
next_steps = "- See TODO.md or project plans for next steps"
|
||||||
|
|
||||||
|
# Notes
|
||||||
|
notes_parts = []
|
||||||
|
if not info["repo_exists"]:
|
||||||
|
notes_parts.append("⚠️ Repository not found in expected location")
|
||||||
|
if not info["has_claude_md"]:
|
||||||
|
notes_parts.append("⚠️ No CLAUDE.md found - add project documentation")
|
||||||
|
|
||||||
|
notes = "\n".join(notes_parts) if notes_parts else "None"
|
||||||
|
|
||||||
|
# Project type (infer from languages/structure - prioritize main language)
|
||||||
|
project_type = "Unknown"
|
||||||
|
lang_list = info["languages"]
|
||||||
|
|
||||||
|
# Prioritize based on typical primary languages
|
||||||
|
if "C++" in lang_list or "C" in lang_list:
|
||||||
|
project_type = "C++ Application"
|
||||||
|
elif "Python" in lang_list:
|
||||||
|
project_type = "Python Application"
|
||||||
|
elif "JavaScript" in lang_list or "TypeScript" in lang_list:
|
||||||
|
project_type = "JavaScript/Node.js Application"
|
||||||
|
elif "C#" in lang_list:
|
||||||
|
project_type = "C# Application"
|
||||||
|
elif "Rust" in lang_list:
|
||||||
|
project_type = "Rust Application"
|
||||||
|
elif "Go" in lang_list:
|
||||||
|
project_type = "Go Application"
|
||||||
|
|
||||||
|
# Fill template
|
||||||
|
today = datetime.now().strftime("%Y-%m-%d")
|
||||||
|
content = template.format(
|
||||||
|
project_name=repo_name,
|
||||||
|
category=category,
|
||||||
|
category_full=CATEGORY_NAMES.get(category, category),
|
||||||
|
project_type=project_type,
|
||||||
|
repo_name=repo_name,
|
||||||
|
description=description,
|
||||||
|
tech_stack=tech_stack,
|
||||||
|
current_status=current_status,
|
||||||
|
key_features=key_features,
|
||||||
|
structure=structure,
|
||||||
|
next_steps=next_steps,
|
||||||
|
notes=notes,
|
||||||
|
created_date=today,
|
||||||
|
updated_date=today
|
||||||
|
)
|
||||||
|
|
||||||
|
return content
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Main function"""
|
||||||
|
|
||||||
|
# Parse arguments
|
||||||
|
dry_run = "--dry-run" in sys.argv
|
||||||
|
specific_repo = None
|
||||||
|
if "--repo" in sys.argv:
|
||||||
|
idx = sys.argv.index("--repo")
|
||||||
|
if idx + 1 < len(sys.argv):
|
||||||
|
specific_repo = sys.argv[idx + 1]
|
||||||
|
|
||||||
|
# Load config
|
||||||
|
config = load_json(CONFIG_FILE)
|
||||||
|
repos_root = Path(config["repos_root"])
|
||||||
|
project_mapping = config["project_mapping"]
|
||||||
|
|
||||||
|
# Load template
|
||||||
|
template = load_template()
|
||||||
|
|
||||||
|
# Stats
|
||||||
|
stats = {
|
||||||
|
"total": 0,
|
||||||
|
"generated": 0,
|
||||||
|
"skipped": 0,
|
||||||
|
"errors": 0
|
||||||
|
}
|
||||||
|
|
||||||
|
print("🔍 ProjectTracker - Project File Generator\n")
|
||||||
|
|
||||||
|
# Process each repository
|
||||||
|
for repo_name, project_file in project_mapping.items():
|
||||||
|
# Filter if specific repo requested
|
||||||
|
if specific_repo and repo_name != specific_repo:
|
||||||
|
continue
|
||||||
|
|
||||||
|
stats["total"] += 1
|
||||||
|
|
||||||
|
# Check if file already exists
|
||||||
|
project_path = PROJECT_TRACKER / project_file
|
||||||
|
if project_path.exists():
|
||||||
|
print(f"⏭️ {repo_name} - Already exists, skipping")
|
||||||
|
stats["skipped"] += 1
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Inspect repository
|
||||||
|
repo_path = repos_root / repo_name
|
||||||
|
print(f"📂 {repo_name} - Inspecting...")
|
||||||
|
|
||||||
|
try:
|
||||||
|
info = inspect_repo(repo_name, repo_path)
|
||||||
|
category = get_category_from_path(project_file)
|
||||||
|
content = generate_project_md(repo_name, category, info, template)
|
||||||
|
|
||||||
|
if dry_run:
|
||||||
|
print(f" [DRY RUN] Would generate: {project_file}")
|
||||||
|
print(f" Languages: {', '.join(info['languages']) if info['languages'] else 'None'}")
|
||||||
|
print(f" Has CLAUDE.md: {info['has_claude_md']}")
|
||||||
|
else:
|
||||||
|
# Ensure directory exists
|
||||||
|
project_path.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
# Write file
|
||||||
|
with open(project_path, 'w', encoding='utf-8') as f:
|
||||||
|
f.write(content)
|
||||||
|
|
||||||
|
print(f"✅ {repo_name} - Generated: {project_file}")
|
||||||
|
stats["generated"] += 1
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"❌ {repo_name} - Error: {e}")
|
||||||
|
stats["errors"] += 1
|
||||||
|
|
||||||
|
# Summary
|
||||||
|
print(f"\n{'='*60}")
|
||||||
|
print(f"📊 Summary:")
|
||||||
|
print(f" Total repos: {stats['total']}")
|
||||||
|
print(f" Generated: {stats['generated']}")
|
||||||
|
print(f" Skipped (already exist): {stats['skipped']}")
|
||||||
|
print(f" Errors: {stats['errors']}")
|
||||||
|
|
||||||
|
if dry_run:
|
||||||
|
print(f"\n💡 This was a dry run. Remove --dry-run to generate files.")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
try:
|
||||||
|
main()
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
print("\n\n⚠️ Interrupted by user")
|
||||||
|
sys.exit(1)
|
||||||
|
except Exception as e:
|
||||||
|
print(f"\n❌ Fatal error: {e}")
|
||||||
|
import traceback
|
||||||
|
traceback.print_exc()
|
||||||
|
sys.exit(1)
|
||||||
39
tools/templates/BASE.md
Normal file
39
tools/templates/BASE.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# {project_name}
|
||||||
|
|
||||||
|
**Statut:** {category} ({category_full})
|
||||||
|
**Type:** {project_type}
|
||||||
|
**Repository:** git@git.etheryale.com:StillHammer/{repo_name}.git
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
{description}
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
{tech_stack}
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
{current_status}
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
{key_features}
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
{structure}
|
||||||
|
|
||||||
|
## Prochaines Étapes
|
||||||
|
|
||||||
|
{next_steps}
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
{notes}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created:** {created_date}
|
||||||
|
**Last Updated:** {updated_date}
|
||||||
|
**Source:** Generated from repo inspection
|
||||||
Loading…
Reference in New Issue
Block a user