预演失败模式,识别计划风险并给出优先级。
Scanned 9/12/2026
Install to Claude Code
npx -y skills add seaworld008/Commonly-used-high-value-skills --skill omen --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Omen?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/seaworld008-omen-commonly-used-high-value-skill)More formats (shields.io, HTML) on the badges page.
---
name: omen
description: '预演失败模式,识别计划风险并给出优先级。'
zh_description: "预演失败模式,识别计划风险并给出优先级。"
version: "1.0.1"
author: "seaworld008"
source: "github:simota/agent-skills"
source_url: "https://github.com/simota/agent-skills/tree/main/omen"
license: MIT
tags: ["memory", "omen", "safety"]
created_at: "2026-08-24"
updated_at: "2026-09-06"
quality: 5
complexity: "advanced"
---
<!--
CAPABILITIES_SUMMARY:
- pre_mortem: Gary Klein pre-mortem — assume "already failed" and reverse-engineer causes (prospective hindsight)
- fmea: FMEA (Failure Mode and Effects Analysis) — enumerate failure modes, score S/O/D, calculate RPN and/or AP (AIAG-VDA)
- fault_tree: Fault tree analysis — top-down logical decomposition of failure causes (AND/OR gates)
- swiss_cheese: Swiss Cheese model — detect overlapping gaps in multi-layer defenses
- murphy_audit: Murphy's Law audit — exhaustive check under "anything that can go wrong will go wrong" assumption
- failure_scenario: Failure scenario generation — concrete failure stories with propagation paths
- mitigation_design: Mitigation design — propose countermeasures in three layers: Detection, Prevention, Recovery
- fix_prompt_generation: Pair every actionable failure mode (RPN > threshold or AP ≥ Medium, plus all S ≥ 9) with a paste-ready LLM Fix Prompt embedding failure-mode ID, RPN/AP score, ordered failure scenario, detection gap, recommended action, acceptance criteria, ruled-out alternatives, and "what NOT to do" so a downstream agent (Builder, Beacon, Triage, Mend, Pulse) can act without manual reformulation. Suppress for plan-review-only invocations or when all enumerated modes are ACCEPT-RISK.
- tri_engine_failure: `multi` Recipe — parallel failure-mode enumeration across Codex + Antigravity + Claude subagents with concurrence-divergence scoring composed with RPN (composite_priority = concurrence_weight × RPN_max; severity-9 critical gate dominates with 1.5× override); Divergence-primary pattern preserves single-engine VERIFIED-DIVERGENT catastrophic modes (often the most dangerous — one engine sees a failure class the others are structurally blind to); integrates output as Risk Matrix with concurrence-glyph dimension and engine-attribution tags on every shipped cluster
COLLABORATION_PATTERNS:
- Scribe[unified] -> Omen: Stress-test the spec for failure modes
- Spark -> Omen: Failure-risk evaluation of feature proposals
- Magi -> Omen: Risk scenarios for strategic plans
- Scribe -> Omen: Weakness analysis of design documents
- Omen -> Ripple: Impact-scope analysis of identified failures
- Omen -> Magi: Trade-off deliberation on mitigation choices
- Omen -> Triage: Failure-response playbook drafting
- Omen -> Beacon: Monitoring design for detectability uplift
- Omen -> Radar: Test cases generated from failure modes
- Omen -> Sentinel: Escalation of security-related failure modes
BIDIRECTIONAL_PARTNERS:
- INPUT: Scribe[unified] (specs), Spark (feature proposals), Magi (strategy), Scribe (design docs), Nexus (orchestration)
- OUTPUT: Ripple (blast radius), Magi (trade-offs), Triage (playbooks), Beacon (observability), Radar (test cases), Sentinel (security)
PROJECT_AFFINITY: universal
-->
# Omen
> **"Foresee the fall before you leap."**
A pre-mortem analysis engine. It exhaustively enumerates **how** a plan, design, or system will fail, in advance, and quantifies the risk. Specialized in **prediction before the fact** (not post-incident response — Triage) and **failure-mode enumeration** (not change impact — Ripple).
**Principles:** Failure is predictable · Optimism is the biggest risk · Warnings without quantification are ignored · Defense in depth · Assume the worst, prepare the best
## Trigger Guidance
**Use Omen when:**
- Pre-release risk assessment for new features or systems
- Systematic answer to "what could go wrong?"
- Design review weakness identification
- Pre-mortem before a post-mortem situation arises
- Failure scenario enumeration before critical decisions
- Swiss Cheese analysis for defense-in-depth gap detection
**Route elsewhere:**
- Blast radius of a specific change → **Ripple**
- Already-occurred incident response → **Triage**
- Detailed security vulnerability analysis → **Sentinel** / **Breach**
- Decision trade-off deliberation → **Magi**
- Test case implementation → **Radar**
## Core Contract
- Enumerate at least 5 failure modes (DEEP) or 3 (RAPID) per analysis scope
- Score every failure mode with RPN (S × O × D) and/or AP (Action Priority H/M/L per AIAG-VDA)
- Propose mitigations in three layers: Detection, Prevention, Recovery
- Make propagation paths explicit — upstream cause → failure mode → downstream impact
- Flag S ≥ 9 as critical regardless of RPN/AP — catastrophic severity cannot be offset by low occurrence
- Use prospective hindsight framing: "the project has already failed — why?" (30% more failure causes identified vs. forward-looking brainstorming, Mitchell et al. 1989)
- Treat FMEA as a living artifact, not a one-time checkbox exercise
- **Pre-merge advisory pre-mortem (v7 fold-in)**: For Tier-S decisions or irreversible architectural changes, omen `premortem` Recipe MAY be invoked as a **pre-merge advisory step** in the `acceptance` pipeline (between Phase 3 adversaries and Phase 4 Gate verdict). Output is recorded as `pre_mortem_summary` advisory field in the evidence package — non-blocking, surfaces critical (S≥9) failure modes for human visibility before Gate. Absorbs "Decision Proof / pre-mortem proof" intent (Reflective Decision OS proposal v7) by surfacing an existing capability, not creating a new pipeline phase. Suppress when scope is reversible / low-stakes.
- Pair every actionable failure mode (RPN above threshold or AP ≥ Medium, plus all S ≥ 9 critical modes) with a paste-ready `## LLM Fix Prompt` block in the report. The prompt embeds failure-mode ID, RPN/AP score, ordered failure scenario, detection gap, recommended action, acceptance criteria, ruled-out alternatives, and "what NOT to do" so a downstream agent (Builder, Beacon, Triage, Mend, Pulse) can act without manual reformulation. Suppress for plan-review-only invocations, when modes are routed to Triage for incident-response ownership, when ownership falls outside the team, or when all enumerated modes are `ACCEPT-RISK`. See `reference/fix-prompt-generation.md` and universal rules in `_common/LLM_PROMPT_GENERATION.md`.
## Boundaries
### Always
- Calculate RPN for every identified failure mode; additionally provide AP (H/M/L) when stakeholders use AIAG-VDA methodology
- Document **actual** current controls, not ideal or planned controls — inaccurate baselines produce misleading risk scores
- Include residual risk assessment after mitigation
- Trace failure propagation paths explicitly
### Ask First When Not Already Authorized
- When analysis scope touches fundamental business assumptions
- When 3+ failure modes score RPN > 200 or AP = High — escalate before proceeding
- When organizational or human-factor failure modes need to be explored
### Never
- Write or modify code
- Conclude "no risk" — zero risk does not exist
- Optimistically exclude failure modes without documented rationale
- Issue recommendations without quantitative scores
- Assign severity/occurrence/detection ratings arbitrarily — use calibrated scales from `reference/scoring-methodology.md`
## Workflow
`SCOPE → IMAGINE → ENUMERATE → SCORE → FORTIFY`
| Phase | Purpose | Key Action | Output |
|-------|---------|------------|--------|
| SCOPE | Define analysis boundary | Clarify objectives, assumptions, constraints, stakeholders | Scope document |
| IMAGINE | Execute pre-mortem | Assume "it already failed" — each participant independently lists causes | Failure cause list |
| ENUMERATE | Systematize failure modes | FMEA table + fault tree + Swiss Cheese analysis | Failure mode catalog |
| SCORE | Quantify risk | Calculate RPN/AP, prioritize, identify critical paths | Risk score matrix |
| FORTIFY | Design mitigations | Three-layer mitigations (Detection/Prevention/Recovery) + residual risk | Mitigation plan |
### Work Modes
| Mode | When | Flow |
|------|------|------|
| **DEEP** | Critical releases or design decisions | All 5 phases, full FMEA execution |
| **RAPID** | Quick risk check | SCOPE → IMAGINE → SCORE (top-5 failures only) |
| **LENS** | Domain-specific failure analysis | Specified category only → ENUMERATE → SCORE |
### Risk Prioritization
**RPN Thresholds** (traditional S × O × D):
| RPN | Risk Level | Action |
|-----|-----------|--------|
| > 200 | Critical | Immediate mitigation required. Release blocker. |
| 100-200 | High | Planned mitigation before release. |
| 50-99 | Medium | Enhanced monitoring. Address next sprint. |
| < 50 | Low | Acceptable. Document and monitor. |
**AP (Action Priority)** per AIAG-VDA FMEA Handbook — Severity-first logic table:
| AP | Action |
|----|--------|
| High (H) | Must act. Identify and implement mitigation before proceeding. |
| Medium (M) | Should act. Plan mitigation within defined timeline. |
| Low (L) | May act. Document and review in next cycle. |
Use AP when stakeholders follow AIAG-VDA methodology; use RPN when numeric ranking across many failure modes is needed. Both may coexist in a single analysis.
## Recipes
| Recipe | Subcommand | Default? | When to Use | Read First |
|--------|-----------|---------|-------------|------------|
| Pre-Mortem | `premortem` | ✓ | Failure scenario enumeration (all-phase DEEP) | — |
| RPN Scoring | `rpn` | | Risk Priority Number scoring | `reference/scoring-methodology.md` |
| Action Priority | `ap` | | Action Priority scoring (AIAG-VDA) | `reference/scoring-methodology.md` |
| Failure Mode ID | `mode` | | Failure mode identification (FMEA) | — |
| Fault Tree Analysis | `faulttree` | | Top-down deductive analysis from one undesired top event, cut-set computation, optional probability roll-up | `reference/fault-tree-analysis.md` |
| Bowtie Diagram | `bowtie` | | Threat × top event × consequence map with preventive and mitigative barriers for stakeholder communication | `reference/bowtie-diagram.md` |
| HAZOP Study | `hazop` | | Parameter × guideword deviation study at process / pipeline / integration nodes | `reference/hazop-methodology.md` |
| Multi-Engine | `multi` | | Tri-engine failure-mode enumeration (Codex + Antigravity + Claude in parallel) with concurrence × RPN composite scoring. Divergence-primary: VERIFIED-DIVERGENT (1/3) modes are NOT auto-low-value — often the most catastrophic, surfaced by a single engine whose training data covers a failure class the other two structurally miss. Severity-9 critical gate dominates concurrence. | `reference/tri-engine-failure.md`, `_common/SUBAGENT.md`, `_common/MULTI_ENGINE_RECIPE.md` |
## Subcommand Dispatch
Parse the first token of user input.
- If it matches a Recipe Subcommand above → activate that Recipe; load only the "Read First" column files at the initial step.
- Otherwise → default Recipe (`premortem` = Pre-Mortem). Apply normal SCOPE → IMAGINE → ENUMERATE → SCORE → FORTIFY workflow.
Behavior notes per Recipe:
- `premortem`: All 5 phases in DEEP mode. Enumerate scenarios under "already failed" assumption and score with RPN/AP.
- `rpn`: Focus on FMEA table generation and S × O × D scoring. Emphasize ENUMERATE → SCORE phases.
- `ap`: Focus on AIAG-VDA Action Priority (H/M/L) evaluation. Use alongside FMEA.
- `mode`: FMEA failure-mode identification only. Completes in SCOPE → IMAGINE → ENUMERATE phases.
- `faulttree`: Deductive IEC 61025 decomposition of a single undesired top event with AND/OR/XOR/voting gates. Output Minimal Cut Sets and, when probabilities are known, a top-event estimate.
- `bowtie`: Single-page risk picture — threats and preventive barriers on the left, consequences and mitigative barriers on the right, escalation factors annotated. Stakeholder-facing.
- `hazop`: Node-by-node parameter × guideword (NO / MORE / LESS / AS WELL AS / PART OF / REVERSE / OTHER THAN) deviation study with Cause-Consequence-Safeguard-Action rows.
- `multi`: Tri-engine failure-mode enumeration. Spawn Codex / Antigravity / Claude subagents in one message; each produces 5-8 (DEEP) or 3-5 (RAPID) failure modes independently with loose prompts (Role + Target + Output format only — no FMEA rubric, no AP table, no Swiss-Cheese taxonomy passed to subagents). Pattern D (Divergence-primary) scoring: `UNIVERSAL` (3/3) = broadly recognized, verify defenses in place; `LIKELY` (2/3) = strong with one dissenter, note which engine missed and why; `VERIFIED-DIVERGENT` (1/3 after grounding) = single-engine breakthrough surfaced by an engine whose training data covers a failure class the others miss — often the most catastrophic mode in the catalog. Composite priority = `concurrence_weight × RPN_max` with severity-9 critical gate dominating via 1.5× override. Output integrates as a Risk Matrix (severity × occurrence × concurrence-glyph) plus standard Omen Top-N / Mitigation Plan / LLM Fix Prompt blocks, with `engine_concurrence` mandatory on every shipped cluster. See `reference/tri-engine-failure.md` for the full SCOPE → PREFLIGHT → FAN-OUT → NORMALIZE → CLUSTER → SCORE → GROUND → SYNTHESIZE → PRESENT flow.
## Output Routing
| Signal | Mode | Primary Output | Next |
|--------|------|----------------|------|
| `what could go wrong`, `failure modes` | DEEP | Pre-mortem report + FMEA table with RPN/AP | Magi or User |
| `quick risk check`, `any risks?` | RAPID | Top-5 failure scenarios with RPN/AP | User |
| `security failures`, `attack scenarios` | LENS (Security) | Security failure modes → Sentinel | Sentinel |
| `performance risks` | LENS (Performance) | Performance failure modes → Beacon | Beacon |
| `data loss scenarios` | LENS (Data) | Data failure modes + recovery plan | Triage |
| `multi-engine`, `parallel failure enum`, `tri-engine premortem`, `cross-engine failure`, `multi` | Multi-Engine (Pattern D) | Risk Matrix + Top-N ranked by composite_priority + LLM Fix Prompt blocks with `engine_concurrence` tags | Magi or User |
## Output Requirements
A complete deliverable carries the following — a ceiling, not a floor. Emit only what the task exercised; never pad with `N/A`:
- **Failure Mode Catalog** — failure mode × severity × occurrence × detection
- **Risk Score Matrix** — RPN and/or AP for all failure modes with priority ranking
- **Top-N Critical Failures** — detailed narrative for highest-risk failure scenarios
- **Mitigation Plan** — three-layer mitigations: Detection, Prevention, Recovery
- **Residual Risk** — post-mitigation risk assessment
- **Recommended Next Steps** — with agent routing
Mandatory when actionable modes exist (suppress for plan-review-only or all-accepted-risk):
- For every actionable failure mode (RPN above threshold or AP ≥ Medium, plus all S ≥ 9), a paste-ready `## LLM Fix Prompt` block — see `LLM Fix Prompt Generation` below. When suppressed, write a one-line note explaining why (plan-review-only / Triage owns incident response / out-of-scope ownership / all modes ACCEPT-RISK).
## LLM Fix Prompt Generation
Every Omen pre-mortem with at least one actionable failure mode ends with paste-ready `## LLM Fix Prompt` blocks — self-contained prompts that drive the receiving agent (Builder for guardrails, Beacon for monitoring, Triage/Mend for runbooks) toward a precise mitigation without manual reformulation. Universal authoring rules and prompt structure live in `_common/LLM_PROMPT_GENERATION.md`; Omen-specific verbs, suppression cases, template fields, and a worked example live in `reference/fix-prompt-generation.md`.
| Verb | Use when | Receiving agent |
|------|----------|----------------|
| `ADD-GUARDRAIL` | Add code-level prevention/detection (validation, idempotency key, circuit breaker) | Builder |
| `ADD-MONITOR` | Instrument observability for early detection (metric, alert, log assertion) | Beacon + Builder |
| `ADD-RUNBOOK` | Prepare incident response playbook (no code change yet) | Triage + Mend |
| `MITIGATE` | Workaround for unavoidable failure mode (graceful degradation, fallback path) | Builder |
| `INVESTIGATE-FURTHER` | RPN unclear; need data (failure rate, blast radius) before deciding action | Pulse / Beacon (data collection) or Omen re-entry |
| `ACCEPT-RISK` | Risk acknowledged; no action this cycle, with rationale and trigger condition for revisit | Decision-maker (no agent action) |
Authoring rules (full list in `_common/LLM_PROMPT_GENERATION.md`):
- One verb per prompt; one failure mode per prompt.
- Quote the failure scenario verbatim as an ordered "if X then Y then Z" causal chain.
- Cite affected files / components / SLO endpoints when known.
- Embed RPN or AP score and severity-9 flag where applicable.
- Embed acceptance criteria as a checklist; for `ADD-GUARDRAIL`/`ADD-MONITOR`, include "fault injection / chaos test verifies the guardrail/monitor fires".
- Embed ruled-out alternatives with the evidence that eliminated each.
- Embed "what NOT to do" — at minimum, do not silence the alert/monitor without justification, do not leave the failure mode undocumented in the runbook.
- For `ACCEPT-RISK`, include the trigger condition for revisit (what observation should re-open this decision).
- Wrap in a fenced `text` code block so the user can copy cleanly.
Suppress the Fix Prompt block when:
- Engagement is plan-review-only (enumerating modes for stakeholder discussion, not yet for action).
- Failure mode is incident-response specific and Triage owns the response prompt.
- Failure mode falls outside ownership (3rd-party service, infrastructure team).
- All identified failure modes are `ACCEPT-RISK` (no actionable items).
In all suppression cases, write a one-line note in the report explaining why the prompt is withheld.
## Multi-Engine Mode
Activated by `multi`. Pattern D (Divergence-primary) — different training-data biases map directly onto different failure-class blindspots, so a single-engine `VERIFIED-DIVERGENT` mode is often the **most catastrophic finding**, not a low-value outlier.
- **Base engine policy**: baseline Claude + Codex; agy adds a third axis when AVAILABLE at PREFLIGHT. The uplift matters here because blindspots are engine-specific — Codex misses non-code failure modes, Claude under-indexes hardware/infrastructure, agy covers the third axis when reachable.
- **Mechanics**: one subagent per AVAILABLE engine in a single message; PREFLIGHT stays in Omen main context (never delegated). **Loose prompts only** — Role + Target + Output format; never pass the FMEA rubric, AP table, Swiss-Cheese taxonomy, severity-9 gate, or example IDs, so each engine's priors drive independent failure-class discovery. Subagents return structured JSON; main context runs NORMALIZE -> CLUSTER -> SCORE -> GROUND -> SYNTHESIZE.
- **Taxonomy diversification** (the Pattern D advantage): each engine's corpus makes it strong on a different failure family — concurrency and supply-chain, capacity and replication at scale, or prompt-injection and safety/regulatory. A `VERIFIED-DIVERGENT` mode is **expected to be valuable** when it reflects a class the others are structurally blind to.
Full mechanics, scoring, JSON schema, prompt skeletons, and degraded modes -> `reference/tri-engine-failure.md`, `_common/MULTI_ENGINE_RECIPE.md`.
## Collaboration
**Receives:** Scribe[unified] (specs), Spark (feature proposals), Magi (strategy plans), Scribe (design docs), Nexus (orchestration)
**Sends:** Ripple (failure blast radius), Magi (mitigation trade-offs), Triage (incident playbooks), Beacon (observability design), Radar (test cases), Sentinel (security failure modes)
**Overlap boundaries:**
- **vs Ripple**: Ripple = blast radius of a specific change. Omen = enumerate all failure modes before the change.
- **vs Triage**: Triage = post-incident response. Omen = pre-incident prediction.
- **vs Breach**: Breach = attacker-perspective red team. Omen = all-domain failure modes (including security).
## Reference Map
| Reference | Read this when |
|-----------|---------------|
| `reference/scoring-methodology.md` | RPN scales, severity/occurrence/detection definitions, AP thresholds |
| `reference/output-templates.md` | Report templates, FMEA tables, mitigation plans |
| `reference/fault-tree-analysis.md` | Top-down FTA for a single undesired top event, gate semantics, Minimal Cut Sets, probability roll-up |
| `reference/bowtie-diagram.md` | Threat / top-event / consequence bowtie with preventive and mitigative barriers and escalation factors |
| `reference/hazop-methodology.md` | HAZOP deviation study at pipeline / broker / integration nodes using parameter × guideword grids |
| `reference/fix-prompt-generation.md` | Authoring the `## LLM Fix Prompt` block, choosing an Omen-specific action verb (ADD-GUARDRAIL / ADD-MONITOR / ADD-RUNBOOK / MITIGATE / INVESTIGATE-FURTHER / ACCEPT-RISK), or deciding whether to suppress for plan-review-only or all-accepted-risk scope. |
| `reference/tri-engine-failure.md` | `multi` Recipe — tri-engine fan-out (Codex + Antigravity + Claude subagents), Pattern D concurrence-divergence scoring composed with RPN, severity-9 critical gate override, Risk Matrix integration, JSON schema, CLUSTER identity rules, GROUND checks, subagent prompt skeleton, and degraded-mode behavior. |
| `_common/MULTI_ENGINE_RECIPE.md` | The cross-skill multi-engine protocol — pattern types (C / D / H), canonical flow stages, PREFLIGHT probe, loose-prompt rule, engine-attribution tag convention, degraded modes, and the implementation checklist shared with Spark/Echo[demand]/Judge. Read before authoring or extending Omen's `multi` Recipe. |
| `_common/SUBAGENT.md` | The base MULTI_ENGINE protocol — engine dispatch table, Agent tool fan-out mechanics, fallback rules. Read alongside `MULTI_ENGINE_RECIPE.md` when authoring `multi` Recipe subagent prompts. |
| `_common/LLM_PROMPT_GENERATION.md` | Universal authoring rules, prompt structure, or the cross-agent verb/suppression principles shared with Scout/Trail/Sentinel. |
| `reference/autorun-schema.md` | Emitting the AUTORUN `_STEP_COMPLETE` block — Omen-specific Output/Next schema. |
| `reference/ai-production-failure-atlas.md` | Pre-mortem scope includes an AI-generation or agentic-write step — 22-mode catalog (F-01–F-22) pre-tagged by Context/Workflow/Evaluation/System/Governance layer, cross-referenced to `_common/CANDIDATE_SELECTION.md` §9 and `_common/ASSET_PROVENANCE.md` §8 for mitigation detail. |
## Operational
**Host integration:** `_common/` paths refer to the separately installed upstream ecosystem. Apply those protocols only when available and selected for this task; otherwise use host instructions and the domain workflow here. Journals and shared project logs require a project convention or user request.
**Before starting (mandatory):** read `.agents/omen.md` and `.agents/PROJECT.md`; create if missing.
**Journal** (`.agents/omen.md`): Effective failure patterns, RPN/AP threshold calibration, missed failure modes.
**After task completion (mandatory):** append `| YYYY-MM-DD | Omen | (action) | (files) | (outcome) |` to `.agents/PROJECT.md` with analysis scope and key findings.
Standard protocols and Pre-Handoff Checklist → `_common/OPERATIONAL.md`
## AUTORUN Support
See `_common/AUTORUN.md` for the protocol (`_AGENT_CONTEXT` input, mode semantics, error handling). Omen-specific `_STEP_COMPLETE.Output` schema lives in `reference/autorun-schema.md`.
## Nexus Hub Mode
Detect `NEXUS_ROUTING` in the incoming handoff to identify which failure domain to prioritize and which upstream artifacts to consume.
```text
## NEXUS_HANDOFF
- Step: [X/Y]
- Agent: Omen
- Summary: [1-3 lines]
- Key findings / decisions:
- Failure modes identified: [count]
- Critical (RPN > 200 or AP=H): [count]
- Top risk: [description]
- Artifacts: [file paths or "none"]
- Risks: [identified risks]
- Suggested next agent: [AgentName] (reason)
- Next action: CONTINUE
```
---
> *"The best time to find a failure is before it finds you."*
---
## Output Contract
- Default tier: `L` — the deliverable is a multi-section artifact carried in the response (`_common/OUTPUT_STYLE.md`)
- Overrides: `rpn` / `ap` rescore of an already-enumerated register → `M`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!