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.
229 lines
4.9 KiB
Markdown
229 lines
4.9 KiB
Markdown
# Skills Date Tracking Guide
|
|
|
|
This guide explains how to use the new `date_added` feature for tracking when skills were created or added to the collection.
|
|
|
|
## Overview
|
|
|
|
The `date_added` field in skill frontmatter allows you to track when each skill was created. This is useful for:
|
|
|
|
- **Versioning**: Understanding skill age and maturity
|
|
- **Changelog generation**: Tracking new skills over time
|
|
- **Reporting**: Analyzing skill collection growth
|
|
- **Organization**: Grouping skills by creation date
|
|
|
|
## Format
|
|
|
|
The `date_added` field uses ISO 8601 date format: **YYYY-MM-DD**
|
|
|
|
```yaml
|
|
---
|
|
name: my-skill-name
|
|
description: "Brief description"
|
|
date_added: "2024-01-15"
|
|
---
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
### 1. View All Skills with Their Dates
|
|
|
|
```bash
|
|
python tools/scripts/manage_skill_dates.py list
|
|
```
|
|
|
|
Output example:
|
|
```
|
|
📅 Skills with Date Added (example):
|
|
============================================================
|
|
2025-02-26 │ recent-skill
|
|
2025-02-20 │ another-new-skill
|
|
2024-12-15 │ older-skill
|
|
...
|
|
|
|
⏳ Skills without Date Added (example):
|
|
============================================================
|
|
some-legacy-skill
|
|
undated-skill
|
|
...
|
|
|
|
📊 Coverage: example output only
|
|
```
|
|
|
|
### 2. Add Missing Dates
|
|
|
|
Add today's date to all skills that don't have a `date_added` field:
|
|
|
|
```bash
|
|
python tools/scripts/manage_skill_dates.py add-missing
|
|
```
|
|
|
|
Or specify a custom date:
|
|
|
|
```bash
|
|
python tools/scripts/manage_skill_dates.py add-missing --date 2026-03-06
|
|
```
|
|
|
|
### 3. Add/Update All Skills
|
|
|
|
Set a date for all skills at once:
|
|
|
|
```bash
|
|
python tools/scripts/manage_skill_dates.py add-all --date 2026-03-06
|
|
```
|
|
|
|
### 4. Update a Single Skill
|
|
|
|
Update a specific skill's date:
|
|
|
|
```bash
|
|
python tools/scripts/manage_skill_dates.py update my-skill-name 2026-03-06
|
|
```
|
|
|
|
### 5. Generate a Report
|
|
|
|
Generate a JSON report of all skills with their metadata:
|
|
|
|
```bash
|
|
python tools/scripts/generate_skills_report.py
|
|
```
|
|
|
|
Save to file:
|
|
|
|
```bash
|
|
python tools/scripts/generate_skills_report.py --output skills_report.json
|
|
```
|
|
|
|
Sort by name:
|
|
|
|
```bash
|
|
python tools/scripts/generate_skills_report.py --sort name --output sorted_skills.json
|
|
```
|
|
|
|
## Usage in Your Workflow
|
|
|
|
### When Creating a New Skill
|
|
|
|
Add the `date_added` field to your SKILL.md frontmatter:
|
|
|
|
```yaml
|
|
---
|
|
name: new-awesome-skill
|
|
description: "Does something awesome"
|
|
date_added: "2026-03-06"
|
|
---
|
|
```
|
|
|
|
### Automated Addition
|
|
|
|
When onboarding many skills, use:
|
|
|
|
```bash
|
|
python tools/scripts/manage_skill_dates.py add-missing --date 2026-03-06
|
|
```
|
|
|
|
This adds today's date to all skills that are missing the field.
|
|
|
|
### Validation
|
|
|
|
The validators now check `date_added` format:
|
|
|
|
```bash
|
|
# Run the operational validator
|
|
npm run validate
|
|
|
|
# Optional hardening pass
|
|
npm run validate:strict
|
|
|
|
# Reference validation
|
|
npm run validate:references
|
|
|
|
# Run smoke tests
|
|
npm test
|
|
```
|
|
|
|
These checks catch invalid dates, broken references, and related regressions.
|
|
|
|
## Generated Reports
|
|
|
|
The `generate_skills_report.py` script produces a JSON report with statistics:
|
|
|
|
```json
|
|
{
|
|
"generated_at": "2026-03-06T10:30:00.123456",
|
|
"total_skills": 1234,
|
|
"skills_with_dates": 1200,
|
|
"skills_without_dates": 34,
|
|
"coverage_percentage": 97.2,
|
|
"sorted_by": "date",
|
|
"skills": [
|
|
{
|
|
"id": "recent-skill",
|
|
"name": "recent-skill",
|
|
"description": "A newly added skill",
|
|
"date_added": "2026-03-06",
|
|
"source": "community",
|
|
"risk": "safe",
|
|
"category": "recent"
|
|
},
|
|
...
|
|
]
|
|
}
|
|
```
|
|
|
|
Use this for:
|
|
- Dashboard displays
|
|
- Growth metrics
|
|
- Automated reports
|
|
- Analytics
|
|
|
|
## Integration with CI/CD
|
|
|
|
Add to your pipeline:
|
|
|
|
```bash
|
|
# In pre-commit or CI pipeline
|
|
npm run validate
|
|
npm run validate:references
|
|
|
|
# Generate stats report
|
|
python tools/scripts/generate_skills_report.py --output reports/skills_report.json
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
1. **Use consistent format**: Always use `YYYY-MM-DD`
|
|
2. **Use real dates**: Reflect actual skill creation dates when possible
|
|
3. **Update on creation**: Add the date when creating new skills
|
|
4. **Validate regularly**: Run validators to catch format errors
|
|
5. **Review reports**: Use generated reports to understand collection trends
|
|
|
|
## Troubleshooting
|
|
|
|
### "Invalid date_added format"
|
|
|
|
Make sure the date is in `YYYY-MM-DD` format:
|
|
- ✅ Correct: `2024-01-15`
|
|
- ❌ Wrong: `01/15/2024` or `2024-1-15`
|
|
|
|
### Script not found
|
|
|
|
Make sure you're running from the project root:
|
|
```bash
|
|
cd path/to/antigravity-awesome-skills
|
|
python tools/scripts/manage_skill_dates.py list
|
|
```
|
|
|
|
### Python not found
|
|
|
|
Install Python 3.x from [python.org](https://python.org/)
|
|
|
|
## Related Documentation
|
|
|
|
- [`../contributors/skill-anatomy.md`](../contributors/skill-anatomy.md) - Complete skill structure guide
|
|
- [`skills-update-guide.md`](skills-update-guide.md) - How to update the skill collection
|
|
- [`../contributors/examples.md`](../contributors/examples.md) - Example skills
|
|
|
|
## Questions or Issues?
|
|
|
|
See [CONTRIBUTING.md](../../CONTRIBUTING.md) for contribution guidelines.
|