Skip to content

feat(import): AI enrichment + knowledge reconciler + wiki index#55

Open
m0Nst3r873 wants to merge 6 commits into
Tencent:mainfrom
m0Nst3r873:feat/import-enrichment-v2
Open

feat(import): AI enrichment + knowledge reconciler + wiki index#55
m0Nst3r873 wants to merge 6 commits into
Tencent:mainfrom
m0Nst3r873:feat/import-enrichment-v2

Conversation

@m0Nst3r873

Copy link
Copy Markdown
Contributor

Summary

Part 2 of 3. Depends on #54 (feat/codebase-extract).

  • enrich-with-ai.ts: Per-module AI responsibility inference + repo-level domain classification
  • knowledge-reconciler.ts: 9-phase product↔code cross-mapping with confidence scoring
  • manifest-compiler.ts: Compile AI-enriched manifest into structured component docs with wiki-links
  • rebuild-wiki-index.ts: Domain-grouped router.md + stats-enriched index.md
  • Remove legacy AI domain classification (domains.yaml)

How it's reachable (no dead code)

  • teamai import --from-repo <url> → extractCodebase + enrichWithAI + compileFromManifest + reconcileKnowledge
  • teamai import --from-org <org> → batch import + rebuildWikiIndex
  • teamai codebase --extract . → enrichWithAI + compile docs/<slug>.md

Quality fixes

Fix Description
B6 Wire compileFromManifest() into pipeline (was dead code — manifest produced but never compiled)
B12 Fix reconciler stale detection: abs(fromMs - toMs) not abs(now - max(...))
B20 Add stopword filtering to reconciler term matching
B23 Manifest-compiler outputs wiki-links for upstream/downstream components

Test plan

  • npx tsc --noEmit — zero errors
  • npx vitest run — 1505 tests passed

Dependency chain

#54 (wiki-engine) → PR 2 (this) → PR 3 (deep-enrich + recall)

Replaces #51.

jaelgeng and others added 6 commits June 26, 2026 19:31
Vendored from team-wiki by @lurkacai (git.woa.com/lurkacai/team-wiki).
Import paths adjusted for teamai-cli project structure.

Files copied (all pure deterministic, no AI dependency):
- core/graph-index.schema.ts: graph node/edge types, merge, save/load
- core/wiki-protocol.ts: wiki category/confidence types, slugify
- code-knowledge/code-collector.ts: file collection with git-aware filtering
- code-knowledge/code-extractors.ts: multi-language fact extraction dispatch
- code-knowledge/code-graph.ts: build CodeGraphIndex from facts
- code-knowledge/code-incremental.ts: detect changed files via manifest
- code-knowledge/extractors/*: TS/Python/Go/Java/Rust/Config extractors
- interface-scanner.ts: HTTP/MQ/RPC endpoint detection (5 languages)
- call-chain-tracer.ts: 4-layer call chain tracing
- code-graph-overlay.ts: directory-level architecture nodes
- doc-graph-extractor.ts: extract API/config/error nodes from docs
- manifest-schema.ts: V2 manifest types (entrypoints, responsibilities)
Wire up vendored modules into the teamai extraction flow:

- adapters/index.ts: unified export layer for all wiki-engine modules
- adapters/templates.ts: router.md + index.md generation templates
- codebase-extract.ts: full extraction pipeline
  collectCode → extractCodeFacts → scanInterfaces → traceCallChains
  → buildEvidencePages (interfaces.md + call-chains.md)
  → buildIndexHubOverlay → mergedGraph → graph-index.json
  → buildModuleSummaries → detectKnowledgeGaps → router/index/hot/gaps
- utils/hook-output.ts: multi-tool Stop hook output formatting
- interface-scanner: HTTP/MQ/RPC detection across languages (12 tests)
- call-chain-tracer: entry detection, layer classification (8 tests)
- code-graph-overlay: buildIndexHubOverlay node/edge generation (5 tests)
- doc-graph-extractor: structure + entity extraction (8 tests)
- hook-output: formatStopHookOutput multi-tool format (6 tests)

All tests use in-memory data, no filesystem/network dependencies.
Bug fixes applied:
- B1: unify graph-index path to .indices/ (was .teamwiki/.indices/)
- B2: fix router.md links (evidence/code/ prefix)
- B3: add teamwiki to safeIgnore
- B4: remove stale .teamwiki/evidence check
- B5: use saveGraphIndex() instead of manual writeFile
- B9: unify graph schema to GraphIndex (remove CodeGraphIndex)
- B13: filter third-party npm imports from relation facts
- B15: priority sort: key files first, then shallow dirs
- B16: generate deterministic overview.md
- B17: rename call-chains to dependency-paths (not runtime calls)
- B18: Python extractor: only service-pattern functions as components
- B19: facts deduplication by kind:name
- B21: doc-graph config pattern restricted to SCREAMING_SNAKE_CASE
- B22: API path pattern no longer requires /v\d*/ prefix

CLI integration:
- Add --extract, --incremental, --project, --max-files to codebase command
- Add extract branch to codebase-cmd.ts
- Add teamwiki/ to .gitignore
New modules (vendored/adapted from team-wiki by @lurkacai):
- knowledge-reconciler.ts: 9-phase product↔code reconciliation
- reconciler-v2-types.ts: NumericConfidence scoring types
- manifest-compiler.ts: consume ManifestV2 → wiki pages

New teamai modules:
- enrich-with-ai.ts: per-module AI responsibility inference +
  repo-level domain classification via callClaudeParallel
- rebuild-wiki-index.ts: generate table-based router.md + stats index.md
  from _manifest.json + _domains.json + overview.md
- utils/git.ts: add autoPushTeamRepo for auto-push after import

Updated:
- wiki-engine/adapters/index.ts: export reconciler + confidence types
- wiki-engine/adapters/templates.ts: DomainGroup router + IndexStats
…ication

- import-repo.ts: add reconcile call after extraction, remove entire
  legacy AI domain classification flow (recommendDomain → domains.yaml)
- import-org.ts: add rebuildWikiIndex + autoPush after batch import
- codebase-extract.ts: integrate AI enrichment (enrichWithAI +
  writeManifest + _domains.json), domain-grouped router/index
- Tests updated to match new import flow
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant