feat: fix skill frontmatter for tessl validation#283
feat: fix skill frontmatter for tessl validation#283popey wants to merge 1 commit intoLerianStudio:mainfrom
Conversation
Hullo @jeffersonrodrigues92 👋 I ran your skills through `tessl skill review` at work and found some targeted improvements. Here's the full before/after:  All 86 skills across all 6 plugins were failing deterministic validation (scoring 0%) due to frontmatter issues. The fixes bring every skill to a real score — here are the top 10 by improvement: | Skill | Before | After | Change | |-------|--------|-------|--------| | visual-explainer | 0% | 81% | +81% | | linting-codebase | 0% | 73% | +73% | | delivery-status-tracking | 0% | 73% | +73% | | pre-dev-research | 0% | 73% | +73% | | session-handoff | 0% | 68% | +68% | | dev-delivery-verification | 0% | 68% | +68% | | dev-service-discovery | 0% | 68% | +68% | | using-tw-team | 0% | 68% | +68% | | gandalf-webhook | 0% | 66% | +66% | | dev-feedback-loop | 0% | 65% | +65% | Average across all 86 skills: **0% → 53% (+53%)** <details> <summary>What changed</summary> Three frontmatter fixes applied across all skills: 1. **`name` field**: Removed `ring:` prefix (e.g. `ring:brainstorming` → `brainstorming`). The colon character was causing the `name_field` validation to fail, which blocked the LLM judge from running entirely — every skill scored 0% as a result. 2. **`allowed-tools` field**: Converted from YAML list format to comma-separated string in 7 skills (e.g. `gandalf-webhook`, `git-commit`, `session-handoff`, `cycle-management`, `pre-dev-feature`, `pre-dev-full`). The validator expects a string, not an array. 3. **Unknown frontmatter keys**: Moved non-standard keys (`trigger`, `skip_when`, `sequence`, `related`, `user_invocable`, `title`, `category`, `tier`, etc.) under a `metadata` object in 73 skills. This clears the `frontmatter_unknown_keys` warning while preserving all the original data. No body content was changed in any skill — these are purely frontmatter/metadata fixes. </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 🙏
WalkthroughThis pull request reorganizes the YAML front matter structure across all skill definition files in the repository. The primary changes include: (1) removing the "ring:" prefix from all skill identifiers in the 🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 📝 Coding Plan
Comment |
There was a problem hiding this comment.
Actionable comments posted: 30
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
dev-team/skills/dev-frontend-performance/SKILL.md (1)
3-28:⚠️ Potential issue | 🟡 MinorMove non-standard frontmatter fields under
metadata:block for consistency.The file uses top-level fields (
title,category,tier,when_to_use,trigger,NOT_skip_when,sequence,related) that should be reorganized under ametadata:block, matching the structure of 14 other reorganized dev-team SKILL.md files. Move all non-standard fields undermetadata:while keeping onlynameanddescriptionat the top level.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@dev-team/skills/dev-frontend-performance/SKILL.md` around lines 3 - 28, Rename the top-level title field to name and keep description at top level; move the remaining top-level fields (category, tier, when_to_use, trigger, NOT_skip_when, sequence, related) into a single metadata: mapping so the file matches other SKILL.md files; ensure keys and values are preserved exactly (e.g., NOT_skip_when stays as-is) and that sequence retains its after/before arrays and related.complementary array under metadata.dev-team/skills/dev-devops/SKILL.md (1)
20-20:⚠️ Potential issue | 🟡 MinorChange
ring:dev-ring:sretoring:dev-sre.Line 20 contains a malformed skill reference with double prefix (
dev-ring:sre). Per coding guidelines, use the unifiedring:namespace formatring:dev-sre.This same malformation also appears in
dev-team/skills/dev-unit-testing/SKILL.mdline 18.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@dev-team/skills/dev-devops/SKILL.md` at line 20, Replace the malformed skill reference token "ring:dev-ring:sre" with the correct unified namespace "ring:dev-sre" in the SKILL content (update the literal string in the document where it appears); also search the repo for any other occurrences of the same malformed token (notably the similar entry in the unit-testing SKILL file) and fix them to "ring:dev-sre" so all skill references use the unified namespace format.default/skills/requesting-code-review/SKILL.md (1)
7-24:⚠️ Potential issue | 🟠 MajorInconsistent frontmatter structure across skills in this PR.
This skill retains the top-level
trigger,NOT_skip_when,sequence, andrelatedfields (lines 7-24), whiledefault/skills/using-git-worktrees/SKILL.mdandpmo-team/skills/using-pmo-team/SKILL.mdin this same PR move these fields under ametadatablock.Impact:
- Creates two different frontmatter schemas in the repository
- May cause validation inconsistencies if tessl expects uniform structure
- Complicates skill parsing and future maintenance
Recommendation: Apply the metadata restructuring pattern consistently across all skills in this PR. Move
trigger,NOT_skip_when,sequence, andrelatedunder a top-levelmetadatablock to match the structure in the other two files.🔄 Proposed fix to align with metadata structure
--- name: requesting-code-review description: | Gate 4 of development cycle - dispatches 7 specialized reviewers (code, business-logic, security, test, nil-safety, consequences, dead-code) in parallel for comprehensive code review feedback. - -trigger: | +metadata: + trigger: | - - Gate 4 of development cycle - - After completing major feature implementation - - Before merge to main branch - - After fixing complex bug - -NOT_skip_when: | + - Gate 4 of development cycle + - After completing major feature implementation + - Before merge to main branch + - After fixing complex bug + skip_when: | - - "Code is simple" → Simple code can have security issues. Review required. - - "Just refactoring" → Refactoring may expose vulnerabilities. Review required. - - "Already reviewed similar code" → Each change needs fresh review. - -sequence: - after: [ring:dev-testing] - before: [ring:dev-validation] - -related: - complementary: [ring:dev-cycle, ring:dev-implementation, ring:dev-testing] - + - "Code is simple" → Simple code can have security issues. Review required. + - "Just refactoring" → Refactoring may expose vulnerabilities. Review required. + - "Already reviewed similar code" → Each change needs fresh review. + sequence: + after: [ring:dev-testing] + before: [ring:dev-validation] + related: + complementary: [ring:dev-cycle, ring:dev-implementation, ring:dev-testing] input_schema:Note: Also changed
NOT_skip_whentoskip_whento match standard naming conventions seen in other skills.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@default/skills/requesting-code-review/SKILL.md` around lines 7 - 24, This file's frontmatter uses top-level fields (trigger, NOT_skip_when, sequence, related); update it to match the other skills by moving these fields under a top-level metadata block and rename NOT_skip_when to skip_when to match the standard convention—ensure the metadata block contains trigger, skip_when, sequence, and related with the same values and formatting as the other SKILL.md examples so parsers/validators see a consistent schema.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@default/skills/exploring-codebase/SKILL.md`:
- Around line 8-16: The frontmatter wrongly places sequence_before and
sequence_after under related; create a new metadata.sequence mapping at the same
top-level as related and move sequence_before and sequence_after into it (e.g.,
metadata.sequence: { sequence_before: [...], sequence_after: [...] }), remove
them from related, and ensure related.only contains the similar/related keys;
also verify the SKILL.md YAML frontmatter follows the required format and that
all sequence entries use the ring:skill-name invocation format (e.g.,
ring:writing-plans).
In `@default/skills/interviewing-user/SKILL.md`:
- Around line 8-15: The YAML block mixes plain skill names with namespaced ones;
update all referenced skill identifiers so they use the ring: namespace
consistently (e.g., change similar: - brainstorming to similar: -
ring:brainstorming, uses: - doubt-triggered-questions to uses: -
ring:doubt-triggered-questions, and in sequence.before list replace
brainstorming with ring:brainstorming and ensure ring:writing-plans stays
namespaced) so all entries under similar, uses and sequence use the
ring:skill-name format.
In `@default/skills/systematic-debugging/SKILL.md`:
- Line 9: Update the skill invocation in SKILL.md: replace the bare name
"root-cause-tracing" with the canonical ring-prefixed form
"ring:root-cause-tracing" (ensure any occurrences in the file use
ring:root-cause-tracing so examples/metadata follow the required ring:skill-name
format).
In `@default/skills/test-driven-development/SKILL.md`:
- Around line 50-53: The YAML frontmatter under the related->complementary list
uses bare skill names ("testing-anti-patterns",
"verification-before-completion") instead of the canonical ring:... format;
update those entries to use the canonical invocation (e.g.,
"ring:testing-anti-patterns" and "ring:verification-before-completion") in the
related.complementary array so the skill references are consistent with other
`ring:...` links and comply with the SKILL.md guidelines.
In `@default/skills/writing-skills/SKILL.md`:
- Line 9: Update the reference "testing-skills-with-subagents" in SKILL.md to
the canonical invocation "ring:testing-skills-with-subagents" and ensure the
file includes the required YAML frontmatter for the skill definition; locate the
occurrence of testing-skills-with-subagents in SKILL.md and replace it with
ring:testing-skills-with-subagents, and if YAML frontmatter (--- ... ---) is
missing at the top of SKILL.md, add the appropriate frontmatter fields per
project guidelines.
In `@dev-team/skills/dev-cycle/SKILL.md`:
- Around line 72-74: The command and regex are wrong: wrap the two cat calls so
the fallback is piped into jq (e.g. (cat docs/ring:dev-cycle/current-cycle.json
2>/dev/null || cat docs/ring:dev-refactor/current-cycle.json 2>/dev/null) | jq
'.current_gate') and replace the unanchored/exclusive success_pattern with one
that matches a single digit 0–9 or 0.5 exactly (e.g. '^(?:[0-9]|0\.5)$') so the
fields "command" and "success_pattern" correctly validate gates 0–9 and 0.5.
In `@dev-team/skills/dev-devops/SKILL.md`:
- Line 2: The skill reference at line 20 is malformed: it uses a double-prefix
form `ring:dev-ring:sre`; replace that token with the corrected single-prefix
identifier `ring:dev-sre` (leave the top-level name field `dev-devops`
unchanged). Locate the occurrence of `ring:dev-ring:sre` in the file and update
it to `ring:dev-sre`, ensuring no other entries use the forbidden double-prefix
pattern.
In `@dev-team/skills/dev-fuzz-testing/SKILL.md`:
- Line 2: The YAML frontmatter 'name' field was changed to "dev-fuzz-testing"
without the required ring: prefix; restore the proper invocation format by
changing the frontmatter name back to use the ring: prefix (e.g.,
ring:dev-fuzz-testing) so it matches internal references like
ring:dev-unit-testing and ring:qa-analyst and conforms with the skill definition
convention; ensure the 'name' in SKILL.md matches other references and the
repository's coding guidelines or alternatively update tessl/config if you
intend to change the convention across the repo.
In `@dev-team/skills/dev-helm/SKILL.md`:
- Around line 8-12: The frontmatter has duplicate skip-related fields causing
ambiguity: `NOT_skip_when` (anti-rationalizations) and `skip_when` (actual skip
conditions); consolidate by removing or renaming `NOT_skip_when` and keeping
`skip_when` for machine-readable skip logic — either rename `NOT_skip_when` to
`anti_patterns` or `common_misconceptions` (and move its content to docs) and
ensure only `skip_when` remains as the schema field used by consumers; update
any references to `NOT_skip_when` to the new name or remove them, and validate
that `skip_when` (the actual condition list) is the lone metadata key used by
tooling.
In `@dev-team/skills/dev-implementation/SKILL.md`:
- Line 2: The SKILL.md currently sets "name: dev-implementation" without the
required namespace; update the YAML frontmatter so the name field uses the
invocation format "ring:dev-implementation" (replace the existing "name:
dev-implementation"), and ensure the file contains valid YAML frontmatter block
(--- ... ---) around that name entry so the skill uses the correct ring:
namespace for invocation and documentation.
In `@dev-team/skills/dev-migrate-v4/SKILL.md`:
- Line 2: Update all invocation examples that currently use `/ring:migrate-v4`
to the correct skill invocation `/ring:dev-migrate-v4` to match the skill name
declared as dev-migrate-v4; search for occurrences in the SKILL.md content
(examples around lines showing `/ring:migrate-v4`) and replace them so every
example uses the `ring:skill-name` format `/ring:dev-migrate-v4`.
In `@dev-team/skills/dev-multi-tenant/SKILL.md`:
- Line 15: In the frontmatter of the SKILL.md file change the incorrect key name
NOT_skip_when to the canonical skip_when so the skip logic is recognized by the
schema; locate the frontmatter block containing NOT_skip_when and rename that
key exactly to skip_when (preserving its value/indentation) so existing skip
conditions continue to work.
In `@dev-team/skills/dev-service-discovery/SKILL.md`:
- Line 23: The invocation example in SKILL.md incorrectly uses a leading slash
("/ring:dev-service-discovery"); update the example to use the canonical
invocation "ring:dev-service-discovery" (remove the leading slash) and ensure
the SKILL.md includes the required YAML frontmatter at the top; locate the
example invocation string and the file header (SKILL.md) and replace
"/ring:dev-service-discovery" with "ring:dev-service-discovery" and add or
correct the YAML frontmatter if missing.
In `@finops-team/skills/regulatory-templates-gate1/SKILL.md`:
- Around line 2-15: Replace plain skill names in the SKILL.md YAML frontmatter
with the required ring: invocation format: change the top-level name value from
"regulatory-templates-gate1" to "ring:regulatory-templates-gate1" and update the
sequence entries "regulatory-templates-setup" and "regulatory-templates-gate2"
to "ring:regulatory-templates-setup" and "ring:regulatory-templates-gate2"
respectively so the SKILL definition and the sequence.after/sequence.before
references use the ring:skill-name form.
In `@finops-team/skills/regulatory-templates-gate2/SKILL.md`:
- Around line 2-11: Update the SKILL.md YAML frontmatter to use the ring:
invocation format instead of plain IDs: replace name: regulatory-templates-gate2
with name: ring:regulatory-templates-gate2 and update metadata.sequence.after
value regulatory-templates-gate1 to ring:regulatory-templates-gate1 and
metadata.sequence.before value regulatory-templates-gate3 to
ring:regulatory-templates-gate3 so the skill name and sequence references
conform to the required ring:skill-name invocation convention.
In `@finops-team/skills/regulatory-templates-gate3/SKILL.md`:
- Around line 2-9: The SKILL.md frontmatter uses plain identifiers instead of
the required ring-prefixed skill names; update the name value from
"regulatory-templates-gate3" to "ring:regulatory-templates-gate3" and update the
metadata.sequence.after entry from "regulatory-templates-gate2" to
"ring:regulatory-templates-gate2" so the skill identity and sequencing use the
required ring:skill-name invocation format (check the name and
metadata.sequence.after fields in SKILL.md).
In `@finops-team/skills/regulatory-templates-setup/SKILL.md`:
- Around line 2-14: Update the SKILL.md frontmatter to use the ring-invocation
format for skill identifiers: change the top-level name value to
"ring:regulatory-templates-setup" and update the sequence entries to
"ring:regulatory-templates" (in after) and "ring:regulatory-templates-gate1" (in
before); locate these values in the SKILL.md frontmatter (symbols: name,
metadata.sequence.after, metadata.sequence.before) and replace the plain names
with the corresponding ring:... forms to comply with the skill invocation
guideline.
In `@finops-team/skills/regulatory-templates/SKILL.md`:
- Around line 2-18: The frontmatter mixes plain and ring-prefixed invocation
formats: update the SKILL.md frontmatter so the skill is consistently referenced
with the ring: prefix (e.g., change the name field and the entries under
sequence.before to use ring:regulatory-templates and
ring:regulatory-templates-setup respectively), ensuring metadata.dependencies,
name, and sequence.before all use the same ring:skill-name format; adjust any
other plain skill identifiers in the YAML to ring:... to match the repository
guideline.
In `@pm-team/skills/pre-dev-research/SKILL.md`:
- Around line 8-47: The frontmatter was moved under a metadata block but parsers
still read top-level keys; update all references to read from metadata.* (e.g.,
metadata.trigger, metadata.skip_when, metadata.sequence, metadata.related,
metadata.research_modes). Specifically, change reads in
installer/ring_installer/transformers/skill.py (refs around the handlers that
access trigger/skip_when/sequence/research_modes),
installer/ring_installer/transformers/cursor_rules.py (where
trigger/sequence/related are used),
installer/ring_installer/transformers/cline_prompts.py,
installer/ring_installer/adapters/cursor.py,
installer/ring_installer/adapters/cline.py, and
default/hooks/generate-skills-ref.py to access the values via the metadata
object (handle missing metadata by falling back to defaults or empty values to
avoid crashes). Ensure utility functions or parsing helpers (where present)
normalize to metadata.* so all callers use the same path.
In `@pmo-team/skills/delivery-reporting/SKILL.md`:
- Line 15: The SKILL.md currently uses a malformed skill reference
"ring-tw-team"; update all occurrences in SKILL.md to the proper invocation
format using "ring:skill-name" (e.g., replace "ring-tw-team" with
"ring:ring-tw-team") and ensure any examples, README text, or code snippets use
the ring: invocation consistently; also verify the file contains the required
YAML frontmatter per the skills guideline.
In `@pmo-team/skills/executive-reporting/SKILL.md`:
- Around line 11-14: The skip_when block in SKILL.md contains invalid invocation
strings "ring-tw-team" and "ring-finops-team"; update these to the required
colon-separated skill identifiers (e.g., change ring-tw-team -> ring:tw-team and
ring-finops-team -> ring:finops-team) so the skip_when YAML uses the canonical
ring:skill-name format; locate the skip_when YAML entry and replace the dash
items for Technical documentation and Financial deep dive accordingly.
In `@pmo-team/skills/pmo-retrospective/SKILL.md`:
- Line 13: Replace the malformed skill invocation token "ring-dev-team" in
SKILL.md with the proper invocation format "ring:dev-team" so the documented
example follows the required ring:skill-name pattern; update any other
occurrences of "ring-dev-team" in the file to "ring:dev-team" to keep YAML
frontmatter and examples consistent.
In `@pmo-team/skills/project-health-check/SKILL.md`:
- Around line 9-10: Normalize the bare skill references in SKILL.md to the
canonical invocation format: replace occurrences of "portfolio-planning" and
"risk-management" with "ring:portfolio-planning" and "ring:risk-management"
respectively wherever those skill names appear (e.g., in lists, examples, or
documentation sections of SKILL.md) to comply with the required
`ring:skill-name` format.
In `@pmo-team/skills/resource-allocation/SKILL.md`:
- Around line 12-13: The SKILL.md uses non-canonical skill names 'ring-pm-team'
and 'ring-finops-team' which violate the unified namespace; update those entries
to use the standardized 'ring:' namespace (e.g., replace 'ring-pm-team' with
'ring:pm-team' and 'ring-finops-team' with 'ring:finops-team') so they conform
to examples like 'ring:code-reviewer' and 'ring:backend-engineer-golang' and
will resolve correctly.
In `@pmo-team/skills/risk-management/SKILL.md`:
- Line 14: Replace the inconsistent skill invocation that uses a hyphen (e.g.,
"ring-finops-team" or any occurrence like "Technical risk in code → use
ring-finops-team") with the required colon format "ring:finops-team" (or
"ring:qa-analyst" where appropriate); also ensure the SKILL.md contains the
required YAML frontmatter and that all skill examples and references use the
canonical ring:skill-name invocation format consistently (search for "ring-"
patterns and update them to "ring:") so the document conforms to the coding
guideline.
In `@tw-team/skills/documentation-review/SKILL.md`:
- Around line 9-17: The referenced skill names in the YAML (items
voice-and-tone, documentation-structure, writing-functional-docs,
writing-api-docs and the entries under sequence.after and skip_when) must be
canonicalized to the ring: prefix; update each plain name to
ring:voice-and-tone, ring:documentation-structure, ring:writing-functional-docs,
ring:writing-api-docs (including in the sequence.after list and in the skip_when
bullet lines) so the SKILL.md uses the proper invocation format required by
skill tooling and YAML frontmatter conventions.
In `@tw-team/skills/documentation-structure/SKILL.md`:
- Around line 9-13: The metadata values in SKILL.md use bare skill names; update
the entries "writing-functional-docs", "writing-api-docs" and the two examples
under skip_when that reference "writing-functional-docs" and "voice-and-tone" to
use the invocation namespace format (ring:skill-name) instead of the bare names
so they read e.g. ring:writing-functional-docs, ring:writing-api-docs and
ring:voice-and-tone; ensure all four places match the ring:skill-name pattern in
the YAML frontmatter and examples (look for the tokens writing-functional-docs,
writing-api-docs, and voice-and-tone to replace).
In `@tw-team/skills/voice-and-tone/SKILL.md`:
- Around line 8-11: Update the metadata.related.complementary entries to use the
required ring: prefix so the skill references match the team's invocation
format; specifically change the list items under complementary (currently
"writing-functional-docs", "writing-api-docs", "documentation-review") to
"ring:writing-functional-docs", "ring:writing-api-docs", and
"ring:documentation-review" so the complementary array in SKILL.md uses the same
ring:<skill> convention as other entries.
In `@tw-team/skills/writing-api-docs/SKILL.md`:
- Around line 9-12: The skill identifiers in the SKILL.md front-matter (the
entries writing-functional-docs, api-field-descriptions, and
documentation-structure) are missing the required namespace; update each to the
canonical invocation format by prefixing with ring: (i.e.,
ring:writing-functional-docs, ring:api-field-descriptions,
ring:documentation-structure) so the complementary/related skill list uses
ring-prefixed identifiers consistent with the skills invocation guidelines.
In `@tw-team/skills/writing-functional-docs/SKILL.md`:
- Around line 9-19: The referenced skills in the SKILL frontmatter are not using
the required ring: invocation format; update the complementary list (values:
writing-api-docs, voice-and-tone, documentation-structure), the sequence.before
entry (documentation-review), and all skill names inside skip_when
(writing-api-docs, documentation-review, dev-team agents) to use the canonical
ring:skill-name form (e.g., ring:writing-api-docs, ring:voice-and-tone,
ring:documentation-structure, ring:documentation-review, ring:dev-team-agents)
so the SKILL.md frontmatter conforms to the required skill invocation format.
---
Outside diff comments:
In `@default/skills/requesting-code-review/SKILL.md`:
- Around line 7-24: This file's frontmatter uses top-level fields (trigger,
NOT_skip_when, sequence, related); update it to match the other skills by moving
these fields under a top-level metadata block and rename NOT_skip_when to
skip_when to match the standard convention—ensure the metadata block contains
trigger, skip_when, sequence, and related with the same values and formatting as
the other SKILL.md examples so parsers/validators see a consistent schema.
In `@dev-team/skills/dev-devops/SKILL.md`:
- Line 20: Replace the malformed skill reference token "ring:dev-ring:sre" with
the correct unified namespace "ring:dev-sre" in the SKILL content (update the
literal string in the document where it appears); also search the repo for any
other occurrences of the same malformed token (notably the similar entry in the
unit-testing SKILL file) and fix them to "ring:dev-sre" so all skill references
use the unified namespace format.
In `@dev-team/skills/dev-frontend-performance/SKILL.md`:
- Around line 3-28: Rename the top-level title field to name and keep
description at top level; move the remaining top-level fields (category, tier,
when_to_use, trigger, NOT_skip_when, sequence, related) into a single metadata:
mapping so the file matches other SKILL.md files; ensure keys and values are
preserved exactly (e.g., NOT_skip_when stays as-is) and that sequence retains
its after/before arrays and related.complementary array under metadata.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 5f047232-97f5-433e-9684-9575ce67f9fd
📒 Files selected for processing (86)
default/skills/brainstorming/SKILL.mddefault/skills/drawing-diagrams/SKILL.mddefault/skills/executing-plans/SKILL.mddefault/skills/exploring-codebase/SKILL.mddefault/skills/gandalf-webhook/SKILL.mddefault/skills/git-commit/SKILL.mddefault/skills/interviewing-user/SKILL.mddefault/skills/linting-codebase/SKILL.mddefault/skills/production-readiness-audit/SKILL.mddefault/skills/release-guide-info/SKILL.mddefault/skills/requesting-code-review/SKILL.mddefault/skills/session-handoff/SKILL.mddefault/skills/systematic-debugging/SKILL.mddefault/skills/test-driven-development/SKILL.mddefault/skills/testing-agents-with-subagents/SKILL.mddefault/skills/testing-anti-patterns/SKILL.mddefault/skills/testing-skills-with-subagents/SKILL.mddefault/skills/using-git-worktrees/SKILL.mddefault/skills/using-ring/SKILL.mddefault/skills/visual-explainer/SKILL.mddefault/skills/writing-plans/SKILL.mddefault/skills/writing-skills/SKILL.mddev-team/skills/cycle-management/SKILL.mddev-team/skills/dev-chaos-testing/SKILL.mddev-team/skills/dev-cycle-frontend/SKILL.mddev-team/skills/dev-cycle/SKILL.mddev-team/skills/dev-delivery-verification/SKILL.mddev-team/skills/dev-devops/SKILL.mddev-team/skills/dev-feedback-loop/SKILL.mddev-team/skills/dev-frontend-accessibility/SKILL.mddev-team/skills/dev-frontend-e2e/SKILL.mddev-team/skills/dev-frontend-performance/SKILL.mddev-team/skills/dev-frontend-visual/SKILL.mddev-team/skills/dev-fuzz-testing/SKILL.mddev-team/skills/dev-goroutine-leak-testing/SKILL.mddev-team/skills/dev-helm/SKILL.mddev-team/skills/dev-implementation/SKILL.mddev-team/skills/dev-integration-testing/SKILL.mddev-team/skills/dev-migrate-v4/SKILL.mddev-team/skills/dev-multi-tenant/SKILL.mddev-team/skills/dev-property-testing/SKILL.mddev-team/skills/dev-refactor-frontend/SKILL.mddev-team/skills/dev-refactor/SKILL.mddev-team/skills/dev-service-discovery/SKILL.mddev-team/skills/dev-sre/SKILL.mddev-team/skills/dev-unit-testing/SKILL.mddev-team/skills/dev-validation/SKILL.mddev-team/skills/using-dev-team/SKILL.mdfinops-team/skills/infrastructure-cost-estimation/SKILL.mdfinops-team/skills/regulatory-templates-gate1/SKILL.mdfinops-team/skills/regulatory-templates-gate2/SKILL.mdfinops-team/skills/regulatory-templates-gate3/SKILL.mdfinops-team/skills/regulatory-templates-setup/SKILL.mdfinops-team/skills/regulatory-templates/SKILL.mdfinops-team/skills/using-finops-team/SKILL.mdpm-team/skills/delivery-status-tracking/SKILL.mdpm-team/skills/pre-dev-api-design/SKILL.mdpm-team/skills/pre-dev-data-model/SKILL.mdpm-team/skills/pre-dev-delivery-planning/SKILL.mdpm-team/skills/pre-dev-dependency-map/SKILL.mdpm-team/skills/pre-dev-design-validation/SKILL.mdpm-team/skills/pre-dev-feature-map/SKILL.mdpm-team/skills/pre-dev-feature/SKILL.mdpm-team/skills/pre-dev-full/SKILL.mdpm-team/skills/pre-dev-prd-creation/SKILL.mdpm-team/skills/pre-dev-research/SKILL.mdpm-team/skills/pre-dev-subtask-creation/SKILL.mdpm-team/skills/pre-dev-task-breakdown/SKILL.mdpm-team/skills/pre-dev-trd-creation/SKILL.mdpm-team/skills/using-pm-team/SKILL.mdpmo-team/skills/delivery-reporting/SKILL.mdpmo-team/skills/dependency-mapping/SKILL.mdpmo-team/skills/executive-reporting/SKILL.mdpmo-team/skills/pmo-retrospective/SKILL.mdpmo-team/skills/portfolio-planning/SKILL.mdpmo-team/skills/project-health-check/SKILL.mdpmo-team/skills/resource-allocation/SKILL.mdpmo-team/skills/risk-management/SKILL.mdpmo-team/skills/using-pmo-team/SKILL.mdtw-team/skills/api-field-descriptions/SKILL.mdtw-team/skills/documentation-review/SKILL.mdtw-team/skills/documentation-structure/SKILL.mdtw-team/skills/using-tw-team/SKILL.mdtw-team/skills/voice-and-tone/SKILL.mdtw-team/skills/writing-api-docs/SKILL.mdtw-team/skills/writing-functional-docs/SKILL.md
| related: | ||
| similar: | ||
| - dispatching-parallel-agents | ||
| - systematic-debugging | ||
| sequence_after: | ||
| - brainstorming | ||
| sequence_before: | ||
| - ring:writing-plans | ||
| - ring:executing-plans |
There was a problem hiding this comment.
Move sequence keys out of related to a dedicated metadata.sequence block.
sequence_before/sequence_after are currently nested under metadata.related, which conflates two different concerns and can break schema-based consumers.
Suggested fix
metadata:
related:
similar:
- dispatching-parallel-agents
- systematic-debugging
- sequence_after:
- - brainstorming
- sequence_before:
- - ring:writing-plans
- - ring:executing-plans
+ sequence:
+ after:
+ - ring:brainstorming
+ before:
+ - ring:writing-plans
+ - ring:executing-plansAs per coding guidelines, "Skill definitions MUST include YAML frontmatter and use proper skill invocation format (ring:skill-name) in documentation and examples".
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| related: | |
| similar: | |
| - dispatching-parallel-agents | |
| - systematic-debugging | |
| sequence_after: | |
| - brainstorming | |
| sequence_before: | |
| - ring:writing-plans | |
| - ring:executing-plans | |
| related: | |
| similar: | |
| - dispatching-parallel-agents | |
| - systematic-debugging | |
| sequence: | |
| after: | |
| - ring:brainstorming | |
| before: | |
| - ring:writing-plans | |
| - ring:executing-plans |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@default/skills/exploring-codebase/SKILL.md` around lines 8 - 16, The
frontmatter wrongly places sequence_before and sequence_after under related;
create a new metadata.sequence mapping at the same top-level as related and move
sequence_before and sequence_after into it (e.g., metadata.sequence: {
sequence_before: [...], sequence_after: [...] }), remove them from related, and
ensure related.only contains the similar/related keys; also verify the SKILL.md
YAML frontmatter follows the required format and that all sequence entries use
the ring:skill-name invocation format (e.g., ring:writing-plans).
| similar: | ||
| - brainstorming | ||
| uses: | ||
| - doubt-triggered-questions | ||
| sequence: | ||
| before: | ||
| - brainstorming | ||
| - ring:writing-plans |
There was a problem hiding this comment.
Normalize referenced skill names to ring: format.
This block mixes namespaced and non-namespaced skill identifiers. Use ring:... consistently in related and sequence references.
Suggested fix
related:
similar:
- - brainstorming
+ - ring:brainstorming
uses:
- - doubt-triggered-questions
+ - ring:doubt-triggered-questions
sequence:
before:
- - brainstorming
+ - ring:brainstorming
- ring:writing-plansAs per coding guidelines, "Skill definitions MUST include YAML frontmatter and use proper skill invocation format (ring:skill-name) in documentation and examples".
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| similar: | |
| - brainstorming | |
| uses: | |
| - doubt-triggered-questions | |
| sequence: | |
| before: | |
| - brainstorming | |
| - ring:writing-plans | |
| similar: | |
| - ring:brainstorming | |
| uses: | |
| - ring:doubt-triggered-questions | |
| sequence: | |
| before: | |
| - ring:brainstorming | |
| - ring:writing-plans |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@default/skills/interviewing-user/SKILL.md` around lines 8 - 15, The YAML
block mixes plain skill names with namespaced ones; update all referenced skill
identifiers so they use the ring: namespace consistently (e.g., change similar:
- brainstorming to similar: - ring:brainstorming, uses: -
doubt-triggered-questions to uses: - ring:doubt-triggered-questions, and in
sequence.before list replace brainstorming with ring:brainstorming and ensure
ring:writing-plans stays namespaced) so all entries under similar, uses and
sequence use the ring:skill-name format.
| metadata: | ||
| related: | ||
| complementary: | ||
| - root-cause-tracing |
There was a problem hiding this comment.
Use canonical skill invocation format in related metadata.
Line 9 uses a bare skill name (root-cause-tracing) instead of the required ring:skill-name format.
Suggested fix
related:
complementary:
- - root-cause-tracing
+ - ring:root-cause-tracingAs per coding guidelines, */skills/*/SKILL.md definitions must “use proper skill invocation format (ring:skill-name) in documentation and examples.”
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - root-cause-tracing | |
| related: | |
| complementary: | |
| - ring:root-cause-tracing |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@default/skills/systematic-debugging/SKILL.md` at line 9, Update the skill
invocation in SKILL.md: replace the bare name "root-cause-tracing" with the
canonical ring-prefixed form "ring:root-cause-tracing" (ensure any occurrences
in the file use ring:root-cause-tracing so examples/metadata follow the required
ring:skill-name format).
| related: | ||
| complementary: | ||
| - testing-anti-patterns | ||
| - verification-before-completion |
There was a problem hiding this comment.
Use canonical ring: references in related skill links.
Lines 52-53 use bare skill names while other references in this file use ring:.... Keep one canonical format to avoid ambiguous resolution.
Suggested fix
related:
complementary:
- - testing-anti-patterns
- - verification-before-completion
+ - ring:testing-anti-patterns
+ - ring:verification-before-completionAs per coding guidelines, */skills/*/SKILL.md: “Skill definitions MUST include YAML frontmatter and use proper skill invocation format (ring:skill-name) in documentation and examples”.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| related: | |
| complementary: | |
| - testing-anti-patterns | |
| - verification-before-completion | |
| related: | |
| complementary: | |
| - ring:testing-anti-patterns | |
| - ring:verification-before-completion |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@default/skills/test-driven-development/SKILL.md` around lines 50 - 53, The
YAML frontmatter under the related->complementary list uses bare skill names
("testing-anti-patterns", "verification-before-completion") instead of the
canonical ring:... format; update those entries to use the canonical invocation
(e.g., "ring:testing-anti-patterns" and "ring:verification-before-completion")
in the related.complementary array so the skill references are consistent with
other `ring:...` links and comply with the SKILL.md guidelines.
| metadata: | ||
| related: | ||
| complementary: | ||
| - testing-skills-with-subagents |
There was a problem hiding this comment.
Use canonical skill invocation format in related references.
testing-skills-with-subagents should use the ring: namespace for consistency and resolver compatibility.
Suggested fix
- - testing-skills-with-subagents
+ - ring:testing-skills-with-subagentsAs per coding guidelines, "Skill definitions MUST include YAML frontmatter and use proper skill invocation format (ring:skill-name) in documentation and examples".
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - testing-skills-with-subagents | |
| - ring:testing-skills-with-subagents |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@default/skills/writing-skills/SKILL.md` at line 9, Update the reference
"testing-skills-with-subagents" in SKILL.md to the canonical invocation
"ring:testing-skills-with-subagents" and ensure the file includes the required
YAML frontmatter for the skill definition; locate the occurrence of
testing-skills-with-subagents in SKILL.md and replace it with
ring:testing-skills-with-subagents, and if YAML frontmatter (--- ... ---) is
missing at the top of SKILL.md, add the appropriate frontmatter fields per
project guidelines.
| - voice-and-tone | ||
| - documentation-structure | ||
| sequence: | ||
| after: | ||
| - writing-functional-docs | ||
| - writing-api-docs | ||
| skip_when: | | ||
| - Writing new documentation → use writing-functional-docs or writing-api-docs | ||
| - Only checking voice → use voice-and-tone |
There was a problem hiding this comment.
Normalize referenced skill names to ring:skill-name.
Line 9, Line 10, Line 13, Line 14, Line 16, and Line 17 should use the canonical invocation prefix for consistency and tooling compatibility.
Proposed fix
related:
complementary:
- - voice-and-tone
- - documentation-structure
+ - ring:voice-and-tone
+ - ring:documentation-structure
sequence:
after:
- - writing-functional-docs
- - writing-api-docs
+ - ring:writing-functional-docs
+ - ring:writing-api-docs
skip_when: |
- - Writing new documentation → use writing-functional-docs or writing-api-docs
- - Only checking voice → use voice-and-tone
+ - Writing new documentation → use ring:writing-functional-docs or ring:writing-api-docs
+ - Only checking voice → use ring:voice-and-toneAs per coding guidelines, */skills/*/SKILL.md: Skill definitions MUST include YAML frontmatter and use proper skill invocation format (ring:skill-name) in documentation and examples.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - voice-and-tone | |
| - documentation-structure | |
| sequence: | |
| after: | |
| - writing-functional-docs | |
| - writing-api-docs | |
| skip_when: | | |
| - Writing new documentation → use writing-functional-docs or writing-api-docs | |
| - Only checking voice → use voice-and-tone | |
| - ring:voice-and-tone | |
| - ring:documentation-structure | |
| sequence: | |
| after: | |
| - ring:writing-functional-docs | |
| - ring:writing-api-docs | |
| skip_when: | | |
| - Writing new documentation → use ring:writing-functional-docs or ring:writing-api-docs | |
| - Only checking voice → use ring:voice-and-tone |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@tw-team/skills/documentation-review/SKILL.md` around lines 9 - 17, The
referenced skill names in the YAML (items voice-and-tone,
documentation-structure, writing-functional-docs, writing-api-docs and the
entries under sequence.after and skip_when) must be canonicalized to the ring:
prefix; update each plain name to ring:voice-and-tone,
ring:documentation-structure, ring:writing-functional-docs,
ring:writing-api-docs (including in the sequence.after list and in the skip_when
bullet lines) so the SKILL.md uses the proper invocation format required by
skill tooling and YAML frontmatter conventions.
| - writing-functional-docs | ||
| - writing-api-docs | ||
| skip_when: | | ||
| - Writing content → use writing-functional-docs or writing-api-docs | ||
| - Checking voice → use voice-and-tone |
There was a problem hiding this comment.
Fix skill reference namespace in metadata values.
Line 9, Line 10, Line 12, and Line 13 should use ring:skill-name instead of bare names to keep invocation format consistent.
Proposed fix
related:
complementary:
- - writing-functional-docs
- - writing-api-docs
+ - ring:writing-functional-docs
+ - ring:writing-api-docs
skip_when: |
- - Writing content → use writing-functional-docs or writing-api-docs
- - Checking voice → use voice-and-tone
+ - Writing content → use ring:writing-functional-docs or ring:writing-api-docs
+ - Checking voice → use ring:voice-and-toneAs per coding guidelines, */skills/*/SKILL.md: Skill definitions MUST include YAML frontmatter and use proper skill invocation format (ring:skill-name) in documentation and examples.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@tw-team/skills/documentation-structure/SKILL.md` around lines 9 - 13, The
metadata values in SKILL.md use bare skill names; update the entries
"writing-functional-docs", "writing-api-docs" and the two examples under
skip_when that reference "writing-functional-docs" and "voice-and-tone" to use
the invocation namespace format (ring:skill-name) instead of the bare names so
they read e.g. ring:writing-functional-docs, ring:writing-api-docs and
ring:voice-and-tone; ensure all four places match the ring:skill-name pattern in
the YAML frontmatter and examples (look for the tokens writing-functional-docs,
writing-api-docs, and voice-and-tone to replace).
| complementary: | ||
| - writing-functional-docs | ||
| - writing-api-docs | ||
| - documentation-review |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify the pattern across all SKILL.md files for consistency
rg -B2 -A5 "metadata:" -g "**/SKILL.md" | rg -A3 "complementary:" | head -80Repository: LerianStudio/ring
Length of output: 4282
🏁 Script executed:
#!/bin/bash
# Check if there's documentation explaining ring: prefix usage
find . -name "*.md" -type f | xargs grep -l "ring:" | xargs grep -B2 -A2 "ring:" | head -100Repository: LerianStudio/ring
Length of output: 7697
🏁 Script executed:
#!/bin/bash
# Check how complementary references are used in different sections
# Look at full context of complementary blocks across teams to understand pattern
echo "=== tw-team complementary pattern ==="
cat tw-team/skills/voice-and-tone/SKILL.md | head -20
echo -e "\n=== pm-team complementary pattern ==="
cat pm-team/skills/pre-dev-research/SKILL.md | head -20
echo -e "\n=== Check if metadata complementary vs content references differ ==="
grep -A10 "complementary:" pmo-team/skills/risk-management/SKILL.mdRepository: LerianStudio/ring
Length of output: 1890
🏁 Script executed:
#!/bin/bash
# Check skip_when content to see if ring: is used there
echo "=== skip_when patterns ==="
rg "skip_when" -A5 -g "**/SKILL.md" --max-count 20Repository: LerianStudio/ring
Length of output: 43000
Add ring: prefix to skill references in metadata.related.complementary.
Lines 8-11 reference skills without the ring: prefix (writing-functional-docs, writing-api-docs, documentation-review), but pm-team consistently uses ring: prefix in metadata.related.complementary (e.g., ring:pre-dev-prd-creation, ring:pre-dev-trd-creation). Per the coding guideline on proper skill invocation format, update these to:
complementary:
- ring:writing-functional-docs
- ring:writing-api-docs
- ring:documentation-review
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@tw-team/skills/voice-and-tone/SKILL.md` around lines 8 - 11, Update the
metadata.related.complementary entries to use the required ring: prefix so the
skill references match the team's invocation format; specifically change the
list items under complementary (currently "writing-functional-docs",
"writing-api-docs", "documentation-review") to "ring:writing-functional-docs",
"ring:writing-api-docs", and "ring:documentation-review" so the complementary
array in SKILL.md uses the same ring:<skill> convention as other entries.
| - writing-functional-docs | ||
| complementary: | ||
| - api-field-descriptions | ||
| - documentation-structure |
There was a problem hiding this comment.
Prefix related skill identifiers with ring:.
Lines 9, 11, and 12 use non-namespaced skill identifiers; switch to canonical invocation format.
Suggested fix
related:
similar:
- - writing-functional-docs
+ - ring:writing-functional-docs
complementary:
- - api-field-descriptions
- - documentation-structure
+ - ring:api-field-descriptions
+ - ring:documentation-structureAs per coding guidelines, */skills/*/SKILL.md definitions must “use proper skill invocation format (ring:skill-name) in documentation and examples.”
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - writing-functional-docs | |
| complementary: | |
| - api-field-descriptions | |
| - documentation-structure | |
| related: | |
| similar: | |
| - ring:writing-functional-docs | |
| complementary: | |
| - ring:api-field-descriptions | |
| - ring:documentation-structure |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@tw-team/skills/writing-api-docs/SKILL.md` around lines 9 - 12, The skill
identifiers in the SKILL.md front-matter (the entries writing-functional-docs,
api-field-descriptions, and documentation-structure) are missing the required
namespace; update each to the canonical invocation format by prefixing with
ring: (i.e., ring:writing-functional-docs, ring:api-field-descriptions,
ring:documentation-structure) so the complementary/related skill list uses
ring-prefixed identifiers consistent with the skills invocation guidelines.
| - writing-api-docs | ||
| complementary: | ||
| - voice-and-tone | ||
| - documentation-structure | ||
| sequence: | ||
| before: | ||
| - documentation-review | ||
| skip_when: | | ||
| - Writing API reference → use writing-api-docs | ||
| - Reviewing documentation → use documentation-review | ||
| - Writing code → use dev-team agents |
There was a problem hiding this comment.
Use ring: invocation format for referenced skills.
Line 9, Line 11, Line 12, Line 15, Line 17, and Line 18 currently reference skills without the required ring:skill-name format, which makes cross-skill references inconsistent.
Proposed fix
metadata:
related:
similar:
- - writing-api-docs
+ - ring:writing-api-docs
complementary:
- - voice-and-tone
- - documentation-structure
+ - ring:voice-and-tone
+ - ring:documentation-structure
sequence:
before:
- - documentation-review
+ - ring:documentation-review
skip_when: |
- - Writing API reference → use writing-api-docs
- - Reviewing documentation → use documentation-review
+ - Writing API reference → use ring:writing-api-docs
+ - Reviewing documentation → use ring:documentation-review
- Writing code → use dev-team agentsAs per coding guidelines, */skills/*/SKILL.md: Skill definitions MUST include YAML frontmatter and use proper skill invocation format (ring:skill-name) in documentation and examples.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - writing-api-docs | |
| complementary: | |
| - voice-and-tone | |
| - documentation-structure | |
| sequence: | |
| before: | |
| - documentation-review | |
| skip_when: | | |
| - Writing API reference → use writing-api-docs | |
| - Reviewing documentation → use documentation-review | |
| - Writing code → use dev-team agents | |
| metadata: | |
| related: | |
| similar: | |
| - ring:writing-api-docs | |
| complementary: | |
| - ring:voice-and-tone | |
| - ring:documentation-structure | |
| sequence: | |
| before: | |
| - ring:documentation-review | |
| skip_when: | | |
| - Writing API reference → use ring:writing-api-docs | |
| - Reviewing documentation → use ring:documentation-review | |
| - Writing code → use dev-team agents |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@tw-team/skills/writing-functional-docs/SKILL.md` around lines 9 - 19, The
referenced skills in the SKILL frontmatter are not using the required ring:
invocation format; update the complementary list (values: writing-api-docs,
voice-and-tone, documentation-structure), the sequence.before entry
(documentation-review), and all skill names inside skip_when (writing-api-docs,
documentation-review, dev-team agents) to use the canonical ring:skill-name form
(e.g., ring:writing-api-docs, ring:voice-and-tone, ring:documentation-structure,
ring:documentation-review, ring:dev-team-agents) so the SKILL.md frontmatter
conforms to the required skill invocation format.
Hullo @jeffersonrodrigues92 👋
I ran your skills through
tessl skill reviewat work and found some targeted improvements. All 86 skills across all 6 plugins were failing deterministic validation (scoring 0%) due to frontmatter issues. The fixes bring every skill to a real score — here are the top 10 by improvement:.. and in text form:
Average across all 86 skills: 0% → 53% (+53%)
What changed
Three frontmatter fixes applied across all skills:
namefield: Removedring:prefix (e.g.ring:brainstorming→brainstorming). The colon character was causing thename_fieldvalidation to fail, which blocked the LLM judge from running entirely — every skill scored 0% as a result.allowed-toolsfield: Converted from YAML list format to comma-separated string in 7 skills (e.g.gandalf-webhook,git-commit,session-handoff,cycle-management,pre-dev-feature,pre-dev-full). The validator expects a string, not an array.Unknown frontmatter keys: Moved non-standard keys (
trigger,skip_when,sequence,related,user_invocable,title,category,tier, etc.) under ametadataobject in 73 skills. This clears thefrontmatter_unknown_keyswarning while preserving all the original data.No body content was changed in any skill — these are purely frontmatter/metadata fixes.
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 🙏