Jesse_Chen
ef1bd6dfa9
feat(report): give the writer a static interpretation guide
...
The report writer had no interpretation methodology at all: a local agent
calling the jyotish skill can read the reference library, the report model
could read nothing. It could only restate the bundle.
- frontend/src/lib/report-interpretation-packs/ holds one general pack and
one pack per report theme, distilled from the in-repo reference guides.
They constrain wording and reasoning discipline (term modernisation,
how to talk about relative strength and SAV scores, the reasoning errors
to avoid, the banned phrasings) and never assert a chart fact.
- The general pack rides INSIDE the cached system message so the cached
prefix stays byte-identical across sections; the chapter pack follows it
and summary calls get the general pack only.
- Skill jyotish-personal-report goes to 1.1.0 (1.0.0 deprecated): the
contract now names interpretiveFacts and themeNarrativeSeeds as a
bounded fact layer and states that the knowledge pack is not a fact
source and cannot raise certainty.
- Telemetry records interpretiveFactCount and knowledgePackCharacters as
numbers only; the counter never throws so telemetry cannot break a run.
Tests lock every theme resolving a pack, the 3,000 character budget, a
forbidden-substring scan (paths, module names, vendor names, artefact
names), the byte-stable cache prefix, and that no evidence id or date
appears in the static content.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_016P5RoqzmUQEbeC2qjAkeGr
2026-09-01 20:35:02 +00:00
..
2026-08-15 07:06:19 +08:00
2026-08-18 19:30:13 +08:00
2026-08-22 20:48:01 +08:00
2026-08-30 16:32:58 +08:00
2026-08-16 14:07:57 +08:00
2026-08-17 13:14:15 +08:00
2026-08-18 17:28:22 +08:00
2026-08-31 19:57:08 +08:00
2026-08-07 18:24:16 +08:00
2026-08-08 01:38:50 +08:00
2026-08-16 17:55:15 +08:00
2026-08-08 17:29:17 +08:00
2026-08-17 11:41:35 +08:00
2026-08-16 17:55:15 +08:00
2026-08-06 20:15:50 +08:00
2026-08-18 17:28:22 +08:00
2026-08-31 03:06:15 +08:00
2026-08-16 17:55:15 +08:00
2026-08-25 19:31:14 +08:00
2026-08-23 17:02:06 +08:00
2026-08-15 07:06:19 +08:00
2026-08-31 09:59:53 +08:00
2026-08-19 19:40:50 +08:00
2026-08-22 09:10:47 +08:00
2026-08-27 13:59:38 +08:00
2026-09-01 19:51:19 +08:00
2026-08-07 12:07:57 +08:00
2026-07-30 14:38:17 +08:00
2026-09-01 22:58:02 +08:00
2026-07-20 14:58:57 +08:00
2026-07-19 14:48:02 +08:00
2026-07-22 17:39:11 +08:00
2026-07-21 16:06:30 +08:00
2026-07-19 10:56:09 +08:00
2026-07-20 14:45:08 +08:00
2026-09-01 22:58:02 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 08:25:33 +08:00
2026-07-19 10:12:18 +08:00
2026-07-21 15:50:02 +08:00
2026-07-19 04:38:20 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 04:57:43 +08:00
2026-07-19 04:38:20 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 09:12:45 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 09:24:23 +08:00
2026-07-19 07:50:23 +08:00
2026-07-19 07:50:23 +08:00
2026-07-19 09:12:45 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 08:25:33 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 22:23:29 +08:00
2026-07-19 09:45:32 +08:00
2026-07-19 11:04:25 +08:00
2026-07-19 14:51:06 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-20 14:58:57 +08:00
2026-07-20 11:44:56 +08:00
2026-08-17 22:13:03 +08:00
2026-08-22 20:48:01 +08:00
2026-07-18 18:40:23 +08:00
2026-07-27 11:29:12 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-25 01:17:14 +08:00
2026-07-29 17:49:19 +08:00
2026-07-19 06:42:17 +08:00
2026-07-20 14:58:57 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 07:20:40 +08:00
2026-07-19 06:42:17 +08:00
2026-07-19 14:48:02 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 07:20:40 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-08-15 16:25:39 +08:00
2026-07-18 18:40:23 +08:00
2026-07-21 16:06:30 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 10:12:18 +08:00
2026-07-22 09:43:11 +08:00
2026-09-01 22:58:02 +08:00
2026-09-01 22:58:02 +08:00
2026-09-01 21:38:21 +08:00
2026-07-20 16:52:53 +08:00
2026-08-19 15:29:04 +08:00
2026-08-23 01:49:05 +08:00
2026-08-19 19:40:50 +08:00
2026-09-01 22:58:02 +08:00
2026-09-02 04:34:14 +08:00
2026-09-01 22:58:02 +08:00
2026-07-21 11:58:42 +08:00
2026-09-02 04:34:14 +08:00
2026-09-01 22:58:02 +08:00
2026-09-02 04:34:14 +08:00
2026-07-22 02:35:31 +08:00
2026-08-29 05:40:29 +00:00
2026-08-30 11:19:50 +08:00
2026-09-01 22:58:02 +08:00
2026-08-31 15:16:23 +08:00
2026-07-15 22:23:17 +08:00
2026-08-23 14:38:50 +08:00
2026-07-17 11:56:29 +08:00
2026-09-02 04:34:14 +08:00
2026-08-20 21:42:47 +08:00
2026-08-15 06:04:23 +08:00
2026-08-15 06:04:23 +08:00
2026-09-01 22:58:02 +08:00
2026-08-22 09:10:47 +08:00
2026-08-19 10:25:55 +08:00
2026-07-17 14:09:57 +08:00
2026-08-21 15:29:58 +08:00
2026-09-01 22:58:02 +08:00
2026-08-18 15:44:19 +08:00
2026-07-22 10:50:23 +08:00
2026-08-22 20:48:01 +08:00
2026-08-23 17:02:06 +08:00
2026-09-01 19:51:19 +08:00
2026-08-19 19:08:17 +08:00
2026-09-01 19:51:19 +08:00
2026-08-23 01:49:05 +08:00
2026-08-23 14:38:50 +08:00
2026-08-22 21:19:00 +08:00
2026-09-01 19:51:19 +08:00
2026-08-18 23:30:36 +08:00
2026-08-17 13:03:57 +08:00
2026-08-17 13:03:57 +08:00
2026-09-01 22:58:02 +08:00
2026-08-30 11:19:50 +08:00
2026-08-11 17:57:40 +08:00
2026-08-11 00:10:24 +08:00
2026-08-07 12:08:58 +08:00
2026-08-06 20:15:50 +08:00
2026-08-16 18:15:28 +08:00
2026-08-31 20:49:59 +08:00
2026-08-18 17:28:22 +08:00
2026-08-06 20:15:50 +08:00
2026-07-21 16:03:53 +08:00
2026-09-01 21:38:21 +08:00
2026-08-15 05:10:37 +08:00
2026-08-30 22:59:17 +08:00
2026-08-07 19:05:01 +08:00
2026-08-10 10:49:25 +08:00
2026-08-11 16:22:02 +08:00
2026-08-22 20:48:01 +08:00
2026-08-17 14:16:05 +08:00
2026-08-05 11:13:34 +08:00
2026-08-16 14:07:57 +08:00
2026-09-02 04:34:14 +08:00
2026-08-31 19:57:08 +08:00
2026-08-15 23:55:57 +08:00
2026-08-19 19:39:01 +08:00
2026-08-20 21:42:47 +08:00
2026-08-26 20:21:49 +08:00
2026-08-18 17:28:22 +08:00
2026-08-29 03:39:43 +08:00
2026-09-02 04:34:14 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-07-21 17:52:25 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-08-06 20:15:50 +08:00
2026-07-21 17:52:25 +08:00
2026-08-11 16:22:02 +08:00
2026-08-07 12:55:32 +08:00
2026-08-11 19:46:11 +08:00
2026-08-22 20:46:30 +08:00
2026-08-29 12:01:50 +00:00
2026-08-31 10:00:03 +08:00
2026-08-17 13:14:15 +08:00
2026-09-01 22:58:02 +08:00
2026-08-05 11:13:34 +08:00
2026-08-17 18:42:54 +08:00
2026-08-07 20:03:20 +08:00
2026-08-08 17:29:17 +08:00
2026-08-08 17:29:17 +08:00
2026-08-22 20:48:01 +08:00
2026-08-18 15:44:19 +08:00
2026-07-18 18:40:23 +08:00
2026-09-01 22:58:02 +08:00
2026-08-22 20:48:01 +08:00
2026-08-18 15:44:19 +08:00
2026-07-22 15:51:54 +08:00
2026-09-01 20:35:02 +00:00
2026-08-31 04:08:20 +08:00
2026-08-15 05:10:37 +08:00
2026-08-09 00:54:55 +08:00
2026-08-29 11:22:39 +00:00
2026-08-15 05:10:37 +08:00
2026-09-01 20:35:02 +00:00
2026-09-01 20:35:02 +00:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-09-01 20:35:02 +00:00
2026-08-15 05:10:37 +08:00
2026-08-30 11:29:58 +00:00
2026-08-18 17:28:22 +08:00
2026-08-31 04:29:38 +08:00
2026-08-18 19:30:13 +08:00
2026-08-31 04:30:40 +08:00
2026-08-15 06:04:23 +08:00
2026-08-15 09:32:28 +08:00
2026-08-22 20:48:01 +08:00
2026-09-02 04:34:14 +08:00
2026-07-17 13:42:50 +08:00
2026-08-28 16:30:09 +08:00
2026-09-02 04:34:14 +08:00
2026-08-22 20:48:01 +08:00
2026-08-05 00:58:53 +08:00
2026-09-01 13:35:51 +08:00
2026-08-20 14:24:05 +08:00
2026-08-30 18:35:16 +08:00
2026-09-01 02:06:53 +08:00
2026-08-31 02:15:12 +08:00
2026-08-30 10:55:11 +08:00
2026-09-01 15:19:00 +08:00
2026-09-01 02:06:53 +08:00
2026-09-01 16:52:01 +08:00
2026-08-29 00:06:17 +08:00
2026-09-01 16:52:01 +08:00
2026-09-01 16:52:01 +08:00
2026-09-01 16:52:01 +08:00
2026-08-30 18:35:16 +08:00
2026-08-28 18:04:34 +08:00
2026-09-01 16:52:01 +08:00
2026-09-01 18:17:33 +08:00
2026-08-24 21:26:57 +08:00
2026-09-01 16:52:01 +08:00
2026-09-01 16:52:01 +08:00
2026-08-31 12:50:30 +08:00
2026-08-19 10:41:47 +08:00
2026-09-01 02:06:53 +08:00
2026-07-19 09:00:14 +08:00
2026-09-01 02:06:53 +08:00
2026-08-27 13:59:38 +08:00
2026-08-30 10:55:11 +08:00
2026-09-01 16:52:01 +08:00
2026-09-01 15:19:00 +08:00
2026-09-01 15:19:00 +08:00
2026-08-28 18:04:34 +08:00
2026-08-31 05:50:28 +08:00
2026-09-01 15:19:00 +08:00
2026-08-28 16:30:09 +08:00
2026-08-30 18:35:16 +08:00
2026-09-01 02:06:53 +08:00
2026-08-27 13:59:38 +08:00
2026-09-01 02:06:53 +08:00
2026-08-27 13:59:38 +08:00
2026-09-01 01:13:04 +08:00
2026-09-01 02:06:53 +08:00
2026-08-19 07:44:23 +08:00
2026-08-27 16:40:47 +08:00
2026-08-14 16:37:53 +08:00
2026-09-01 18:17:33 +08:00
2026-08-31 15:16:23 +08:00
2026-09-01 01:13:04 +08:00
2026-08-27 20:31:05 +08:00
2026-08-15 17:50:51 +08:00
2026-09-01 01:13:04 +08:00
2026-08-19 20:11:51 +08:00
2026-09-01 15:19:00 +08:00
2026-08-30 10:55:11 +08:00
2026-08-30 10:55:11 +08:00
2026-08-07 19:05:01 +08:00
2026-09-01 20:35:02 +00:00
2026-09-01 20:35:02 +00:00
2026-08-30 22:59:17 +08:00
2026-08-19 19:39:01 +08:00
2026-08-17 13:14:15 +08:00
2026-08-29 09:44:53 +08:00
2026-08-19 21:15:33 +08:00
2026-08-20 23:54:20 +08:00
2026-07-17 14:09:57 +08:00
2026-09-01 22:58:02 +08:00
2026-09-02 04:34:14 +08:00
2026-07-17 17:17:10 +08:00
2026-08-29 10:56:04 +08:00
2026-08-19 15:29:04 +08:00
2026-08-14 16:52:35 +08:00
2026-08-14 16:52:35 +08:00
2026-09-01 20:35:02 +00:00
2026-08-21 10:29:43 +08:00
2026-08-06 19:18:04 +08:00
2026-08-29 03:39:43 +08:00
2026-09-01 22:58:02 +08:00
2026-08-15 16:25:39 +08:00
2026-08-08 21:34:03 +08:00
2026-08-29 12:12:06 +00:00
2026-08-18 15:44:19 +08:00
2026-08-30 11:19:50 +08:00
2026-07-22 00:07:42 +08:00
2026-08-30 15:55:45 +08:00