Skip to content
Back to skills

Conviction Audit

ASecurity

Audit whether a thesis's stated conviction matches its evidence, and whether any Conviction Trigger has silently fired without being actioned. Use when user says "conviction audit", "is my conviction right on [TICKER]", "did a trigger fire", or "should I re-rate [TICKER]".

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
researchbash

Works with

  • mcp

Security analysis

A100/100

Scanned November 8, 2026

npx -y skills add jameswong2011/InvestmentVault --skill conviction-audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Conviction Audit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Conviction Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jameswong2011-conviction-audit-investmentvault/badge)](https://www.skillsdirectory.com/skills/jameswong2011-conviction-audit-investmentvault)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: conviction-audit
description: Audit whether a thesis's stated conviction matches its evidence, and whether any Conviction Trigger has silently fired without being actioned. Use when user says "conviction audit", "is my conviction right on [TICKER]", "did a trigger fire", or "should I re-rate [TICKER]".
model: opus
effort: high
allowed-tools: Read Grep Glob WebSearch WebFetch Bash(date * defuddle *)
---

**Follow CLAUDE.md Writing Standards strictly.** Lead with the verdict and the fired trigger, no hedge words, tables over prose.

Audit one thesis for **conviction–evidence mismatch** and **silently-fired triggers** — the two ways a position quietly drifts from its stated conviction. Reports only; conviction/status changes are Tier 3 and happen via `/status`.

## Arguments
`$ARGUMENTS` = a ticker or thesis name. If empty, ask which thesis.

## Read-only
This skill REPORTS analysis; it does not modify vault files or conviction/status. It feeds `/status` (and, in the workflow, `_followups.md`).

## Mental Models gate (MANDATORY — CLAUDE.md)
Read `[[Mental Models/Generalist - Overview]]` + matching `Industry -`/`Lens -` files. Apply the READING PROTOCOL and run the **base-rate view adversarially**: high conviction is exactly the state the outside view should attack — the question is whether the evidence *earns* the conviction, not whether the story is attractive.

## Method  (single source of truth — the `portfolio-conviction-audit` workflow reads this section)
1. **Read the thesis**: `conviction:` frontmatter, Summary, Key Non-consensus Insights, `## Conviction Triggers`, Key Metrics, and the last ~10 `## Log` entries. Count and date the `## Related Research` links (evidence weight + recency).
2. **Evidence-support check** — does the STATED conviction match the WEIGHT and RECENCY of evidence?
   - **Over-convicted**: `high` on thin (≤2 supporting notes) or stale (no conviction-relevant Log entry in >60–90d) evidence — the `/lint #60`/drift concern.
   - **Under-convicted**: `low`/`medium` while recent research strongly supports the case.
   - **Supported**: conviction is earned.
3. **Trigger-status check (highest-value)** — for each `## Conviction Triggers` line (`→ HIGH if`, `→ LOW if`, `→ CLOSE if`), evaluate its condition against current data (Key Metrics table + recent research). For each named observable, one Quartr `search_documents` query scoped to this `companyId` (per `_shared/quartr.md`) since the last conviction-relevant Log date. A hit with a paragraph URL → flag `fired-in-source` (still flag-only; `/status` remains Tier 3). Scoped WebSearch only if Quartr MCP is unavailable **and** a numeric value is missing. Flag any trigger whose condition is **already met but conviction/status unchanged** — a *silently fired trigger*. Also flag triggers too vague to evaluate (hidden vulnerability per stress-test Phase 2).
4. **Decay check**: days since the last conviction-relevant Log entry; is the thesis coasting on old conviction?
5. **Verdict**: `supported` | `over-convicted` | `under-convicted`, plus the list of fired/near-fired triggers, plus the recommended `/status` action (e.g. `conviction high→medium`, `reaffirm`, or `none`).

## Output (solo run)
A verdict line, then a **trigger-status table** — columns: **Trigger | Condition | Current value | Fired? | Action** — and a one-line recommended `/status` call (or "conviction supported, no action"). No filler.

## Workflow reuse
`portfolio-conviction-audit` (`.claude/workflows/portfolio-conviction-audit.js`) fans this `## Method` out across every thesis, ranks the book by over-conviction + fired-but-unactioned triggers, and (on `persist`) writes `_followups.md` entries for the flagged names — never touching `conviction:` itself (Tier 3 stays with `/status`). Keep `## Method` the single source of truth.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.