@diffci.com/diffci 0.2.1 → 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 +35 -25
- package/dist-client/src/client/cli.js +23 -4
- package/docs/adoption-metrics.md +39 -0
- package/docs/adoption-outreach.md +84 -0
- package/docs/agent-adoption-targets.md +62 -52
- package/docs/ai-agents.md +102 -88
- package/docs/mcp.md +70 -21
- package/glama.json +12 -0
- package/llms.txt +39 -37
- package/package.json +6 -1
- package/server.json +28 -0
- package/node_modules/@babel/parser/CHANGELOG.md +0 -1073
- package/node_modules/estree-walker/CHANGELOG.md +0 -92
package/README.md
CHANGED
|
@@ -3,16 +3,21 @@
|
|
|
3
3
|
|
|
4
4
|
[](https://www.npmjs.com/package/@diffci.com/diffci)
|
|
5
5
|
[](https://docs.npmjs.com/generating-provenance-statements)
|
|
6
|
+
[](docs/mcp.md)
|
|
7
|
+
[](docs/ai-agents.md)
|
|
6
8
|
[](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
|
|
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.
|
|
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;
|
|
16
|
-
| [`jbarbier/CLAUDE.md`](https://github.com/jbarbier/CLAUDE.md) | Drop-in Claude/Codex/Cursor instruction file;
|
|
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
|
-
##
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
npx @diffci.com/diffci@latest
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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.
|