{
  "markdown": "[![GlideGrail.md — ServiceNow coding standards for humans and AI agents](banner.png)](./skills/glidegrail/GlideGrail.md)\n\n  <a href=\"https://buymeacoffee.com/bikemeardsley\"><img alt=\"Buy Me a Coffee\" src=\"https://img.shields.io/badge/Buy_Me_a_Coffee-FFDD00?logo=buymeacoffee&logoColor=black\"></a>\n[![Donate to ALS Research](https://img.shields.io/badge/Donate-ALS%20Research-blueviolet.svg)](https://www.als.net/donate/)\n[![ServiceNow docs.md](https://img.shields.io/badge/ServiceNow-docs.md-62D84E.svg?logo=servicenow&logoColor=white)](https://github.com/ServiceNow/ServiceNowDocs)\n[![License: CC BY 4.0](https://img.shields.io/badge/License-CC%20BY%204.0-blue.svg)](LICENSE)\n\nMost ServiceNow best practice material is scattered across community posts, docs, tribal\nknowledge, or just not widely known, and written to be read by a human. [`GlideGrail.md`](./skills/glidegrail/GlideGrail.md) consolidates years of experience and common rules\ninto a single reference written to be consumed by a model: concrete, directive, and\nspecific enough to change what your AI assistant (Claude, ChatGPT, Codex, Gemini, Copilot,\nCursor, Cline, Roo Code, JetBrains, Microsoft 365 Copilot) actually produces.\n\nEqually useful as a human reference or a review checklist.\n\n## 🚀 Quick start\n\n**Setting this up in your assistant?** See [USAGE.md](./USAGE.md) for step-by-step setup for every\ntool (Claude, ChatGPT, Codex, GitHub Copilot, Microsoft 365 Copilot, Cursor, Cline, Roo Code,\nJetBrains, Gemini, Open WebUI), and which load method to use for each.\n\nThe quickest installs:\n\n**Claude Code / Claude desktop app** - install as a plugin:\n```bash\n/plugin marketplace add bikemeardsley/GlideGrail.md\n/plugin install glidegrail@glidegrail\n```\n**Claude desktop app** - install as a plugin:\n\n1. Open **Customize → Skills**.\n2. Next to **Personal plugins**, click **+**.\n3. Click **+ Create plugin**, then **Add marketplace**.\n4. Paste `bikemeardsley/GlideGrail.md`, then click **Sync**.\n5. Click **Install**.\n\n**Optional companion — live ServiceNow docs, no setup:** a separate plugin,\n[`servicenow-docs`](https://github.com/bikemeardsley/claude-servicenow-docs), gives Claude\ndirect access to ServiceNow's official product documentation. Nothing to clone or download and\nnothing to keep up to date — it reads the docs live from GitHub, so answers reflect what\nServiceNow publishes today:\n```bash\n/plugin marketplace add bikemeardsley/claude-servicenow-docs\n/plugin install servicenow-docs@servicenow-docs\n```\nRequires [`uv`](https://docs.astral.sh/uv/) (a one-line install) and a restart of Claude, plus\none extra config step on Claude Desktop — see\n[that repo](https://github.com/bikemeardsley/claude-servicenow-docs) for the two-minute setup.\n\n**Gemini CLI** — install as an extension:\n```bash\ngemini extensions install https://github.com/bikemeardsley/GlideGrail.md\n```\n\n**Open WebUI** — install as a Function that auto-injects the standards for any model (local or cloud):\none click via the community hub — [Enforcement Filter](https://openwebui.com/posts/glidegrail_servicenow_coding_standards_enforcement_00c849c7) (recommended), plus the optional\n[Lookup Tool](https://openwebui.com/posts/glidegrail_servicenow_coding_standards_lookup_871d3d99) — then enable it and toggle **Global**. Details: [`open-webui/`](./open-webui/).\n\n**Any web-capable agent** — no install needed: tell it to fetch\n`https://raw.githubusercontent.com/bikemeardsley/GlideGrail.md/main/llms.txt` and follow the\nlinked standards.\n\nEvery other tool loads the skill from [`skills/glidegrail/`](./skills/glidegrail/) (raw standards:\n[`GlideGrail.md`](./skills/glidegrail/GlideGrail.md)) see [USAGE.md](./USAGE.md) for the steps.\n\n## What's inside\n\n[`GlideGrail.md`](./skills/glidegrail/GlideGrail.md) covers, as enforceable conventions:\n\n| Area | Covers |\n|---|---|\n| 📐 **Ground rules & scope** | When an agent should confirm vs. build, scoped-app-first discipline, configuration over hardcoding (no hardcoded URLs or sys_ids), recognising and flagging technical debt before incurring it, code readability, and a \"Do Not Use\" table of banned patterns |\n| 🏷️ **Naming** | Tables, fields, Script Includes, Business Rules, variables, update sets, and widgets — with a configurable `PREFIX` |\n| ⚙️ **Server-side scripting** | GlideRecord / GlideAggregate patterns, GlideElement handling, Script Include structure, GlideAjax, constants, and performance at scale |\n| 🖥️ **Client-side** | UI Policies vs. Client Scripts vs. Data Policies, GlideForm, GlideAjax, and UI Actions across classic forms and Workspaces |\n| 🔄 **Automation** | Business Rules (timing, order, recursion guards), Events, Scheduled Jobs, and Flow Designer — what belongs in a flow vs. a script |\n| 🔐 **Security** | ACL design, hardening, and debugging; integration user and data security |\n| 🪵 **Logging, errors & ops** | A 3-tier logging convention, error-handling return contracts, and pre-go-live review routines (logs, queues) |\n| 🗃️ **Data & migration** | Data model conventions — table/field/choice design (default vs. calculated vs. derived, state-field rules) and database views — plus CMDB, Import Sets & Transform Maps (staging-first), and Update Sets (promotion, fix scripts) |\n| 🛒 **Catalog, platform UX & i18n** | Service Catalog (items vs. record producers), MRVS, attachments, system properties, notifications, messages/i18n, and UI Builder |\n| 🎨 **Service Portal** | Widgets, AngularJS providers, server communication, client-side state, SCSS, BEM, accessibility (WCAG), and Moment.js i18n |\n| 🔌 **Integrations** | Interface design and non-repudiation, Scripted REST APIs, IntegrationHub & custom spokes, OAuth 2.0, and LDAP user import |\n| ✅ **Testing** | The Automated Test Framework — coverage expectations, suite hierarchy, reusable base tests, and running suites via the CI/CD API |\n\n> **Works on its own; pairs well with the official ServiceNow sources.** [`GlideGrail.md`](./skills/glidegrail/GlideGrail.md) is the\n> judgment layer (how you want code written) and needs nothing else to be useful. When you\n> want to go further, two official, free companions complement it:\n> - [ServiceNow product docs in markdown](https://github.com/ServiceNow/ServiceNowDocs) (LLM-optimized) for authoritative, current platform behavior, and\n> - [ServiceNow now-sdk agent skills](https://github.com/ServiceNow/sdk) for live Fluent/SDK mechanics when you're building with the ServiceNow SDK.\n\n## License\n\nLicensed under a [Creative Commons Attribution 4.0 International License (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/).\nFree to use, share, and adapt, including commercially, with attribution.\n\n## Support\n\nIf [`GlideGrail.md`](./skills/glidegrail/GlideGrail.md) saves you time and/or you find it useful, please give this repo a Star. You can also sponsor the project by \n[buying me a coffee](https://buymeacoffee.com/bikemeardsley) ☕ or donating to [ALS Research](https://www.als.net/donate/) which is a cause that is very personal to me. Entirely optional, always\nappreciated!\n\n---\n\n*Maintained by [Michael Beardsley](https://github.com/bikemeardsley). Built from real\nServiceNow development.*\n",
  "bytes": 7152,
  "sha": "29f1679198412928061f87a873a2b8a929550cfa58719bde3a83e34204d24498",
  "repo_slug": "bikemeardsley/glidegrail.md",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_bikemeardsley_glidegrail_md_7585de7f/readme"
}