Timothy Eastridge commited on
Commit Β·
c3a1aee
1
Parent(s): e2ee7b6
initial commit
Browse files
app_requirements/1_feature_KG_backend.txt
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
1. Feature: Knowledge Graph Backend
|
| 2 |
+
|
| 3 |
+
1.1 Story: As a developer, I need a Dockerized Neo4j instance so that the graph runs in a portable, consistent environment.
|
| 4 |
+
β1.1.1 Task: Dockerfile builds successfully
|
| 5 |
+
β1.1.2 Task: Neo4j container starts with correct version
|
| 6 |
+
β1.1.3 Task: Database accessible on localhost with default creds
|
| 7 |
+
|
| 8 |
+
1.2 Story: As a system, I need to ingest mock data into the graph so that it can be queried and tested.
|
| 9 |
+
β1.2.1 Task: Sample CSV/JSON loaded into graph
|
| 10 |
+
β1.2.2 Task: Nodes and relationships appear in Neo4j browser
|
| 11 |
+
β1.2.3 Task: Queries return expected sample data
|
| 12 |
+
|
| 13 |
+
|
app_requirements/2_feature_API_integration.txt
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2. Feature: External MCP Connector
|
| 2 |
+
|
| 3 |
+
Story 2.1: As an external organization, I want an MCP connector so I can connect my own LLM to the app and query Neo4j without needing to know Cypher.
|
| 4 |
+
β2.1.1 Task: Define MCP tool schema for external use (get_schema, query_graph, write_graph, run_workflow)
|
| 5 |
+
β2.1.2 Task: Package connector with documentation for external deployment
|
| 6 |
+
β2.1.3 Task: Provide authentication mechanism for external calls
|
| 7 |
+
|
| 8 |
+
Story 2.2: As an external organization, I want the MCP connector to guarantee schema alignment so my LLM always receives accurate context for queries.
|
| 9 |
+
β2.2.1 Task: Implement schema introspection endpoint in the MCP connector
|
| 10 |
+
β2.2.2 Task: Ensure schema updates automatically reflect in exposed MCP capabilities
|
| 11 |
+
β2.2.3 Task: Validate with external LLMs against test datasets
|
| 12 |
+
|
| 13 |
+
Story 2.3: As a developer, I want observability hooks in the MCP connector so that I can monitor usage and troubleshoot external LLM calls.
|
| 14 |
+
β2.3.1 Task: Log each connector request and response
|
| 15 |
+
β2.3.2 Task: Record errors and failed queries for QA review
|
| 16 |
+
β2.3.3 Task: Expose basic usage metrics for external organizations
|
| 17 |
+
|
app_requirements/3_feature_agentic_reasoning_loop.txt
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
3. Feature: Agentic Reasoning & Self-Learning (via Neo4j MCP Server)
|
| 2 |
+
|
| 3 |
+
Story 3.1: As a system, I need to use the Neo4j MCP server for all interactions with the Neo4j database so that reasoning steps are structured and controlled.
|
| 4 |
+
β3.1.1 Task: Route all schema discovery, query, and write operations through the Neo4j MCP server
|
| 5 |
+
β3.1.2 Task: Confirm LLM cannot issue raw Cypher queries directly
|
| 6 |
+
β3.1.3 Task: Validate structured MCP responses feed into reasoning loop
|
| 7 |
+
|
| 8 |
+
Story 3.2: As a system, I need to iteratively refine my problem-solving by generating requirements, code, and QA steps, with each step documented in Neo4j as a node linked to the prior step so that a full audit trail of learning is preserved.
|
| 9 |
+
β3.2.1 Task: Implement workflow for entity resolution using vector embeddings + LLM review of candidates (test objective)
|
| 10 |
+
β3.2.2 Task: Generate a requirement (e.g., βlink entity candidatesβ) and write it into Neo4j as a node
|
| 11 |
+
β3.2.3 Task: Link each requirement node to its predecessor node to preserve chain-of-thought traceability
|
| 12 |
+
β3.2.4 Task: Write Python script to satisfy the requirement, execute it, and record the output in Neo4j as a result node
|
| 13 |
+
β3.2.5 Task: Generate QA requirement, store as a new node, link it to the corresponding step, and implement QA script
|
| 14 |
+
β3.2.6 Task: Run QA cycle; if unsatisfied, ideate new requirement nodes, link them to prior steps, and repeat the loop
|
| 15 |
+
|
| 16 |
+
Story 3.3: As a developer, I need the agentic loop to pause for 5 minutes between steps so that a human can edit the Neo4j node instructions before the agent proceeds.
|
| 17 |
+
β3.3.1 Task: Implement configurable delay (default = 5 minutes) between loop phases
|
| 18 |
+
β3.3.2 Task: Allow human edits to Neo4j requirement nodes during the pause
|
| 19 |
+
β3.3.3 Task: Ensure the agent re-reads the latest node state after the pause before executing the next step
|
| 20 |
+
β3.3.4 Task: Log cycle timing and human edits in Neo4j for observability
|
app_requirements/4_feature_UI.txt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
4. Feature: Front-End Chat Interface & Visualization
|
| 2 |
+
|
| 3 |
+
Story 4.1: As a user, I want to enter questions into a chat interface so I can query my data in natural language without needing Cypher.
|
| 4 |
+
β4.1.1 Task: Connect the chat input to the Neo4j MCP server so queries are routed through MCP
|
| 5 |
+
β4.1.2 Task: Ensure MCP translates queries into Cypher and returns structured results
|
| 6 |
+
β4.1.3 Task: Handle response errors and retries gracefully in the UI
|
| 7 |
+
|
| 8 |
+
Story 4.2: As a user, I want responses displayed in clear natural language so that I can understand the results.
|
| 9 |
+
β4.2.1 Task: Parse MCP responses into user-friendly text
|
| 10 |
+
β4.2.2 Task: Highlight key details (nodes, relationships, counts) in the response
|
| 11 |
+
β4.2.3 Task: Verify outputs with test queries for readability
|
| 12 |
+
|
| 13 |
+
Story 4.3: As a user, I want to see supporting evidence from the graph (nodes, relationships) so that I can verify why an answer was given.
|
| 14 |
+
β4.3.1 Task: Build R Shiny visualizations of graph substructures returned by Neo4j MCP server
|
| 15 |
+
β4.3.2 Task: Link visual nodes and relationships directly to natural-language responses
|
| 16 |
+
β4.3.3 Task: Allow user to toggle between text and graph visualization modes
|
| 17 |
+
|
| 18 |
+
Story 4.4: As a user, I want to trigger domain-specific workflows (e.g., fraud detection, entity resolution) from the chat so that I can act on results.
|
| 19 |
+
β4.4.1 Task: Add workflow trigger buttons in the R Shiny UI
|
| 20 |
+
β4.4.2 Task: Ensure workflow triggers call Neo4j MCP server functions correctly
|
| 21 |
+
β4.4.3 Task: Display confirmation and output of workflow execution in R Shiny dashboard
|
| 22 |
+
|
app_requirements/5_feature_deployment.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
5. Feature: Deployment & Operations
|
| 2 |
+
|
| 3 |
+
5.1 Story: As a developer, I need a Docker Compose configuration so that the app can be deployed as a single package.
|
| 4 |
+
β5.1.1 Task: Compose file includes Neo4j, API, and UI containers
|
| 5 |
+
β5.1.2 Task: docker-compose up starts all services
|
| 6 |
+
β5.1.3 Task: All services communicate correctly
|
| 7 |
+
|
| 8 |
+
5.2 Story: As a system, I need monitoring and logs for the containers so that issues can be quickly diagnosed.
|
| 9 |
+
β5.2.1 Task: Logs accessible from host machine
|
| 10 |
+
β5.2.2 Task: Health checks for each container
|
| 11 |
+
β5.2.3 Task: Alerts triggered on container failure
|
| 12 |
+
|
| 13 |
+
5.3 Story: As a developer, I need CI/CD integration so deployments are automated and reliable.
|
| 14 |
+
β5.3.1 Task: GitHub/GitLab pipeline runs tests on push
|
| 15 |
+
β5.3.2 Task: Successful build auto-deploys to staging
|
| 16 |
+
β5.3.3 Task: Failed build blocks deployment
|
| 17 |
+
|
| 18 |
+
5.4 Story: As a system, I need role-based access control so customer data stays private and secure.
|
| 19 |
+
β5.4.1 Task: Users authenticated before accessing data
|
| 20 |
+
β5.4.2 Task: Different roles tested (admin, user, read-only)
|
| 21 |
+
β5.4.3 Task: Unauthorized requests blocked
|
app_requirements/6_feature_MCP.txt
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
6. Feature: Neo4j MCP Server Integration (Middleware Layer)
|
| 2 |
+
|
| 3 |
+
Story 6.1: As a system, I need the Neo4j MCP server to expose graph capabilities (schema, query, write, workflow) so the LLM can interact with Neo4j safely.
|
| 4 |
+
β6.1.1 Task: Configure Neo4j MCP server with available tools (get_schema, query_graph, write_graph, run_workflow)
|
| 5 |
+
β6.1.2 Task: Implement adapters or extensions to map MCP calls into Cypher queries
|
| 6 |
+
β6.1.3 Task: Ensure schema metadata is exposed in JSON so the LLM understands available entities/relationships
|
| 7 |
+
β6.1.4 Task: Test end-to-end MCP calls against a sample Neo4j instance
|
| 8 |
+
|
| 9 |
+
Story 6.2: As a developer, I need the Neo4j MCP server to write logs into Neo4j so that queries, results, and errors can be monitored directly within the graph.
|
| 10 |
+
β6.2.1 Task: Design log schema in Neo4j (nodes/relationships for queries, responses, errors)
|
| 11 |
+
β6.2.2 Task: Configure MCP server to persist function call logs into Neo4j
|
| 12 |
+
β6.2.3 Task: Store execution time, query text, and results summary in logs
|
| 13 |
+
β6.2.4 Task: Enable querying of logs via Cypher for observability dashboards
|