forked from lance-format/lance-graph
-
Notifications
You must be signed in to change notification settings - Fork 0
feat(palantir-cascade): 11 deliverables across 12 agents in 3 waves (Pillar 0 realized) #355
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
63484c9
gov(post-merge): #354 PR_ARC + LATEST_STATE close-out
claude 8528161
feat: Wave 1 of palantir-cascade push (4 deliverables across 4 agents)
claude 16a745c
fix(D-CASCADE-V1-1): scope cert-officer hard-abort to direct builds (…
claude 8366e70
feat: Wave 2 of palantir-cascade push (4 deliverables, 3 lance-graph …
claude fc49a29
feat: Wave 3 of palantir-cascade push (4 deliverables; meta-2 nudges …
claude e7a5492
fix(palantir-cascade): codex P1/P2 review + clippy CI fixes
claude 08b7805
chore(orchestration-log): agent-ogit-validator-fix START entry
claude 140dbc0
fix(spo_bridge): apply rustfmt to D-ONTO-V5-2 new files
claude File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,156 @@ | ||
| # Business-Thinking-OGIT Triangle (append-only knowledge) | ||
|
|
||
| > **Status:** D-PARITY-V2-2 (palantir-parity-cascade-v2 §"Business Logic ↔ Thinking-style ↔ OGIT"). | ||
| > **Authored:** 2026-05-07. | ||
| > **READ BY:** crewai-rust (agent dispatch), n8n-rs (workflow routing), | ||
| > lance-graph-planner (strategy selection), business-logic | ||
| > module authors when proposing new operations. | ||
| > **Append-only:** new operations append rows; rows already published | ||
| > are never edited. Confidence/correction notes append below the table | ||
| > as dated entries. | ||
| > | ||
| > **Iron rule of this doc:** every row cites a real `*.ttl` under | ||
| > `/home/user/OGIT/NTO/<Namespace>/verbs/` AND a real | ||
| > `lance_graph_contract::thinking::ThinkingStyle` variant. If a row | ||
| > appears that fails either check, it is invalid and must be reverted | ||
| > in a follow-up dated entry. | ||
|
|
||
| ## The triangle (recap from the v2 plan) | ||
|
|
||
| ``` | ||
| Thinking style | ||
| (lance_graph_contract::thinking::ThinkingStyle, 36 variants) | ||
| ▲ | ||
| │ dispatches | ||
| │ | ||
| Business operation ──┼── OGIT verb | ||
| (industry case) │ (OGIT/NTO/<Namespace>/verbs/<verb>.ttl) | ||
| │ | ||
| │ describes | ||
| ▼ | ||
| OGIT entities | ||
| (OGIT/NTO/<Namespace>/entities/*.ttl, the | ||
| ogit:from / ogit:to of the verb) | ||
| ``` | ||
|
|
||
| Each row carries `(operation_name, thinking_style, ogit_verb, | ||
| ogit_entities[])`. The ThinkingStyle is the closest cluster member | ||
| from the 36 styles — picked by reading | ||
| `crates/lance-graph-contract/src/thinking.rs` and matching the verb's | ||
| `dcterms:description` to one of the six clusters | ||
| (Analytical / Creative / Empathic / Direct / Exploratory / Meta) and | ||
| then to the specific style inside that cluster. | ||
|
|
||
| ## Routing table — WorkOrder namespace (12 rows, v2 D-PARITY-V2-9 first batch) | ||
|
|
||
| The 12 verbs below are the WorkOrder NTO verbs in OGIT (per | ||
| `/home/user/OGIT/NTO/WorkOrder/verbs/*.ttl`). Each row maps a | ||
| business operation to its dispatched ThinkingStyle and the OGIT | ||
| subject/object entities the verb connects. | ||
|
|
||
| | # | Operation (business) | ThinkingStyle | Cluster | OGIT verb (TTL) | OGIT entities (`from` → `to`) | | ||
| |---|---|---|---|---|---| | ||
| | 1 | Issue order | `Pragmatic` | Direct | `OGIT/NTO/WorkOrder/verbs/Issued.ttl` | `ogit.WorkOrder:Customer` → `ogit.WorkOrder:Order` | | ||
| | 2 | Assign user to order | `Methodical` | Analytical | `OGIT/NTO/WorkOrder/verbs/Assigned.ttl` | `ogit.WorkOrder:User` → `ogit.WorkOrder:Order` | | ||
| | 3 | Add line item | `Systematic` | Analytical | `OGIT/NTO/WorkOrder/verbs/HasPosition.ttl` | `ogit.WorkOrder:Order` → `ogit.WorkOrder:Position` | | ||
| | 4 | Record work activity | `Investigative` | Exploratory | `OGIT/NTO/WorkOrder/verbs/HasActivity.ttl` | `ogit.WorkOrder:Order` → `ogit.WorkOrder:Activity` | | ||
| | 5 | Attach picture | `Precise` | Analytical | `OGIT/NTO/WorkOrder/verbs/HasPicture.ttl` | `ogit.WorkOrder:Order` → `ogit.WorkOrder:Picture` | | ||
| | 6 | Audit history | `Reflective` | Meta | `OGIT/NTO/WorkOrder/verbs/HasHistory.ttl` | `ogit.WorkOrder:Order` → `ogit.WorkOrder:HistoryEntry` | | ||
| | 7 | Reference catalogue article | `Analytical` | Analytical | `OGIT/NTO/WorkOrder/verbs/RefersToArticle.ttl` | `ogit.WorkOrder:Position` → `ogit.WorkOrder:Article` | | ||
| | 8 | Authenticate portal user | `Critical` | Analytical | `OGIT/NTO/WorkOrder/verbs/AccessesPortal.ttl` | `ogit.WorkOrder:CustomerPortalUser` → `ogit.WorkOrder:Customer` | | ||
| | 9 | Custody password vault | `Sovereign` | Meta | `OGIT/NTO/WorkOrder/verbs/OwnsPasswords.ttl` | `ogit.WorkOrder:Customer` → `ogit.WorkOrder:PasswordEntry` | | ||
| | 10 | Log billable time | `Concise` | Direct | `OGIT/NTO/WorkOrder/verbs/LogsTime.ttl` | `ogit.WorkOrder:User` → `ogit.WorkOrder:TimeSheet` | | ||
| | 11 | Record vehicle trip | `Logical` | Analytical | `OGIT/NTO/WorkOrder/verbs/Drives.ttl` | `ogit.WorkOrder:User` → `ogit.WorkOrder:LogbookEntry` | | ||
| | 12 | Partition by tenant | `Frank` | Direct | `OGIT/NTO/WorkOrder/verbs/BelongsToTenant.ttl` | many entity classes → `ogit.WorkOrder:Tenant` (mandatory partition) | | ||
|
|
||
| ### Per-row rationale | ||
|
|
||
| 1. **Issue order** — `Pragmatic`: Customer issuing an Order is a | ||
| transactional commit. The Direct cluster's `Pragmatic` variant is | ||
| the cluster member that emphasises "act on what is, not what | ||
| could be"; it dispatches the convergent path that commits the | ||
| transaction with minimal deliberation. | ||
| 2. **Assign user to order** — `Methodical`: allocating a user to an | ||
| Order is a structured scheduling step. The Analytical cluster's | ||
| `Methodical` variant captures "step-by-step with explicit | ||
| preconditions" — exactly resource assignment shape. | ||
| 3. **Add line item** — `Systematic`: composing Positions onto an | ||
| Order is decomposition of a whole into parts. `Systematic` (also | ||
| Analytical) is the cluster member that builds wholes from parts. | ||
| 4. **Record work activity** — `Investigative`: Activities log what | ||
| happened during work execution; the Exploratory cluster's | ||
| `Investigative` variant is "uncovering and recording observed | ||
| facts" — matches activity logging better than Methodical's | ||
| prescriptive shape. | ||
| 5. **Attach picture** — `Precise`: pictures are visual evidence; | ||
| `Precise` (Analytical) emphasises lossless capture, which is the | ||
| correct disposition for photo documentation. | ||
| 6. **Audit history** — `Reflective`: HistoryEntry is metacognition | ||
| over the Order's own past — a reading-back of state transitions. | ||
| The Meta cluster's `Reflective` variant fires when the system | ||
| reasons about its own previous decisions. | ||
| 7. **Reference catalogue article** — `Analytical`: catalog lookups | ||
| are pure joins. The Analytical cluster's namesake `Analytical` | ||
| variant dispatches the standard join cost model. | ||
| 8. **Authenticate portal user** — `Critical`: every portal login is | ||
| a gating decision; `Critical` (Analytical) is the cluster member | ||
| that fires on yes/no security predicates and surfaces failure | ||
| immediately. | ||
| 9. **Custody password vault** — `Sovereign`: vault custody is a | ||
| final-authority operation — there is no further appeal once the | ||
| Customer accepts custody. `Sovereign` (Meta) is the cluster | ||
| member that owns the buck-stops-here disposition. | ||
| 10. **Log billable time** — `Concise`: time entry is a one-shot | ||
| commit with no narrative; the Direct cluster's `Concise` variant | ||
| emphasises minimal payload. Distinct from `Pragmatic` (Issue | ||
| order) by virtue of being information-thin rather than | ||
| action-thin. | ||
| 11. **Record vehicle trip** — `Logical`: a Fahrtenbuch (logbook) | ||
| entry is a structured sequence (start → route → end) with | ||
| business-vs-private flag. `Logical` (Analytical) is the | ||
| sequential-reasoning cluster member that models "this leads to | ||
| that" routing. | ||
| 12. **Partition by tenant** — `Frank`: every multi-tenant entity | ||
| must declare its tenant. `Frank` (Direct) is the cluster member | ||
| that asserts assignment without deliberation — exactly the | ||
| shape of mandatory partitioning at row creation. | ||
|
|
||
| ## Confidence / corrections (append below) | ||
|
|
||
| - **2026-05-07 (initial publication):** rows 1-12 are the closest | ||
| cluster picks given the 36-variant taxonomy in | ||
| `lance_graph_contract::thinking`. None has been validated against | ||
| real dispatch traces; treat them as **CONJECTURE** until a | ||
| reasoning probe confirms the cluster choice survives a real | ||
| workload. The cluster (column 4) is the more durable claim; the | ||
| specific variant within the cluster (column 3) is the more | ||
| fragile one. | ||
|
|
||
| ## Cross-references | ||
|
|
||
| - `.claude/plans/palantir-parity-cascade-v2.md` §"Business Logic ↔ | ||
| Thinking-style ↔ OGIT (the third triangle)" — the architectural | ||
| framing this doc fills in. | ||
| - `.claude/plans/ogit-cascade-supabase-callcenter-v1.md` Pillar 1 — | ||
| OGIT as the universal SPO-G lingua franca; this doc is the | ||
| routing table on top. | ||
| - `crates/lance-graph-contract/src/thinking.rs` — the canonical 36 | ||
| ThinkingStyle variants in 6 clusters (Analytical 0..5, | ||
| Creative 6..11, Empathic 12..17, Direct 18..23, Exploratory | ||
| 24..29, Meta 30..35). | ||
| - `OGIT/NTO/WorkOrder/verbs/*.ttl` — the 12 verb TTL files cited | ||
| per row. | ||
| - `crewai-rust` agent dispatch + `n8n-rs` workflow routing — the | ||
| consumers that read this routing table. | ||
|
|
||
| ## Out of scope (this batch) | ||
|
|
||
| - **Healthcare / SMB / CallCenter namespaces** — populate in v3 | ||
| (after the 12-row WorkOrder pattern is validated). | ||
| - **Verb-on-verb composition** (e.g. "Issue order then Assign | ||
| user") — currently covered by `UnifiedStep.depends_on` per | ||
| D-PARITY-V2-6 (LF-12 Pipeline DAG), not by this routing table. | ||
| - **Field modulation per operation** — `FieldModulation` already | ||
| travels with `ThinkingStyle`; per-operation overrides would be a | ||
| separate column in this table only if dispatch traces show the | ||
| default modulation is wrong. |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For Healthcare/Medical rows this still selects the default MUL profile, because
row.ontology_context_id()is always0for registry-created rows:RegistryState::appendbuildsSchemaPtr::new(...)and the onlywith_context_iduses in the repo are tests. As a result the newly addedMEDICAL/CALLCENTERthresholds are never reached in real dispatches even whenBindSpace.entity_typeresolves a row.Useful? React with 👍 / 👎.