Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@
**Status:** Accepted
**Date:** 2026-08-26
**Extends:** [ADR 0004](0004-knowledge-graph-ontology.md), [ADR 0145](0145-psychometric-channel-weight-estimation.md), [ADR 0207](0207-repository-case-ontology-namespace-canonical.md), [ADR 0232](0232-worker-function-taxonomy-in-the-published-ontology.md)
<<<<<<< HEAD
=======
**Superseded in part by:** [ADR 0252](0252-complete-2018-soc-hierarchy.md), which expands the major-group-only scheme into the complete 2018 SOC hierarchy.
>>>>>>> origin/feat/onet-rating-occupation-filter

## Context

Industrial and organizational psychology classifies work twice: once by
Expand Down
145 changes: 28 additions & 117 deletions docs/product-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,66 +84,11 @@ and lookup round-trip isolation are enforced by
`tests/test_worker_function_taxonomy.py`; `tests/test_ontology.py`
continues to pass unchanged.

### PRD-FR-2B — Evidence-bound occupational constructs

- Keep cognitive abilities, work styles, work activities, affective
reactions, and performance behaviors as non-equivalent construct classes
(ADR 0248). FJA worker functions remain separate.
- Reuse official external identifiers and source-published relationships;
never infer a DPT-to-psychology crosswalk or relabel work style as affect.
- Bind a construct to record content only through a provenance-bearing,
evidence-cited assertion. Do not promote record evidence to a person trait,
score, causal effect, or job requirement.

Acceptance: SHACL rejects incomplete assertions; ontology tests prohibit FJA
equivalence and require exact Post/evidence/PROV statement structure. ADR 0249
adds normalized, semantic-unit-bound persistence and an authorized Post-detail
projection. ADR 0250 synchronizes all official O*NET cognitive-ability,
work-style, and work-activity Content Model elements into that versioned
registry without importing ratings. Search, graph navigation, extraction, and
UI remain unavailable until their separate ADR acceptance. ADR 0253 adds
catalog-bound semantic-unit extraction through contextual-orchestrator's
multi-agent conduct path; exact offered IRIs and verbatim spans are required,
and a digest-bound run record distinguishes a supported empty result from an
unavailable provider. ADR 0254 adds the authorized Post-detail evidence review
surface and honest complete, processing, and unavailable states. ADR 0255
projects assertion-backed constructs into the existing ABAC-filtered ontology
neighborhood without duplicating graph storage or promoting truth. ADR 0257
adds authorized catalog-label search: reviewers type an official O*NET label
and open the earliest visible supporting Post. Constructs without visible
evidence stay undisclosed. Occupation ratings remain unavailable.

### PRD-FR-2C — FJA I/O-Psychology cognitive, affective & behavioral semantic layer

- Project the DOT/FJA Data/People/Things worker functions into their
grounded nomological network of cognitive, affective, and behavioral
I/O-Psychology constructs (ADR 0251): information processing, mental
workload, executive functioning, and appraisal; emotional labor,
burnout, engagement, psychological safety, and commitment; task,
citizenship, counterproductive, safety, proactive, adaptive, and
withdrawal behavior.
- Declare each construct with its psychological dimension and an APA 7th
literature anchor; keep `:CognitiveConstruct` / `:AffectiveConstruct` /
`:BehavioralConstruct` disjoint and validate with SHACL.
- Keep FJA-derived constructs distinct from ADR 0248's evidence-bound
O*NET-style occupational construct classes: no crosswalk, equivalence,
or implied fit is asserted.
- Carry no numeric weight: the layer is a semantic taxonomy, never a
calibrated measurement (ADR 0145 governs estimation).

Acceptance: `tests/test_iopsy_taxonomy.py` enforces construct coverage,
literature-anchored metadata, fail-closed lookups, per-function profile
completeness, and composite-job aggregation; `tests/test_ontology_shapes.py`
validates the disjoint SHACL shapes.



### PRD-FR-2B-2 — Occupational classification and worker-characteristic taxonomy
### PRD-FR-2L — Occupational classification and worker-characteristic taxonomy

- Publish the 23 major groups of the 2018 Standard Occupational
Classification (the O*NET job-family grouping) with official titles
and codes verbatim, plus the four O*NET 31.0 job-zone categories with
published names and source values 2 through 5 (ADR 0245).
Classification and the four O*NET 31.0 job-zone categories with exact
published names, codes, and source values (ADR 0245).
- Publish the worker-characteristic families that work-related
cognition, affect, and behavior resolve into: Fleishman's four ability
domains, Holland's six RIASEC interest types with the published
Expand All @@ -163,75 +108,42 @@ Acceptance: completeness counts, verbatim titles, closed RIASEC
vocabulary, exact published adjacency pairs, deterministic ordering,
canonical namespace, and lookup round-trip isolation are enforced by
`tests/test_io_taxonomy.py`; `tests/test_ontology.py` continues to pass
unchanged.

### PRD-FR-2A — Worker-function taxonomy

- Publish the DOT/FJA Data/People/Things worker functions (24 concepts,
official definitions verbatim) in the canonical ontology namespace
(ADR 0232), each with its definitional ordinal rank. Do not infer a
DOT-to-O*NET or Fleishman crosswalk that the authorities do not publish.
- Expose the taxonomy through a deterministic application read model with
fail-closed lookups; an absent function is an honest unknown.
- Carry no numeric weight from the taxonomy: ranks are scale positions,
never calibrated weights.
unchanged. Minor, broad, and detailed SOC levels and the complete O*NET
Content Model remain unavailable until a governing ADR accepts their pinned
source and publication contract.

Acceptance: completeness, full verbatim definitions, deterministic ordering,
and lookup round-trip isolation are enforced by
`tests/test_worker_function_taxonomy.py`; `tests/test_ontology.py`
continues to pass unchanged.

### PRD-FR-2B — Occupational classification and worker-characteristic taxonomy

- Publish all four levels of the 2018 Standard Occupational Classification:
23 major groups, 98 minor groups, 459 broad occupations, and 867 detailed
occupations with exact source parents, titles, and codes (ADR 0252), plus
the four O*NET 31.0 job-zone categories with
published names and source values 2 through 5 (ADR 0245).
- Publish the worker-characteristic families that work-related
cognition, affect, and behavior resolve into: Fleishman's four ability
domains, Holland's six RIASEC interest types with the published
hexagonal adjacency relation, the six explicitly legacy O*NET work-value
clusters, and
the seven higher-order dimensions of the revised O*NET Work Styles
structure.
- Publish all 3,006 O*NET 31.0 Content Model Reference elements with exact
identifiers, names, descriptions, and source-defined outline parents
(ADR 0264). Treat the six roots and 18 second-level branches as navigation
classes, never occupation ratings, person traits, scores, or weights.
- Declare typed derivation properties from classifications to
characteristics but assert no instance binding; binding requires a
versioned released source profile imported with provenance in its own
decision.
- Expose everything through a deterministic application read model with
fail-closed lookups; carry no numeric importance or level rating from
any occupational profile.

Acceptance: completeness counts, verbatim titles, closed RIASEC
vocabulary, exact published adjacency pairs, deterministic ordering,
canonical namespace, and lookup round-trip isolation are enforced by
`tests/test_io_taxonomy.py`, `tests/test_soc_2018_hierarchy.py`, and
`tests/test_onet_content_model.py`;
`tests/test_ontology.py` continues to pass unchanged.
### PRD-FR-2C — Evidence-bound occupational constructs
### PRD-FR-2B — Evidence-bound occupational constructs

- Keep cognitive abilities, work styles, work activities, affective
reactions, and performance behaviors as non-equivalent construct classes
(ADR 0248). FJA worker functions remain separate.
- Reuse official external identifiers and source-published relationships;
never infer a DPT-to-psychology crosswalk or relabel work style as affect.
- Publish the eight O*NET 31.0 Ability, Essential Skill, Transferable Skill,
and Work Style link tables to Work Activities and Work Context as 1,417
directed, assertion-level provenance-bearing relations (ADR 0256). Treat
relevance as neither a causal effect nor a numeric weight.
- Bind a construct to record content only through a provenance-bearing,
evidence-cited assertion. Do not promote record evidence to a person trait,
score, causal effect, or job requirement.

Acceptance: SHACL rejects incomplete record assertions; ontology tests
prohibit FJA equivalence, require exact Post/evidence/PROV statement structure,
and reproduce every pinned O*NET linkage with its exact source table. Runtime
persistence and UI remain unavailable until their separate ADR acceptance.
prohibit FJA equivalence and require exact Post/evidence/PROV statement
structure. ADRs 0249, 0250, 0253, and 0255 govern normalized persistence,
the pinned catalog, contextual-orchestrator extraction, and graph projection.
The review UI remains unavailable without its own accepted ADR. Unsupported
O*NET linkage tables remain unavailable; Voice combination ADR 0256 is not
occupational authority.

### PRD-FR-2C — FJA I/O-Psychology semantic layer

- Project DOT/FJA Data/People/Things worker functions into the grounded
cognitive, affective, and behavioral I/O-Psychology construct taxonomy
accepted by ADR 0251.
- Keep cognitive, affective, and behavioral classes disjoint, literature
anchored, and distinct from evidence-bound O*NET occupational constructs.
- Carry no numeric weight or inferred crosswalk; ADR 0145 continues to govern
measurement availability.

Acceptance: `tests/test_iopsy_taxonomy.py` enforces construct coverage,
literature metadata, fail-closed lookup, per-function profiles, and composite
job aggregation; `tests/test_ontology_shapes.py` validates disjoint shapes.

### PRD-FR-2D — Occupation-rating source observations

Expand Down Expand Up @@ -504,7 +416,6 @@ A release claim requires one exact protected-main head that proves:
- Asynchronous delivery and database-pool isolation: ADR 0204, ADR 0213.
- Knowledge Graph, ontology, and provenance: ADR 0004, ADR 0011, ADR 0065,
ADR 0184, ADR 0207, ADR 0222, ADR 0246, ADR 0256.
ADR 0184, ADR 0207, ADR 0222, ADR 0246.
- Semantic units and retrieval: ADR 0047, ADR 0062, ADR 0102, ADR 0217.
- LLM/model boundary: ADR 0070, ADR 0072, ADR 0076, ADR 0079.
- Measurement: ADR 0003, ADR 0145, ADR 0200, ADR 0205.
Expand All @@ -526,7 +437,7 @@ current boundary until that repository adopts one.
| `ContextualWisdomLab/keyverse` | `docs/PRD.md` | Production OIDC/JWKS/identity control plane; local demo Keycloak is not Keyverse |
| `ContextualWisdomLab/RankWeave` | No standalone PRD; `README.md`, `ARCHITECTURE.md` | Store-agnostic ranking/fusion dependency; caller owns channels and authorization |
| `ContextualWisdomLab/ThreadWeave` | `docs/PRD.md` | Deterministic reference-thread assembly dependency; LineageWeave owns records and persistence |
| `ContextualWisdomLab/DiskSage` | No standalone PRD; `docs/superpowers/specs/2026-07-10-disksage-design.md` | Prospective storage-policy boundary; no current runtime integration |
| `ContextualWisdomLab/disksage` | No standalone PRD; `docs/superpowers/specs/2026-07-10-disksage-design.md` | Prospective storage-policy boundary; no current runtime integration |
| `ContextualWisdomLab/wardnet` | No standalone PRD; `README.md`, `docs/architecture.md` | Prospective gateway/network-policy boundary; no current runtime integration |
| `ContextualWisdomLab/naruon` | Scoped `docs/topic-intelligence/PRD.md` only | Owns observed calendar/email projections; LineageWeave owns commitments and combined display |
| `ContextualWisdomLab/LineageWeave` | This PRD, with ADRs normative | Evidence BI/orchestration, lineage, semantic projection, API, and UI owner |
Loading
Loading