@diffci.com/diffci 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,16 +3,21 @@
3
3
 
4
4
  [![npm version](https://img.shields.io/npm/v/@diffci.com/diffci.svg)](https://www.npmjs.com/package/@diffci.com/diffci)
5
5
  [![npm provenance](https://img.shields.io/badge/npm-provenance-blue)](https://docs.npmjs.com/generating-provenance-statements)
6
+ [![MCP server](https://img.shields.io/badge/MCP-server-5f6fff)](docs/mcp.md)
7
+ [![Agent safe](https://img.shields.io/badge/agent--safe-observation--only-0f766e)](docs/ai-agents.md)
6
8
  [![GitHub Action](https://img.shields.io/badge/action-DiffCI%2FDiffCI.com%40v0.1.4-blue)](https://github.com/DiffCI/DiffCI.com)
7
9
 
8
- **Find test-selection opportunities in your CI before changing what it runs.** DiffCI analyzes a
9
- commit's changes and dependency graph, then reports which test files it would select, why it falls
10
- back to a full run, and whether it can propose a test command. `check` also runs paired full and
11
- selected commands when it can infer them. The `observe` command and Action remain observation-only.
10
+ **Find test-selection opportunities in your CI before changing what it runs.** DiffCI analyzes a
11
+ commit's changes and dependency graph, then reports which test files it would select, why it falls
12
+ back to a full run, and whether it can propose a test command. `check` also runs paired full and
13
+ selected commands when it can infer them. The `observe` command and Action remain observation-only.
12
14
 
13
15
  **For AI coding agents:** DiffCI gives Codex, Claude Code, Cursor, GitHub Copilot, Grok, and similar
14
16
  tools a safe default CI/CD validation command.
15
17
 
18
+ AI-readable documentation: [DiffCI CLI on Context7](https://context7.com/diffci/diffci.com) and
19
+ [DiffCI Core on Context7](https://context7.com/diffci/core).
20
+
16
21
  From an existing repository checkout, with Node.js 22.5+ and Git installed:
17
22
 
18
23
  ```bash
@@ -25,23 +30,23 @@ For AI coding agents, seed the repository with default instructions:
25
30
  npx @diffci.com/diffci@latest init
26
31
  ```
27
32
 
28
- For a self-serve runtime comparison, run one command from the repository root:
29
-
30
- ```bash
31
- npx @diffci.com/diffci@latest check
32
- ```
33
+ For a self-serve runtime comparison, run one command from the repository root:
34
+
35
+ ```bash
36
+ npx @diffci.com/diffci@latest check
37
+ ```
33
38
 
34
39
  On Windows PowerShell, quote the package name:
35
40
 
36
41
  ```powershell
37
- npx '@diffci.com/diffci@latest' check
38
- ```
39
-
40
- `check` infers a full test command, runs it and DiffCI's selected command, and prints gross test-time
41
- and net runtime changes when both pass. It writes observation and savings reports outside the checkout.
42
- Test commands may create files or change the checkout. One paired run is preliminary evidence; repeat
43
- comparisons and account for cache effects before claiming CI savings. On a full-validation fallback,
44
- `check` runs the full command once and reports 0% reduction.
42
+ npx '@diffci.com/diffci@latest' check
43
+ ```
44
+
45
+ `check` infers a full test command, runs it and DiffCI's selected command, and prints gross test-time
46
+ and net runtime changes when both pass. It writes observation and savings reports outside the checkout.
47
+ Test commands may create files or change the checkout. One paired run is preliminary evidence; repeat
48
+ comparisons and account for cache effects before claiming CI savings. On a full-validation fallback,
49
+ `check` runs the full command once and reports 0% reduction.
45
50
 
46
51
  **Upgrade from 0.1.3:** tests excluded by a source-only `tsconfig.json` could be discovered without
47
52
  their dependency edges, producing an incomplete selection. This is fixed in **0.1.4**. Revalidate
@@ -54,9 +59,9 @@ comparison, add `--base <base-sha> --head <head-sha>`. DiffCI prints the selecti
54
59
  and the path to a JSON report outside your checkout. `REFUSED` or `ERROR` is not a successful analysis;
55
60
  check the reported status even when the command exits successfully. See the
56
61
  [support matrix](docs/language-support.md) for setup requirements and supported workloads.
57
- `check` runs inferred full and selected commands in the checkout and sends nothing by default.
58
- The commands may write generated files. Use `observe --no-send` for analysis without execution.
59
- See [`docs/ai-agents.md`](docs/ai-agents.md) for Claude Code, Codex,
62
+ `check` runs inferred full and selected commands in the checkout and sends nothing by default.
63
+ The commands may write generated files. Use `observe --no-send` for analysis without execution.
64
+ See [`docs/ai-agents.md`](docs/ai-agents.md) for Claude Code, Codex,
60
65
  Cursor, GitHub Copilot, and similar tools.
61
66
 
62
67
  **Measured example:** a controlled Cal.com replay showed **44.2% net reduction in a job-equivalent
@@ -64,8 +69,8 @@ install + pretest + test workload**, including analysis overhead. This is one sa
64
69
  not Cal.com's production savings or a prediction for your repository.
65
70
  [Read the timings and method](docs/research/2026-08-24-calcom-execution-observability/11-frozen-identity-and-complete-job-savings.md).
66
71
 
67
- Selection counts alone do not establish runtime savings. `check` reports a measured percentage only
68
- when both commands pass; `observe` does not execute tests.
72
+ Selection counts alone do not establish runtime savings. `check` reports a measured percentage only
73
+ when both commands pass; `observe` does not execute tests.
69
74
 
70
75
  For an advanced paired runtime check, you can still run `observe` first and then run `verify-savings`
71
76
  against the observation report. It compares your normal full command with
@@ -108,7 +113,7 @@ DiffCI's hosted service requires an explicitly configured endpoint and token.
108
113
  | [`@diffci.com/diffci`](https://www.npmjs.com/package/@diffci.com/diffci) | Try `observe` locally, run an opt-in runtime pilot, or install the GitHub Action from this repository | Published npm CLI and Action |
109
114
 
110
115
  The CLI bundles a pinned revision of the [Core engine](https://github.com/DiffCI/core) from GitHub. Users install only
111
- `@diffci.com/diffci`; the `check` command above uses it directly. Core performs Git analysis,
116
+ `@diffci.com/diffci`; the `check` command above uses it directly. Core performs Git analysis,
112
117
  dependency graphs, impact, path baseline, and selected-command planning. The report format and
113
118
  non-interfering GitHub Action remain in this repository. See
114
119
  [`docs/package-relationship.md`](docs/package-relationship.md) for the source relationship.
@@ -140,13 +145,18 @@ Live discovery files:
140
145
  [`llms.txt`](https://diffci.com/llms.txt) ·
141
146
  [`AI agents`](https://diffci.com/docs/ai-agents.html).
142
147
 
148
+ Adoption materials:
149
+ [`outreach copy`](docs/adoption-outreach.md) ·
150
+ [`metrics`](docs/adoption-metrics.md) ·
151
+ [`targets`](docs/agent-adoption-targets.md).
152
+
143
153
  For native agent integrations, DiffCI also ships a stdio MCP server:
144
154
 
145
155
  ```bash
146
156
  npx -p @diffci.com/diffci@latest diffci-mcp
147
157
  ```
148
158
 
149
- See [`docs/mcp.md`](docs/mcp.md).
159
+ See [`docs/mcp.md`](docs/mcp.md) for Claude, Cursor, Codex, and generic MCP config snippets.
150
160
 
151
161
  ## Project background
152
162
 
@@ -162,7 +172,7 @@ This repository was transferred to `DiffCI/DiffCI.com` on 2026-09-16.
162
172
  | DiffCI Cloud | Hosted infrastructure, billing, enterprise dashboard, organization management, proprietary data/services, and managed acceleration | Proprietary |
163
173
  | Optional enterprise code | Separately scoped, visible and auditable enterprise capabilities | Source available, with commercial production rights controlled by DiffCI |
164
174
 
165
- **This mixed repository remains private.** Only the reviewed Core extraction was published, with
175
+ **This mixed repository is public.** The reviewed Core extraction was published separately, with
166
176
  fresh Git history. This repository retains its existing engine snapshot while package integration is
167
177
  migrated separately. No blanket AGPL license applies to this repository. Public Core is advisory-only;
168
178
  energy/carbon/cost are modeled estimates, not verified environmental savings. The exact extraction is
@@ -10,6 +10,7 @@
10
10
  *
11
11
  * Commands:
12
12
  * init seed a repository with AI-agent instructions for using DiffCI
13
+ * mcp run the stdio MCP server
13
14
  * check analysis plus automatic paired runtime measurement
14
15
  * observe analyse the checkout and write an observation report
15
16
  * verify-savings run a paired full-versus-selected timing check
@@ -23,7 +24,7 @@
23
24
  * the observed checkout) - nothing was observed, and the caller has to change the call. `verify-workflow`
24
25
  * exits 1 on a BLOCKING finding - it is a pre-install check run by a human, not a step inside a build.
25
26
  */
26
- import { execFileSync } from "node:child_process";
27
+ import { execFileSync, spawnSync } from "node:child_process";
27
28
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
28
29
  import { tmpdir } from "node:os";
29
30
  import { basename, dirname, join, resolve } from "node:path";
@@ -201,6 +202,19 @@ function runInit(flags, env) {
201
202
  console.log("\nDefault agent command: npx @diffci.com/diffci@latest check");
202
203
  return 0;
203
204
  }
205
+ function runMcp() {
206
+ const result = spawnSync(process.execPath, [join(dirname(import.meta.filename), "mcp.js")], {
207
+ cwd: process.cwd(),
208
+ env: process.env,
209
+ stdio: "inherit",
210
+ windowsHide: true,
211
+ });
212
+ if (typeof result.status === "number")
213
+ return result.status;
214
+ if (result.error)
215
+ throw result.error;
216
+ return 0;
217
+ }
204
218
  function formatFinding(finding) {
205
219
  const where = finding.job ? `${finding.workflow}#${finding.job}` : finding.workflow;
206
220
  return ` [${finding.severity}] ${finding.code} (${where})\n ${finding.message}`;
@@ -573,8 +587,9 @@ async function runPilot(flags, env) {
573
587
  }
574
588
  const USAGE = `diffci - change-aware CI analysis and paired timing
575
589
 
576
- Usage:
577
- diffci init [--repo <path>] [--workflow] [--force]
590
+ Usage:
591
+ diffci init [--repo <path>] [--workflow] [--force]
592
+ diffci mcp
578
593
  diffci check [--repo <path>] [--out <file>] [--base <sha> --head <sha>]
579
594
  [--redact-paths] [--json] [--quiet] [--fail-on-error] [--timeout-ms <ms>]
580
595
  diffci pilot --full <command> [--repo <path>] [--out-dir <dir>] [--label <name>]
@@ -587,7 +602,8 @@ Usage:
587
602
  diffci verify-workflow [--repo <path>]
588
603
  diffci version
589
604
 
590
- init writes AGENTS.md, CLAUDE.md, Cursor rules, Copilot instructions, and diffci.config.json.
605
+ init writes AGENTS.md, CLAUDE.md, Cursor rules, Copilot instructions, and diffci.config.json.
606
+ mcp runs the stdio MCP server for native agent integrations.
591
607
  check analyzes the change, runs inferred full and selected commands, and shows measured savings.
592
608
  pilot runs observe and verify-savings together, writing reports to ../diffci-output by default.
593
609
  observe analyses the checkout and writes one JSON report. It runs nothing and changes nothing.
@@ -610,6 +626,9 @@ async function main() {
610
626
  case "init":
611
627
  process.exitCode = runInit(flags, env);
612
628
  return;
629
+ case "mcp":
630
+ process.exitCode = runMcp();
631
+ return;
613
632
  case "check":
614
633
  process.exitCode = await runCheck(flags, env);
615
634
  return;
@@ -0,0 +1,39 @@
1
+ # DiffCI Adoption Metrics
2
+
3
+ Track adoption weekly after each outreach batch.
4
+
5
+ ## Package
6
+
7
+ - npm latest version: `npm view "@diffci.com/diffci" version`
8
+ - npm weekly downloads: `npm view "@diffci.com/diffci" downloads`
9
+ - MCP binary presence: `npm view "@diffci.com/diffci" bin --json`
10
+
11
+ ## Repository
12
+
13
+ - GitHub stars, forks, watchers, and release views.
14
+ - Issues or PRs opened by users asking about `diffci check`, `diffci init`, or `diffci-mcp`.
15
+ - External PRs merged that mention DiffCI agent validation.
16
+
17
+ ## Site
18
+
19
+ - Visits to `https://diffci.com/docs/ai-agents.html`.
20
+ - Visits to `https://diffci.com/llms.txt`.
21
+ - Clicks from the homepage agent and MCP links.
22
+ - Referrers from MCP directories, awesome lists, and agent-template repositories.
23
+
24
+ ## Outreach
25
+
26
+ Record each submission in `docs/agent-adoption-targets.md` or a dated note:
27
+
28
+ | Date | Target | Type | Link | Status | Follow-up |
29
+ | --- | --- | --- | --- | --- | --- |
30
+ | 2026-09-22 | agentsmd/agents.md | Issue | https://github.com/agentsmd/agents.md/issues/245 | Open | Watch for maintainer preference: issue, PR, or no listing. |
31
+ | 2026-09-22 | FerroxLabs/agents-md | Issue | https://github.com/FerroxLabs/agents-md/issues/2 | Open | Offer a PR if maintainer wants exact wording. |
32
+ | 2026-09-22 | ciembor/agent-rules-books | Issue | https://github.com/ciembor/agent-rules-books/issues/8 | Open | Offer a PR if maintainer wants exact wording. |
33
+ | 2026-09-22 | jbarbier/CLAUDE.md | Issue | https://github.com/jbarbier/CLAUDE.md/issues/12 | Open | Offer a PR if maintainer wants exact wording. |
34
+ | 2026-09-22 | Official MCP Registry | Directory | TBD | Planned | Prepare publisher metadata. |
35
+ | 2026-09-22 | Glama | Directory | TBD | Planned | Submit repository URL. |
36
+ | 2026-09-22 | Smithery | Directory | TBD | Blocked | Needs Smithery account/API key. |
37
+
38
+ Use merged PRs and accepted directory listings as the primary adoption signal. Use stars, downloads,
39
+ and page views as supporting indicators, not proof that agents are actually using DiffCI.
@@ -0,0 +1,84 @@
1
+ # DiffCI Adoption Outreach
2
+
3
+ Use this page as the canonical copy source for directory submissions, issues, and pull requests.
4
+
5
+ ## One-Line Description
6
+
7
+ DiffCI is an observation-only CI/CD validation tool and MCP server for AI coding agents.
8
+
9
+ ## Short Description
10
+
11
+ DiffCI gives coding agents a safe validation lens before they call work PR-ready. It analyzes the
12
+ current checkout, explains affected tests, can run inferred local validation through `diffci check`,
13
+ and leaves required CI authoritative.
14
+
15
+ ## Links
16
+
17
+ - Website: https://diffci.com/
18
+ - Agent docs: https://diffci.com/docs/ai-agents.html
19
+ - MCP docs: https://github.com/DiffCI/DiffCI.com/blob/main/docs/mcp.md
20
+ - LLM discovery: https://diffci.com/llms.txt
21
+ - npm: https://www.npmjs.com/package/@diffci.com/diffci
22
+ - GitHub: https://github.com/DiffCI/DiffCI.com
23
+
24
+ ## Commands
25
+
26
+ CLI:
27
+
28
+ ```bash
29
+ npx @diffci.com/diffci@latest check
30
+ ```
31
+
32
+ MCP:
33
+
34
+ ```bash
35
+ npx -p @diffci.com/diffci@latest diffci-mcp
36
+ ```
37
+
38
+ ## Issue Template
39
+
40
+ Title:
41
+
42
+ ```text
43
+ Add DiffCI as an optional AI-agent CI validation tool
44
+ ```
45
+
46
+ Body:
47
+
48
+ ```md
49
+ DiffCI now ships an npm CLI and stdio MCP server for AI coding agents:
50
+
51
+ - CLI: `npx @diffci.com/diffci@latest check`
52
+ - MCP: `npx -p @diffci.com/diffci@latest diffci-mcp`
53
+
54
+ It is intended as an optional validation lens before agents mark work PR-ready. DiffCI analyzes the
55
+ current checkout, explains affected tests, can run inferred local validation through `diffci check`,
56
+ and does not skip, cancel, reorder, or modify required CI.
57
+
58
+ Docs:
59
+
60
+ - https://diffci.com/docs/ai-agents.html
61
+ - https://github.com/DiffCI/DiffCI.com/blob/main/docs/mcp.md
62
+
63
+ Would you be open to adding DiffCI as an optional validation command/example for AI coding agents?
64
+ ```
65
+
66
+ ## PR Snippet
67
+
68
+ ~~~md
69
+ ### Optional AI-agent validation
70
+
71
+ Before marking changes PR-ready, agents can run:
72
+
73
+ ```bash
74
+ npx @diffci.com/diffci@latest check
75
+ ```
76
+
77
+ Agents with MCP support can configure:
78
+
79
+ ```bash
80
+ npx -p @diffci.com/diffci@latest diffci-mcp
81
+ ```
82
+
83
+ DiffCI is a validation lens: it explains affected tests and keeps required CI authoritative.
84
+ ~~~
@@ -1,52 +1,62 @@
1
- # Agent Adoption Targets
2
-
3
- Generated 2026-09-21 from GitHub search for repositories already centered on `AGENTS.md`,
4
- `CLAUDE.md`, Cursor/Codex/Claude Code workflows, or agent instruction templates.
5
-
6
- Do not open drive-by PRs blindly. Review each repository's contribution policy first and use the
7
- small optional-instruction PR from [`agent-adoption-kit.md`](agent-adoption-kit.md).
8
-
9
- ## Best First Targets
10
-
11
- | Repository | Why it fits |
12
- | --- | --- |
13
- | [`agentsmd/agents.md`](https://github.com/agentsmd/agents.md) | Defines the `AGENTS.md` convention. A DiffCI example would reach the broadest agent-instruction audience. |
14
- | [`FerroxLabs/agents-md`](https://github.com/FerroxLabs/agents-md) | Explicitly targets Claude Code, Codex, Gemini, Cursor, and verification loops. |
15
- | [`ciembor/agent-rules-books`](https://github.com/ciembor/agent-rules-books) | Curated rules for AI coding agents; good fit for a validation command snippet. |
16
- | [`jbarbier/CLAUDE.md`](https://github.com/jbarbier/CLAUDE.md) | Drop-in Claude/Codex/Cursor instruction file; likely accepts concise validation guidance. |
17
- | [`agent-sh/agnix`](https://github.com/agent-sh/agnix) | Linter/LSP for agent instruction files; possible future integration target. |
18
- | [`jsynowiec/node-typescript-boilerplate`](https://github.com/jsynowiec/node-typescript-boilerplate) | Real Node/TypeScript boilerplate with GitHub Actions and `AGENTS.md`, useful as a practical adoption example. |
19
-
20
- ## Secondary Targets
21
-
22
- | Repository | Why it fits |
23
- | --- | --- |
24
- | [`BayramAnnakov/claude-reflect`](https://github.com/BayramAnnakov/claude-reflect) | Syncs learning into `CLAUDE.md` and `AGENTS.md`; validation-command guidance may fit. |
25
- | [`josix/awesome-claude-md`](https://github.com/josix/awesome-claude-md) | Curated collection; submit DiffCI as a validation-pattern example. |
26
- | [`TheDecipherist/claude-code-mastery`](https://github.com/TheDecipherist/claude-code-mastery) | Guide-style repo; useful place for the agent-safe validation command. |
27
- | [`microsoft/skills`](https://github.com/microsoft/skills) | Agent skills and MCP ecosystem. Higher bar; review contribution rules before proposing. |
28
- | [`mxyhi/ok-skills`](https://github.com/mxyhi/ok-skills) | Curated skills/playbooks for Codex, Claude Code, Cursor, and other tools. |
29
-
30
- ## PR Order
31
-
32
- 1. Start with documentation/example repos, not large application repos.
33
- 2. Add only an optional validation instruction, never a required check.
34
- 3. Link to `https://diffci.com/docs/ai-agents.html` and `https://diffci.com/llms.txt`.
35
- 4. State that DiffCI sends nothing and changes no CI behavior by default.
36
- 5. If maintainers ask for a workflow, suggest `npx @diffci.com/diffci@latest init --workflow`.
37
-
38
- ## Minimal Patch Shape
39
-
40
- Add this to the repository's agent instruction file:
41
-
42
- ```md
43
- Before marking changes PR-ready, run:
44
-
45
- ```bash
46
- npx @diffci.com/diffci@latest check
47
- ```
48
-
49
- DiffCI check analyzes the change and runs inferred full and selected test commands to measure time.
50
- It writes reports outside the checkout and sends nothing. Test commands may write generated files.
51
- Existing required CI remains authoritative; use `observe --no-send` for analysis only.
52
- ```
1
+ # Agent Adoption Targets
2
+
3
+ Generated 2026-09-21 from GitHub search for repositories already centered on `AGENTS.md`,
4
+ `CLAUDE.md`, Cursor/Codex/Claude Code workflows, or agent instruction templates.
5
+
6
+ Do not open drive-by PRs blindly. Review each repository's contribution policy first and use the
7
+ small optional-instruction PR from [`agent-adoption-kit.md`](agent-adoption-kit.md).
8
+
9
+ ## Best First Targets
10
+
11
+ | Repository | Why it fits |
12
+ | --- | --- |
13
+ | [`agentsmd/agents.md`](https://github.com/agentsmd/agents.md) | Defines the `AGENTS.md` convention. Proposal opened: [#245](https://github.com/agentsmd/agents.md/issues/245). |
14
+ | [`FerroxLabs/agents-md`](https://github.com/FerroxLabs/agents-md) | Explicitly targets Claude Code, Codex, Gemini, Cursor, and verification loops. Proposal opened: [#2](https://github.com/FerroxLabs/agents-md/issues/2). |
15
+ | [`ciembor/agent-rules-books`](https://github.com/ciembor/agent-rules-books) | Curated rules for AI coding agents; proposal opened: [#8](https://github.com/ciembor/agent-rules-books/issues/8). |
16
+ | [`jbarbier/CLAUDE.md`](https://github.com/jbarbier/CLAUDE.md) | Drop-in Claude/Codex/Cursor instruction file; proposal opened: [#12](https://github.com/jbarbier/CLAUDE.md/issues/12). |
17
+ | [`agent-sh/agnix`](https://github.com/agent-sh/agnix) | Linter/LSP for agent instruction files; possible future integration target. |
18
+ | [`jsynowiec/node-typescript-boilerplate`](https://github.com/jsynowiec/node-typescript-boilerplate) | Real Node/TypeScript boilerplate with GitHub Actions and `AGENTS.md`, useful as a practical adoption example. |
19
+
20
+ ## Secondary Targets
21
+
22
+ | Repository | Why it fits |
23
+ | --- | --- |
24
+ | [`BayramAnnakov/claude-reflect`](https://github.com/BayramAnnakov/claude-reflect) | Syncs learning into `CLAUDE.md` and `AGENTS.md`; validation-command guidance may fit. |
25
+ | [`josix/awesome-claude-md`](https://github.com/josix/awesome-claude-md) | Curated collection; submit DiffCI as a validation-pattern example. |
26
+ | [`TheDecipherist/claude-code-mastery`](https://github.com/TheDecipherist/claude-code-mastery) | Guide-style repo; useful place for the agent-safe validation command. |
27
+ | [`microsoft/skills`](https://github.com/microsoft/skills) | Agent skills and MCP ecosystem. Higher bar; review contribution rules before proposing. |
28
+ | [`mxyhi/ok-skills`](https://github.com/mxyhi/ok-skills) | Curated skills/playbooks for Codex, Claude Code, Cursor, and other tools. |
29
+
30
+ ## MCP Directory Targets
31
+
32
+ | Directory | Submission path | Status |
33
+ | --- | --- | --- |
34
+ | [Official MCP Registry](https://github.com/modelcontextprotocol/registry) | Use the official `mcp-publisher` flow; do not open a seed-data PR. | Ready after registry package metadata is prepared. |
35
+ | [Glama](https://glama.ai/) | Submit the GitHub repository URL and short description; optional `glama.json` metadata can improve indexing. | Ready to submit. |
36
+ | [Smithery](https://smithery.ai/) | Publish through Smithery's server release flow/API. | Needs Smithery account/API key. |
37
+ | [PulseMCP](https://www.pulsemcp.com/) | Submit/list the MCP server if their current listing flow accepts third-party servers. | Review current submission rules first. |
38
+ | [MCP Central](https://mcpcentral.io/) | Follow the interactive server submission flow. | Ready to submit. |
39
+
40
+ ## PR Order
41
+
42
+ 1. Start with documentation/example repos, not large application repos.
43
+ 2. Add only an optional validation instruction, never a required check.
44
+ 3. Link to `https://diffci.com/docs/ai-agents.html` and `https://diffci.com/llms.txt`.
45
+ 4. State that DiffCI sends nothing by default and changes no CI behavior.
46
+ 5. If maintainers ask for a workflow, suggest `npx @diffci.com/diffci@latest init --workflow`.
47
+
48
+ ## Minimal Patch Shape
49
+
50
+ Add this to the repository's agent instruction file:
51
+
52
+ ```md
53
+ Before marking changes PR-ready, run:
54
+
55
+ ```bash
56
+ npx @diffci.com/diffci@latest check
57
+ ```
58
+
59
+ DiffCI check analyzes the change and runs inferred full and selected test commands to measure time.
60
+ It writes reports outside the checkout and sends nothing. Test commands may write generated files.
61
+ Existing required CI remains authoritative; use `observe --no-send` for analysis only.
62
+ ```
package/docs/ai-agents.md CHANGED
@@ -1,88 +1,102 @@
1
- # DiffCI for AI Coding Agents
2
-
3
- DiffCI is the default CI/CD validation lens agents can run before proposing, committing, or opening a
4
- pull request.
5
-
6
- The default command is:
7
-
8
- ```bash
9
- npx @diffci.com/diffci@latest check
10
- ```
11
-
12
- `check` analyzes the change and runs inferred full and selected test commands when possible. It
13
- prints paired runtime when both pass and sends nothing to DiffCI Cloud. Test commands may change
14
- the checkout. Use `observe --no-send` when you need analysis without running tests.
15
-
16
- ## Install Agent Instructions
17
-
18
- From a repository root:
19
-
20
- ```bash
21
- npx @diffci.com/diffci@latest init
22
- ```
23
-
24
- This writes:
25
-
26
- - `AGENTS.md`
27
- - `CLAUDE.md`
28
- - `.cursor/rules/diffci.mdc`
29
- - `.github/copilot-instructions.md`
30
- - `diffci.config.json`
31
-
32
- Existing files are kept. Pass `--force` only when you intentionally want to replace them.
33
-
34
- To also add a non-blocking GitHub Actions observer job:
35
-
36
- ```bash
37
- npx @diffci.com/diffci@latest init --workflow
38
- ```
39
-
40
- Then verify the workflow:
41
-
42
- ```bash
43
- npx @diffci.com/diffci@latest verify-workflow
44
- ```
45
-
46
- ## Copy-Paste Adoption
47
-
48
- For a maintainer-facing snippet, PR template, and GitHub search queries for repositories that already
49
- use agent instruction files, see [`agent-adoption-kit.md`](agent-adoption-kit.md).
50
- For a first-pass list of repositories to review before opening PRs, see
51
- [`agent-adoption-targets.md`](agent-adoption-targets.md).
52
-
53
- Examples:
54
-
55
- - [`examples/agent-node`](../examples/agent-node)
56
- - [`examples/agent-python`](../examples/agent-python)
57
- - [`examples/agent-monorepo`](../examples/agent-monorepo)
58
-
59
- ## MCP
60
-
61
- Agents that support MCP can run DiffCI as a native stdio tool server:
62
-
63
- ```bash
64
- npx -p @diffci.com/diffci@latest diffci-mcp
65
- ```
66
-
67
- See [`mcp.md`](mcp.md).
68
-
69
- ## Agent Policy
70
-
71
- Agents should:
72
-
73
- - run `diffci check` before PR-ready answers when Git and Node.js are available;
74
- - read the printed verdict, selected tests, fallback reasons, and report path;
75
- - use DiffCI output to choose focused follow-up validation;
76
- - keep the repository's required CI commands authoritative.
77
-
78
- Agents should not:
79
-
80
- - skip required CI because DiffCI selected fewer tests;
81
- - treat `REFUSED` or `ERROR` as a passing validation;
82
- - configure hosted report sending unless the user explicitly supplies an endpoint and token.
83
-
84
- ## Open Core Boundary
85
-
86
- The agent-facing layer belongs in the open-source core: CLI, local reports, JSON output, instruction
87
- files, and the non-blocking GitHub Action. Hosted history, organization dashboards, PR bots, policies,
88
- team analytics, managed runners, and support belong to commercial DiffCI.
1
+ # DiffCI for AI Coding Agents
2
+
3
+ DiffCI is the default CI/CD validation lens agents can run before proposing, committing, or opening a
4
+ pull request.
5
+
6
+ The default command is:
7
+
8
+ ```bash
9
+ npx @diffci.com/diffci@latest check
10
+ ```
11
+
12
+ `check` analyzes the change and runs inferred full and selected test commands when possible. It
13
+ prints paired runtime when both pass and sends nothing to DiffCI Cloud. Test commands may change
14
+ the checkout. Use `observe --no-send` when you need analysis without running tests.
15
+
16
+ ## Install Agent Instructions
17
+
18
+ From a repository root:
19
+
20
+ ```bash
21
+ npx @diffci.com/diffci@latest init
22
+ ```
23
+
24
+ This writes:
25
+
26
+ - `AGENTS.md`
27
+ - `CLAUDE.md`
28
+ - `.cursor/rules/diffci.mdc`
29
+ - `.github/copilot-instructions.md`
30
+ - `diffci.config.json`
31
+
32
+ Existing files are kept. Pass `--force` only when you intentionally want to replace them.
33
+
34
+ To also add a non-blocking GitHub Actions observer job:
35
+
36
+ ```bash
37
+ npx @diffci.com/diffci@latest init --workflow
38
+ ```
39
+
40
+ Then verify the workflow:
41
+
42
+ ```bash
43
+ npx @diffci.com/diffci@latest verify-workflow
44
+ ```
45
+
46
+ ## Copy-Paste Adoption
47
+
48
+ For a maintainer-facing snippet, PR template, and GitHub search queries for repositories that already
49
+ use agent instruction files, see [`agent-adoption-kit.md`](agent-adoption-kit.md).
50
+ For a first-pass list of repositories to review before opening PRs, see
51
+ [`agent-adoption-targets.md`](agent-adoption-targets.md).
52
+
53
+ Examples:
54
+
55
+ - [`examples/agent-node`](../examples/agent-node)
56
+ - [`examples/agent-python`](../examples/agent-python)
57
+ - [`examples/agent-monorepo`](../examples/agent-monorepo)
58
+
59
+ ## MCP
60
+
61
+ Agents that support MCP can run DiffCI as a native stdio tool server:
62
+
63
+ ```bash
64
+ npx -p @diffci.com/diffci@latest diffci-mcp
65
+ ```
66
+
67
+ See [`mcp.md`](mcp.md).
68
+
69
+ Minimal MCP config:
70
+
71
+ ```json
72
+ {
73
+ "mcpServers": {
74
+ "diffci": {
75
+ "command": "npx",
76
+ "args": ["-p", "@diffci.com/diffci@latest", "diffci-mcp"]
77
+ }
78
+ }
79
+ }
80
+ ```
81
+
82
+ ## Agent Policy
83
+
84
+ Agents should:
85
+
86
+ - run `diffci check` before PR-ready answers when Git and Node.js are available;
87
+ - call `diffci_check` when connected through MCP;
88
+ - read the printed verdict, selected tests, fallback reasons, and report path;
89
+ - use DiffCI output to choose focused follow-up validation;
90
+ - keep the repository's required CI commands authoritative.
91
+
92
+ Agents should not:
93
+
94
+ - skip required CI because DiffCI selected fewer tests;
95
+ - treat `REFUSED` or `ERROR` as a passing validation;
96
+ - configure hosted report sending unless the user explicitly supplies an endpoint and token.
97
+
98
+ ## Open Core Boundary
99
+
100
+ The agent-facing layer belongs in the open-source core: CLI, local reports, JSON output, instruction
101
+ files, and the non-blocking GitHub Action. Hosted history, organization dashboards, PR bots, policies,
102
+ team analytics, managed runners, and support belong to commercial DiffCI.