Skip to content

SPDD leg 3 entity projection (NamedEntity → __Entity__) - #2

Merged
jmjava merged 8 commits into
mainfrom
cursor/spike-spdd-dice-projection-17f4
Aug 2, 2026
Merged

SPDD leg 3 entity projection (NamedEntity → __Entity__)#2
jmjava merged 8 commits into
mainfrom
cursor/spike-spdd-dice-projection-17f4

Conversation

@jmjava

@jmjava jmjava commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • SPDD leg 3: structured markdown → Neo4j __Entity__ via NamedEntity / DataDictionary.fromClasses
  • Projection API, lesson edges, cross-run area retrieval, spdd_* MCP tools
  • Neo4j Spring profile fixes (neo4j,local,<profile>) for append-ingest
  • Branched/work based on upstream sync; PR retargeted from ingest-to-hubmain

Test plan

  • Local SPDD projection / Guide stack dogfood with orchestrator console
  • CI green on this PR
  • After merge: point orchestrator guide_git_ref default at main

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>
jmjava and others added 4 commits July 11, 2026 20:07
…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>
@jmjava
jmjava force-pushed the cursor/spike-spdd-dice-projection-17f4 branch from 68f0d57 to fc75c19 Compare July 12, 2026 01:08
jmjava and others added 2 commits July 11, 2026 21:36
…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>
@jmjava

jmjava commented Jul 12, 2026

Copy link
Copy Markdown
Owner Author

Sync / test status — 2026-07-11

Branch tip 9b8fbaf is pushed and in sync with origin/cursor/spike-spdd-dice-projection-17f4.

Verified live against Neo4j + MCP

  • Projection + spdd_* tools: WorkId subgraph / stats / findByLabel / areaLessons
  • Hardening: allowed-roots, lesson edges (decision/pitfall/pattern + about), MCP {"error":…} payloads
  • Auth fix: Spring Boot Neo4jReactiveHealthIndicator was connecting with AuthTokens.none() (health DOWN). spring.neo4j.authentication now uses the same NEO4J_* vars as Drivine/RAG → health UP
  • Fixture ingest for orchestrator T05 mode (b): profile clears content.versioned.versions so FORCE_STARTUP_INGEST does not re-embed Embabel docs/Medium

CI

  • Build on this tip: success

Paired orchestrator PR: jmjava/sdlc-spdd-orchestrator#24

jmjava and others added 2 commits August 1, 2026 09:31
Register domain types via DataDictionary.fromClasses, keep neo4j in
append/fresh/hub ingest profiles, and document the first-class schema path.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jmjava
jmjava changed the base branch from ingest-to-hub to main August 2, 2026 01:24
@jmjava
jmjava marked this pull request as ready for review August 2, 2026 01:25
@jmjava jmjava changed the title SPIKE: SPDD leg 3 entity projection (structured markdown → __Entity__) SPDD leg 3 entity projection (NamedEntity → __Entity__) Aug 2, 2026
@cursor

cursor Bot commented Aug 2, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@jmjava
jmjava merged commit a6e3246 into main Aug 2, 2026
4 checks passed
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.

2 participants