Section 08 - TypeScript plug-in end-to-end (INV-3b)
Goal
Prove INV-3 on a real second language: a TypeScript fixture project’s OWN source ingests into
:Symbol / CALLS / IMPORTS / IMPLEMENTS with TS-domain qualified names, so /query-intel callers
/ blast-radius / similar answer in controllers / services / repositories terms (NOT Rust terms), and
/intel-package produces a non-degraded dossier.
Implementation Sketch
queries/typescript/{decls,calls,imports,impls}.scm already exist and extract_symbols.py:69-76 already
carries a TS refinement (definition.class → sum_type for enum_declaration). Build on s-07’s generic
driver:
- Validate + extend
queries/typescript/*.scmagainst the fixture’s real shapes (decorator-based controllers/services, class-method dispatch); the TS-domain qualified names (HealthController.check,UserService.find) emerge for free from the abstractkindvocabulary once the project’s own source is ingested. - Optionally add TS
NODE_TYPE_REFINEMENTS(extract_symbols.py:69-76) for decorator-based controller/service/repository classification if domain classification is wanted. - Confirm the
--repoparameterization (s-07) so the TS project is the default repo forcallers/blast-radius/similar. - End-to-end: ingest the TS fixture → run the three queries → assert TS-domain answers; run
/intel-packageon a TS fixture plan section → assert non-degraded.
Spec & Rule References
INV-3 (mission). Depends on s-07 (generic driver). intelligence.md.
Layer Coverage
Tooling-scope: L1-L11 N/A. L12 = ingest a TS fixture + run the real /query-intel subcommands asserting
TS-domain answers + non-degraded /intel-package. pytest gate:
intel_repo/tests/test_typescript_extract.py (new, TS fixture corpus).
Work Items
- Validate + extend queries/typescript/*.scm against the fixture’s real shapes; add TS NODE_TYPE_REFINEMENTS if domain classification is wanted.
- Ingest a TS fixture and assert callers/blast-radius/similar answer in TS-domain terms; assert /intel-package is non-degraded.
Fresh intel (regenerated)
{ “schema_version”: 1, “target”: { “kind”: “plan-section”, “ref”: “installable-harness/s-e50bec57” }, “generated_at”: “2026-06-25T17:05:46.354148+00:00”, “graph_state”: { “head_sha”: “b74d6b9a”, “last_code_import_at”: “2026-06-25T17:01:11.963Z”, “embedding_stale”: false, “insights_stale”: false, “cpg_stale”: false }, “surfaces”: {}, “summary”: “intel-package[plan-section:installable-harness/s-e50bec57] agent-authored dossier”, “degraded”: false, “dossier”: { “objective_symbols”: [], “tiers”: {}, “agent_authored”: true, “difficulty”: { “class”: “routine”, “research_online”: false, “research_mode”: “auto”, “signals”: [], “plan_dir”: “/home/eric/projects/ori_lang/plans/installable-harness” } } }
(full dossier: typescript-plugin—s-e50bec57.intel.json)