Nilton Moura
6d3a6f1c6b
feat: extract rationale comments + ADR/RFC doc references from JS/TS
...
Parity with _extract_python_rationale: Python files get rationale nodes
from docstrings and '# NOTE:'-style comments, but JS/TS comments were
discarded entirely. This adds a post-pass to extract_js that:
1. extracts rationale comments ('// NOTE:', '// WHY:', block-comment
'* NOTE:' variants) as rationale nodes with rationale_for edges,
matching the Python behavior;
2. first-classes architecture-decision references (ADR-NNNN, RFC NNNN)
found in comments as doc_ref nodes with 'cites' edges from the file.
The doc_ref pass is the natural join point between code and design docs
in mixed corpora: teams conventionally cite ADR ids in file headers, but
today those citations produce no edges, so code<->ADR connections never
form even when the discipline exists. Spellings are normalized
(ADR-11 / ADR 0011 -> ADR-0011) so references to the same document
collapse to one node, and string literals are excluded (comment-shaped
lines only).
Tested on a real mixed corpus (Flutter/Supabase monorepo): router.ts
alone yields 10 ADR citations that previously produced zero edges.
2026-07-06 00:45:51 +01:00
..
2026-07-04 11:26:55 +01:00
2026-04-04 18:52:44 +01:00
2026-05-02 12:54:08 +05:30
2026-05-22 13:22:51 +01:00
2026-06-27 23:57:39 +01:00
2026-07-05 11:41:18 +01:00
2026-06-23 17:26:49 +01:00
2026-05-30 21:37:47 +01:00
2026-06-16 01:41:15 +01:00
2026-06-02 23:48:54 +01:00
2026-05-13 10:07:50 -07:00
2026-06-03 00:08:03 +01:00
2026-05-22 13:22:51 +01:00
2026-07-01 11:14:48 +01:00
2026-06-28 17:52:34 +01:00
2026-06-29 13:14:37 +01:00
2026-05-22 13:22:51 +01:00
2026-06-11 15:08:36 -06:00
2026-07-01 15:09:42 +01:00
2026-05-17 11:32:38 +01:00
2026-07-04 03:12:23 +01:00
2026-07-02 22:29:30 +01:00
2026-04-28 00:56:54 +01:00
2026-07-02 22:29:29 +01:00
2026-05-12 02:23:51 +03:00
2026-06-07 14:34:13 +01:00
2026-07-01 11:52:50 +01:00
2026-04-06 16:06:31 +01:00
2026-07-01 10:49:43 +01:00
2026-06-30 18:30:05 +01:00
2026-06-02 22:23:15 +01:00
2026-07-02 23:25:54 +01:00
2026-06-30 19:32:10 +01:00
2026-06-11 19:52:56 +03:00
2026-07-01 10:47:10 +01:00
2026-07-02 22:29:32 +01:00
2026-05-26 09:17:18 +01:00
2026-06-26 10:23:10 +01:00
2026-06-30 11:19:54 +01:00
2026-06-30 11:19:54 +01:00
2026-06-28 16:17:21 +01:00
2026-07-06 00:09:11 +01:00
2026-06-28 16:57:00 +01:00
2026-06-07 15:03:49 +03:00
2026-06-28 16:57:00 +01:00
2026-06-18 01:55:56 +01:00
2026-06-11 09:36:38 +02:00
2026-05-07 20:07:57 +01:00
2026-07-02 11:50:12 +01:00
2026-06-30 16:58:23 +01:00
2026-06-18 22:55:44 +01:00
2026-07-02 22:29:32 +01:00
2026-05-05 00:07:50 +02:00
2026-06-28 19:29:51 +01:00
2026-06-30 23:26:13 +01:00
2026-07-01 10:30:47 +01:00
2026-07-01 11:43:05 +01:00
2026-06-24 11:43:13 +01:00
2026-06-13 15:13:23 +01:00
2026-06-02 20:48:13 +01:00
2026-06-29 10:01:06 +01:00
2026-06-05 22:15:09 +01:00
2026-07-04 22:43:31 +01:00
2026-06-28 19:05:09 +01:00
2026-07-05 10:42:09 +01:00
2026-06-18 22:50:52 +01:00
2026-06-27 10:19:15 +01:00
2026-06-29 09:40:22 +01:00
2026-07-04 11:26:55 +01:00
2026-06-29 09:45:03 +01:00
2026-07-02 22:29:30 +01:00
2026-07-04 22:12:47 +01:00
2026-06-19 10:25:09 +01:00
2026-05-26 20:16:41 +01:00
2026-07-02 11:25:51 +01:00
2026-06-10 15:50:38 +01:00
2026-05-22 13:22:51 +01:00
2026-05-22 13:22:51 +01:00
2026-07-01 13:45:53 +01:00
2026-07-03 18:34:41 +01:00
2026-05-31 16:41:18 +01:00
2026-07-04 22:12:47 +01:00
2026-06-02 22:50:33 +01:00
2026-06-02 22:50:33 +01:00
2026-06-16 01:41:15 +01:00
2026-05-09 15:52:17 +01:00
2026-05-13 23:19:15 +01:00
2026-06-30 16:59:16 +01:00
2026-07-05 10:42:09 +01:00
2026-07-04 21:22:39 +01:00
2026-07-04 03:12:23 +01:00
2026-04-15 23:08:43 +01:00
2026-06-02 22:16:58 +01:00
2026-05-16 22:36:58 +01:00
2026-05-24 20:38:10 +01:00
2026-05-22 13:22:51 +01:00
2026-06-03 21:04:01 +01:00
2026-07-06 00:45:51 +01:00
2026-06-25 20:33:00 +01:00
2026-06-30 12:57:33 +01:00
2026-07-04 22:43:31 +01:00
2026-07-05 11:41:18 +01:00
2026-05-22 13:22:51 +01:00
2026-06-22 17:02:29 +01:00
2026-06-30 16:58:23 +01:00
2026-07-04 03:12:23 +01:00
2026-07-03 00:32:24 +01:00
2026-04-06 16:06:31 +01:00
2026-07-02 12:11:51 +01:00
2026-07-03 10:14:57 +01:00
2026-06-30 23:15:52 +01:00
2026-07-04 22:43:31 +01:00
2026-07-02 11:46:22 +01:00
2026-06-16 03:06:43 +01:00
2026-06-30 16:59:16 +01:00
2026-06-05 21:46:25 +01:00
2026-04-10 15:55:22 +01:00
2026-07-02 22:38:29 +01:00
2026-07-02 22:38:28 +01:00
2026-07-04 03:12:23 +01:00
2026-05-31 16:47:52 +01:00
2026-07-02 22:38:29 +01:00
2026-07-03 16:03:18 +01:00
2026-07-02 22:29:31 +01:00
2026-06-24 08:54:11 +01:00
2026-06-26 10:20:53 +01:00
2026-07-03 10:30:27 +01:00
2026-06-23 17:26:49 +01:00
2026-06-27 10:19:15 +01:00
2026-07-04 22:12:47 +01:00
2026-07-05 10:33:07 +01:00