@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.
- package/CHANGELOG.md +55 -0
- package/LICENSE +21 -0
- package/README.md +153 -0
- package/assets/dist/hippocampus.css +1 -0
- package/assets/hippocampus.scss +896 -0
- package/assets/javascript/blueprint.js +123 -0
- package/bin/hippocampus.js +106 -0
- package/docs/agent-roadmap.md +217 -0
- package/docs/agent-workflow.md +56 -0
- package/docs/agentic-patterns-to-port.md +273 -0
- package/docs/colour-pairings.md +41 -0
- package/docs/components.md +52 -0
- package/docs/copilot-ncrs-research-curator-agent.md +298 -0
- package/docs/custom-agents-usage.md +95 -0
- package/docs/design-actions-and-decisions.md +95 -0
- package/docs/gp-connect-real-data-to-production.md +66 -0
- package/docs/hippocampus-for-designers-and-researchers.md +261 -0
- package/docs/hippocampus-technical.md +373 -0
- package/docs/prompt-architecture-guardrails.md +39 -0
- package/docs/repeatable-research-round-ingestion.md +239 -0
- package/docs/research-knowledge-graph.md +552 -0
- package/docs/research-source-file-conventions.md +121 -0
- package/docs/source-model.md +252 -0
- package/index.js +47 -0
- package/lib/config.js +46 -0
- package/lib/context.js +59 -0
- package/lib/create-router.js +187 -0
- package/lib/discover-projects.js +45 -0
- package/lib/docs.js +72 -0
- package/lib/host-edit.js +151 -0
- package/lib/lint-knowledge.js +133 -0
- package/lib/load-knowledge.js +629 -0
- package/lib/package-paths.js +32 -0
- package/lib/paths.js +33 -0
- package/lib/resolve-root.js +84 -0
- package/lib/schema-version.js +96 -0
- package/lib/schema.js +346 -0
- package/package.json +70 -0
- package/scripts/audit-provenance.js +147 -0
- package/scripts/doctor.js +114 -0
- package/scripts/eject.js +51 -0
- package/scripts/import-blueprint-spreadsheet.js +242 -0
- package/scripts/import-design-actions.js +230 -0
- package/scripts/import-project-context.js +427 -0
- package/scripts/import-research-batch.js +160 -0
- package/scripts/import-research-deck.js +448 -0
- package/scripts/index-source-artefacts.js +261 -0
- package/scripts/init.js +232 -0
- package/scripts/install-skills.js +160 -0
- package/scripts/lib/artefact-text.js +347 -0
- package/scripts/lib/xlsx-grid.js +114 -0
- package/scripts/link-insights-to-needs.js +209 -0
- package/scripts/migrate-knowledge.js +73 -0
- package/scripts/promote-project-context-draft.js +125 -0
- package/scripts/promote-research-draft.js +236 -0
- package/scripts/smoke-routes.js +157 -0
- package/scripts/sync-project-context.js +236 -0
- package/scripts/sync-research-artefacts.js +294 -0
- package/scripts/triage-research-corpus.js +274 -0
- package/scripts/validate-knowledge.js +49 -0
- package/scripts/validate-skills.js +247 -0
- package/skills/COVERAGE-MATRIX.md +39 -0
- package/skills/README.md +77 -0
- package/skills/SKILL-FORMAT.md +100 -0
- package/skills/add-prototype-screen.skill.md +54 -0
- package/skills/add-scenario.skill.md +47 -0
- package/skills/add-user-needs.skill.md +51 -0
- package/skills/audit-knowledge-source.skill.md +47 -0
- package/skills/capture-route-review-pack.skill.md +52 -0
- package/skills/create-journey-from-scenario.skill.md +50 -0
- package/skills/deliver-service-slice.skill.md +65 -0
- package/skills/examples/README.md +15 -0
- package/skills/examples/non-copilot-research-ingestion.md +68 -0
- package/skills/examples/non-copilot-service-slice.md +64 -0
- package/skills/generate-service-slice.skill.md +57 -0
- package/skills/ingest-project-context.skill.md +58 -0
- package/skills/ingest-research-round.skill.md +60 -0
- package/skills/map-research-to-graph.skill.md +58 -0
- package/skills/record-accessibility-review.skill.md +52 -0
- package/skills/record-design-decision.skill.md +53 -0
- package/skills/review-research-import-draft.skill.md +45 -0
- package/skills/skills.json +464 -0
- package/skills/skills.schema.json +111 -0
- package/skills/structure-project-context-draft.skill.md +51 -0
- package/skills/structure-research-draft.skill.md +51 -0
- package/skills/triage-research-corpus.skill.md +51 -0
- package/skills/write-delivery-summary.skill.md +51 -0
- package/skills/write-route-review-summary.skill.md +55 -0
- package/views/hippocampus/_layout.html +45 -0
- package/views/hippocampus/blueprint-classic.html +39 -0
- package/views/hippocampus/blueprint.html +52 -0
- package/views/hippocampus/components/_blueprint-cell.njk +42 -0
- package/views/hippocampus/components/_blueprint-controls.njk +20 -0
- package/views/hippocampus/components/_blueprint-minimap.njk +14 -0
- package/views/hippocampus/components/_empty-state.njk +12 -0
- package/views/hippocampus/components/_journey-step.njk +21 -0
- package/views/hippocampus/components/_list.njk +23 -0
- package/views/hippocampus/components/_summary-card.njk +15 -0
- package/views/hippocampus/doc.html +11 -0
- package/views/hippocampus/docs.html +19 -0
- package/views/hippocampus/evidence-impact.html +53 -0
- package/views/hippocampus/graph.html +48 -0
- package/views/hippocampus/handover-empty.html +12 -0
- package/views/hippocampus/handover.html +56 -0
- package/views/hippocampus/index.html +46 -0
- package/views/hippocampus/journey-flow.html +31 -0
- package/views/hippocampus/journey.html +23 -0
- package/views/hippocampus/not-found.html +10 -0
- package/views/hippocampus/project.html +102 -0
- package/views/hippocampus/research.html +68 -0
- package/views/hippocampus/route-review.html +83 -0
- package/views/hippocampus/scenarios.html +56 -0
- package/views/hippocampus/trace.html +113 -0
- package/views/hippocampus/user-needs.html +32 -0
- package/views/hippocampus/user.html +157 -0
- 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.
|