Benjamin Admin
978052b5a2
fix(onboarding): decouple partial/indicative signals from detected — partial no longer removes a question
...
Fix B of the pre-#59 semantic correction. The Silent Pass had only TWO effective states though the data
carries three: a `detected` mapping (a concrete artifact) AND a `partial` mapping (an indicative signal,
e.g. a CI pipeline -> secure-development-lifecycle) both flowed through capability_ids() and were fed to
the Advisor as already-present — so a weak indication silently removed a question, exactly the Welt-1/
Welt-2 transparency we want to keep.
Now three distinct states:
- detected -> reduces the delta immediately (auto_detected, not asked). [unchanged]
- partial -> raises assumption strength but does NOT replace the question (surfaced as `indications`,
the capability stays in the delta and is still asked).
- requirement-> describes a target, never the present state (already handled by Fix A's kind split).
Changes (data + thin wiring, no new architecture):
- SilentIntakeResult.capability_ids() returns only relationship==detected; new indicative_capability_ids()
returns the partial ones.
- advisor_start() gains indicative_capabilities (NOT fed into the profile) and surfaces result.indications
= indicative ∩ required − auto_detected.
- AdvisorResult / AdvisorResponse gain `indications` (additive, contract-safe); the service passes the
indicative ids through.
Tests: a partial CI signal is indicative-not-detected and does NOT shrink the delta; end-to-end it appears
in `indications`, not `auto_detected`, and the gap is still asked. 28 onboarding tests pass, mypy --strict
clean on the onboarding modules, demo runs, check-loc 0. Runtime effect -> deploy + smoke.
2026-06-28 16:02:35 +02:00
..
2026-06-22 17:37:48 +02:00
2026-06-11 14:31:41 +02:00
2026-05-21 18:49:10 +02:00
2026-06-08 11:35:55 +02:00
2026-06-24 20:15:45 +02:00
2026-02-11 23:47:28 +01:00
2026-05-11 22:52:26 +02:00
2026-06-07 00:42:16 +02:00
2026-04-29 15:27:51 +02:00
2026-05-10 22:56:09 +02:00
2026-06-06 21:19:49 +02:00
2026-03-07 19:00:33 +01:00
2026-06-07 00:15:08 +02:00
2026-06-06 22:20:25 +02:00
2026-03-21 11:49:43 +01:00
2026-03-23 17:15:45 +01:00
2026-04-07 13:18:29 +02:00
2026-05-21 23:36:45 +02:00
2026-06-13 15:57:07 +02:00
2026-04-07 18:39:40 +02:00
2026-04-07 18:39:40 +02:00
2026-06-07 23:48:04 +02:00
2026-04-07 13:18:29 +02:00
2026-05-03 21:42:50 +02:00
2026-04-07 18:52:31 +02:00
2026-05-03 20:58:06 +02:00
2026-05-12 14:43:13 +02:00
2026-05-21 17:27:55 +02:00
2026-05-12 18:18:50 +02:00
2026-05-02 19:52:04 +02:00
2026-05-22 08:24:46 +02:00
2026-03-24 08:48:58 +01:00
2026-05-22 09:23:37 +02:00
2026-05-18 23:48:34 +02:00
2026-06-13 16:38:38 +02:00
2026-05-19 12:22:05 +02:00
2026-05-02 21:18:10 +02:00
2026-06-06 23:25:20 +02:00
2026-06-07 18:41:54 +02:00
2026-05-22 08:57:02 +02:00
2026-06-12 23:03:28 +02:00
2026-03-21 11:49:43 +01:00
2026-06-06 21:19:49 +02:00
2026-06-07 08:26:14 +02:00
2026-05-10 22:56:09 +02:00
2026-05-19 14:31:13 +02:00
2026-05-21 21:30:02 +02:00
2026-05-18 23:48:34 +02:00
2026-05-22 08:38:08 +02:00
2026-06-06 14:47:25 +02:00
2026-03-17 09:00:37 +01:00
2026-03-24 07:06:38 +01:00
2026-04-10 11:23:43 +02:00
2026-03-23 17:15:45 +01:00
2026-03-23 17:15:45 +01:00
2026-06-16 16:35:38 +02:00
2026-05-21 06:28:25 +02:00
2026-06-08 08:20:39 +02:00
2026-05-21 23:36:45 +02:00
2026-06-07 23:48:04 +02:00
2026-06-11 21:00:50 +02:00
2026-05-18 23:48:34 +02:00
2026-05-18 18:30:08 +02:00
2026-05-18 23:48:34 +02:00
2026-05-18 23:48:34 +02:00
2026-06-11 21:26:47 +02:00
2026-06-08 08:20:39 +02:00
2026-05-21 15:47:11 +02:00
2026-05-18 18:30:08 +02:00
2026-05-22 00:24:07 +02:00
2026-06-07 23:48:04 +02:00
2026-05-19 01:01:48 +02:00
2026-06-06 23:35:33 +02:00
2026-06-06 23:35:33 +02:00
2026-06-11 20:45:18 +02:00
2026-05-02 20:06:57 +02:00
2026-05-21 18:32:07 +02:00
2026-05-22 00:24:07 +02:00
2026-05-22 19:17:21 +02:00
2026-06-14 21:49:22 +02:00
2026-06-16 18:48:52 +02:00
2026-06-14 12:37:22 +02:00
2026-06-17 07:39:39 +02:00
2026-06-17 13:17:51 +02:00
2026-06-17 21:21:28 +02:00
2026-06-17 21:21:28 +02:00
2026-06-14 08:21:56 +02:00
2026-06-16 10:10:45 +02:00
2026-06-14 08:59:41 +02:00
2026-06-13 21:24:53 +02:00
2026-06-14 09:27:09 +02:00
2026-06-17 13:17:51 +02:00
2026-06-06 21:19:49 +02:00
2026-06-11 15:42:16 +02:00
2026-06-08 16:39:33 +02:00
2026-03-28 17:24:19 +01:00
2026-05-18 18:30:08 +02:00
2026-05-21 18:58:32 +02:00
2026-06-06 21:19:49 +02:00
2026-05-21 16:45:12 +02:00
2026-05-21 18:58:32 +02:00
2026-05-04 23:22:30 +02:00
2026-05-04 23:22:30 +02:00
2026-04-29 19:36:46 +02:00
2026-04-10 11:23:43 +02:00
2026-04-10 11:23:43 +02:00
2026-05-07 12:37:03 +02:00
2026-05-11 23:39:26 +02:00
2026-05-03 23:38:32 +02:00
2026-05-03 23:15:25 +02:00
2026-04-10 11:23:43 +02:00
2026-05-02 19:52:04 +02:00
2026-05-03 23:38:32 +02:00
2026-04-08 22:39:19 +02:00
2026-04-08 22:39:19 +02:00
2026-04-08 21:59:03 +02:00
2026-06-06 14:47:25 +02:00
2026-04-07 13:18:29 +02:00
2026-05-18 18:30:08 +02:00
2026-05-21 16:20:19 +02:00
2026-06-08 16:39:33 +02:00
2026-03-23 12:11:55 +01:00
2026-05-21 20:21:28 +02:00
2026-06-07 17:51:17 +02:00
2026-04-09 08:35:57 +02:00
2026-04-09 08:35:57 +02:00
2026-05-21 16:43:15 +02:00
2026-05-22 08:38:08 +02:00
2026-05-02 08:37:51 +02:00
2026-04-10 11:23:43 +02:00
2026-04-10 11:23:43 +02:00
2026-04-10 11:23:43 +02:00
2026-04-10 11:23:43 +02:00
2026-05-21 17:31:37 +02:00
2026-06-09 12:33:34 +02:00
2026-06-09 12:33:34 +02:00
2026-05-04 23:22:30 +02:00
2026-04-09 08:47:56 +02:00
2026-06-08 09:32:25 +02:00
2026-03-12 19:55:06 +01:00
2026-06-22 17:37:48 +02:00
2026-03-25 23:25:14 +01:00
2026-05-21 17:06:48 +02:00
2026-05-04 23:22:30 +02:00
2026-05-22 11:51:03 +02:00
2026-05-18 18:30:08 +02:00
2026-05-22 08:57:02 +02:00
2026-05-22 09:40:11 +02:00
2026-05-17 14:06:28 +02:00
2026-05-17 14:06:28 +02:00
2026-06-08 10:04:14 +02:00
2026-03-23 17:15:45 +01:00
2026-04-10 11:23:43 +02:00
2026-04-10 11:23:43 +02:00
2026-06-24 12:28:03 +02:00
2026-06-24 12:43:42 +02:00
2026-03-21 11:49:43 +01:00
2026-06-24 13:46:21 +02:00
2026-06-28 16:02:35 +02:00
2026-03-17 09:00:37 +01:00
2026-02-11 23:47:28 +01:00
2026-03-17 09:00:37 +01:00
2026-06-10 23:44:01 +02:00
2026-03-21 11:49:43 +01:00
2026-06-09 11:30:16 +02:00
2026-05-22 08:24:46 +02:00
2026-06-06 23:13:50 +02:00
2026-04-10 11:23:43 +02:00
2026-04-07 13:18:29 +02:00
2026-04-29 11:36:24 +02:00
2026-04-07 13:18:29 +02:00
2026-03-21 11:49:43 +01:00
2026-06-06 21:19:49 +02:00
2026-06-07 08:50:46 +02:00
2026-05-22 08:38:08 +02:00
2026-05-21 16:38:25 +02:00
2026-06-18 12:05:05 +02:00
2026-04-07 20:03:16 +02:00
2026-05-17 01:53:09 +02:00
2026-03-07 19:00:33 +01:00
2026-05-13 16:00:15 +02:00
2026-05-04 23:34:00 +02:00
2026-03-12 19:55:06 +01:00
2026-06-06 14:47:25 +02:00
2026-04-07 19:58:02 +02:00
2026-05-04 07:01:37 +02:00
2026-05-22 19:00:27 +02:00
2026-05-18 23:48:34 +02:00
2026-06-06 23:13:50 +02:00
2026-04-07 19:42:17 +02:00
2026-05-03 22:03:25 +02:00
2026-06-06 21:42:27 +02:00
2026-05-18 23:48:34 +02:00
2026-05-18 23:48:34 +02:00
2026-06-07 00:23:25 +02:00
2026-06-17 13:17:51 +02:00
2026-03-26 11:13:37 +01:00
2026-05-12 23:14:54 +02:00
2026-05-12 23:24:12 +02:00
2026-05-02 19:52:04 +02:00
2026-05-17 13:15:40 +02:00
2026-04-10 11:23:43 +02:00
2026-04-10 11:23:43 +02:00
2026-04-10 11:23:43 +02:00
2026-06-06 21:19:49 +02:00
2026-05-18 18:30:08 +02:00
2026-05-21 06:28:25 +02:00
2026-05-22 21:55:23 +02:00
2026-05-21 23:36:45 +02:00
2026-05-21 08:01:27 +02:00
2026-05-18 18:30:08 +02:00
2026-05-12 18:18:50 +02:00
2026-04-07 19:50:40 +02:00
2026-05-02 08:26:59 +02:00
2026-05-11 11:44:20 +02:00
2026-06-07 18:41:54 +02:00