190 lines
6.6 KiB
Markdown
190 lines
6.6 KiB
Markdown
# QPI Contextual Routing Rules
|
|
|
|
Date: 2026-06-17
|
|
|
|
Status: draft rule hardening for `model_library_mvp`
|
|
|
|
## 1. Updated Definition
|
|
|
|
QPI is not a text classifier.
|
|
|
|
QPI judges how a cognitive subject, in a concrete context, frames an expectation-reality gap as `question`, `problem`, `issue`, `mixed`, or `no_call`.
|
|
|
|
The model must therefore inspect:
|
|
|
|
- who the subject is;
|
|
- what responsibility position they occupy;
|
|
- what scenario the gap appears in;
|
|
- what the expected outcome and current reality are;
|
|
- what resources, authority, time scale, and feedback loops are available;
|
|
- whether the frame is stable, provisional, mixed, or changing.
|
|
|
|
## 2. Source Structure
|
|
|
|
QPI currently draws from two non-substitutable source layers:
|
|
|
|
- `article_qpi_contextual_2025_001`: subjectivity, context, expectation-reality gap, dynamic lifecycle, and semantic foundation.
|
|
- `article_qpi_primary_001`: core scarcity, cognitive optics, power-framed misclassification, violent reduction, and malicious inflation.
|
|
|
|
The 2025 article is not obsolete. It supplies the subject-context-dynamic foundation that prevents QPI from becoming a shallow text classifier.
|
|
|
|
## 3. No-Call Gate
|
|
|
|
Return `classification_scope=no_call` when the input is only:
|
|
|
|
- fact lookup;
|
|
- rewrite, polish, or typo correction;
|
|
- translation;
|
|
- direct file or formatting execution;
|
|
- a low-risk instruction where the user explicitly says not to analyze.
|
|
|
|
Exception: if the user explicitly says not to execute literally and asks for analysis of the underlying problem, the no-call gate may be bypassed.
|
|
|
|
## 4. Subject-Context Gate
|
|
|
|
QPI must not produce high-confidence classification without enough context.
|
|
|
|
Rules:
|
|
|
|
- If `subject_position` is missing, `classification_confidence` must not be `high`.
|
|
- If `scenario_context` is missing, `dominant_scarcity` must not be high-confidence.
|
|
- If both subject and scenario are missing, set `is_provisional=true`.
|
|
- If context is insufficient, fill `missing_context` and `recommended_clarifying_questions`.
|
|
|
|
Example:
|
|
|
|
```text
|
|
Input: 如何提高流量?
|
|
```
|
|
|
|
This is not automatically `problem` or `mixed`. It is `insufficient_context` until the subject, responsibility scope, goal, resources, and time scale are known.
|
|
|
|
## 5. Expectation-Reality Gap
|
|
|
|
Every non-no-call QPI output should extract:
|
|
|
|
- expected state;
|
|
- current reality;
|
|
- gap summary.
|
|
|
|
If any part is unknown, write `unknown` instead of inventing context.
|
|
|
|
## 6. Mixed Versus Multi-Perspective
|
|
|
|
QPI must distinguish two different kinds of complexity.
|
|
|
|
`intra_frame_mixed`:
|
|
|
|
Same subject, same scenario, same stage. Multiple scarcities coexist inside one problem frame.
|
|
|
|
Example:
|
|
|
|
```text
|
|
我是集团营销负责人,既缺流量增长方法,也担心销售、库存、客服和激励机制跟不上。
|
|
```
|
|
|
|
`inter_viewpoint_divergence`:
|
|
|
|
The same surface input would be framed differently by different subjects or responsibility positions.
|
|
|
|
Example:
|
|
|
|
```text
|
|
如何提高流量?
|
|
```
|
|
|
|
For a student this may be `question`; for a marketing manager this may be `problem`; for a group marketing director this may be `issue`.
|
|
|
|
Do not collapse `inter_viewpoint_divergence` into `mixed`.
|
|
|
|
## 7. Scarcity Profile
|
|
|
|
Use three scarcity channels:
|
|
|
|
- `data_scarcity`: facts, concepts, examples, source location, or basic knowledge are missing.
|
|
- `path_or_resource_scarcity`: goal is clear, but method, resource, decomposition, or implementation path is missing.
|
|
- `consensus_or_order_scarcity`: success depends on alignment, incentives, governance, stability, authority, or system order.
|
|
|
|
Dominant scarcity rules:
|
|
|
|
- If exactly one channel is `high`, use its corresponding dominant scarcity.
|
|
- If two or three channels are `high` for the same subject and scenario, use `mixed`.
|
|
- If evidence is insufficient, use `unknown`.
|
|
- For `mixed` or `low` confidence, `evidence_gap` must be non-empty.
|
|
|
|
## 8. Issue As Governance Load
|
|
|
|
`issue` does not require a multi-person organization.
|
|
|
|
Raise issue weight when any of these are present:
|
|
|
|
- success criteria are not unique, and multiple standards are reasonable;
|
|
- the task cannot be solved once and closed;
|
|
- the action will change the future problem structure;
|
|
- multiple valid goals require ongoing tradeoff;
|
|
- state continuity, role boundaries, invocation authenticity, audit trail, or downstream reuse matters;
|
|
- the validator is part of the system being designed;
|
|
- local truth can masquerade as global structure;
|
|
- the next step depends on human confirmation, authority, or boundary protocol.
|
|
|
|
This covers personal workflow redesign cases where the owner, future owner, agents, source materials, token budget, audit boundary, and downstream projects behave like proxy stakeholders.
|
|
|
|
## 9. Misframing Risks
|
|
|
|
QPI must identify these risks when present:
|
|
|
|
- `violent_reduction`: compressing an issue into a personal execution problem.
|
|
- `malicious_inflation`: inflating a concrete problem into an untouchable issue.
|
|
- `tool_solutionism`: treating subject-context-governance work as mere tool unfamiliarity.
|
|
- `premature_classification`: assigning Q/P/I before subject and scenario are known.
|
|
|
|
## 10. Routing Output
|
|
|
|
The required QPI runtime output fields are declared in `models/qpi.model.json` under `structured_output_contract` and enforced by `scripts/validate_model_library.py`.
|
|
|
|
Do not write `draft-callable` into model `status`. QPI remains:
|
|
|
|
```json
|
|
{
|
|
"status": "draft",
|
|
"stability_level": "B",
|
|
"regression_status": "pending"
|
|
}
|
|
```
|
|
|
|
## 11. Raw Case Preprocessing
|
|
|
|
Owner-provided raw cases should not be compressed into short classification prompts.
|
|
|
|
Each case digest should preserve:
|
|
|
|
- `subject_position`;
|
|
- `responsibility_scope`;
|
|
- `scenario_context`;
|
|
- `experience_level`;
|
|
- `goal`;
|
|
- `expected_outcome`;
|
|
- `current_reality`;
|
|
- `hard_feedback_availability`;
|
|
- `success_criteria`;
|
|
- `proxy_stakeholders`;
|
|
- `dynamic_shift`;
|
|
- `possible_qpi_by_viewpoint`;
|
|
- `owner_expected_judgment`;
|
|
- `codex_candidate_judgment`;
|
|
- `owner_review_needed`.
|
|
|
|
Round 03 completed the first owner-reviewed QPI case promotion into:
|
|
|
|
- `reports/model_case_preprocessing/qpi/round-01/*.cases.md`;
|
|
- `selector/qpi_case_digests.json`;
|
|
- `selector/selector_calibration_inputs.json`;
|
|
- `tests/qpi.regression.json`.
|
|
|
|
Round 03.1 digest field rules:
|
|
|
|
- Use `misclassification_risk`, not `misframing_risks`, to match the QPI structured output contract.
|
|
- Use `qpi_complexity_pattern`, not `mixed_or_multi_perspective`, for judgment-structure complexity.
|
|
- `qpi_complexity_pattern=intra_frame_mixed` does not require `classification=mixed`; final routing classification and judgment complexity are separate.
|
|
- If `classification_scope=multi_perspective` or `qpi_complexity_pattern=inter_viewpoint_divergence`, the digest must include `classification_by_viewpoint` or `viewpoint_summary`.
|