From 6827366f40b3c901b6472bf0d439c4f5af5ea912 Mon Sep 17 00:00:00 2001 From: Ron Kuper <33256475+Ronkupper@users.noreply.github.com> Date: Fri, 29 May 2026 23:25:12 +0000 Subject: [PATCH] =?UTF-8?q?Release=20v2.2.0=20=E2=80=94=20Pattern=20B=20Ph?= =?UTF-8?q?ase=20B2=20legacy=20element=20marker=20sweep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Retroactively applies ratified strength × polarity normativity markers to all 32 in-scope legacy elements (13 SPs excl. retired SP-11, 12 Monitors, 7 Probes). Markup-only; MINOR (purely additive metadata, no behavior change). Distribution: 28 default-strength + polarity (three-token); SP-6 four-token with non-default 'recommended'; 3 detection-only/no-glyph (SP-3, M5, M9). Operator calls: SP-3 two-token retained (Option 1); M5 detection-only (override of proposals-doc lean). SP-15 untouched (out of B2 scope). Version surfaces bumped to 2.2.0: frontmatter, title, status, supersedes, §1.1/§1.2 heading+anchor (refs updated), EOF, update-session block, VERSION, CITATION.cff, README, SKILL.md. Snapshot refreshed PRISM_v2_1_1 → PRISM_v2_2_0. Backlog v15 (Phase B2 → Shipped). LINT-06 caveat cleaned (severity unchanged). Lint: 0 errors / 0 warnings / 56 info (baseline-identical). --- CITATION.cff | 4 +- PRISM.md | 108 ++++++++++++++--------------- PRISM_backlog.md | 40 +++++------ PRISM_v2_1_1.md => PRISM_v2_2_0.md | 108 ++++++++++++++--------------- README.md | 6 +- RELEASING.md | 4 +- SKILL.md | 12 ++-- VERSION | 2 +- lint_rules.md | 8 +-- 9 files changed, 145 insertions(+), 147 deletions(-) rename PRISM_v2_1_1.md => PRISM_v2_2_0.md (98%) diff --git a/CITATION.cff b/CITATION.cff index cf266e2..8412ead 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -24,8 +24,8 @@ authors: repository-code: "https://github.com/Ronkupper/PRISM" url: "https://github.com/Ronkupper/PRISM" license: CC-BY-4.0 -version: "2.1.1" -date-released: "2026-05-23" +version: "2.2.0" +date-released: "2026-05-30" keywords: - llm - prompt-engineering diff --git a/PRISM.md b/PRISM.md index 9447c38..b164174 100644 --- a/PRISM.md +++ b/PRISM.md @@ -1,12 +1,12 @@ --- # Skill metadata (consumed by Claude.ai skill loader) name: prism -description: "PRISM — structured multi-session, multi-vendor LLM-orchestrated audit and research framework. Currently v2.1.1. Trigger this skill whenever the user invokes PRISM mechanics by name or by recognizable construct: PRISM, PRISM audit, PRISM v2, begin a PRISM audit, Master file, any filename matching *_master_p*.md or *_starter_v*.md (v1.x), Prompt Strategy, Lens Library, Vendor Selection, Vendor Triangulation, Setup probes or any of P1-P7 by number, Monitor M* or any of M1-M12 by number, Standing Principle SP-*, Execution Envelope, Execution Self-check, Execution Output, Dispatch register, Dispatch shape (equivalence/split/limitation-named), the What is next artifact, context band or 🟢🟡🟠🔴, migration handoff, P0/P1 boundary, three-layer readiness, Claude Project recommendation, Update session, point refresh, Setup artifacts (Decision brief / Stakeholder register / Claim inventory / Jurisdiction map). Also trigger when the user attaches a Master file or a Lens Library file. Read this file in full at the start of any PRISM session before doing any work." +description: "PRISM — structured multi-session, multi-vendor LLM-orchestrated audit and research framework. Currently v2.2.0. Trigger this skill whenever the user invokes PRISM mechanics by name or by recognizable construct: PRISM, PRISM audit, PRISM v2, begin a PRISM audit, Master file, any filename matching *_master_p*.md or *_starter_v*.md (v1.x), Prompt Strategy, Lens Library, Vendor Selection, Vendor Triangulation, Setup probes or any of P1-P7 by number, Monitor M* or any of M1-M12 by number, Standing Principle SP-*, Execution Envelope, Execution Self-check, Execution Output, Dispatch register, Dispatch shape (equivalence/split/limitation-named), the What is next artifact, context band or 🟢🟡🟠🔴, migration handoff, P0/P1 boundary, three-layer readiness, Claude Project recommendation, Update session, point refresh, Setup artifacts (Decision brief / Stakeholder register / Claim inventory / Jurisdiction map). Also trigger when the user attaches a Master file or a Lens Library file. Read this file in full at the start of any PRISM session before doing any work." # Framework metadata (consumed by PRISM maintenance tooling) -version: 2.1.1 -released: 2026-05-23 -supersedes: 2.1.0 +version: 2.2.0 +released: 2026-05-30 +supersedes: 2.1.1 lens_library_embedded: "0.10" substrate_target: [claude-opus-4-6, claude-opus-4-7] normativity: @@ -17,11 +17,11 @@ normativity: lint_catalog_version: 1 --- -# PRISM v2.1.1 — Framework operating document +# PRISM v2.2.0 — Framework operating document -**Status:** v2.1.1 release. Canonical framework for Claude orchestration sessions. +**Status:** v2.2.0 release. Canonical framework for Claude orchestration sessions. **Date:** May 2026 -**Supersedes:** PRISM v2.1.0 (PATCH release: codifies triangulation integrity as SP-15; tightens §{section.what-v2-1-1-covers} framing prose to remove a read-prone summary line that compressed-attention readers misread as Claude-exclusion; rewrites the Prompt-digest field semantics in §{section.prism-execution-output} to lead with purpose, and inverts the Envelope-template token in §{section.prism-execution-envelope} to name the never-recomputed semantics explicitly). PRISM v1.10.4 is terminal on the v1.x line (pinned per DD §{section.standing-principles-introduced-or-extended-in-v2}). +**Supersedes:** PRISM v2.1.1 (MINOR release: Pattern B Phase B2 — retroactively applies strength × polarity normativity markers to all legacy Standing Principle, Monitor, and Probe headings; purely additive metadata, no behavior change). PRISM v1.10.4 is terminal on the v1.x line (pinned per DD §{section.standing-principles-introduced-or-extended-in-v2}). **Required attachments at every orchestration session:** this file (or the PRISM v2 Skill that loads it) and the project's Master. This file embeds Lens Library v0.10 in Appendix G; a singleton PRISM.md attachment is @@ -80,8 +80,8 @@ Reading order for an operator returning to v2.0 after running a session: ## 1. Scope -### 1.1 What v2.1.1 covers `[structural | stable]` - +### 1.1 What v2.2.0 covers `[structural | stable]` + PRISM v2.0 is a structured multi-session, multi-vendor LLM-orchestrated audit and research framework. v2.0 covers: @@ -119,8 +119,8 @@ and research framework. v2.0 covers: - **Atomic prompt template v2 form** — wraps the triple contract around the prompt body (§{section.atomic-prompt-template-v2-form}). -### 1.2 What v2.1.1 does not cover - +### 1.2 What v2.2.0 does not cover + - **Re-debating direction.** v2.0 implements the spec; the spec implements the design document. Direction is settled. New direction goes through a @@ -1688,7 +1688,7 @@ findings, not draft strategy. Result Completeness Check (§{monitor.M12}, §{sec a convergence-time monitor. Single-responsibility discipline: probes are Setup-time grading constructs only. -#### 6.3.1 Probe 1 — Coverage grading (iterates) `[structural | stable]` +#### 6.3.1 Probe 1 — Coverage grading (iterates) `[structural | stable | ✅]` Grade the draft strategy against the Lens Library v0.9. Universal lenses @@ -1741,7 +1741,7 @@ Saturation flag: not-yet (3 changes from P0.2) only on genuine ambiguity (*fires-maybe* requiring dig-in vs. opt-out decision). Empirical calibration deferred — see §{section.empirical-calibration-items}. -#### 6.3.2 Probe 2 — Adversarial Scope (iterates) `[structural | stable]` +#### 6.3.2 Probe 2 — Adversarial Scope (iterates) `[structural | stable | ✅]` Hunt for silent omissions and under-scoped treatments in the draft Prompt @@ -1761,7 +1761,7 @@ the same as cross-vendor finding reconciliation. address. Operator reviews; orchestration converts surviving candidates into Lens references or new prompt additions in the next iteration. -#### 6.3.3 Probe 3 — Decision Framing (once) +#### 6.3.3 Probe 3 — Decision Framing (once) `[structural | stable | ✅]` Does the strategy answer what the stakeholder actually needs to decide? @@ -1769,7 +1769,7 @@ Does the strategy answer what the stakeholder actually needs to decide? Outputs the Decision brief and Stakeholder register Setup artifacts (§{section.decision-brief}, §{section.stakeholder-register}). -#### 6.3.4 Probe 4 — Pre-mortem (iterates) +#### 6.3.4 Probe 4 — Pre-mortem (iterates) `[structural | stable | ✅]` Imagine execution completes. How would the finding fail to answer the @@ -1778,7 +1778,7 @@ original question? **Output.** A list of pre-mortem failure modes; each surviving mode either becomes a new probe in the strategy or is dismissed with rationale. -#### 6.3.5 Probe 5 — Falsifier (once) +#### 6.3.5 Probe 5 — Falsifier (once) `[structural | stable | ✅]` What findings would invalidate the thesis? @@ -1787,7 +1787,7 @@ What findings would invalidate the thesis? that, if observed, would refute the thesis. These become explicit success/failure criteria for Layer 2 synthesis. -#### 6.3.6 Probe 6 — Domain Reconnaissance (iterates early) +#### 6.3.6 Probe 6 — Domain Reconnaissance (iterates early) `[structural | stable | ✅]` What do practitioners, researchers, and serious analysts of this domain @@ -1811,7 +1811,7 @@ domain-specific literature. Outputs the Jurisdiction map Setup artifact (§{section.jurisdiction-map}). -#### 6.3.7 Probe 7 — User Voice (iterates early) `[structural | stable]` +#### 6.3.7 Probe 7 — User Voice (iterates early) `[structural | stable | ✅]` Imports real end-user / customer / affected-user perspectives into Setup. @@ -2289,7 +2289,7 @@ inline expansion per §{section.atomic-prompt-self-containment}. ### 9.1 Standalone monitors (M1, M2, M4, M5, M9) -#### 9.1.1 M1 — Missing Inputs `[structural | stable]` +#### 9.1.1 M1 — Missing Inputs `[structural | stable | ⚠️]` - **Trigger.** Every orchestration session-open and turn-close. @@ -2302,7 +2302,7 @@ inline expansion per §{section.atomic-prompt-self-containment}. - **Resolution.** Halt until attachments provided; or operator confirms intentional absence. -#### 9.1.2 M2 — Version Drift `[structural | stable]` +#### 9.1.2 M2 — Version Drift `[structural | stable | ⚠️]` - **Trigger.** Every orchestration session-open. Compares attached @@ -2328,7 +2328,7 @@ unlikely *by construction* but not impossible. Residual failure modes: - Cross-device syncing serves a previous version. - Multiple Masters from forked sessions (anti-pattern but not impossible). -#### 9.1.3 M4 — Ambiguous Ask `[methodological | stable]` +#### 9.1.3 M4 — Ambiguous Ask `[methodological | stable | ⚠️]` - **Trigger.** Every orchestration turn that processes operator input. @@ -2342,7 +2342,7 @@ unlikely *by construction* but not impossible. Residual failure modes: - **No execution mirror.** Execution sessions receive pre-resolved dispatched prompts; M4 is orchestration-only. -#### 9.1.4 M5 — Context Pressure +#### 9.1.4 M5 — Context Pressure `[structural | stable]` Spec per §{section.m5-context-pressure-monitor}. @@ -2369,7 +2369,7 @@ Spec per §{section.m5-context-pressure-monitor}. Fire during Layer-1 integration of new findings into the Master. Can chain to M10. -#### 9.2.1 M6 — Premise Shift `[structural | stable]` +#### 9.2.1 M6 — Premise Shift `[structural | stable | ⚠️]` - **Trigger.** Layer-1 convergence — new finding ingested. @@ -2383,7 +2383,7 @@ to M10. sections. v2 M6 reads premises from Setup artifacts. Surface broadened; name unchanged because face value still describes the work. -#### 9.2.2 M7 — Claim Conflict `[structural | stable]` +#### 9.2.2 M7 — Claim Conflict `[structural | stable | ⚠️]` - **Trigger.** Layer-1 convergence — new finding ingested. @@ -2398,7 +2398,7 @@ to M10. Assumption Register; M7 reads finding-vs-finding directly. Renamed to match the actual surface. -#### 9.2.3 M8 — Stale Source `[structural | stable]` +#### 9.2.3 M8 — Stale Source `[structural | stable | ⚠️]` - **Trigger.** Layer-1 convergence — orchestration ingesting findings from @@ -2433,7 +2433,7 @@ scope*. Different artifacts, different lifecycles, different resolutions. | **M8** | Cited evidence sources in returned findings | Per finding, at Layer-1 convergence | Re-dispatch with current sources | | **§{section.currency-maintenance-point-refresh} point-refresh** | Lens Library entry's `rubric_anchor:` / `informed_by:` | Per Setup probe iteration | Inline refresh in Prompt Strategy; advisory signal toward Update session | -#### 9.2.4 M12 — Result Completeness Check `[structural | stable]` +#### 9.2.4 M12 — Result Completeness Check `[structural | stable | ⚠️]` - **Trigger.** Layer-1 convergence — new finding ingested. @@ -2466,7 +2466,7 @@ scope*. Different artifacts, different lifecycles, different resolutions. Feed the priority-ranked candidate list at each orchestration turn-close. -#### 9.3.1 M3 — Sequence Violation `[structural | stable]` +#### 9.3.1 M3 — Sequence Violation `[structural | stable | ⚠️]` - **Trigger.** Operator declaration or strategy state. @@ -2480,7 +2480,7 @@ Feed the priority-ranked candidate list at each orchestration turn-close. intentionally skipped, or accept the out-of-order sequence with documented rationale. -#### 9.3.2 M10 — Rerun / Fix Required `[structural | stable]` +#### 9.3.2 M10 — Rerun / Fix Required `[structural | stable | ⚠️]` - **Trigger.** Triggered by chain from M6 / M7 / M8 / M12 HIGH; or by @@ -2501,7 +2501,7 @@ Feed the priority-ranked candidate list at each orchestration turn-close. - **Surfaces in *What's next*.** Overdue Rerun Register items rank at priority tier 3 per §{section.whats-next}. -#### 9.3.3 M11 — Layer 2 Readiness `[structural | stable]` +#### 9.3.3 M11 — Layer 2 Readiness `[structural | stable | ✅]` - **Trigger.** Every orchestration turn-close. @@ -2544,7 +2544,7 @@ mechanics evolve. ### 10.1 Standing Principles introduced or extended in v2 -#### 10.1.1 SP-1 extended — Canonicity preservation `[operator-scaffolding | stable]` +#### 10.1.1 SP-1 extended — Canonicity preservation `[operator-scaffolding | stable | 🚫]` - v1.x's SP-1 forbade silently reconstructing missing files from memory. @@ -2558,7 +2558,7 @@ mechanics evolve. - Never frame regeneration as "deterministic" or "low-cost" unless it genuinely is. -#### 10.1.2 SP-12 — Bounded-Search Disclosure `[operator-scaffolding | stable]` +#### 10.1.2 SP-12 — Bounded-Search Disclosure `[operator-scaffolding | stable | ✅]` - When orchestration answers on the basis of a bounded retrieval, the @@ -2578,7 +2578,7 @@ mechanics evolve. confirm before I conclude. ``` -#### 10.1.3 SP-13 — Substrate Declaration `[operator-scaffolding | stable]` +#### 10.1.3 SP-13 — Substrate Declaration `[operator-scaffolding | stable | ⚠️]` - PRISM-loaded sessions verify substrate against declared target before @@ -2602,7 +2602,7 @@ SP-13 verification: [If no or cannot-determine: halt; ask operator.] ``` -#### 10.1.4 SP-10 — Verify state before recommending `[operator-scaffolding | stable]` +#### 10.1.4 SP-10 — Verify state before recommending `[operator-scaffolding | stable | ✅]` Carries forward from v1.10.4 as a named principle. The principle's @@ -2625,7 +2625,7 @@ re-deriving it. - Budget discipline: verification searches return substantial context; only trigger on fast-moving state, not on stable defaults. -#### 10.1.5 SP-14 — Filename Discipline `[operator-scaffolding | stable]` +#### 10.1.5 SP-14 — Filename Discipline `[operator-scaffolding | stable | ✅]` Extracted from v1.x SP-8 (which bundled two concerns under one number). @@ -2702,7 +2702,7 @@ Per-SP disposition explicit: | SP-14 | Filename Discipline | New in v2 (extracted from SP-8) | See §{section.sp-14-filename-discipline} | | SP-15 | Triangulation integrity | New in v2.1.1 | See §{section.sp-15-triangulation-integrity} | -#### 10.2.1 SP-8 narrowed — Canonical Authority `[operator-scaffolding | stable]` +#### 10.2.1 SP-8 narrowed — Canonical Authority `[operator-scaffolding | stable | ✅]` After the v2 split, SP-8 carries one concern: @@ -3468,7 +3468,7 @@ indexes decisions by tag for easy review. ### C.1 `[structural | stable]` -§{section.what-v2-1-1-covers} (scope), §{section.three-leg-constraint} (three-leg constraint), §{section.two-session-types} (two session types), +§{section.what-v2-2-0-covers} (scope), §{section.three-leg-constraint} (three-leg constraint), §{section.two-session-types} (two session types), §{section.the-triple-contract} (triple contract), §{section.the-master} (Master), §{section.whats-next} (*What's next*), §{section.forward-compatibility-commitments} (forward-compatibility commitments), §{section.single-envelope-with-spectrum-shape} (single-Envelope-with- spectrum), §{section.vendor-triangulation} (Vendor Triangulation), §{section.asymmetric-parallel-return-handling} (asymmetric returns), §{section.recommended-vs-executed-reconciliation} @@ -3944,7 +3944,7 @@ Falsifiers: [list — findings that would refute the thesis] Each Standing Principle stated in full, in canonical order. -### SP-1 (extended) — Canonicity preservation +### SP-1 (extended) — Canonicity preservation `[operator-scaffolding | stable | 🚫]` `[operator-scaffolding | stable]` @@ -3964,7 +3964,7 @@ Order of operations when a canonical artifact is missing: Never frame regeneration as "deterministic" or "low-cost" unless it genuinely is. Cross-ref: §{section.sp-1-extended-canonicity-preservation}, §{section.missing-handoff-recovery}. -### SP-2 — Defer non-critical fixes to natural touchpoint +### SP-2 — Defer non-critical fixes to natural touchpoint `[operator-scaffolding | stable | ⚠️]` `[methodological | stable]` *(carryforward from v1.10.4)* @@ -3973,7 +3973,7 @@ Non-critical issues queue against priority tiers in *What's next*; fix at the next aligned step rather than mid-flight. M10 (Rerun) fires when no natural touchpoint exists. -### SP-3 — DISSOLVED in v2 +### SP-3 — DISSOLVED in v2 `[operator-scaffolding | stable]` v1.10.4's SP-3 ("Convergence is part of prompt delivery") is @@ -3981,7 +3981,7 @@ incompatible with v2's orchestration/execution split. Convergence moves to orchestration; per-prompt convergence checklists drop from the atomic prompt template (§{section.atomic-prompt-template-v2-form}). -### SP-4 — Every Monitor produces visible output +### SP-4 — Every Monitor produces visible output `[operator-scaffolding | stable | ✅]` `[methodological | stable]` *(carryforward)* @@ -3989,7 +3989,7 @@ atomic prompt template (§{section.atomic-prompt-template-v2-form}). Silent monitors are useless monitors. Applies to all M1–M12 fires. *What's next* surfaces every fire at appropriate severity. -### SP-5 — No heuristic guessing on ambiguous input +### SP-5 — No heuristic guessing on ambiguous input `[operator-scaffolding | stable | ⚠️]` `[methodological | stable]` *(carryforward)* @@ -3997,7 +3997,7 @@ Silent monitors are useless monitors. Applies to all M1–M12 fires. Wherever orchestration parses operator input, ambiguity halts and asks. Pairs with M4 (Ambiguous Ask) firing. -### SP-6 — Rebuild at threshold +### SP-6 — Rebuild at threshold `[operator-scaffolding | stable | recommended | ✅]` `[methodological | stable]` *(carryforward)* @@ -4007,7 +4007,7 @@ above → create_file rebuild via deterministic transformation script. Applies to v2 framework builds, Library Update sessions, large Master rewrites. -### SP-7 — File delivery is mandatory +### SP-7 — File delivery is mandatory `[operator-scaffolding | stable | ✅]` `[methodological | stable]` *(carryforward)* @@ -4017,7 +4017,7 @@ execution session that produces Output delivers a file. Every Update session that produces a new Library file delivers a file. Reinforced structurally by the triple contract's file-based Output (§{section.prism-execution-output}). -### SP-8 (narrowed) — Canonical Authority +### SP-8 (narrowed) — Canonical Authority `[operator-scaffolding | stable | ✅]` `[operator-scaffolding | stable]` @@ -4029,7 +4029,7 @@ start of the next session so M2 (Version Drift) can reconcile. Filename discipline (the look-alike disambiguation pattern) extracted to SP-14. -### SP-9 — Silence is never consent +### SP-9 — Silence is never consent `[operator-scaffolding | stable | ⚠️]` `[methodological | stable]` *(carryforward)* @@ -4039,7 +4039,7 @@ ratification, ambiguity escalation, migration override at 🔴, Project recommendation accept/decline. Active operator action required; no defaults-on-timeout. -### SP-10 — Verify state before recommending +### SP-10 — Verify state before recommending `[operator-scaffolding | stable | ✅]` `[operator-scaffolding | stable]` *(carryforward as named principle)* @@ -4050,7 +4050,7 @@ recommending. Mechanics live in Vendor Selection (§{section.vendor-selection-at travels to point refresh (§{section.currency-maintenance-point-refresh}), Update sessions (§{section.currency-maintenance-update-session}), and any future recommendation surface. -### SP-12 — Bounded-Search Disclosure +### SP-12 — Bounded-Search Disclosure `[operator-scaffolding | stable | ✅]` `[operator-scaffolding | stable]` *(new in v2)* @@ -4060,7 +4060,7 @@ default posture is to disclose the bound. "I found no evidence" insufficient; "I found no evidence within [named scope]; confirm before I proceed" is required. Cross-ref: §{section.sp-12-bounded-search-disclosure}. -### SP-13 — Substrate Declaration +### SP-13 — Substrate Declaration `[operator-scaffolding | stable | ⚠️]` `[operator-scaffolding | stable]` *(new in v2)* @@ -4072,7 +4072,7 @@ operator. Operationalized inside execution sessions via the Self-check block (§{section.prism-execution-self-check}); orchestration-side via session-open verification. Cross-ref: §{section.sp-13-substrate-declaration}. -### SP-14 — Filename Discipline +### SP-14 — Filename Discipline `[operator-scaffolding | stable | ✅]` `[operator-scaffolding | stable]` *(new in v2; extracted from SP-8)* @@ -5024,7 +5024,7 @@ to the maintainer. - **Repository.** `https://github.com/Ronkupper/PRISM` - **Maintainer.** Ron Kuper ([@Ronkupper](https://github.com/Ronkupper)) -- **Framework version.** v2.1.1 (this file) +- **Framework version.** v2.2.0 (this file) - **Embedded Lens Library version.** v0.10 (Appendix G) - **Release date.** 2026-05-23 - **Licensing.** Documentation under CC BY 4.0; any code under MIT; @@ -5045,7 +5045,7 @@ without that capability can paste the URLs into a browser and download. | Framework version stamp | `https://raw.githubusercontent.com/Ronkupper/PRISM/main/VERSION` | — | | Lens version stamp | `https://raw.githubusercontent.com/Ronkupper/PRISM/main/lens/VERSION` | — | | Releases index | `https://github.com/Ronkupper/PRISM/releases` | — | -| Release at this version | — | `https://github.com/Ronkupper/PRISM/releases/tag/v2.1.1` | +| Release at this version | — | `https://github.com/Ronkupper/PRISM/releases/tag/v2.2.0` | The two `VERSION` endpoints exist as cheap currency checks: each is a single-line file containing the current version on the corresponding @@ -5071,7 +5071,7 @@ failed check is not an error. repository's `main` branch. The endpoints return one line each. 3. Compare. If the published version is greater than the attached version on either track, surface a soft flag: - `Framework v2.1.1 attached; v{published} available at {releases URL}.` + `Framework v2.2.0 attached; v{published} available at {releases URL}.` `Lens v0.10 attached; v{published} available at {releases URL}.` 4. The flag is informational. The operator decides whether to upgrade between sessions. PRISM does not silently swap attached files at @@ -5114,8 +5114,8 @@ To cite PRISM in published work, see `CITATION.cff` in the repository. A short attribution suitable for inline use: > Kuper, R. (2026). *PRISM: A Framework for LLM Research and Audits* -> (v2.1.1). https://github.com/Ronkupper/PRISM +> (v2.2.0). https://github.com/Ronkupper/PRISM --- -*End of PRISM v2.1.1 framework operating document.* +*End of PRISM v2.2.0 framework operating document.* diff --git a/PRISM_backlog.md b/PRISM_backlog.md index 4a62ad9..b107152 100644 --- a/PRISM_backlog.md +++ b/PRISM_backlog.md @@ -1,6 +1,6 @@ # PRISM Backlog -**Version:** 14 +**Version:** 15 **Maintained by:** Ron Kuper + Claude **Purpose:** Capture ideas, proposals, and deferred items for future PRISM versions. Separate from PRISM.md because backlog items are proposals, not in-force rules — keeping them out of PRISM.md preserves the "everything in PRISM.md is canonical" property. @@ -74,26 +74,6 @@ When an item is declined, move it to **Declined** with rationale — prevents re --- -### Tooling-conventions Pattern B Phase B2 — legacy element marking sweep - -**Status:** Gated on operator ratification of the proposed legacy markers at `PRISM-workshop/notes/pattern_b_legacy_marker_proposals.md` (produced in the v2.1.0 build session). - -**Scope.** Pattern B Phase B1 (shipped in v2.1.0) added the strength × polarity vocabulary to the frontmatter `normativity` block and the convention-prose extension in the title block, but did not retroactively mark any existing Standing Principle, Monitor, Gate, or Probe. Phase B2 applies ratified polarity glyphs (and any non-default strength tokens) to all ~35 legacy elements in a single sweep. - -**Target release:** v2.2.0. The legacy sweep visibly touches every SP / Monitor / Gate / Probe heading; its own release is the cleanest framing for that surface change (per `design/tooling_conventions_micro_dds_rev1.md` X1). - -**Sequence to Phase B2:** - -1. v2.1.0 ships proposals document (done). -2. Operator reviews each proposed marker; ratifies or amends. -3. Phase B2 handoff written at `handoffs/tooling_conventions_pattern_b_phase_b2_build.md` after ratification. -4. Phase B2 build session applies ratified markers via deterministic Python transformation. -5. `PRISM-LINT-06 / element-marking-completeness` (reserved in catalog v1) may promote from `info` to `warning` after Phase B2 ships. - -**Provenance.** `PRISM-workshop/design/tooling_conventions_micro_dds_rev1.md` decisions B1–B6. Phase B1 build: `PRISM-workshop/handoffs/tooling_conventions_micro_dds_build.md` (rev1 + amendment). - ---- - ## Accepted for v1.9 ### ask_user_input UX integration @@ -198,6 +178,24 @@ Codified as SP-9 in v1.9. ## Shipped +### Tooling-conventions Pattern B Phase B2 — legacy element marking sweep (v2.2.0) + +**Shipped on:** `main` of `Ronkupper/PRISM`, 2026-05-30. Tag `v2.2.0`. + +**What landed.** The retroactive Pattern B sweep: ratified strength × polarity normativity markers applied to all 32 in-scope legacy elements (13 Standing Principles excluding retired SP-11, 12 Monitors, 7 Probes; no Gate elements survive the v2 dissolution). Markup-only — zero body-text change. Released as MINOR (purely additive metadata on existing headings). + +- **Distribution:** 28 elements carry a polarity glyph at default strength (three-token form); SP-6 carries the four-token form with non-default strength `recommended`; 3 elements are detection-only / no-glyph (SP-3, M5, M9) and retain the two-token form. +- **Operator calls.** SP-3 ratified Option 1 — retains its numbering slot with the two-token `[operator-scaffolding | stable]` form (renumber-and-remove declined on citation-stability grounds; a v3.0.0 candidate). M5 ratified detection-only — an override of the proposals-doc `⚠️` lean, on the B2 worked-example principle that M5's four-band behavior (silent / advisory / active / directive) would be distorted by any single polarity glyph. +- **App F retrospective headings** received the marker alongside the §10 numbered headings, per the proposals doc's "every listed location" instruction. + +**Pre-flight.** Lint 0 errors / 0 warnings / 56 info-level orphans — identical to the v2.1.1 baseline (§1.1/§1.2 anchor rename swapped one orphan for another, net unchanged). Idempotent transformation (second pass produces no diff). SP-15 (added in v2.1.1, after the proposals doc) deliberately left untouched at both its §10.1.6 and Appendix F locations. Customer-name leak-class sweep clean on every public-surface artifact. + +**Provenance.** `PRISM-workshop/handoffs/tooling_conventions_pattern_b_phase_b2_build.md` (ratified marker set, rev1, 2026-05-23); proposals at `PRISM-workshop/notes/pattern_b_legacy_marker_proposals.md`; vocabulary at `PRISM-workshop/design/tooling_conventions_micro_dds_rev1.md` B1–B6. Transformation scripts `PRISM-workshop/scripts/apply_phase_b2_markers.py` + `bump_v220_version_strings.py`. + +**Downstream.** `PRISM-LINT-06 / element-marking-completeness` remains at `info` — promotion to `warning` is a separate decision after operators live with the marked file. + +--- + ### Release-hygiene patch — SP-15 + §1.1 framing + Prompt-digest semantics (v2.1.1) **Shipped on:** `main` of `Ronkupper/PRISM`, 2026-05-23. Tag `v2.1.1`. diff --git a/PRISM_v2_1_1.md b/PRISM_v2_2_0.md similarity index 98% rename from PRISM_v2_1_1.md rename to PRISM_v2_2_0.md index 9447c38..b164174 100644 --- a/PRISM_v2_1_1.md +++ b/PRISM_v2_2_0.md @@ -1,12 +1,12 @@ --- # Skill metadata (consumed by Claude.ai skill loader) name: prism -description: "PRISM — structured multi-session, multi-vendor LLM-orchestrated audit and research framework. Currently v2.1.1. Trigger this skill whenever the user invokes PRISM mechanics by name or by recognizable construct: PRISM, PRISM audit, PRISM v2, begin a PRISM audit, Master file, any filename matching *_master_p*.md or *_starter_v*.md (v1.x), Prompt Strategy, Lens Library, Vendor Selection, Vendor Triangulation, Setup probes or any of P1-P7 by number, Monitor M* or any of M1-M12 by number, Standing Principle SP-*, Execution Envelope, Execution Self-check, Execution Output, Dispatch register, Dispatch shape (equivalence/split/limitation-named), the What is next artifact, context band or 🟢🟡🟠🔴, migration handoff, P0/P1 boundary, three-layer readiness, Claude Project recommendation, Update session, point refresh, Setup artifacts (Decision brief / Stakeholder register / Claim inventory / Jurisdiction map). Also trigger when the user attaches a Master file or a Lens Library file. Read this file in full at the start of any PRISM session before doing any work." +description: "PRISM — structured multi-session, multi-vendor LLM-orchestrated audit and research framework. Currently v2.2.0. Trigger this skill whenever the user invokes PRISM mechanics by name or by recognizable construct: PRISM, PRISM audit, PRISM v2, begin a PRISM audit, Master file, any filename matching *_master_p*.md or *_starter_v*.md (v1.x), Prompt Strategy, Lens Library, Vendor Selection, Vendor Triangulation, Setup probes or any of P1-P7 by number, Monitor M* or any of M1-M12 by number, Standing Principle SP-*, Execution Envelope, Execution Self-check, Execution Output, Dispatch register, Dispatch shape (equivalence/split/limitation-named), the What is next artifact, context band or 🟢🟡🟠🔴, migration handoff, P0/P1 boundary, three-layer readiness, Claude Project recommendation, Update session, point refresh, Setup artifacts (Decision brief / Stakeholder register / Claim inventory / Jurisdiction map). Also trigger when the user attaches a Master file or a Lens Library file. Read this file in full at the start of any PRISM session before doing any work." # Framework metadata (consumed by PRISM maintenance tooling) -version: 2.1.1 -released: 2026-05-23 -supersedes: 2.1.0 +version: 2.2.0 +released: 2026-05-30 +supersedes: 2.1.1 lens_library_embedded: "0.10" substrate_target: [claude-opus-4-6, claude-opus-4-7] normativity: @@ -17,11 +17,11 @@ normativity: lint_catalog_version: 1 --- -# PRISM v2.1.1 — Framework operating document +# PRISM v2.2.0 — Framework operating document -**Status:** v2.1.1 release. Canonical framework for Claude orchestration sessions. +**Status:** v2.2.0 release. Canonical framework for Claude orchestration sessions. **Date:** May 2026 -**Supersedes:** PRISM v2.1.0 (PATCH release: codifies triangulation integrity as SP-15; tightens §{section.what-v2-1-1-covers} framing prose to remove a read-prone summary line that compressed-attention readers misread as Claude-exclusion; rewrites the Prompt-digest field semantics in §{section.prism-execution-output} to lead with purpose, and inverts the Envelope-template token in §{section.prism-execution-envelope} to name the never-recomputed semantics explicitly). PRISM v1.10.4 is terminal on the v1.x line (pinned per DD §{section.standing-principles-introduced-or-extended-in-v2}). +**Supersedes:** PRISM v2.1.1 (MINOR release: Pattern B Phase B2 — retroactively applies strength × polarity normativity markers to all legacy Standing Principle, Monitor, and Probe headings; purely additive metadata, no behavior change). PRISM v1.10.4 is terminal on the v1.x line (pinned per DD §{section.standing-principles-introduced-or-extended-in-v2}). **Required attachments at every orchestration session:** this file (or the PRISM v2 Skill that loads it) and the project's Master. This file embeds Lens Library v0.10 in Appendix G; a singleton PRISM.md attachment is @@ -80,8 +80,8 @@ Reading order for an operator returning to v2.0 after running a session: ## 1. Scope -### 1.1 What v2.1.1 covers `[structural | stable]` - +### 1.1 What v2.2.0 covers `[structural | stable]` + PRISM v2.0 is a structured multi-session, multi-vendor LLM-orchestrated audit and research framework. v2.0 covers: @@ -119,8 +119,8 @@ and research framework. v2.0 covers: - **Atomic prompt template v2 form** — wraps the triple contract around the prompt body (§{section.atomic-prompt-template-v2-form}). -### 1.2 What v2.1.1 does not cover - +### 1.2 What v2.2.0 does not cover + - **Re-debating direction.** v2.0 implements the spec; the spec implements the design document. Direction is settled. New direction goes through a @@ -1688,7 +1688,7 @@ findings, not draft strategy. Result Completeness Check (§{monitor.M12}, §{sec a convergence-time monitor. Single-responsibility discipline: probes are Setup-time grading constructs only. -#### 6.3.1 Probe 1 — Coverage grading (iterates) `[structural | stable]` +#### 6.3.1 Probe 1 — Coverage grading (iterates) `[structural | stable | ✅]` Grade the draft strategy against the Lens Library v0.9. Universal lenses @@ -1741,7 +1741,7 @@ Saturation flag: not-yet (3 changes from P0.2) only on genuine ambiguity (*fires-maybe* requiring dig-in vs. opt-out decision). Empirical calibration deferred — see §{section.empirical-calibration-items}. -#### 6.3.2 Probe 2 — Adversarial Scope (iterates) `[structural | stable]` +#### 6.3.2 Probe 2 — Adversarial Scope (iterates) `[structural | stable | ✅]` Hunt for silent omissions and under-scoped treatments in the draft Prompt @@ -1761,7 +1761,7 @@ the same as cross-vendor finding reconciliation. address. Operator reviews; orchestration converts surviving candidates into Lens references or new prompt additions in the next iteration. -#### 6.3.3 Probe 3 — Decision Framing (once) +#### 6.3.3 Probe 3 — Decision Framing (once) `[structural | stable | ✅]` Does the strategy answer what the stakeholder actually needs to decide? @@ -1769,7 +1769,7 @@ Does the strategy answer what the stakeholder actually needs to decide? Outputs the Decision brief and Stakeholder register Setup artifacts (§{section.decision-brief}, §{section.stakeholder-register}). -#### 6.3.4 Probe 4 — Pre-mortem (iterates) +#### 6.3.4 Probe 4 — Pre-mortem (iterates) `[structural | stable | ✅]` Imagine execution completes. How would the finding fail to answer the @@ -1778,7 +1778,7 @@ original question? **Output.** A list of pre-mortem failure modes; each surviving mode either becomes a new probe in the strategy or is dismissed with rationale. -#### 6.3.5 Probe 5 — Falsifier (once) +#### 6.3.5 Probe 5 — Falsifier (once) `[structural | stable | ✅]` What findings would invalidate the thesis? @@ -1787,7 +1787,7 @@ What findings would invalidate the thesis? that, if observed, would refute the thesis. These become explicit success/failure criteria for Layer 2 synthesis. -#### 6.3.6 Probe 6 — Domain Reconnaissance (iterates early) +#### 6.3.6 Probe 6 — Domain Reconnaissance (iterates early) `[structural | stable | ✅]` What do practitioners, researchers, and serious analysts of this domain @@ -1811,7 +1811,7 @@ domain-specific literature. Outputs the Jurisdiction map Setup artifact (§{section.jurisdiction-map}). -#### 6.3.7 Probe 7 — User Voice (iterates early) `[structural | stable]` +#### 6.3.7 Probe 7 — User Voice (iterates early) `[structural | stable | ✅]` Imports real end-user / customer / affected-user perspectives into Setup. @@ -2289,7 +2289,7 @@ inline expansion per §{section.atomic-prompt-self-containment}. ### 9.1 Standalone monitors (M1, M2, M4, M5, M9) -#### 9.1.1 M1 — Missing Inputs `[structural | stable]` +#### 9.1.1 M1 — Missing Inputs `[structural | stable | ⚠️]` - **Trigger.** Every orchestration session-open and turn-close. @@ -2302,7 +2302,7 @@ inline expansion per §{section.atomic-prompt-self-containment}. - **Resolution.** Halt until attachments provided; or operator confirms intentional absence. -#### 9.1.2 M2 — Version Drift `[structural | stable]` +#### 9.1.2 M2 — Version Drift `[structural | stable | ⚠️]` - **Trigger.** Every orchestration session-open. Compares attached @@ -2328,7 +2328,7 @@ unlikely *by construction* but not impossible. Residual failure modes: - Cross-device syncing serves a previous version. - Multiple Masters from forked sessions (anti-pattern but not impossible). -#### 9.1.3 M4 — Ambiguous Ask `[methodological | stable]` +#### 9.1.3 M4 — Ambiguous Ask `[methodological | stable | ⚠️]` - **Trigger.** Every orchestration turn that processes operator input. @@ -2342,7 +2342,7 @@ unlikely *by construction* but not impossible. Residual failure modes: - **No execution mirror.** Execution sessions receive pre-resolved dispatched prompts; M4 is orchestration-only. -#### 9.1.4 M5 — Context Pressure +#### 9.1.4 M5 — Context Pressure `[structural | stable]` Spec per §{section.m5-context-pressure-monitor}. @@ -2369,7 +2369,7 @@ Spec per §{section.m5-context-pressure-monitor}. Fire during Layer-1 integration of new findings into the Master. Can chain to M10. -#### 9.2.1 M6 — Premise Shift `[structural | stable]` +#### 9.2.1 M6 — Premise Shift `[structural | stable | ⚠️]` - **Trigger.** Layer-1 convergence — new finding ingested. @@ -2383,7 +2383,7 @@ to M10. sections. v2 M6 reads premises from Setup artifacts. Surface broadened; name unchanged because face value still describes the work. -#### 9.2.2 M7 — Claim Conflict `[structural | stable]` +#### 9.2.2 M7 — Claim Conflict `[structural | stable | ⚠️]` - **Trigger.** Layer-1 convergence — new finding ingested. @@ -2398,7 +2398,7 @@ to M10. Assumption Register; M7 reads finding-vs-finding directly. Renamed to match the actual surface. -#### 9.2.3 M8 — Stale Source `[structural | stable]` +#### 9.2.3 M8 — Stale Source `[structural | stable | ⚠️]` - **Trigger.** Layer-1 convergence — orchestration ingesting findings from @@ -2433,7 +2433,7 @@ scope*. Different artifacts, different lifecycles, different resolutions. | **M8** | Cited evidence sources in returned findings | Per finding, at Layer-1 convergence | Re-dispatch with current sources | | **§{section.currency-maintenance-point-refresh} point-refresh** | Lens Library entry's `rubric_anchor:` / `informed_by:` | Per Setup probe iteration | Inline refresh in Prompt Strategy; advisory signal toward Update session | -#### 9.2.4 M12 — Result Completeness Check `[structural | stable]` +#### 9.2.4 M12 — Result Completeness Check `[structural | stable | ⚠️]` - **Trigger.** Layer-1 convergence — new finding ingested. @@ -2466,7 +2466,7 @@ scope*. Different artifacts, different lifecycles, different resolutions. Feed the priority-ranked candidate list at each orchestration turn-close. -#### 9.3.1 M3 — Sequence Violation `[structural | stable]` +#### 9.3.1 M3 — Sequence Violation `[structural | stable | ⚠️]` - **Trigger.** Operator declaration or strategy state. @@ -2480,7 +2480,7 @@ Feed the priority-ranked candidate list at each orchestration turn-close. intentionally skipped, or accept the out-of-order sequence with documented rationale. -#### 9.3.2 M10 — Rerun / Fix Required `[structural | stable]` +#### 9.3.2 M10 — Rerun / Fix Required `[structural | stable | ⚠️]` - **Trigger.** Triggered by chain from M6 / M7 / M8 / M12 HIGH; or by @@ -2501,7 +2501,7 @@ Feed the priority-ranked candidate list at each orchestration turn-close. - **Surfaces in *What's next*.** Overdue Rerun Register items rank at priority tier 3 per §{section.whats-next}. -#### 9.3.3 M11 — Layer 2 Readiness `[structural | stable]` +#### 9.3.3 M11 — Layer 2 Readiness `[structural | stable | ✅]` - **Trigger.** Every orchestration turn-close. @@ -2544,7 +2544,7 @@ mechanics evolve. ### 10.1 Standing Principles introduced or extended in v2 -#### 10.1.1 SP-1 extended — Canonicity preservation `[operator-scaffolding | stable]` +#### 10.1.1 SP-1 extended — Canonicity preservation `[operator-scaffolding | stable | 🚫]` - v1.x's SP-1 forbade silently reconstructing missing files from memory. @@ -2558,7 +2558,7 @@ mechanics evolve. - Never frame regeneration as "deterministic" or "low-cost" unless it genuinely is. -#### 10.1.2 SP-12 — Bounded-Search Disclosure `[operator-scaffolding | stable]` +#### 10.1.2 SP-12 — Bounded-Search Disclosure `[operator-scaffolding | stable | ✅]` - When orchestration answers on the basis of a bounded retrieval, the @@ -2578,7 +2578,7 @@ mechanics evolve. confirm before I conclude. ``` -#### 10.1.3 SP-13 — Substrate Declaration `[operator-scaffolding | stable]` +#### 10.1.3 SP-13 — Substrate Declaration `[operator-scaffolding | stable | ⚠️]` - PRISM-loaded sessions verify substrate against declared target before @@ -2602,7 +2602,7 @@ SP-13 verification: [If no or cannot-determine: halt; ask operator.] ``` -#### 10.1.4 SP-10 — Verify state before recommending `[operator-scaffolding | stable]` +#### 10.1.4 SP-10 — Verify state before recommending `[operator-scaffolding | stable | ✅]` Carries forward from v1.10.4 as a named principle. The principle's @@ -2625,7 +2625,7 @@ re-deriving it. - Budget discipline: verification searches return substantial context; only trigger on fast-moving state, not on stable defaults. -#### 10.1.5 SP-14 — Filename Discipline `[operator-scaffolding | stable]` +#### 10.1.5 SP-14 — Filename Discipline `[operator-scaffolding | stable | ✅]` Extracted from v1.x SP-8 (which bundled two concerns under one number). @@ -2702,7 +2702,7 @@ Per-SP disposition explicit: | SP-14 | Filename Discipline | New in v2 (extracted from SP-8) | See §{section.sp-14-filename-discipline} | | SP-15 | Triangulation integrity | New in v2.1.1 | See §{section.sp-15-triangulation-integrity} | -#### 10.2.1 SP-8 narrowed — Canonical Authority `[operator-scaffolding | stable]` +#### 10.2.1 SP-8 narrowed — Canonical Authority `[operator-scaffolding | stable | ✅]` After the v2 split, SP-8 carries one concern: @@ -3468,7 +3468,7 @@ indexes decisions by tag for easy review. ### C.1 `[structural | stable]` -§{section.what-v2-1-1-covers} (scope), §{section.three-leg-constraint} (three-leg constraint), §{section.two-session-types} (two session types), +§{section.what-v2-2-0-covers} (scope), §{section.three-leg-constraint} (three-leg constraint), §{section.two-session-types} (two session types), §{section.the-triple-contract} (triple contract), §{section.the-master} (Master), §{section.whats-next} (*What's next*), §{section.forward-compatibility-commitments} (forward-compatibility commitments), §{section.single-envelope-with-spectrum-shape} (single-Envelope-with- spectrum), §{section.vendor-triangulation} (Vendor Triangulation), §{section.asymmetric-parallel-return-handling} (asymmetric returns), §{section.recommended-vs-executed-reconciliation} @@ -3944,7 +3944,7 @@ Falsifiers: [list — findings that would refute the thesis] Each Standing Principle stated in full, in canonical order. -### SP-1 (extended) — Canonicity preservation +### SP-1 (extended) — Canonicity preservation `[operator-scaffolding | stable | 🚫]` `[operator-scaffolding | stable]` @@ -3964,7 +3964,7 @@ Order of operations when a canonical artifact is missing: Never frame regeneration as "deterministic" or "low-cost" unless it genuinely is. Cross-ref: §{section.sp-1-extended-canonicity-preservation}, §{section.missing-handoff-recovery}. -### SP-2 — Defer non-critical fixes to natural touchpoint +### SP-2 — Defer non-critical fixes to natural touchpoint `[operator-scaffolding | stable | ⚠️]` `[methodological | stable]` *(carryforward from v1.10.4)* @@ -3973,7 +3973,7 @@ Non-critical issues queue against priority tiers in *What's next*; fix at the next aligned step rather than mid-flight. M10 (Rerun) fires when no natural touchpoint exists. -### SP-3 — DISSOLVED in v2 +### SP-3 — DISSOLVED in v2 `[operator-scaffolding | stable]` v1.10.4's SP-3 ("Convergence is part of prompt delivery") is @@ -3981,7 +3981,7 @@ incompatible with v2's orchestration/execution split. Convergence moves to orchestration; per-prompt convergence checklists drop from the atomic prompt template (§{section.atomic-prompt-template-v2-form}). -### SP-4 — Every Monitor produces visible output +### SP-4 — Every Monitor produces visible output `[operator-scaffolding | stable | ✅]` `[methodological | stable]` *(carryforward)* @@ -3989,7 +3989,7 @@ atomic prompt template (§{section.atomic-prompt-template-v2-form}). Silent monitors are useless monitors. Applies to all M1–M12 fires. *What's next* surfaces every fire at appropriate severity. -### SP-5 — No heuristic guessing on ambiguous input +### SP-5 — No heuristic guessing on ambiguous input `[operator-scaffolding | stable | ⚠️]` `[methodological | stable]` *(carryforward)* @@ -3997,7 +3997,7 @@ Silent monitors are useless monitors. Applies to all M1–M12 fires. Wherever orchestration parses operator input, ambiguity halts and asks. Pairs with M4 (Ambiguous Ask) firing. -### SP-6 — Rebuild at threshold +### SP-6 — Rebuild at threshold `[operator-scaffolding | stable | recommended | ✅]` `[methodological | stable]` *(carryforward)* @@ -4007,7 +4007,7 @@ above → create_file rebuild via deterministic transformation script. Applies to v2 framework builds, Library Update sessions, large Master rewrites. -### SP-7 — File delivery is mandatory +### SP-7 — File delivery is mandatory `[operator-scaffolding | stable | ✅]` `[methodological | stable]` *(carryforward)* @@ -4017,7 +4017,7 @@ execution session that produces Output delivers a file. Every Update session that produces a new Library file delivers a file. Reinforced structurally by the triple contract's file-based Output (§{section.prism-execution-output}). -### SP-8 (narrowed) — Canonical Authority +### SP-8 (narrowed) — Canonical Authority `[operator-scaffolding | stable | ✅]` `[operator-scaffolding | stable]` @@ -4029,7 +4029,7 @@ start of the next session so M2 (Version Drift) can reconcile. Filename discipline (the look-alike disambiguation pattern) extracted to SP-14. -### SP-9 — Silence is never consent +### SP-9 — Silence is never consent `[operator-scaffolding | stable | ⚠️]` `[methodological | stable]` *(carryforward)* @@ -4039,7 +4039,7 @@ ratification, ambiguity escalation, migration override at 🔴, Project recommendation accept/decline. Active operator action required; no defaults-on-timeout. -### SP-10 — Verify state before recommending +### SP-10 — Verify state before recommending `[operator-scaffolding | stable | ✅]` `[operator-scaffolding | stable]` *(carryforward as named principle)* @@ -4050,7 +4050,7 @@ recommending. Mechanics live in Vendor Selection (§{section.vendor-selection-at travels to point refresh (§{section.currency-maintenance-point-refresh}), Update sessions (§{section.currency-maintenance-update-session}), and any future recommendation surface. -### SP-12 — Bounded-Search Disclosure +### SP-12 — Bounded-Search Disclosure `[operator-scaffolding | stable | ✅]` `[operator-scaffolding | stable]` *(new in v2)* @@ -4060,7 +4060,7 @@ default posture is to disclose the bound. "I found no evidence" insufficient; "I found no evidence within [named scope]; confirm before I proceed" is required. Cross-ref: §{section.sp-12-bounded-search-disclosure}. -### SP-13 — Substrate Declaration +### SP-13 — Substrate Declaration `[operator-scaffolding | stable | ⚠️]` `[operator-scaffolding | stable]` *(new in v2)* @@ -4072,7 +4072,7 @@ operator. Operationalized inside execution sessions via the Self-check block (§{section.prism-execution-self-check}); orchestration-side via session-open verification. Cross-ref: §{section.sp-13-substrate-declaration}. -### SP-14 — Filename Discipline +### SP-14 — Filename Discipline `[operator-scaffolding | stable | ✅]` `[operator-scaffolding | stable]` *(new in v2; extracted from SP-8)* @@ -5024,7 +5024,7 @@ to the maintainer. - **Repository.** `https://github.com/Ronkupper/PRISM` - **Maintainer.** Ron Kuper ([@Ronkupper](https://github.com/Ronkupper)) -- **Framework version.** v2.1.1 (this file) +- **Framework version.** v2.2.0 (this file) - **Embedded Lens Library version.** v0.10 (Appendix G) - **Release date.** 2026-05-23 - **Licensing.** Documentation under CC BY 4.0; any code under MIT; @@ -5045,7 +5045,7 @@ without that capability can paste the URLs into a browser and download. | Framework version stamp | `https://raw.githubusercontent.com/Ronkupper/PRISM/main/VERSION` | — | | Lens version stamp | `https://raw.githubusercontent.com/Ronkupper/PRISM/main/lens/VERSION` | — | | Releases index | `https://github.com/Ronkupper/PRISM/releases` | — | -| Release at this version | — | `https://github.com/Ronkupper/PRISM/releases/tag/v2.1.1` | +| Release at this version | — | `https://github.com/Ronkupper/PRISM/releases/tag/v2.2.0` | The two `VERSION` endpoints exist as cheap currency checks: each is a single-line file containing the current version on the corresponding @@ -5071,7 +5071,7 @@ failed check is not an error. repository's `main` branch. The endpoints return one line each. 3. Compare. If the published version is greater than the attached version on either track, surface a soft flag: - `Framework v2.1.1 attached; v{published} available at {releases URL}.` + `Framework v2.2.0 attached; v{published} available at {releases URL}.` `Lens v0.10 attached; v{published} available at {releases URL}.` 4. The flag is informational. The operator decides whether to upgrade between sessions. PRISM does not silently swap attached files at @@ -5114,8 +5114,8 @@ To cite PRISM in published work, see `CITATION.cff` in the repository. A short attribution suitable for inline use: > Kuper, R. (2026). *PRISM: A Framework for LLM Research and Audits* -> (v2.1.1). https://github.com/Ronkupper/PRISM +> (v2.2.0). https://github.com/Ronkupper/PRISM --- -*End of PRISM v2.1.1 framework operating document.* +*End of PRISM v2.2.0 framework operating document.* diff --git a/README.md b/README.md index 50a62ea..69909a7 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ The framework ships as a single Markdown file (`PRISM.md`) that can be attached The fastest path: -1. Attach `PRISM.md` (or `PRISM_v2_1_1.md` for the version-pinned copy) to a fresh Claude chat. +1. Attach `PRISM.md` (or `PRISM_v2_2_0.md` for the version-pinned copy) to a fresh Claude chat. 2. Tell Claude the problem you want to audit or research. 3. Follow the Setup probes (P1–P7), iterate against the Lens Library until you clear three-layer readiness, then dispatch atomic prompts per the *What's next* artifact. @@ -25,7 +25,7 @@ The framework runs on any capable LLM — Claude is the primary reasoning and bu ## Current version -**v2.1.1** — current file: [`PRISM.md`](./PRISM.md). v2.1.1 is a PATCH release over v2.1.0 codifying triangulation integrity as SP-15 (single-vendor multi-agent fan-out is not falsifier-grade triangulation; self-triangulation carries no asymmetric weighting), tightening §1.1 framing prose to remove a read-prone summary line, rewriting the Prompt-digest field semantics to lead with purpose, and inverting the Envelope-template token to name the never-recomputed semantics explicitly. The version-pinned snapshot at this tag is [`PRISM_v2_1_1.md`](./PRISM_v2_1_1.md) (byte-identical to PRISM.md at the v2.1.1 tag); previous versions are available via git tags per [`RELEASING.md`](./RELEASING.md). +**v2.2.0** — current file: [`PRISM.md`](./PRISM.md). v2.2.0 is a MINOR release over v2.1.1 completing Pattern B Phase B2 — the retroactive application of strength × polarity normativity markers to all legacy Standing Principle, Monitor, and Probe headings (markup-only; purely additive metadata, no behavior change). The version-pinned snapshot at this tag is [`PRISM_v2_2_0.md`](./PRISM_v2_2_0.md) (byte-identical to PRISM.md at the v2.2.0 tag); previous versions are available via git tags per [`RELEASING.md`](./RELEASING.md). **Previous version:** v1.10.4 ([`PRISM_v1_10_4.md`](./PRISM_v1_10_4.md)) — terminal on the v1.x line. Projects under v1.10.4 remain on v1.10.4; v2 supersedes for new work. @@ -56,7 +56,7 @@ The **PRISM lint catalog** ([`lint_rules.md`](./lint_rules.md)) is the contribut ## Repository contents - `PRISM.md` — current framework version (singleton: framework body + Lens Library embedded as Appendix G + skill frontmatter; stable filename, always up to date). -- `PRISM_v{n}.md` — versioned snapshot of PRISM.md at the corresponding tag (e.g., `PRISM_v2_1_1.md`); for git-tag recovery per [`RELEASING.md`](./RELEASING.md). Not the primary install target. +- `PRISM_v{n}.md` — versioned snapshot of PRISM.md at the corresponding tag (e.g., `PRISM_v2_2_0.md`); for git-tag recovery per [`RELEASING.md`](./RELEASING.md). Not the primary install target. - `PRISM_v1_10_4.md` — terminal v1.x release retained at root for projects pinned to v1.10.4. - `SKILL.md` — standalone skill loader (frontmatter only); use as an alternative to the fused `PRISM.md` when a decoupled skill / body layout is preferred. - `PRISM_backlog.md` — active/deferred/declined roadmap items. Working document, not canonical. diff --git a/RELEASING.md b/RELEASING.md index 5e2bb70..c7fe66f 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -36,7 +36,7 @@ The lint catalog (`lint_rules.md`, `scripts/lint/`, `.github/workflows/lint.yml` When `PRISM.md` advances to a new framework version (e.g. `v2.1.0`): -1. **Edit `PRISM.md`** with the new framework content. Update the version string in the document header (`# PRISM v{X.Y} — Framework operating document`), the frontmatter `version`, `released`, `supersedes` fields, the inline `Currently v{X.Y.Z}` substring inside the frontmatter `description`, the EOF marker, and any in-document version references (§18.1 project identity, §18.2 pinned-URL column, §18.3 currency example, §18.5 citation). +1. **Edit `PRISM.md`** with the new framework content. Update the version string in the document header (`# PRISM v{X.Y} — Framework operating document`), the frontmatter `version`, `released`, `supersedes` fields, the inline `Currently v{X.Y.Z}` substring inside the frontmatter `description`, the EOF marker, and any in-document version references (§18.1 project identity, §18.2 pinned-URL column, §18.3 currency example, §18.5 citation). When a release **adds or changes a Standing Principle, Monitor, Gate, or Probe**, give it the normativity marker at creation per the title-block tag convention (`[durability | review-trigger | strength? | polarity?]`) — Pattern B applies to new elements going forward, not just the legacy sweep completed in Phase B2 (v2.2.0), so the sweep never needs repeating. 2. **Refresh the version-pinned snapshot.** Within the same major line, delete the prior snapshot; at a major boundary, retain the prior major's terminal snapshot (see *Retention*). ```bash rm PRISM_v{old}.md # within same major @@ -142,7 +142,7 @@ Before pushing a framework tag: - [ ] `CITATION.cff` version + date + abstract current - [ ] `README.md` *Current version* section current - [ ] `VERSION` file matches frontmatter `version` and title-block heading -- [ ] **Lint gate clean** — the CI workflow at `.github/workflows/lint.yml` runs the `scripts/lint/` catalog against `PRISM.md` and reports zero error-severity findings. At v2.1.0, this is `PRISM-LINT-01` (named-refs-resolve). Active rules grow as the catalog evolves: when Pattern A's schema lands, `PRISM-LINT-03`, `-04`, `-05`, and `-07` become active; when Pattern B Phase B2 lands, `PRISM-LINT-06` activates. Info-level findings from `PRISM-LINT-02` (orphan anchors) are acceptable and do not block release. +- [ ] **Lint gate clean** — the CI workflow at `.github/workflows/lint.yml` runs the `scripts/lint/` catalog against `PRISM.md` and reports zero error-severity findings. At v2.1.0, this is `PRISM-LINT-01` (named-refs-resolve). Active rules grow as the catalog evolves: when Pattern A's schema lands, `PRISM-LINT-03`, `-04`, `-05`, and `-07` become active. `PRISM-LINT-06` (element-marking-completeness) remains catalog-reserved at info-severity after Phase B2 (v2.2.0) — promotion to warning is a separate decision after operators live with the marked file. Info-level findings from `PRISM-LINT-02` (orphan anchors) are acceptable and do not block release. - [ ] `design/` updated if MAJOR - [ ] Commit signed (`gpg.format=ssh`, `commit.gpgsign=true`) - [ ] Discussions announcement drafted (post after tag push and Release creation) diff --git a/SKILL.md b/SKILL.md index 27f498e..4755420 100644 --- a/SKILL.md +++ b/SKILL.md @@ -1,16 +1,16 @@ --- name: prism-v2 -description: PRISM v2.1.1 — structured multi-session, multi-vendor LLM-orchestrated audit and research framework. Trigger this skill whenever the user invokes PRISM mechanics by name or by recognizable construct: PRISM audit, PRISM v2, begin a PRISM audit, Master file, any filename matching *_master_p*.md, Prompt Strategy, Lens Library, Vendor Selection, Vendor Triangulation, Setup probes or any of P1-P7 by number, Monitor M* or any of M1-M12 by number, Standing Principle SP-*, Execution Envelope, Execution Self-check, Execution Output, Dispatch register, Dispatch shape (equivalence/split/limitation-named), the What is next artifact, context band or 🟢🟡🟠🔴, migration handoff, P0/P1 boundary, three-layer readiness, Claude Project recommendation, Update session, point refresh, Setup artifacts (Decision brief / Stakeholder register / Claim inventory / Jurisdiction map). Also trigger when the user attaches a Master file or a Lens Library file. Do NOT trigger for unrelated audit work, generic prompt engineering, or v1.10.4-specific terminology like Starter, GATE-0/1/2, Scope Flags, Runtime Profile, Assumption Register — those are v1.x and v2.0 supersedes them. +description: PRISM v2.2.0 — structured multi-session, multi-vendor LLM-orchestrated audit and research framework. Trigger this skill whenever the user invokes PRISM mechanics by name or by recognizable construct: PRISM audit, PRISM v2, begin a PRISM audit, Master file, any filename matching *_master_p*.md, Prompt Strategy, Lens Library, Vendor Selection, Vendor Triangulation, Setup probes or any of P1-P7 by number, Monitor M* or any of M1-M12 by number, Standing Principle SP-*, Execution Envelope, Execution Self-check, Execution Output, Dispatch register, Dispatch shape (equivalence/split/limitation-named), the What is next artifact, context band or 🟢🟡🟠🔴, migration handoff, P0/P1 boundary, three-layer readiness, Claude Project recommendation, Update session, point refresh, Setup artifacts (Decision brief / Stakeholder register / Claim inventory / Jurisdiction map). Also trigger when the user attaches a Master file or a Lens Library file. Do NOT trigger for unrelated audit work, generic prompt engineering, or v1.10.4-specific terminology like Starter, GATE-0/1/2, Scope Flags, Runtime Profile, Assumption Register — those are v1.x and v2.0 supersedes them. --- -# PRISM v2.1.1 framework loader +# PRISM v2.2.0 framework loader -This Skill loads PRISM v2.1.1 — the canonical framework operating document for +This Skill loads PRISM v2.2.0 — the canonical framework operating document for structured multi-session, multi-vendor LLM-orchestrated audit and research. ## When triggered -1. Read `PRISM_v2_1_1.md` (version-pinned) or `PRISM.md` (always-current) from +1. Read `PRISM_v2_2_0.md` (version-pinned) or `PRISM.md` (always-current) from this Skill's folder, the operator's project, or the attached copy in full before responding to the operator's request. 2. Run SP-13 substrate self-check (§10.1.3): declare your model identity and @@ -43,7 +43,7 @@ structured multi-session, multi-vendor LLM-orchestrated audit and research. ## Files this Skill expects in the Project or attached -- `PRISM.md` (always-current) or `PRISM_v2_1_1.md` (version-pinned) +- `PRISM.md` (always-current) or `PRISM_v2_2_0.md` (version-pinned) - `PRISM_lens_library.md` v0.10 (canonical catalog; `prism-lens-v0.10` tag) - `[project]_prism2.0_master_*.md` (the Master) - `[project]_brief.md` (subject brief, at Setup) @@ -52,7 +52,7 @@ structured multi-session, multi-vendor LLM-orchestrated audit and research. `PRISM.md` at the repo root carries its own skill frontmatter (`name: prism`, v1.x fused-file pattern). This `SKILL.md` is the v2-native loader pattern -(`name: prism-v2`) — separate loader, body lives in `PRISM_v2_1_1.md`. +(`name: prism-v2`) — separate loader, body lives in `PRISM_v2_2_0.md`. Either pattern works; pick whichever fits your environment. ## What this Skill does NOT do diff --git a/VERSION b/VERSION index 3e3c2f1..ccbccc3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1.1 +2.2.0 diff --git a/lint_rules.md b/lint_rules.md index 1e06a32..a4936a9 100644 --- a/lint_rules.md +++ b/lint_rules.md @@ -87,10 +87,10 @@ rather than at lint time. Every Standing Principle, Monitor, Gate, and Probe heading in `PRISM.md` carries a parseable decision-tag block (`[durability | review-trigger]` -plus optional strength and polarity tokens). Info-severity initially -because Pattern B's Phase B1 ships frontmatter and new-element shape -only; legacy elements remain unmarked until Phase B2 completes the -sweep. Severity may promote to warning after Phase B2 ships. +plus optional strength and polarity tokens). With Pattern B Phase B2 +shipped (v2.2.0), the legacy sweep is complete — all in-scope elements +now carry markers. Severity remains `info`; promotion to `warning` is a +separate decision after operators have lived with the marked file. **Status at catalog v1:** reserved slot. Activates when Pattern B Phase B1 ships.