@hippo-digital/hippocampus 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/LICENSE +21 -0
  3. package/README.md +153 -0
  4. package/assets/dist/hippocampus.css +1 -0
  5. package/assets/hippocampus.scss +896 -0
  6. package/assets/javascript/blueprint.js +123 -0
  7. package/bin/hippocampus.js +106 -0
  8. package/docs/agent-roadmap.md +217 -0
  9. package/docs/agent-workflow.md +56 -0
  10. package/docs/agentic-patterns-to-port.md +273 -0
  11. package/docs/colour-pairings.md +41 -0
  12. package/docs/components.md +52 -0
  13. package/docs/copilot-ncrs-research-curator-agent.md +298 -0
  14. package/docs/custom-agents-usage.md +95 -0
  15. package/docs/design-actions-and-decisions.md +95 -0
  16. package/docs/gp-connect-real-data-to-production.md +66 -0
  17. package/docs/hippocampus-for-designers-and-researchers.md +261 -0
  18. package/docs/hippocampus-technical.md +373 -0
  19. package/docs/prompt-architecture-guardrails.md +39 -0
  20. package/docs/repeatable-research-round-ingestion.md +239 -0
  21. package/docs/research-knowledge-graph.md +552 -0
  22. package/docs/research-source-file-conventions.md +121 -0
  23. package/docs/source-model.md +252 -0
  24. package/index.js +47 -0
  25. package/lib/config.js +46 -0
  26. package/lib/context.js +59 -0
  27. package/lib/create-router.js +187 -0
  28. package/lib/discover-projects.js +45 -0
  29. package/lib/docs.js +72 -0
  30. package/lib/host-edit.js +151 -0
  31. package/lib/lint-knowledge.js +133 -0
  32. package/lib/load-knowledge.js +629 -0
  33. package/lib/package-paths.js +32 -0
  34. package/lib/paths.js +33 -0
  35. package/lib/resolve-root.js +84 -0
  36. package/lib/schema-version.js +96 -0
  37. package/lib/schema.js +346 -0
  38. package/package.json +70 -0
  39. package/scripts/audit-provenance.js +147 -0
  40. package/scripts/doctor.js +114 -0
  41. package/scripts/eject.js +51 -0
  42. package/scripts/import-blueprint-spreadsheet.js +242 -0
  43. package/scripts/import-design-actions.js +230 -0
  44. package/scripts/import-project-context.js +427 -0
  45. package/scripts/import-research-batch.js +160 -0
  46. package/scripts/import-research-deck.js +448 -0
  47. package/scripts/index-source-artefacts.js +261 -0
  48. package/scripts/init.js +232 -0
  49. package/scripts/install-skills.js +160 -0
  50. package/scripts/lib/artefact-text.js +347 -0
  51. package/scripts/lib/xlsx-grid.js +114 -0
  52. package/scripts/link-insights-to-needs.js +209 -0
  53. package/scripts/migrate-knowledge.js +73 -0
  54. package/scripts/promote-project-context-draft.js +125 -0
  55. package/scripts/promote-research-draft.js +236 -0
  56. package/scripts/smoke-routes.js +157 -0
  57. package/scripts/sync-project-context.js +236 -0
  58. package/scripts/sync-research-artefacts.js +294 -0
  59. package/scripts/triage-research-corpus.js +274 -0
  60. package/scripts/validate-knowledge.js +49 -0
  61. package/scripts/validate-skills.js +247 -0
  62. package/skills/COVERAGE-MATRIX.md +39 -0
  63. package/skills/README.md +77 -0
  64. package/skills/SKILL-FORMAT.md +100 -0
  65. package/skills/add-prototype-screen.skill.md +54 -0
  66. package/skills/add-scenario.skill.md +47 -0
  67. package/skills/add-user-needs.skill.md +51 -0
  68. package/skills/audit-knowledge-source.skill.md +47 -0
  69. package/skills/capture-route-review-pack.skill.md +52 -0
  70. package/skills/create-journey-from-scenario.skill.md +50 -0
  71. package/skills/deliver-service-slice.skill.md +65 -0
  72. package/skills/examples/README.md +15 -0
  73. package/skills/examples/non-copilot-research-ingestion.md +68 -0
  74. package/skills/examples/non-copilot-service-slice.md +64 -0
  75. package/skills/generate-service-slice.skill.md +57 -0
  76. package/skills/ingest-project-context.skill.md +58 -0
  77. package/skills/ingest-research-round.skill.md +60 -0
  78. package/skills/map-research-to-graph.skill.md +58 -0
  79. package/skills/record-accessibility-review.skill.md +52 -0
  80. package/skills/record-design-decision.skill.md +53 -0
  81. package/skills/review-research-import-draft.skill.md +45 -0
  82. package/skills/skills.json +464 -0
  83. package/skills/skills.schema.json +111 -0
  84. package/skills/structure-project-context-draft.skill.md +51 -0
  85. package/skills/structure-research-draft.skill.md +51 -0
  86. package/skills/triage-research-corpus.skill.md +51 -0
  87. package/skills/write-delivery-summary.skill.md +51 -0
  88. package/skills/write-route-review-summary.skill.md +55 -0
  89. package/views/hippocampus/_layout.html +45 -0
  90. package/views/hippocampus/blueprint-classic.html +39 -0
  91. package/views/hippocampus/blueprint.html +52 -0
  92. package/views/hippocampus/components/_blueprint-cell.njk +42 -0
  93. package/views/hippocampus/components/_blueprint-controls.njk +20 -0
  94. package/views/hippocampus/components/_blueprint-minimap.njk +14 -0
  95. package/views/hippocampus/components/_empty-state.njk +12 -0
  96. package/views/hippocampus/components/_journey-step.njk +21 -0
  97. package/views/hippocampus/components/_list.njk +23 -0
  98. package/views/hippocampus/components/_summary-card.njk +15 -0
  99. package/views/hippocampus/doc.html +11 -0
  100. package/views/hippocampus/docs.html +19 -0
  101. package/views/hippocampus/evidence-impact.html +53 -0
  102. package/views/hippocampus/graph.html +48 -0
  103. package/views/hippocampus/handover-empty.html +12 -0
  104. package/views/hippocampus/handover.html +56 -0
  105. package/views/hippocampus/index.html +46 -0
  106. package/views/hippocampus/journey-flow.html +31 -0
  107. package/views/hippocampus/journey.html +23 -0
  108. package/views/hippocampus/not-found.html +10 -0
  109. package/views/hippocampus/project.html +102 -0
  110. package/views/hippocampus/research.html +68 -0
  111. package/views/hippocampus/route-review.html +83 -0
  112. package/views/hippocampus/scenarios.html +56 -0
  113. package/views/hippocampus/trace.html +113 -0
  114. package/views/hippocampus/user-needs.html +32 -0
  115. package/views/hippocampus/user.html +157 -0
  116. package/views/hippocampus/users.html +32 -0
@@ -0,0 +1,95 @@
1
+ # Custom Agents Usage
2
+
3
+ Custom agents should be used for focused review loops. The source model remains the shared contract between them.
4
+
5
+ Task recipes now live in `.github/skills/`. Use role agents for delegation, then follow the linked skill file for the exact read/edit/run flow.
6
+
7
+ For old prompt lookups, use `.github/skills/COVERAGE-MATRIX.md` to map archived prompt names to the current skill and role-agent entrypoints.
8
+
9
+ After changing the skill catalog or any `*.skill.md`, run `npx hippocampus skills validate`.
10
+
11
+ For cross-runtime examples, see `.github/skills/examples/`.
12
+
13
+ ## Suggested Agents
14
+
15
+ ### knowledge-builder
16
+
17
+ Maintains `hippocampus/source`, links records, adds assumptions and runs validation.
18
+
19
+ Use for:
20
+
21
+ - service slice generation
22
+ - user needs and scenarios
23
+ - journeys and blueprint source data
24
+ - traceability audits
25
+
26
+ ### prototype-builder
27
+
28
+ Builds or adjusts NHS Prototype Kit routes and Nunjucks views.
29
+
30
+ Use for:
31
+
32
+ - adding prototype screens
33
+ - rendering new source-model fields
34
+ - improving page states and navigation
35
+
36
+ ### ingestion-curator
37
+
38
+ Improves script-generated research and project-context drafts before promotion.
39
+
40
+ Use for:
41
+
42
+ - end-to-end research round ingestion via `ingest-research-round`
43
+ - end-to-end project-context ingestion via `ingest-project-context`
44
+ - research draft structuring
45
+ - project context draft structuring
46
+ - import draft review
47
+ - mapping reviewed research to existing graph entities
48
+
49
+ ### screenshot-runner
50
+
51
+ Captures visible review evidence for changed routes.
52
+
53
+ Use for:
54
+
55
+ - journey review packs
56
+ - before and after screenshots
57
+ - checking responsive layouts
58
+ - route review packs via `capture-route-review-pack`
59
+ - route review handover notes via `write-route-review-summary`
60
+
61
+ ### accessibility-tester
62
+
63
+ Reviews pages against basic accessibility expectations.
64
+
65
+ Use for:
66
+
67
+ - heading order
68
+ - labels and link text
69
+ - keyboard navigation
70
+ - colour and component usage
71
+ - dated accessibility notes via `record-accessibility-review`
72
+ - route review handover notes via `write-route-review-summary`
73
+
74
+ ### workflow-orchestrator
75
+
76
+ Coordinates multi-step work across source, prototype, validation and review artefacts.
77
+
78
+ Use for:
79
+
80
+ - full service slices via `deliver-service-slice`
81
+ - full research or project-context ingestion handoff
82
+ - release-style delivery summaries via `write-delivery-summary`
83
+ - screenshot and accessibility review handoff via `write-route-review-summary`
84
+ - larger design review packages
85
+
86
+ ## Output Locations
87
+
88
+ - Source data: `hippocampus/source`
89
+ - Import drafts: `hippocampus/imports/research`, `hippocampus/imports/project`
90
+ - Prototype views: `app/views`
91
+ - Routes: `app/routes.js`
92
+ - Generated screenshots: `artefacts/screenshots`
93
+ - Accessibility notes: `artefacts/accessibility`
94
+ - Delivery notes: `artefacts/delivery-summaries`
95
+ - Generated docs: `artefacts/generated-docs`
@@ -0,0 +1,95 @@
1
+ # Design actions and decisions
2
+
3
+ How the design process is recorded so that a screen can be traced back to the
4
+ research that shaped it, and to the options that were considered and turned down.
5
+
6
+ ## The process this models
7
+
8
+ ```text
9
+ findings and insights
10
+ -> design actions agreed with the team (open: several directions possible)
11
+ -> options weighed against each action
12
+ -> one decision accepted
13
+ -> into production
14
+ ```
15
+
16
+ A **design action** is the open brief. It is not a solution and not a commitment.
17
+ One action can be answered by several options, and several insights can point at
18
+ one action.
19
+
20
+ A **decision** is one option weighed against an action. All the options sit as
21
+ `proposed` while the team is deciding; then one becomes `accepted` and the rest
22
+ `rejected`. `superseded` is for a later round overturning an earlier call — use it
23
+ rather than editing the original, so the reversal is visible.
24
+
25
+ This needs no record type the knowledge base did not already have.
26
+ `DecisionSchema` has carried `proposed / accepted / rejected / superseded` all
27
+ along; it was only ever used for five notes about the prototype spike.
28
+
29
+ ## Why the rejected options matter
30
+
31
+ The accepted option ends up in production, where anyone can see it. The rejected
32
+ ones are the ones that get asked about eighteen months later — "why didn't NCRS
33
+ just do the obvious thing?" — and by then the answer lives in one person's memory
34
+ or in a meeting no one recorded. A rejected decision record with a `consequence`
35
+ answers it.
36
+
37
+ ## The workbook
38
+
39
+ `hippocampus/templates/ncrs-insight-design-action-tracker.xlsx`, one copy per round.
40
+ Three sheets that reference each other by ID:
41
+
42
+ | Sheet | One row per | Key columns |
43
+ | --- | --- | --- |
44
+ | Insights | finding | `ID`, `Insight / feedback summary`, `Signal strength`, `Design action IDs` |
45
+ | Design Actions | direction to explore | `ID`, `Action`, `Rationale`, `Status`, `Insight IDs` |
46
+ | Decisions | option weighed | `ID`, `Design action ID`, `Option`, `Status`, `Decision`, `Consequence` |
47
+
48
+ Status columns are dropdowns bound to the schema's own vocabularies, so a status
49
+ cannot drift into something that will not import.
50
+
51
+ ### Write an action once
52
+
53
+ If eleven insights share one design action, the action is one row on the Design
54
+ Actions sheet with eleven insight IDs against it. This is the single most important
55
+ rule, and the reason the sheets are split.
56
+
57
+ The Round 16 tracker had no Design Actions sheet — the action was a free-text column
58
+ on each insight row — so "Whole search re-design and integration of requirements" was
59
+ retyped on every row it applied to, drifting slightly each time. It imported as three
60
+ near-identical design actions that no script could reconcile, because there was no
61
+ way to tell a genuine variant from a retyping.
62
+
63
+ ### Status is status
64
+
65
+ The Round 16 tracker's `Status` column held priority values, so design action status
66
+ had to be inferred from `Next Action` instead. Priority is a different question and
67
+ belongs in its own column.
68
+
69
+ ## Importing
70
+
71
+ ```bash
72
+ npx hippocampus import design-actions -- --workbook <path> --dry-run
73
+ npx hippocampus import design-actions -- --workbook <path>
74
+ npx hippocampus validate
75
+ ```
76
+
77
+ The importer refuses the workbook rather than importing something broken, and names
78
+ what to fix. It checks that every insight ID exists in the knowledge base, that every
79
+ design action ID a decision points at exists, that statuses are in the permitted set,
80
+ and that no action has two accepted options. It validates the whole knowledge base
81
+ before writing anything, so a bad workbook cannot leave source data broken.
82
+
83
+ ## How this traces
84
+
85
+ Relationships point from a dependent to what it relies on, because evidence impact
86
+ walks `relationship.to -> relationship.from`:
87
+
88
+ ```text
89
+ decision --resolves-action--> design action --responds-to-insight--> insight --supported-by--> evidence
90
+ ```
91
+
92
+ Asking for the impact of a piece of evidence now returns the insights, the design
93
+ actions and the decisions that rest on it. Before this, `insight --leads-to-action-->
94
+ action` pointed the other way and the walk stopped at the insight — the design work
95
+ was invisible to exactly the question worth asking of it.
@@ -0,0 +1,66 @@
1
+ # GP Connect: Real Data → Production Workflow
2
+
3
+ This doc connects four repos into one pipeline: pulling real GP Connect/PDS data, rendering and reviewing it in `ncrs-prototype-agentic`, capturing the resulting UI decisions where they belong, and making those decisions available to production builds in `ncrs-ui`. Hippocampus integration is a later, explicitly deferred stage — see Stage 6.
4
+
5
+ If anything here conflicts with `ncrs-prototype-agentic/ARCHITECTURE.md`, that file wins.
6
+
7
+ ## Repos involved
8
+
9
+ | Repo | Role in this workflow |
10
+ | --- | --- |
11
+ | `gpconnect-ui-testdata` | Bruno collection for pulling real bundles from GP Connect providers (JWT pre-request script, TLS-MA). Also a scratch space for prototyping a new edge case before it's formalised. |
12
+ | `ncrs-prototype-agentic` | Renders bundles, hosts the canonical synthetic-fixture pipeline, and is where edge-case-driven UI decisions get written down. |
13
+ | `ncrs-ui` | Production React build. Its Copilot skills read `ncrs-prototype-agentic`'s decision records when porting a component. |
14
+ | `nhs-prototype-hippocampus` (this repo) | Structured design knowledge base. Not yet wired to clinical/FHIR content — see Stage 6. |
15
+
16
+ ## Stage 1 — Acquire real bundles
17
+
18
+ Use the Bruno collection in `gpconnect-ui-testdata/bruno`. It has a working `alg: none` JWT pre-request script and environments for Integration and the local demonstrator.
19
+
20
+ Blocked on: NHS integration credentials (`sspPrefix`, `providerFhirBase`, `consumerAsid`/`providerAsid`, `consumerOdsCode`, `sdsUserId`, `sdsRoleProfileId`) via your org's assurance process. Client cert for TLS-MA if calling a real provider rather than the local demonstrator.
21
+
22
+ SystmOne-in-Parallels is a secondary reality check for one specific quirk, not the main data loop — it validates on entry and won't produce most of the interesting edge cases.
23
+
24
+ ## Stage 2 — Bring bundles into ncrs-prototype-agentic
25
+
26
+ Two landing spots, depending on shape:
27
+
28
+ - **Single-patient real/reference bundles** → `app/data/gpud-data-*.json`, wired up via `getGpConnectDataFileName()` in `app/lib/gpconnect/core.js`. Fine for one-off "does this real bundle render" checks.
29
+ - **Multi-source, scenario-driven synthetic bundles** → the canonical fixture pipeline: `test-data/clinical-scenarios/*.json` → `scripts/build-clinical-fixtures.mjs` → `test-data/generated/<scenario-id>/`. See `docs/CLINICAL-DATA-FIXTURES.md` (in `ncrs-prototype-agentic`) for the full model (persona / canonical truth / per-source includes-overrides-omits).
30
+
31
+ **Decision on blood pressure specifically:** the BP generator in `gpconnect-ui-testdata/generate.js` was built before `ncrs-prototype-agentic`'s fixture pipeline was reviewed. `docs/plans/synthetic-fhir-test-suite-builder.md` (in `ncrs-prototype-agentic`) already scoped `Observation` into the canonical builder from the start. Fold the 15 BP scenarios into `test-data/clinical-scenarios/` as `Observation`-based scenario specs (persona/truth/source-matrix shape) rather than maintaining `generate.js` as a second system long-term. Keep `gpconnect-ui-testdata` for the Bruno collection and for prototyping the *next* new edge case idea before it's formalised there.
32
+
33
+ ## Stage 3 — Render, review, check
34
+
35
+ In `ncrs-prototype-agentic`:
36
+
37
+ - Follow `docs/GP-CONNECT-UI-CHANGE-CHECKLIST.md` before touching the live GP Connect surfaces.
38
+ - Run `npm run test:clinical-fixtures` for scenario-driven work (build → audit → compare against `expected-clusters.json`).
39
+ - Use `@screenshot-runner` / `@accessibility-tester` per `docs/AGENT-WORKFLOW.md` for the review loop.
40
+
41
+ ## Stage 4 — Capture the decision
42
+
43
+ Each edge case forces a "what should the UI do here" decision. Write it into `ncrs-prototype-agentic`'s `docs/components/<component>.md` using the existing template (`docs/components/template.md`) — not a new artefact type. The template's **Design intent**, **Parameters**, and **Testing and validation → Regression risks** sections are exactly where FHIR-edge-case behaviour belongs (e.g. `dataAbsentReason` handling, the `Observation.related` escape hatch, qualifiers flattened into `comment`).
44
+
45
+ This is the load-bearing step: it's the only thing `ncrs-ui`'s skills read in Stage 5.
46
+
47
+ ## Stage 5 — Production skills consume the decision
48
+
49
+ `ncrs-ui/.github/prompts/port-ncrs-nunjucks-component.prompt.md` currently inspects only the Nunjucks source when porting a component. Extend it (or add a paired skill) to read the matching `ncrs-prototype-agentic/docs/components/<component>.md` first, and to check whether the documented edge cases are represented in the ported component's tests/Storybook states.
50
+
51
+ Adopt the portable skill format this repo already built and validated — `.skill.md` + YAML front matter (`id`, `purpose`, `owners`, `reads`, `edits`, `runs`, `outputs`, `guardrails`, `acceptance`), checked by `npx hippocampus skills validate`. It's plain Markdown/JSON, works today as a Copilot custom prompt, and is the actual answer to "tool-agnostic" — no need to invent a second format for `ncrs-ui`. See `.github/skills/SKILL-FORMAT.md`.
52
+
53
+ ## Stage 6 — Hippocampus integration (deferred)
54
+
55
+ `docs/agentic-patterns-to-port.md` (this repo) already flags the clinical FHIR fixture workflow as low-value/defer: it is powerful but NCRS-specific and would pull the knowledge base toward clinical data testing before the service design model is proven. Don't revisit until Stage 4 has produced enough decision records across GP Connect sections (not just BP) to be worth making queryable that way, or a slice specifically needs structured clinical data provenance / source contradiction / fixture generation surfaced through hippocampus.
56
+
57
+ `ncrs-prototype-agentic/ARCHITECTURE.md` step 7 ("optional evidence-linked handoff") already anticipates a hippocampus link via `hippocampus/prototype-maps/<journey-slug>.json` — that's the hook to extend when this stage is triggered, not a new integration point.
58
+
59
+ ## Cross-references
60
+
61
+ - `ncrs-prototype-agentic/docs/CLINICAL-DATA-FIXTURES.md` — canonical fixture pipeline
62
+ - `ncrs-prototype-agentic/docs/plans/synthetic-fhir-test-suite-builder.md` — original design scope (includes `Observation`)
63
+ - `ncrs-prototype-agentic/docs/GP-CONNECT-UI-CHANGE-CHECKLIST.md` — before changing live GP Connect UI
64
+ - `ncrs-prototype-agentic/docs/components/template.md` — decision-capture template
65
+ - `.github/skills/SKILL-FORMAT.md` — portable skill contract
66
+ - `docs/agentic-patterns-to-port.md` — deferral rationale for Stage 6
@@ -0,0 +1,261 @@
1
+ # Hippocampus for Designers and Researchers
2
+
3
+ Hippocampus is a place to keep design knowledge in a structured way.
4
+
5
+ It helps a team connect research, user needs, scenarios, journeys, prototype screens, decisions and evidence so the work does not become scattered across decks, screenshots and notes.
6
+
7
+ ## What It Is For
8
+
9
+ Hippocampus helps answer questions like:
10
+
11
+ - Who is this service for?
12
+ - What do those users need?
13
+ - What evidence supports those needs?
14
+ - Which scenarios are we designing for?
15
+ - Which journeys and screens respond to those scenarios?
16
+ - Why did we make this design decision?
17
+ - What might be affected if a piece of evidence changes?
18
+
19
+ The aim is traceability. A prototype screen should not just exist as a page. It should connect back to the research, needs and decisions that shaped it.
20
+
21
+ ## The Main Idea
22
+
23
+ Think of Hippocampus as the project memory.
24
+
25
+ The source folder contains structured knowledge:
26
+
27
+ ```text
28
+ hippocampus/source/
29
+ ```
30
+
31
+ The viewer turns that knowledge into pages:
32
+
33
+ ```text
34
+ /hippocampus
35
+ ```
36
+
37
+ So the team can browse the work without reading JSON files.
38
+
39
+ ## What Goes Into It
40
+
41
+ Hippocampus stores different kinds of design knowledge.
42
+
43
+ **Users**
44
+ The groups of people involved in or affected by the service.
45
+
46
+ **Project context**
47
+ The general service overview: purpose, vision, problem statement, policy context, service channels, constraints, risks, milestones and key facts.
48
+
49
+ **User needs**
50
+ Specific needs that should influence the design.
51
+
52
+ **Scenarios**
53
+ Realistic situations where a user needs to do something.
54
+
55
+ **Journeys**
56
+ Step-by-step flows through a scenario.
57
+
58
+ **Prototype screens**
59
+ Screens built in the NHS Prototype Kit and linked back to needs.
60
+
61
+ **Evidence**
62
+ Research, documents, scenario maps or other sources that support the work.
63
+
64
+ **Decisions**
65
+ Design or product decisions, including the reason and consequence.
66
+
67
+ **Research rounds, participants, insights and actions**
68
+ Research material that can be linked into the rest of the knowledge base.
69
+
70
+ ## How The Graph Works
71
+
72
+ The graph is a map of links between things.
73
+
74
+ For example:
75
+
76
+ ```text
77
+ user -> has need -> supported by evidence
78
+ scenario -> tests need
79
+ scenario -> drives journey
80
+ journey -> renders screen
81
+ screen -> addresses need
82
+ decision -> records why something changed
83
+ ```
84
+
85
+ This means the team can move through the work from different directions.
86
+
87
+ You can start with a user and see:
88
+
89
+ ```text
90
+ their scenarios
91
+ their needs
92
+ the evidence behind those needs
93
+ the journeys and screens already generated
94
+ the decisions connected to those screens
95
+ ```
96
+
97
+ Or you can start with evidence and see:
98
+
99
+ ```text
100
+ which needs, journeys, screens or decisions depend on it
101
+ ```
102
+
103
+ That is useful when research changes or when someone asks, "Why is this screen designed like this?"
104
+
105
+ ## User Graph Pages
106
+
107
+ Each user can have a graph page.
108
+
109
+ Example:
110
+
111
+ ```text
112
+ /hippocampus/users/policy-administrator
113
+ ```
114
+
115
+ This page gathers everything linked to that user:
116
+
117
+ - scenarios
118
+ - needs
119
+ - evidence
120
+ - journeys
121
+ - screens
122
+ - decisions
123
+
124
+ The page is not manually written. It is assembled from the structured source.
125
+
126
+ ## Project Context
127
+
128
+ The project context page is:
129
+
130
+ ```text
131
+ /hippocampus/project
132
+ ```
133
+
134
+ Use this for overview boards, service maps, policy summaries and other generic project material.
135
+
136
+ This is separate from research. A project overview may contain useful facts, but it is not the same thing as a research round, participant insight or design action.
137
+
138
+ Project overview PDFs or decks can be dropped into:
139
+
140
+ ```text
141
+ hippocampus/inbox/project/
142
+ ```
143
+
144
+ Then the team can run:
145
+
146
+ ```bash
147
+ npx hippocampus import project-context
148
+ ```
149
+
150
+ The importer creates a review draft first. After review, promotion adds the material to `hippocampus/source/project-context.json`.
151
+
152
+ ## Relationship Graph
153
+
154
+ The relationship graph page is:
155
+
156
+ ```text
157
+ /hippocampus/graph
158
+ ```
159
+
160
+ It shows:
161
+
162
+ - linked entities
163
+ - relationship types
164
+ - how records connect to each other
165
+
166
+ At the moment, this is a readable list and card view rather than a visual network map. That is deliberate for now: the priority is making the links understandable and trustworthy.
167
+
168
+ ## Trace Tree
169
+
170
+ The trace tree page is:
171
+
172
+ ```text
173
+ /hippocampus/trace
174
+ ```
175
+
176
+ It lets the team choose any linked thing and move in both directions:
177
+
178
+ - **What leads here**: earlier research, evidence, scenarios or design inputs
179
+ - **What this leads to**: later insights, actions, screens, decisions or content
180
+
181
+ This is intended for paths such as:
182
+
183
+ ```text
184
+ old design -> research -> insight -> action -> new design -> content
185
+ ```
186
+
187
+ The trace tree depends on relationships in the knowledge source. If a path is missing, add or import the missing relationship rather than manually drawing the tree.
188
+
189
+ ## Evidence Impact
190
+
191
+ Evidence impact shows what relies on a piece of evidence.
192
+
193
+ Example:
194
+
195
+ ```text
196
+ /hippocampus/evidence/evidence-policy-administrators-scenario-map/impact
197
+ ```
198
+
199
+ This helps with questions like:
200
+
201
+ - If this evidence is weak, what needs reviewing?
202
+ - Which needs depend on this research?
203
+ - Which screens or journeys might need to change?
204
+ - What should we revisit after new research?
205
+
206
+ This is one of the most useful parts of the graph. It turns evidence from a static reference into something the team can use for design governance.
207
+
208
+ ## Research Import
209
+
210
+ Research material can be dropped into:
211
+
212
+ ```text
213
+ hippocampus/inbox/research/
214
+ ```
215
+
216
+ Then the team can run:
217
+
218
+ ```bash
219
+ npx hippocampus research sync
220
+ ```
221
+
222
+ The importer looks for new files, creates a review draft and asks before promoting anything into the main knowledge base.
223
+
224
+ This matters because decks and PDFs are messy. The system should not silently turn extracted text into official design knowledge without review.
225
+
226
+ ## Why This Helps
227
+
228
+ Hippocampus makes design work easier to inspect.
229
+
230
+ Instead of separate artefacts saying different things, the team can build from one connected source:
231
+
232
+ ```text
233
+ research
234
+ -> insight
235
+ -> need
236
+ -> scenario
237
+ -> journey
238
+ -> prototype screen
239
+ -> decision
240
+ ```
241
+
242
+ This should make it easier to:
243
+
244
+ - onboard people into a project
245
+ - explain design decisions
246
+ - review evidence
247
+ - brief agents or collaborators
248
+ - generate handover material
249
+ - understand what changed and why
250
+
251
+ ## What It Does Not Do Yet
252
+
253
+ Hippocampus does not yet:
254
+
255
+ - replace research analysis
256
+ - automatically know which insights are important
257
+ - create perfect links without human review
258
+ - show a fully interactive visual graph
259
+ - replace good design judgement
260
+
261
+ It gives the team a structured memory. The quality still depends on what the team puts into it.