# Graph Report - TextNLPClassifierApp (2026-08-20) ## Corpus Check - 133 files · ~54,759 words - Verdict: corpus is large enough that graph structure adds value. ## Summary - 595 nodes · 704 edges · 80 communities (43 shown, 37 thin omitted) - Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 31 edges (avg confidence: 0.95) - Token cost: 0 input · 0 output ## Graph Freshness - Built from commit: `d371b81a` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). ## Community Hubs (Navigation) - Task Planning - Convergence Workflow - SpecKit Utilities - Graphify Commands - speckit-analyze/SKILL.md - Tasks: Multilingual NLP Entity Inherence Classifier (POC) - Feature Specification Template - Graphify Rules - Implementation Planning - Feature Specification - Task Generation - Project Constitution - Constitution Template - Graphify Exports - Ponytail Configuration - Implementation Planning Template - Ponytail Help - Checklist Generation - Clarification Workflow - Implementation Workflow - Graph Query - Constitution Workflow - Feature Branch Creation - Ponytail Audit - Ponytail Metrics - Ponytail Review - Task Issue Conversion - Checklist Template - Graphify Watch Mode - Graphify Hooks - Graphify Updates - Ponytail Debt - Repository Merge - Media Transcription - Extraction Specification - Graphify Workflows - Feature Specification: Multilingual NLP Entity Inherence Classifier (POC) - 1. Technical Decisions & Tradeoffs - 1. Input Schemas - 2. Basic CLI Usage Examples - 2. Standard Streams & Exit Codes - ECPSnapshot - test_models.py - detect_language - main - content_northvolt_de.md - content_presal_pt.md - content_tangential_es.md - adapters/__init__.py - src/__init__.py - de/contextual.md - de/direct.md - de/not_related.md - de/tangential.md - en/contextual.md - en/direct.md - en/not_related.md - en/tangential.md - es/contextual.md - es/direct.md - es/not_related.md - es/tangential.md - fr/contextual.md - fr/direct.md - fr/not_related.md - fr/tangential.md - it/contextual.md - it/direct.md - it/not_related.md - it/tangential.md - pt/contextual.md - pt/direct.md - pt/not_related.md - pt/tangential.md - tests/__init__.py - text-nlp-classifier ## God Nodes (most connected - your core abstractions) 1. `ECPSnapshot` - 31 edges 2. `InherenceClassifier` - 25 edges 3. `DecisionCategory` - 18 edges 4. `ClassificationResult` - 17 edges 5. `LocalEmbeddingsAdapter` - 14 edges 6. `LLMFallbackAdapter` - 14 edges 7. `detect_language()` - 14 edges 8. `main()` - 13 edges 9. `Tasks: [FEATURE NAME]` - 13 edges 10. `BaseNLPAdapter` - 12 edges ## Surprising Connections (you probably didn't know these) - `emit_error()` --uses--> `ErrorCode` [INFERRED] classify.py → src/models.py - `main()` --uses--> `ECPSnapshot` [INFERRED] classify.py → src/models.py - `main()` --uses--> `ErrorCode` [INFERRED] classify.py → src/models.py - `test_classification_error_serialization()` --uses--> `ErrorCode` [INFERRED] tests/test_models.py → src/models.py - `test_ecp_snapshot_defaults()` --uses--> `ECPSnapshot` [INFERRED] tests/test_models.py → src/models.py ## Import Cycles - None detected. ## Communities (80 total, 37 thin omitted) ### Community 0 - "Task Planning" Cohesion: 0.07 Nodes (26): Dependencies & Execution Order, Format: `[ID] [P?] [Story] Description`, Implementation for User Story 1, Implementation for User Story 2, Implementation for User Story 3, Implementation Strategy, Incremental Delivery, MVP First (User Story 1 Only) (+18 more) ### Community 1 - "Convergence Workflow" Cohesion: 0.12 Nodes (15): 1. Initialize Convergence Context, 2. Load Artifacts (Progressive Disclosure), 3. Build the Intent Inventory, 4. Assess the Codebase and Classify Findings, 5. Assign Severity, 6. Present the In-Session Findings Summary, 7. Append Convergence Tasks (or report converged), 8. Provide Next Actions (Handoff) (+7 more) ### Community 2 - "SpecKit Utilities" Cohesion: 0.23 Nodes (13): Find-SpecifyRoot(), Format-SpecKitCommand(), Get-CurrentBranch(), Get-FeaturePathsEnv(), Get-InvokeSeparator(), Get-NormalizedPriority(), Get-Python3Command(), Get-RepoRoot() (+5 more) ### Community 3 - "Graphify Commands" Cohesion: 0.08 Nodes (24): For /graphify add and --watch, For /graphify query, For the commit hook and native CLAUDE.md integration, For --update and --cluster-only, /graphify, Honesty Rules, Interpreter guard for subcommands, Part A - Structural extraction for code files (+16 more) ### Community 4 - "speckit-analyze/SKILL.md" Cohesion: 0.08 Nodes (25): 1. Initialize Analysis Context, 2. Load Artifacts (Progressive Disclosure), 3. Build Semantic Models, 4. Detection Passes (Token-Efficient Analysis), 5. Severity Assignment, 6. Produce Compact Analysis Report, 7. Provide Next Actions, 8. Offer Remediation (+17 more) ### Community 5 - "Tasks: Multilingual NLP Entity Inherence Classifier (POC)" Cohesion: 0.06 Nodes (33): 1. Requirement Completeness & Scope Boundaries, 2. Requirement Clarity & Decision Semantics, 3. Requirement Consistency & Alignment, 4. Acceptance Criteria & Measurability, 5. Scenario & Edge Case Coverage, Notes, POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier, Content Quality (+25 more) ### Community 6 - "Feature Specification Template" Cohesion: 0.15 Nodes (12): Assumptions, Edge Cases, Feature Specification: [FEATURE NAME], Functional Requirements, Key Entities *(include if feature involves data)*, Measurable Outcomes, Requirements *(mandatory)*, Success Criteria *(mandatory)* (+4 more) ### Community 8 - "Implementation Planning" Cohesion: 0.18 Nodes (10): Completion Report, Done When, Key rules, Mandatory Post-Execution Hooks, Outline, Phase 0: Outline & Research, Phase 1: Design & Contracts, Phases (+2 more) ### Community 9 - "Feature Specification" Cohesion: 0.18 Nodes (10): Completion Report, Done When, For AI Generation, Mandatory Post-Execution Hooks, Outline, Pre-Execution Checks, Quick Guidelines, Section Requirements (+2 more) ### Community 10 - "Task Generation" Cohesion: 0.18 Nodes (10): Checklist Format (REQUIRED), Completion Report, Done When, Mandatory Post-Execution Hooks, Outline, Phase Structure, Pre-Execution Checks, Task Generation Rules (+2 more) ### Community 11 - "Project Constitution" Cohesion: 0.18 Nodes (10): Core Principles, Governance, [PRINCIPLE_1_NAME], [PRINCIPLE_2_NAME], [PRINCIPLE_3_NAME], [PRINCIPLE_4_NAME], [PRINCIPLE_5_NAME], [PROJECT_NAME] Constitution (+2 more) ### Community 12 - "Constitution Template" Cohesion: 0.18 Nodes (10): Core Principles, Governance, [PRINCIPLE_1_NAME], [PRINCIPLE_2_NAME], [PRINCIPLE_3_NAME], [PRINCIPLE_4_NAME], [PRINCIPLE_5_NAME], [PROJECT_NAME] Constitution (+2 more) ### Community 13 - "Graphify Exports" Cohesion: 0.22 Nodes (8): graphify reference: extra exports and benchmark, Step 6b - Wiki (only if --wiki flag), Step 7 - Neo4j export (only if --neo4j or --neo4j-push flag), Step 7a - FalkorDB export (only if --falkordb or --falkordb-push flag), Step 7b - SVG export (only if --svg flag), Step 7c - GraphML export (only if --graphml flag), Step 7d - MCP server (only if --mcp flag), Step 8 - Token reduction benchmark (only if total_words > 5000) ### Community 14 - "Ponytail Configuration" Cohesion: 0.22 Nodes (8): Boundaries, Intensity, Output, Persistence, Ponytail, Rules, The ladder, When NOT to be lazy ### Community 15 - "Implementation Planning Template" Cohesion: 0.22 Nodes (8): Complexity Tracking, Constitution Check, Documentation (this feature), Implementation Plan: [FEATURE], Project Structure, Source Code (repository root), Summary, Technical Context ### Community 16 - "Ponytail Help" Cohesion: 0.25 Nodes (7): Configure Default Mode, Deactivate, Levels, More, Ponytail Help, Skills, Update ### Community 17 - "Checklist Generation" Cohesion: 0.25 Nodes (7): Anti-Examples: What NOT To Do, Checklist Purpose: "Unit Tests for English", Example Checklist Types & Sample Items, Execution Steps, Post-Execution Checks, Pre-Execution Checks, User Input ### Community 18 - "Clarification Workflow" Cohesion: 0.29 Nodes (6): Completion Report, Done When, Mandatory Post-Execution Hooks, Outline, Pre-Execution Checks, User Input ### Community 19 - "Implementation Workflow" Cohesion: 0.29 Nodes (6): Completion Report, Done When, Mandatory Post-Execution Hooks, Outline, Pre-Execution Checks, User Input ### Community 20 - "Graph Query" Cohesion: 0.33 Nodes (5): For /graphify explain, For /graphify path, graphify reference: query, path, explain, Step 0 — Constrained query expansion (REQUIRED before traversal), Step 1 — Traversal ### Community 21 - "Constitution Workflow" Cohesion: 0.33 Nodes (5): Outline, Post-Execution Checks, Pre-Execution Checks, Scope Guard, User Input ### Community 23 - "Ponytail Audit" Cohesion: 0.40 Nodes (4): Boundaries, Hunt, Output, Tags ### Community 24 - "Ponytail Metrics" Cohesion: 0.40 Nodes (4): Boundaries, Honesty boundary, Ponytail Gain, Scoreboard ### Community 25 - "Ponytail Review" Cohesion: 0.40 Nodes (4): Boundaries, Examples, Format, Scoring ### Community 26 - "Task Issue Conversion" Cohesion: 0.40 Nodes (4): Outline, Post-Execution Checks, Pre-Execution Checks, User Input ### Community 27 - "Checklist Template" Cohesion: 0.40 Nodes (4): [Category 1], [Category 2], [CHECKLIST TYPE] Checklist: [FEATURE NAME], Notes ### Community 28 - "Graphify Watch Mode" Cohesion: 0.50 Nodes (3): For /graphify add, For --watch, graphify reference: add a URL and watch a folder ### Community 29 - "Graphify Hooks" Cohesion: 0.50 Nodes (3): For git commit hook, For native CLAUDE.md integration, graphify reference: commit hook and native CLAUDE.md integration ### Community 30 - "Graphify Updates" Cohesion: 0.50 Nodes (3): For --cluster-only, For --update (incremental re-extraction), graphify reference: incremental update and cluster-only ### Community 31 - "Ponytail Debt" Cohesion: 0.50 Nodes (3): Boundaries, Output, Scan ### Community 40 - "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)" Cohesion: 0.14 Nodes (14): Assumptions, Assumptions & Scope, Clarifications, Explicit Out of Scope (POC), Feature Specification: Multilingual NLP Entity Inherence Classifier (POC), Functional Requirements, Key Entities *(data models & domain entities)*, Measurable Outcomes (+6 more) ### Community 41 - "1. Technical Decisions & Tradeoffs" Cohesion: 0.22 Nodes (8): 1. Technical Decisions & Tradeoffs, 2. Standardized Error Handling Strategy, Decision 1: Execution Engine & CLI Architecture, Decision 2: Multilingual Language Detection & Normalization (Tier 1 Core), Decision 3: Materialized ECP Snapshot Contract & Matching Logic, Decision 4: Tier 2 (Embeddings) & Tier 3 (LLM) Optional Adapters, Decision 5: Controlled 24-Case POC Benchmark Suite, Technical Research & Architecture Decisions (POC) ### Community 42 - "1. Input Schemas" Cohesion: 0.25 Nodes (7): 1.1 ECP Snapshot Schema (`snapshot.json`), 1.2 Content Item Schema (`content.md`), 1. Input Schemas, 2.1 Classification Success Result Schema (`result.json`), 2.2 Error Result Schema, 2. Output Schemas, Data Models & Schemas (POC) ### Community 43 - "2. Basic CLI Usage Examples" Cohesion: 0.25 Nodes (7): 1. Prerequisites & Installation, 2.1 Direct Inherence (Portuguese), 2.2 Contextual Inherence via Graph Snapshot (German), 2.3 Tangential Mention (Spanish), 2. Basic CLI Usage Examples, 3. Running the Controlled 24-Case Benchmark, Quickstart & Validation Guide (POC) ### Community 44 - "2. Standard Streams & Exit Codes" Cohesion: 0.29 Nodes (6): 1.1 Arguments & Options, 1. Command Line Interface, 2.1 Exit Codes, 2.2 Standard Output (`stdout`) / Standard Error (`stderr`), 2. Standard Streams & Exit Codes, CLI Contract & Interface Specification (POC) ### Community 45 - "ECPSnapshot" Cohesion: 0.05 Nodes (63): ABC, Enum, parametrize, BaseNLPAdapter, Base abstract adapter interface for optional Tier 2 / Tier 3 NLP enhancers., Abstract interface for pluggable NLP classification adapters., Return True if the underlying provider or model is installed and configured., Compute semantic similarity score between text and a set of candidate terms. (+55 more) ### Community 46 - "test_models.py" Cohesion: 0.12 Nodes (17): Any, emit_error(), ClassificationError, extract_evidence_snippets(), extract_sentences(), Markdown content parser and excerpt extraction utilities., Remove markdown syntax markers (headers, bold, italics, links, code blocks) to…, Split text into individual sentences. (+9 more) ### Community 47 - "detect_language" Cohesion: 0.19 Nodes (16): detect_language(), extract_words(), normalize_text(), Lightweight multilingual language detection and text normalization., Normalize text by converting to lowercase and stripping combining diacritical…, Tokenize text into lowercase alphanumeric words., Detect the ISO-639-1 language code of text among supported languages (pt, en,…, Unit tests for language detection and text normalization. (+8 more) ### Community 48 - "main" Cohesion: 0.31 Nodes (9): main(), parse_args(), Namespace, CLI execution tests covering flags, arguments, stdout, and error handling., test_cli_empty_content_file(), test_cli_missing_ecp_file(), test_cli_missing_required_ecp_field(), test_cli_output_file() (+1 more) ## Knowledge Gaps - **291 isolated node(s):** `text-nlp-classifier`, `MatchedGraphEntity`, `graphify`, `Usage`, `What graphify is for` (+286 more) These have ≤1 connection - possible missing edges or undocumented components. - **37 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ - **Why does `ECPSnapshot` connect `ECPSnapshot` to `main`, `test_models.py`?** _High betweenness centrality (0.015) - this node is a cross-community bridge._ - **Why does `InherenceClassifier` connect `ECPSnapshot` to `main`?** _High betweenness centrality (0.008) - this node is a cross-community bridge._ - **Why does `detect_language()` connect `detect_language` to `ECPSnapshot`?** _High betweenness centrality (0.007) - this node is a cross-community bridge._ - **Are the 10 inferred relationships involving `ECPSnapshot` (e.g. with `main()` and `BaseNLPAdapter`) actually correct?** _`ECPSnapshot` has 10 INFERRED edges - model-reasoned connections that need verification._ - **Are the 6 inferred relationships involving `InherenceClassifier` (e.g. with `LocalEmbeddingsAdapter` and `LLMFallbackAdapter`) actually correct?** _`InherenceClassifier` has 6 INFERRED edges - model-reasoned connections that need verification._ - **Are the 10 inferred relationships involving `DecisionCategory` (e.g. with `InherenceClassifier` and `test_adversarial_apple_fruit_recipe()`) actually correct?** _`DecisionCategory` has 10 INFERRED edges - model-reasoned connections that need verification._ - **Are the 4 inferred relationships involving `ClassificationResult` (e.g. with `BaseNLPAdapter` and `LocalEmbeddingsAdapter`) actually correct?** _`ClassificationResult` has 4 INFERRED edges - model-reasoned connections that need verification._