一键导入
create-specification
Write a self-contained specification for a software project or feature. Target self-hosted web apps, static sites, CLIs, or mixed systems.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Write a self-contained specification for a software project or feature. Target self-hosted web apps, static sites, CLIs, or mixed systems.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Design or review relational database schemas and related Python persistence models for self-hosted CRUD applications on PostgreSQL or CloudNativePG. Use this whenever the user mentions tables, models, SQLAlchemy, SQLModel, Alembic, Pydantic, entities, relationships, constraints, indexes, soft deletes, audit logs, multitenancy, or schema migrations. Use it before creating new CRUD features, endpoints, admin screens, or API models that will need storage, even if the user does not ask for "schema design" explicitly, because early database choices are expensive to reverse.
Review the UI code of self-hosted web apps for usability, accessibility, responsiveness, and implementation quality. Use this whenever the user asks to review a web UI, audit accessibility, check UX, inspect frontend code, or evaluate the design of a static site, server-rendered app, dashboard, admin panel, internal tool, settings page, data table, form flow, or CRUD interface. Use it even when the user does not say "design review" explicitly but is clearly asking whether an app screen, admin surface, or operational workflow is clear, usable, responsive, and production-ready.
Integrate with a running Shot Scraper API instance to request screenshots, poll queued jobs, fetch image responses, inspect queue and URL stats, or delete cached shots. Use this whenever the user mentions shots, shot-scraper-api, screenshot generation over HTTP, `/shot`, `/shot/async`, `/shot/blocking`, `/trigger/shot`, `/job/{job_id}`, or wants to wire another service, script, or app to screenshot endpoints, even if they only describe the workflow and do not name the API.
Build, debug, port, review, and publish Terraria mods with tModLoader. Use this whenever the user mentions Terraria modding, tModLoader, ModItem, ModProjectile, ModNPC, ModSystem, build.txt, Workshop publishing, ExampleMod, Mod.Call, cross-mod compatibility, Build + Reload, Edit and Continue, or hot reload for a Terraria mod, even if they do not explicitly say "tModLoader."
Integrate downstream apps with `hlab-auth` using the supported v1 trust model, and guide least-privilege operational automation around apps, groups, roles, and tokens. Use this whenever the user wants to protect an app or internal tool with `hlab-auth`, Traefik `ForwardAuth`, trusted `X-Hlab-*` headers, reverse-proxy auth, app-local role mapping, homelab SSO around `hlab-auth`, or a narrowly scoped agent credential for app-related changes, even if they do not explicitly ask for an "integration skill." Also use it when the request sounds like OIDC or SAML with `hlab-auth`, so you can classify that expectation early and redirect to the supported proxy-header model or clearly explain the v1 limitation.
Build, refactor, or review command-line interfaces and terminal applications using human-first CLI design. Use this whenever the user mentions a CLI, command, subcommand, flags, options, arguments, help text, shell completion, stdout vs stderr, JSON or plain output, prompts, confirmations, config files, environment variables, exit codes, terminal UX, or a TUI. Prefer this skill for Python CLIs with Typer, for Go CLIs with Cobra or the standard library `flag` package, and for Go terminal UX using Charm tools such as Bubble Tea, Lip Gloss, Huh, and Charm Log. Use it even when the user does not say "CLI" explicitly but is clearly asking for a command-line tool, terminal workflow, or command-driven automation surface.
| name | create-specification |
| description | Write a self-contained specification for a software project or feature. Target self-hosted web apps, static sites, CLIs, or mixed systems. |
| inspiration | https://raw.githubusercontent.com/github/awesome-copilot/refs/heads/main/skills/create-specification/SKILL.md |
Your goal is to create a new specification file for ${input:SpecPurpose}.
Write a specification that a human or another agent can use without needing extra context. The spec must state the problem, the scope, the requirements, the system boundaries, and the acceptance criteria in clear Markdown.
This skill is for software projects in one or more of these categories:
Do not assume a specific stack unless the repository already makes it clear. In particular, do not assume .NET, GitHub Actions, a managed cloud platform, or any named test framework unless the project already uses them.
/spec/.Include the sections that matter for the project type you identify.
Cover:
Cover:
Cover:
Cover:
Save the specification in /spec/.
Use this filename pattern:
spec-[purpose]-[topic].md
Where [purpose] is one of:
architecturedesignprocesstooldatainfrastructureschemaUse lowercase letters, numbers, and hyphens only.
Use this template. Remove bracketed guidance from the final file. Omit optional bullets that do not apply, but keep the section headings.
---
title: [Short, specific title]
version: [Optional version or date tag]
date_created: [YYYY-MM-DD]
last_updated: [Optional YYYY-MM-DD]
owner: [Optional team or person]
tags: [Optional list such as architecture, cli, web-app, static-site, self-hosted]
---
# Summary
[One short paragraph that states what this spec covers and why it exists.]
## 1. Purpose & Scope
- **Purpose**: [What this spec defines]
- **In Scope**: [What is included]
- **Out of Scope**: [What is excluded]
- **Audience**: [Who should use this spec]
## 2. Product Context
- **Project Type**: [Self-hosted web app, static site, CLI, or hybrid]
- **Primary Users**: [End users, operators, developers, admins]
- **Primary Use Cases**: [Short list]
- **Operating Environment**: [Browser, server, terminal, local machine, container, VPS, on-prem, etc.]
## 3. Definitions
[Define acronyms, roles, domain terms, and internal shorthand used in this spec.]
## 4. Requirements
List specific, testable requirements.
- **REQ-001**: [Functional requirement]
- **REQ-002**: [Functional requirement]
- **SEC-001**: [Security or privacy requirement]
- **OPS-001**: [Operational requirement]
- **UX-001**: [User experience or interface requirement]
## 5. Constraints & Non-Goals
- **CON-001**: [Constraint such as runtime, hosting, compatibility, or legal limit]
- **NOG-001**: [Explicit non-goal]
## 6. Architecture / Design Notes
[Describe the proposed system shape at the level needed to implement correctly. Focus on components, boundaries, data flow, and responsibility split.]
### Components
| Component | Responsibility | Notes |
| --- | --- | --- |
| [Name] | [What it owns] | [Important detail] |
### Data Flow
[Describe the main request, command, build, or publishing flows.]
## 7. Interfaces & Data Contracts
[Document APIs, command syntax, file formats, events, or integration contracts. Use only the parts that apply.]
### Example API Contract
```json
{
"example": true
}
tool-name command --flag value
[Document runtime configuration, secrets handling, deployment assumptions, observability, backup, restore, and maintenance expectations as needed.]
Use testable statements.
[State how compliance with this spec will be checked. Mention the relevant test levels without assuming a specific framework.]
[List external systems, protocols, services, and platform assumptions that materially affect the design. Focus on required capabilities, not package names, unless a package is itself a hard constraint.]
[Add short examples that remove ambiguity. Include representative input, output, page behavior, command usage, or deployment shape.]
## Completion Standard
Before you finish, verify that the spec:
- Matches the project type and does not include irrelevant sections from another type
- States clear requirements and explicit non-goals
- Defines interfaces and operational expectations at the right level
- Includes edge cases, failure behavior, and acceptance criteria
- Can be understood on its own by a new contributor or another agent