skills/eliteforge-skill-spec/SKILL.md
EliteForge skill authoring specification for creating or modifying eliteforge-* skills. Use when users create a new EliteForge skill, modify an existing EliteForge skill, review skill structure, add or change skill environment variables or output path rules, or need to validate SKILL.md/frontmatter/agents metadata with skill-creator.
npx skillsauth add cloudsen/eliteforge-skills eliteforge-skill-specInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
skill-creator for every new skill and every substantial skill update.skill-creator scripts/init_skill.py workflow unless the skill folder already exists.SKILL.md concise and authoritative. Put mandatory agent behavior in SKILL.md; use references/ only for details loaded on demand.agents/openai.yaml aligned with the final SKILL.md.skill-creator validator. If the validator is unavailable or fails for reasons unrelated to the current change, report the blocker instead of claiming validation success.Every eliteforge-* skill must declare metadata.version in the YAML frontmatter at the top of SKILL.md.
Minimum required shape:
---
name: eliteforge-example
description: Example description.
metadata:
version: 1.0.0
---
Rules:
metadata.version is mandatory for every new eliteforge-* skill.eliteforge-* skill that does not yet have metadata.version, add it as part of the change.version inside frontmatter metadata; do not move it to agents/openai.yaml, references, or body text.MAJOR.MINOR.PATCH form, such as 1.0.0.version alongside them.Every eliteforge-* skill that uses user-configurable environment variables must declare them in the top-level SKILL.md under a fixed ## Environment Variables section. Do not rely on declarations hidden in references/, assets/, scripts, examples, or agents/openai.yaml.
Use exactly one bullet per variable. The variable name itself must be in SCREAMING_SNAKE_CASE (uppercase, underscores as separators). Do not write ,SCREAMING_SNAKE_CASE as part of the variable name — that notation only indicates the naming convention, not literal text.
- `ELITEFORGE_SKILL_POSEIDON_BASE_URL` [optional] Description.
- `ELITEFORGE_SKILL_QINGTUI_APPID` [required] Description.
- `ELITEFORGE_SKILL_POSEIDON_AUTH_APP_ID` [conditional] Required when `ELITEFORGE_SKILL_POSEIDON_AUTH_TYPE=API_TOKEN`. Description.
Rules:
ELITEFORGE_SKILL_<SKILL_ABBREV>_<PURPOSE> in SCREAMING_SNAKE_CASE, where SKILL_ABBREV is the skill name stripped of the eliteforge- prefix, shortened for readability, then uppercased (e.g. qingtui-cli → QINGTUI, poseidon-cli → POSEIDON, git-feature-oriented-spec → GIT, java-uml → JAVA_UML, agent-doctor → DOCTOR), and PURPOSE is the variable's semantic purpose in SCREAMING_SNAKE_CASE.[optional], [required], or [conditional].[required] means the skill cannot run correctly unless the variable is configured.[conditional] means the variable is required only when the condition in the description is active.`ELITEFORGE_SKILL_POSEIDON_AUTH_TYPE=API_TOKEN`.[optional] variables may affect defaults, output location, agent choice, or command convenience, but must not block readiness.If a skill does not use user-configurable environment variables, omit the section.
Every eliteforge-* skill that writes user-facing artifacts to the workspace must declare the path contract in the top-level SKILL.md under a fixed ## Output Path section. Do not hide output path rules only in references/, assets/, scripts, examples, or agents/openai.yaml.
Use the section to define the primary source artifact path first. For example:
## Output Path
Resolve the Typst source path in this order:
1. explicit user-provided path for the current task
2. `ELITEFORGE_SKILL_PRD_OUTPUT_PATH`
3. `<project>/docs/prd.typ`
Rules:
## Environment Variables.eliteforge-agent-doctor is the environment readiness scanner for this contract. It must:
skills/eliteforge-*/SKILL.md files by default## Environment Variables sectionmissing_required, missing_conditional, and optional_unsetmissing_required and active missing_conditional entries as readiness blockersSKILL.mdWhen reviewing a skill change:
metadata.version.SKILL.md, not only in references.## Output Path section.skill-creator validation before final response.testing
Rewrite human-facing prose using Strunk-style rules. Use for docs, README files, technical explanations, PR descriptions, commit messages, error messages, UI copy, reports, and summaries when the user asks to polish, shorten, clarify, de-duplicate, restructure, or normalize tone.
testing
Draft or refine a concise product requirements document from a rough product idea, then write a Typst source file and sibling PDF to a resolved output path.
research
产品经理竞品分析报告生成器。当用户提到竞品分析、竞品调研、竞品对比、竞争对手分析、市场竞争分析、行业竞品研究时触发。也适用于用户要求对比多个产品/平台/公司的功能、商业模式、市场定位等场景。即使用户只是说'帮我分析一下XX和YY'或'XX有哪些竞争对手',只要涉及产品/公司间的对比分析,都应该使用这个 skill。支持任意行业,支持快速分析和深度分析两种模式。
development
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.