refactor: reorganize repo docs and tooling layout
Consolidate the repository into clearer apps, tools, and layered docs areas so contributors can navigate and maintain it more reliably. Align validation, metadata sync, and CI around the same canonical workflow to reduce drift across local checks and GitHub Actions.
This commit is contained in:
@@ -1,156 +1,3 @@
|
||||
# Date Tracking Implementation Summary
|
||||
# Date Tracking Implementation
|
||||
|
||||
## ✅ What Was Implemented
|
||||
|
||||
### 1. **Frontmatter Template Update**
|
||||
All 946 skills now have the `date_added: "2025-02-26"` field in their `SKILL.md` frontmatter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
name: skill-name
|
||||
description: "Description"
|
||||
date_added: "2025-02-26"
|
||||
---
|
||||
```
|
||||
|
||||
### 2. **Web App Integration**
|
||||
|
||||
#### **Home Page (Skill List Cards)**
|
||||
- Each skill card now displays a small date badge: `📅 YYYY-MM-DD`
|
||||
- Shows alongside the risk level
|
||||
- Clean, compact format in the bottom metadata section
|
||||
|
||||
Example card now shows:
|
||||
```
|
||||
Risk: safe 📅 2025-02-26
|
||||
```
|
||||
|
||||
#### **Skill Detail Page**
|
||||
- Date appears as a green badge near the top with other metadata
|
||||
- Format: `📅 Added YYYY-MM-DD`
|
||||
- Shown alongside Category, Source, and Star buttons
|
||||
|
||||
### 3. **Validators Updated**
|
||||
Both validators now accept and validate the `date_added` field:
|
||||
|
||||
- **validate-skills.js**: Added to `ALLOWED_FIELDS`
|
||||
- **validate_skills.py**: Added YYYY-MM-DD format validation
|
||||
- Warns (dev mode) or fails (strict mode) on missing dates
|
||||
- Validates format strictly
|
||||
|
||||
### 4. **Index Generation**
|
||||
- **generate_index.py** updated to include `date_added` in `skills.json`
|
||||
- All 946 skills now have dates in the web app index
|
||||
- Dates are properly exported to web app's `/public/skills.json`
|
||||
|
||||
### 5. **Documentation**
|
||||
- **SKILL_TEMPLATE.md**: New template for creating skills with date field included
|
||||
- **SKILLS_DATE_TRACKING.md**: Complete usage guide for date management
|
||||
- **SKILL_ANATOMY.md**: Updated with date_added field documentation
|
||||
- **README.md**: Updated contribution guide to mention date tracking
|
||||
|
||||
### 6. **Script Tools**
|
||||
✅ All scripts handle UTF-8 encoding on Windows:
|
||||
|
||||
- **manage_skill_dates.py**: Add, update, list skill dates
|
||||
- **generate_skills_report.py**: Generate JSON report with dates
|
||||
- Both handle emoji output correctly on Windows
|
||||
|
||||
## 📊 Current Status
|
||||
|
||||
- ✅ **946/946 skills** have `date_added: "2025-02-26"`
|
||||
- ✅ **100% coverage** of date tracking
|
||||
- ✅ **Web app displays dates** on all skill cards
|
||||
- ✅ **Validators enforce format** (YYYY-MM-DD)
|
||||
- ✅ **Reports available** via CLI tools
|
||||
|
||||
## 🎨 UI Changes
|
||||
|
||||
### Skill Card (Home Page)
|
||||
Before:
|
||||
```
|
||||
Risk: safe
|
||||
```
|
||||
|
||||
After:
|
||||
```
|
||||
Risk: safe 📅 2025-02-26
|
||||
```
|
||||
|
||||
### Skill Detail Page
|
||||
Before:
|
||||
```
|
||||
[Category] [Source] [Stars]
|
||||
```
|
||||
|
||||
After:
|
||||
```
|
||||
[Category] [Source] [📅 Added 2025-02-26] [Stars]
|
||||
```
|
||||
|
||||
## 📝 Using the Date Field
|
||||
|
||||
### For New Skills
|
||||
Create with template:
|
||||
```bash
|
||||
cp docs/SKILL_TEMPLATE.md skills/my-new-skill/SKILL.md
|
||||
# Edit the template and set date_added to today's date
|
||||
```
|
||||
|
||||
### For Existing Skills
|
||||
Use the management script:
|
||||
```bash
|
||||
# Add missing dates
|
||||
python scripts/manage_skill_dates.py add-missing --date 2025-02-26
|
||||
|
||||
# Update a single skill
|
||||
python scripts/manage_skill_dates.py update skill-name 2025-02-26
|
||||
|
||||
# List all with dates
|
||||
python scripts/manage_skill_dates.py list
|
||||
|
||||
# Generate report
|
||||
python scripts/generate_skills_report.py --output report.json
|
||||
```
|
||||
|
||||
## 🔧 Technical Details
|
||||
|
||||
### Files Modified
|
||||
1. `scripts/generate_index.py` - Added date_added parsing
|
||||
2. `scripts/validate-skills.js` - Added to allowed fields
|
||||
3. `scripts/validate_skills.py` - Added format validation
|
||||
4. `web-app/src/pages/Home.jsx` - Display date in cards
|
||||
5. `web-app/src/pages/SkillDetail.jsx` - Display date in detail
|
||||
6. `README.md` - Updated contribution guide
|
||||
7. `docs/SKILL_ANATOMY.md` - Documented date_added field
|
||||
|
||||
### New Files Created
|
||||
1. `docs/SKILL_TEMPLATE.md` - Skill creation template
|
||||
2. `docs/SKILLS_DATE_TRACKING.md` - Comprehensive guide
|
||||
3. `scripts/manage_skill_dates.py` - Date management CLI
|
||||
4. `scripts/generate_skills_report.py` - Report generation
|
||||
|
||||
## 🚀 Next Steps
|
||||
|
||||
1. **In Web App**: Skills now show creation dates automatically
|
||||
2. **For Analytics**: Use report script to track skill growth over time
|
||||
3. **For Contributions**: Include date_added in new skill PRs
|
||||
4. **For Maintenance**: Run validators to ensure date format compliance
|
||||
|
||||
## 📈 Reporting Examples
|
||||
|
||||
Get a JSON report sorted by date:
|
||||
```bash
|
||||
python scripts/generate_skills_report.py --output skills_by_date.json
|
||||
```
|
||||
|
||||
Output includes:
|
||||
- Total skills count
|
||||
- Skills with/without dates
|
||||
- Coverage percentage
|
||||
- Full skill metadata with dates
|
||||
- Sortable by date or name
|
||||
|
||||
---
|
||||
|
||||
**Date Feature Ready!** 🎉 All skills now track when they were added to the collection.
|
||||
This document moved to [`maintainers/date-tracking-implementation.md`](maintainers/date-tracking-implementation.md).
|
||||
|
||||
Reference in New Issue
Block a user