{"id":"906b39f7-d6fd-4a74-bc53-7537b049e419","entityType":"agent","slug":"clawhub-voronindenis5-repair-or-replace","name":"repair-or-replace","canonicalUrl":"https://www.xpersona.co/agent/clawhub-voronindenis5-repair-or-replace","canonicalPath":"/agent/clawhub-voronindenis5-repair-or-replace","generatedAt":"2026-10-09T19:20:25.270Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T13:12:39.579Z","emptyReason":null},"description":"Decide whether to fix, replace, or recycle a broken item. Takes item type, age, symptoms, and repair estimate, then produces a scored recommendation across cost, lifespan, sentimental value, and environmental impact. Skill: repair-or-replace Owner: voronindenis5 Summary: Decide whether to fix, replace, or recycle a broken item. Takes item type, age, symptoms, and repair estimate, then produces a scored recommendation across cost, lifespan, sentimental value, and environmental impact. Tags: latest:0.1.2 Version history: v0.1.2 | 2026-08-14T06:19:14.590Z | auto - Removed the file skill-card.md. - No user-facing or functional change","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.6K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17b6amkd3wzqgg640v03a9r1n83gxs1:repair-or-replace","sourceUrl":"https://clawhub.ai/voronindenis5/repair-or-replace","homepage":"https://clawhub.ai/voronindenis5/skills/repair-or-replace","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/voronindenis5/repair-or-replace","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/voronindenis5/skills/repair-or-replace","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":68,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Decide whether to fix, replace, or recycle a broken item. Takes item type, age, symptoms, and repair estimate, then produces a scored recommendation across cost"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:12:39.579Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:12:39.579Z","emptyReason":null},"stars":null,"forks":null,"downloads":2583,"packageName":null,"latestVersion":"0.1.2","tractionLabel":"2.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:12:39.579Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T13:12:39.579Z","lastCrawledAt":"2026-10-09T13:12:39.579Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T13:12:39.579Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.2","createdAt":"2026-08-14T06:19:14.590Z","changelog":"- Removed the file skill-card.md. - No user-facing or functional changes; only documentation cleanup.","fileCount":12,"zipByteSize":19820},{"version":"0.1.1","createdAt":"2026-08-11T11:57:42.174Z","changelog":"- Removed the file: skill-card.md - No other changes to code or documentation.","fileCount":12,"zipByteSize":19989},{"version":"0.1.0","createdAt":"2026-08-05T19:48:34.610Z","changelog":"- Initial release of the \"repair-or-replace\" skill. - Helps decide whether to repair, replace, or recycle a broken item by scoring five factors: cost, remaining lifespan, condition, sentimental value, and environmental impact. - Requires structured input and outputs a clear, score-backed recommendation with reasoning. - Includes a decision matrix and detailed references for lifespan, environmental impact, and the scoring algorithm. - Interactive and command-line modes supported, with example commands provided.","fileCount":12,"zipByteSize":19984}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17b6amkd3wzqgg640v03a9r1n83gxs1:repair-or-replace","setupComplexity":"medium","setupSteps":["Setup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-repair-or-replace/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-repair-or-replace/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-repair-or-replace/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-repair-or-replace/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-repair-or-replace/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-repair-or-replace/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T19:20:25.268Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-repair-or-replace/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-repair-or-replace/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-repair-or-replace/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-repair-or-replace/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T13:12:39.579Z","emptyReason":null},"readme":"Skill: repair-or-replace\n\nOwner: voronindenis5\n\nSummary: Decide whether to fix, replace, or recycle a broken item. Takes item type, age, symptoms, and repair estimate, then produces a scored recommendation across cost, lifespan, sentimental value, and environmental impact.\n\nTags: latest:0.1.2\n\nVersion history:\n\nv0.1.2 | 2026-08-14T06:19:14.590Z | auto\n\n- Removed the file skill-card.md.  \n- No user-facing or functional changes; only documentation cleanup.\n\nv0.1.1 | 2026-08-11T11:57:42.174Z | auto\n\n- Removed the file: skill-card.md\n- No other changes to code or documentation.\n\nv0.1.0 | 2026-08-05T19:48:34.610Z | auto\n\n- Initial release of the \"repair-or-replace\" skill.\n- Helps decide whether to repair, replace, or recycle a broken item by scoring five factors: cost, remaining lifespan, condition, sentimental value, and environmental impact.\n- Requires structured input and outputs a clear, score-backed recommendation with reasoning.\n- Includes a decision matrix and detailed references for lifespan, environmental impact, and the scoring algorithm.\n- Interactive and command-line modes supported, with example commands provided.\n\nArchive index:\n\nArchive v0.1.2: 12 files, 19820 bytes\n\nFiles: LICENSE (1059b), README.md (4177b), references (0b), references/decision-matrix.md (6083b), references/environmental-impact.md (4882b), references/item-lifespans.md (5057b), scripts (0b), scripts/repair_or_replace.py (20643b), scripts/sample_run.sh (1921b), skill-card.md (2447b), SKILL.md (6551b), _meta.json (136b)\n\nFile v0.1.2:SKILL.md\n\n---\nname: repair-or-replace\ndescription: >\n  Decide whether to fix, replace, or recycle a broken item. Takes item type,\n  age, symptoms, and repair estimate, then produces a scored recommendation\n  across cost, lifespan, sentimental value, and environmental impact.\nversion: 1.0.0\nauthor: Denis Voronin\nlicense: MIT\ntags:\n  - decision-making\n  - consumer\n  - repair\n  - sustainability\n  - cost-analysis\n  - environment\n---\n\n# Repair or Replace\n\n> Don't guess. Score it.\n\n`Repair or Replace` is a skill that helps you decide whether to fix a broken\nitem, buy a replacement, or recycle it. It builds a weighted decision matrix\nacross five factors — repair cost, replacement cost, remaining lifespan,\nsentimental value, and environmental impact — then outputs a clear,\nscore-backed recommendation with reasoning.\n\n## When to Use\n\nActivate this skill when:\n\n- An appliance, device, or tool is broken and you're unsure whether to fix it\n- You have a repair estimate and want to compare it against replacement\n- You want to factor environmental impact into a purchasing decision\n- You're helping someone else decide what to do with a broken item\n- You want a structured, defensible decision rather than a gut call\n\n## How It Works\n\nThe script takes structured input about the item and its condition:\n\n| Parameter           | Description                                         | Example            |\n| ------------------- | --------------------------------------------------- | ------------------ |\n| `--item`            | What the item is                                    | \"washing machine\"  |\n| `--age`             | How old it is (years)                               | `8`                |\n| `--repair-cost`     | Estimated repair cost                               | `250`              |\n| `--replacement-cost`| Cost of a new equivalent                            | `800`              |\n| `--expected-lifespan`| Expected total lifespan of this item type (years)  | `12`               |\n| `--symptoms`        | What's wrong (free text)                            | \"won't spin\"       |\n| `--sentimental`     | Sentimental value (1-10)                            | `3`                |\n| `--condition`       | Overall condition aside from the fault (1-10)      | `6`                |\n\nIt then scores the decision across five dimensions, applies weights, and\nproduces a recommendation: **Repair**, **Replace**, or **Recycle/Donate**.\n\n## Decision Matrix\n\n| Factor              | Weight | Repair Favors                          | Replace Favors                      |\n| ------------------- | ------ | -------------------------------------- | ----------------------------------- |\n| **Cost Ratio**      | 30%    | Repair < 50% of replacement            | Repair > 50% of replacement         |\n| **Remaining Life**  | 25%    | <50% of expected lifespan used         | >50% of expected lifespan used      |\n| **Condition**       | 15%    | Good condition otherwise               | Multiple issues, poor condition     |\n| **Sentimental**     | 10%    | High sentimental value                 | Low sentimental value               |\n| **Environmental**   | 20%    | Repair avoids e-waste                  | New item is more efficient           |\n\nSee `references/decision-matrix.md` for the full scoring algorithm.\n\n## Quick Reference\n\n| Need                              | Command                                                                     |\n| --------------------------------- | --------------------------------------------------------------------------- |\n| Basic decision                    | `python3 scripts/repair_or_replace.py --item \"laptop\" --age 5 --repair-cost 300 --replacement-cost 1000` |\n| With symptoms and condition       | `python3 scripts/repair_or_replace.py --item \"fridge\" --age 10 --repair-cost 200 --replacement-cost 900 --symptoms \"not cooling\" --condition 4` |\n| Factor in sentiment               | `python3 scripts/repair_or_replace.py --item \"watch\" --age 20 --repair-cost 150 --replacement-cost 500 --sentimental 9` |\n| JSON output                       | `python3 scripts/repair_or_replace.py ... --format json`                    |\n| Interactive mode                  | `python3 scripts/repair_or_replace.py --interactive`                        |\n\n## Recommendations\n\nThe script outputs one of three recommendations:\n\n- **Repair** — the item is worth fixing. Cost-effective, has remaining lifespan,\n  or has sentimental/environmental value.\n- **Replace** — buying new is the better choice. Repair cost is too high\n  relative to replacement, or the item is near end-of-life.\n- **Recycle/Donate** — the item is beyond economic repair. Dispose of it\n  responsibly or donate if still partially functional.\n\nEach recommendation includes a confidence score (0-100) and itemized reasoning.\n\n## Files\n\n- `references/decision-matrix.md` — full scoring algorithm and weight rationale\n- `references/item-lifespans.md` — expected lifespan data for common items\n- `references/environmental-impact.md` — e-waste and sustainability considerations\n- `scripts/repair_or_replace.py` — the main decision engine\n- `scripts/sample_run.sh` — example invocations for different item types\n\n## Common Pitfalls\n\n1. **Ignoring hidden repair costs.** The repair estimate often excludes\n   diagnosis fees, shipping, or secondary issues discovered during repair. Add\n   15-20% to the estimate for a realistic comparison.\n\n2. **Overestimating remaining lifespan.** An 8-year-old washing machine with a\n   12-year expected lifespan doesn't have 4 \"good\" years left — the last\n   quarter of lifespan tends to have escalating failure rates.\n\n3. **Forgetting energy efficiency.** A new appliance may be significantly more\n   energy-efficient, saving money over time. Factor this into the replacement\n   cost (see `references/environmental-impact.md`).\n\n4. **Sentimental bias.** It's easy to over-value items with emotional\n   attachment. Be honest with the `--sentimental` score.\n\n5. **Not considering safety.** Some failures (gas appliances, electrical) carry\n   safety risks if repaired poorly. If in doubt, replace.\n\n## Verification Checklist\n\n- [ ] Repair estimate is realistic (includes diagnosis, parts, labor)\n- [ ] Replacement cost reflects a comparable-quality item\n- [ ] Expected lifespan matches the item type (see `references/item-lifespans.md`)\n- [ ] Condition score accounts for wear beyond the current fault\n- [ ] Environmental factor considered (especially for large appliances)\n\n## License\n\nMIT © Denis Voronin\n\nFile v0.1.2:README.md\n\n# Repair or Replace\n\n> Don't guess. Score it.\n\nA [Hermes Agent](https://hermes-agent.nousresearch.com/docs) / OpenClaw skill\nthat helps you decide whether to **fix, replace, or recycle** a broken item\nusing a weighted decision matrix across cost, lifespan, condition, sentiment,\nand environmental impact.\n\n## Why\n\nWhen something breaks, the repair-vs-replace decision is usually made on gut\nfeel — or worse, on whatever the repair shop quotes before you've thought it\nthrough. This skill structures the decision: it takes the numbers you have\n(repair cost, replacement cost, age), combines them with factors you might not\nhave considered (remaining lifespan, environmental cost, sentimental value),\nand produces a clear, score-backed recommendation with reasoning.\n\n## What's Included\n\n- **`SKILL.md`** — core skill: decision matrix, quick-reference, when-to-use.\n- **`references/`**\n  - `decision-matrix.md` — full scoring algorithm, weights, and rationale.\n  - `item-lifespans.md` — expected lifespan data for 40+ common items.\n  - `environmental-impact.md` — e-waste, embodied carbon, and sustainability.\n- **`scripts/repair_or_replace.py`** — the main decision engine (stdlib only).\n- **`scripts/sample_run.sh`** — example invocations for different item types.\n\n## Quick Start\n\n```bash\n# Basic decision\npython3 scripts/repair_or_replace.py \\\n  --item \"washing machine\" \\\n  --age 8 \\\n  --repair-cost 250 \\\n  --replacement-cost 800 \\\n  --expected-lifespan 12\n\n# With symptoms and condition\npython3 scripts/repair_or_replace.py \\\n  --item \"refrigerator\" \\\n  --age 10 \\\n  --repair-cost 200 \\\n  --replacement-cost 900 \\\n  --expected-lifespan 14 \\\n  --symptoms \"not cooling properly\" \\\n  --condition 4\n\n# Factor in strong sentimental value (grandfather's watch)\npython3 scripts/repair_or_replace.py \\\n  --item \"vintage watch\" \\\n  --age 20 \\\n  --repair-cost 150 \\\n  --replacement-cost 500 \\\n  --expected-lifespan 40 \\\n  --sentimental 9\n\n# JSON output\npython3 scripts/repair_or_replace.py --item \"laptop\" --age 5 \\\n  --repair-cost 300 --replacement-cost 1000 --format json\n\n# Interactive mode (prompts for each value)\npython3 scripts/repair_or_replace.py --interactive\n```\n\nExample output:\n\n```\nRepair or Replace — Decision Report\n====================================\nItem                : washing machine\nAge                 : 8 years\nExpected lifespan   : 12 years\n\nRepair cost         : $250\nReplacement cost    : $800\nCost ratio          : 31% (repair is 31% of replacement)\n\nDecision Matrix (weighted):\n  Cost Ratio        : 25.0/30  → Repair favored (cost ratio < 50%)\n  Remaining Life    : 12.5/25  → Only 33% lifespan remaining\n  Condition         : 10.5/15  → Decent overall condition\n  Sentimental       :  2.0/10  → Low sentimental value\n  Environmental     : 16.0/20  → Repair avoids e-waste\n\nTotal Score         : 66.0/100\n\nRecommendation      : REPAIR\nConfidence          : Moderate (66%)\n\nReasoning:\n  • Repair cost is well below the 50% threshold (31%)\n  • Item still has some remaining lifespan\n  • Repair avoids generating e-waste\n  ⚠ Only 33% of expected lifespan remains — consider future repair costs\n```\n\n## Decision Matrix\n\n| Factor            | Weight | What It Measures                              |\n| ----------------- | ------ | --------------------------------------------- |\n| Cost Ratio        | 30%    | Repair cost as % of replacement cost          |\n| Remaining Life    | 25%    | How much of expected lifespan is left         |\n| Condition         | 15%    | Overall state beyond the current fault        |\n| Sentimental       | 10%    | Emotional/irreplaceable value                 |\n| Environmental     | 20%    | E-waste avoidance + energy efficiency gains   |\n\nSee `references/decision-matrix.md` for the full algorithm.\n\n## Installation (Hermes Agent)\n\nCopy or symlink this directory into your skills folder:\n\n```bash\ncp -r repair-or-replace ~/.hermes/skills/\n```\n\nHermes auto-discovers skills with a valid `SKILL.md`. See the\n[skills docs](https://hermes-agent.nousresearch.com/docs) for details.\n\n## Requirements\n\n- Python 3.8+ (stdlib only — no pip install needed)\n\n## License\n\nMIT © Denis Voronin\n\nFile v0.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn75wwn4x6djaf28jbykeamazd81gtdp\",\n  \"slug\": \"repair-or-replace\",\n  \"version\": \"0.1.2\",\n  \"publishedAt\": 1786688354590\n}\n\nFile v0.1.2:references/decision-matrix.md\n\n# Decision Matrix — Scoring Algorithm\n\nThis document details the scoring algorithm used by `repair_or_replace.py`.\n\n## Overview\n\nThe decision engine scores the item across five factors, each weighted to\nreflect its importance in the repair-vs-replace decision. Factor scores are\nnormalized to 0-100, multiplied by their weight, and summed. The total\ndetermines the recommendation.\n\n## Factors and Weights\n\n| Factor           | Weight | Range   | Higher = Repair |\n| ---------------- | ------ | ------- | --------------- |\n| Cost Ratio       | 30%    | 0-100   | Yes             |\n| Remaining Life   | 25%    | 0-100   | Yes             |\n| Condition        | 15%    | 0-100   | Yes             |\n| Sentimental      | 10%    | 0-100   | Yes             |\n| Environmental    | 20%    | 0-100   | Mixed           |\n\n## Scoring Details\n\n### 1. Cost Ratio (30%)\n\nThe ratio of repair cost to replacement cost:\n\n```\ncost_ratio = repair_cost / replacement_cost\n```\n\n| Cost Ratio | Score | Interpretation                       |\n| ---------- | ----- | ------------------------------------ |\n| 0-20%      | 100   | Repair is very cheap — definitely fix |\n| 20-30%     | 90    | Repair is cost-effective              |\n| 30-40%     | 75    | Repair is reasonable                  |\n| 40-50%     | 60    | Borderline — consider other factors   |\n| 50-60%     | 40    | Replace starts looking better         |\n| 60-80%     | 20    | Replace is strongly favored           |\n| 80-100%+   | 0     | Repair makes no financial sense       |\n\n**Formula:** `score = max(0, min(100, 100 * (1 - cost_ratio / 0.5)))`\n\nThis creates a linear scale where a 50% ratio scores 50, and the score\ndecreases as the ratio increases.\n\n### 2. Remaining Life (25%)\n\nHow much of the expected lifespan is left:\n\n```\nlifespan_used = age / expected_lifespan\nremaining_pct = 1 - lifespan_used\n```\n\n| Lifespan Used | Score | Interpretation                           |\n| ------------- | ----- | ---------------------------------------- |\n| 0-25%         | 100   | Nearly new — lots of life left           |\n| 25-50%        | 85    | Still in the prime of life               |\n| 50-60%        | 65    | Past midpoint but functional             |\n| 60-75%        | 40    | Entering failure-prone years             |\n| 75-90%        | 20    | Near end of life                         |\n| 90-100%+      | 5     | At or beyond expected lifespan           |\n\n**Depreciation curve:** The score isn't linear because failure rates accelerate\nin the last 25% of lifespan. A 50% penalty applies after 75% lifespan used.\n\n### 3. Condition (15%)\n\nOverall condition of the item beyond the current fault (user-supplied, 1-10):\n\n```\nnormalized = condition_score / 10 * 100\n```\n\n| Condition (1-10) | Score | Meaning                          |\n| ---------------- | ----- | -------------------------------- |\n| 8-10             | 90-100| Excellent — like new             |\n| 6-7              | 65-80 | Good — minor wear               |\n| 4-5              | 40-55 | Fair — noticeable wear          |\n| 1-3              | 10-30 | Poor — multiple issues          |\n\n### 4. Sentimental Value (10%)\n\nEmotional or irreplaceable value (user-supplied, 1-10):\n\n| Sentimental (1-10) | Score | Meaning                        |\n| ------------------ | ----- | ------------------------------ |\n| 9-10               | 90-100| Irreplaceable (heirloom)       |\n| 7-8                | 70-80 | Very meaningful                |\n| 5-6                | 50-60 | Some attachment                |\n| 3-4                | 30-40 | Minor attachment               |\n| 1-2                | 10-20 | Purely functional              |\n\n### 5. Environmental Impact (20%)\n\nTwo sub-factors:\n\n**a) E-waste avoidance (12 of 20 points):**\nRepairing avoids sending the item to landfill. Always favors repair.\n\n**b) Energy efficiency of replacement (8 of 20 points):**\nIf the replacement is significantly more energy-efficient (user supplies\n`--efficiency-gain` as a percentage), some points shift toward replace.\n\n```\ne_waste_score = 12  # always awarded for repair\nefficiency_score = min(8, efficiency_gain_pct / 100 * 8)\nenvironmental = e_waste_score + efficiency_score\n```\n\nIf no efficiency data is provided, the full 20 points favor repair.\n\n## Total Score and Recommendation\n\n```\ntotal = (cost_score * 0.30) + (life_score * 0.25) + (condition_score * 0.15)\n      + (sentimental_score * 0.10) + (environmental_score * 0.20)\n```\n\n| Total Score | Recommendation | Confidence |\n| ----------- | -------------- | ---------- |\n| 70-100      | REPAIR         | High       |\n| 55-69       | REPAIR         | Moderate   |\n| 45-54       | BORDERLINE     | Low        |\n| 31-44       | REPLACE        | Moderate   |\n| 0-30        | REPLACE / RECYCLE | High    |\n\n### Special Cases\n\n- **Repair cost ≥ 80% of replacement + age > 75% of lifespan → RECYCLE**.\n  The item is at end-of-life and repair isn't economical.\n- **Sentimental score = 10 → always at least REPAIR (borderline)**, regardless\n  of cost. Heirlooms deserve a chance.\n- **Safety-critical items** (gas, electrical): If symptoms suggest a safety\n  risk, the script adds a warning to consult a professional.\n\n## Weight Rationale\n\n- **Cost (30%)**: The dominant factor for most decisions. People care most\n  about money.\n- **Remaining Life (25%)**: Even a cheap repair isn't worth it if the item will\n  fail again soon.\n- **Environmental (20%)**: E-waste is a growing crisis. Giving it 20% ensures\n  it's a real factor, not a tiebreaker.\n- **Condition (15%)**: A well-maintained item deserves repair more than a\n  neglected one.\n- **Sentimental (10%)**: Real but shouldn't override economics for most items.\n  Weighted enough to tip borderline cases.\n\n## Customization\n\nAll weights are constants at the top of `repair_or_replace.py`. Adjust them to\nmatch your priorities:\n\n```python\nWEIGHTS = {\n    'cost': 0.30,\n    'lifespan': 0.25,\n    'condition': 0.15,\n    'sentimental': 0.10,\n    'environmental': 0.20,\n}\n```\n\nFor example, an environmentally-focused user might set `environmental: 0.35`\nand `cost: 0.20`.\n\nFile v0.1.2:references/environmental-impact.md\n\n# Environmental Impact — E-Waste and Sustainability\n\nThe environmental factor in the Repair or Replace decision matrix accounts for\ntwo considerations: avoiding e-waste through repair, and the energy efficiency\ngains of newer models.\n\n## The E-Waste Problem\n\n### Scale\n\n- The world generates **~57 million tonnes** of e-waste annually (UN Global\n  E-waste Monitor, 2021).\n- Only **~17%** is formally collected and recycled.\n- E-waste contains toxic materials (lead, mercury, cadmium) that leach into\n  soil and water when landfilled.\n\n### Embodied Carbon\n\nEvery manufactured product carries \"embodied\" carbon — the emissions from\nextraction, manufacturing, transport, and packaging:\n\n| Item                | Embodied CO2 (kg)  | Equivalent            |\n| ------------------- | ------------------ | --------------------- |\n| Smartphone          | ~70                | 300 km of driving     |\n| Laptop              | ~200               | 1,000 km of driving   |\n| Washing machine     | ~400               | 2,000 km of driving   |\n| Refrigerator        | ~500               | 2,500 km of driving   |\n| Television (55\")    | ~300               | 1,500 km of driving   |\n\nRepairing extends the useful life of these embodied emissions. Keeping a\nlaptop for 5 years instead of 3 reduces its annual carbon footprint by ~40%.\n\n### Right to Repair\n\nThe Right to Repair movement advocates for:\n- Access to repair manuals and schematics\n- Availability of spare parts\n- No software locks preventing third-party repair\n- Modular designs that are easy to disassemble\n\nSupporting repair — even when slightly more expensive — signals market demand\nfor repairable products.\n\n## When Replacement Is More Environmental\n\n### Energy Efficiency Gains\n\nFor energy-hungry appliances, a new model may be significantly more efficient:\n\n| Appliance          | Efficiency Gain (10-year-old → new) |\n| ------------------ | ------------------------------------ |\n| Refrigerator       | 20-40% more efficient                |\n| Washing machine    | 25-50% more efficient                |\n| Dishwasher         | 20-30% more efficient                |\n| Air conditioner    | 30-50% more efficient                |\n| Water heater       | 15-30% more efficient                |\n\n### The Break-Even Calculation\n\nThe environmental benefit of replacement depends on whether the energy savings\noffset the embodied carbon of the new item:\n\n```\nyears_to_break_even = new_item_embodied_carbon / annual_energy_savings_carbon\n```\n\n**Example:** A new refrigerator saves ~100 kg CO2/year in energy. The new\nfridge has ~500 kg embodied CO2. Break-even: 5 years. If the old fridge has\nno remaining life, replace. If it has 5+ years left, repair is better.\n\n### Rule of Thumb\n\n- **Electronics (phones, laptops):** Almost always repair. Embodied carbon is\n  high relative to energy savings.\n- **Major appliances:** Compare. If the old unit is 10+ years old, replacement\n  may save more carbon through efficiency.\n- **Small appliances:** Usually repair. Low embodied carbon, low efficiency\n  gains.\n\n## Recycling and Disposal\n\n### If You Replace\n\nWhen replacing an item, ensure the old one is disposed of responsibly:\n\n1. **Donate** if still functional — many charities, schools, and community\n   centers accept working electronics and appliances.\n2. **E-waste recycling** — use certified e-waste recyclers (e-STEWARDS,\n   R2v3 certified). Do NOT put electronics in regular trash.\n3. **Manufacturer takeback** — many manufacturers (Apple, Dell, Best Buy)\n   have free recycling programs.\n4. **Battery removal** — remove batteries before disposal; they require\n   separate recycling.\n\n### If You Recycle (Beyond Repair)\n\nWhen the decision is \"Recycle/Donate\" (item beyond economic repair):\n\n1. **Data wipe** — for electronics, securely erase all data before disposal.\n2. **Parts harvesting** — some repair shops buy non-functional units for parts.\n3. **Certified recycler** — ensure the recycler doesn't ship waste to\n   developing countries (a common illegal practice).\n\n## Scoring in This Skill\n\nThe environmental factor in `repair_or_replace.py` works as follows:\n\n| Scenario                              | Environmental Score |\n| ------------------------------------- | ------------------- |\n| Repair, no efficiency data            | 20/20 (full repair) |\n| Repair, replacement is more efficient | 12-20/20 (partial)  |\n| Replace for efficiency reasons        | 0-8/20 (replacement) |\n\nIf you know the efficiency gain of a replacement, supply it with\n`--efficiency-gain <percent>` for a more accurate score.\n\n## Further Reading\n\n- [UN Global E-waste Monitor](https://ewastemonitor.info/)\n- [iFixit Repair Guides](https://www.ifixit.com/Guide)\n- [EPA Electronics Donation and Recycling](https://www.epa.gov/recycle/electronics-donation-and-recycling)\n- [Repair Café International](https://repaircafe.org/)\n\nFile v0.1.2:references/item-lifespans.md\n\n# Item Lifespans — Expected Useful Life Data\n\nExpected lifespan data for common household and personal items. Used as\ndefault values by `repair_or_replace.py` when `--expected-lifespan` is not\nprovided.\n\n## Major Appliances\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Refrigerator          | 14                        |\n| Washing machine       | 12                        |\n| Dryer (gas/electric)  | 13                        |\n| Dishwasher            | 10                        |\n| Oven / Range          | 15                        |\n| Microwave             | 9                         |\n| Freezer               | 16                        |\n| Garbage disposal      | 12                        |\n| Water heater (tank)   | 12                        |\n| Water heater (tankless)| 20                       |\n\n## HVAC\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Central AC unit       | 15                        |\n| Furnace (gas)         | 20                        |\n| Heat pump             | 15                        |\n| Window AC             | 10                        |\n| Air purifier          | 5                         |\n\n## Electronics\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Laptop                | 5                         |\n| Desktop computer      | 7                         |\n| Smartphone            | 3                         |\n| Tablet                | 4                         |\n| Television (LED/OLED) | 7                         |\n| Gaming console        | 6                         |\n| Monitor               | 8                         |\n| Router / Modem        | 5                         |\n| Smartwatch            | 3                         |\n| Bluetooth speaker     | 4                         |\n\n## Small Appliances\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Coffee maker          | 5                         |\n| Toaster               | 6                         |\n| Blender               | 5                         |\n| Vacuum cleaner        | 8                         |\n| Iron                  | 6                         |\n| Food processor        | 7                         |\n| Air fryer             | 4                         |\n\n## Furniture & Home\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Sofa / Couch          | 10                        |\n| Mattress              | 8                         |\n| Dining table          | 15                        |\n| Office chair          | 7                         |\n| Bookshelf             | 15                        |\n\n## Personal Items\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Mechanical watch      | 40                        |\n| Quartz watch          | 10                        |\n| Eyeglasses            | 3                         |\n| Bicycle               | 15                        |\n| Backpack              | 5                         |\n| Shoes (athletic)      | 1                         |\n| Shoes (leather)       | 5                         |\n\n## Tools & Equipment\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Power drill           | 10                        |\n| Lawn mower            | 8                         |\n| Pressure washer       | 7                         |\n| Circular saw          | 12                        |\n| Garden hose           | 5                         |\n\n## Vehicles\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Car (average)         | 12                        |\n| Motorcycle            | 15                        |\n| Bicycle ( commuting)  | 10                        |\n| E-bike                | 7                         |\n\n## Notes\n\n- **These are averages.** Actual lifespan varies by brand quality, usage\n  frequency, maintenance, and operating environment.\n- **Last quartile penalty:** Items in the last 25% of expected lifespan have\n  accelerating failure rates. A 9-year-old washing machine (75% of 12-year\n  lifespan) is more likely to need another repair soon than the raw percentage\n  suggests.\n- **Maintenance matters:** Well-maintained items can exceed these ranges\n  significantly. Neglected items fail early.\n- **Quality tiers:** Budget brands typically achieve 60-80% of these lifespans.\n  Premium brands can exceed them by 20-40%.\n\n## Sources\n\n- Consumer Reports appliance lifespan studies\n- National Association of Home Builders (NAHB) \"Study of Life Expectancy of\n  Home Components\"\n- EPA electronics lifecycle data\n- Industry manufacturer specifications\n\n> Lifespan data is approximate and for guidance only. Always consider the\n> specific brand, model, and condition of your item.\n\nFile v0.1.2:skill-card.md\n\n## Description:\n\nDecide whether to fix, replace, or recycle a broken item using item age, symptoms, repair estimate, expected lifespan, sentiment, condition, and environmental impact.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[voronindenis5](https://clawhub.ai/user/voronindenis5)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nExternal users and agents use this skill to make structured repair, replacement, or recycling decisions for broken household items, electronics, tools, vehicles, and personal goods. It turns user-provided costs, age, condition, sentiment, and efficiency details into a scored recommendation with reasoning.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Users may treat repair, replacement, or recycling recommendations as professional safety advice for gas, electrical, vehicle, or other safety-critical items.\n\nMitigation: Present recommendations as decision support and advise users to consult qualified professionals before repairing or continuing to use safety-critical items.\n\nRisk: The CLI help path may crash because of an unescaped percent sign in argparse help text.\n\nMitigation: Use documented example commands or normal CLI execution paths until the help text is corrected.\n\n## Reference(s):\n\n- [Server-Resolved GitHub Repository](https://github.com/voronindenis5/repair-or-replace)\n- [ClawHub Skill Page](https://clawhub.ai/voronindenis5/skills/repair-or-replace)\n- [Decision Matrix](references/decision-matrix.md)\n- [Item Lifespans](references/item-lifespans.md)\n- [Environmental Impact](references/environmental-impact.md)\n- [Hermes Agent Skills Documentation](https://hermes-agent.nousresearch.com/docs)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, JSON, shell commands, guidance]\n\n**Output Format:** [Plain-text decision reports, optional JSON reports, and Markdown guidance with example shell commands.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Reports include factor scores, a total score, a recommendation, confidence, reasoning, and warnings when applicable.]\n\n## Skill Version(s):\n\n0.1.2 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.1.2:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Denis Voronin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v0.1.1: 12 files, 19989 bytes\n\nFiles: LICENSE (1059b), README.md (4177b), references (0b), references/decision-matrix.md (6083b), references/environmental-impact.md (4882b), references/item-lifespans.md (5057b), scripts (0b), scripts/repair_or_replace.py (20643b), scripts/sample_run.sh (1921b), skill-card.md (2840b), SKILL.md (6551b), _meta.json (136b)\n\nFile v0.1.1:SKILL.md\n\n---\nname: repair-or-replace\ndescription: >\n  Decide whether to fix, replace, or recycle a broken item. Takes item type,\n  age, symptoms, and repair estimate, then produces a scored recommendation\n  across cost, lifespan, sentimental value, and environmental impact.\nversion: 1.0.0\nauthor: Denis Voronin\nlicense: MIT\ntags:\n  - decision-making\n  - consumer\n  - repair\n  - sustainability\n  - cost-analysis\n  - environment\n---\n\n# Repair or Replace\n\n> Don't guess. Score it.\n\n`Repair or Replace` is a skill that helps you decide whether to fix a broken\nitem, buy a replacement, or recycle it. It builds a weighted decision matrix\nacross five factors — repair cost, replacement cost, remaining lifespan,\nsentimental value, and environmental impact — then outputs a clear,\nscore-backed recommendation with reasoning.\n\n## When to Use\n\nActivate this skill when:\n\n- An appliance, device, or tool is broken and you're unsure whether to fix it\n- You have a repair estimate and want to compare it against replacement\n- You want to factor environmental impact into a purchasing decision\n- You're helping someone else decide what to do with a broken item\n- You want a structured, defensible decision rather than a gut call\n\n## How It Works\n\nThe script takes structured input about the item and its condition:\n\n| Parameter           | Description                                         | Example            |\n| ------------------- | --------------------------------------------------- | ------------------ |\n| `--item`            | What the item is                                    | \"washing machine\"  |\n| `--age`             | How old it is (years)                               | `8`                |\n| `--repair-cost`     | Estimated repair cost                               | `250`              |\n| `--replacement-cost`| Cost of a new equivalent                            | `800`              |\n| `--expected-lifespan`| Expected total lifespan of this item type (years)  | `12`               |\n| `--symptoms`        | What's wrong (free text)                            | \"won't spin\"       |\n| `--sentimental`     | Sentimental value (1-10)                            | `3`                |\n| `--condition`       | Overall condition aside from the fault (1-10)      | `6`                |\n\nIt then scores the decision across five dimensions, applies weights, and\nproduces a recommendation: **Repair**, **Replace**, or **Recycle/Donate**.\n\n## Decision Matrix\n\n| Factor              | Weight | Repair Favors                          | Replace Favors                      |\n| ------------------- | ------ | -------------------------------------- | ----------------------------------- |\n| **Cost Ratio**      | 30%    | Repair < 50% of replacement            | Repair > 50% of replacement         |\n| **Remaining Life**  | 25%    | <50% of expected lifespan used         | >50% of expected lifespan used      |\n| **Condition**       | 15%    | Good condition otherwise               | Multiple issues, poor condition     |\n| **Sentimental**     | 10%    | High sentimental value                 | Low sentimental value               |\n| **Environmental**   | 20%    | Repair avoids e-waste                  | New item is more efficient           |\n\nSee `references/decision-matrix.md` for the full scoring algorithm.\n\n## Quick Reference\n\n| Need                              | Command                                                                     |\n| --------------------------------- | --------------------------------------------------------------------------- |\n| Basic decision                    | `python3 scripts/repair_or_replace.py --item \"laptop\" --age 5 --repair-cost 300 --replacement-cost 1000` |\n| With symptoms and condition       | `python3 scripts/repair_or_replace.py --item \"fridge\" --age 10 --repair-cost 200 --replacement-cost 900 --symptoms \"not cooling\" --condition 4` |\n| Factor in sentiment               | `python3 scripts/repair_or_replace.py --item \"watch\" --age 20 --repair-cost 150 --replacement-cost 500 --sentimental 9` |\n| JSON output                       | `python3 scripts/repair_or_replace.py ... --format json`                    |\n| Interactive mode                  | `python3 scripts/repair_or_replace.py --interactive`                        |\n\n## Recommendations\n\nThe script outputs one of three recommendations:\n\n- **Repair** — the item is worth fixing. Cost-effective, has remaining lifespan,\n  or has sentimental/environmental value.\n- **Replace** — buying new is the better choice. Repair cost is too high\n  relative to replacement, or the item is near end-of-life.\n- **Recycle/Donate** — the item is beyond economic repair. Dispose of it\n  responsibly or donate if still partially functional.\n\nEach recommendation includes a confidence score (0-100) and itemized reasoning.\n\n## Files\n\n- `references/decision-matrix.md` — full scoring algorithm and weight rationale\n- `references/item-lifespans.md` — expected lifespan data for common items\n- `references/environmental-impact.md` — e-waste and sustainability considerations\n- `scripts/repair_or_replace.py` — the main decision engine\n- `scripts/sample_run.sh` — example invocations for different item types\n\n## Common Pitfalls\n\n1. **Ignoring hidden repair costs.** The repair estimate often excludes\n   diagnosis fees, shipping, or secondary issues discovered during repair. Add\n   15-20% to the estimate for a realistic comparison.\n\n2. **Overestimating remaining lifespan.** An 8-year-old washing machine with a\n   12-year expected lifespan doesn't have 4 \"good\" years left — the last\n   quarter of lifespan tends to have escalating failure rates.\n\n3. **Forgetting energy efficiency.** A new appliance may be significantly more\n   energy-efficient, saving money over time. Factor this into the replacement\n   cost (see `references/environmental-impact.md`).\n\n4. **Sentimental bias.** It's easy to over-value items with emotional\n   attachment. Be honest with the `--sentimental` score.\n\n5. **Not considering safety.** Some failures (gas appliances, electrical) carry\n   safety risks if repaired poorly. If in doubt, replace.\n\n## Verification Checklist\n\n- [ ] Repair estimate is realistic (includes diagnosis, parts, labor)\n- [ ] Replacement cost reflects a comparable-quality item\n- [ ] Expected lifespan matches the item type (see `references/item-lifespans.md`)\n- [ ] Condition score accounts for wear beyond the current fault\n- [ ] Environmental factor considered (especially for large appliances)\n\n## License\n\nMIT © Denis Voronin\n\nFile v0.1.1:README.md\n\n# Repair or Replace\n\n> Don't guess. Score it.\n\nA [Hermes Agent](https://hermes-agent.nousresearch.com/docs) / OpenClaw skill\nthat helps you decide whether to **fix, replace, or recycle** a broken item\nusing a weighted decision matrix across cost, lifespan, condition, sentiment,\nand environmental impact.\n\n## Why\n\nWhen something breaks, the repair-vs-replace decision is usually made on gut\nfeel — or worse, on whatever the repair shop quotes before you've thought it\nthrough. This skill structures the decision: it takes the numbers you have\n(repair cost, replacement cost, age), combines them with factors you might not\nhave considered (remaining lifespan, environmental cost, sentimental value),\nand produces a clear, score-backed recommendation with reasoning.\n\n## What's Included\n\n- **`SKILL.md`** — core skill: decision matrix, quick-reference, when-to-use.\n- **`references/`**\n  - `decision-matrix.md` — full scoring algorithm, weights, and rationale.\n  - `item-lifespans.md` — expected lifespan data for 40+ common items.\n  - `environmental-impact.md` — e-waste, embodied carbon, and sustainability.\n- **`scripts/repair_or_replace.py`** — the main decision engine (stdlib only).\n- **`scripts/sample_run.sh`** — example invocations for different item types.\n\n## Quick Start\n\n```bash\n# Basic decision\npython3 scripts/repair_or_replace.py \\\n  --item \"washing machine\" \\\n  --age 8 \\\n  --repair-cost 250 \\\n  --replacement-cost 800 \\\n  --expected-lifespan 12\n\n# With symptoms and condition\npython3 scripts/repair_or_replace.py \\\n  --item \"refrigerator\" \\\n  --age 10 \\\n  --repair-cost 200 \\\n  --replacement-cost 900 \\\n  --expected-lifespan 14 \\\n  --symptoms \"not cooling properly\" \\\n  --condition 4\n\n# Factor in strong sentimental value (grandfather's watch)\npython3 scripts/repair_or_replace.py \\\n  --item \"vintage watch\" \\\n  --age 20 \\\n  --repair-cost 150 \\\n  --replacement-cost 500 \\\n  --expected-lifespan 40 \\\n  --sentimental 9\n\n# JSON output\npython3 scripts/repair_or_replace.py --item \"laptop\" --age 5 \\\n  --repair-cost 300 --replacement-cost 1000 --format json\n\n# Interactive mode (prompts for each value)\npython3 scripts/repair_or_replace.py --interactive\n```\n\nExample output:\n\n```\nRepair or Replace — Decision Report\n====================================\nItem                : washing machine\nAge                 : 8 years\nExpected lifespan   : 12 years\n\nRepair cost         : $250\nReplacement cost    : $800\nCost ratio          : 31% (repair is 31% of replacement)\n\nDecision Matrix (weighted):\n  Cost Ratio        : 25.0/30  → Repair favored (cost ratio < 50%)\n  Remaining Life    : 12.5/25  → Only 33% lifespan remaining\n  Condition         : 10.5/15  → Decent overall condition\n  Sentimental       :  2.0/10  → Low sentimental value\n  Environmental     : 16.0/20  → Repair avoids e-waste\n\nTotal Score         : 66.0/100\n\nRecommendation      : REPAIR\nConfidence          : Moderate (66%)\n\nReasoning:\n  • Repair cost is well below the 50% threshold (31%)\n  • Item still has some remaining lifespan\n  • Repair avoids generating e-waste\n  ⚠ Only 33% of expected lifespan remains — consider future repair costs\n```\n\n## Decision Matrix\n\n| Factor            | Weight | What It Measures                              |\n| ----------------- | ------ | --------------------------------------------- |\n| Cost Ratio        | 30%    | Repair cost as % of replacement cost          |\n| Remaining Life    | 25%    | How much of expected lifespan is left         |\n| Condition         | 15%    | Overall state beyond the current fault        |\n| Sentimental       | 10%    | Emotional/irreplaceable value                 |\n| Environmental     | 20%    | E-waste avoidance + energy efficiency gains   |\n\nSee `references/decision-matrix.md` for the full algorithm.\n\n## Installation (Hermes Agent)\n\nCopy or symlink this directory into your skills folder:\n\n```bash\ncp -r repair-or-replace ~/.hermes/skills/\n```\n\nHermes auto-discovers skills with a valid `SKILL.md`. See the\n[skills docs](https://hermes-agent.nousresearch.com/docs) for details.\n\n## Requirements\n\n- Python 3.8+ (stdlib only — no pip install needed)\n\n## License\n\nMIT © Denis Voronin\n\nFile v0.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn75wwn4x6djaf28jbykeamazd81gtdp\",\n  \"slug\": \"repair-or-replace\",\n  \"version\": \"0.1.1\",\n  \"publishedAt\": 1786449462174\n}\n\nFile v0.1.1:references/decision-matrix.md\n\n# Decision Matrix — Scoring Algorithm\n\nThis document details the scoring algorithm used by `repair_or_replace.py`.\n\n## Overview\n\nThe decision engine scores the item across five factors, each weighted to\nreflect its importance in the repair-vs-replace decision. Factor scores are\nnormalized to 0-100, multiplied by their weight, and summed. The total\ndetermines the recommendation.\n\n## Factors and Weights\n\n| Factor           | Weight | Range   | Higher = Repair |\n| ---------------- | ------ | ------- | --------------- |\n| Cost Ratio       | 30%    | 0-100   | Yes             |\n| Remaining Life   | 25%    | 0-100   | Yes             |\n| Condition        | 15%    | 0-100   | Yes             |\n| Sentimental      | 10%    | 0-100   | Yes             |\n| Environmental    | 20%    | 0-100   | Mixed           |\n\n## Scoring Details\n\n### 1. Cost Ratio (30%)\n\nThe ratio of repair cost to replacement cost:\n\n```\ncost_ratio = repair_cost / replacement_cost\n```\n\n| Cost Ratio | Score | Interpretation                       |\n| ---------- | ----- | ------------------------------------ |\n| 0-20%      | 100   | Repair is very cheap — definitely fix |\n| 20-30%     | 90    | Repair is cost-effective              |\n| 30-40%     | 75    | Repair is reasonable                  |\n| 40-50%     | 60    | Borderline — consider other factors   |\n| 50-60%     | 40    | Replace starts looking better         |\n| 60-80%     | 20    | Replace is strongly favored           |\n| 80-100%+   | 0     | Repair makes no financial sense       |\n\n**Formula:** `score = max(0, min(100, 100 * (1 - cost_ratio / 0.5)))`\n\nThis creates a linear scale where a 50% ratio scores 50, and the score\ndecreases as the ratio increases.\n\n### 2. Remaining Life (25%)\n\nHow much of the expected lifespan is left:\n\n```\nlifespan_used = age / expected_lifespan\nremaining_pct = 1 - lifespan_used\n```\n\n| Lifespan Used | Score | Interpretation                           |\n| ------------- | ----- | ---------------------------------------- |\n| 0-25%         | 100   | Nearly new — lots of life left           |\n| 25-50%        | 85    | Still in the prime of life               |\n| 50-60%        | 65    | Past midpoint but functional             |\n| 60-75%        | 40    | Entering failure-prone years             |\n| 75-90%        | 20    | Near end of life                         |\n| 90-100%+      | 5     | At or beyond expected lifespan           |\n\n**Depreciation curve:** The score isn't linear because failure rates accelerate\nin the last 25% of lifespan. A 50% penalty applies after 75% lifespan used.\n\n### 3. Condition (15%)\n\nOverall condition of the item beyond the current fault (user-supplied, 1-10):\n\n```\nnormalized = condition_score / 10 * 100\n```\n\n| Condition (1-10) | Score | Meaning                          |\n| ---------------- | ----- | -------------------------------- |\n| 8-10             | 90-100| Excellent — like new             |\n| 6-7              | 65-80 | Good — minor wear               |\n| 4-5              | 40-55 | Fair — noticeable wear          |\n| 1-3              | 10-30 | Poor — multiple issues          |\n\n### 4. Sentimental Value (10%)\n\nEmotional or irreplaceable value (user-supplied, 1-10):\n\n| Sentimental (1-10) | Score | Meaning                        |\n| ------------------ | ----- | ------------------------------ |\n| 9-10               | 90-100| Irreplaceable (heirloom)       |\n| 7-8                | 70-80 | Very meaningful                |\n| 5-6                | 50-60 | Some attachment                |\n| 3-4                | 30-40 | Minor attachment               |\n| 1-2                | 10-20 | Purely functional              |\n\n### 5. Environmental Impact (20%)\n\nTwo sub-factors:\n\n**a) E-waste avoidance (12 of 20 points):**\nRepairing avoids sending the item to landfill. Always favors repair.\n\n**b) Energy efficiency of replacement (8 of 20 points):**\nIf the replacement is significantly more energy-efficient (user supplies\n`--efficiency-gain` as a percentage), some points shift toward replace.\n\n```\ne_waste_score = 12  # always awarded for repair\nefficiency_score = min(8, efficiency_gain_pct / 100 * 8)\nenvironmental = e_waste_score + efficiency_score\n```\n\nIf no efficiency data is provided, the full 20 points favor repair.\n\n## Total Score and Recommendation\n\n```\ntotal = (cost_score * 0.30) + (life_score * 0.25) + (condition_score * 0.15)\n      + (sentimental_score * 0.10) + (environmental_score * 0.20)\n```\n\n| Total Score | Recommendation | Confidence |\n| ----------- | -------------- | ---------- |\n| 70-100      | REPAIR         | High       |\n| 55-69       | REPAIR         | Moderate   |\n| 45-54       | BORDERLINE     | Low        |\n| 31-44       | REPLACE        | Moderate   |\n| 0-30        | REPLACE / RECYCLE | High    |\n\n### Special Cases\n\n- **Repair cost ≥ 80% of replacement + age > 75% of lifespan → RECYCLE**.\n  The item is at end-of-life and repair isn't economical.\n- **Sentimental score = 10 → always at least REPAIR (borderline)**, regardless\n  of cost. Heirlooms deserve a chance.\n- **Safety-critical items** (gas, electrical): If symptoms suggest a safety\n  risk, the script adds a warning to consult a professional.\n\n## Weight Rationale\n\n- **Cost (30%)**: The dominant factor for most decisions. People care most\n  about money.\n- **Remaining Life (25%)**: Even a cheap repair isn't worth it if the item will\n  fail again soon.\n- **Environmental (20%)**: E-waste is a growing crisis. Giving it 20% ensures\n  it's a real factor, not a tiebreaker.\n- **Condition (15%)**: A well-maintained item deserves repair more than a\n  neglected one.\n- **Sentimental (10%)**: Real but shouldn't override economics for most items.\n  Weighted enough to tip borderline cases.\n\n## Customization\n\nAll weights are constants at the top of `repair_or_replace.py`. Adjust them to\nmatch your priorities:\n\n```python\nWEIGHTS = {\n    'cost': 0.30,\n    'lifespan': 0.25,\n    'condition': 0.15,\n    'sentimental': 0.10,\n    'environmental': 0.20,\n}\n```\n\nFor example, an environmentally-focused user might set `environmental: 0.35`\nand `cost: 0.20`.\n\nFile v0.1.1:references/environmental-impact.md\n\n# Environmental Impact — E-Waste and Sustainability\n\nThe environmental factor in the Repair or Replace decision matrix accounts for\ntwo considerations: avoiding e-waste through repair, and the energy efficiency\ngains of newer models.\n\n## The E-Waste Problem\n\n### Scale\n\n- The world generates **~57 million tonnes** of e-waste annually (UN Global\n  E-waste Monitor, 2021).\n- Only **~17%** is formally collected and recycled.\n- E-waste contains toxic materials (lead, mercury, cadmium) that leach into\n  soil and water when landfilled.\n\n### Embodied Carbon\n\nEvery manufactured product carries \"embodied\" carbon — the emissions from\nextraction, manufacturing, transport, and packaging:\n\n| Item                | Embodied CO2 (kg)  | Equivalent            |\n| ------------------- | ------------------ | --------------------- |\n| Smartphone          | ~70                | 300 km of driving     |\n| Laptop              | ~200               | 1,000 km of driving   |\n| Washing machine     | ~400               | 2,000 km of driving   |\n| Refrigerator        | ~500               | 2,500 km of driving   |\n| Television (55\")    | ~300               | 1,500 km of driving   |\n\nRepairing extends the useful life of these embodied emissions. Keeping a\nlaptop for 5 years instead of 3 reduces its annual carbon footprint by ~40%.\n\n### Right to Repair\n\nThe Right to Repair movement advocates for:\n- Access to repair manuals and schematics\n- Availability of spare parts\n- No software locks preventing third-party repair\n- Modular designs that are easy to disassemble\n\nSupporting repair — even when slightly more expensive — signals market demand\nfor repairable products.\n\n## When Replacement Is More Environmental\n\n### Energy Efficiency Gains\n\nFor energy-hungry appliances, a new model may be significantly more efficient:\n\n| Appliance          | Efficiency Gain (10-year-old → new) |\n| ------------------ | ------------------------------------ |\n| Refrigerator       | 20-40% more efficient                |\n| Washing machine    | 25-50% more efficient                |\n| Dishwasher         | 20-30% more efficient                |\n| Air conditioner    | 30-50% more efficient                |\n| Water heater       | 15-30% more efficient                |\n\n### The Break-Even Calculation\n\nThe environmental benefit of replacement depends on whether the energy savings\noffset the embodied carbon of the new item:\n\n```\nyears_to_break_even = new_item_embodied_carbon / annual_energy_savings_carbon\n```\n\n**Example:** A new refrigerator saves ~100 kg CO2/year in energy. The new\nfridge has ~500 kg embodied CO2. Break-even: 5 years. If the old fridge has\nno remaining life, replace. If it has 5+ years left, repair is better.\n\n### Rule of Thumb\n\n- **Electronics (phones, laptops):** Almost always repair. Embodied carbon is\n  high relative to energy savings.\n- **Major appliances:** Compare. If the old unit is 10+ years old, replacement\n  may save more carbon through efficiency.\n- **Small appliances:** Usually repair. Low embodied carbon, low efficiency\n  gains.\n\n## Recycling and Disposal\n\n### If You Replace\n\nWhen replacing an item, ensure the old one is disposed of responsibly:\n\n1. **Donate** if still functional — many charities, schools, and community\n   centers accept working electronics and appliances.\n2. **E-waste recycling** — use certified e-waste recyclers (e-STEWARDS,\n   R2v3 certified). Do NOT put electronics in regular trash.\n3. **Manufacturer takeback** — many manufacturers (Apple, Dell, Best Buy)\n   have free recycling programs.\n4. **Battery removal** — remove batteries before disposal; they require\n   separate recycling.\n\n### If You Recycle (Beyond Repair)\n\nWhen the decision is \"Recycle/Donate\" (item beyond economic repair):\n\n1. **Data wipe** — for electronics, securely erase all data before disposal.\n2. **Parts harvesting** — some repair shops buy non-functional units for parts.\n3. **Certified recycler** — ensure the recycler doesn't ship waste to\n   developing countries (a common illegal practice).\n\n## Scoring in This Skill\n\nThe environmental factor in `repair_or_replace.py` works as follows:\n\n| Scenario                              | Environmental Score |\n| ------------------------------------- | ------------------- |\n| Repair, no efficiency data            | 20/20 (full repair) |\n| Repair, replacement is more efficient | 12-20/20 (partial)  |\n| Replace for efficiency reasons        | 0-8/20 (replacement) |\n\nIf you know the efficiency gain of a replacement, supply it with\n`--efficiency-gain <percent>` for a more accurate score.\n\n## Further Reading\n\n- [UN Global E-waste Monitor](https://ewastemonitor.info/)\n- [iFixit Repair Guides](https://www.ifixit.com/Guide)\n- [EPA Electronics Donation and Recycling](https://www.epa.gov/recycle/electronics-donation-and-recycling)\n- [Repair Café International](https://repaircafe.org/)\n\nFile v0.1.1:references/item-lifespans.md\n\n# Item Lifespans — Expected Useful Life Data\n\nExpected lifespan data for common household and personal items. Used as\ndefault values by `repair_or_replace.py` when `--expected-lifespan` is not\nprovided.\n\n## Major Appliances\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Refrigerator          | 14                        |\n| Washing machine       | 12                        |\n| Dryer (gas/electric)  | 13                        |\n| Dishwasher            | 10                        |\n| Oven / Range          | 15                        |\n| Microwave             | 9                         |\n| Freezer               | 16                        |\n| Garbage disposal      | 12                        |\n| Water heater (tank)   | 12                        |\n| Water heater (tankless)| 20                       |\n\n## HVAC\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Central AC unit       | 15                        |\n| Furnace (gas)         | 20                        |\n| Heat pump             | 15                        |\n| Window AC             | 10                        |\n| Air purifier          | 5                         |\n\n## Electronics\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Laptop                | 5                         |\n| Desktop computer      | 7                         |\n| Smartphone            | 3                         |\n| Tablet                | 4                         |\n| Television (LED/OLED) | 7                         |\n| Gaming console        | 6                         |\n| Monitor               | 8                         |\n| Router / Modem        | 5                         |\n| Smartwatch            | 3                         |\n| Bluetooth speaker     | 4                         |\n\n## Small Appliances\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Coffee maker          | 5                         |\n| Toaster               | 6                         |\n| Blender               | 5                         |\n| Vacuum cleaner        | 8                         |\n| Iron                  | 6                         |\n| Food processor        | 7                         |\n| Air fryer             | 4                         |\n\n## Furniture & Home\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Sofa / Couch          | 10                        |\n| Mattress              | 8                         |\n| Dining table          | 15                        |\n| Office chair          | 7                         |\n| Bookshelf             | 15                        |\n\n## Personal Items\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Mechanical watch      | 40                        |\n| Quartz watch          | 10                        |\n| Eyeglasses            | 3                         |\n| Bicycle               | 15                        |\n| Backpack              | 5                         |\n| Shoes (athletic)      | 1                         |\n| Shoes (leather)       | 5                         |\n\n## Tools & Equipment\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Power drill           | 10                        |\n| Lawn mower            | 8                         |\n| Pressure washer       | 7                         |\n| Circular saw          | 12                        |\n| Garden hose           | 5                         |\n\n## Vehicles\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Car (average)         | 12                        |\n| Motorcycle            | 15                        |\n| Bicycle ( commuting)  | 10                        |\n| E-bike                | 7                         |\n\n## Notes\n\n- **These are averages.** Actual lifespan varies by brand quality, usage\n  frequency, maintenance, and operating environment.\n- **Last quartile penalty:** Items in the last 25% of expected lifespan have\n  accelerating failure rates. A 9-year-old washing machine (75% of 12-year\n  lifespan) is more likely to need another repair soon than the raw percentage\n  suggests.\n- **Maintenance matters:** Well-maintained items can exceed these ranges\n  significantly. Neglected items fail early.\n- **Quality tiers:** Budget brands typically achieve 60-80% of these lifespans.\n  Premium brands can exceed them by 20-40%.\n\n## Sources\n\n- Consumer Reports appliance lifespan studies\n- National Association of Home Builders (NAHB) \"Study of Life Expectancy of\n  Home Components\"\n- EPA electronics lifecycle data\n- Industry manufacturer specifications\n\n> Lifespan data is approximate and for guidance only. Always consider the\n> specific brand, model, and condition of your item.\n\nFile v0.1.1:skill-card.md\n\n## Description:\n\nDecide whether to fix, replace, or recycle a broken item by scoring cost, lifespan, condition, sentimental value, and environmental impact.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[voronindenis5](https://clawhub.ai/user/voronindenis5)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill as a local decision aid for household repair choices, comparing repair estimates against replacement cost, remaining lifespan, item condition, sentiment, and sustainability factors.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The recommendation may be mistaken for professional repair, safety, legal, or financial advice.\n\nMitigation: Treat the output as decision support only, and consult a qualified professional for gas, electrical, vehicle, or high-cost repairs.\n\nRisk: Incomplete or unrealistic inputs can produce misleading cost and lifespan comparisons.\n\nMitigation: Use realistic repair estimates, comparable replacement prices, expected lifespan data, and condition scores before relying on the recommendation.\n\nRisk: Safety-sensitive symptoms can change the decision beyond the scoring model.\n\nMitigation: For symptoms such as smoke, sparks, gas, overheating, fire, or electrical shock, stop using the item and consult a professional.\n\n## Reference(s):\n\n- [Source repository](https://github.com/voronindenis5/repair-or-replace)\n- [ClawHub skill page](https://clawhub.ai/voronindenis5/skills/repair-or-replace)\n- [Decision Matrix - Scoring Algorithm](references/decision-matrix.md)\n- [Item Lifespans - Expected Useful Life Data](references/item-lifespans.md)\n- [Environmental Impact - E-Waste and Sustainability](references/environmental-impact.md)\n- [Hermes Agent documentation](https://hermes-agent.nousresearch.com/docs)\n- [UN Global E-waste Monitor](https://ewastemonitor.info/)\n- [iFixit Repair Guides](https://www.ifixit.com/Guide)\n- [EPA Electronics Donation and Recycling](https://www.epa.gov/recycle/electronics-donation-and-recycling)\n- [Repair Cafe International](https://repaircafe.org/)\n\n## Skill Output:\n\n**Output Type(s):** [text, json, shell commands, guidance]\n\n**Output Format:** [Plain text decision report or JSON, with optional shell command examples in documentation]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces a recommendation, confidence level, factor scores, reasoning, and warnings; interactive mode can prompt for inputs.]\n\n## Skill Version(s):\n\n0.1.1 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.1.1:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Denis Voronin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v0.1.0: 12 files, 19984 bytes\n\nFiles: LICENSE (1059b), README.md (4177b), references (0b), references/decision-matrix.md (6083b), references/environmental-impact.md (4882b), references/item-lifespans.md (5057b), scripts (0b), scripts/repair_or_replace.py (20643b), scripts/sample_run.sh (1921b), skill-card.md (2811b), SKILL.md (6551b), _meta.json (136b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: repair-or-replace\ndescription: >\n  Decide whether to fix, replace, or recycle a broken item. Takes item type,\n  age, symptoms, and repair estimate, then produces a scored recommendation\n  across cost, lifespan, sentimental value, and environmental impact.\nversion: 1.0.0\nauthor: Denis Voronin\nlicense: MIT\ntags:\n  - decision-making\n  - consumer\n  - repair\n  - sustainability\n  - cost-analysis\n  - environment\n---\n\n# Repair or Replace\n\n> Don't guess. Score it.\n\n`Repair or Replace` is a skill that helps you decide whether to fix a broken\nitem, buy a replacement, or recycle it. It builds a weighted decision matrix\nacross five factors — repair cost, replacement cost, remaining lifespan,\nsentimental value, and environmental impact — then outputs a clear,\nscore-backed recommendation with reasoning.\n\n## When to Use\n\nActivate this skill when:\n\n- An appliance, device, or tool is broken and you're unsure whether to fix it\n- You have a repair estimate and want to compare it against replacement\n- You want to factor environmental impact into a purchasing decision\n- You're helping someone else decide what to do with a broken item\n- You want a structured, defensible decision rather than a gut call\n\n## How It Works\n\nThe script takes structured input about the item and its condition:\n\n| Parameter           | Description                                         | Example            |\n| ------------------- | --------------------------------------------------- | ------------------ |\n| `--item`            | What the item is                                    | \"washing machine\"  |\n| `--age`             | How old it is (years)                               | `8`                |\n| `--repair-cost`     | Estimated repair cost                               | `250`              |\n| `--replacement-cost`| Cost of a new equivalent                            | `800`              |\n| `--expected-lifespan`| Expected total lifespan of this item type (years)  | `12`               |\n| `--symptoms`        | What's wrong (free text)                            | \"won't spin\"       |\n| `--sentimental`     | Sentimental value (1-10)                            | `3`                |\n| `--condition`       | Overall condition aside from the fault (1-10)      | `6`                |\n\nIt then scores the decision across five dimensions, applies weights, and\nproduces a recommendation: **Repair**, **Replace**, or **Recycle/Donate**.\n\n## Decision Matrix\n\n| Factor              | Weight | Repair Favors                          | Replace Favors                      |\n| ------------------- | ------ | -------------------------------------- | ----------------------------------- |\n| **Cost Ratio**      | 30%    | Repair < 50% of replacement            | Repair > 50% of replacement         |\n| **Remaining Life**  | 25%    | <50% of expected lifespan used         | >50% of expected lifespan used      |\n| **Condition**       | 15%    | Good condition otherwise               | Multiple issues, poor condition     |\n| **Sentimental**     | 10%    | High sentimental value                 | Low sentimental value               |\n| **Environmental**   | 20%    | Repair avoids e-waste                  | New item is more efficient           |\n\nSee `references/decision-matrix.md` for the full scoring algorithm.\n\n## Quick Reference\n\n| Need                              | Command                                                                     |\n| --------------------------------- | --------------------------------------------------------------------------- |\n| Basic decision                    | `python3 scripts/repair_or_replace.py --item \"laptop\" --age 5 --repair-cost 300 --replacement-cost 1000` |\n| With symptoms and condition       | `python3 scripts/repair_or_replace.py --item \"fridge\" --age 10 --repair-cost 200 --replacement-cost 900 --symptoms \"not cooling\" --condition 4` |\n| Factor in sentiment               | `python3 scripts/repair_or_replace.py --item \"watch\" --age 20 --repair-cost 150 --replacement-cost 500 --sentimental 9` |\n| JSON output                       | `python3 scripts/repair_or_replace.py ... --format json`                    |\n| Interactive mode                  | `python3 scripts/repair_or_replace.py --interactive`                        |\n\n## Recommendations\n\nThe script outputs one of three recommendations:\n\n- **Repair** — the item is worth fixing. Cost-effective, has remaining lifespan,\n  or has sentimental/environmental value.\n- **Replace** — buying new is the better choice. Repair cost is too high\n  relative to replacement, or the item is near end-of-life.\n- **Recycle/Donate** — the item is beyond economic repair. Dispose of it\n  responsibly or donate if still partially functional.\n\nEach recommendation includes a confidence score (0-100) and itemized reasoning.\n\n## Files\n\n- `references/decision-matrix.md` — full scoring algorithm and weight rationale\n- `references/item-lifespans.md` — expected lifespan data for common items\n- `references/environmental-impact.md` — e-waste and sustainability considerations\n- `scripts/repair_or_replace.py` — the main decision engine\n- `scripts/sample_run.sh` — example invocations for different item types\n\n## Common Pitfalls\n\n1. **Ignoring hidden repair costs.** The repair estimate often excludes\n   diagnosis fees, shipping, or secondary issues discovered during repair. Add\n   15-20% to the estimate for a realistic comparison.\n\n2. **Overestimating remaining lifespan.** An 8-year-old washing machine with a\n   12-year expected lifespan doesn't have 4 \"good\" years left — the last\n   quarter of lifespan tends to have escalating failure rates.\n\n3. **Forgetting energy efficiency.** A new appliance may be significantly more\n   energy-efficient, saving money over time. Factor this into the replacement\n   cost (see `references/environmental-impact.md`).\n\n4. **Sentimental bias.** It's easy to over-value items with emotional\n   attachment. Be honest with the `--sentimental` score.\n\n5. **Not considering safety.** Some failures (gas appliances, electrical) carry\n   safety risks if repaired poorly. If in doubt, replace.\n\n## Verification Checklist\n\n- [ ] Repair estimate is realistic (includes diagnosis, parts, labor)\n- [ ] Replacement cost reflects a comparable-quality item\n- [ ] Expected lifespan matches the item type (see `references/item-lifespans.md`)\n- [ ] Condition score accounts for wear beyond the current fault\n- [ ] Environmental factor considered (especially for large appliances)\n\n## License\n\nMIT © Denis Voronin\n\nFile v0.1.0:README.md\n\n# Repair or Replace\n\n> Don't guess. Score it.\n\nA [Hermes Agent](https://hermes-agent.nousresearch.com/docs) / OpenClaw skill\nthat helps you decide whether to **fix, replace, or recycle** a broken item\nusing a weighted decision matrix across cost, lifespan, condition, sentiment,\nand environmental impact.\n\n## Why\n\nWhen something breaks, the repair-vs-replace decision is usually made on gut\nfeel — or worse, on whatever the repair shop quotes before you've thought it\nthrough. This skill structures the decision: it takes the numbers you have\n(repair cost, replacement cost, age), combines them with factors you might not\nhave considered (remaining lifespan, environmental cost, sentimental value),\nand produces a clear, score-backed recommendation with reasoning.\n\n## What's Included\n\n- **`SKILL.md`** — core skill: decision matrix, quick-reference, when-to-use.\n- **`references/`**\n  - `decision-matrix.md` — full scoring algorithm, weights, and rationale.\n  - `item-lifespans.md` — expected lifespan data for 40+ common items.\n  - `environmental-impact.md` — e-waste, embodied carbon, and sustainability.\n- **`scripts/repair_or_replace.py`** — the main decision engine (stdlib only).\n- **`scripts/sample_run.sh`** — example invocations for different item types.\n\n## Quick Start\n\n```bash\n# Basic decision\npython3 scripts/repair_or_replace.py \\\n  --item \"washing machine\" \\\n  --age 8 \\\n  --repair-cost 250 \\\n  --replacement-cost 800 \\\n  --expected-lifespan 12\n\n# With symptoms and condition\npython3 scripts/repair_or_replace.py \\\n  --item \"refrigerator\" \\\n  --age 10 \\\n  --repair-cost 200 \\\n  --replacement-cost 900 \\\n  --expected-lifespan 14 \\\n  --symptoms \"not cooling properly\" \\\n  --condition 4\n\n# Factor in strong sentimental value (grandfather's watch)\npython3 scripts/repair_or_replace.py \\\n  --item \"vintage watch\" \\\n  --age 20 \\\n  --repair-cost 150 \\\n  --replacement-cost 500 \\\n  --expected-lifespan 40 \\\n  --sentimental 9\n\n# JSON output\npython3 scripts/repair_or_replace.py --item \"laptop\" --age 5 \\\n  --repair-cost 300 --replacement-cost 1000 --format json\n\n# Interactive mode (prompts for each value)\npython3 scripts/repair_or_replace.py --interactive\n```\n\nExample output:\n\n```\nRepair or Replace — Decision Report\n====================================\nItem                : washing machine\nAge                 : 8 years\nExpected lifespan   : 12 years\n\nRepair cost         : $250\nReplacement cost    : $800\nCost ratio          : 31% (repair is 31% of replacement)\n\nDecision Matrix (weighted):\n  Cost Ratio        : 25.0/30  → Repair favored (cost ratio < 50%)\n  Remaining Life    : 12.5/25  → Only 33% lifespan remaining\n  Condition         : 10.5/15  → Decent overall condition\n  Sentimental       :  2.0/10  → Low sentimental value\n  Environmental     : 16.0/20  → Repair avoids e-waste\n\nTotal Score         : 66.0/100\n\nRecommendation      : REPAIR\nConfidence          : Moderate (66%)\n\nReasoning:\n  • Repair cost is well below the 50% threshold (31%)\n  • Item still has some remaining lifespan\n  • Repair avoids generating e-waste\n  ⚠ Only 33% of expected lifespan remains — consider future repair costs\n```\n\n## Decision Matrix\n\n| Factor            | Weight | What It Measures                              |\n| ----------------- | ------ | --------------------------------------------- |\n| Cost Ratio        | 30%    | Repair cost as % of replacement cost          |\n| Remaining Life    | 25%    | How much of expected lifespan is left         |\n| Condition         | 15%    | Overall state beyond the current fault        |\n| Sentimental       | 10%    | Emotional/irreplaceable value                 |\n| Environmental     | 20%    | E-waste avoidance + energy efficiency gains   |\n\nSee `references/decision-matrix.md` for the full algorithm.\n\n## Installation (Hermes Agent)\n\nCopy or symlink this directory into your skills folder:\n\n```bash\ncp -r repair-or-replace ~/.hermes/skills/\n```\n\nHermes auto-discovers skills with a valid `SKILL.md`. See the\n[skills docs](https://hermes-agent.nousresearch.com/docs) for details.\n\n## Requirements\n\n- Python 3.8+ (stdlib only — no pip install needed)\n\n## License\n\nMIT © Denis Voronin\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn75wwn4x6djaf28jbykeamazd81gtdp\",\n  \"slug\": \"repair-or-replace\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1785959314610\n}\n\nFile v0.1.0:references/decision-matrix.md\n\n# Decision Matrix — Scoring Algorithm\n\nThis document details the scoring algorithm used by `repair_or_replace.py`.\n\n## Overview\n\nThe decision engine scores the item across five factors, each weighted to\nreflect its importance in the repair-vs-replace decision. Factor scores are\nnormalized to 0-100, multiplied by their weight, and summed. The total\ndetermines the recommendation.\n\n## Factors and Weights\n\n| Factor           | Weight | Range   | Higher = Repair |\n| ---------------- | ------ | ------- | --------------- |\n| Cost Ratio       | 30%    | 0-100   | Yes             |\n| Remaining Life   | 25%    | 0-100   | Yes             |\n| Condition        | 15%    | 0-100   | Yes             |\n| Sentimental      | 10%    | 0-100   | Yes             |\n| Environmental    | 20%    | 0-100   | Mixed           |\n\n## Scoring Details\n\n### 1. Cost Ratio (30%)\n\nThe ratio of repair cost to replacement cost:\n\n```\ncost_ratio = repair_cost / replacement_cost\n```\n\n| Cost Ratio | Score | Interpretation                       |\n| ---------- | ----- | ------------------------------------ |\n| 0-20%      | 100   | Repair is very cheap — definitely fix |\n| 20-30%     | 90    | Repair is cost-effective              |\n| 30-40%     | 75    | Repair is reasonable                  |\n| 40-50%     | 60    | Borderline — consider other factors   |\n| 50-60%     | 40    | Replace starts looking better         |\n| 60-80%     | 20    | Replace is strongly favored           |\n| 80-100%+   | 0     | Repair makes no financial sense       |\n\n**Formula:** `score = max(0, min(100, 100 * (1 - cost_ratio / 0.5)))`\n\nThis creates a linear scale where a 50% ratio scores 50, and the score\ndecreases as the ratio increases.\n\n### 2. Remaining Life (25%)\n\nHow much of the expected lifespan is left:\n\n```\nlifespan_used = age / expected_lifespan\nremaining_pct = 1 - lifespan_used\n```\n\n| Lifespan Used | Score | Interpretation                           |\n| ------------- | ----- | ---------------------------------------- |\n| 0-25%         | 100   | Nearly new — lots of life left           |\n| 25-50%        | 85    | Still in the prime of life               |\n| 50-60%        | 65    | Past midpoint but functional             |\n| 60-75%        | 40    | Entering failure-prone years             |\n| 75-90%        | 20    | Near end of life                         |\n| 90-100%+      | 5     | At or beyond expected lifespan           |\n\n**Depreciation curve:** The score isn't linear because failure rates accelerate\nin the last 25% of lifespan. A 50% penalty applies after 75% lifespan used.\n\n### 3. Condition (15%)\n\nOverall condition of the item beyond the current fault (user-supplied, 1-10):\n\n```\nnormalized = condition_score / 10 * 100\n```\n\n| Condition (1-10) | Score | Meaning                          |\n| ---------------- | ----- | -------------------------------- |\n| 8-10             | 90-100| Excellent — like new             |\n| 6-7              | 65-80 | Good — minor wear               |\n| 4-5              | 40-55 | Fair — noticeable wear          |\n| 1-3              | 10-30 | Poor — multiple issues          |\n\n### 4. Sentimental Value (10%)\n\nEmotional or irreplaceable value (user-supplied, 1-10):\n\n| Sentimental (1-10) | Score | Meaning                        |\n| ------------------ | ----- | ------------------------------ |\n| 9-10               | 90-100| Irreplaceable (heirloom)       |\n| 7-8                | 70-80 | Very meaningful                |\n| 5-6                | 50-60 | Some attachment                |\n| 3-4                | 30-40 | Minor attachment               |\n| 1-2                | 10-20 | Purely functional              |\n\n### 5. Environmental Impact (20%)\n\nTwo sub-factors:\n\n**a) E-waste avoidance (12 of 20 points):**\nRepairing avoids sending the item to landfill. Always favors repair.\n\n**b) Energy efficiency of replacement (8 of 20 points):**\nIf the replacement is significantly more energy-efficient (user supplies\n`--efficiency-gain` as a percentage), some points shift toward replace.\n\n```\ne_waste_score = 12  # always awarded for repair\nefficiency_score = min(8, efficiency_gain_pct / 100 * 8)\nenvironmental = e_waste_score + efficiency_score\n```\n\nIf no efficiency data is provided, the full 20 points favor repair.\n\n## Total Score and Recommendation\n\n```\ntotal = (cost_score * 0.30) + (life_score * 0.25) + (condition_score * 0.15)\n      + (sentimental_score * 0.10) + (environmental_score * 0.20)\n```\n\n| Total Score | Recommendation | Confidence |\n| ----------- | -------------- | ---------- |\n| 70-100      | REPAIR         | High       |\n| 55-69       | REPAIR         | Moderate   |\n| 45-54       | BORDERLINE     | Low        |\n| 31-44       | REPLACE        | Moderate   |\n| 0-30        | REPLACE / RECYCLE | High    |\n\n### Special Cases\n\n- **Repair cost ≥ 80% of replacement + age > 75% of lifespan → RECYCLE**.\n  The item is at end-of-life and repair isn't economical.\n- **Sentimental score = 10 → always at least REPAIR (borderline)**, regardless\n  of cost. Heirlooms deserve a chance.\n- **Safety-critical items** (gas, electrical): If symptoms suggest a safety\n  risk, the script adds a warning to consult a professional.\n\n## Weight Rationale\n\n- **Cost (30%)**: The dominant factor for most decisions. People care most\n  about money.\n- **Remaining Life (25%)**: Even a cheap repair isn't worth it if the item will\n  fail again soon.\n- **Environmental (20%)**: E-waste is a growing crisis. Giving it 20% ensures\n  it's a real factor, not a tiebreaker.\n- **Condition (15%)**: A well-maintained item deserves repair more than a\n  neglected one.\n- **Sentimental (10%)**: Real but shouldn't override economics for most items.\n  Weighted enough to tip borderline cases.\n\n## Customization\n\nAll weights are constants at the top of `repair_or_replace.py`. Adjust them to\nmatch your priorities:\n\n```python\nWEIGHTS = {\n    'cost': 0.30,\n    'lifespan': 0.25,\n    'condition': 0.15,\n    'sentimental': 0.10,\n    'environmental': 0.20,\n}\n```\n\nFor example, an environmentally-focused user might set `environmental: 0.35`\nand `cost: 0.20`.\n\nFile v0.1.0:references/environmental-impact.md\n\n# Environmental Impact — E-Waste and Sustainability\n\nThe environmental factor in the Repair or Replace decision matrix accounts for\ntwo considerations: avoiding e-waste through repair, and the energy efficiency\ngains of newer models.\n\n## The E-Waste Problem\n\n### Scale\n\n- The world generates **~57 million tonnes** of e-waste annually (UN Global\n  E-waste Monitor, 2021).\n- Only **~17%** is formally collected and recycled.\n- E-waste contains toxic materials (lead, mercury, cadmium) that leach into\n  soil and water when landfilled.\n\n### Embodied Carbon\n\nEvery manufactured product carries \"embodied\" carbon — the emissions from\nextraction, manufacturing, transport, and packaging:\n\n| Item                | Embodied CO2 (kg)  | Equivalent            |\n| ------------------- | ------------------ | --------------------- |\n| Smartphone          | ~70                | 300 km of driving     |\n| Laptop              | ~200               | 1,000 km of driving   |\n| Washing machine     | ~400               | 2,000 km of driving   |\n| Refrigerator        | ~500               | 2,500 km of driving   |\n| Television (55\")    | ~300               | 1,500 km of driving   |\n\nRepairing extends the useful life of these embodied emissions. Keeping a\nlaptop for 5 years instead of 3 reduces its annual carbon footprint by ~40%.\n\n### Right to Repair\n\nThe Right to Repair movement advocates for:\n- Access to repair manuals and schematics\n- Availability of spare parts\n- No software locks preventing third-party repair\n- Modular designs that are easy to disassemble\n\nSupporting repair — even when slightly more expensive — signals market demand\nfor repairable products.\n\n## When Replacement Is More Environmental\n\n### Energy Efficiency Gains\n\nFor energy-hungry appliances, a new model may be significantly more efficient:\n\n| Appliance          | Efficiency Gain (10-year-old → new) |\n| ------------------ | ------------------------------------ |\n| Refrigerator       | 20-40% more efficient                |\n| Washing machine    | 25-50% more efficient                |\n| Dishwasher         | 20-30% more efficient                |\n| Air conditioner    | 30-50% more efficient                |\n| Water heater       | 15-30% more efficient                |\n\n### The Break-Even Calculation\n\nThe environmental benefit of replacement depends on whether the energy savings\noffset the embodied carbon of the new item:\n\n```\nyears_to_break_even = new_item_embodied_carbon / annual_energy_savings_carbon\n```\n\n**Example:** A new refrigerator saves ~100 kg CO2/year in energy. The new\nfridge has ~500 kg embodied CO2. Break-even: 5 years. If the old fridge has\nno remaining life, replace. If it has 5+ years left, repair is better.\n\n### Rule of Thumb\n\n- **Electronics (phones, laptops):** Almost always repair. Embodied carbon is\n  high relative to energy savings.\n- **Major appliances:** Compare. If the old unit is 10+ years old, replacement\n  may save more carbon through efficiency.\n- **Small appliances:** Usually repair. Low embodied carbon, low efficiency\n  gains.\n\n## Recycling and Disposal\n\n### If You Replace\n\nWhen replacing an item, ensure the old one is disposed of responsibly:\n\n1. **Donate** if still functional — many charities, schools, and community\n   centers accept working electronics and appliances.\n2. **E-waste recycling** — use certified e-waste recyclers (e-STEWARDS,\n   R2v3 certified). Do NOT put electronics in regular trash.\n3. **Manufacturer takeback** — many manufacturers (Apple, Dell, Best Buy)\n   have free recycling programs.\n4. **Battery removal** — remove batteries before disposal; they require\n   separate recycling.\n\n### If You Recycle (Beyond Repair)\n\nWhen the decision is \"Recycle/Donate\" (item beyond economic repair):\n\n1. **Data wipe** — for electronics, securely erase all data before disposal.\n2. **Parts harvesting** — some repair shops buy non-functional units for parts.\n3. **Certified recycler** — ensure the recycler doesn't ship waste to\n   developing countries (a common illegal practice).\n\n## Scoring in This Skill\n\nThe environmental factor in `repair_or_replace.py` works as follows:\n\n| Scenario                              | Environmental Score |\n| ------------------------------------- | ------------------- |\n| Repair, no efficiency data            | 20/20 (full repair) |\n| Repair, replacement is more efficient | 12-20/20 (partial)  |\n| Replace for efficiency reasons        | 0-8/20 (replacement) |\n\nIf you know the efficiency gain of a replacement, supply it with\n`--efficiency-gain <percent>` for a more accurate score.\n\n## Further Reading\n\n- [UN Global E-waste Monitor](https://ewastemonitor.info/)\n- [iFixit Repair Guides](https://www.ifixit.com/Guide)\n- [EPA Electronics Donation and Recycling](https://www.epa.gov/recycle/electronics-donation-and-recycling)\n- [Repair Café International](https://repaircafe.org/)\n\nFile v0.1.0:references/item-lifespans.md\n\n# Item Lifespans — Expected Useful Life Data\n\nExpected lifespan data for common household and personal items. Used as\ndefault values by `repair_or_replace.py` when `--expected-lifespan` is not\nprovided.\n\n## Major Appliances\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Refrigerator          | 14                        |\n| Washing machine       | 12                        |\n| Dryer (gas/electric)  | 13                        |\n| Dishwasher            | 10                        |\n| Oven / Range          | 15                        |\n| Microwave             | 9                         |\n| Freezer               | 16                        |\n| Garbage disposal      | 12                        |\n| Water heater (tank)   | 12                        |\n| Water heater (tankless)| 20                       |\n\n## HVAC\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Central AC unit       | 15                        |\n| Furnace (gas)         | 20                        |\n| Heat pump             | 15                        |\n| Window AC             | 10                        |\n| Air purifier          | 5                         |\n\n## Electronics\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Laptop                | 5                         |\n| Desktop computer      | 7                         |\n| Smartphone            | 3                         |\n| Tablet                | 4                         |\n| Television (LED/OLED) | 7                         |\n| Gaming console        | 6                         |\n| Monitor               | 8                         |\n| Router / Modem        | 5                         |\n| Smartwatch            | 3                         |\n| Bluetooth speaker     | 4                         |\n\n## Small Appliances\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Coffee maker          | 5                         |\n| Toaster               | 6                         |\n| Blender               | 5                         |\n| Vacuum cleaner        | 8                         |\n| Iron                  | 6                         |\n| Food processor        | 7                         |\n| Air fryer             | 4                         |\n\n## Furniture & Home\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Sofa / Couch          | 10                        |\n| Mattress              | 8                         |\n| Dining table          | 15                        |\n| Office chair          | 7                         |\n| Bookshelf             | 15                        |\n\n## Personal Items\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Mechanical watch      | 40                        |\n| Quartz watch          | 10                        |\n| Eyeglasses            | 3                         |\n| Bicycle               | 15                        |\n| Backpack              | 5                         |\n| Shoes (athletic)      | 1                         |\n| Shoes (leather)       | 5                         |\n\n## Tools & Equipment\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Power drill           | 10                        |\n| Lawn mower            | 8                         |\n| Pressure washer       | 7                         |\n| Circular saw          | 12                        |\n| Garden hose           | 5                         |\n\n## Vehicles\n\n| Item                  | Expected Lifespan (years) |\n| --------------------- | ------------------------- |\n| Car (average)         | 12                        |\n| Motorcycle            | 15                        |\n| Bicycle ( commuting)  | 10                        |\n| E-bike                | 7                         |\n\n## Notes\n\n- **These are averages.** Actual lifespan varies by brand quality, usage\n  frequency, maintenance, and operating environment.\n- **Last quartile penalty:** Items in the last 25% of expected lifespan have\n  accelerating failure rates. A 9-year-old washing machine (75% of 12-year\n  lifespan) is more likely to need another repair soon than the raw percentage\n  suggests.\n- **Maintenance matters:** Well-maintained items can exceed these ranges\n  significantly. Neglected items fail early.\n- **Quality tiers:** Budget brands typically achieve 60-80% of these lifespans.\n  Premium brands can exceed them by 20-40%.\n\n## Sources\n\n- Consumer Reports appliance lifespan studies\n- National Association of Home Builders (NAHB) \"Study of Life Expectancy of\n  Home Components\"\n- EPA electronics lifecycle data\n- Industry manufacturer specifications\n\n> Lifespan data is approximate and for guidance only. Always consider the\n> specific brand, model, and condition of your item.\n\nFile v0.1.0:skill-card.md\n\n## Description:\n\nDecide whether to fix, replace, or recycle a broken item by scoring item type, age, symptoms, repair estimate, lifespan, sentimental value, and environmental impact.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[voronindenis5](https://clawhub.ai/user/voronindenis5)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nExternal users and agents use this skill to structure repair-versus-replace decisions for broken household items, electronics, tools, and appliances. It compares repair and replacement costs, remaining lifespan, condition, sentiment, and environmental impact to produce a recommendation.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Outputs could be mistaken for professional repair, electrical, gas, financial, or safety advice.\n\nMitigation: Treat recommendations as advisory decision support and get qualified review before acting on costly or safety-sensitive repairs.\n\nRisk: A recommendation can be misleading if repair estimates, replacement costs, item condition, or expected lifespan are inaccurate.\n\nMitigation: Verify inputs, include diagnosis, parts, labor, shipping, and hidden costs, and compare lifespan assumptions against the bundled reference data.\n\nRisk: Disposal recommendations may miss privacy or environmental handling requirements for electronics and appliances.\n\nMitigation: Use certified recycling or manufacturer takeback programs, remove batteries when appropriate, and wipe data from electronics before disposal.\n\n## Reference(s):\n\n- [Decision Matrix - Scoring Algorithm](references/decision-matrix.md)\n- [Environmental Impact - E-Waste and Sustainability](references/environmental-impact.md)\n- [Item Lifespans - Expected Useful Life Data](references/item-lifespans.md)\n- [Server-resolved GitHub provenance](https://github.com/voronindenis5/repair-or-replace)\n- [ClawHub release page](https://clawhub.ai/voronindenis5/skills/repair-or-replace)\n- [Hermes Agent skills documentation](https://hermes-agent.nousresearch.com/docs)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Text, Markdown, JSON, Shell commands]\n\n**Output Format:** [Markdown decision report or JSON from the included command-line script]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes recommendation, confidence, weighted factor scores, reasoning, and warnings; no network calls or external dependencies are required.]\n\n## Skill Version(s):\n\n0.1.0 (source: ClawHub release metadata; source frontmatter version is 1.0.0)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.1.0:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Denis Voronin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","readmeExcerpt":"Skill: repair-or-replace Owner: voronindenis5 Summary: Decide whether to fix, replace, or recycle a broken item. Takes item type, age, symptoms, and repair estimate, then produces a scored recommendation across cost, lifespan, sentimental value, and environmental impact. Tags: latest:0.1.2 Version history: v0.1.2 | 2026-08-14T06:19:14.590Z | auto - Removed the file skill-card.md. - No user-facing or functional change","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# Basic decision\npython3 scripts/repair_or_replace.py \\\n  --item \"washing machine\" \\\n  --age 8 \\\n  --repair-cost 250 \\\n  --replacement-cost 800 \\\n  --expected-lifespan 12\n\n# With symptoms and condition\npython3 scripts/repair_or_replace.py \\\n  --item \"refrigerator\" \\\n  --age 10 \\\n  --repair-cost 200 \\\n  --replacement-cost 900 \\\n  --expected-lifespan 14 \\\n  --symptoms \"not cooling properly\" \\\n  --condition 4\n\n# Factor in strong sentimental value (grandfather's watch)\npython3 scripts/repair_or_replace.py \\\n  --item \"vintage watch\" \\\n  --age 20 \\\n  --repair-cost 150 \\\n  --replacement-cost 500 \\\n  --expected-lifespan 40 \\\n  --sentimental 9\n\n# JSON output\npython3 scripts/repair_or_replace.py --item \"laptop\" --age 5 \\\n  --repair-cost 300 --replacement-cost 1000 --format json\n\n# Interactive mode (prompts for each value)\npython3 scripts/repair_or_replace.py --interactive"},{"language":"text","snippet":"Repair or Replace — Decision Report\n====================================\nItem                : washing machine\nAge                 : 8 years\nExpected lifespan   : 12 years\n\nRepair cost         : $250\nReplacement cost    : $800\nCost ratio          : 31% (repair is 31% of replacement)\n\nDecision Matrix (weighted):\n  Cost Ratio        : 25.0/30  → Repair favored (cost ratio < 50%)\n  Remaining Life    : 12.5/25  → Only 33% lifespan remaining\n  Condition         : 10.5/15  → Decent overall condition\n  Sentimental       :  2.0/10  → Low sentimental value\n  Environmental     : 16.0/20  → Repair avoids e-waste\n\nTotal Score         : 66.0/100\n\nRecommendation      : REPAIR\nConfidence          : Moderate (66%)\n\nReasoning:\n  • Repair cost is well below the 50% threshold (31%)\n  • Item still has some remaining lifespan\n  • Repair avoids generating e-waste\n  ⚠ Only 33% of expected lifespan remains — consider future repair costs"},{"language":"bash","snippet":"cp -r repair-or-replace ~/.hermes/skills/"},{"language":"text","snippet":"cost_ratio = repair_cost / replacement_cost"},{"language":"text","snippet":"lifespan_used = age / expected_lifespan\nremaining_pct = 1 - lifespan_used"},{"language":"text","snippet":"normalized = condition_score / 10 * 100"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: repair-or-replace\ndescription: >\n  Decide whether to fix, replace, or recycle a broken item. Takes item type,\n  age, symptoms, and repair estimate, then produces a scored recommendation\n  across cost, lifespan, sentimental value, and environmental impact.\nversion: 1.0.0\nauthor: Denis Voronin\nlicense: MIT\ntags:\n  - decision-making\n  - consumer\n  - repair\n  - sustainability\n  - cost-analysis\n  - environment\n---\n\n# Repair or Replace\n\n> Don't guess. Score it.\n\n`Repair or Replace` is a skill that helps you decide whether to fix a broken\nitem, buy a replacement, or recycle it. It builds a weighted decision matrix\nacross five factors — repair cost, replacement cost, remaining lifespan,\nsentimental value, and environmental impact — then outputs a clear,\nscore-backed recommendation with reasoning.\n\n## When to Use\n\nActivate this skill when:\n\n- An appliance, device, or tool is broken and you're unsure whether to fix it\n- You have a repair estimate and want to compare it against replacement\n- You want to factor environmental impact into a purchasing decision\n- You're helping someone else decide what to do with a broken item\n- You want a structured, defensible decision rather than a gut call\n\n## How It Works\n\nThe script takes structured input about the item and its condition:\n\n| Parameter           | Description                                         | Example            |\n| ------------------- | --------------------------------------------------- | ------------------ |\n| `--item`            | What the item is                                    | \"washing machine\"  |\n| `--age`             | How old it is (years)                               | `8`                |\n| `--repair-cost`     | Estimated repair cost                               | `250`              |\n| `--replacement-cost`| Cost of a new equivalent                            | `800`              |\n| `--expected-lifespan`| Expected total lifespan of this item type (years)  | `12`               |\n| `--symptoms`        | What's wrong (free text)                            | \"won't spin\"       |\n| `--sentimental`     | Sentimental value (1-10)                            | `3`                |\n| `--condition`       | Overall condition aside from the fault (1-10)      | `6`                |\n\nIt then scores the decision across five dimensions, applies weights, and\nproduces a recommendation: **Repair**, **Replace**, or **Recycle/Donate**.\n\n## Decision Matrix\n\n| Factor              | Weight | Repair Favors                          | Replace Favors                      |\n| ------------------- | ------ | -------------------------------------- | ----------------------------------- |\n| **Cost Ratio**      | 30%    | Repair < 50% of replacement            | Repair > 50% of replacement         |\n| **Remaining Life**  | 25%    | <50% of expected lifespan used         | >50% of expected lifespan used      |\n| **Condition**       | 15%    | Good condition otherwise               | Multiple issues, poor co"},{"path":"README.md","content":"# Repair or Replace\n\n> Don't guess. Score it.\n\nA [Hermes Agent](https://hermes-agent.nousresearch.com/docs) / OpenClaw skill\nthat helps you decide whether to **fix, replace, or recycle** a broken item\nusing a weighted decision matrix across cost, lifespan, condition, sentiment,\nand environmental impact.\n\n## Why\n\nWhen something breaks, the repair-vs-replace decision is usually made on gut\nfeel — or worse, on whatever the repair shop quotes before you've thought it\nthrough. This skill structures the decision: it takes the numbers you have\n(repair cost, replacement cost, age), combines them with factors you might not\nhave considered (remaining lifespan, environmental cost, sentimental value),\nand produces a clear, score-backed recommendation with reasoning.\n\n## What's Included\n\n- **`SKILL.md`** — core skill: decision matrix, quick-reference, when-to-use.\n- **`references/`**\n  - `decision-matrix.md` — full scoring algorithm, weights, and rationale.\n  - `item-lifespans.md` — expected lifespan data for 40+ common items.\n  - `environmental-impact.md` — e-waste, embodied carbon, and sustainability.\n- **`scripts/repair_or_replace.py`** — the main decision engine (stdlib only).\n- **`scripts/sample_run.sh`** — example invocations for different item types.\n\n## Quick Start\n\n```bash\n# Basic decision\npython3 scripts/repair_or_replace.py \\\n  --item \"washing machine\" \\\n  --age 8 \\\n  --repair-cost 250 \\\n  --replacement-cost 800 \\\n  --expected-lifespan 12\n\n# With symptoms and condition\npython3 scripts/repair_or_replace.py \\\n  --item \"refrigerator\" \\\n  --age 10 \\\n  --repair-cost 200 \\\n  --replacement-cost 900 \\\n  --expected-lifespan 14 \\\n  --symptoms \"not cooling properly\" \\\n  --condition 4\n\n# Factor in strong sentimental value (grandfather's watch)\npython3 scripts/repair_or_replace.py \\\n  --item \"vintage watch\" \\\n  --age 20 \\\n  --repair-cost 150 \\\n  --replacement-cost 500 \\\n  --expected-lifespan 40 \\\n  --sentimental 9\n\n# JSON output\npython3 scripts/repair_or_replace.py --item \"laptop\" --age 5 \\\n  --repair-cost 300 --replacement-cost 1000 --format json\n\n# Interactive mode (prompts for each value)\npython3 scripts/repair_or_replace.py --interactive\n```\n\nExample output:\n\n```\nRepair or Replace — Decision Report\n====================================\nItem                : washing machine\nAge                 : 8 years\nExpected lifespan   : 12 years\n\nRepair cost         : $250\nReplacement cost    : $800\nCost ratio          : 31% (repair is 31% of replacement)\n\nDecision Matrix (weighted):\n  Cost Ratio        : 25.0/30  → Repair favored (cost ratio < 50%)\n  Remaining Life    : 12.5/25  → Only 33% lifespan remaining\n  Condition         : 10.5/15  → Decent overall condition\n  Sentimental       :  2.0/10  → Low sentimental value\n  Environmental     : 16.0/20  → Repair avoids e-waste\n\nTotal Score         : 66.0/100\n\nRecommendation      : REPAIR\nConfidence          : Moderate (66%)\n\nReasoning:\n  • Repair cost is well below the 50% threshold (31%)\n  • Item still has some remaining l"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn75wwn4x6djaf28jbykeamazd81gtdp\",\n  \"slug\": \"repair-or-replace\",\n  \"version\": \"0.1.2\",\n  \"publishedAt\": 1786688354590\n}"},{"path":"references/decision-matrix.md","content":"# Decision Matrix — Scoring Algorithm\n\nThis document details the scoring algorithm used by `repair_or_replace.py`.\n\n## Overview\n\nThe decision engine scores the item across five factors, each weighted to\nreflect its importance in the repair-vs-replace decision. Factor scores are\nnormalized to 0-100, multiplied by their weight, and summed. The total\ndetermines the recommendation.\n\n## Factors and Weights\n\n| Factor           | Weight | Range   | Higher = Repair |\n| ---------------- | ------ | ------- | --------------- |\n| Cost Ratio       | 30%    | 0-100   | Yes             |\n| Remaining Life   | 25%    | 0-100   | Yes             |\n| Condition        | 15%    | 0-100   | Yes             |\n| Sentimental      | 10%    | 0-100   | Yes             |\n| Environmental    | 20%    | 0-100   | Mixed           |\n\n## Scoring Details\n\n### 1. Cost Ratio (30%)\n\nThe ratio of repair cost to replacement cost:\n\n```\ncost_ratio = repair_cost / replacement_cost\n```\n\n| Cost Ratio | Score | Interpretation                       |\n| ---------- | ----- | ------------------------------------ |\n| 0-20%      | 100   | Repair is very cheap — definitely fix |\n| 20-30%     | 90    | Repair is cost-effective              |\n| 30-40%     | 75    | Repair is reasonable                  |\n| 40-50%     | 60    | Borderline — consider other factors   |\n| 50-60%     | 40    | Replace starts looking better         |\n| 60-80%     | 20    | Replace is strongly favored           |\n| 80-100%+   | 0     | Repair makes no financial sense       |\n\n**Formula:** `score = max(0, min(100, 100 * (1 - cost_ratio / 0.5)))`\n\nThis creates a linear scale where a 50% ratio scores 50, and the score\ndecreases as the ratio increases.\n\n### 2. Remaining Life (25%)\n\nHow much of the expected lifespan is left:\n\n```\nlifespan_used = age / expected_lifespan\nremaining_pct = 1 - lifespan_used\n```\n\n| Lifespan Used | Score | Interpretation                           |\n| ------------- | ----- | ---------------------------------------- |\n| 0-25%         | 100   | Nearly new — lots of life left           |\n| 25-50%        | 85    | Still in the prime of life               |\n| 50-60%        | 65    | Past midpoint but functional             |\n| 60-75%        | 40    | Entering failure-prone years             |\n| 75-90%        | 20    | Near end of life                         |\n| 90-100%+      | 5     | At or beyond expected lifespan           |\n\n**Depreciation curve:** The score isn't linear because failure rates accelerate\nin the last 25% of lifespan. A 50% penalty applies after 75% lifespan used.\n\n### 3. Condition (15%)\n\nOverall condition of the item beyond the current fault (user-supplied, 1-10):\n\n```\nnormalized = condition_score / 10 * 100\n```\n\n| Condition (1-10) | Score | Meaning                          |\n| ---------------- | ----- | -------------------------------- |\n| 8-10             | 90-100| Excellent — like new             |\n| 6-7              | 65-80 | Good — minor wear               |\n| 4-5              | 40-55"},{"path":"references/environmental-impact.md","content":"# Environmental Impact — E-Waste and Sustainability\n\nThe environmental factor in the Repair or Replace decision matrix accounts for\ntwo considerations: avoiding e-waste through repair, and the energy efficiency\ngains of newer models.\n\n## The E-Waste Problem\n\n### Scale\n\n- The world generates **~57 million tonnes** of e-waste annually (UN Global\n  E-waste Monitor, 2021).\n- Only **~17%** is formally collected and recycled.\n- E-waste contains toxic materials (lead, mercury, cadmium) that leach into\n  soil and water when landfilled.\n\n### Embodied Carbon\n\nEvery manufactured product carries \"embodied\" carbon — the emissions from\nextraction, manufacturing, transport, and packaging:\n\n| Item                | Embodied CO2 (kg)  | Equivalent            |\n| ------------------- | ------------------ | --------------------- |\n| Smartphone          | ~70                | 300 km of driving     |\n| Laptop              | ~200               | 1,000 km of driving   |\n| Washing machine     | ~400               | 2,000 km of driving   |\n| Refrigerator        | ~500               | 2,500 km of driving   |\n| Television (55\")    | ~300               | 1,500 km of driving   |\n\nRepairing extends the useful life of these embodied emissions. Keeping a\nlaptop for 5 years instead of 3 reduces its annual carbon footprint by ~40%.\n\n### Right to Repair\n\nThe Right to Repair movement advocates for:\n- Access to repair manuals and schematics\n- Availability of spare parts\n- No software locks preventing third-party repair\n- Modular designs that are easy to disassemble\n\nSupporting repair — even when slightly more expensive — signals market demand\nfor repairable products.\n\n## When Replacement Is More Environmental\n\n### Energy Efficiency Gains\n\nFor energy-hungry appliances, a new model may be significantly more efficient:\n\n| Appliance          | Efficiency Gain (10-year-old → new) |\n| ------------------ | ------------------------------------ |\n| Refrigerator       | 20-40% more efficient                |\n| Washing machine    | 25-50% more efficient                |\n| Dishwasher         | 20-30% more efficient                |\n| Air conditioner    | 30-50% more efficient                |\n| Water heater       | 15-30% more efficient                |\n\n### The Break-Even Calculation\n\nThe environmental benefit of replacement depends on whether the energy savings\noffset the embodied carbon of the new item:\n\n```\nyears_to_break_even = new_item_embodied_carbon / annual_energy_savings_carbon\n```\n\n**Example:** A new refrigerator saves ~100 kg CO2/year in energy. The new\nfridge has ~500 kg embodied CO2. Break-even: 5 years. If the old fridge has\nno remaining life, replace. If it has 5+ years left, repair is better.\n\n### Rule of Thumb\n\n- **Electronics (phones, laptops):** Almost always repair. Embodied carbon is\n  high relative to energy savings.\n- **Major appliances:** Compare. If the old unit is 10+ years old, replacement\n  may save more carbon through efficiency.\n- **Small appliances:** Usually repai"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Decide whether to fix, replace, or recycle a broken item. Takes item type, age, symptoms, and repair estimate, then produces a scored recommendation across cost, lifespan, sentimental value, and environmental impact. Skill: repair-or-replace Owner: voronindenis5 Summary: Decide whether to fix, replace, or recycle a broken item. Takes item type, age, symptoms, and repair estimate, then produces a scored recommendation across cost, lifespan, sentimental value, and environmental impact. Tags: latest:0.1.2 Version history: v0.1.2 | 2026-08-14T06:19:14.590Z | auto - Removed the file skill-card.md. - No user-facing or functional change","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1075,"uniquenessScore":47,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T13:12:39.579Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T13:12:39.579Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T19:20:25.270Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}