跳到正文
cccskills
免费在 GitHub 公开

template-validation

Validates custom dotnet new templates for correctness before publishing. Catches missing fields, parameter bugs, shortName conflicts, constraint issues, and common authoring mistakes that cause templates to fail silently. USE FOR: checking template.json files for errors before publishing or testing, diagnosing why a template doesn't appear after installation, reviewing template parameter definitions for type mismatches and missing defaults, finding shortName conflicts with dotnet CLI commands, validating post-action and constraint configuration. DO NOT USE FOR: finding or using existing templates (use template-discovery), creating projects from templates (use template-instantiation), creating templates from existing projects (use template-authoring).

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md7.4 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Template Validation

This skill helps validate custom dotnet new templates for correctness before publishing. It encodes the validation rules that catch common authoring mistakes — issues that cause templates to silently fail, produce broken projects, or not appear in dotnet new list.

When to Use

  • User asks to check or validate a template.json file
  • User reports "my template doesn't show up after installing"
  • User wants to review a template before packaging and publishing to NuGet
  • User encounters unexpected behavior from a custom template

When Not to Use

  • User wants to find or use existing templates — route to template-discovery
  • User wants to create a project — route to template-instantiation
  • User wants to create a template from an existing project — route to template-authoring

Inputs

InputRequiredDescription
template.json pathYesPath to the template.json file or the template directory containing .template.config/template.json

Validation Rules

When reviewing a template.json, check ALL of the following categories systematically. Report every finding as an error, warning, or suggestion.

1. Required Fields

FieldSeverityRule
identityERRORMust be present and non-empty
nameERRORMust be present and non-empty
shortNameERRORMust be present and non-empty
sourceNameWARNINGWithout it, --name won't customize the generated project name
authorWARNINGImproves template discoverability
descriptionSUGGESTIONHelps users understand what the template creates
classificationsSUGGESTIONImproves search and categorization (e.g., ["Web", "API"])
defaultNameSUGGESTIONProvides a fallback project name when --name is not specified

2. Identity Format

  • ERROR if identity contains spaces — use dots or dashes (e.g., MyCompany.WebApi.CSharp)
  • WARNING if identity has no namespace separator (. or -) — use reverse-DNS format

3. ShortName Conflicts

The following short names conflict with dotnet CLI commands and will cause problems:

new, build, run, test, publish, restore, clean, pack, add, remove, list, nuget, tool, sln, help

  • ERROR if shortName matches any reserved name (case-insensitive)
  • WARNING if shortName is only 1 character — too short for discoverability
  • Note: shortName can be a string or an array of strings; check all values

4. Symbol Validation

For each symbol in the symbols object:

  • ERROR if a symbol is missing the type field
  • For type: "parameter":
    • WARNING if no datatype specified (defaults to string)
    • SUGGESTION if no description (improves --help output)
    • If datatype: "choice":
      • ERROR if no choices defined
      • ERROR if choices is empty
      • ERROR if defaultValue is not in the choices list
      • WARNING if optional (not isRequired) and no defaultValue — users get unexpected behavior
    • If datatype: "bool":
      • ERROR if defaultValue is not a valid boolean
    • If datatype: "int":
      • ERROR if defaultValue is not a valid integer
    • Valid datatypes: string, bool, choice, int, float, hex, text
    • ERROR if datatype is not in the valid list
  • For type: "computed":
    • ERROR if missing value expression
  • For type: "generated":
    • ERROR if missing generator field
    • Valid generators: casing, coalesce, constant, port, guid, now, random, regex, regexMatch, switch, join

Parameter prefix collisions: WARNING if any parameter name is a prefix of another parameter name (e.g., Auth and AuthMode) — this creates ambiguous parsing in expression contexts.

5. Sources Validation

For source modifier conditions:

  • WARNING if a condition string doesn't contain parentheses around symbol names — expected format is (symbolName), not bare symbolName

6. Post-Action Validation

For each post-action:

  • ERROR if missing actionId
  • WARNING if missing description — this text is shown to users when the action requires manual steps
  • SUGGESTION if missing manualInstructions — these are shown when the action can't run automatically (e.g., in an IDE)

7. Constraint Validation

For each constraint:

  • ERROR if missing type field
  • WARNING if missing args — most constraint types require arguments

8. Tags Validation

  • SUGGESTION if no language tag — adding tags.language (e.g., "C#") improves filtering in dotnet new list --language
  • SUGGESTION if no type tag — adding tags.type (e.g., "project" or "item") improves categorization

Workflow

Step 1: Locate the template.json

The file can be at:

  • Direct path: path/to/template.json
  • In a template directory: path/to/.template.config/template.json
  • In a .template.config directory: path/.template.config/template.json

Step 2: Parse and validate

Read the JSON. If it's malformed, report the JSON parse error with line number.

Run all 8 validation categories above. Collect errors, warnings, and suggestions separately.

Step 3: Report results

Present findings organized by severity:

  1. Errors (must fix) — template will not work correctly
  2. Warnings (should fix) — template may cause confusion or limited functionality
  3. Suggestions (nice to have) — improvements for discoverability and user experience

Include the total: "X error(s), Y warning(s), Z suggestion(s)"

Common Pitfalls

PitfallImpact
ShortName = "test" or "build"Template can never be created — conflicts with CLI
Missing sourceName--name MyProject doesn't rename anything in the generated files
Choice parameter without defaultValueConfusing user experience on optional choice params
Invalid datatype valueTemplate engine ignores the symbol, causing silent failures
Computed symbol without valueTemplate engine throws at instantiation time
Parameter prefix collision (Auth vs AuthMode)Ambiguous expression evaluation
Source condition without parenthesesCondition may not evaluate correctly

More Info

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

12-agent academic paper writing pipeline. 10 modes (full/plan/outline/revision/revision-coach/abstract/lit-review/format-convert/citation-check/disclosure). 6 paper types, 5 citation formats, bilingual abstracts, LaTeX/DOCX-via-Pandoc/PDF output. Style Calibration + Writing Quality Check + Anti-Patterns with IRON RULE markers. Triggers: write paper, academic paper, guide my paper, parse reviews, AI disclosure, 寫論文, 學術論文, 引導我寫論文, 審查意見.

中文简介正在准备中。当前显示原文说明。

bouclem/skills72026年5月31日 更新

Multi-perspective academic paper review with dynamic reviewer personas. Simulates 5 independent reviewers (EIC + 3 peer reviewers + Devil's Advocate) with field-specific expertise. Supports full review, re-review (verification), quick assessment, methodology focus, Socratic guided, and calibration modes. Triggers on: review paper, peer review, manuscript review, referee report, review my paper, critique paper, simulate review, editorial review, calibrate reviewer, reviewer calibration, measure reviewer accuracy.

中文简介正在准备中。当前显示原文说明。

bouclem/skills72026年5月31日 更新

Orchestrator for the full academic research pipeline: research -> write -> integrity check -> review -> revise -> re-review -> re-revise -> final integrity check -> finalize. Coordinates deep-research, academic-paper, and academic-paper-reviewer into a seamless 10-stage workflow with mandatory integrity verification, two-stage peer review, and reproducible quality gates. Triggers on: academic pipeline, research to paper, full paper workflow, paper pipeline, end-to-end paper, research-to-publication, complete paper workflow.

中文简介正在准备中。当前显示原文说明。

bouclem/skills72026年5月31日 更新

Create, iterate, and scale paid ad creative for Google Ads, Meta, LinkedIn, TikTok, and similar platforms. Use when generating headlines, descriptions, primary text, or large sets of ad variations for testing and performance optimization.

中文简介正在准备中。当前显示原文说明。

bouclem/skills72026年5月31日 更新

This skill should be used when the user asks to "implement LLM-as-judge", "compare model outputs", "create evaluation rubrics", "mitigate evaluation bias", or mentions direct scoring, pairwise comparison, position bias, evaluation pipelines, or automated quality assessment.

中文简介正在准备中。当前显示原文说明。

bouclem/skills72026年5月31日 更新

AI agent development workflow for building autonomous agents, multi-agent systems, and agent orchestration with CrewAI, LangGraph, and custom agents.

中文简介正在准备中。当前显示原文说明。

bouclem/skills72026年5月31日 更新

查看 bouclem 的全部技能

报告此技能的问题