brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
lov-skill-creator创建、验证、安装通用 Skill 或 Skill Kit;将旧 slash command、命令目录及半迁移 Skill 升级为可跨宿主使用的能力。Use to create a skill, migrate slash commands, or scaffold a skill kit.
Independent GitHub snapshot · Automated classification · Original documentation governs
name: lov-skill-creator description: > 创建、验证、安装通用 Skill 或 Skill Kit;将旧 slash command、命令目录及半迁移 Skill 升级为可跨宿主使用的能力。Use to create a skill, migrate slash commands, or scaffold a skill kit. license: MIT compatibility: "Python 3.8+ and PyYAML. Git is optional for local source history." depends_on:
Create every Skill as a portable local source directory named {name}-skill,
bind it to the shared user-profile/v1 contract, validate it, and install it
into the user's local agent skills directory as lov-{name}. Remote repositories, catalogs, marketplace packages,
uploads, and live-channel verification belong to lov-skill-publisher.
lov-skill-publisher。<configured local source root>/
└── {name}-skill/
├── SKILL.md
├── README.md
├── CHANGELOG.md
├── LICENSE
├── kit.yaml # Skill Kit only
├── skills/ # embedded modules, Skill Kit only
├── scripts/ # deterministic local CLIs
├── references/ # progressive disclosure
└── assets/ # reusable output assets
├── skill-card.yaml # machine-readable trust/release record
├── skill-card.md # human-readable Skill Card
├── cases/cases.json # real Input → Prompt → Output evidence
└── pricing-card.yaml # value, boundary, and review basis
<agent skills directory>/
└── lov-{name} -> <local source root>/{name}-skill
Key rules:
lov-{name} and uses kebab-case.name, description, license,
compatibility, allowed-tools, depends_on, and metadata.skills.<skill_id>.records.scripts/profile_store.py entrypoint and reported back.lov-branding-consistency in its
top-level depends_on. Preserve source data, quotations, transcripts, legal
text, identifiers, and code unless the user explicitly asks to rewrite them.authored-prose, microcopy, verbatim, or
deterministic-output before scaffolding. Authored prose receives an
authorship-integrity contract; microcopy receives branding review; verbatim
material remains source-faithful; deterministic output is accepted on
correctness and completeness.For raw command files, command directories, archived commands, or partially
migrated Skills, first read Slash command migration.
Inventory the full requested scope, resolve aliases and existing capabilities,
then upgrade each canonical source through the normal workflow below. Use
scripts/migrate_command.py for read-only inventory and isolated preparation.
Do not treat renaming Markdown, removing host switches, or generating a scaffold
as completed migration. A website synchronization request includes the publisher
handoff after validation; keep each item's local and live evidence separate.
Use the request, memory, repository, and supplied examples before asking anything. Ask one question at a time only when a missing answer changes the user-visible outcome. Never ask users to choose technical machinery.
Record these decisions internally:
authored-prose for articles, reports, scripts, letters, and prose where
reasoning and editorial choice are part of the result;microcopy for labels, descriptions, prompts, notices, and short UI text;verbatim for transcripts, quotations, legal text, identifiers, and other
source-faithful material;deterministic-output for retrieval, storage, deployment, diagnostics,
structured data, and binary transformation.--content-class authored-prose or --authored-prose for the first
class. Authored prose and microcopy automatically enable
lov-branding-consistency; authored prose also generates and routes to
references/authorship-integrity.md.Background details, personal names, and competitor observations are context by default. Include them in generated products only when they serve the end user.
Choose automatically and briefly state the result:
Scripts alone do not justify a Kit. Prefer Single when modularity is marginal. For a Kit, list module IDs and named pipeline order before scaffolding.
Before scaffolding, inspect the local Skill source root and installed Skill
catalog for related capabilities, using their routing descriptions and actual
input/output contracts rather than names alone. Record the outcome in
references/skill-composition.md for every generated Skill.
Classify each relevant Skill as one of:
For each proposed handoff, state the concrete artifact or contract, the invocation boundary, and who owns the final acceptance criterion. Do not create an external sibling dependency merely because another Skill is related. If multiple stages are required for one user-visible outcome, embed them as a self-contained Skill Kit; otherwise keep the new Skill standalone and describe optional handoffs explicitly. A no-composition conclusion is valid only after the nearby group was inspected.
Every new Skill receives a skill.yaml declaration for user-profile/v1, even
when its first invocation has no missing configuration. This is the cross-session
connection point for:
The generated contract reads the shared Profile and writes direct user
statements into skills.<skill_id>.records (or the shared user / brand
scope when the value is explicitly global). It uses this precedence:
When the user directly states a value intended for future sessions, run the
generated scripts/profile_store.py record ... --confirm command and report the
canonical saved path. Inferred values stay in the current request context.
Every generated Skill remains portable. Never introduce an author-only or Skill Publisher-only branch; different users supply different profile values.
scripts/ as standalone argparse CLIs.references/.assets/.skills/ plus kit.yaml.skill.yaml, references/user-profile.md, and the
standalone scripts/profile_store.py reader/writer; this is always generated.skill-card.yaml, skill-card.md,
cases/cases.json, and pricing-card.yaml.references/skill-composition.md, including nearby
Skills inspected, atomic handoffs, overlap decisions, and the final
Single-versus-Kit rationale.references/authorship-integrity.md for
authored-prose, including a source ledger, seven discourse checks, and
explicit non-fabrication boundaries.Python scripts must be standalone files without package scaffolding. Treat CJK text handling as a core requirement for document and content workflows.
Single Skill:
python3 "$SKILL_DIR/scripts/init_skill.py" <name> \
--content-class deterministic-output \
--install-dir "$SKILL_SKILLS_INSTALL_DIR"
For articles, reports, scripts, letters, or other authored prose:
python3 "$SKILL_DIR/scripts/init_skill.py" <name> \
--content-class authored-prose \
--install-dir "$SKILL_SKILLS_INSTALL_DIR"
Use microcopy for short audience-visible text, verbatim when source fidelity
owns acceptance, and deterministic-output for operational or structured
results. --branding-consistency remains an explicit override for unusual
mixed-output Skills.
Skill Kit:
python3 "$SKILL_DIR/scripts/init_skill.py" <name> \
--kit \
--module <module-a> \
--module <module-b> \
--install-dir "$SKILL_SKILLS_INSTALL_DIR"
When embedded stages produce different kinds of output, classify them at the module boundary instead of forcing one rule across the Kit:
python3 "$SKILL_DIR/scripts/init_skill.py" publishing \
--kit --module research --module draft \
--module-content-class draft=authored-prose \
--install-dir "$SKILL_SKILLS_INSTALL_DIR"
Resolve the install directory from an explicit flag, environment variable, shared profile, or the active agent runtime. If it remains unknown, ask once. The initializer must reject an occupied install target instead of overwriting it.
Tool pit:
init_skill.py只把~/.claude/skills/lov-{name}建为指向真源的 绝对 symlink;要符合 Lovstudio 三层链约定,需再补中间层~/.agents/skills/lov-{name}(绝对指向真源)并把 install 改成相对../../.agents/skills/lov-{name},readlink -f才会解析到真源 (2026-08-20, ab88955)。Tool pit: skills 仓库 working tree 常驻大量未提交改动(其他 skill 的 WIP、 子模块指针),
git add -A/git commit -a会把它们卷进提交;提交前先git status,只git add <目标 skill 目录>(2026-08-20, 99c10a0)。Tool pit:
validate_skill.py对 description 按「compact 后文本」计 50–200 字符,中英混排极易超 200;先写短版过校验再展开正文(2026-08-20, 009afde)。Tool pit: 卡片/案例文件里
dict[str, list[str]]这类花括号字面量会被contains_placeholder的\{[^}]+\}误判为占位符;skill-card / cases / pricing 文件一律避免花括号写法(2026-08-20, 009afde)。Tool pit:
~/lovstudio/coding/skills/skill-creator-skill是嵌套独立 git 仓库(自带 .git),父仓库~/lovstudio/coding/skills把它当单个未跟踪目录, 从父仓库git add内部文件不会生效;改 skill-creator 源要在其自身仓库内提交 (2026-08-20, c09a0a1)。
For cloud-split implementations, read references/cloud-split.md completely
before coding. Keep real logic in the configured cloud handler, return minimal
symbolic payloads, render symbols locally, and complete its mandatory preflight
audit. Cloud deployment itself is an external publication step when applicable.
Write the source as instructions for an agent, not as notes about this chat:
description is the routing contract: outcome, inputs, and natural Chinese
plus English triggers in 50–200 characters.## Triggers, activation examples, and adjacent non-trigger conditions.SKILL.md below 500 lines; move detail to relevant references.compatibility and depends_on at the top level. Keep version, tags,
card standard, and package-only runtime metadata under metadata.AskUserQuestion only for unresolved user-facing product decisions.Human-facing README.md includes a matching version badge, local installation,
the Profile contract, examples, dependencies, and quality gate.
python3 scripts/validate_skill.py .
Completion requires:
references/skill-composition.md records the inspected Skill group, atomic
handoffs or overlap decision, and why the result is a Single Skill or Kit.Stop at the local result unless the user also requests publication. When they
do, invoke lov-skill-publisher with the validated source path and requested
channels; do not duplicate publishing logic in this Skill.
Keep the controller lean. Split large theme systems, APIs, examples, platform contracts, and asset catalogs into directly referenced files.
INSTALLATION_GUIDE.md; installation belongs in README.md.__pycache__, compiled Python files, .DS_Store, or unresolved placeholders.For source templates see references/templates.md. For the Skill Card contract
see references/skill-card-standard.md. For the Profile contract see
references/user-profile.md. Historical migrations remain in
references/migration.md.
运行前读取本 Skill 包的 skill.yaml,由宿主提供 skill-runtime/v1 上下文。字段解析顺序为:当前请求、项目上下文、Skill 专属记录、个人 Preferences、品牌/用户 Profile、通用默认值。
skills.<skill_id>.records 保存本 Skill 的持久化记录。scripts/profile_store.py 原子写回 Profile,并在结果中报告保存路径。required: true 字段缺失时,按 Manifest 的问题配置向用户提出一个聚焦问题。context_id、字段路径与来源,诊断内容避开秘密、完整私人路径和原始配置。用户在 Skill 驱动任务中提出修改意见时,继续当前产物前必须执行:
task-specific(仅本次)还是 reusable(可跨任务复用)。task-specific 只修改当前任务,不改 Skill。reusable 先确定作用域:领域规则先更新对应 canonical Skill;适用于所有 Skill 的规则先更新共享规范。reusable 修改会使此前的“确认”“继续”“发吧”失效;完成当前产物修改和回读后必须停下,等待用户下一步指示,不自动进入发布、提交或其他外部写入。