sharepoint-list-architecture

Designs SharePoint list schemas with column types, indexing, and relationships for Power Apps backends.

Updated Jul 25, 2026
One-click install
npx skills add https://github.com/RorySullivan1/powerapp_taskmaster --skill sharepoint-list-architecture-rorysullivan1
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: sharepoint-list-architecture
Source: https://github.com/RorySullivan1/powerapp_taskmaster/tree/main/.claude/skills/sharepoint-list-architecture
Command: npx skills add https://github.com/RorySullivan1/powerapp_taskmaster --skill sharepoint-list-architecture-rorysullivan1

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? SharePoint lists used as application backends break at scale: queries hit the 5,000-item list view threshold, Power Apps delegation silently truncates results to 500 rows, and poorly chosen column types make filtering impossible. This Skill designs the list schema — column types, indexes, relationships, and permissions — so queries stay correct and fast as data grows. ## Core Features & Use Cases - Column Type Selection: Decision tables mapping data shapes to the right SharePoint column type (Choice vs Lookup, Person vs Text), with delegation and indexing implications for each. - Threshold & Indexing Playbook: A step-by-step strategy for surviving the 5,000-item list view threshold — scoping lists, indexing filter columns early, and pre-filtering views. - Relationship Modeling: Guidance on lookup columns, the 8-join query ceiling, cascade/restrict delete, and when to denormalize parent values into child lists. - Use Case: You are building a Power App over a task list expected to reach 40,000 rows. Use this Skill to produce a schema with indexed Status, DueDate, and AssignedTo columns plus a denormalized project key, so every app query stays delegable and under the threshold. ## Quick Start Ask the assistant to design a SharePoint list schema for your Power App, stating your expected row count, main filters, and who reads which records.

Frequently Asked Questions about sharepoint-list-architecture

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I design a SharePoint list schema for a Power App?▼

Start by estimating row count and identifying the columns the app filters on most. Choose delegable, indexable types (text, Choice, Date, Number, Yes/No) for those columns, index them while the list is small, and pre-filter every view on an indexed column.

SharePoint Choice vs Lookup column — which should I use?▼

Use a Choice column when the values are a small, stable set owned by your app — it is delegable and costs no join. Use a Lookup only when values live in and are maintained by another list, since each lookup consumes one of the 8 allowed joins per query.

How do I fix the SharePoint 5000 item list view threshold error?▼

Index the columns your views filter on so queries scan fewer than 5,000 rows, and make the first filter clause hit an indexed column. Also pre-filter every view; note that adding indexes manually is throttled once a list exceeds 20,000 items.

Why does my Power App only return 500 rows from SharePoint?▼

The query is non-delegable, so Power Apps processes only the first 500 rows locally (raisable to 2,000). Fix the schema by filtering on delegable, indexed column types such as text, dates, numbers, or Choice rather than multiple-lines or calculated columns.

When should I use Dataverse instead of a SharePoint list?▼

Choose Dataverse when you need real referential integrity, more than roughly 100,000 rows, rich role-based security, or many table joins. A well-indexed SharePoint list is the cheaper, sufficient option for a few thousand structured records behind an app.

Why did renaming a SharePoint column break my Power Fx formula?▼

A column's internal name is frozen at creation and renaming only changes the display name, so formulas and API calls still bind to the original internal name. Create columns with clean names from the start to keep internal names sane.