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