When to use
Use this skill to design, create, demonstrate, audit, rebuild, or extend a SharePoint business solution. It applies to any domain, including procurement, HR, finance, legal, IT, projects, operations, compliance, sales, service management, facilities, and administration.
Use it when the solution may include one or more of:
- SharePoint lists or document libraries.
- Main transaction records and related detail records.
- Reference data and configurable business rules.
- Native SharePoint approvals.
- Event-driven or scheduled workflows.
- Notifications through Teams or Outlook.
- Demo or seed data.
- Live HTML dashboards backed by SharePoint lists.
- An app-like user experience or architecture recommendation.
Don't use standalone HTML as a security boundary or claim it can securely create and update data while hiding the underlying lists. SharePoint permissions still apply. For a true application-only experience, recommend Power Apps, SPFx, or a secured API/middleware layer with app-only permissions.
Inputs
Extract from the conversation first, then discover missing technical context:
- Business purpose, users, roles, lifecycle, decisions, and reporting needs.
- Target SharePoint site URL.
- Existing lists, libraries, forms, approvals, workflows, rules, and dashboards.
- Main records, child/detail records, reference data, configuration, audit history, and integration logs.
- Fields, types, required values, defaults, uniqueness, choices, validation, attachments, and retention needs.
- Approval routing, triggers, conditions, recipients, messages, schedules, and escalation rules.
- People used in User fields.
- External systems and approved integration method.
- Demo-data requirements.
- Dashboard audience, KPIs, filters, breakdowns, tables, destination library, and file name.
- Whether the output is reporting-only or must support secure create/update actions.
Ask at most one question when a required value can't be discovered. Don't ask for IDs or internal names that tools can resolve.
Steps
1. Understand and decompose the process
- Convert the user's plan into:
- Actors and roles.
- Main business record.
- Child or line-item records.
- Reference/master data.
- Rules and configuration.
- Approval and lifecycle states.
- Integration events and runtime data.
- Audit or assistant history.
- Operational and leadership reporting.
- Separate SharePoint-owned data from live external-system data.
- Identify sensitive data and permission requirements before choosing the user experience.
- Briefly state the proposed execution plan before a multi-step build.
2. Discover before creating
- Use
discover_sharepoint_listsbefore creating lists or libraries. - Inspect relevant schemas with
get_list_schema. - Inspect existing workflows, approvals, rules, quick steps, and forms when relevant.
- Reuse or update matching artifacts rather than creating duplicates.
- Resolve all IDs, URLs, paths, internal field names, people, lookups, taxonomy values, and location values through tools. Never fabricate them.
3. Design a reusable data model
Choose only the artifacts the process needs. Common patterns are:
- Primary records list: one item per request, case, project, ticket, application, order, review, or transaction.
- Detail/child list: line items, tasks, milestones, participants, products, costs, findings, or responses linked through a stable parent key.
- Approvals/audit list: stage, sequence, approver, decision, comments, assigned date, response date, and cycle time when independent reporting is needed.
- Rules/configuration list: thresholds, categories, routing rules, owners, service levels, and active flags.
- Reference lists: departments, teams, cost centers, vendors, clients, locations, categories, products, or other controlled values.
- Integration log: entity, operation, status, timestamp, summary, correlation ID, retry flag, and retry count.
- Interaction/history list: questions, responses, feedback, user, context, and timestamp when required.
- Document library: supporting documents, controlled templates, generated outputs, or large attachments.
For every field decide:
- Contextual display name and stable alphanumeric internal name.
- Correct SharePoint type.
- Required or optional.
- Default value.
- Valid choices.
- Uniqueness and indexing requirements.
- Minimum or maximum for numbers.
- DateOnly versus DateTime.
- Single versus multiple people or choices.
- Whether attachments are appropriate.
Don't use free text where controlled reference data is essential, unless the user prioritizes simplicity over referential integrity.
4. Create lists and libraries safely
- Use
create_or_update_listonly after duplicate discovery. - For every new list, include the built-in
Titlefield definition and rename it to the business identifier or record name. - Don't recreate system fields such as Created, Modified, Created By, and Modified By.
- Use document libraries for files, not generic lists.
- Preserve attachments on business records when supporting evidence is needed.
- Enable native approvals only for actual approval scenarios.
- Add navigation links only when appropriate; avoid exposing technical/configuration lists in site navigation by default.
- After creation, retrieve and inspect the resulting schema.
- If the tool ignores a required/unique setting on Title or another field, report it and correct it with a supported update when possible.
5. Validate schema and apply formatting
- Use
get_list_schemato verify:- Internal names.
- Field types.
- Required flags.
- Defaults and choice values.
- Unique-value settings.
- Attachments, versioning, and approvals.
- Use verified internal names in all later operations.
- Apply column formatting to semantic fields when supported:
- Status and approval decisions as compact pills.
- Priority and risk as urgency cues.
- Dates as overdue or upcoming cues when meaningful.
- People as readable identity chips.
- Progress as bars only when values represent progress or capacity.
- Keep exact financial values readable; don't use data bars for ordinary cost, price, invoice, or payable fields.
- If formatting is applied to the wrong current list or library, don't claim success. Report skipped formatting and preserve the data.
- Preview view changes before applying requested sort, filter, grouping, or special layouts.
6. Choose the correct automation mechanism
- Load the automation skill for automation work.
- Prefer:
- Native Approvals for approve/reject decisions.
- Workflows for automatic, conditional, recurring, cross-service, or multi-stage behavior.
- Quick Steps for manual selected-item actions.
- Rules only when explicitly requested or when a verified workflow gap requires them.
- Check native approval state before creating a parallel custom approval process.
- Inspect existing workflows before creating new ones.
- Retrieve live workflow components before constructing a workflow.
- Resolve dynamic site, list, library, folder, team, channel, and person options through the workflow parameter tool.
- If a trigger has a qualifier, retrieve
triggerOutputSchemaand copy the returned condition token verbatim. - Use exact configured Choice values in conditions.
- Include meaningful dynamic trigger values in messages and approval details.
- Split workflows when one observable state change should trigger a later independent process, or when current capabilities allow only one action per workflow.
- Summarize every created workflow with title, trigger, condition, action, and complete notification body.
- State verified limitations, including manager-routing or unsupported field-update behavior.
7. Seed coherent demo data
Only seed data when the user requests it.
- Inspect schemas before writing.
- Resolve User fields with
get_user_infoand passformattedValueunchanged. - Resolve Lookup, taxonomy, and location values with their helper tools.
- Use ISO 8601 UTC with seconds and
Zfor DateTime fields. Use noon UTC for DateOnly values. - Pass numbers and currency as invariant plain numbers.
- Populate reference/configuration lists first.
- Populate primary records before related detail, approval, integration, and history records.
- Use stable shared identifiers across related lists.
- Include at least three realistic scenarios with varied lifecycle states, values, dates, owners, and exceptions so dashboards are meaningful.
- Keep the records internally consistent across lists.
- Create small per-list batches because human review may time out.
- On timeout or unavailable results, don't assume success. Inspect item counts or list data before retrying, and avoid duplicates.
- Report created counts and failures for every list.
8. Build live HTML dashboards
Use this path for reporting and monitoring, not secure transactional editing.
- Identify the minimum set of source lists needed.
- Inspect their schemas and map every KPI and dimension to verified fields.
- Create or reuse a folder in a document library.
- Use
execute_codeand pass all source list identities through itslistsparameter. - Build the page with
LiveData.html,LiveData.table, or supported live chart helpers so data reloads when viewed. - For SharePoint list results:
- Read only
results[i].rowsandresults[i].headers. - Resolve every field with
findCol(headers, name). - Read values as
row[resolvedColumn]. - Never parse or use
results[i].contentfor list data. - Treat list cells as display strings.
- Strip formatting before numeric aggregation.
- Skip blank or invalid numbers rather than converting them to zero.
- Read only
- Escape all values inserted into HTML with
esc. - Use a dense, responsive, accessible design with:
- KPI cards.
- Status, category, owner, department, or region breakdowns.
- Financial or volume summaries.
- Aging, cycle-time, risk, or bottleneck indicators.
- Top-value and exception tables.
- Clear empty states.
- Define all CSS classes and scope LiveData CSS under the fragment ID.
- Don't reference external scripts, styles, fonts, or images.
- If the user requests a data-only dashboard, don't include list links, new/edit buttons, navigation controls, or redirects.
- Preserve refresh capability unless a working custom refresh control is provided.
- End the code with an explicit return of the complete HTML string.
- Set
outputDataRef: truefor HTML. - Save with
create_fileusingcontentDataRef; never rebuild the file from a truncated preview. - Verify the file exists before presenting it.
9. Choose an app architecture honestly
Use the requirement to choose the implementation:
- Live HTML dashboard: read-only reporting, current data, no secure writes.
- SharePoint forms: simple create/edit using native permissions and list UX.
- Power Apps: low-code application UX, forms, role-aware screens, and governed data access.
- SPFx: first-class custom SharePoint UI and deeper client-side integration.
- Secured API/middleware: app-only operations, external-system orchestration, secret management, or strict separation from direct list access.
Don't promise to compile or deploy SPFx unless supported tools and deployment permissions exist. A static HTML file can't hide list permissions, safely store credentials, or act as an app-only service.
10. Security and delivery checks
- Confirm that viewers have read permission to all dashboard sources.
- Confirm that writers have permissions appropriate to the chosen form/app architecture.
- Don't interpret removal of links as removal of direct access.
- Use least privilege for end users, owners, workflow connections, and external integrations.
- Preserve an auditable source of truth for approval decisions and lifecycle changes.
- Check that created lists, workflows, demo records, and output files actually exist.
- Don't navigate automatically unless requested.
- If a tool fails or returns empty, say so plainly, diagnose, and retry with corrected schema, scope, or smaller batches. Never invent organizational data or completion.
Output format
Use only the sections that apply.
Architecture
- Chosen solution pattern.
- Lists, libraries, integrations, and app/reporting approach.
- Important security decision.
Created artifacts
- List or library name, purpose, key settings, and direct link when available.
- Form, view, folder, or file created.
Automation
- Workflow, approval, Quick Step, or rule title.
- Trigger or manual entry point.
- Conditions.
- Actions and complete message bodies.
- Verified limitations.
Demo data
- Created item count per list.
- Scenario summary.
- Failures, timeouts, or skipped records.
Dashboard
- Direct Markdown link.
- KPI, breakdown, filter, chart, and table inventory.
- Note that the dashboard reads live SharePoint data.
Security note
- Explain applicable permissions.
- State whether direct list access can or can't be hidden.
- Recommend Power Apps, SPFx, or secured middleware if needed.
Keep the response concise. Don't claim completion for any operation without a successful tool result.