Document Browser
When to use
Use this skill when the user wants a professional document browser dashboard for a SharePoint document library or folder. The dashboard must browse documents using real metadata, search, filters, cards, read-only Open links, Download links, and live-linked data whenever supported.
Inputs
- Target SharePoint document library URL, list ID, or selected/current library.
- Optional folder path inside the library.
- Optional approval rule, default: show approved documents only when content approval is enabled.
- Optional dashboard file name and destination folder.
- Optional requested filters.
Steps
Resolve and inspect
- Resolve the target library ID and web URL.
- Retrieve the full schema and use internal field names only.
- Identify approval status, Document Title, name/path fields, description/abstract, metadata filters, Document Owner, contacts, author/editor, created/modified dates.
Title and owner rules
- Prefer Document Title for card titles. Match
Document Title,documentTitle, andDocument_x0020_Title. - Fall back to
Title, then file name. - Show Document Owner name directly below the card title. Match
documentOwner/Document Owner; fall back to Author only if no owner exists.
- Prefer Document Title for card titles. Match
Live-linked build
- Use LiveData/list binding for supported library roots or list sources.
- Include
ka-livedata-manifestand runtime code that readswindow.__LD_RESULTS__. - Include a visible Refresh live data button wired to
refresh(). - Don't claim live-linked unless newly added/updated source documents appear after refresh without regenerating HTML.
Design requirements Use this exact visual system:
Color palette
- Navy:
#03274A - Blue:
#164C80 - Yellow accent:
#FFD633 - Pale blue:
#CAD8E5 - Line / border:
#D7E2EC - Sand background:
#F7F5F3 - Text:
#161616 - Muted text:
#5A5A57
Typography
- Primary font stack: Aptos, "Segoe UI", Arial, sans-serif
Hero header
- Large rounded navy (or navy-to-blue gradient) hero banner
- Soft yellow translucent circle accent in the upper-right
- Short uppercase kicker in yellow with letter-spacing
- Large white title
- Pale lead text under the title
- Optional simple flat-vector illustration on the right side of the hero
Layout & cards
- Exactly 3 document cards per desktop row (
grid-template-columns: repeat(3, minmax(0, 1fr))), collapsing to 2 then 1 on smaller screens - White cards with subtle border (
#D7E2EC), soft shadow, and large border-radius (~20–22px) - Left yellow accent bar on the card header area
- Document title in navy, bold
- Document Owner / contacts shown directly under the title in muted text
- Abstract preview with hover/focus popup
- Metadata shown as small rounded pills
- Pill-shaped action buttons (primary = solid blue, secondary = outlined)
Overall feel
- Clean, modern, professional knowledge-browser aesthetic
- Generous white space, soft shadows, clear hierarchy
- Card-first design (avoid dense tables)
- Navy:
Dashboard features
- Search across Document Title/title, filename, abstract/description, metadata, Document Owner, contacts, author/editor.
- Filter using real fields. Prefer Practice, Service Area, Industry Sectors, Market, Regions, Lead Office, Document Type, Year created when present.
- Cards include title, Document Owner below title, abstract preview with hover/focus popup, metadata pills, dates, Open and Download actions.
Open and Download link rules — critical
- In SharePoint HTML preview the dashboard runs inside
about:srcdoc; do not uselocation.originfor Open or Download because it may resolve tonull. - Define a constant site URL from the resolved web URL, e.g.
var SITE='https://tenant.sharepoint.com/sites/site';. - Do not render
href="#". If no path is available, render a disabled text control instead. - Build links from a decoded server-relative SharePoint path.
- Resolve path in this order:
FileRef/File_x0020_Ref/ServerRelativeUrl/Path; thenEncodedAbsUrlparsed topathname; thenFileDirRef + '/' + FileLeafRef. - Use
safeDecode()repeatedly before encoding route parameters soDocuments%2520BrowserbecomesDocuments Browser, then re-encodes only once. - Verified working Open pattern:
SITE + '/_layouts/15/Doc.aspx?sourcedoc=' + encodeURIComponent(serverRelativePath) + '&file=' + encodeURIComponent(fileName) + '&action=embedview&mobileredirect=true'. - The
serverRelativePathmust be decoded first, then encoded exactly once in thesourcedocroute parameter. - Do not replace this with the direct file URL
?web=1&action=embedviewunless it has been manually tested in the target dashboard after saving. - Do not use
download.aspx?SourceUrl=...&transform=pdffor Open; it can fail with File Not Found when spaces are double-encoded. - Download:
SITE + '/_layouts/15/download.aspx?SourceUrl=' + encodeURIComponent(serverRelativePath). - Add
target="_blank",rel="noopener", anddata-interception="off". - Never use PDF transform links for Open; never append
download=1; validate no%2520, nonull/sites, nohref="#", and no absolute URL insideSourceUrl.
- In SharePoint HTML preview the dashboard runs inside
Validate before saving
- Confirm live manifest/source exists.
- Confirm visible refresh control exists and is wired.
- Confirm 3-column desktop grid exists.
- Confirm Document Title is first title source and Document Owner appears below title.
- Confirm the navy / yellow / sand design system and hero structure are present.
- Confirm Open uses the verified
Doc.aspx?sourcedoc=...&file=...&action=embedview&mobileredirect=truepattern; confirm Download usesSITE, robust source-path fallback, and neither link renders#,null/sites, PDF transform, direct untested?web=1&action=embedview, or double-encoded%2520.
Save
- Create or update an
.htmlfile in the requested destination. - Prefer saving HTML dashboards to a Reports library or the location requested by the user unless updating an explicitly selected existing file.
- Provide the file link.
- Create or update an
Output format
Respond with:
- Link to the dashboard.
- Whether it is fully live-linked.
- Note that it uses 3 desktop columns, Document Title, Document Owner below title, the navy-and-yellow design system, visible refresh, and robust decoded server-relative Open/Download links.
- Any limitation or workaround.
Honesty
If live binding can't target the requested folder or view, say so and offer a workaround. Don't invent working links or data.