100%

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.classsum_type for enum_declaration). Build on s-07’s generic driver:

  • Validate + extend queries/typescript/*.scm against 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 abstract kind vocabulary 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 --repo parameterization (s-07) so the TS project is the default repo for callers / blast-radius / similar.
  • End-to-end: ingest the TS fixture → run the three queries → assert TS-domain answers; run /intel-package on 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)