用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/babyworm/rtl-agent-team --skill p1-spec-research-policy命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | p1-spec-research-policy |
| description | Internal reference: p1 spec research policy (agent-loaded; do not invoke). |
| user-invocable | false |
docs/phase-1-research/design-intent.md; resolve ambiguous spec language with the user's
stated intent, never agent assumptions.resolution_rationale.AskUserQuestion MUST cover these areas (skip items already provided by user):
Mandatory 3 rounds, coordinated by rtl-architect (domain-agnostic default). If a domain chief exists (e.g., vcodec-chief-standard-expert for video-codec domain), invoke both rtl-architect AND domain chief for domain-specific validation:
reviews/phase-1-research/research-review-r1.mdreviews/phase-1-research/research-review-r2.mdreviews/phase-1-research/research-review-r3.mdReview criteria per round:
User may override round count: "set iterations to N" → N rounds (minimum 1).
Phase 1 produces TWO requirement files instead of a single requirements.json:
docs/phase-1-research/iron-requirements.json — settled functional (REQ-F-NNN) and
performance (REQ-P-NNN) requirements, authority = 1, binding for ALL downstream phases.docs/phase-1-research/open-requirements.json — research topics (OPEN-1-NNN) that
Phase 2 must investigate and resolve into architecture decisions.Per-item field schemas for both files are owned by the spec-analyst agent prompt. This policy owns only the classification and verification rules below.
After iron/open files are produced, verify:
FAIL conditions (must fix before exit):
WARN conditions (log and proceed):
i_ prefix (e.g., i_data, i_valid) — NOT suffix _io_ prefix (e.g., o_result, o_ready) — NOT suffix _oio_ prefix (e.g., io_sda)clk (single domain) or {domain}_clk (e.g., sys_clk) — NOT clk_irst_n (single domain) or {domain}_rst_n (e.g., sys_rst_n) — NOT rst_nisys_clk / sys_rst_nSave to reviews/phase-1-research/research-review.md:
# Phase 1 Review: Research Completeness
- Date: YYYY-MM-DD
- Reviewer: spec-analyst
- Upper Spec: specs/
- Verdict: PASS | FAIL
## Feature Coverage Checklist
| Spec Section | Requirement ID | Status |
## Findings
### [severity] Finding-N: ...
## Verdict
PASS | FAIL: [reason]
The extractor MUST NOT grade its own completeness: an extraction blind spot also biases the self-counted denominator (5-of-10 modes self-reports 5/5). The completeness verdict comes from an independent census + mechanical diff:
Independent feature census (clean context): spawn spec-analyst in FEATURE CENSUS
MODE. It reads ONLY original spec sources (specs/**, docs/phase-1-research/goal.md,
domain knowledge files) and MUST NOT read iron-requirements.json, open-requirements.json,
or any prior Phase 1 analysis. Enumerate EVERY spec-defined item — expand mode/format
tables item-by-item (e.g., each intra prediction mode, encoding mode, color format,
block size is one entry). Write docs/phase-1-research/spec-feature-inventory.json:
{ "features": [ { "feature_id": "FEAT-001", "name": "...", "kind": "mode|format|algorithm|capability|constraint",
"source": { "document": "...", "section": "..." } } ] }
Mechanical diff (different agent): spawn rtl-architect to map every FEAT-* to REQ/OPEN IDs in iron ∪ open requirements. Per-feature status:
EXTRACTED — mapped to at least one REQ/OPEN idEXCLUDED_BY_SCOPE — user-approved exclusion, ADR reference recordedMISSING — no mapping and no approvalGap escalation: any MISSING feature → MUST ask user via AskUserQuestion:
Every Phase 1 completion MUST include an ambiguity assessment:
Ambiguity_Assessment with per-axis scoresdocs/phase-1-research/ambiguity-assessment.mdThis is inspired by Ouroboros's AmbiguityScorer pattern:
Scoring: ambiguity_score = weighted_average(goal, constraint, ac) — higher = worse
After ambiguity gate (Step 7.5a) and iron/open verification (Step 7.5b) pass, run adversarial reinterpretation to surface ambiguities the initial analysis missed.
source.section (not REQ ID); types: REINTERPRETATION (alternative reading) and
OMISSION (zero-REQ spec feature vs spec-feature-inventory.json →
original_interpretation="NOT_EXTRACTED", severity HIGH). Output
.rat/scratch/stability/phase-1/challenge-report.json
(schema: skills/p1-spec-research/templates/challenge-report-schema.json; max 30 per pass).reviews/phase-1-research/stability-report.md.genuine = (HIGH + MEDIUM challenges) - NOT_GENUINE
resolved = RESOLVED + DOCUMENTED
resolution_ratio = resolved / genuine (if genuine == 0: pass)
gate_pass = (all HIGH resolved) AND (resolution_ratio ≥ 0.8)
Gate failure: list unresolved HIGH challenges, loop back to Step 7.7 (max 1 re-loop). After 2nd failure: escalate to user with full divergence report.
| Ambiguity Score | Adversarial Gate | Decision |
|---|---|---|
| PASS (≤0.3) | PASS | Proceed |
| PASS (≤0.3) | FAIL | BLOCK |
| CONDITIONAL (0.3-0.5) | PASS | Proceed with WARNING |
| CONDITIONAL (0.3-0.5) | FAIL | BLOCK |
| BLOCK (>0.5) | PASS | BLOCK |
| BLOCK (>0.5) | FAIL | BLOCK |
Rule: Either gate can block; neither can unblock the other.
| Severity | Criterion | Example |
|---|---|---|
| HIGH | Missing item (OMISSION) | Spec defines 10 encoding modes, only 5 extracted |
| HIGH | Different RTL behavior | Signed vs unsigned arithmetic |
| HIGH | Different interface | 32-bit vs 64-bit datapath |
| MEDIUM | Different parameterization | Fixed depth vs configurable |
| MEDIUM | Different timing | 3-stage vs 4-stage pipeline |
| LOW | Cosmetic only | Block naming differences |
Boundary rule: alternative interpretation would cause different RTL module → HIGH. Same module but different parameters → MEDIUM. Same module, same parameters → LOW.
50% items at HIGH severity → spec fundamentally under-specified, escalate
docs/phase-1-research/iron-requirements.json exists and is valid JSONdocs/phase-1-research/open-requirements.json exists and is valid JSON"id": "REQ-NNN" fielddocs/phase-1-research/io_definition.json exists and is valid JSONi_/o_/io_ prefix (NOT suffix){domain}_clk, resets use {domain}_rst_ndocs/phase-1-research/timing_constraints.json exists with per-block timing targets (rough estimates)docs/phase-1-research/domain-analysis.md exists with cross-block dependency matrix and per-block timing targetsdocs/phase-1-research/spec-feature-inventory.json produced by independent census (clean context, no generated Phase 1 requirement artifact access)docs/phase-1-research/feature-coverage.md saved with zero MISSING features (all EXTRACTED or EXCLUDED_BY_SCOPE with ADR)reviews/phase-1-research/research-review.md saved (consolidated)EXCLUDED_BY_SCOPE + ADR with rationale and impact estimateDocumentation: save docs/phase-1-research/feature-coverage.md:
| Feature | Spec Source | REQ/OPEN IDs | Status |
|---------|-------------|--------------|--------|
| Intra mode DC | §8.3.1 | REQ-F-012 | EXTRACTED |
| Intra mode planar | §8.3.2 | — (ADR-007) | EXCLUDED_BY_SCOPE |
plus totals: features / extracted / excluded_by_scope / missing.
Gate: PASS iff missing == 0 (every feature EXTRACTED or EXCLUDED_BY_SCOPE).
FAIL blocks Phase 1 completion (feature-coverage-audited completion criterion).
Downstream contract: spec-feature-inventory.json is the authoritative spec-item
denominator for later phases; EXCLUDED_BY_SCOPE records let downstream gates
distinguish user-approved scope reduction from silent extraction loss.
Reference model cross-check (Phase 2+, when refC or an external golden exists): compare the inventory against model implementation — "enum declared but function not implemented" → COVERAGE_GAP warning.
docs/phase-1-research/solution-tree.jsondocs/phase-1-research/candidate-comparison.md existsdocs/phase-1-research/selected-approach.md existsdocs/phase-1-research/literature-survey.md existsdocs/phase-1-research/ambiguity-assessment.md saved with per-axis scores and overall ambiguity_scorereviews/phase-1-research/stability-report.md saved"violation_policy": "user_escalation"