Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
195 commits
Select commit Hold shift + click to select a range
8039c11
docs(spec): banker Q&A v6.14 — canonical implementation spec
Number531 May 21, 2026
e33a7a8
docs(spec): Cardinal Framing Layer v2.0 as content blueprint for bank…
Number531 May 21, 2026
b28ed75
feat(v6.14/G1.1): declare BANKER_QA_OUTPUT feature flag
Number531 May 21, 2026
3615168
feat(v6.14/G1.2): create three sibling subagent definition files
Number531 May 21, 2026
4ad080c
feat(v6.14/G1.3): add three banker-workflow capability constants
Number531 May 21, 2026
353e4db
feat(v6.14/G1.4): register banker agents in registry + classification
Number531 May 21, 2026
7d9178a
feat(v6.14/G1.5): wire banker artifacts into hookDBBridge persistence
Number531 May 21, 2026
3ddd922
feat(v6.14/G1.6): intake dispatcher + M1 system-prompt flag injection
Number531 May 21, 2026
f3373ad
feat(v6.14/G1.7): add G0.5/G2.5/G3.5/G6 orchestrator phases (banker m…
Number531 May 21, 2026
274734e
feat(v6.14/G1.8): M2 artifact-existence prompt branches (section-writ…
Number531 May 21, 2026
b4f4dac
feat(v6.14/G1.9): KG Phase 1b question nodes + edges (M3 gating)
Number531 May 21, 2026
47ae533
feat(v6.14/G1.10): verification layer — Dim 13 + Q-coverage gate + ci…
Number531 May 21, 2026
cb884b7
feat(v6.14/G1.11): banker API endpoints + Reports modal categoryLabels
Number531 May 21, 2026
c56beb1
feat(v6.14): Gate G1 complete — Phase 1 build (Data Foundation)
Number531 May 21, 2026
9717010
test(v6.14/G2.1): G2 zero-impact-when-off regression orchestrator script
Number531 May 21, 2026
9218e4f
docs(v6.14/G2.2): G2 zero-impact verification runbook + results
Number531 May 21, 2026
08ed990
test(v6.14): Gate G2 static layer complete — proceed to live regressi…
Number531 May 21, 2026
ea13204
test(v6.14/G2.3): close 5 G2 spec-coverage gaps surfaced in final audit
Number531 May 21, 2026
9e3bbad
test(v6.14/G3.1): synthetic banker prompt #1 — PE buyout (15 questions)
Number531 May 21, 2026
8aa7a0d
test(v6.14/G3.2): synthetic banker prompt #2 — strategic merger (18 q…
Number531 May 21, 2026
e45d182
test(v6.14/G3.3): synthetic banker prompt #3 — distressed acquisition…
Number531 May 21, 2026
70a6331
test(v6.14/G3.4): g3-verification.sh — 21 per-run checks + 3 smoke tests
Number531 May 21, 2026
0e2316e
docs(v6.14/G3.5): G3 staging smoke operator runbook
Number531 May 21, 2026
8de8125
docs(v6.14/G3.6): G3 spec-to-artifact mapping table — 31/31 coverage
Number531 May 21, 2026
1653568
test(v6.14): Gate G3 worktree artifacts complete — ready for staging
Number531 May 21, 2026
d9e24eb
docs(v6.14/G5.1): pre-pilot operator runbook (4 spec items mapped)
Number531 May 22, 2026
2849ea7
docs(v6.14/G5.2): pilot client selection rubric — 6 binary criteria
Number531 May 22, 2026
f5365c7
docs(v6.14/G5.3): banker-facing pilot briefing handoff document
Number531 May 22, 2026
c9cee5e
docs(v6.14/G5.4): structured banker review session interview template
Number531 May 22, 2026
7fc7cab
docs(v6.14/G5.5): machine-readable feedback schema + signed-off summary
Number531 May 22, 2026
834e797
docs(v6.14/G5.6): pilot decision matrix + REGRESSION hard-halt runbook
Number531 May 22, 2026
38c505e
docs(v6.14/G5.7): G5 spec-to-artifact mapping — 19/19 coverage
Number531 May 22, 2026
26c49b3
docs(v6.14): Gate G5 worktree artifacts complete — pilot validation f…
Number531 May 22, 2026
c1c2a67
docs(v6.14/G5.8): fix dangling reference to non-existent g5-pilot-dur…
Number531 May 22, 2026
253a3ae
docs(v6.14/G4.1): per-client flag propagation runbook
Number531 May 22, 2026
e17f52b
test(v6.14/G4.2): Prometheus alerts — 5 named alerts + routing
Number531 May 22, 2026
2188215
test(v6.14/G4.3): audit-export skill extension + verification script
Number531 May 22, 2026
b0cc769
docs(v6.14/G4.4): rollback playbook — soft-disable + hard-rollback + …
Number531 May 22, 2026
796c002
docs(v6.14/G4.5): operator enable/disable runbook
Number531 May 22, 2026
c800cb2
test(v6.14/G4.6): baselines.json modes-branched schema + capture helper
Number531 May 22, 2026
2ceee99
test(v6.14/G4.7): g4-readiness.sh — pre-pilot operational readiness v…
Number531 May 22, 2026
34b98f8
docs(v6.14/G4.8): G4 spec-to-artifact mapping — 23/23 coverage
Number531 May 22, 2026
55e6b90
docs(v6.14): staging-execution playbook — resolves Issue #2
Number531 May 22, 2026
8b5dd8e
feat(v6.14): Gate G4 complete + Issue #2 resolved — pilot-execution r…
Number531 May 22, 2026
d00b346
docs(v6.14): correct cost estimate — staging execution is ~$450, not …
Number531 May 22, 2026
0378664
fix(v6.14): close 2 subtle orchestrator gaps for seamless test execution
Number531 May 22, 2026
8b21f31
fix(v6.14): session timeout 4h → 6h to accommodate Cardinal-scale work
Number531 May 23, 2026
f0be26a
fix(v6.14): memo-section-writer stream-keepalive + progressive-append…
Number531 May 23, 2026
6f72114
fix(v6.14): memo-final-synthesis tier-ordered assembly + checkpoint p…
Number531 May 23, 2026
8d298b8
fix(v6.14): orchestrator banker-mode anti-loop pattern (1200s file-st…
Number531 May 23, 2026
2e2bb38
fix(v6.14): WAL + EmbeddingDispatcher session_key → UUID resolution
Number531 May 23, 2026
9839223
fix(v6.14): Cardinal session halt remediation complete (5 fixes shipped)
Number531 May 23, 2026
300354c
fix(qa-validation): Cardinal v2.1 lessons — pre-qa-validate + provisions
Number531 May 23, 2026
ba3ddc4
fix(v6.14): banker-qa citation format — pandoc syntax + Option 4 spec
Number531 May 23, 2026
4bdc75b
feat(documentConverter): banker-qa citation paragraph styling
Number531 May 23, 2026
3562649
feat(v6.14): banker-qa-writer prompt — Option 4 source-class tagging …
Number531 May 23, 2026
2033e26
feat(v6.14): Dim 13 — Option 4 format + source-class verification (ma…
Number531 May 23, 2026
67341f2
docs(changelog): v6.14.1 — banker-qa Option 4 + source-class + 8pt re…
Number531 May 23, 2026
bbd16b5
feat(v6.14.2): three banker-mode improvements (Confidence scale + Res…
Number531 May 23, 2026
f4357dd
docs(changelog): v6.14.2 — three banker-mode improvements
Number531 May 23, 2026
de80ba3
fix(kg): JSON-aware risk extraction in Phase 6/7
Number531 May 24, 2026
5d697d8
fix(kg): add risk-summary-narrative alias for canonical key resolution
Number531 May 24, 2026
8bea550
chore(scripts): Cardinal KG recovery helpers (backfill + rebuild)
Number531 May 24, 2026
c13ea70
feat(kg): Phase 1c — banker Q&A fine-grained extraction (v6.15.0)
Number531 May 24, 2026
87e0ab7
chore(scripts): surface Phase 1c counters in Cardinal rebuild output
Number531 May 24, 2026
ffef282
fix(kg): Phase 1b accepts hyphenated qids + Phase 1c WARN on unresolved
Number531 May 24, 2026
6e2f0ce
docs: v6.15.0 changelog entry + Phase A shipped annotation
Number531 May 24, 2026
6e8cd70
fix(kg): Phase 2 Strategy 4 — handle §sigil + multi-letter section keys
Number531 May 24, 2026
b82ac10
docs(citations-issue): rewrite with verified diagnosis + Option B shi…
Number531 May 24, 2026
a3cbffc
fix(kg): bound parseTokenForRoman letter suffix to ≤2 chars
Number531 May 24, 2026
abdac68
feat(kg): Wave 1 — Phase 4c node embeddings + Phase 4d semantic edges
Number531 May 24, 2026
ff402f1
docs(changelog): v6.16.0 Wave 1 entry — semantic edges
Number531 May 24, 2026
bf11299
fix(kg): Wave 1 audit follow-ups — migration rename, null-byte guard,…
Number531 May 24, 2026
9fcfa6a
feat(kg): Wave 2 — MITIGATED_BY edge spec in Phase 4d (threshold 0.70)
Number531 May 25, 2026
74b843d
docs(changelog): v6.16.0 Wave 2 entry — MITIGATED_BY edges
Number531 May 25, 2026
d454861
fix(kg): Wave 2 audit follow-ups — 3 MEDIUM defensive items
Number531 May 25, 2026
3d351f0
feat(kg): Wave 2.1 — recommendation dedup + QUANTIFIES_COST
Number531 May 25, 2026
c3d91ef
docs(changelog): v6.16.0 Wave 2.1 entry — dedup + QUANTIFIES_COST
Number531 May 25, 2026
ada08a7
fix(kg): Wave 2.1 audit follow-ups — 4 MEDIUM defensive items
Number531 May 25, 2026
ecdf069
feat(kg): Wave 2.2 — EXPOSED_TO edges (numeric Phase 11)
Number531 May 25, 2026
1c16ca7
docs(changelog): v6.16.0 Wave 2.2 entry — EXPOSED_TO numeric Phase 11
Number531 May 25, 2026
938f02b
feat(kg): Wave 3 — INFORMS + ANALYZES edges (Q-body extraction)
Number531 May 25, 2026
107fd7b
docs(changelog): v6.16.0 Wave 3 entry — INFORMS + ANALYZES
Number531 May 25, 2026
642514e
fix(kg): Wave 2.2+3 audit follow-ups — 5 defensive items
Number531 May 25, 2026
58cd107
feat(kg): Wave 4 — CONTRADICTS + numeric-tier CONVERGES_WITH reinforc…
Number531 May 25, 2026
dd7860d
fix(kg): Wave 4 audit follow-ups — 7 hardening + visibility items
Number531 May 25, 2026
0205ebb
test(kg): Wave 4 close-the-gap — mock pool ON CONFLICT + 3 deferred t…
Number531 May 25, 2026
6655c96
docs(runbooks): Wave 4 contradiction-soak operator playbook
Number531 May 25, 2026
9988e20
docs(skills): session-diagnostics — v6.16.0 KG wave awareness
Number531 May 25, 2026
2ea875d
docs(skills): infrastructure-health — v6.16.0 KG wave probes
Number531 May 25, 2026
edd0df3
docs(skills): client-provisioner — v6.16.0 KG flag staggered rollout
Number531 May 25, 2026
4c0a8f0
docs(skills): post-deploy-verify + client-offboarding — v6.16.0 KG co…
Number531 May 25, 2026
2ab0568
docs(arch): system-design.md — §14 v6.16.0 KG wave architecture
Number531 May 25, 2026
4a1dd76
docs(audit): 3-agent meta-review follow-ups — items 3-7 (HIGH-severity)
Number531 May 25, 2026
3bb1399
fix(audit): meta-review BLOCKERs — SQL JSONB-cast crash + package.jso…
Number531 May 25, 2026
3605ba0
fix(audit): rollback-correctness audit — kg_provenance JOIN over evid…
Number531 May 25, 2026
b501bb7
docs(changelog): v6.16.0 Wave 4 post-implementation summary
Number531 May 25, 2026
bdbf063
feat(kg): Wave 5 — probabilistic_value node + 2 IC-decision edges
Number531 May 26, 2026
0d88241
feat(kg): Wave 6 — BENCHMARKS edge (precedent → financial_figure)
Number531 May 26, 2026
6daa6f7
fix(kg): Wave 5+6 audit follow-ups — 2 BLOCKERS + 6 HIGH
Number531 May 26, 2026
89e8383
docs(changelog): v6.17.0 Wave 5 + Wave 6 + audit follow-up entries
Number531 May 26, 2026
d164dfb
docs(runbooks): Wave 5+6 rollout playbook
Number531 May 26, 2026
dae0448
docs(skills): session-diagnostics — v6.17.0 Wave 5+6 awareness
Number531 May 26, 2026
57d1edb
docs(skills): infrastructure-health — v6.17.0 KG-Phase13/14 probes
Number531 May 26, 2026
b073903
docs(skills): client-provisioner — v6.17.0 Wave 5+6 flag rollout
Number531 May 26, 2026
067f25e
docs(skills): post-deploy-verify — V9 + V10 Wave 5+6 health checks
Number531 May 26, 2026
e85b4a2
docs(arch): system-design.md §14 — v6.17.0 Wave 5+6 architecture
Number531 May 26, 2026
0c0c737
feat(kg): Wave 7 — deal_thesis node + RECOMMENDS edge
Number531 May 26, 2026
5200239
fix(kg): Wave 7 audit follow-up — 3 BLOCKERS + 5 HIGH + 2 MEDIUM
Number531 May 26, 2026
f8d7d57
docs(changelog): v6.18.0 Wave 7 — deal_thesis + Wave 7 audit follow-up
Number531 May 26, 2026
cfff405
docs(skills): session-diagnostics — v6.18.0 Wave 7 awareness
Number531 May 26, 2026
ff00437
docs(skills): infrastructure-health — v6.18.0 KG-Phase15 probe
Number531 May 26, 2026
d400f97
docs(skills): client-provisioner — v6.18.0 KG_DEAL_THESIS rollout
Number531 May 26, 2026
668d1fe
docs(skills): post-deploy-verify — V11 Wave 7 health check
Number531 May 26, 2026
5039889
docs(runbooks): Wave 7 rollout playbook
Number531 May 26, 2026
a626191
docs(arch): system-design.md §14 — v6.18.0 Wave 7 architecture + Bank…
Number531 May 26, 2026
6ff918b
chore(flags): enable banker + KG wave flags for v6.15.0 Phase C testing
Number531 May 26, 2026
421278d
feat(frontend): A1-A5 — pyramidal IC banker rendering (v6.15.0 Phase C)
Number531 May 26, 2026
c4919da
test(integration): IC Flow Tier 2 — Cardinal read-only contract test
Number531 May 26, 2026
fdf91a2
fix(frontend): render markdown in KG content (citations, evidence, la…
Number531 May 26, 2026
cb0458b
docs(changelog): v6.15.0 Phase C — IC-grade pyramidal frontend rendering
Number531 May 26, 2026
9409fbd
feat(frontend): Option C — Q-focused full-context center view
Number531 May 26, 2026
859a540
fix(frontend): citation card layout — tag at top, label dominant
Number531 May 26, 2026
064bac4
feat(frontend): full Q+A content in center Q-context header
Number531 May 26, 2026
7afef56
docs(plan): Banker-Q-Structured-Properties.md — Wave 10 plan
Number531 May 26, 2026
8fa3c46
feat(kg): Phase 1c content enrichment — banker-Q structured properties
Number531 May 26, 2026
3de4980
feat(frontend): consume Phase 1c structured Q properties + intake chips
Number531 May 26, 2026
d1b8b18
feat(frontend): expandable Tree banker Q items + show question_prompt
Number531 May 26, 2026
b65ec2d
fix(frontend): bump Tree banker Q prompt to 150 chars + allow wrapping
Number531 May 26, 2026
2c2f35a
fix(frontend): apply .md-content typography to all banker Q content b…
Number531 May 26, 2026
82846b2
docs(changelog): v6.18.0 Wave 8 — SENSITIVE_TO entry (corrects shippe…
Number531 May 26, 2026
b2b01cd
fix(kg): Wave 8 audit follow-up — numeric augmentation + stemming + l…
Number531 May 26, 2026
b5be26c
docs(changelog): v6.18.0 Wave 8 — Audit follow-up entry
Number531 May 26, 2026
e64ca7d
feat(frontend): triptych items clickable + edge-type chips (Wave 8 fo…
Number531 May 26, 2026
dda5bf0
feat(frontend): 9 banker Flow + Q-context + triptych enhancements
Number531 May 26, 2026
c2a6f32
fix(frontend): rec card p50 tooltip — full p10/p50/p90 range
Number531 May 26, 2026
8ad3068
fix(frontend): realign Q-content typography to platform reading conve…
Number531 May 26, 2026
f1f414d
fix(kg): Wave 6 audit follow-up #2 — utility precedent extraction
Number531 May 27, 2026
22ef9f8
fix(kg): Wave 7 audit follow-up — deal_thesis enrichment + embedding
Number531 May 27, 2026
2c82fdf
fix(kg): Wave 8 audit follow-up #2 — multi-source sensitivity prose
Number531 May 27, 2026
6028f79
docs(changelog): v6.18.1 Wave 6/7/8 audit follow-ups consolidated entry
Number531 May 27, 2026
de1503b
fix(kg): Phase 10 — JSON-boundary truncation on recommendation full_text
Number531 May 27, 2026
7aec091
feat(frontend): enum-token display normalization + SENS → SWING termi…
Number531 May 27, 2026
598f645
test(kg): v6.18.1 comprehensive DB audit script
Number531 May 27, 2026
b2b570e
fix(frontend): enum normalization — propagate to L0 headline + missed…
Number531 May 27, 2026
6f4a9a4
fix(frontend): handle backend cites → CITES edge-type unification (v6…
Number531 May 27, 2026
ee58a54
fix(kg): v6.18.1 audit follow-up #3 — three minor hygiene fixes
Number531 May 27, 2026
da16545
docs(changelog): v6.18.1 — Phase 10 JSON-boundary + audit script + hy…
Number531 May 27, 2026
6c87dd2
fix(frontend): align card backgrounds with platform --bg canvas token
Number531 May 27, 2026
07c69c0
refactor(frontend): IC interaction-mapping pass — 3-tier elevation, m…
Number531 May 27, 2026
f3388a2
refactor(frontend): Evidence Trail hybrid — taxonomy strip + compact …
Number531 May 27, 2026
1dca4ec
refactor(frontend): Q-narrative cite normalization — markdown, smart …
Number531 May 27, 2026
282984c
refactor(frontend): deduplicate Q-narrative cite list — Evidence Trai…
Number531 May 27, 2026
48c74c7
feat(kg): v6.18.2 Commit A — fact.source_excerpt property enrichment
Number531 May 27, 2026
92b38ec
feat(kg): v6.18.2 Commit B — scenario node enrichment from executive-…
Number531 May 27, 2026
4c4a51c
fix(frontend): Evidence Trail accuracy — case-normalize, expand edge …
Number531 May 27, 2026
2ddc34c
feat(kg): v6.18.2 Commit C — precedent deal_year + regulatory_outcome
Number531 May 27, 2026
d4f4350
docs(changelog): v6.18.2 three property enhancements consolidated entry
Number531 May 27, 2026
454bb4e
refactor(frontend): Evidence Trail IC-grade refinement — trust+polish…
Number531 May 27, 2026
49a56a0
docs(arch): system-design.md §14 — extend to v6.18.0 Wave 8 + v6.18.1…
Number531 May 27, 2026
ba24486
docs(skills): infrastructure-health — KG-Phase16 + KG_SENSITIVITY_EDG…
Number531 May 27, 2026
1b96a68
feat(frontend): surface recommendation full_text rationale + JSON-cle…
Number531 May 27, 2026
4612624
docs(skills): session-diagnostics — v6.18.x baselines + failure patte…
Number531 May 27, 2026
f2c7f42
docs(skills): post-deploy-verify — V12–V15 probes for v6.18.x surface
Number531 May 27, 2026
d720883
docs(skills): client-provisioner — KG_SENSITIVITY_EDGES Day-0 rollout…
Number531 May 27, 2026
d92203e
docs(changelog): v6.18.x operator surface propagation cycle consolida…
Number531 May 27, 2026
39051e2
feat(kg): v6.18.3 Commit A — Phase 6 lettered-condition extraction
Number531 May 27, 2026
2482274
feat(kg): v6.18.3 Commit B — Phase 9 CONDITIONAL_ON cross-linker
Number531 May 27, 2026
832148c
docs(skills+arch+changelog): v6.18.3 Commit C — operator propagation …
Number531 May 27, 2026
d674b77
feat(frontend): v6.18.3 frontend wiring — surface CONDITIONAL_ON edge…
Number531 May 27, 2026
44713e6
fix(frontend): Tree root label — derive from kgSessionKey instead of …
Number531 May 27, 2026
0ed49bc
fix(kg): v6.18.3 follow-up — Phase 6 numbered regex line-anchored to …
Number531 May 27, 2026
13caf38
docs(changelog): PR-readiness Items 6+8+9 — edge-type accounting, ver…
Number531 May 27, 2026
2f80ad8
Merge remote-tracking branch 'origin/main' into v6.14/banker-qa-phase-1
Number531 May 27, 2026
df487a3
ci(kg-tests): add 7 missing test files to explicit run step
Number531 May 27, 2026
fa5a6fd
fix(frontend): Evidence Trail render no longer aborts node summary on…
Number531 May 28, 2026
9a28a1e
fix(migrations): renumber 022→025 + add duplicate-prefix CI guard
Number531 Jun 1, 2026
88f240e
docs(merge): add Banker-Merge-Risk.md — full banker→main merge-risk a…
Number531 Jun 1, 2026
1b94a7e
Merge origin/main (8.0.1, wrapped subagents) into v6.14/banker-qa-pha…
Number531 Jun 2, 2026
32772c5
feat(banker-qa): add parse-back validation gate (bankerQaValidator.js)
Number531 Jun 2, 2026
8cec3d0
test(banker-qa): validator unit suite + node:test/jest registration
Number531 Jun 2, 2026
428471d
feat(banker-qa): isolation harness for standalone Opus-4.8 validation
Number531 Jun 2, 2026
2c05992
docs(banker-qa): CHANGELOG + merge-risk — gate built & Tier-3 validated
Number531 Jun 2, 2026
94f8581
Merge remote-tracking branch 'origin/main' into v6.14/banker-qa-phase-1
Number531 Jun 2, 2026
2a96364
docs(flags): document BANKER_QA_OUTPUT + 8 KG edge-wave flags in feat…
Number531 Jun 2, 2026
d8e31ef
chore(flags): hold KG_CONTRADICTION_EDGES (Wave 4) OFF on 8.0.x merge
Number531 Jun 2, 2026
71dc461
test(banker-qa): commit Cardinal gold fixture → reproducible on clean…
Number531 Jun 3, 2026
463cf5a
refactor(kg): export deriveRecommendationCanonicalKey so the dedup te…
Number531 Jun 3, 2026
1604eba
docs: record PR #178 merge-review corrections (reproducibility, canon…
Number531 Jun 3, 2026
a04e7de
fix(banker): gate documentConverter lua filter + session timeout behi…
Number531 Jun 3, 2026
3ada97c
fix(kg): G1 — section-matcher no longer reads topic words as letter c…
Number531 Jun 3, 2026
1956abc
fix(kg): G2 — head-anchor parseMultiple regexes (no tail-range hijack)
Number531 Jun 3, 2026
5f5d206
fix(kg): G6-banker — accept + normalize mixed-case citation class tags
Number531 Jun 3, 2026
4267eef
chore(flags): hold KG_NUMERIC_EXPOSURE + KG_SENSITIVITY_EDGES OFF (G3…
Number531 Jun 3, 2026
1ec5c0f
docs: banker-feature merge notes — CHANGELOG purpose/application entr…
Number531 Jun 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .claude/skills/client-audit-export/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,37 @@ The skill reuses `_shared/gcp-fleet-discover.sh` for multi-client discovery when
| `source_writes` | upstream API source provenance (Wave 2) | safe |
| `citation_verdicts` | per-footnote G5 verification verdicts (v6.8.6 T1) — CONFIRMED/UNCONFIRMED/ERROR/SKIP/PASS_WITH_NOTE + verification method + paywalled flag + notes | safe |
| `citation_verification_certificate` | full G5 certificate markdown (the canonical proof artifact for Art. 13 query reconstruction) | safe |
| `kg_nodes`, `kg_edges`, `kg_provenance`, `kg_evolution` | Knowledge Graph audit chain — every fact/risk/recommendation node, every relationship between them, the agent + tool + raw text that produced each, and the chronological discovery timeline. Edge-type-agnostic export captures all 11 edge types (see table below). | safe — contains no PII; entity names are deal-public |

`pii_mappings.encrypted_value` is **never** included in the bundle. The query in `range-query.py` selects only `pseudonym_id`, `created_at`, and `pii_type` — never the encrypted payload.

### KG Edge Types in the Export (v6.16.0 Waves 1-4)

The `kg_edges` export captures rows across all edge types present in the client's sessions during the export window. As of v6.16.0, eleven edge types are possible (subject to which `KG_*` flags were active for the client at session-time):

| Edge type | Source → Target | Wave | Activation flag | Extraction tier |
|---|---|---|---|---|
| `CITES` | report → citation | pre-Wave | always on | Phase 1c regex |
| `GROUNDED_IN` | question → section | pre-Wave (banker mode) | `BANKER_QA_OUTPUT` | Phase 1c § ref matcher |
| `INFORMS` | question → question | 3 | `KG_QA_INFORMS_EDGES` | Phase 1c regex (`Q\d+` refs) |
| `MIRRORS_RISK` | precedent → risk | 1 | `KG_SEMANTIC_EDGES` | Phase 4d embedding cosine ≥ 0.70 |
| `RELATED_RISK` | risk ↔ risk | 1 | `KG_SEMANTIC_EDGES` | Phase 4d embedding cosine ≥ 0.80 |
| `CONVERGES_WITH` | fact ↔ fact | 1 + 4 reinforce | `KG_SEMANTIC_EDGES` (+ `KG_CONTRADICTION_EDGES` for numeric reinforcement) | Phase 4d embedding cosine ≥ 0.85 (W1), Phase 12 numeric ±20% (W4 reinforces to weight 1.0) |
| `MITIGATED_BY` | risk → recommendation | 2 | `KG_SEMANTIC_EDGES` | Phase 4d embedding cosine ≥ 0.70 |
| `QUANTIFIES_COST` | recommendation → financial_figure | 2.1 | `KG_SEMANTIC_EDGES` | Phase 4d embedding cosine ≥ 0.75 |
| `ANALYZES` | question → risk | 3 | `KG_SEMANTIC_EDGES` | Phase 4d embedding cosine ≥ 0.65 |
| `EXPOSED_TO` | risk → financial_figure | 2.2 | `KG_NUMERIC_EXPOSURE` | Phase 11 numeric tolerance ±15% |
| `CONTRADICTS` | fact ↔ fact | 4 | `KG_CONTRADICTION_EDGES` | Phase 12 numeric ratio ≥ 3× (HIGH false-positive risk; 7-day soak required pre-flip) |

Plus pre-v6.16.0 cross-link edge types (CROSS_REFS, CONTAINS, SUPPORTS, SOURCED_FROM, PRODUCED_BY, etc.) — see `kg_edges.edge_type` distinct values for the full set in any given session.

**Audit completeness check for v6.16.0+ clients**: when the regulator queries a banker-mode session with all four KG flags ON, the export should contain rows from at least 9–11 of the above edge types (CONTRADICTS may be absent if the session has no divergent same-metric pairs — not a fault). Use the per-edge-type breakdown query in `.claude/skills/session-diagnostics/scripts/queries/04-kg-counts.sql` to validate completeness before handoff.

**Provenance distinction (Wave 4)**: a `CONVERGES_WITH` edge may carry one of two `evidence.extraction_method` values:
- `embedding_cosine` (or absent — Wave 1 emission default)
- `numeric_reinforce` (Wave 4 — present in the `kg_provenance` row with `extraction_method='phase12_numeric_reinforce'`)

The regulator can distinguish embedding-tier vs numeric-tier reinforcement post-hoc from the `kg_provenance` join. Both tiers are legitimate evidence for the same fact-pair convergence claim.
## Filesystem artifact source (Art. 12 — PR #182)

Wrapped subagents (permanent mode, PR #182) write **filesystem-only** transcript artifacts that no database table holds, so the DB queries above miss them. `collect-transcripts.sh` folds them into the bundle as a single `wrapped-subagent-transcripts.tar.gz` (hashed into `manifest.txt` like every other file). Per session, per agent, under `<reports-dir>/<sessionId>/wrapped-subagent-transcripts/`:
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/client-offboarding/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ bash /Users/ej/Super-Legal/.claude/skills/client-offboarding/scripts/offboard-cl

### Phase 2: Data Archive (non-destructive)

**Step 4**: Archive Cloud SQL database — `gcloud sql export sql` to a GCS backup file. Full database dump including schema, data, and extensions. Stored at `gs://super-legal-worm-{client_id}/archive/db-final-{date}.sql.gz`.
**Step 4**: Archive Cloud SQL database — `gcloud sql export sql` to a GCS backup file. Full database dump including schema, data, and extensions. Stored at `gs://super-legal-worm-{client_id}/archive/db-final-{date}.sql.gz`. **v6.16.0 coverage note**: the SQL dump captures `kg_edges` rows for ALL 11 edge types regardless of which `KG_*` flags were active for the client (CITES, GROUNDED_IN, INFORMS, MIRRORS_RISK, RELATED_RISK, CONVERGES_WITH, MITIGATED_BY, QUANTIFIES_COST, ANALYZES, EXPOSED_TO, CONTRADICTS, plus pre-Wave types CROSS_REFS / CONTAINS / SUPPORTS etc.). `kg_provenance` rows are also dumped — including the `extraction_method='phase12_numeric_*'` entries that distinguish Wave 4 numeric-tier reinforcements from Wave 1 embedding-tier emissions on the same edge. No additional export step is required for KG wave coverage; the full SQL dump is edge-type-agnostic by design.

**Step 5**: Archive reports directory — if the GCE instance still has local `/reports/` data, tar + upload to `gs://super-legal-worm-{client_id}/archive/reports-final-{date}.tar.gz`. **PR #182**: this tree includes the wrapped-subagent transcript artifacts (`reports/<session>/wrapped-subagent-transcripts/*.{jsonl,full.jsonl,sidecar.json}` — EU AI Act Art. 12 records). The script now counts `wrapped-subagent-transcripts/` entries in the produced tarball and reports the count; if zero on a client known to have wrapped sessions, investigate the tar step **before** any deletion (these are filesystem-only and unrecoverable once the instance is gone). If no instance is running, the step emits a hard compliance warning to confirm a prior archive exists.

Expand Down
11 changes: 10 additions & 1 deletion .claude/skills/client-provisioner/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,16 @@ The script executes 16 steps. If it fails at any step, it reports which step fai
- Boot disk: 30GB SSD, COS (Container-Optimized OS)
- Container image from step 10
- Environment variables injected:
- All feature flags from `flags.env` (51 entries, full platform for all clients). Includes v6.5.0 additions: SDK_STREAMING, CITATION_DEEP_VERIFICATION, FILES_API_CHART_EXTRACTION, CHART_PERSISTENCE, PRESERVE_GRACE_PERIOD, EXTENDED_CONTEXT, SCOPED_MCP_SERVERS
- All feature flags from `flags.env` (50+ entries, full platform for all clients). Includes v6.5.0 additions: SDK_STREAMING, CITATION_DEEP_VERIFICATION, FILES_API_CHART_EXTRACTION, CHART_PERSISTENCE, PRESERVE_GRACE_PERIOD, EXTENDED_CONTEXT, SCOPED_MCP_SERVERS. **v6.16.0 banker-centric KG edge waves** (default OFF; ops opt-in per client per the staggered-soak schedule below):
- `KG_SEMANTIC_EDGES` — Waves 1+2+2.1+ANALYZES from 3. Phase 4c (node embeddings) + Phase 4d (6 semantic edge specs). Most-verified; broadest reuse. Enable on **day 0** (immediately after merge) for any new client provisioned post-v6.16.0.
- `KG_NUMERIC_EXPOSURE` — Wave 2.2. Phase 11 (EXPOSED_TO risk→financial_figure). Pure CPU, no Gemini cost. Enable on **day 2** after `KG_SEMANTIC_EDGES` has been live with zero KG alerts.
- `KG_QA_INFORMS_EDGES` — Wave 3. Phase 1c (INFORMS Q→Q via regex). Banker-mode-only signal. Enable on **day 2** alongside `KG_NUMERIC_EXPOSURE` for banker-deployment clients; leave OFF for non-banker clients (no value without `BANKER_QA_OUTPUT=true`).
- `KG_CONTRADICTION_EDGES` — Wave 4. Phase 12 (CONTRADICTS fact↔fact + CONVERGES_WITH numeric reinforcement). **HIGHER FALSE-POSITIVE RISK.** Enable per-client only on **day 7+** after the soak in `docs/runbooks/wave-4-contradiction-soak.md` clears all four activation gates. Spot-check a recent session of that client's data (Section 4.3 of the runbook) before flipping.
- `KG_PROBABILISTIC_VALUE` — v6.17.0 Wave 5. Phase 13 (probabilistic_value node + QUANTIFIES_OUTCOME + WEIGHTS_RECOMMENDATION). Tier A direct JSONB parse — extracts p10/p50/p90 outcome distributions from risk-summary. Pure CPU, no Gemini cost. Enable on **day 0** alongside `KG_SEMANTIC_EDGES` (Day-0 safe per `docs/runbooks/wave-5-6-rollout.md` §1). Banker-mode-only signal — leave OFF for non-banker clients (no risk-summary content to parse).
- `KG_PRECEDENT_BENCHMARKS` — v6.17.0 Wave 6. Phase 14 (BENCHMARKS precedent → financial_figure via numeric tolerance matching on parsed multiples). Tier A deterministic. Enable on **day 0** alongside Wave 5. The `ELIGIBLE_PRECEDENT_TYPES = ['benchmark_transaction']` filter structurally prevents false-positive edges from regulatory_citation precedents; if a client's sessions only contain regulatory citations (e.g., Cardinal-shape sessions where Phase 10 doesn't pick up deal-name precedents), Phase 14 will emit 0 BENCHMARKS — this is the correct architectural outcome.
- `KG_DEAL_THESIS` — v6.18.0 Wave 7 + v6.18.1 audit follow-up. Phase 15 (`deal_thesis` L0 anchor node + RECOMMENDS edges to every recommendation). Tier A direct property read — no JSONB parse, no embeddings, no LLM. Pure CPU, <0.2s phase cost. Enable on **day 0** alongside Wave 5/6 (Day-0 safe per `docs/runbooks/wave-7-rollout.md` §1). Banker-mode-only signal — leave OFF for non-banker clients (no Phase 10 recommendation nodes to anchor). One `deal_thesis` node per session (cardinality flat); RECOMMENDS edge weight = `0.5 + 0.4 * priority_score + 0.1 * confidence` (range 0.5–1.0) — Flow renderer can rank recommendations top-to-bottom by edge weight. v6.18.1 audit follow-up adds 6 enrichment properties on the node (verdict / verdict_condition_count / scenarios[] / expected_value_per_share / nominal_value_per_share / intrinsic_gap_pct) extracted from executive-summary scenario table; backfill script provided for clearing stale embeddings (`scripts/backfill-deal-thesis-embedding.mjs`) on pre-existing sessions so Phase 4c re-embeds with the new property content.
- `KG_SENSITIVITY_EDGES` — v6.18.0 Wave 8 + v6.18.1 audit follow-ups #1/#2. Phase 16 (multi-source SENSITIVE_TO edges across 5 scannable node types: recommendation/financial_figure/scenario/risk/question — all target `fact` node). Tier B prose+numeric — 10 sensitivity-prose patterns (P1-P10) with weighted bands + numeric augmentation via Wave-5 probabilistic_value spread (≥ 0.40 relative spread). Token-overlap matching with ≥2-hit threshold + conservative plural-only stemming. Pure CPU, ~0.3-0.6s phase cost on Cardinal-class sessions (~310 facts × ~150 phrases). Enable on **day 0** alongside Wave 5/6/7 (Day-0 safe — Tier B deterministic with multiple FP-control layers). Banker-mode-only signal. Populates the IC Triptych "Would Change" slot in the frontend renderer. Evidence JSON carries `source_node_type` + `source_node_id` so consumers can distinguish prose-extraction origin. Fanout cap 12 per source. Cardinal yield: ~38 SENSITIVE_TO edges spread across 5 source types (recommendation=15, financial_figure=12, scenario=8, risk=2, question=1).
- Per-client override mechanism: `client-provisioner --update-flag <flag>=<value>` flips a single flag and restarts the MIG (~2 min recovery time). Document the flip date + the operator who authorized it in the client's onboarding record.
- `SKIP_SECRET_MANAGER=true` (secrets pre-injected, no runtime SM dependency)
- `PG_CONNECTION_STRING` (from step 4) — pool config: idleTimeoutMillis=600000 (10min), connectionTimeoutMillis=10000, statement_timeout=120000 (2min)
- `JWT_SECRET` (from step 7)
Expand Down
22 changes: 22 additions & 0 deletions .claude/skills/deploy/references/deployment-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,28 @@
- `KNOWLEDGE_GRAPH=true`
- `LOG_LEVEL=info`

### v6.16.0 KG Wave Flags (Staggered Rollout)

The v6.16.0 banker-centric KG edge wave series adds 4 additional KG flags. **DO NOT** enable all four at deployment time — follow the staggered schedule below to allow each wave to soak independently. All four default `false`; opt in via `flags.env` on the schedule documented in `docs/runbooks/wave-4-contradiction-soak.md`.

| Flag | Wave(s) | Activate on | Risk profile |
|---|---|---|---|
| `KG_SEMANTIC_EDGES` | 1, 2, 2.1, 3 (ANALYZES) | **Day 0** — immediately after merge; broadest reuse, most-verified extraction tier (embedding cosine) | LOW |
| `KG_NUMERIC_EXPOSURE` | 2.2 | **Day 2** — after `KG_SEMANTIC_EDGES` has 48h of zero KG alerts | LOW (pure CPU, no API cost) |
| `KG_QA_INFORMS_EDGES` | 3 (INFORMS) | **Day 2** — banker-mode tenants only (`BANKER_QA_OUTPUT=true`); leave OFF for non-banker tenants (no value without Q-nodes) | LOW |
| `KG_CONTRADICTION_EDGES` | 4 | **Day 7+** — **per-tenant flip only after manual spot-check** on Cardinal AND one other live session per the runbook. Higher false-positive risk than other waves. | **MEDIUM** — requires soak |

**Operator action items at deploy time:**

1. Leave all four flags commented out in `flags.env` on initial deploy. The default-`false` behavior in `featureFlags.js` provides safety net.
2. On Day 0 post-merge, uncomment `KG_SEMANTIC_EDGES=true` in `flags.env` and restart the MIG (~2 min).
3. Monitor `claude_circuit_breaker_state{breaker="KG-Phase4c"}` and `{breaker="KG-Phase4d"}` for 48h. Both must remain `0`.
4. On Day 2, uncomment `KG_NUMERIC_EXPOSURE=true` (all tenants) and `KG_QA_INFORMS_EDGES=true` (banker tenants only). Restart.
5. On Day 7+, after running the spot-check procedure in §4 of the soak runbook AND confirming zero FPs, uncomment `KG_CONTRADICTION_EDGES=true` **per tenant**. This flag should be flipped one tenant at a time, not globally.
6. Document the flip date + authorizing operator in each tenant's onboarding record.

**Reference**: `docs/runbooks/wave-4-contradiction-soak.md` is the operator playbook for the Day 7+ flip — read it before flipping `KG_CONTRADICTION_EDGES` for any tenant.

## Known Gotchas

1. **Phantom MIG in us-east1-b** — size 0, leftover from early provisioning. Always use ZONE=us-east1-d.
Expand Down
Loading