SKILL.md
42 README Generator
Generate well-structured README files for 42 School projects.
README Structure
Every 42 project README should include:
- Title & Tagline (with emojis)
- Description - Overview, problem, key challenge
- Technologies & Concepts - What's used and learned
- How It Works - Visual explanations with ASCII diagrams
- Architecture - Data structures, modules
- Source Code Structure - Directory tree
- Instructions - Build, run, test
- Technical Challenges - Problems and solutions (collapsible)
- Useful Links - Guides and resources
- License - Academic disclaimer
Title Section Template
# project-name 🎯 [emoji]
One-sentence description of what the project does and its educational purpose.
Description Template
## Description 📜
[2-3 paragraph overview of the project]
**Key Challenge:** [Main technical difficulty in one sentence]
How It Works Section
Use ASCII diagrams:
## How It Works 🔄
### Data Flow:
┌─────────┐ ┌─────────┐ │ INPUT │────────►│ PROCESS │ └─────────┘ └────┬────┘ │ ▼ ┌─────────┐ │ OUTPUT │ └─────────┘ \```
## Architecture Section
Show actual code structures:
Architecture 🏗️
Data Structures:
\``c typedef struct sdata { int value; char *str; } tdata; \``
## Source Structure Template
Source Code Structure 📂
\`` project/ ├── binary_name ├── Makefile ├── include/ │ └── header.h ├── src/ │ ├── main.c │ └── utils.c └── guides/ └── guide.md \``
## Instructions Template
Instructions ⚙️
Building the Project
\``bash make # Compile \``
Running the Program
\``bash ./program [args] \``
Examples:
\```bash
Basic test
./program test
Edge case
./program 0 \```
Development Commands
- Clean:
make clean - Full clean:
make fclean - Rebuild:
make re - Check style:
norminette -R CheckForbiddenSourceHeader
## Technical Challenges Template
Technical Challenges & Solutions 🧩
<details> <summary><strong>Challenge Name</strong></summary>
Problem: Description of the issue
Solution: How it was solved
</details>
## Style Guidelines
### Emojis
- Title: 1-2 relevant emojis
- Sections: One per header (📜 🛠️ 🔄 🏗️ 📂 ⚙️ 🧩 🔗)
- Body: Minimal use
### Code Blocks
- Always specify language: \```c, \```bash, \```makefile
- Show actual project code when possible
### ASCII Diagrams
- Use: ┌─┐│└┘├┤ for boxes
- Arrows: → ← ↑ ↓ ◄ ►
- Keep simple and readable
## Example Links Section
Useful Links 🔗
Project Guides (in /guides/):
guide.md⭐ - Main guideconcepts.md- Core concepts
External Resources:
Category 1:
- [Resource Name](URL)
Category 2:
- [Resource Name](URL)
## 42-Specific Elements
### Norminette
Always include:
norminette -R CheckForbiddenSourceHeader src/.c include/.h
### Makefile Rules
Document:
- `make` / `make all`
- `make clean`
- `make fclean`
- `make re`
- `make bonus` (if applicable)
### Testing
Include practical tests:
Thread Sanitizer
cc -fsanitize=thread -pthread src/*.c -o program
Valgrind
valgrind --leak-check=full ./program
## Process
1. Read all source files and Makefile
2. Identify key data structures and functions
3. Understand program flow and architecture
4. Create ASCII diagrams for complex processes
5. Write clear, concise descriptions
6. Include practical, tested examples
7. Link to existing guides/ files
8. Add relevant external resources
## Quality Checklist
- [ ] All 10 sections present
- [ ] Compilation commands tested
- [ ] Examples are accurate
- [ ] ASCII diagrams render correctly
- [ ] Code snippets from actual files
- [ ] Links are valid
- [ ] Consistent emoji use
- [ ] Professional tone
- [ ] Markdown properly formatted