Token导航 LogoToken导航

Agent Skill · 研究检索

accelint-onboard-openspec(Accelint 板载 openspec)

accelint-onboard-openspec 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

accelint-onboard-openspec 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为操作浏览器;许可证信息还不明确,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 45,218。

总安装 864周安装 36GitHub Stars 10下载 288核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:accelint-onboard-openspec(Accelint 板载 openspec)
来源仓库:https://github.com/gohypergiant/agent-skills
仓库路径:skills/accelint-onboard-openspec
安装命令:
npx skills add https://github.com/gohypergiant/agent-skills --skill accelint-onboard-openspec
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/gohypergiant/agent-skills --skill accelint-onboard-openspec

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

accelint-onboard-openspec 用于引导用户完成项目特定 openspec/config.yaml 的配置,适用于 QRSPI 方法论。适合在 Codex、Claude、Cursor、Gemini CLI 中快速生成项目的结构事实层(DNA)。

通过对话访谈收集项目信息,可与 accelint-onboard-agents 技能配合使用以完善行为层。安装命令为 npx skills add https://github.com/gohypergiant/agent-skills --skill accelint-onboard-openspec。

建议确认权限范围和维护状态,避免触发联网或文件读写等高风险操作。

来源仓库内路径:skills/accelint-onboard-openspec

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/gohypergiant/agent-skills --skill accelint-onb…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

accelint-onboard-openspec 怎么安装?

在终端执行 npx skills add https://github.com/gohypergiant/agent-skills --skill accelint-onboard-opens…。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

accelint-onboard-openspec 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

accelint-onboard-openspec 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

accelint-onboard-openspec 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

accelint-onboard-openspec 用的人多吗?

公开数据是累计安装 864 次,近一周安装 36 次,下载 288 次,GitHub 10 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

accelint-onboard-openspec 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
accelint-onboard-openspec

Accelint 板载 openspec · 本页

86410操作浏览器未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Onboard OpenSpec

Guide the user through a conversational interview to produce a complete, project-specific openspec/config.yaml configured for the QRSPI methodology.

Companion Skill

This skill produces the project DNA layer of the agent instruction stack: structural facts about what the project is. It is the companion to the accelint-onboard-agents skill, which produces the behavior layer (AGENTS.md / CLAUDE.md): how the agent acts, communicates, and makes decisions.

If during this interview the user volunteers behavioral content (commit conventions, workflow steps, decision heuristics, tool preferences), acknowledge it and redirect: *"That's behavioral — it belongs in AGENTS.md. I'll note it here for reference, but the accelint-onboard-agents skill is the right place to capture it."* Do not write behavioral content into config.yaml.

AGENTS.md / CLAUDE.md  → accelint-onboard-agents skill  → HOW the agent behaves
openspec/config.yaml   → this skill             → WHAT the project is

Mental Model

The config has two jobs:

  1. context: — Objective facts about the codebase injected into every AI artifact. Think of it as the "DNA" that makes AI suggestions feel native to the project. Facts only, no opinions.
  2. rules: — Per-artifact checkpoints (proposal / design / tasks / spec) that encode the team's quality bar.

Phases

Phase 0 — File State Detection

Before any interview question is asked, check whether openspec/config.yaml exists and assess its state. Never silently pick a mode — always announce the detected mode to the user and confirm before proceeding.

Detection logic:

Does openspec/config.yaml exist?
│
├── No → MODE 1: Create
│         Full interview from scratch.
│
└── Yes → Read the file, then assess:
          │
          ├── Empty or near-blank (schema: line only, no context/rules)?
          │     → MODE 1: Create (with overwrite confirmation)
          │       Ask: "config.yaml exists but appears empty — should I
          │       populate it from scratch, or preserve any current content?"
          │
          ├── Contains recognised fields?
          │   (context: block present, rules: block with known artifact keys)
          │     → MODE 3: Refresh
          │       Abbreviated interview covering only detected drift and
          │       unresolved # TODO: fill in markers.
          │
          └── Contains real content in an unrecognised shape?
                → MODE 2: Import
                  Present three options (A / B / C) before proceeding.

Recognised shape = file is valid YAML with at least a context: key whose value is a non-empty string, or a rules: key with at least one of the known artifact IDs (proposal, specs, design, tasks).


Mode 1: Create

Run the full Phase 1 → Phase 2 → Phase 3 → Phase 4 interview. This is the happy path for a fresh repo.


Mode 2: Import

The file has real content that was not generated by this skill. Present the user with three options before touching anything:

"This config.yaml has existing content with a structure I don't recognise. How would you like to proceed? (a) Restructure — I'll import your existing content, map it onto the context: / rules: schema, flag any material that belongs in AGENTS.md instead (workflow steps, commit conventions, tool preferences), run a targeted interview to fill gaps, and produce a merged file ready to replace the current one. (b) Append — I'll run the full interview and add the skill's context: and rules: sections alongside your existing content without modifying what's already there. (c) Dry run — I'll run the full interview and show you exactly what I would have generated, with no changes to the filesystem. Use this to evaluate fit before committing."

If option (a) is chosen:

  1. Read the file in full.
  2. Map existing content onto context: sub-sections and rules: artifact keys where possible.
  3. Flag any content that violates the separation-of-concerns boundary (e.g., commit conventions, workflow steps, tool preferences, agent decision heuristics) — these belong in AGENTS.md. For each violation, ask: *"This looks behavioral — it belongs in AGENTS.md. Should I move it there and remove it from config.yaml?"*
  4. Run a targeted interview covering only the gaps (context sub-sections with no existing coverage; artifact keys with no rules).
  5. Show a merged preview before writing. Existing content is labelled # from existing file; new content is labelled # new.

If option (b) is chosen: Run the full Phase 1 → Phase 4 interview and write the generated context: and rules: blocks alongside existing content. Add a comment at the top: # Sections below added by accelint-onboard-openspec skill.

If option (c) is chosen: Run the full Phase 1 → Phase 4 interview and present the output in the conversation. Explicitly state: "No files were changed." Offer to re-run as (a) or (b) if the user is satisfied.


Mode 3: Refresh

The file matches the skill's expected schema — it was likely produced by a previous run. Run an abbreviated interview covering only:

  1. Drift detection — scan the codebase for changes since the file was last updated: Signal Where to look Runtime / Node version changed .nvmrc, .node-version, Dockerfile New packages / frameworks added package.json deps, workspace roots TypeScript config tightened tsconfig.json — new strict* flags New packages in monorepo pnpm-workspace.yaml, turbo.json Build tooling changed vite.config.*, tsup.config.* CI/CD workflows added .github/workflows/ New domain concepts New top-level directories, new entity types in source Anti-patterns deprecated @deprecated tags, // TODO: replace comments added
  2. Unresolved TODOs — find all # TODO: fill in markers left from the previous run and surface them as targeted questions.
  3. Announce findings before asking anything: "I found [N] context sections that may have drifted and [M] unresolved TODOs. I'll only ask about those — the rest looks current."
  4. After the targeted interview, show only the changed sections in the preview before writing. Do not re-emit unchanged sections.

Phase 1 — Discovery Interview

Run the interview conversationally. Don't dump all questions at once. Group them into natural topic turns. If the user mentions a stack, infer related tooling and confirm rather than asking again.

Turn 1 — Project Identity

  • What is the project name and its primary purpose?
  • Monorepo, single package, or something else? If monorepo, what workspaces?
  • Build system / task orchestration? (Turbo, Nx, Make, npm scripts, Makefile…)
  • Package manager and any private registries? (npm, pnpm, yarn, bun…)

Turn 2 — Tech Stack *(ask as a grouped block, not one by one)*

  • Runtime and version (Node.js 20, Bun 1.x, Python 3.12, etc.)
  • Language + config (TypeScript strict? exactOptionalPropertyTypes? Python type hints?)
  • Framework(s) and version (React 18, Next.js 14, Express, FastAPI, etc.)
  • Key domain libraries (Deck.gl, Apache Arrow, Prisma, SQLAlchemy, etc.)
  • Data layer (Postgres, MongoDB, DynamoDB, ORM/query builder, data formats)
  • Testing setup (Vitest, Jest, Pytest, testing-library, Playwright, etc.)
  • Linting / formatting (ESLint, Biome, Prettier, Black, Ruff, etc.)
  • Build tools (Vite, tsup, esbuild, Webpack, etc.)
  • CI/CD (GitHub Actions, CircleCI, etc.)
  • Versioning approach (Changesets, standard-version, conventional commits, etc.)

Turn 3 — Architecture

  • How is the codebase organised? (feature-based, layer-based, domain-driven?)
  • Where does shared/utility code live?
  • Any path aliases? (@/, ~/, src/, #lib/, etc.)
  • Design patterns commonly in use? (factory, repository, observer, CQRS, etc.)

Turn 4 — Domain Concepts

  • What are the 3–5 most important domain entities? *Example prompt: "For a mapping app this might be Layer, Source, Viewport, Feature, Style."*
  • Any domain-specific terminology the AI should know?
  • Any specialised concepts with non-obvious meanings in this codebase? *Example: "orchestration" means something specific to us — it's the runtime layer that merges style with data, not a general workflow term.*

Turn 5 — Performance

  • Any concrete performance targets? (p95 < 200 ms, 60 fps, < 50 MB heap, etc.)
  • Known hot paths or performance-critical areas?
  • Memory or bundle-size constraints?

Turn 6 — Code Patterns

  • Export style: named exports, default exports, or mixed?
  • Naming conventions: files, variables, functions, constants? *Example: "kebab-case files, camelCase vars, SCREAMING_SNAKE_CASE for constants, PascalCase for types."*
  • Error handling: throw, Result<T,E>, error boundaries, something else?
  • Testing structure: describe/it, test/expect, AAA pattern?
  • Test file location: co-located with source or a separate __tests__/ tree?
  • Fixture / factory approach for test data?
Note: Commit message convention is a workflow procedure — it belongs in AGENTS.md, not here. If the user raises it now, capture it mentally and surface it in the accelint-onboard-agents skill. Do not add it to config.yaml.

Turn 7 — Anti-Patterns

  • Any patterns explicitly banned in code review?
  • Deprecated patterns still in the codebase that new code should NOT emulate?
  • Known performance traps specific to this stack?

Turn 8 — Proposal Rules What does YOUR team require in a proposal? Good prompts:

  • "Do you need proposals to call out database migration impact?"
  • "Do you need proposals to flag API breaking changes?"
  • "Any security review checklist items?"

Turn 9 — Design Rules Project-specific design concerns to encode? Good prompts:

  • "Docker / Kubernetes resource changes to document?"
  • "Performance implications section required?"
  • "Specific architecture diagram style (ASCII, Mermaid)?"

Turn 10 — Task Rules

  • How do you tag tasks by package or module? *Example: [PKG:auth], [MODULE:pipeline], GitHub labels…*
  • Rollback plan required for database changes?
  • Deployment-specific test gates (smoke tests, canary checks)?

Phase 2 — Smart Defaults

After each stack answer, surface relevant conventions to confirm. Use these examples as a pattern; extend to other stacks as appropriate.

Next.js + TypeScript + Tailwind → suggest confirming:

  • App Router vs Pages Router and which patterns apply
  • Server Component vs Client Component boundary rules
  • "use client" directive placement convention
  • API route organisation (app/api/ vs pages/api/)

React + Vitest + testing-library → suggest confirming:

  • userEvent over fireEvent preference
  • screen query priority (role > label > testid)
  • render wrapper for providers

Python + FastAPI → suggest confirming:

  • Pydantic v1 vs v2 (different field-validator syntax)
  • Dependency injection for DB sessions (Depends)
  • Alembic migration workflow
  • lifespan vs startup/shutdown event hooks

Node.js + Prisma → suggest confirming:

  • prisma.$transaction patterns
  • Soft-delete vs hard-delete convention
  • Migration naming convention

Phase 3 — Codebase Inference (fill gaps before generating)

After the interview, audit every config field that still has no answer. For each gap, attempt to derive the answer directly from the codebase before asking the user or leaving the field empty. All config sections are load-bearing — a missing field degrades every downstream AI artifact, so inference is always preferable to omission.

Inference targets and where to look:

GapFiles / signals to inspect
Runtime / Node version.nvmrc, .node-version, package.json#engines, Dockerfile
TypeScript configtsconfig.json (compilerOptions flags, paths aliases)
Package managerpackage-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb
Monorepo workspacespackage.json#workspaces, pnpm-workspace.yaml, turbo.json, nx.json
Build toolsvite.config.*, webpack.config.*, tsup.config.*, esbuild scripts in package.json
Test frameworkvitest.config.*, jest.config.*, pytest.ini, pyproject.toml#tool.pytest
Linting / formatting.eslintrc*, biome.json, .prettierrc*, ruff.toml
CI/CD.github/workflows/, .circleci/, Jenkinsfile
Versioning.changeset/, CHANGELOG.md, commitlint.config.*, .releaserc*
Path aliasestsconfig.json#compilerOptions.paths, vite.config#resolve.alias
Architecture organisationDirectory tree of src/ or workspace roots — infer feature-based vs layer-based
Design patternsSample source files — look for factory functions, repository objects, observer hooks
Export styleSample 3–5 source files; tally named vs default exports
Naming conventionsSample file names, exported identifiers; describe what you observe
Error handlingGrep for throw, Result, Either, tryCatch, error boundary components
Test structureSample test files — describe/it nesting depth, file location relative to source
Anti-patternseslint rule overrides marked off or warn, comments like // TODO: replace, @deprecated
TypeScript baseline patternsIf tsconfig.json exists, automatically include TS/JS baseline patterns (classes, return values, type safety, testing, anti-patterns)
Vitest global mock cleanupvitest.config.ts — check for clearMocks, mockReset, restoreMocks in config
Test file type checkingCI scripts, package.json — check if tsc --noEmit runs on *.test.ts files
Property-based testingCheck for fast-check in dependencies — indicates PBT usage

After inference, for each field resolved this way, note the source in the preview with a trailing comment, e.g.:

- Runtime: Node.js 20 LTS   # inferred from .nvmrc
- Language: TypeScript 5.4, strict, exactOptionalPropertyTypes   # inferred from tsconfig.json

If a field genuinely cannot be inferred (e.g., performance targets, domain concepts, team-specific rules), mark it with # TODO: fill in rather than omitting it. The user can resolve these after reviewing the preview. Do not silently drop a section — an explicit TODO is a prompt to act; an absent section is an invisible gap.


Phase 4 — Generation

  1. Show a labeled preview of the full config before writing anything. Inferred values carry their source comment; unresolved fields carry # TODO: fill in. This gives the user a complete picture of confidence level across every field.
  2. Ask: *"Does this look right? Any sections to correct or expand before I write the file?"*
  3. After confirmation, write to openspec/config.yaml (create directory if needed), stripping the inference source comments — they are for review only, not the final file.
  4. Validate the generated YAML — after writing, read the file back and verify:

- No tabs (YAML requires spaces for indentation) - Values with special characters are properly quoted - No syntax errors (unmatched brackets, quotes, etc.) - The file can be conceptually parsed as valid YAML If validation reveals issues, fix them immediately and rewrite the file.

  1. Print a brief summary of what was configured, what was inferred vs answered directly, and which # TODO fields still need human input.

YAML Generation Safety Rules

CRITICAL: YAML syntax is strict about special characters. Follow these rules when generating config.yaml to avoid syntax errors:

Quoting Requirements

Rule: Values that start with special YAML characters need quoting.

Special characters: |, >, ", ', (, ), [, ], {, }, *, &, !, %, @, ` ``

Examples:

# Parentheses at start of value
❌ description: (internal) auth module     # Syntax error
✅ description: "(internal) auth module"   # Quoted

# Square brackets (looks like YAML list syntax)
❌ tag: [PKG:auth]                         # YAML thinks it's a list
✅ tag: "[PKG:auth]"                       # Quoted string

# Pipe character (YAML thinks it's block scalar)
❌ pattern: some|other                     # Syntax error
✅ pattern: "some|other"                   # Quoted

# Colon in value (YAML thinks it's a nested key)
❌ note: Time: 5pm                         # Syntax error
✅ note: "Time: 5pm"                       # Quoted

# Value containing quotes - escape with opposite quote type
✅ command: 'npm run "test:unit"'          # Single quotes protect doubles
✅ command: "npm run 'test:unit'"          # Double quotes protect singles

Multi-line String Handling

Use block scalar indicators for multi-line content:

# Literal block (preserves newlines) - preferred for context field
context: |
  Line 1
  Line 2
  Line 3

# Folded block (folds newlines into spaces) - rarely needed
description: >
  This is a long
  description that
  flows together.

Indentation Rules

  • Use spaces only — never tabs
  • Consistent indent — typically 2 spaces per level
  • Block scalars — content inside | or > must be indented relative to the key

Rules for List Values

# Simple list items - no quotes needed for plain text
rules:
  proposal:
    - Keep proposals under 100 lines
    - Include scope boundaries

# List items with special chars - quote them
rules:
  tasks:
    - "Tag with [PKG:name] format"        # Quotes protect [ and ]
    - 'Use "Test:" prefix for validation' # Single quotes protect inner "

Validation Checklist

After generating the config, mentally verify:

  1. No bare (, ), |, ", ' immediately after colons (unless using | or > for multiline)
  2. No tab characters anywhere in the file
  3. Consistent 2-space indentation throughout
  4. All list items (-) aligned at the same indent level within their parent
  5. Quoted strings use matching quote types

If any of these rules are violated, the YAML will fail to parse.


Config Template

Use this exact structure. Fill every [placeholder] with content from the interview or codebase inference. If a field cannot be resolved by either means, replace its placeholder with # TODO: fill in — never omit the field. Every section is load-bearing for downstream AI artifact quality.

schema: spec-driven

# Project Context
# Injected into every AI-generated artifact (proposal, design, spec, tasks).
# QRSPI principle: objective research layer — facts only, no opinions.

context: |
  # ═══════════════════════════════════════════════════════════════════════════
  # STACK FACTS
  # ═══════════════════════════════════════════════════════════════════════════

  ## Project Identity
  [project name and one-sentence purpose]
  [repo structure: monorepo / single-package / workspaces list]
  [build system and task orchestration]
  [package manager + registries]

  ## Tech Stack
  - Runtime:            [e.g., Node.js 20 LTS]
  - Language:           [e.g., TypeScript 5.4, strict mode, exactOptionalPropertyTypes]
  - Framework:          [e.g., Next.js 14 App Router]
  - Key Libraries:      [domain-specific dependencies with versions]
  - Data Layer:         [databases, ORMs, data formats, query builders]
  - Testing:            [framework, utilities, coverage tooling]
  - Linting/Formatting: [tools and config files in use]
  - Build Tools:        [bundlers, compilers, transpilers]
  - CI/CD:              [platform and key workflow names]
  - Versioning:         [release strategy and changelog tooling]

  ## Architecture Patterns
  - Organisation: [feature-based / layer-based / domain-driven / other]
  - Shared code:  [path to shared utilities / packages]
  - Path aliases: [list of aliases and their resolved paths]
  - Key patterns: [design patterns in common use]

  ## Domain Concepts
  - [Entity or concept]: [one-line definition]
  - [Entity or concept]: [one-line definition]
  - [Entity or concept]: [one-line definition]

  ## Performance Targets
  - [metric]: [target value and context]

  ### TypeScript/JavaScript Performance (if applicable)
  - Hot paths:    [functions executed >1000 times per interaction or >100 times/sec]
  - Frame budget: [for real-time systems: 60fps = 16.67ms, 120fps = 8.33ms]
  - Constraints:  Bounded iteration (explicit limits on loops/queues), O(n) or better algorithmic complexity

  # ═══════════════════════════════════════════════════════════════════════════
  # PATTERNS TO FOLLOW
  # ═══════════════════════════════════════════════════════════════════════════

  ## Code Patterns
  - Exports:        [named / default / mixed — and when each applies]
  - Naming:         [files, variables, functions, constants, types]
  - Error handling: [throw / Result<T,E> / boundaries / other]
  - Validation:     [approach and library]
  - Constants:      Use `as const` objects, never `enum`
  - Classes:        Prefer functions over classes unless state management required or extending existing class
  - Return values:  Return zero values (empty array, empty string, 0) instead of null/undefined
  - Type safety:    Avoid `any` (use `unknown` or generics); avoid `enum` (use `as const` objects); use `type` over `interface`
  - Immutability:   Prefer `const`, immutable data structures, pure functions
  - Documentation:  Comprehensive JSDoc for all exported code (@param, @returns, @template, @example)

  ## Architecture Patterns
  - [pattern name]: [brief description of how it's used here]

  ## Testing Patterns
  - Pattern:        AAA (Arrange, Act, Assert) with clear boundaries
  - Property-based: (If available) Use `fast-check` for encode/decode pairs, validators, normalizers, pure functions
  - Test scope:     Never test library internals; never export internals to test them; never mock own pure functions
  - Structure:      [describe/it nesting convention]
  - File location:  [co-located / __tests__ / other]
  - Test doubles:   Hierarchy: real implementation > fakes > stubs > spies > mocks
  - Fixtures:       [factory functions / fixture files / inline data]
  - Assertions:     [preferred assertion style]
  - Nesting:        Max 2 levels of describe blocks — use descriptive test names instead
  - Verification:   MUST run `tsc --noEmit` on test files before marking complete
  - Benchmarks:     [approach if any]

  # NOTE: Commit message convention, PR workflow, and tool preferences
  # are behavioral — they belong in AGENTS.md, not here.

  # ═══════════════════════════════════════════════════════════════════════════
  # PATTERNS TO AVOID
  # ═══════════════════════════════════════════════════════════════════════════

  ## Code Anti-Patterns
  - Using `any` instead of `unknown` or generics
  - Using `enum` instead of `as const` objects
  - Using `interface` when `type` works (prefer type)
  - Returning `null`/`undefined` instead of zero values (empty arrays, empty strings, 0, false)
  - Not validating external data with schemas
  - Deep nesting instead of early returns

  - [anti-pattern]: [why it's banned or deprecated]

  ## Performance Anti-Patterns
  - Chaining array methods (`.filter().map().reduce()`) — use single reduce pass
  - Using `Array.includes()` for repeated lookups (use `Set.has()` for O(1) lookups)
  - Recomputing constants inside loops (hoist invariants outside)
  - Unbounded loops or queues (set explicit limits to prevent runaway resource consumption)
  - Placing `try/catch` in hot paths (V8 cannot inline, 3-5x slowdown)

  - [anti-pattern]: [why it's banned or deprecated]

  ## Testing Anti-Patterns
  - Testing library internals (e.g., verifying Array.prototype.map works)
  - Exporting internal functions just to test them
  - Loose assertions in tests (toBeTruthy, toBeDefined)
  - Nested describe blocks >2 levels deep
  - Testing implementation details instead of behavior

  - [anti-pattern]: [why it's banned or deprecated]

  ## Documentation Anti-Patterns
  - Missing JSDoc on exported functions/types
  - Documenting HOW instead of WHAT/WHY in JSDoc
  - Vague comment markers (`// TODO: fix this` instead of `// TODO: Replace with binary search for O(log n)`)

# ═══════════════════════════════════════════════════════════════════════════
# PER-ARTIFACT RULES
# ═══════════════════════════════════════════════════════════════════════════

rules:
  proposal:
    # QRSPI: Scope definition, not a plan.
    - State the requirement or ticket driving this change
    - Define scope boundaries — explicitly list what is OUT of scope
    - Keep under 100 lines (tight and focused)
    [user-specific proposal rules]

  design:
    # QRSPI: The "brain surgery" checkpoint — reviewed before any code is written.
    # Target ~200 lines capturing current state, desired state, open questions.

    # Required sections (in this order):
    - Start with "Current State": what the code does today, key files, entry
      points, relevant data flows
    - "Desired End State": what changes after this work, what stays the same
    - "Patterns to Follow": ONLY if specific files/functions to reference exist
      for this change's domain
    - "Patterns to Avoid": ONLY if specific anti-patterns apply to this change
    - "Open Questions": genuine uncertainties requiring human input. If none,
      state explicitly "No unresolved questions."
    - "Resolved Decisions": numbered (Decision 1, Decision 2…) with Choice,
      Rationale, Alternatives Considered

    # Technical depth:
    - Use ASCII diagrams for data flows, state machines, architecture
    - Call out performance implications where relevant
    [user-specific design rules]

    # Constraints:
    - Keep under 250 lines total

  tasks:
    # QRSPI: Vertical slicing for early failure detection.

    # Vertical slicing (strong preference):
    - Order as vertical slices — each task delivers a testable end-to-end path
    - Do NOT group by architectural layer unless explicitly justified
    - Horizontal (layer-by-layer) only for pure infrastructure; include
      justification in the task description when used
    - Each task MUST include an explicit "Test:" line describing what to verify
      before proceeding to the next task
    - Prefer 3–5 major slices; more than 5 suggests scope is too large

    # Granularity:
    - Max 2 hours per task; break larger work into subtasks
    [user-specific task tagging, e.g., [PKG:name] or [MODULE:name]]
    - Call out inter-task dependencies explicitly
    [user-specific rollback requirements]
    [user-specific deployment test gates]

  spec:
    - Use Given/When/Then for behaviour specifications
    - Include concrete example data relevant to the domain
    - Document edge cases explicitly
    [user-specific spec rules]

Interaction Principles

  • Conversational, not interrogative. Bundle related questions into a single turn. Use natural language, not bullet-dump forms.
  • Infer and confirm. "You mentioned Vitest — I'll assume you're using @testing-library/react for component tests; correct?" is better than asking from scratch.
  • Examples reduce ambiguity. When asking about naming conventions, give an example first so the user can pattern-match.
  • Iterative. Let the user amend answers. Don't lock them into the first response.
  • Preview before writing. Always show the full generated config and get explicit confirmation before touching the filesystem.
  • Infer before asking, ask before omitting. Always attempt codebase inference for any unanswered field. If inference fails, surface a # TODO rather than dropping the section. A config with explicit TODOs is actionable; a config with missing sections silently degrades every artifact it drives.

平台分布

Codex

37.37%
按下载量换算108

Claude

29.77%
按下载量换算86

Cursor

19.22%
按下载量换算55

Gemini CLI

8.79%
按下载量换算25

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills