Intent
Produce a PVC report (Perspective Validation Checklist) that scores the target against key non-type failure modes (human factors, governance, economics, adversarial security, loop stability, data governance, and legitimacy) with concrete evidence references and remediation actions.
Success criteria:
- A valid PVC report is written to
docs/reviews/pvc/ and passes python skills/perspective-validation/scripts/validate_pvc.py
- Each non-N/A score is justified with at least one evidence reference
- Any FAIL/PARTIAL includes a concrete remediation action (P0/P1/P2)
References:
CHECKLIST.md
pvc_report_template.yaml
Inputs
| Parameter |
Required |
Type |
Description |
target |
Yes |
string |
What to review (file/dir path, workflow name, or PR/change description) |
risk_tier |
No |
enum |
low | medium | high (defaults to medium if unclear) |
domain |
No |
string |
Domain context (e.g., general, manufacturing, healthcare) |
deployment |
No |
string |
Deployment context (e.g., local-dev, customer-facing, safety-critical) |
Procedure
Scope the review: Confirm target, domain, deployment, and risk_tier
- If the target is a PR or branch diff, identify changed files and whether they touch critical paths (
schemas/, hooks/, skills/, grounded_agency/, tools/, spec/)
Collect evidence: Read the minimum set of files needed to justify scores
- Prefer evidence anchors as
file:path#Lline (or file:path:line if needed)
- When reviewing a change set, include at least one evidence item for “what changed” and “what it affects”
Score the checklist: For each PVC test ID (HF-101 … ECO-901), assign one of:
- PASS: explicitly satisfied with evidence
- PARTIAL: acknowledged but missing enforcement/measurement/runbook detail
- FAIL: absent
- N/A: not applicable to this target (include a brief reason in
assumptions or in an action note)
Write the report: Create a new file in docs/reviews/pvc/ named:
YYYY-MM-DD_<short-slug>.pvc.yaml
- Start from
pvc_report_template.yaml, then fill it in completely
Validate: Run python skills/perspective-validation/scripts/validate_pvc.py
- If it fails, fix the report until it passes
Summarize actions: Provide the top remediation actions (P0 first), with crisp “what to change” and “where it lives” guidance
Output Contract
Return a structured object:
pvc_report_path: string # Path under docs/reviews/pvc/
target: string
context:
domain: string
deployment: string
risk_tier: low | medium | high
scorecard:
HF-101: PASS | PARTIAL | FAIL | N/A
HF-102: PASS | PARTIAL | FAIL | N/A
HF-103: PASS | PARTIAL | FAIL | N/A
ORG-201: PASS | PARTIAL | FAIL | N/A
GOV-202: PASS | PARTIAL | FAIL | N/A
ECON-301: PASS | PARTIAL | FAIL | N/A
ECON-302: PASS | PARTIAL | FAIL | N/A
SEC-401: PASS | PARTIAL | FAIL | N/A
SEC-402: PASS | PARTIAL | FAIL | N/A
CTRL-501: PASS | PARTIAL | FAIL | N/A
ASSUR-601: PASS | PARTIAL | FAIL | N/A
ASSUR-602: PASS | PARTIAL | FAIL | N/A
DG-701: PASS | PARTIAL | FAIL | N/A
ETH-801: PASS | PARTIAL | FAIL | N/A
ECO-901: PASS | PARTIAL | FAIL | N/A
actions:
- id: string
priority: P0 | P1 | P2
fix: string
artifact: doc | workflow | policy | hook | test | benchmark | code
owner: string
confidence: number # 0.0-1.0
evidence_anchors: array[string]
assumptions: array[string]
Example
Example: Review a workflow DSL change
Input:
target: "schemas/workflow_catalog.yaml (new gates + recovery semantics)"
risk_tier: medium
domain: general
deployment: customer-facing
Output:
pvc_report_path: "docs/reviews/pvc/2026-01-29_workflow-catalog-gates.pvc.yaml"
target: "schemas/workflow_catalog.yaml (new gates + recovery semantics)"
context:
domain: "general"
deployment: "customer-facing"
risk_tier: "medium"
scorecard:
HF-101: PARTIAL
HF-102: FAIL
HF-103: PARTIAL
ORG-201: FAIL
GOV-202: FAIL
ECON-301: FAIL
ECON-302: N/A
SEC-401: PARTIAL
SEC-402: PARTIAL
CTRL-501: PASS
ASSUR-601: PARTIAL
ASSUR-602: FAIL
DG-701: FAIL
ETH-801: N/A
ECO-901: PASS
actions:
- id: "DOC-001"
priority: P0
fix: "Add an operator-facing incident view schema and a minimal tabletop exercise for this workflow family."
artifact: doc
owner: "maintainers"
confidence: 0.7
evidence_anchors:
- "file:schemas/workflow_catalog.yaml#L1"
assumptions:
- "No runtime UI exists; report assumes log-based incident response."
Safety Constraints
- This skill is intended to be read-mostly.
- Only write under
docs/reviews/pvc/ unless the user explicitly asks for additional changes.
- Do not include secrets/PII in evidence excerpts; prefer references/hashes over raw content.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: perspective-validation3description: Create a Perspective Validation Checklist (PVC) report for a change, workflow, schema, or policy. Use when performing socio-technical review, governance review, operational readiness review, or when a PR touches schemas/hooks/skills/tools and needs a PVC report. Use when this capability is needed.4---56## Intent78Produce a **PVC report** (Perspective Validation Checklist) that scores the target against key non-type failure modes (human factors, governance, economics, adversarial security, loop stability, data governance, and legitimacy) with concrete evidence references and remediation actions.910**Success criteria:**11- A valid PVC report is written to `docs/reviews/pvc/` and passes `python skills/perspective-validation/scripts/validate_pvc.py`12- Each non-N/A score is justified with at least one evidence reference13- Any FAIL/PARTIAL includes a concrete remediation action (P0/P1/P2)1415**References:**16- `CHECKLIST.md`17- `pvc_report_template.yaml`1819## Inputs2021| Parameter | Required | Type | Description |22|-----------|----------|------|-------------|23| `target` | Yes | string | What to review (file/dir path, workflow name, or PR/change description) |24| `risk_tier` | No | enum | `low \| medium \| high` (defaults to `medium` if unclear) |25| `domain` | No | string | Domain context (e.g., `general`, `manufacturing`, `healthcare`) |26| `deployment` | No | string | Deployment context (e.g., `local-dev`, `customer-facing`, `safety-critical`) |2728## Procedure29301) **Scope the review**: Confirm `target`, `domain`, `deployment`, and `risk_tier`31 - If the target is a PR or branch diff, identify changed files and whether they touch critical paths (`schemas/`, `hooks/`, `skills/`, `grounded_agency/`, `tools/`, `spec/`)32332) **Collect evidence**: Read the minimum set of files needed to justify scores34 - Prefer evidence anchors as `file:path#Lline` (or `file:path:line` if needed)35 - When reviewing a change set, include at least one evidence item for “what changed” and “what it affects”36373) **Score the checklist**: For each PVC test ID (HF-101 … ECO-901), assign one of:38 - PASS: explicitly satisfied with evidence39 - PARTIAL: acknowledged but missing enforcement/measurement/runbook detail40 - FAIL: absent41 - N/A: not applicable to this target (include a brief reason in `assumptions` or in an action note)42434) **Write the report**: Create a new file in `docs/reviews/pvc/` named:44 - `YYYY-MM-DD_<short-slug>.pvc.yaml`45 - Start from `pvc_report_template.yaml`, then fill it in completely46475) **Validate**: Run `python skills/perspective-validation/scripts/validate_pvc.py`48 - If it fails, fix the report until it passes49506) **Summarize actions**: Provide the top remediation actions (P0 first), with crisp “what to change” and “where it lives” guidance5152## Output Contract5354Return a structured object:5556```yaml57pvc_report_path: string # Path under docs/reviews/pvc/58target: string59context:60 domain: string61 deployment: string62 risk_tier: low | medium | high63scorecard:64 HF-101: PASS | PARTIAL | FAIL | N/A65 HF-102: PASS | PARTIAL | FAIL | N/A66 HF-103: PASS | PARTIAL | FAIL | N/A67 ORG-201: PASS | PARTIAL | FAIL | N/A68 GOV-202: PASS | PARTIAL | FAIL | N/A69 ECON-301: PASS | PARTIAL | FAIL | N/A70 ECON-302: PASS | PARTIAL | FAIL | N/A71 SEC-401: PASS | PARTIAL | FAIL | N/A72 SEC-402: PASS | PARTIAL | FAIL | N/A73 CTRL-501: PASS | PARTIAL | FAIL | N/A74 ASSUR-601: PASS | PARTIAL | FAIL | N/A75 ASSUR-602: PASS | PARTIAL | FAIL | N/A76 DG-701: PASS | PARTIAL | FAIL | N/A77 ETH-801: PASS | PARTIAL | FAIL | N/A78 ECO-901: PASS | PARTIAL | FAIL | N/A79actions:80 - id: string81 priority: P0 | P1 | P282 fix: string83 artifact: doc | workflow | policy | hook | test | benchmark | code84 owner: string85confidence: number # 0.0-1.086evidence_anchors: array[string]87assumptions: array[string]88```8990## Example9192### Example: Review a workflow DSL change9394**Input:**95```yaml96target: "schemas/workflow_catalog.yaml (new gates + recovery semantics)"97risk_tier: medium98domain: general99deployment: customer-facing100```101102**Output:**103```yaml104pvc_report_path: "docs/reviews/pvc/2026-01-29_workflow-catalog-gates.pvc.yaml"105target: "schemas/workflow_catalog.yaml (new gates + recovery semantics)"106context:107 domain: "general"108 deployment: "customer-facing"109 risk_tier: "medium"110scorecard:111 HF-101: PARTIAL112 HF-102: FAIL113 HF-103: PARTIAL114 ORG-201: FAIL115 GOV-202: FAIL116 ECON-301: FAIL117 ECON-302: N/A118 SEC-401: PARTIAL119 SEC-402: PARTIAL120 CTRL-501: PASS121 ASSUR-601: PARTIAL122 ASSUR-602: FAIL123 DG-701: FAIL124 ETH-801: N/A125 ECO-901: PASS126actions:127 - id: "DOC-001"128 priority: P0129 fix: "Add an operator-facing incident view schema and a minimal tabletop exercise for this workflow family."130 artifact: doc131 owner: "maintainers"132confidence: 0.7133evidence_anchors:134 - "file:schemas/workflow_catalog.yaml#L1"135assumptions:136 - "No runtime UI exists; report assumes log-based incident response."137```138139## Safety Constraints140141- This skill is intended to be **read-mostly**.142- Only write under `docs/reviews/pvc/` unless the user explicitly asks for additional changes.143- Do not include secrets/PII in evidence excerpts; prefer references/hashes over raw content.144145---146> Converted and distributed by [TomeVault](https://tomevault.io/claim/synaptiai) — claim your Tome and manage your conversions.147<!-- tomevault:4.0:skill_md:2026-04-13 -->