From c2e508075eb5d932afe7f0ba51e95c4a1cb3ed50 Mon Sep 17 00:00:00 2001 From: Nirav Patel Date: Wed, 12 Aug 2026 23:56:23 -0400 Subject: [PATCH 1/2] =?UTF-8?q?policy(house-policy):=20propose=20v2.0.0=20?= =?UTF-8?q?=E2=80=94=20thesis-book=20sleeve,=20sizing=20disambiguation,=20?= =?UTF-8?q?reference-rule=20scope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PROPOSED amendment pending sign-off (merge = sign-off; Nirav is sole amender). Closes the structural gap surfaced by orchestration rep 4, where every draft house-view overlay was gate-rejected because the policy could not host a conviction position at workable size. - §3: new "thesis" sleeve class + thesis-book sleeve (15% share funded from core: dca 55→45%, rebalancer 30→25%; per-position ⅓ of sleeve → 5.0% effective cap; max 3 concurrent; thesis note + pre-registered falsifier required; Nirav-signed entries only). Discretionary entries may never route through core sleeves for size. - §4: tier = fraction of the sleeve's effective cap (HIGH 100%, MEDIUM 50%, LOW 0%) with a worked example — supersedes the ambiguous v1.1 table whose two readings differed by an order of magnitude. - §4: reference-probability rule scoped by sleeve class — tactical unchanged; thesis MEDIUM available on a complete note without a point probability. - §6: Restricted also blocks new thesis entries/adds; falsifier exits stay mandatory. §7 extended accordingly. Direction: loosening + clarifying → MAJOR (2.0.0). Cooling-off: the sleeve takes effect 7 days after sign-off; clarifications at sign-off. Preconditions verified against the paper book (flat, 0.0% drawdown, no stop-outs). Sync trinity run (sync-registry, wire-all-domains --apply: 0 mods, recalibrate_scores: idempotent); all three CI drift checks pass locally. Co-Authored-By: Claude Fable 5 --- data/registry.json | 78 +++++++++++----------- skills/investing/house-policy/SKILL.md | 92 +++++++++++++++++++++----- 2 files changed, 113 insertions(+), 57 deletions(-) diff --git a/data/registry.json b/data/registry.json index a1b3580..2d7337d 100644 --- a/data/registry.json +++ b/data/registry.json @@ -1,7 +1,7 @@ { "schema_version": 2, "plugin_version": "1.0.0", - "last_scan": "2026-07-29T02:14:46Z", + "last_scan": "2026-08-11T03:14:43Z", "skills": { "bacchus": { "name": "bacchus", @@ -2911,10 +2911,10 @@ "health_status": "healthy", "last_checked": "2026-03-26T00:00:00Z", "status": "active", - "auto_score": 88, + "auto_score": 84, "manual_rating": null, "manual_notes": null, - "composite_score": 88, + "composite_score": 84, "depends_on": [ "world-bible", "worldbuilding-orchestrator" @@ -3313,10 +3313,10 @@ "health_status": "healthy", "last_checked": "2026-03-22T00:00:00Z", "status": "active", - "auto_score": 77, + "auto_score": 76, "manual_rating": null, "manual_notes": null, - "composite_score": 77, + "composite_score": 76, "depends_on": [ "classical-games", "ethics" @@ -7964,10 +7964,10 @@ "health_status": "healthy", "last_checked": "2026-03-28T04:11:39Z", "status": "active", - "auto_score": 75, + "auto_score": 74, "manual_rating": null, "manual_notes": null, - "composite_score": 75, + "composite_score": 74, "depends_on": [ "reflexivity-theory", "sentiment-signals" @@ -8207,10 +8207,10 @@ "health_status": "healthy", "last_checked": "2026-03-28T04:11:39Z", "status": "active", - "auto_score": 80, + "auto_score": 79, "manual_rating": null, "manual_notes": null, - "composite_score": 80, + "composite_score": 79, "depends_on": [ "fiscal-regime", "monetary-regime" @@ -8258,10 +8258,10 @@ "health_status": "healthy", "last_checked": "2026-03-28T04:11:39Z", "status": "active", - "auto_score": 77, + "auto_score": 76, "manual_rating": null, "manual_notes": null, - "composite_score": 77, + "composite_score": 76, "depends_on": [ "macro-cycles" ], @@ -11262,10 +11262,10 @@ "deprecated_date": null, "replacement_skill": null, "deprecation_reason": null, - "auto_score": 73, + "auto_score": 72, "manual_rating": null, "manual_notes": null, - "composite_score": 73, + "composite_score": 72, "depends_on": [ "point-of-view", "concrete-detail" @@ -11314,10 +11314,10 @@ "deprecated_date": null, "replacement_skill": null, "deprecation_reason": null, - "auto_score": 70, + "auto_score": 69, "manual_rating": null, "manual_notes": null, - "composite_score": 70, + "composite_score": 69, "depends_on": [ "character-interiority", "dialogue" @@ -11364,10 +11364,10 @@ "deprecated_date": null, "replacement_skill": null, "deprecation_reason": null, - "auto_score": 68, + "auto_score": 67, "manual_rating": null, "manual_notes": null, - "composite_score": 68, + "composite_score": 67, "depends_on": [ "diction", "concrete-detail" @@ -11414,10 +11414,10 @@ "deprecated_date": null, "replacement_skill": null, "deprecation_reason": null, - "auto_score": 70, + "auto_score": 69, "manual_rating": null, "manual_notes": null, - "composite_score": 70, + "composite_score": 69, "depends_on": [ "narrative-arc", "pacing" @@ -11464,10 +11464,10 @@ "deprecated_date": null, "replacement_skill": null, "deprecation_reason": null, - "auto_score": 70, + "auto_score": 69, "manual_rating": null, "manual_notes": null, - "composite_score": 70, + "composite_score": 69, "depends_on": [ "cultures-societies", "geography-ecology" @@ -11513,10 +11513,10 @@ "deprecated_date": null, "replacement_skill": null, "deprecation_reason": null, - "auto_score": 68, + "auto_score": 67, "manual_rating": null, "manual_notes": null, - "composite_score": 68, + "composite_score": 67, "depends_on": [ "naming-system", "cultures-societies" @@ -11562,10 +11562,10 @@ "deprecated_date": null, "replacement_skill": null, "deprecation_reason": null, - "auto_score": 60, + "auto_score": 59, "manual_rating": null, "manual_notes": null, - "composite_score": 60, + "composite_score": 59, "depends_on": [], "referenced_by": [], "shares_references_with": [], @@ -11602,16 +11602,16 @@ "estimated_tokens_body": 762, "estimated_tokens_total": 833 }, - "health_status": "healthy", + "health_status": "warning", "last_checked": "2026-04-08T23:57:33Z", "status": "active", "deprecated_date": null, "replacement_skill": null, "deprecation_reason": null, - "auto_score": 65, + "auto_score": 64, "manual_rating": null, "manual_notes": null, - "composite_score": 65, + "composite_score": 64, "depends_on": [], "referenced_by": [ "scheherazade" @@ -11749,10 +11749,10 @@ "deprecated_date": null, "replacement_skill": null, "deprecation_reason": null, - "auto_score": 60, + "auto_score": 59, "manual_rating": null, "manual_notes": null, - "composite_score": 60, + "composite_score": 59, "depends_on": [], "referenced_by": [], "shares_references_with": [], @@ -12006,10 +12006,10 @@ "deprecated_date": null, "replacement_skill": null, "deprecation_reason": null, - "auto_score": 60, + "auto_score": 59, "manual_rating": null, "manual_notes": null, - "composite_score": 60, + "composite_score": 59, "depends_on": [], "referenced_by": [], "shares_references_with": [], @@ -27975,8 +27975,8 @@ "invocation": "both", "version": "1.0.0", "metrics": { - "word_count": 1503, - "body_words": 1421, + "word_count": 2289, + "body_words": 2207, "description_words": 60, "section_count": 11, "reference_files": 0, @@ -27984,8 +27984,8 @@ "script_files": 0, "template_files": 0, "estimated_tokens_metadata": 78, - "estimated_tokens_body": 2315, - "estimated_tokens_total": 2393 + "estimated_tokens_body": 3600, + "estimated_tokens_total": 3678 }, "health_status": "healthy", "issues": [], @@ -27994,10 +27994,10 @@ "deprecated_date": null, "replacement_skill": null, "deprecation_reason": null, - "auto_score": 81, + "auto_score": 84, "manual_rating": null, "manual_notes": null, - "composite_score": 81, + "composite_score": 84, "depends_on": [], "referenced_by": [ "day-trader", @@ -28018,7 +28018,7 @@ "layer:knowledge" ], "created": "2026-07-29", - "last_modified": "2026-07-29", + "last_modified": "2026-08-11", "changelog": [ { "date": "2026-07-29", diff --git a/skills/investing/house-policy/SKILL.md b/skills/investing/house-policy/SKILL.md index ca3e5f3..dd1dac5 100644 --- a/skills/investing/house-policy/SKILL.md +++ b/skills/investing/house-policy/SKILL.md @@ -8,14 +8,14 @@ description: > the answer is "unstated", never an improvised default. metadata: author: nirav - version: "1.1.1" - policy_version: "investing-house-policy/1.1" + version: "2.0.0" + policy_version: "investing-house-policy/2.0" authored: 2026-07-27 compatibility: Designed for Claude Code allowed-tools: Read --- -# House Policy — Investing v1.1 +# House Policy — Investing v2.0 Committed parameters for the paper book. Every line is either **[policy]** — a binding requirement for compliant paper-book behavior — or **[agent]** — guidance honored by judgment. @@ -27,7 +27,7 @@ described as policy-compliant merely because this skill was loaded. ## 1. Scope - Governs the **Archon $1M paper book only**. Real accounts are outside this document's - binding scope as of v1.1. **[agent]** + binding scope as of v2.0. **[agent]** - Claude Code is **analyst-only**; live placement never originates here, in any mode. **[policy]** - Factor targets (§5) describe intended allocation policy; enforcement applies to the paper book. Real-account adherence is by intention, not gate. **[agent]** @@ -43,6 +43,10 @@ described as policy-compliant merely because this skill was loaded. Archon never overrides Risk Architecture to chase returns. **[agent]** +Thesis-book entries (§3) are decided by **Nirav alone**: Archon and strategists may analyze +or draft the thesis note, but the entry intent is authored and signed by Nirav — no other +actor may originate it. **[policy]** + ## 3. Position-cap hierarchy Two layers bind simultaneously; the **tighter always wins**. A downstream layer may be @@ -50,7 +54,7 @@ stricter than this policy, never looser. **[policy]** ``` effective_cap = min( book_max_position_pct , - sleeve_share × strategist_max_position_pct ) + sleeve_share × per_position_max_pct ) ``` - `book_max_position_pct` = **15%** of total book **[policy]** @@ -62,35 +66,83 @@ effective_cap = min( book_max_position_pct , ### Sleeve allocation -| Sleeve | Class | Share | Strategist max | Effective cap | +| Sleeve | Class | Share | Per-position max | Effective cap | |---|---|---:|---:|---:| -| dca-investor | **core** | 55% | 50% | **15.0%** (book cap binds) | -| rebalancer | **core** | 30% | 70% | **15.0%** (book cap binds) | +| dca-investor | **core** | 45% | 50% | **15.0%** (book cap binds) | +| rebalancer | **core** | 25% | 70% | **15.0%** (book cap binds) | +| thesis-book | **thesis** | 15% | 33⅓% | **5.0%** | | swing-trader | **tactical** | 5% | 25% | **1.25%** | | macro-overlay-trader | **tactical** | 5% | 70% | **3.5%** | | options-strategist | **tactical** | 5% | 25% | **1.25%** | | day-trader · earnings-event-trader · reflexivity-trader | — | **0%** | — | **0** (kill-listed) | **Core** sleeves run systematic processes — scheduled contribution and drift correction back to -committed targets. **Tactical** sleeves open discretionary positions on a view. The distinction -is load-bearing in §6. +committed targets. **Tactical** sleeves open short-horizon discretionary positions on a view. +**Thesis** sleeves hold long-horizon conviction positions against a written thesis note (below). +The class distinction is load-bearing in §6. A discretionary-on-a-view entry may never route +through a core sleeve to obtain size; if no non-core sleeve can host it at workable size, the +answer is "no position", not reclassification. **[policy]** Kill-listed strategists have sleeve 0 and `do_not_promote: true`; both conditions are AND-gated at the executor. **[policy]** +### Thesis-book sleeve + +The thesis-book sleeve exists because conviction positions are neither systematic (core) nor +short-horizon (tactical). It is funded by reducing core shares (dca-investor 55→45%, +rebalancer 30→25%); total sleeve shares still sum to 100%. + +- **Max 3 concurrent thesis positions** (they also count toward the book's + `max_concurrent_positions` = 8). **[policy]** +- Every entry requires a **written thesis note filed before the intent**, containing: the + market-implied expectation being disputed, at least one **pre-registered falsifier** that + would force exit, a catalyst or review window, and a review date. No note → no entry. **[policy]** +- A fired falsifier forces exit or an explicit written amendment of the thesis — silence is + not an option. **[policy]** +- Stop-loss default in §3 does not apply; the falsifier **is** the thesis position's + invalidation level, and it must be stated in the note. **[policy]** +- No strategist runs this sleeve; entries are Nirav-signed (§2). **[policy]** + ## 4. Sizing basis Conviction tiers persist, but **size is gated on edge, not confidence**. **[agent]** +Tier size is a **fraction of the §3 effective cap for the sleeve the position lives in** — +never a fraction of the book directly, and never a fraction of a fraction. This supersedes the +v1.1 table, which read two ways an order of magnitude apart ("7.5%" of book vs. of +sleeve-adjusted cap); neither ambiguous reading survives. **[policy]** + | Tier | Size | Requires | |---|---:|---| -| HIGH | 15% of sleeve-adjusted cap | stated probability **vs. a named reference** + payoff asymmetry | -| MEDIUM | 7.5% | same, weaker edge | +| HIGH | 100% of the sleeve's effective cap | stated probability **vs. a named reference** + payoff asymmetry | +| MEDIUM | 50% of the sleeve's effective cap | reference requirement per sleeve-class scope below | | LOW | 0% | monitor only | -**No stated edge versus a reference → no size.** Confidence alone never establishes -attractiveness: a 90% event can be fully priced, a 35% event can be attractive. Recommendations -that cannot name their reference probability are LOW by definition. +**Worked example.** A MEDIUM swing-trader position: effective cap 1.25% of book (§3), so size += 50% × 1.25% = **0.625% of book**. A MEDIUM thesis-book position: effective cap 5.0%, so size += **2.5% of book**. A HIGH dca-investor allocation may use the full 15% book cap. The tier +never overrides the cap hierarchy — §3's tighter-wins rule already bound before the tier +applied. + +### Reference-probability rule — scope + +**No stated edge versus a reference → no size** applies to **tactical sleeves as written**: +a tactical recommendation that cannot name its reference probability is LOW by definition. +Confidence alone never establishes attractiveness: a 90% event can be fully priced, a 35% +event can be attractive. **[policy]** + +The rule's intent is to force the question "what does the market already believe?" — not to +zero every honest long-horizon view. Scope by sleeve class: + +- **Core** — not applicable; systematic entries carry no per-position view. +- **Tactical** — applies in full. HIGH and MEDIUM both require a named reference probability; + the tiers differ by strength of edge. +- **Thesis** — HIGH requires a named reference probability plus payoff asymmetry, same as + tactical. **MEDIUM is available without a point probability** when the §3 thesis note is + complete: it must still name the market-implied expectation it disputes (a qualitative + reference), a pre-registered falsifier, and a review date. An incomplete note is LOW. Honest + "I cannot name a point probability" therefore caps a thesis position at MEDIUM (2.5% of + book); it no longer zeroes it. **[policy]** ## 5. Factor targets and rebalancing @@ -137,17 +189,20 @@ Measured peak-to-trough on book equity. **[policy]** | State | Threshold | Behavior | |---|---|---| | Normal | ≥ −10% | unrestricted | -| **Restricted** | < −10% | no new **tactical** positions (§3 class column: swing-trader, macro-overlay-trader, options-strategist); **core sleeves continue** — scheduled contribution and drift correction are not new risk-taking; **policy may not be loosened** | +| **Restricted** | < −10% | no new **tactical or thesis** positions and no adds to existing ones (§3 class column: thesis-book, swing-trader, macro-overlay-trader, options-strategist); **core sleeves continue** — scheduled contribution and drift correction are not new risk-taking; **policy may not be loosened**. Thesis exits on a fired falsifier remain mandatory — the gate blocks entries, never exits | | **Halt** | < −20% | no new positions of any kind; written review required to exit | ## 7. Negative constraints -Not authorized under v1.1, regardless of apparent opportunity: **[policy]** +Not authorized under v2.0, regardless of apparent opportunity: **[policy]** - live placement from Claude Code, in any mode - options intents outside an `options-trader` profile (which does not exist) - any position from a kill-listed strategist -- any intent the executor did not receive from a strategist +- any intent the executor did not receive from a strategist — except thesis-book intents, + which it accepts **only** when Nirav-signed per §2 +- any thesis-book entry without a filed thesis note, or any discretionary entry routed + through a core sleeve ## 8. Amendment procedure @@ -182,6 +237,7 @@ evidence that the policy parameter should be loosened. | 2026-07-27 | 1.0.1 | Defined **core** vs **tactical** sleeve classes in §3; §6 Restricted now names which sleeves halt and states that core sleeves continue | clarifying (PATCH) | "tactical" appeared once in §6 and was never defined — a reader could have frozen routine rebalancing during a drawdown, which the gate never intended. Same-day pre-merge correction; treated as completing authorship, not an amendment | | 2026-07-27 | 1.1.0 | §3 adds `max_gross_exposure` 100%, no leverage. §5 rewritten: tilt envelope is **±10 percentage points** (the "double/halve" language removed as a mis-description of the source's own examples), tilts must fund each other, active target defined, rebalance trigger clipped by the envelope | tightening + clarifying (MINOR) | Three defects found in a self-audit: caps alone permitted 120% gross; the tilt rule carried three incompatible bounds at once; "intended exposure" was undefined under an active tilt. The envelope-clips-band rule resolves an interaction the two fixes would otherwise have created (a tilted band reaching 43.75% past a 35% ceiling) | | 2026-07-28 | 1.1.1 | Replaced the misleading `[executor]` label with `[policy]`, documented the current enforcement gap, aligned visible version text, and removed the unavailable predictions-factory dependency | clarifying (PATCH) | Registry dependency edges and LLM instructions are not deterministic enforcement. The policy must distinguish committed requirements from implemented controls. | +| 2026-08-10 | 2.0.0 | **PROPOSED — pending Nirav sign-off (merge = sign-off).** §3 adds a **thesis** sleeve class and `thesis-book` sleeve (15% share funded from core: dca 55→45%, rebalancer 30→25%; per-position ⅓ of sleeve → 5.0% effective cap; max 3 concurrent; thesis-note + falsifier required). §4 rewritten: tier = fraction of the sleeve's effective cap (HIGH 100%, MEDIUM 50%), one worked example, and the reference-probability rule scoped by sleeve class — tactical unchanged, thesis MEDIUM available on a complete note without a point probability. §6 Restricted now also blocks new thesis entries. §7 extended | loosening + clarifying (MAJOR) | Orchestration rep 4 (vault `skill-lab/`, 2026-08-11 record): three independent draft overlays all routed through core sleeves because the tactical path sized a committed view to ~0.09% of book — economically meaningless — and the structural gate correctly rejected every one. The policy could not host the position class it was written to govern. This is a structural gap, not "a compelling single idea exceeding a cap": no specific position motivates the numbers. **Cooling-off: the loosening component (new sleeve) takes effect 7 days after sign-off; sign-off itself requires the book not in §6 Restricted/Halt and no stop-out within 30 days. The §4/§6 clarifications and tightenings are effective at sign-off.** | ## Connections From 560fecff4ed5fda92f5f43b0f6185ff280580fef Mon Sep 17 00:00:00 2001 From: Nirav Patel Date: Thu, 13 Aug 2026 00:02:16 -0400 Subject: [PATCH 2/2] chore: retrigger CI (pull_request opened event was dropped) Co-Authored-By: Claude Fable 5