Skip to content

feat: fix skill frontmatter validation across 106 skills#39

Open
popey wants to merge 1 commit into
personamanagmentlayer:mainfrom
popey:improve/skill-review-optimization
Open

feat: fix skill frontmatter validation across 106 skills#39
popey wants to merge 1 commit into
personamanagmentlayer:mainfrom
popey:improve/skill-review-optimization

Conversation

@popey

@popey popey commented Mar 12, 2026

Copy link
Copy Markdown

Hullo @jumsay 👋

I ran your skills through tessl skill review at work and found some targeted improvements. Here's the before/after for the top movers (all 106 skills went from 0% to passing):

Skill Before After Change
nginx-expert 0% 83% +83%
airflow-expert 0% 77% +77%
elasticsearch-expert 0% 77% +77%
kafka-expert 0% 77% +77%
django-expert 0% 77% +77%
quantum-expert 0% 77% +77%
codeql-expert 0% 77% +77%
tableau-expert 0% 75% +75%
fastapi-expert 0% 74% +74%
python-expert 0% 74% +74%

All 106 skills were failing validation (0% score) due to three structural issues in the frontmatter. After fixing these, the average score across the stdlib is ~62%.

Changes made

1. Fixed allowed-tools format (all 106 skills) The allowed-tools field was a YAML list (array) but the spec requires a comma-separated string. Changed from:

allowed-tools:
  - Read
  - Write
  - Edit

to:

allowed-tools: Read, Write, Edit

2. Moved unknown frontmatter keys to metadata (104 skills) Keys like version, category, author, tags, and requirements were at the top level of frontmatter but aren't recognized fields. Moved them under the metadata key where they belong:

metadata:
  version: 1.0.0
  category: languages
  author: PCL Team
  tags: [python, async, type-hints]

3. Added "Use when..." trigger clauses to descriptions (104 skills) Most descriptions lacked explicit trigger guidance. Added Use when working with X, asking about X concepts, or reviewing X code and configurations to help agents select the right skill.

4. Fixed compatibility field format (3 skills) docker-expert, typescript-expert, and code-review-expert had compatibility as a YAML list instead of a string.

Honest disclosure — I work at @tesslio where we build tooling around skills like these. Not a pitch - just saw room for improvement and wanted to contribute.

Want to self-improve your skills? Just point your agent (Claude Code, Codex, etc.) at this Tessl guide and ask it to optimize your skill. Ping me - @popey - if you hit any snags.

Thanks in advance 🙏

Hullo @jumsay 👋

I ran your skills through `tessl skill review` at work and found some targeted improvements. Here's the before/after for the top movers (all 106 skills went from 0% to passing):

| Skill | Before | After | Change |
|-------|--------|-------|--------|
| nginx-expert | 0% | 83% | +83% |
| airflow-expert | 0% | 77% | +77% |
| elasticsearch-expert | 0% | 77% | +77% |
| kafka-expert | 0% | 77% | +77% |
| django-expert | 0% | 77% | +77% |
| quantum-expert | 0% | 77% | +77% |
| codeql-expert | 0% | 77% | +77% |
| tableau-expert | 0% | 75% | +75% |
| fastapi-expert | 0% | 74% | +74% |
| python-expert | 0% | 74% | +74% |

All 106 skills were failing validation (0% score) due to three structural issues in the frontmatter. After fixing these, the average score across the stdlib is ~62%.

<details>
<summary>Changes made</summary>

### 1. Fixed `allowed-tools` format (all 106 skills)
The `allowed-tools` field was a YAML list (array) but the spec requires a comma-separated string. Changed from:
```yaml
allowed-tools:
  - Read
  - Write
  - Edit
```
to:
```yaml
allowed-tools: Read, Write, Edit
```

### 2. Moved unknown frontmatter keys to `metadata` (104 skills)
Keys like `version`, `category`, `author`, `tags`, and `requirements` were at the top level of frontmatter but aren't recognized fields. Moved them under the `metadata` key where they belong:
```yaml
metadata:
  version: 1.0.0
  category: languages
  author: PCL Team
  tags: [python, async, type-hints]
```

### 3. Added "Use when..." trigger clauses to descriptions (104 skills)
Most descriptions lacked explicit trigger guidance. Added `Use when working with X, asking about X concepts, or reviewing X code and configurations` to help agents select the right skill.

### 4. Fixed `compatibility` field format (3 skills)
`docker-expert`, `typescript-expert`, and `code-review-expert` had `compatibility` as a YAML list instead of a string.

</details>

Honest disclosure — I work at @tesslio where we build tooling around skills like these. Not a pitch - just saw room for improvement and wanted to contribute.

Want to self-improve your skills? Just point your agent (Claude Code, Codex, etc.) at [this Tessl guide](https://docs.tessl.io/evaluate/optimize-a-skill-using-best-practices) and ask it to optimize your skill. Ping me - [@popey](https://github.com/popey) - if you hit any snags.

Thanks in advance 🙏
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant