Skip to main content

local-config

Defines the yellow-plugins.local.md per-project config file schema. Use when authoring commands that should accept per-project overrides for review pipeline behavior, reviewer set narrowing, depth controls, or focus-area filtering.

跳到安装

来源信息

仓库
KingInYellows/yellow-plugins
最近来源活动
2026年9月6日 22:45
检测到的 SKILL.md 语言
英语
星标
0
分支
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
local-config
description
Defines the yellow-plugins.local.md per-project config file schema. Use when authoring commands that should accept per-project overrides for review pipeline behavior, reviewer set narrowing, depth controls, or focus-area filtering.
user-invocable
false
# yellow-plugins.local.md — per-project configuration `yellow-plugins.local.md` is an **optional** per-project config file that lets a project override defaults for yellow-plugins commands. Place it at the repo root (next to `CLAUDE.md`). The file uses YAML frontmatter for structured settings and an optional markdown body for human-readable notes. ## What It Does - Provides a single, discoverable location for per-project overrides to yellow-plugins command behavior. - Doubles as the **rollback escape hatch** for the Wave 2 review-pipeline rewrite — projects experiencing high false-positive review noise can set `review_pipeline: legacy` and the pre-Wave-2 adaptive selection is used instead. - Supports optional `reviewer_set.{include,exclude}` for narrowing or expanding the persona dispatch table without forking commands. ## When to Use - A project wants to skip specific reviewer personas (`reviewer_set.exclude: [adversarial-reviewer]`) - A project wants to force the legacy pipeline during the Wave 2 dogfooding period (`review_pipeline: legacy`) - A project wants to narrow review focus to specific areas (`focus_areas: [security, correctness]`) - A project wants a custom `review_depth` regardless of diff size (`review_depth: large` to always invoke `adversarial-reviewer`) When the file is **absent**, all commands use their built-in defaults. The file is purely additive — no command behavior depends on its existence. ## Usage ### File location and shape ``` <repo-root>/yellow-plugins.local.md ``` Frontmatter-only is the typical shape; a markdown body is optional and used only by humans (commands ignore the body). ### Schema ```yaml --- # review:pr / review:all behavior overrides (Wave 2 keys) review_pipeline: persona | legacy # default: persona (Wave 2 default) review_depth: small | medium | large # default: auto-detect from diff size focus_areas: [security, correctness, ...] # default: all areas reviewer_set: include: [<agent-name>, ...] # additional agents to spawn beyond defaults exclude: [<agent-name>, ...] # agents to skip # Wave 3 keys (documented; consumer adoption tracked per-key below) stack: [ts, py, rust, go] # default: auto-detect from repo agent_native_focus: true | false # default: false confidence_threshold: 0..100 # default: 75 resolve_pr: cluster_line_distance: 10 # default: 10 (positive integer) --- ``` **Consumer adoption status (Wave 3 keys):** the keys are valid frontmatter today and parsers do not warn on them, but the commands that act on them land in separate Wave 3 PRs: | Key | Acted on by | Status | |------------------------|------------------------------------|--------| | `stack` | `polyglot-reviewer`, `review:pr` Step 4 dispatch | Pending W3 polyglot scoping. Until then: documented but ignored. | | `agent_native_focus` | `review:pr` Step 4 dispatch (forces W3.5 reviewers) | Pending W3.5 (`agent-native-reviewers` branch). Until then: documented but ignored. | | `confidence_threshold` | `review:pr` aggregation gate, `audit-synthesizer` | Pending W3.13b (`yellow-debt-confidence-calibration` branch). Until then: documented but ignored. | | `resolve_pr.cluster_line_distance` | `review:resolve` Step 3d cluster threshold | Acted on by `review:resolve` (W3.3). Invalid values (non-integer, ≤ 0) emit a warning to stderr and fall back to the default 10. | Authors may set Wave 3 keys today without breaking Wave 2 consumers — the graceful-degradation rule (unknown keys emit a warning but do not abort) means the file remains valid forward-and-backward. ### Field reference | Field | Type | Default | Effect | |-------|------|---------|--------| | `review_pipeline` | `persona` \| `legacy` | `persona` | `legacy` falls back to pre-Wave-2 adaptive selection (no learnings pre-pass, no confidence rubric, no new personas). Use as escape hatch only. | | `review_depth` | `small` \| `medium` \| `large` | auto | Forces a depth tier regardless of computed diff size. `large` always invokes `adversarial-reviewer`; `small` skips it even on large diffs. | | `focus_areas` | array of strings | empty (= all) | Narrows reviewer set to those whose `category` matches one of the listed areas. Recognized areas: `security`, `correctness`, `reliability`, `performance`, `maintainability`, `project-compliance`, `project-standards`, `architecture`, `testing`, `documentation`, `types`, `adversarial`. Always-on personas (`project-compliance-reviewer`, `correctness-reviewer`, `maintainability-reviewer`, `project-standards-reviewer`) survive the filter regardless of `focus_areas` — filtering them out would defeat the always-on contract. | | `reviewer_set.include` | array of agent names | empty | Additive — agents are spawned even if their conditional triggers don't fire. | | `reviewer_set.exclude` | array of agent names | empty | Subtractive — agents are skipped even if always-on or their triggers fire. Applied after `include`. | | `stack` | array of `ts` \| `py` \| `rust` \| `go` | auto-detect | Forces language-specific reviewer behavior. When set, `polyglot-reviewer` (when triggered) scopes to listed languages and skips non-matching files. Auto-detect uses repo root signals: `package.json` → `ts`, `pyproject.toml`/`requirements.txt` → `py`, `Cargo.toml` → `rust`, `go.mod` → `go`. Multi-stack repos may set this explicitly to scope review to a subset. Acted on by W3-pending consumers (see status table). | | `agent_native_focus` | boolean | `false` | When `true`, always invokes the W3.5 agent-native reviewer triplet (`cli-readiness-reviewer`, `agent-cli-readiness-reviewer`, `agent-native-reviewer`) regardless of whether the diff touches `plugins/*/agents/`, `plugins/*/skills/`, or `plugins/*/commands/`. Useful for repos that author Claude Code plugins but house plugin code outside the standard `plugins/` layout. Acted on by W3.5 (pending). | | `confidence_threshold` | integer 0–100 | `75` | Override the Wave 2 confidence aggregation gate used by `review:pr` and `audit-synthesizer`. Values below `75` surface more findings (more false positives, fewer missed issues); values above `75` suppress more (fewer false positives, more missed issues). Set above `100` to suppress all findings (effectively a dry-run). Acted on by W3.13b (pending). | | `resolve_pr.cluster_line_distance` | positive integer | `10` | Cluster threshold for `review:resolve` Step 3d. Adjacent threads on the same file with line distance ≤ this value merge into a single resolver task (transitive merge). Larger values cluster more aggressively (fewer resolvers, broader edits per agent); smaller values keep clusters tighter. Invalid values (non-integer, ≤ 0) emit a warning to stderr and fall back to the default. | ### Example: tighten review for a security-critical project ```yaml --- review_pipeline: persona review_depth: large focus_areas: [security, correctness, reliability] reviewer_set: include: [security-reviewer, adversarial-reviewer] exclude: [comment-analyzer, type-design-analyzer] --- ``` ### Example: rollback escape hatch during Wave 2 dogfooding ```yaml --- review_pipeline: legacy --- # Notes for humans (commands ignore this body) We hit unexpected false-positive noise from `correctness-reviewer` on 2026-04-29; reverting to legacy pipeline until upstream lands a fix. Re-enable persona pipeline by removing `review_pipeline: legacy` (or flipping it to `persona`). ``` ### Reading the config from a command Commands that honor this config (today: `review:pr`, `review:all`) read the file from the project root and merge values with their built-in defaults. The merge precedence is: 1. Command argument overrides (e.g., explicit flags) — highest 2. `yellow-plugins.local.md` frontmatter 3. Command built-in defaults — lowest Pseudo-code: ```text config = load_yaml_frontmatter("yellow-plugins.local.md") review_pipeline = config.review_pipeline ?? "persona" review_depth = command_arg.depth ?? config.review_depth ?? auto_detect() focus_areas = config.focus_areas ?? [] # empty = no filter include = config.reviewer_set.include ?? [] exclude = config.reviewer_set.exclude ?? [] # After computing the default reviewer set per Step 4 of review-pr.md: reviewer_set = (defaults ∪ include) \ exclude if focus_areas: # Always-on personas survive the filter regardless of focus_areas; filtering # them would defeat the always-on contract documented in # plugins/yellow-review/commands/review/review-pr.md Step 4. always_on = {project-compliance-reviewer, correctness-reviewer, maintainability-reviewer, project-standards-reviewer} reviewer_set = always_on ∪ filter_by_category(reviewer_set \ always_on, focus_areas) if review_pipeline == "legacy": use_legacy_dispatch(reviewer_set) else: use_persona_dispatch(reviewer_set) ``` ### Validation - Unknown top-level keys → emit a warning to stderr but do not abort. Forward-compatibility matters more than strictness for an optional config. - Unknown reviewer names in `reviewer_set.include` → emit a warning naming the unrecognized name. The graceful-degradation guard in `review:pr` Step 4 handles missing agents at dispatch time anyway. - Mutually exclusive entries (same name in both `include` and `exclude`) → `exclude` wins; emit a warning naming the conflicting agent. - `review_pipeline` values other than `persona` / `legacy` → fall back to `persona` and emit a warning. - `stack` entries other than `ts` / `py` / `rust` / `go` → drop the unknown entry, emit a warning naming it. An empty array after dropping unknowns falls back to auto-detection. - `agent_native_focus` non-boolean values → fall back to `false` and emit a warning. Common mistake: quoting the value (`"true"`) — YAML parses that as a string, not a boolean. - `confidence_threshold` outside `0..100` → clamp to the range and emit a warning. Non-integer values fall back to the default (`75`). ### Example: TypeScript-focused plugin repo with strict gating ```yaml --- review_pipeline: persona review_depth: large focus_areas: [security, correctness, project-compliance] stack: [ts] agent_native_focus: true confidence_threshold: 60 --- ``` Effect, once Wave 3 consumers land: `polyglot-reviewer` scopes to TypeScript only, the W3.5 agent-native reviewer triplet is always invoked, and the confidence gate fires earlier (60 vs. default 75) so borderline findings surface for human review. ## Migration Projects that previously relied on hard-coded defaults need no migration — the absence of `yellow-plugins.local.md` keeps existing behavior. The file is opt-in. ## Related - `RESEARCH/upstream-snapshots/e5b397c9d1883354f03e338dd00f98be3da39f9f/confidence-rubric.md` — the confidence rubric that the persona pipeline uses for aggregation. - `plugins/yellow-review/commands/review/review-pr.md` — primary consumer of the config keys defined here. - `plugins/yellow-review/commands/review/review-all.md` — secondary consumer; its inline pipeline references the same overrides. - `plugins/yellow-review/skills/pr-review-workflow/SKILL.md` — selection rules and severity definitions.
在 GitHub 查看