원클릭으로
p1-spec-research-policy
Internal reference: p1 spec research policy (agent-loaded; do not invoke).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Internal reference: p1 spec research policy (agent-loaded; do not invoke).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Read-only architecture review of RTL vs uArch spec with area/timing/power tradeoffs. Use for post-RTL architecture sign-off or suspected spec mismatch.
Builds Phase 3 SystemC TLM-2.0 bus functional models with AMBA (AXI/AHB/APB) support. Use for 'develop BFM', 'SystemC TLM model', 'bus functional model'.
Encoder RD evaluation of C ref model: BD-PSNR/BD-rate (VCEG-M33) across sequences/QPs — 'RD eval', 'BD-rate', codec algorithm quality comparison.
Validate spec contracts across phase boundaries (P3 uarch to P4 RTL to P5 verify): port widths, memory class, REQ traceability. Use at P4/P5 entry.
Full 6-phase RTL pipeline from spec to verified design (P1 research through P6 design note). Triggers: 'design a chip', 'full pipeline', 'autopilot'.
Initialize RTL project workspace: directory structure, coding rules, phase guides. Run once per project. Triggers: 'init project', 'new project'.
| 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:
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.
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)docs/phase-1-research/solution-tree.json exists (structured JSON)docs/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"