plugins/lisa-harper-fabric-cursor/skills/harper-schema-graphql/SKILL.md
This skill should be used when editing a Harper (HarperDB/Fabric) schema.graphql — defining or changing database tables, types, fields, relationships, or indexes that the graphqlSchema extension turns into Harper tables and API surface. Use it when adding a table, changing the data model, or when a resource/verify path depends on schema shape. Pairs with harper-resources, harper-config-yaml, and harper-component-model.
npx skillsauth add codyswanngt/lisa harper-schema-graphqlInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Harper defines its database tables and types from GraphQL schema files, loaded
by the graphqlSchema extension (default *.graphql; this project uses
harper-app/schema.graphql). The schema is the source of truth for the data model:
the tables it declares are what resources extend ([[harper-resources]]) and what
the REST/GraphQL surface exposes.
A table is a GraphQL type. Harper-specific directives mark a type as a persisted
table and control exposure, primary keys, and indexes. The exact directive set
depends on the Harper version in use — confirm against the live schema.graphql
in this project and the Harper schema docs before adding new syntax. Common shape:
type Dog @table {
id: ID @primaryKey
name: String @indexed
breed: String
owner: String
}
@table marks the type as a persisted Harper table.@primaryKey marks the primary key field.@indexed adds a secondary index for query/search.rest
configuration — see [[harper-config-yaml]].Treat the directive names above as a starting point, not gospel — verify against the project's existing schema and current Harper docs, since directive syntax has evolved across versions.
graphqlSchema extension creates/migrates tables from the schema on load.rest: true exposes exported tables/resources as REST endpoints; the GraphQL
surface is generated from the same schema.extends tables.X depend on X existing in the schema. A rename
or removal in the schema is a breaking change for every resource and verify path
that references it.schema.graphql is source and lives at the component root that Fabric
packages (harper-app/schema.graphql). Keep it there.After a schema change, boot the app (harper dev harper-app or the project run
command) and confirm tables migrate cleanly and the dependent endpoints respond.
Run any verify path that asserts row counts or joins against the changed model.
documentation
Onboard a user to the project via its LLM Wiki. Interviews the user about themselves in relation to the project, captures that to project-scoped memory only, then gives a guided tour of what the project is and sample questions they can ask. Use when someone is new to the project or asks to be onboarded. Read-mostly — it does not open PRs or write PII into the wiki.
documentation
Migrate an existing, hand-rolled wiki implementation onto the lisa-wiki kernel — phased and compatibility-first, with a strict no-loss guarantee. Use when adopting lisa-wiki in a repo that already has its own wiki/, ingest skills, docs, or roles. Renaming things into the canonical shape is fine; losing functionality or data is not. Ends by running /doctor.
development
Health-check the LLM Wiki. Reports orphan pages, contradictions, stale claims, broken internal links, missing index/log coverage, structure-manifest violations, and secret/tenant leaks. Use periodically or before hardening a wiki. Read-only — it reports findings, it does not fix them.
testing
Ingest source material into the LLM Wiki. With an argument (URL, file path, or prompt) it ingests that one source; with no argument it runs a full ingest across every enabled non-external-write source. Routes to the right connector, then runs the ordered pipeline (source note → synthesis → index → log → verify → state → commit/PR). Use whenever new knowledge should enter the wiki.