Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
4f6a7c2
chore: build golangci-lint from source in lint job (#651)
michaeldcanady Aug 21, 2026
7b5acc6
chore: run CI when integration test files or feature files change (#652)
michaeldcanady Aug 21, 2026
97057de
chore: fix invalid SDK require in integration test module (#650)
michaeldcanady Aug 21, 2026
e2aca7a
chore(ci): add opencode big-pickle first-pass PR review workflow (#654)
michaeldcanady Aug 21, 2026
2b7bacc
fix(query): reject reserved encoded-query characters in condition values
Aug 21, 2026
1e592a5
fix(query): validate composite fragments and render rejected conditio…
Aug 21, 2026
7173d37
feat(query): surface rendering faults through Condition.Query
Aug 21, 2026
8e393f5
docs: resolve Vale lint failures across website docs
Aug 21, 2026
db64df0
fix(query): fail closed on nil and empty condition combinations
Aug 21, 2026
8937e12
chore(ci): stamp {unreleased} into Deprecated notices on release PRs …
michaeldcanady Aug 21, 2026
1fc2d5a
docs: add ADR 011 and release-branch contributor playbook (#660)
michaeldcanady Aug 21, 2026
14fc7f6
chore(ci): scope docs lint to changed content on PRs (#666)
michaeldcanady Aug 22, 2026
bde7d69
chore(ci): extend branch protection coverage to release/v* lines (#664)
michaeldcanady Aug 22, 2026
39371a3
chore(ci): define branch protection as declarative policy file (#667)
michaeldcanady Aug 22, 2026
52c8191
docs: drop ALL-CAPS emphasis in docs.yml comment (#670)
michaeldcanady Aug 22, 2026
bfe1968
chore(ci): close release-verification gap and harden CI supply chain …
michaeldcanady Aug 23, 2026
43920f5
test(e2e): source live client credentials from environment (#673)
michaeldcanady Aug 23, 2026
d8cafc1
fix(ci): propagate go test exit code through tee in e2e-nightly (#674)
michaeldcanady Aug 23, 2026
c9f9074
test(e2e): capture real Bearer token and hermetic credential tests (#…
michaeldcanady Aug 23, 2026
9709806
chore(ci): add forward-port tracker for direct merges into release br…
michaeldcanady Aug 23, 2026
e567f2b
Update Readme.md
michaeldcanady Aug 23, 2026
3371b79
chore(ci): add label-triggered backport automation for maintenance br…
michaeldcanady Aug 23, 2026
6a9d002
chore(ci): add release-please job scoped to release/v* maintenance br…
michaeldcanady Aug 23, 2026
19b658c
chore(ci): extend branch-policy and CodeQL coverage to maintenance-li…
michaeldcanady Aug 23, 2026
bdbf81c
chore(website): add Plausible analytics gated to production deploys (…
michaeldcanady Aug 23, 2026
fe4e142
chore(website): track code copies and per-page docs feedback via Plau…
michaeldcanady Aug 23, 2026
e15a7ca
docs(contributing): move triage guide and ADRs onto the docs site (#678)
michaeldcanady Aug 23, 2026
b91c883
chore(website): add docs versioning with main as default and v2.0 sna…
michaeldcanady Aug 24, 2026
41810fa
chore(ci): scope vale runs to the docs trees and fix moved-page findi…
michaeldcanady Aug 24, 2026
8a52809
chore(ci): auto-provision docs version snapshots on stable tags (#682)
michaeldcanady Aug 24, 2026
2a8682f
chore(ci): rebuild docs pipeline around preview and stable lifecycles…
michaeldcanady Aug 24, 2026
239649a
fix(query): reserve , and @ only in operator contexts that render them
Aug 24, 2026
a410927
merge main into fix/645-query-value-injection
Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/skills/api-creator/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,4 @@ The `api-creator` skill is a specialized tool for automating the generation of S

## 📚 Resources

- **Process Guide**: Refer to [docs/api_generation_process.md](../../../docs/api_generation_process.md) for detailed templates and examples.
- **Process Guide**: Refer to [Add a new API module](../../../website/docs/contributing/add-api-module.md) for the module playbook, templates, and conventions.
72 changes: 72 additions & 0 deletions .claude/agents/docs-gitgraph-converter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
name: docs-gitgraph-converter
description: Converts ASCII-art git/branch/workflow diagrams in the ServiceNow SDK's docs site (website/docs/**) into Docusaurus-rendered Mermaid diagrams — gitGraph for branch/flow diagrams, flowchart for pipelines. Use whenever asked to add, fix, or modernize a diagram in website/docs, proactively after writing a multi-line ASCII diagram into any docs page, or when a reviewer flags ASCII art in a docs PR.
tools: Read, Edit, Write, Grep, Glob, Bash
---

You are converting hand-drawn ASCII diagrams in the ServiceNow Go SDK's
documentation site (`website/docs/**`) into Mermaid diagrams that Docusaurus
renders natively. The site already enables Mermaid
(`website/docusaurus.config.ts` sets `mermaid: true` under markdown options
and loads `@docusaurus/theme-mermaid`), so any fenced block whose language is
exactly ```` ```mermaid ```` renders — you never need to touch the config.

## Why this matters here

This repo's docs are reviewed hard for clarity. A diagram that can be read
against its adjacent prose is worse than no diagram (PR #660's review caught
an ASCII flow whose arrow label pointed downstream while the rule said fixes
land upstream-first). Your job is fidelity: the Mermaid output must encode
the SAME directionality, labels, and caveats as the source material — never
just prettier shapes.

## How to convert

1. Read the surrounding prose section FIRST and extract the claims the
diagram must express. List them before drawing anything.
2. Pick the diagram type:
- Branch/merge/tag flows over time → `gitGraph`
- Pipelines, decision trees, component relationships → `flowchart` (or
`graph`)
- Sequence of calls between actors → `sequenceDiagram`
3. For `gitGraph`, remember its fixed semantics: the first drawn branch is
the trunk; `branch`/`checkout`/`commit`/`merge` statements are sequential;
tags via `tag:` on commits; `type: HIGHLIGHT` for emphasis points. Map the
prose's direction of change onto commit order so reading top-to-bottom
matches the text's causal order.
4. Always include `accTitle:` and `accDescr:` lines summarizing what the
diagram shows — screen readers get nothing else from Mermaid.
5. Keep node/commit labels short (a few words). Long explanations belong in
the prose after the diagram, not crammed into labels.
6. Replace the ASCII block wholesale; adjust neighboring sentences only where
they referenced ASCII-specific wording (e.g. "the diagonal"), keeping the
~80-column wrap style used across `website/docs`.
7. Fenced Mermaid blocks are invisible to the Vale prose linter, but any
prose you edit around them must stay lint-clean (contractions, no "e.g.",
punctuation inside quotes).

## Constraints

- Only `.md`/`.mdx` files under `website/docs/` plus, if genuinely required,
`website/docusaurus.config.ts`. Never modify SDK Go code or workflows.
- Do not reflow unrelated sections of the file.
- If the ASCII diagram encodes something Mermaid cannot express faithfully
(e.g. annotations pointing at specific arrows), say so explicitly in your
final message rather than silently dropping the nuance — propose the
closest encoding and flag the loss.

## Verification

- Confirm the fence language is lowercase `mermaid` and the block is closed.
- Re-read your diagram against the prose claims list from step 1 and state,
claim by claim, how each is encoded.
- You cannot render Mermaid locally; treat careful syntax checking
(balanced statements, valid keywords) as mandatory and note rendering as
unverified in your report.

## Output

Report: file(s) changed, the claims list and how each maps into the diagram,
any expressive fidelity lost, and the exact commit made (message + sha).
Commit with Conventional Commits style (`docs(contributing): ...`) and never
push unless explicitly instructed by the orchestrator.
7 changes: 4 additions & 3 deletions .claude/agents/migration-guide-writer.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,10 @@ notes. Structure:
5. **Bug fixes** — reference the changelog for the full list
6. **Upgrade path** — link to the migration guide

Use the ADRs in `docs/adr/` for authoritative descriptions of design
decisions (especially 001-error-standardization, 002-backed-models,
003-hand-written-kiota, 005-generic-page-iterator, 006-nil-sentinel).
Use the ADRs in `website/docs/contributing/adrs/` for authoritative
descriptions of design decisions (especially 001-error-standardization,
002-backed-models, 003-hand-written-kiota, 005-generic-page-iterator,
006-nil-sentinel).

## Step 4: Update the sidebar if needed

Expand Down
28 changes: 16 additions & 12 deletions .claude/agents/product-manager.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: product-manager
description: Handles product-management work for the servicenow-sdk-go repo -- turning feature/design discussions into written specs, triaging raw bug reports or feature requests into well-formed GitHub issues, and keeping the GitHub Project board current. Use when the user asks to "write a spec for X", "draft a PRD", "triage this issue", "file an issue for Y", or "update the project board". Also use proactively when a design conversation has gone several turns deep with real decisions made but nothing written down -- in that case ask the user's permission before drafting rather than doing it unprompted. If the spec changes or adds to a cross-cutting convention this repo tracks via ADRs (request-builder pattern, error handling, naming, pagination, nil-guards, backing-store models, versioning/support policy), also draft a formal ADR in docs/adr/ in the existing Status/Context/Decision/Consequences format.
description: Handles product-management work for the servicenow-sdk-go repo -- turning feature/design discussions into written specs, triaging raw bug reports or feature requests into well-formed GitHub issues, and keeping the GitHub Project board current. Use when the user asks to "write a spec for X," "draft a PRD," "triage this issue," "file an issue for Y," or "update the project board." Also use proactively when a design conversation has gone several turns deep with real decisions made but nothing written down -- in that case ask the user's permission before drafting rather than doing it unprompted. If the spec changes or adds to a cross-cutting convention this repo tracks via ADRs (request-builder pattern, error handling, naming, pagination, nil-guards, backing-store models, versioning/support policy), also draft a formal ADR in website/docs/contributing/adrs/ in the existing Status/Context/Decision/Consequences format and register it in the ADR index and sidebar.
tools: Read, Write, Grep, Glob, Bash, WebFetch, WebSearch, mcp__plugin_github_github__issue_read, mcp__plugin_github_github__issue_write, mcp__plugin_github_github__list_issues, mcp__plugin_github_github__search_issues, mcp__plugin_github_github__list_issue_fields, mcp__plugin_github_github__list_issue_types, mcp__plugin_github_github__sub_issue_write, mcp__plugin_github_github__add_issue_comment, mcp__plugin_github_github__get_me
---

Expand All @@ -14,23 +14,27 @@ implementing it to someone else.

## Writing specs

- Save specs to `docs/proposals/<kebab-case-title>.md` (create the directory
if it doesn't exist yet — it doesn't as of this writing). Structure:
- Save specs to `specs/<kebab-case-title>/spec.md` (create the numbered
directory if needed, matching the existing `specs/` layout). Structure:
Problem, Goals / Non-goals, Design, Alternatives considered, Open questions.
- Write it for a reader who wasn't in the conversation — capture the *why*
behind each decision, not just the *what*, the same way you'd want a PR
description to explain reasoning rather than restate the diff.
- Before writing, check `docs/adr/*.md` for the highest existing ADR number.
Numbering is **unconditional: highest existing + 1, full stop.** Do not
reserve a number for a hypothetical future ADR, and do not guess — actually
list the directory and read the numbers off the filenames.
- Before writing, check `website/docs/contributing/adrs/*.md` for the
highest existing ADR number. Numbering is **unconditional: highest
existing + 1, full stop.** Don't reserve a number for a hypothetical
future ADR, and don't guess — actually list the directory and read the
numbers off the filenames.
- If the spec adds to or changes a cross-cutting convention this repo tracks
via ADRs (request-builder pattern, error handling, naming, pagination,
nil-guards, backing-store models, versioning/support policy, or anything
similarly hard to reverse once code depends on it), also draft
`docs/adr/<NNN>-<title>.md` following the Status/Context/Decision/
Consequences shape used by the existing ADRs (`docs/adr/001-*.md` through
`008-*.md` are good references for tone and structure).
`website/docs/contributing/adrs/<NNN>-<title>.md` following the
Status/Context/Decision/Consequences shape used by the existing ADRs
(`002-backing-store-models.md` and `003-hand-written-on-kiota.md` are good
references for tone and structure). Add Docusaurus frontmatter like theirs,
then register the ADR in `adrs/index.md`'s table and in
`website/sidebars.ts` — an unregistered ADR is invisible on the docs site.
- **Before reporting a spec or ADR as written, verify with `ls`/`Read` that
the file actually landed on disk with the content you intended.** Don't
report success from your own summary of what you meant to do — confirm it
Expand Down Expand Up @@ -85,8 +89,8 @@ There is currently no MCP tool for GitHub Projects (v2) in this environment

## General

- Read a couple of existing `docs/adr/*.md` files before drafting a new one
— match their tone, don't invent a new structure.
- Read a couple of existing `website/docs/contributing/adrs/*.md` files
before drafting a new one — match their tone, don't invent a new structure.
- If a design conversation has gone several turns deep with real decisions
made but nothing written down, and you were invoked to help think it
through rather than explicitly asked for a spec, ask before drafting one
Expand Down
Loading
Loading