Datadog Data Source Generator
DataDog/terraform-provider-datadog
Generates a Datadog Terraform provider data source from an OpenAPI operation with tfgen and opens a review-ready GitHub PR with a risk scan and testing guide.
Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource.
$ npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/terraform-provider-fabric sdk-contract-navigator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/microsoft/terraform-provider-fabric.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/sdk-contract-navigator .claude/skills/sdk-contract-navigator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sdk-contract-navigator" agent skill from https://github.com/microsoft/terraform-provider-fabric/tree/main/.github/skills/sdk-contract-navigator into .claude/skills/sdk-contract-navigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdk-contract-navigator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/microsoft/terraform-provider-fabric/tree/main/.github/skills/sdk-contract-navigatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/terraform-provider-fabric sdk-contract-navigator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/terraform-provider-fabric.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/sdk-contract-navigator .agents/skills/sdk-contract-navigator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sdk-contract-navigator" agent skill from https://github.com/microsoft/terraform-provider-fabric/tree/main/.github/skills/sdk-contract-navigator into .agents/skills/sdk-contract-navigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdk-contract-navigator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/terraform-provider-fabric sdk-contract-navigator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/terraform-provider-fabric.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/sdk-contract-navigator .cursor/skills/sdk-contract-navigator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sdk-contract-navigator" agent skill from https://github.com/microsoft/terraform-provider-fabric/tree/main/.github/skills/sdk-contract-navigator into .cursor/skills/sdk-contract-navigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdk-contract-navigator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/microsoft/terraform-provider-fabric.git --path .github/skills/sdk-contract-navigator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/terraform-provider-fabric sdk-contract-navigator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/terraform-provider-fabric.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/sdk-contract-navigator .gemini/skills/sdk-contract-navigator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sdk-contract-navigator" agent skill from https://github.com/microsoft/terraform-provider-fabric/tree/main/.github/skills/sdk-contract-navigator into .gemini/skills/sdk-contract-navigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdk-contract-navigator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install microsoft/terraform-provider-fabric sdk-contract-navigatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft/terraform-provider-fabric.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/sdk-contract-navigator .github/skills/sdk-contract-navigator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sdk-contract-navigator" agent skill from https://github.com/microsoft/terraform-provider-fabric/tree/main/.github/skills/sdk-contract-navigator into .github/skills/sdk-contract-navigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdk-contract-navigator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install microsoft/terraform-provider-fabric sdk-contract-navigator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/terraform-provider-fabric.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/sdk-contract-navigator .opencode/skills/sdk-contract-navigator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sdk-contract-navigator" agent skill from https://github.com/microsoft/terraform-provider-fabric/tree/main/.github/skills/sdk-contract-navigator into .opencode/skills/sdk-contract-navigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdk-contract-navigator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sdk-contract-navigatorNavigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource.
SDK Contract Navigator is an agent skill from microsoft/terraform-provider-fabric, published by the product's own GitHub organization. Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource. USE FOR: identifying SDK packages, client factories, DTO structs, item type constants, and pager methods for any Fabric resource.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud. It works with GitHub, Go and Terraform. The repository describes itself as: Terraform Provider for Microsoft Fabric. The licence is MPL-2.0.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 86c83be. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
goFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
SDK Contract Navigator loads about 3k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 919 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from microsoft/terraform-provider-fabric at commit 86c83be, republished under its MPL-2.0 licence (© microsoft). 919 words, ~3,027 tokens.
.claude/skills/sdk-contract-navigator/SKILL.md (or your agent's skills folder).Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource.
Read go.mod in the provider repo root and find the github.com/microsoft/fabric-sdk-go dependency line to determine the current version:
github.com/microsoft/fabric-sdk-go <version>Record the exact version string. All SDK browsing must target the version found in go.mod.
Important: Always read
go.moddynamically — never assume or hardcode the SDK version. It changes with dependency upgrades.
Then ensure the SDK is in the local Go module cache:
go mod download github.com/microsoft/fabric-sdk-go@<version>The SDK source is now available at a deterministic path:
$(go env GOPATH)/pkg/mod/github.com/microsoft/fabric-sdk-go@<version>/Primary source: Always use the local Go module cache for SDK browsing. It is faster and more reliable than GitHub MCP tools (
get_file_contentsreturns large JSON blobs that are hard to search;search_codehas indexing lag). Useread_fileandSelect-String(PowerShell) to browse and search SDK files directly.Fallback only: Use GitHub MCP tools or
pkg.go.devonly if the local cache is unavailable.
# Find a struct definition
Select-String -Path "<sdk-path>\models.go" -Pattern "^type <StructName> struct"
# Find a field across all structs (with context)
Select-String -Path "<sdk-path>\models.go" -Pattern "<FieldName>" -Context 5
# List all structs matching a pattern
Select-String -Path "<sdk-path>\models.go" -Pattern "^type .*Connection.*struct" | Select-Object -ExpandProperty Line
# List directory contents
Get-ChildItem "<sdk-path>\fabric\" -Directory | Select-Object -ExpandProperty NameThis provider has two resource categories with different SDK patterns:
These use the generic fabricitem abstraction with per-item SDK packages.
Identifying trait: The SDK has a dedicated package under fabric/<itempackage>/ with its own client factory, and the provider service uses fabricitem.NewResource* constructors.
Examples: Lakehouse, Eventhouse, Data Pipeline, SQL Database, KQL Database, Notebook, Semantic Model, Spark Job Definition, ML Experiment, ML Model, Environment, Warehouse, etc.
These use bespoke CRUD implementations with clients from the fabric/core/ package or other shared packages.
Identifying trait: The SDK client is accessed via fabcore.*Client (e.g. fabcore.ConnectionsClient, fabcore.ShortcutsClient, fabcore.GatewaysClient). The provider service implements resource.Resource directly without fabricitem generics.
Examples: Connection, Shortcut, Gateway, Workspace, Domain, Workspace Role Assignment, Connection Role Assignment, Gateway Role Assignment, Deployment Pipeline Role Assignment, Workspace Git, etc.
Proceed with Step 3A for Fabric Items or Step 3B for non-item resources.
The SDK organizes item packages under fabric/<packagename>/.
Using local module cache — List directories to find the item package:
Get-ChildItem "<sdk-path>\fabric\" -Directory | Select-Object -ExpandProperty NameLook for a directory matching the item name (lowercased, no spaces). Common patterns:
| Item Name | SDK Package Path |
|---|---|
| Lakehouse | fabric/lakehouse/ |
| Eventhouse | fabric/eventhouse/ |
| SQL Database | fabric/sqldatabase/ |
| Data Pipeline | fabric/datapipeline/ |
| KQL Database | fabric/kqldatabase/ |
| Spark Job Definition | fabric/sparkjobdefinition/ |
| Mirrored Database | fabric/mirroreddatabase/ |
| Copy Job | fabric/copyjob/ |
Read the SDK package's client factory file (usually client_factory.go) from the local cache. The pattern is:
fab<package>.NewClientFactoryWithClient(fabricClient).NewItemsClient()For example:
fablakehouse.NewClientFactoryWithClient(fabricClient).NewItemsClient()fabeventhouse.NewClientFactoryWithClient(fabricClient).NewItemsClient()Read the items client file (usually items_client.go) for these methods:
| Method Type | Pattern | Example |
|---|---|---|
| Get | client.Get<ItemName>(ctx, workspaceID, itemID, nil) | client.GetLakehouse(ctx, wID, iID, nil) |
| List pager | client.NewList<ItemNames>Pager(workspaceID, nil) | client.NewListLakehousesPager(wID, nil) |
| Create | client.Create<ItemName>(ctx, workspaceID, payload, nil) | client.CreateLakehouse(ctx, wID, payload, nil) |
| Update | client.Update<ItemName>(ctx, workspaceID, itemID, payload, nil) | client.UpdateLakehouse(ctx, wID, iID, payload, nil) |
| Delete | client.Delete<ItemName>(ctx, workspaceID, itemID, nil) | client.DeleteLakehouse(ctx, wID, iID, nil) |
Also check for definition methods (indicates definition or *-definition-* archetype):
client.Get<ItemName>Definition(ctx, workspaceID, itemID, nil)client.Update<ItemName>Definition(ctx, workspaceID, itemID, payload, nil)The item type constant lives in the core package (fabric/core/), typically in constants.go or models.go:
fabcore.ItemType<ItemName>Examples: fabcore.ItemTypeLakehouse, fabcore.ItemTypeEventhouse, fabcore.ItemTypeSQLDatabase
Read the SDK package's models.go file for these key structs:
| DTO | Purpose | How to Identify |
|---|---|---|
| Main item struct | Top-level item (e.g. Lakehouse) | Has fields: ID, DisplayName, Description, WorkspaceID, Properties |
| Properties | Read-only properties from Get response | Struct named Properties with server-computed fields |
| CreationPayload | Create-time configuration | Struct named CreationPayload with user-settable fields |
Also look for:
type <Name> string with Possible<Name>Values() funcPropertiesUse the "Item Archetypes" table in .github/instructions/fabric-item-patterns.instructions.md to match SDK capabilities to the correct archetype.
How to check:
Properties field of a named struct typeCreationPayload struct exists in the packageGetDefinition / UpdateDefinition methodsNon-item resources typically use clients from the fabric/core/ package. For the SDK client mapping, see the "SDK Client Mapping" table in .github/instructions/non-item-patterns.instructions.md.
Client access pattern:
client := fabcore.NewClientFactoryWithClient(fabricClient).NewConnectionsClient()Non-item clients have bespoke method names. Read the client source to find:
Read fabric/core/models.go or the specific client models for:
CreateConnectionRequest, Connection)| Field | Value |
|---|---|
| Category | Fabric Item |
| SDK Version | <version from go.mod> |
| SDK Package | github.com/microsoft/fabric-sdk-go/fabric/<package> |
| Import Alias | fab<package> |
| Client Factory | fab<package>.NewClientFactoryWithClient(fabricClient).NewItemsClient() |
| Get Method | client.Get<ItemName>(ctx, workspaceID, itemID, nil) |
| List Pager | client.NewList<ItemNames>Pager(workspaceID, nil) |
| ItemType Constant | fabcore.ItemType<ItemName> |
| Archetype | basic / definition / properties / etc. |
| Properties DTO | fab<package>.Properties — list fields |
| CreationPayload DTO | fab<package>.CreationPayload — list fields (or "N/A") |
| Enum Types | List any enum types with their possible values |
| Field | Value |
|---|---|
| Category | Non-item (bespoke CRUD) |
| SDK Version | <version from go.mod> |
| SDK Package | github.com/microsoft/fabric-sdk-go/fabric/core (or other) |
| Import Alias | fabcore (or other) |
| Client | fabcore.<Resource>Client |
| CRUD Methods | List all relevant methods |
| Request DTOs | List create/update request structs with fields |
| Response DTOs | List response structs with fields |
| Enum Types | List any enum types with their possible values |
For each DTO struct found, list all fields with their Go types. Example:
type Properties struct {
OneLakeFilesPath *string `json:"oneLakeFilesPath,omitempty"`
OneLakeTablesPath *string `json:"oneLakeTablesPath,omitempty"`
SQLEndpointProperties *SQLEndpointProperties `json:"sqlEndpointProperties,omitempty"`
DefaultSchema *string `json:"defaultSchema,omitempty"`
}The output from this skill feeds directly into #skill:schema-model-generator and #skill:itemgen-command-builder.
© microsoft, MPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/sdk-contract-navigator of microsoft/terraform-provider-fabric.
Open the folder on GitHubat commit 86c83be
SDK Contract Navigator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| SDK Contract Navigator this skillmicrosoft/terraform-provider-fabric | 128 | — | ~3k | Automated safety check: Pass | MPL-2.0 | |
| Datadog Data Source GeneratorDataDog/terraform-provider-datadog | 468 | — | ~2.7k | Automated safety check: Pass | MPL-2.0 | |
| CI CDEliasOulkadi/shokunin | 114 | — | ~3.4k | Automated safety check: Notes | MIT | |
| Avm Tf ClassificationsAzure/terraform-azurerm-avm-ptn-alz | 135 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Golang Samber Hotsamber/cc-skills-golang | 3.4k | — | ~2k | Automated safety check: Pass | MIT | |
| Admingrafana/skills | 281 | — | ~1.5k | Automated safety check: Pass | Apache-2.0 |
DataDog/terraform-provider-datadog
Generates a Datadog Terraform provider data source from an OpenAPI operation with tfgen and opens a review-ready GitHub PR with a risk scan and testing guide.
EliasOulkadi/shokunin
Design CI/CD pipelines for GitHub Actions, GitLab CI, and CircleCI with matrix builds, test sharding, caching, Docker layer caching, OIDC auth, deployment strategies (rolling, blue-green, canary)…
Azure/terraform-azurerm-avm-ptn-alz
A skill your agent uses whenever a contributor is deciding what KIND of Azure Verified Module to build in Terraform — resource module, pattern module, or utility module — or is naming a module /…
samber/cc-skills-golang
In-memory caching in Golang using samber/hot — eviction algorithms (LRU, LFU, TinyLFU, W-TinyLFU, S3FIFO, ARC, TwoQueue, SIEVE, FIFO), TTL, cache loaders, sharding, stale-while-revalidate, missing…
grafana/skills
Manage Grafana Cloud accounts — organizations, stacks, RBAC roles and assignments, SSO/SAML/OAuth/GitHub auth, service accounts for CI/CD, user invites, team membership, and API-driven provisioning.
context-labs/whip
Structured logging extensions for Golang using samber/slog- — multi-handler pipelines, sampling, attribute formatting, HTTP middleware (gin, echo, fiber, chi), backend routing (datadog, sentry…
microsoft/terraform-provider-fabric
Given SDK analysis results, automatically determine the correct itemgen archetype and build the full go run tools/itemgen/main.go command.
microsoft/terraform-provider-fabric
Given a Go SDK contract (DTOs), generate the corresponding Terraform schema attributes and model structs with high fidelity.
microsoft/terraform-provider-fabric
Analyze dependencies and determine what infrastructure must be added to tools/scripts/Set-WellKnown.ps1 and internal/testhelp/wellknown.go so that acceptance tests for a new resource have all…
microsoft/terraform-provider-fabric
Research SDK contracts, design Terraform schema approach, and compose a GitHub issue for a new resource, data source, ephemeral resource, or enhancement to an existing resource.
Categories
Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource. SDK Contract Navigator is an agent skill from microsoft/terraform-provider-fabric, published by the product's own GitHub organization. Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource.
SDK Contract Navigator fits situations like: : identifying SDK packages; client factories; item type constants; pager methods for any Fabric resource.
Run `npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a claude-code`. Or copy the skill folder (.github/skills/sdk-contract-navigator in microsoft/terraform-provider-fabric) into .claude/skills/sdk-contract-navigator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a codex`. Or copy the skill folder (.github/skills/sdk-contract-navigator in microsoft/terraform-provider-fabric) into .agents/skills/sdk-contract-navigator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sdk-contract-navigator, .gemini/skills/sdk-contract-navigator, .github/skills/sdk-contract-navigator and .opencode/skills/sdk-contract-navigator in your project.
Going by SKILL.md and its folder, SDK Contract Navigator needs the command-line tools its instructions call (go).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
SDK Contract Navigator is published under the MPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with SDK Contract Navigator: Datadog Data Source Generator (DataDog/terraform-provider-datadog, 468 stars), CI CD (EliasOulkadi/shokunin, 114 stars), Avm Tf Classifications (Azure/terraform-azurerm-avm-ptn-alz, 135 stars) and Golang Samber Hot (samber/cc-skills-golang, 3.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
microsoft (a GitHub organization, an official publisher) maintains it in microsoft/terraform-provider-fabric, which has 128 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 6, 2026.
Source: microsoft/terraform-provider-fabric on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.