AssayLink Docs

Continuing development (agent playbook)

Instructions for a third-party coding agent picking up this repository cold. Scope, constraints, and safe next work.

How an agent should work here

  1. Read CLAUDE.md and this page before large edits.
  2. Treat meeting notes (docs/meeting-notes.md) and the product brief as product-context authoritative for workflow and scope.
  3. Prefer changing data (sections, field definitions, rules, vocabulary, catalogue groups) over hard-coding UI enums.
  4. Keep AI behind server/ai/; validate with Zod; route new terms to SuggestedTerm.
  5. Put business rules in services; Prisma only in repositories.
  6. Add unit tests for domain logic you touch; run lint, typecheck, and tests before reporting completion.
  7. Do not modify terraform/. Infra changes go through config.yml only.
  8. Application code that must ship in the container belongs under src/web/.

Good next increments (examples)

Do not

Definition of done (code change)

cd src/web
npm run lint
npm run typecheck
npm test
# optional: npm run test:e2e
# optional: npm run docs:screenshots   # if UI changed meaningfully

Domain language (use these names)

TermMeaning
Assay TemplateReusable assay definition; has versions
Assay Template VersionImmutable-once-approved metadata snapshot
Project Assay LinkProject’s use of a version + context; not a run
MaRLayExternal project master data; six-digit ids
Vocabulary / TermGoverned controlled list / concept
Metadata Field DefinitionField in the assay metadata model
Metadata SectionSteward-named group of fields; wizard pages by these
Metadata RuleWhen/then logic: show, require, restrict vocabulary terms
Metadata Quality ScoreCompleteness, vocabulary compliance, rule consistency — not experimental results
Template ReviewSteward decision on a submitted version
Suggested TermCandidate awaiting steward approval
Assay subtypes are out of the primary demo UX (ADR-0003). Use Template Version and Project Assay Link / Project Usage. A reusable variant concept remains future-direction documentation only.

← Technical hub · User guide