SPIKE: SPDD leg 3 entity projection (structured markdown → __Entity__)#2
Draft
jmjava wants to merge 31 commits into
Draft
SPIKE: SPDD leg 3 entity projection (structured markdown → __Entity__)#2jmjava wants to merge 31 commits into
jmjava wants to merge 31 commits into
Conversation
cursor Bot
pushed a commit
to jmjava/sdlc-spdd-orchestrator
that referenced
this pull request
Jul 5, 2026
Co-authored-by: John Menke <jmjava@gmail.com>
… API Made-with: Cursor
…ons) - SpddMarkdownProjectionService projects canvas + context-index into __Entity__ - DrivineNamedEntityDataRepository wired when guide.spdd-projection.enabled=true - POST /api/v1/data/spdd-projection/load and GET .../stats operator API - Coexists with leg 2 RAG directory ingest (same Neo4j, different node layer) - Unit tests with InMemoryNamedEntityDataRepository - Docs and menke-5-spdd-projection profile example Pair with sdlc-spdd-orchestrator cursor/spike-guide-ingest-agent-context-17f4
…MCP tools - Root allowlist for load overrides (guide.spdd-projection.allowed-roots); per-file skip isolation (skippedFiles); 400/404/409 status mapping - New edges: WorkId -decision/pitfall/pattern-> lesson, lesson -about-> Area; pattern kind now projected - Cross-run lessons query: GET /spdd-projection/area?name=… + spdd_areaLessons - MCP spdd_* tools via @LLMTool + McpToolExport; errors as {"error": …} JSON - listByLabel: schema-label validation + result caps - Tests: 32 spdd (service/controller/tools); fix DataManagerControllerWebMvcTest missing GuideStatsService mock - Docs: spdd-projection-ingest.md updated; spdd-branch-changes.md for guide devs Co-authored-by: Cursor <cursoragent@cursor.com>
68f0d57 to
fc75c19
Compare
…d components `allowedRoots + defaultRoot` concatenated the default root's path COMPONENTS (home, ubuntu, …) instead of appending the Path, so every override — even one identical to the default root — was rejected. Wrap in listOf(). Regression test added; error message now includes the allowed roots. Co-authored-by: Cursor <cursoragent@cursor.com>
…neo4j Neo4jReactiveHealthIndicator was connecting without credentials (scheme 'none') because spring.neo4j.authentication was unset, leaving /actuator/health DOWN even when Drivine/RAG worked. Wire uri/username/password from the same NEO4J_* env vars the RAG graph already uses. Co-authored-by: Cursor <cursoragent@cursor.com>
Owner
Author
Sync / test status — 2026-07-11Branch tip Verified live against Neo4j + MCP
CI
Paired orchestrator PR: jmjava/sdlc-spdd-orchestrator#24 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SPIKE-001 leg 3 — paired with orchestrator
cursor/spike-guide-ingest-agent-context-17f4Status: Draft — spike only; do not merge until orchestrator T06 go/no-go.
What this adds
Structured SPDD markdown projection into Neo4j
__Entity__viaNamedEntityDataRepository.Coexists with leg 2 RAG chunk ingest (
guide.directories).Not the DICE proposition pipeline (conversation → propositions).
API / MCP
POST /api/v1/data/spdd-projection/load— project from orchestrator or fixture rootGET /api/v1/data/spdd-projection/stats— entity counts by labelGET /api/v1/data/spdd-projection/work/{workId}— typed-edge subgraphGET /api/v1/data/spdd-projection/area?name=— cross-run lessons by areaspdd_workSubgraph,spdd_areaLessons,spdd_findByLabel,spdd_projectionStatsEnable
See
docs/spdd-projection-ingest.md,docs/spdd-branch-changes.md, andscripts/user-config/application-menke-5-spdd-projection.yml.example.Test status (2026-07-11)
Build@9b8fbafcom.embabel.guide.spdd(32)spdd_*(14 tools total on server)scheme 'none'fix)/actuator/health→UPafter9b8fbafcontent.versioned.versions)retrieval-fixturedir (~21s)Tip of branch
9b8fbaf— Fix Spring Neo4j health auth: stop AuthTokens.none() against embabel-neo4jRelated
spdd/analysis/SPIKE-001-dual-ingest-model.md