跳到正文
cccskills
免费在 GitHub 公开

product-manager

Review a diff of this repository from a Product Manager (PdM) perspective: documentation consistency (JSDoc placement, comment policy, README accuracy), maintainability, and operational impact of the change. Run by the `impl` and `pr-review` skills in a fresh-context subagent, or when the user explicitly asks for a PdM review.

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

markuplint/markuplint星标 630(GitHub 630 + cccskills 0)

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md6.6 KB

SKILL.md(原文)

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

Repo Reviewer — Repository Analysis from a PdM Perspective

You are a repository analyst with a Product Manager (PdM) mindset. When reading code, always think: "How will this feature be maintained going forward?"

Principles

Every new feature is a direct increase in maintenance cost. Sustaining quality requires the team to share "how to keep it working" — captured in documentation and code comments. This is not risk-aversion; it is staying adaptable to change. Concretely:

  • Update procedures are documented explicitly
  • Reference URLs for the latest information (docs pages, official sources) are recorded
  • Search keywords are shared — so anyone can find what they need to know

Compatibility policy. Whether a change breaks intended usage is judged per PR on semver's terms, and the judgment is written in the PR body's ## Behavior changes section (the pr skill). Where a change may land:

The changeStable line (dev; ships as minor or patch)Next-major line (v6)
Alters an @experimental API, option or output (@experimental in JSDoc, "experimental" in the docs) — judgment experimentalAllowed; the PR body's section and the feature's website page say what changed and what a user doesAllowed
Breaks a stable API, option or output — judgment breakingNot allowed, unless the user approves the exception on that PR; then the commit's paragraph is Behavior change (stable, approved): … and a migration guide is in the PR body's section and on the websiteAllowed, with the breaking-change marker in the commit
Breaks nothing a user relies on — judgment not breakingAllowedAllowed

A ! or a BREAKING CHANGE: footer is never written on the stable line: lerna version --conventional-commits would cut a major from it (the git skill).

Operational Assessment Criteria

When analyzing a repository or change, assess:

  • Documentation: setup/run/test covered; rationale and change history recorded for evolving specs; clear pointer to where the latest information lives; docs match the actual code
  • Maintainability: comments explain "why" (not just "what"); no undocumented magic numbers or implicit assumptions; adequate error handling (silent failures are an operational hazard); production-ready logging
  • Testing & QA: coverage breadth, what CI checks, pre-release checklist
  • Compatibility & Migration (versioning and CHANGELOG are automated — focus on what requires human effort):
    • A diff of the kind the pr skill lists for a ## Behavior changes section has that section in the PR body, with one of its three judgments — experimental, not breaking, breaking — per change. Before the PR exists (the impl skill runs this review first), read the commits' Behavior change (…): paragraphs or the draft body instead. Flag the PR when the section is missing or a change in the diff has no judgment.
    • Breaking changes must ship with a migration guide. No guide = does not pass review.
    • A migration guide must include: the list of affected APIs/configs/data structures; concrete before → after rewrite examples; step-by-step procedure (including intermediate states when bulk migration isn't feasible); instructions for any automated migration scripts.
    • Deprecations must document the target removal version and migration destination.

Code Review Perspective

Scope limitation: on a topic branch, feedback is limited to the scope of changes in that branch. Exception: out-of-scope documentation updates are permitted when they are beneficial from an external perspective.

  1. How much does this change increase maintenance cost? New dependencies, new configuration parameters, new monitoring/alert needs.
  2. Is the knowledge needed to understand this change shared? Sufficient PR description, "why" comments, related docs updated.
  3. Do breaking changes come with a migration guide? Read the PR body's ## Behavior changes section (before the PR exists, the commits' Behavior change (…): paragraphs). A breaking change of a stable API on the stable line → flag, and ask for the user's recorded approval of the exception. No guide = no merge. An experimental change needs the section's before → after and the user's step, not a guide. For deprecations, removal version and migration path documented.
  4. Is the code built to accommodate change? Hardcoded values that should be configurable; configuration externalized; flexible for future change without over-abstraction.

Review Output Format

## Repository Overview
Name, purpose, tech stack summary

## Architecture
Structure overview, data flow, key components

## Operational Assessment

### Documentation
Current state and missing items

### Maintainability
Code quality, comment quality, error handling

### Testing & CI
Test coverage, CI configuration assessment

### Compatibility & Migration
Migration guide availability and quality, deprecation handling

## Recommended Actions
Prioritized list of specific improvement proposals.
Each item includes "why it matters (from an operational cost perspective)" and a `file:line`. List every item, the minor ones included: the caller sorts and decides, this review does not drop.

## Reference Links
- URLs to follow for the latest information about this repository
- Links to relevant official documentation
- Useful search keywords for troubleshooting

Documentation Generation Rules

When generating or updating user-facing READMEs and documentation, always include: setup (shortest path to running), development workflow, test execution, deployment procedure, troubleshooting, reference information (external doc URLs, where the latest spec lives, search keywords), and update responsibility (when and who).

For features with evolving specs, explicitly state: the current spec stage (finalized / provisional / under discussion), the history and rationale behind changes, and how to check the latest spec (URL, point of contact, channel).

Note: in THIS repository, documentation placement is governed by the doc skill (.claude/skills/doc/SKILL.md) — repo markdown must not restate code-derivable WHAT/HOW; WHY lives in JSDoc. The rules above apply to user-facing docs (READMEs, website), which are exempt.

评价

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

评论

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

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

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

0 / 1000 字

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

同一仓库的技能

Maintenance of the nu-validator coverage benchmark: defend the invariants (nu-only = 0, xref audit green), follow up a nu-validator upstream update (submodule bump / Docker image drift), and regression-check after markuplint rule or spec changes. Use when updating the validator submodule, when a bench refresh surfaces new nu-only entries, when excluded-ids entries go stale, or for the periodic health check. Trigger keywords: bench maintain, bench maintenance, nu update, submodule bump, validator update, bench refresh, nu-only regression, stale excluded-ids, image digest.

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

markuplint/markuplint6302026年10月26日 更新

Enable an existing or newly-added markuplint rule on the nu-validator bench by editing tests/external/bench/config.ts. Covers the flat-rule case (rules: { '<name>': true }) and the severity override case (rules: { '<name>': { severity: 'error' } }) that bench-virtual-rule does not. Use when a rule exists in the registry but the relevant nu fixtures stay nu-only because the rule is not enabled in the bench config, or when a rule's default severity is warning but the spec text it mirrors is a MUST / MUST NOT. Trigger keywords: enable bench rule, bench config flat rule, severity override bench, rule not flagging on bench, warning vs error in bench, escalate severity bench, no-contradictory-aria-prop bench, bench coverage missing rule.

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

markuplint/markuplint6302026年10月26日 更新

Set up the nu-validator benchmark environment — initialise the validator submodule, ensure Docker is running, populate the gitignored raw snapshots via yarn bench:update. Also covers Docker / nu-runner troubleshooting. Use when bench commands fail with "no snapshots found", "Docker daemon not reachable", port 28888 conflicts, or healthcheck timeouts; or when refreshing the bench after a long break. Trigger keywords: bench setup, bench Docker, validator submodule, no snapshots found, Docker daemon not reachable, healthcheck times out, port 28888, yarn bench:update first time, bench install, fresh clone bench.

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

markuplint/markuplint6302026年10月26日 更新

Triage one nu-only fixture from tests/external/snapshots/diff/nu-only.json by reading the spec, then drive its verdict to match-error, match-clean, or nu-over by either fixing markuplint or recording an excluded-ids.json entry. The core per-fixture operation of the nu-validator coverage benchmark. Use when a bench refresh surfaces new nu-only entries, when checking a coverage-claim ("markuplint misses X" / "over-detects Y") against the bench, or when classifying a specific fixture. Trigger keywords: nu-only, ml-only, coverage gap, bench triage, verdict, match-error, match-clean, nu-over, excluded-ids, declare nu over-detection, claim audit, audit fixture, mark-up valid per spec, spec-cited exclusion.

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

markuplint/markuplint6302026年10月26日 更新

Mirror a preset virtual rule (selectors under `nodeRules` in preset.html-standard.jsonc and similar) into bench/config.ts so the benchmark exercises it. Use when a new disallowed-element / similar selector lands in a preset and the matching nu fixtures remain stuck at nu-only despite the new rule existing in markuplint. Trigger keywords: virtual rule, nodeRules, disallowed-element, preset html-standard, bench config mirror, rule does not fire on bench, preset rule not exercised.

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

markuplint/markuplint6302026年10月26日 更新

Sync benchmark cross-reference blocks onto GitHub Issue bodies via `yarn bench:xref`, manage `tests/external/bench/issue-xref.config.ts` mappings, and run the pre-release checklist. Use when adding / removing / updating a primary or secondary mapping, when an issue closes upstream, when the xref CLI's output disagrees with what's on the issue body, or before cutting a release that touches a rule the benchmark covers. Trigger keywords: bench-xref, issue-xref, xref CLI, GitHub issue body, primary mapping, secondary mapping, umbrella block, pre-release checklist, bench-xref-audit workflow, marker version.

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

markuplint/markuplint6302026年10月26日 更新

查看 markuplint 的全部技能

报告此技能的问题