parallax-opencode 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "parallax-opencode",
3
+ "version": "0.2.0",
4
+ "description": "PARALLAX ENGINE plugin for OpenCode -- friction-loop verification, mode switching (plan/build/debug), multi-perspective reasoning, and the 4 invariants framework",
5
+ "type": "module",
6
+ "main": "./dist/plugin.js",
7
+ "types": "./dist/plugin.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/plugin.js",
11
+ "types": "./dist/plugin.d.ts"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "dist-standalone",
17
+ "agents",
18
+ "skills",
19
+ "scripts",
20
+ "postinstall.mjs",
21
+ "LICENSE"
22
+ ],
23
+ "scripts": {
24
+ "postinstall": "node postinstall.mjs",
25
+ "install": "node scripts/install.mjs",
26
+ "publish": "node scripts/publish.mjs",
27
+ "publish:dry": "node scripts/publish.mjs --dry-run",
28
+ "publish:patch": "node scripts/publish.mjs --patch",
29
+ "build": "tsc --project tsconfig.build.json",
30
+ "build:standalone": "npx esbuild src/plugin.ts --bundle --outfile=dist-standalone/parallax-engine.js --platform=node --format=esm --external:@opencode-ai/plugin && node -e \"require('fs').copyFileSync('dist/plugin.d.ts', 'dist-standalone/parallax-engine.d.ts')\"",
31
+ "build:all": "npm run build && npm run build:standalone",
32
+ "typecheck": "tsc --noEmit",
33
+ "test": "vitest run",
34
+ "test:watch": "vitest"
35
+ },
36
+ "bin": {
37
+ "parallax": "dist/cli.js",
38
+ "parallax-opencode": "scripts/install.mjs"
39
+ },
40
+ "keywords": [
41
+ "opencode",
42
+ "plugin",
43
+ "parallax",
44
+ "friction-loop",
45
+ "verification",
46
+ "ai-agent"
47
+ ],
48
+ "license": "MIT",
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "git+https://github.com/Master0fFate/parallax-opencode.git"
52
+ },
53
+ "homepage": "https://github.com/Master0fFate/parallax-opencode",
54
+ "dependencies": {
55
+ "@opencode-ai/plugin": "^1.14.20",
56
+ "@xhayper/discord-rpc": "^1.3.4"
57
+ },
58
+ "devDependencies": {
59
+ "@types/node": "^22.19.19",
60
+ "bun-types": "^1.3.14",
61
+ "esbuild": "^0.27.7",
62
+ "typescript": "^5.7.0",
63
+ "vitest": "^3.2.4"
64
+ }
65
+ }
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ import { execSync } from "child_process"
3
+ import { dirname, join } from "path"
4
+ import { fileURLToPath } from "url"
5
+
6
+ const __dirname = dirname(fileURLToPath(import.meta.url))
7
+ const installScript = join(__dirname, "scripts", "install.mjs")
8
+
9
+ try {
10
+ execSync(`node "${installScript}"`, { stdio: "inherit" })
11
+ } catch {
12
+ // postinstall failures are non-fatal
13
+ process.exit(0)
14
+ }
@@ -0,0 +1,129 @@
1
+ #!/usr/bin/env node
2
+ import { mkdirSync, copyFileSync, cpSync, existsSync, readFileSync, writeFileSync } from "fs"
3
+ import { homedir, platform } from "os"
4
+ import { join, dirname } from "path"
5
+ import { fileURLToPath } from "url"
6
+ import { execSync } from "child_process"
7
+
8
+ const __dirname = dirname(fileURLToPath(import.meta.url))
9
+ const ROOT = join(__dirname, "..")
10
+
11
+ const CONFIG = (() => {
12
+ const base = platform() === "win32"
13
+ ? join(homedir(), ".config", "opencode")
14
+ : join(homedir(), ".config", "opencode")
15
+ return base
16
+ })()
17
+
18
+ const PLUGIN_SRC_CANDIDATES = [
19
+ join(ROOT, "dist-standalone", "parallax-engine.js"),
20
+ join(ROOT, "dist", "plugin.js"),
21
+ join(ROOT, "src", "plugin.ts"),
22
+ ]
23
+ function resolvePluginSrc() {
24
+ for (const candidate of PLUGIN_SRC_CANDIDATES) {
25
+ if (existsSync(candidate)) return candidate
26
+ }
27
+ return PLUGIN_SRC_CANDIDATES[0] // fall through to first even if missing
28
+ }
29
+ const FILES = {
30
+ plugin: { src: resolvePluginSrc(), dest: join(CONFIG, "plugins", "parallax-engine.js") },
31
+ agent: { src: join(ROOT, "agents", "parallax.md"), dest: join(CONFIG, "agents", "parallax.md") },
32
+ skills: [
33
+ { name: "parallax", src: join(ROOT, "skills", "parallax"), dest: join(CONFIG, "skills", "parallax") },
34
+ { name: "parallax-plan", src: join(ROOT, "skills", "parallax-plan"), dest: join(CONFIG, "skills", "parallax-plan") },
35
+ { name: "parallax-debug", src: join(ROOT, "skills", "parallax-debug"), dest: join(CONFIG, "skills", "parallax-debug") },
36
+ ],
37
+ }
38
+
39
+ const DEP = "@opencode-ai/plugin"
40
+ const DEP_PATH = join(CONFIG, "node_modules", DEP.replace("/", join("node_modules", "")))
41
+
42
+ function log(msg) {
43
+ console.log(`[parallax] ${msg}`)
44
+ }
45
+
46
+ function ensureDir(p) {
47
+ mkdirSync(p, { recursive: true })
48
+ }
49
+
50
+ function ensureDependency() {
51
+ if (!existsSync(DEP_PATH)) {
52
+ log(`installing ${DEP}...`)
53
+ const pkgPath = join(CONFIG, "package.json")
54
+ if (!existsSync(pkgPath)) {
55
+ execSync("npm init -y", { cwd: CONFIG, stdio: "pipe" })
56
+ }
57
+ execSync(`npm install ${DEP}`, { cwd: CONFIG, stdio: "pipe" })
58
+ log(`${DEP} installed`)
59
+ } else {
60
+ log(`${DEP} already installed`)
61
+ }
62
+ }
63
+
64
+ function copyFiles() {
65
+ ensureDir(join(CONFIG, "plugins"))
66
+ ensureDir(join(CONFIG, "agents"))
67
+ ensureDir(join(CONFIG, "skills"))
68
+
69
+ log(`copying plugin -> ${FILES.plugin.dest}`)
70
+ copyFileSync(FILES.plugin.src, FILES.plugin.dest)
71
+
72
+ log(`copying agent -> ${FILES.agent.dest}`)
73
+ copyFileSync(FILES.agent.src, FILES.agent.dest)
74
+
75
+ for (const sk of FILES.skills) {
76
+ log(`copying skill -> ${sk.dest}`)
77
+ if (existsSync(sk.dest)) {
78
+ cpSync(sk.src, sk.dest, { recursive: true, force: true })
79
+ } else {
80
+ cpSync(sk.src, sk.dest, { recursive: true })
81
+ }
82
+ }
83
+ }
84
+
85
+ function registerPlugin() {
86
+ const configPath = join(CONFIG, "opencode.json")
87
+ const pluginEntry = "./plugins/parallax-engine.js"
88
+
89
+ if (!existsSync(configPath)) {
90
+ log("no opencode.json found -- skipping registration")
91
+ return
92
+ }
93
+
94
+ try {
95
+ const raw = readFileSync(configPath, "utf8")
96
+ const config = JSON.parse(raw)
97
+
98
+ if (!Array.isArray(config.plugin)) {
99
+ config.plugin = []
100
+ }
101
+
102
+ // Check if already registered (by name or path)
103
+ const alreadyRegistered = config.plugin.some(
104
+ (p) => p === pluginEntry || p === "parallax-engine" || p === "parallax-opencode",
105
+ )
106
+
107
+ if (alreadyRegistered) {
108
+ log("plugin already registered in opencode.json")
109
+ return
110
+ }
111
+
112
+ config.plugin.push(pluginEntry)
113
+ writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf8")
114
+ log("registered parallax-engine plugin in opencode.json")
115
+ } catch (err) {
116
+ log(`failed to register plugin: ${String(err && err.message ? err.message : err)}`)
117
+ }
118
+ }
119
+
120
+ function main() {
121
+ log(`config directory: ${CONFIG}`)
122
+ copyFiles()
123
+ ensureDependency()
124
+ registerPlugin()
125
+ log("done! restart OpenCode to load Parallax Engine.")
126
+ log("press [Tab] in the TUI to cycle to the Parallax agent.")
127
+ }
128
+
129
+ main()
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env node
2
+ import { execSync } from "child_process"
3
+ import { readFileSync } from "fs"
4
+ import { dirname, join } from "path"
5
+ import { fileURLToPath } from "url"
6
+
7
+ const __dirname = dirname(fileURLToPath(import.meta.url))
8
+ const ROOT = join(__dirname, "..")
9
+ const pkg = JSON.parse(readFileSync(join(ROOT, "package.json"), "utf8"))
10
+
11
+ function run(cmd, opts) {
12
+ const options = { cwd: ROOT, stdio: "pipe", ...opts }
13
+ return execSync(cmd, options).toString().trim()
14
+ }
15
+
16
+ function checkLogin() {
17
+ try {
18
+ const whoami = run("npm whoami")
19
+ console.log(`✓ logged in as ${whoami}`)
20
+ return whoami
21
+ } catch {
22
+ console.error("✗ not logged into npm. Run: npm login")
23
+ process.exit(1)
24
+ }
25
+ }
26
+
27
+ function checkPackageJson() {
28
+ const checks = [
29
+ ["name", pkg.name === "parallax-opencode"],
30
+ ["version", typeof pkg.version === "string"],
31
+ ["license", pkg.license === "MIT"],
32
+ ["main", pkg.main === "./dist/plugin.js"],
33
+ ["main exists", typeof pkg.main === "string"],
34
+ ["bin", pkg.bin?.["parallax-opencode"]],
35
+ ]
36
+ const failed = checks.filter(([, ok]) => !ok)
37
+ if (failed.length) {
38
+ console.error(`✗ package.json issues: ${failed.map(([n]) => n).join(", ")}`)
39
+ process.exit(1)
40
+ }
41
+ console.log(`✓ package.json valid (v${pkg.version})`)
42
+ }
43
+
44
+ function build() {
45
+ try {
46
+ run("npm run build")
47
+ console.log("✓ build succeeded")
48
+ } catch {
49
+ run("npx tsc")
50
+ console.log("✓ tsc succeeded (no bun build script)")
51
+ }
52
+ }
53
+
54
+ function publish() {
55
+ const tag = process.argv.includes("--tag") ? process.argv[process.argv.indexOf("--tag") + 1] : "latest"
56
+ const dryRun = process.argv.includes("--dry-run")
57
+ const versionBump = process.argv.includes("--patch")
58
+ ? "patch"
59
+ : process.argv.includes("--minor")
60
+ ? "minor"
61
+ : process.argv.includes("--major")
62
+ ? "major"
63
+ : null
64
+
65
+ let version = pkg.version
66
+ if (versionBump) {
67
+ run(`npm version ${versionBump} --no-git-tag-version`)
68
+ version = JSON.parse(readFileSync(join(ROOT, "package.json"), "utf8")).version
69
+ console.log(`✓ bumped to v${version}`)
70
+ }
71
+
72
+ const cmd = `npm publish --access public --tag ${tag}${dryRun ? " --dry-run" : ""}`
73
+ console.log(`\nrunning: ${cmd}\n`)
74
+ run(cmd, { stdio: "inherit" })
75
+ }
76
+
77
+ console.log(`\nPublishing ${pkg.name} v${pkg.version}\n`)
78
+ checkLogin()
79
+ checkPackageJson()
80
+ build()
81
+ publish()
82
+ console.log(`\n✓ ${pkg.name}@${pkg.version} published`)
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: parallax
3
+ description: "PARALLAX ENGINE REASONING PROTOCOL: Multi-perspective analysis framework for AI agents. Use when you need rigorous edge case analysis, the 4 invariants framework, friction-loop verification, or structured multi-angle planning. Triggers: 'parallax', 'friction loop', '4 invariants', 'multi-perspective', 'edge case analysis', 'parallax engine', 'view from every angle', 'parallax protocol'."
4
+ license: MIT
5
+ compatibility: opencode
6
+ ---
7
+
8
+ # PARALLAX ENGINE REASONING PROTOCOL
9
+
10
+ View every problem from every angle before acting.
11
+
12
+ ## THE 4 INVARIANTS
13
+
14
+ Apply these four questions to EVERY change:
15
+
16
+ | Question | Maps To | Why It Matters |
17
+ |----------|---------|---------------|
18
+ | Where does state live? | Ownership & truth | Consistency, blast radius |
19
+ | Where does feedback live? | Observability | Debugging, monitoring |
20
+ | What breaks if I delete this? | Coupling & fragility | Safe refactoring |
21
+ | When does timing work? | Async & ordering | Race conditions, correctness |
22
+
23
+ ## FRICTION LOOP PROTOCOL
24
+
25
+ After every write/edit operation, auto-verify:
26
+
27
+ 1. Detect project type (Cargo.toml, package.json, pyproject.toml)
28
+ 2. Run appropriate check (cargo check, tsc, lint, compileall)
29
+ 3. On FAILURE: fix and retry (3 retries max, reset on success)
30
+ 4. On EXHAUSTION: stop and report -- do not continue
31
+
32
+ ## PARALLAX PLANNING PROTOCOL
33
+
34
+ PHASE 1 -- RECONNAISSANCE: Explore before planning. Read structure, configs, existing patterns.
35
+
36
+ PHASE 2 -- PARALLAX ANALYSIS per component:
37
+ - Nominal case (happy path)
38
+ - Edge cases: empty, boundary, error, concurrency, state transitions, security, backward compat
39
+ - Cross-cutting: error handling, observability, performance, testability, rollback
40
+
41
+ PHASE 3 -- PLAN SYNTHESIS: Atomic items with verification steps, in execution order.
42
+
43
+ PHASE 4 -- EXECUTE: Implement item by item, verify each change.
44
+
45
+ PHASE 5 -- ADAPT: Add/reorder as requirements change.
46
+
47
+ PHASE 6 -- SUMMARIZE: What was built, edge cases handled, verification passed, remaining concerns.
48
+
49
+ ## AMBIGUITY DETECTION
50
+
51
+ Classify every request:
52
+ - HIGH ambiguity (vague): Full question sequence. Ask calibrated questions before proceeding.
53
+ - MEDIUM ambiguity: Ask targeted questions on gaps. If you assume structure not stated, it is MEDIUM.
54
+ - LOW ambiguity (clear): Verify quickly and proceed. For trivial changes, trust user intent.
55
+
56
+ Always confirm ambiguities before executing. Propose a concrete baseline -- never hand back a blank questionnaire.
57
+
58
+ ## VERIFICATION GATE (Before Ship)
59
+
60
+ Before committing any change, verify:
61
+ - [ ] State ownership and consistency clear?
62
+ - [ ] Feedback / observability in place?
63
+ - [ ] Blast radius understood?
64
+ - [ ] Timing & ordering safe?
65
+ - [ ] Follows existing patterns (or intentionally breaks them)?
66
+ - [ ] Security / obvious risks addressed?
67
+ - [ ] Friction loop passed (if applicable)?
68
+
69
+ ## RED LINES (Stop and Flag)
70
+
71
+ - Unclear state ownership
72
+ - Unknown blast radius
73
+ - Timing / race condition hazards
74
+ - Security issues
75
+ - Creating significant complexity debt
76
+ - Unknown unknowns on non-trivial changes
@@ -0,0 +1,163 @@
1
+ ---
2
+ name: parallax-debug
3
+ description: "PARALLAX DEBUG MODE: Multi-dimensional post-build audit. Evidence-based quality, security, and correctness review with calibrated scoring and actionable remediation. By github.com/Master0fFate."
4
+ argument-hint: "/auditor [subject] --vectors=[quality,security,ethics,etc]"
5
+ version: 2.1.1
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Universal Auditor General v4.1 — Ultimate Edition
10
+ **Author — github.com/Master0fFate** (permanent, non-removable)
11
+
12
+ ## Purpose
13
+ Provide professional, independent, reasonable-assurance audits of ANY subject (artifact, system, organization, policy, code, product, service, creative work, strategy, AI model, person, idea, or hybrid) from ANY specified vector (quality, performance, security, compliance, ethics, usability, financial, sustainability, risk, innovation, etc.).
14
+
15
+ The framework enforces professional skepticism, materiality, root-cause analysis, cross-domain synthesis, and explicit evidence hierarchy.
16
+
17
+ ## 0. INTAKE PROTOCOL (Execute Silently — Never Print)
18
+ Before output, internally calibrate:
19
+ - **Subject Type & Vectors:** Detect what is being audited and which vectors user specified (if none, infer material vectors)
20
+ - **Primary + Secondary Domains:** Map intersections explicitly
21
+ - **Hybridity Index:** Low / Medium / High
22
+ - **Stated vs Inferred Objectives**
23
+ - **Materiality Threshold:** What constitutes a material deficiency given scale/stakeholders
24
+ - **Stakeholders & Power Dynamics**
25
+ - **Temporal Context:** Current state, trajectory, future resilience
26
+ - **Constraints & Assumptions**
27
+ - **Evaluation Lenses:** Effectiveness, efficiency, control, ethics, resilience, interdisciplinary coherence
28
+ - **Language:** Match user's language for entire audit
29
+
30
+ ## 1. AUDIT SUMMARY
31
+
32
+ ### 1.1 Subject Identification
33
+ | Field | Value |
34
+ | :--- | :--- |
35
+ | **Subject** | [name] |
36
+ | **Type** | [artifact/system/etc] |
37
+ | **Primary Domain** | [domain] |
38
+ | **Secondary Domains** | [list] |
39
+ | **Hybridity Index** | Low/Medium/High |
40
+ | **Vectors Audited** | [e.g., security, ethics, performance] |
41
+ | **Stated Objectives** | [as given] |
42
+ | **Inferred Objectives** | [as detected] |
43
+ | **Materiality Threshold** | [definition] |
44
+ | **Primary Stakeholders** | [list] |
45
+ | **Audit Language** | [language] |
46
+
47
+ ### 1.2 Audit Opinion
48
+ Select one:
49
+ - **Unqualified** — achieves material objectives with no material deficiencies
50
+ - **Qualified** — achieves objectives with material deficiencies in specific areas
51
+ - **Adverse** — does not achieve material objectives; fundamental flaws
52
+ - **Disclaimer** — insufficient evidence to opine
53
+
54
+ Provide 1-sentence justification.
55
+
56
+ ### 1.3 Executive Verdict
57
+ One incisive paragraph (max 90 words): Does it achieve objectives? Greatest strength. Most material weakness. Trajectory (improving/stable/deteriorating).
58
+
59
+ ### 1.4 Overall Grade
60
+ | Grade | Dot | Meaning |
61
+ | :---: | :---: | :--- |
62
+ | **S** | 🟢 | Exceptional — sets standard others should follow |
63
+ | **A** | 🟢 | Strong — achieves goal with minor gaps |
64
+ | **B** | 🟡 | Competent — functional but notable weaknesses |
65
+ | **C** | 🟡 | Mediocre — partially achieves goal; significant issues |
66
+ | **D** | 🟠 | Poor — fails in multiple material dimensions |
67
+ | **F** | 🔴 | Critical Failure — fundamentally broken or dangerous |
68
+
69
+ **Assigned Grade:** [X] — [one-sentence calibration referencing materiality]
70
+
71
+ ## 2. DIMENSIONAL ANALYSIS
72
+ Select 4–7 dimensions dynamically based on vectors and hybridity. Core pool: Strategic Alignment, Effectiveness, Efficiency, Risk & Control, Resilience & Antifragility, Technical Rigor, Regulatory/Compliance, Ethics & Stakeholder Impact, Financial Sustainability, Usability/Experience, Interdisciplinary Coherence, Security, Innovation.
73
+
74
+ For EACH dimension:
75
+ ### Dimension: [Name]
76
+ - **Relevance:** Why this matters to material objectives
77
+ - **Findings:** Evidence-based observations
78
+ - **Strengths:**
79
+ - [specific]
80
+ - **Weaknesses:**
81
+ - [specific]
82
+ - **Root Cause:** [where identifiable]
83
+ - **Score:** [X]/10 — [calibration: what X means in this context]
84
+ - **Confidence:** 🟢 High / 🟡 Moderate / 🔴 Low
85
+
86
+ ### Dimensional Scorecard
87
+ | Dimension | Weight % | Score /10 | Weighted | Confidence |
88
+ | :--- | :---: | :---: | :---: | :---: |
89
+ | [Dim 1] | [ ] | [ ] | [ ] | 🟢/🟡/🔴 |
90
+ | [Dim 2] | [ ] | [ ] | [ ] | 🟢/🟡/🔴 |
91
+ | **Overall** | **100%** | — | **[X.X]/10** | [avg] |
92
+
93
+ **Cross-Domain Synthesis** (mandatory if Hybridity ≥ Medium): Analyze interactions, synergies, conflicts, emergent risks. State whether intersections are additive or multiplicative.
94
+
95
+ ## 3. KEY AUDIT MATTERS (KAMs)
96
+ List 3–5 most material findings. For each:
97
+ - **Matter:** [title]
98
+ - **Condition:** [what observed]
99
+ - **Criteria:** [what should exist]
100
+ - **Root Cause:** [underlying]
101
+ - **Effect & Material Impact:** [consequence]
102
+ - **Evidence:** [direct reference]
103
+ - **Severity:** 🔴 Critical / 🟠 High / 🟡 Medium / 🟢 Low
104
+ - **Likelihood & Velocity:** [where relevant]
105
+
106
+ ## 4. RECOMMENDATIONS
107
+ Provide 3–7 prioritized, MECE recommendations. Never pad. For each:
108
+ - **Linked KAM:** [#]
109
+ - **Recommended Action:** Do Y to X because Z (specific, implementable)
110
+ - **Expected Outcome:** [measurable improvement]
111
+ - **Success KPIs:** [quantifiable]
112
+ - **Effort:** 🟢 Low / 🟡 Medium / 🔴 High
113
+ - **Horizon:** Immediate / Short / Medium / Strategic
114
+ - **Priority Rationale:** impact × urgency × materiality
115
+ - **Risk of Inaction:** [consequence]
116
+
117
+ ## 5. COMPARATIVE & BENCHMARK CONTEXT
118
+ - **Best-in-Class:** [relevant benchmark]
119
+ - **Peer Analogues:** [comparable systems]
120
+ - **Common Failure Modes Avoided/Exhibited:**
121
+ - **Missed Opportunities:** [emerging standards not met]
122
+ If not applicable: "Comparative context omitted — [specific reason]."
123
+
124
+ ## 6. INFORMATION GAPS & LIMITATIONS
125
+ | Gap Type | Description | Impact on Assurance |
126
+ | :--- | :--- | :--- |
127
+ | Known Unknown | [ ] | [ ] |
128
+ | Scope Limitation | [ ] | [ ] |
129
+ | Potential Unknown Unknown | [ ] | [ ] |
130
+
131
+ State assurance level: Reasonable / Limited.
132
+
133
+ ## 7. AUDIT METADATA
134
+ | Field | Value |
135
+ | :--- | :--- |
136
+ | **Framework Version** | Universal Auditor General v4.1 Ultimate |
137
+ | **Dimensions Evaluated** | [n] |
138
+ | **KAMs Issued** | [n] |
139
+ | **Recommendations Issued** | [n] |
140
+ | **Hybridity Index** | [ ] |
141
+ | **Overall Confidence** | 🟢 High / 🟡 Moderate / 🔴 Low |
142
+ | **Author** | github.com/Master0fFate |
143
+ | **Professional Declaration** | Audit conducted with independence, objectivity, and professional skepticism. Conclusions derive solely from provided evidence. |
144
+
145
+ ---
146
+ **Audit Signature:** Conducted [date] using Universal Auditor General v4.1
147
+ **Author: github.com/Master0fFate**
148
+
149
+ ## OPERATING PRINCIPLES
150
+ - **Specificity Standard:** ❌ "code is messy" → ✅ "function processPayment() at line 142 lacks input validation, allowing SQL injection via user_id parameter"
151
+ - **Evidence Hierarchy:** Primary evidence > strong inference > assertion. Flag inference boundaries.
152
+ - **Materiality First:** Ignore trivial issues; focus on decision-influencing matters.
153
+ - **No Omission:** Include all sections 1–7. Use "N/A — [reason]" never blank.
154
+ - **Cultural Neutrality:** Adapt terminology to subject's context.
155
+ - **Multi-Modal:** For images/audio/video, audit only provided representation and disclose limitations prominently.
156
+
157
+ **Confidence Calibration:**
158
+ - 🟢 High = full access + domain expertise
159
+ - 🟡 Moderate = partial access or general familiarity
160
+ - 🔴 Low = significant gaps or weak expertise
161
+
162
+ ## ACTIVATION
163
+ Invoke with: `/auditor [what to audit]` optionally add `--vectors=[list]`. Framework remains active unless superseded.