pluribus-context 0.3.0 → 0.3.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/CHANGELOG.md +94 -2
- package/README.md +102 -30
- package/bin/pluribus.js +48 -2
- package/docs/ci-audit-example.md +80 -0
- package/docs/context-drift-audit.md +78 -12
- package/docs/context-drift-taxonomy.md +83 -0
- package/docs/context-file-review.md +3 -3
- package/docs/migrate-existing-context.md +21 -11
- package/docs/pre-commit-audit.md +67 -0
- package/docs/quickstart.md +51 -12
- package/docs/release-checklist.md +36 -6
- package/docs/when-to-use-pluribus.md +36 -0
- package/examples/context-drift-audit/.cursorrules +30 -0
- package/examples/context-drift-audit/.github/copilot-instructions.md +28 -0
- package/examples/context-drift-audit/CLAUDE.md +55 -0
- package/examples/context-drift-audit/README.md +31 -0
- package/examples/context-drift-audit/pluribus.md +35 -0
- package/examples/git-hooks/pre-commit +11 -0
- package/examples/github-actions/pluribus-audit.yml +26 -0
- package/package.json +26 -11
- package/schemas/audit-result.schema.json +119 -0
- package/src/commands/audit.js +162 -36
- package/src/commands/init.js +20 -4
- package/src/utils/version.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,99 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
3
5
|
All notable changes to Pluribus are documented here.
|
|
4
6
|
|
|
7
|
+
## 0.3.3 — Publish-window rehearsal hardening
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Make the guarded `release:publish -- --dry-run` rehearsal check the same Git tag/HEAD alignment before any live OTP window, so tag drift is caught without touching npm.
|
|
12
|
+
- Carry the pending source-install documentation forward to the immutable GitHub `v0.3.3` tag while npm `latest` remains `0.3.0`.
|
|
13
|
+
|
|
14
|
+
## 0.3.2 — Release artifact reconciliation
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Reconcile the npm publish target after the GitHub `v0.3.1` tag drifted from `main`: bump the pending npm release to `0.3.2` so the next publish can map to a fresh immutable GitHub tag instead of reusing the older `v0.3.1` artifact.
|
|
19
|
+
- Guard `release:publish` against publishing an npm package version from a different commit than its matching GitHub release tag.
|
|
20
|
+
- Keep temporary source-install documentation pinned to the immutable GitHub release tag for the package version being prepared while npm `latest` remains `0.3.0`.
|
|
21
|
+
|
|
22
|
+
## 0.3.1 — npm README cleanup
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- Pin temporary source-install documentation to the immutable GitHub release tag `v0.3.2` instead of `main` while npm `latest` remains `0.3.0`, and make the release verifier accept the versioned tag path for unreleased `0.3.2` commands.
|
|
27
|
+
- Block moving GitHub source-install references in docs, examples, issue templates, and changelog while npm `latest` is behind the local package, so partial-release copy-paste paths stay tied to the immutable tag.
|
|
28
|
+
- Clarify the npm 2FA publish path in the release checklist, including the guarded `npm run release:publish -- --otp <one-time-code>` command and the rule to pause distribution if a GitHub release exists before npm `latest` is updated.
|
|
29
|
+
- Verify that `docs/pre-commit-audit.md` embeds the same hook body as `examples/git-hooks/pre-commit`, so the local copy-paste guard and packaged git-hook example cannot drift into different audit commands.
|
|
30
|
+
- Verify that `docs/ci-audit-example.md` includes an exact copy of `examples/github-actions/pluribus-audit.yml`, so the copy-paste CI guide and packaged workflow example cannot drift into different audit commands.
|
|
31
|
+
- Run the full `npm run release:verify` gate in CI, with CI-safe detached checkout handling, so local-only release guards for docs, package metadata, npm smoke, tarball smoke, and publish dry-run cannot drift behind the public pipeline.
|
|
32
|
+
- Verify that docs and contributor-facing GitHub issue-template links point to existing `.github/ISSUE_TEMPLATE` files, and that every public feedback template is linked somewhere in the docs, so first-run feedback paths cannot silently 404 or disappear.
|
|
33
|
+
- Make `npm run release:publish` require the public `latest` dist-tag and verify that `npm view pluribus-context version` matches the just-published package before running `published:smoke`, and verify the publish script syntax in `release:verify`, so a publish under the wrong tag cannot look successful.
|
|
34
|
+
- Republish the post-0.3.0 README/docs cleanup so the npm package page no longer tells users that `audit` requires a source install or that npm latest may still be `0.2.0`.
|
|
35
|
+
- Clarify first-run write safety in the README and quickstart: `audit`, `validate`, and `sync --dry-run` are read-only; `init` writes only `pluribus.md`; `sync` writes only generated AI context files; remote import cache/lock writes require explicit `--update-imports`.
|
|
36
|
+
- Keep the published path explicit: `npx --yes pluribus-context@latest audit` is now the default first-run check.
|
|
37
|
+
- Clarify when Pluribus complements dedicated context linters/drift auditors versus replacing one-way sync maintenance.
|
|
38
|
+
- Expand package keywords for discoverability around `context-drift`, `AGENTS.md`, Cursor rules, and AI coding agents.
|
|
39
|
+
- Add a dedicated GitHub issue template for read-only `pluribus audit` feedback from real repos, plus links to the audit guide and workflow discussion.
|
|
40
|
+
- Make quickstart and audit feedback templates point to the current published `npx --yes pluribus-context@latest ...` commands so first-run reports are easier to reproduce.
|
|
41
|
+
- Clarify that Pluribus detects file-level output drift, not runtime precedence issues where a tool deprioritizes a correct context file after compaction/summarization.
|
|
42
|
+
- Add a lightweight runtime-loading sanity check for users who want to confirm a generated context file is actually loaded before relying on it.
|
|
43
|
+
- Add a context drift taxonomy that separates file-level output drift, source-of-truth drift, runtime loading/precedence drift, and behavioral drift so users can choose the right check before adopting Pluribus.
|
|
44
|
+
- Add `pluribus audit --json` so CI jobs, smoke scripts, and external tools can consume drift results without parsing emoji/text output.
|
|
45
|
+
- Add `pluribus audit --github-annotations` for inline GitHub Actions check annotations when generated context files are missing or drifted.
|
|
46
|
+
- Add `pluribus audit --ci` as a shortcut for `--strict --github-annotations` in GitHub Actions.
|
|
47
|
+
- Add `schemas/audit-result.schema.json` to make the `pluribus audit --json` contract explicit for CI wrappers, dashboards, and migration tools.
|
|
48
|
+
- Add `pluribus audit --json --output <file>` so CI jobs can save audit results as artifacts without shell redirection or noisy stdout.
|
|
49
|
+
- Add a copy-paste CI audit guide and GitHub Actions example for enforcing generated context files in pull requests.
|
|
50
|
+
- Add a pre-commit audit guide and sample git hook for catching context drift before commits leave a developer machine.
|
|
51
|
+
- Make the README and quickstart choose between two safe first commands: read-only `audit` for existing repos and `init` for brand-new repos.
|
|
52
|
+
- Normalize one-off `npx` examples to `npx --yes pluribus-context@latest ...` so copy-paste docs do not pause on npm's install prompt or rely on implicit latest resolution.
|
|
53
|
+
- Add explicit version-availability notes while `main` documents `0.3.2` audit CI flags and `init --dry-run`, while npm latest remains `0.3.0`.
|
|
54
|
+
- Use exact `github:caioribeiroclw-pixel/pluribus#v0.3.2` tag-install commands for `init --dry-run` previews so users do not accidentally run npm `0.3.0` commands that still write `pluribus.md`.
|
|
55
|
+
- Use exact `github:caioribeiroclw-pixel/pluribus#v0.3.2` tag-install commands for `audit --ci`, `--json`, `--output`, and `--github-annotations` docs and examples until `0.3.2` is published to npm, so CI copy-paste paths do not imply those flags are available in npm `0.3.0`.
|
|
56
|
+
- Use `audit --ci` in the copy-paste GitHub Actions example to reduce command length.
|
|
57
|
+
- Clarify the README vision so the source of truth is `pluribus.md` plus optional `# @import` files, not an obsolete multi-file `pluribus/` directory layout.
|
|
58
|
+
- Add `pluribus init --dry-run` so first-time users can preview the `pluribus.md` scaffold before writing files.
|
|
59
|
+
- Add `npm run release:verify` to run the full release gate and report whether npm auth is the remaining publish blocker.
|
|
60
|
+
- Expand `npm run release:smoke` to verify the first-run `init --dry-run` preview and the copy-paste `audit --ci --json --output` path from the packaged tarball.
|
|
61
|
+
- Add `npm run published:smoke` to verify the currently published npm `latest` package still has a working public first-run path (`--version`, `--help`, read-only `audit`, `init`, `validate`, and `sync --dry-run`).
|
|
62
|
+
- Run the published npm smoke from `npm run release:verify` whenever a published package exists, so release readiness checks also validate the package users can install today.
|
|
63
|
+
- Extend the release verification guardrail to catch bare `pluribus ...` copy-paste examples with unreleased `init --dry-run` or CI/JSON audit flags while npm latest is still behind `main`.
|
|
64
|
+
- Make `npm run release:verify` distinguish missing npm auth from invalid/stale configured tokens, so the 0.3.2 publish path points to the right remediation without exposing credentials.
|
|
65
|
+
- Reject unknown CLI options per command before executing, so typoed or not-yet-published flags fail safely instead of being silently ignored.
|
|
66
|
+
- Make the packaged release smoke verify that unknown init flags fail without creating `pluribus.md`, so fail-safe option parsing is tested from the installed tarball, not only unit tests.
|
|
67
|
+
- Remove the unsupported `init --force` flag from the release smoke so release checks only exercise documented CLI behavior.
|
|
68
|
+
- Remove the same unsupported `init --force` flag from the published npm smoke so post-publish validation stays compatible with fail-safe unknown-option parsing.
|
|
69
|
+
- Make the published npm smoke verify fail-safe unknown-option parsing after `0.3.2` is published, so post-publish validation catches a regression back to silently ignored CLI flags.
|
|
70
|
+
- Update the bug report issue template to use non-interactive `pluribus-context@latest` reproduction commands and a current version placeholder, reducing stale first-run reports.
|
|
71
|
+
- Standardize README/docs/examples on `npx --yes pluribus-context@latest ...` for published commands and extend the release guard so unreleased flags are blocked with or without `@latest` while npm latest is behind `main`.
|
|
72
|
+
- Make `npm run published:smoke` verify the npm package README after `0.3.2` is published, catching stale package-page copy like `npx pluribus-context init` before future distribution pushes.
|
|
73
|
+
- Add `npm run release:publish` as the guarded publish path: it runs the full release verification before publishing, refuses credential-like CLI arguments, and runs the published npm smoke after a real publish.
|
|
74
|
+
- Extend `npm run release:verify` to check docs, examples, and issue templates for reproducible published npm commands (`npx --yes pluribus-context@latest ...`) and unreleased flags while npm latest is still behind `main`.
|
|
75
|
+
- Include `CONTRIBUTING.md` in the same release verification copy-paste scan, and update its audit feedback command to the reproducible `npx --yes pluribus-context@latest ...` form.
|
|
76
|
+
- Link audit feedback directly from the README/npm package page and make the published README smoke guard the quickstart + audit feedback paths.
|
|
77
|
+
- Link quickstart and audit docs directly to their issue templates, and verify those feedback paths in the release gate so first-run users do not have to choose a generic issue manually.
|
|
78
|
+
- Expand npm discovery keywords around agent rules, AI context, Codex/Aider, and drift detection so the package metadata matches the searches that surface adjacent tools.
|
|
79
|
+
- Rewrite the npm package description for search-result clarity and verify core discovery metadata in the release gate before publishing.
|
|
80
|
+
- Make the published npm smoke verify discovery description/keywords after `0.3.2` is published, so post-publish validation catches stale registry metadata before distribution pushes.
|
|
81
|
+
- Clarify the "When to use Pluribus" guide for users comparing adjacent rules-sync packages, with a sharper split between lightweight rules sync, tool-native prompt managers, one-way converters, and Pluribus' source-of-truth plus audit workflow.
|
|
82
|
+
- Make the published npm smoke verify that the package README keeps a visible path to the "When to use Pluribus" comparison guide after `0.3.2` is published.
|
|
83
|
+
- Run packaged CLI and published npm smoke checks in CI, so distribution regressions are caught on every push instead of only during local release prep.
|
|
84
|
+
- Surface npm weekly downloads and CI status badges in the README/npm package page, and verify those trust/distribution badges in the release and published smoke gates.
|
|
85
|
+
- Surface the audit feedback issue template directly from `pluribus audit` text and JSON output, so noisy first-run results can turn into structured reports without searching the docs.
|
|
86
|
+
- Verify the audit feedback link in packaged and published smoke checks, so the CLI feedback loop cannot disappear from the installed artifact unnoticed.
|
|
87
|
+
- Make global install examples explicit with `npm install -g pluribus-context@latest`, and have the release gate block ambiguous global install copy-paste commands.
|
|
88
|
+
- Keep `pluribus --help` in sync with the actual built-in tool adapters, and verify that in release/published smoke checks, so first-run users see Copilot, Windsurf, Continue, and Zed as supported `--tools` values instead of the original three-tool default.
|
|
89
|
+
- Add the full built-in adapter list to the quickstart and verify it in the release gate, so users can discover OpenClaw, Windsurf, Continue, and Zed before deciding which `--tools` values to try.
|
|
90
|
+
- Make issue templates ask for the exact `--version` output instead of a hard-coded version placeholder, and verify that guard in the release gate so feedback stays accurate while npm latest and `main` differ.
|
|
91
|
+
- Align `CONTRIBUTING.md` with the current built-in adapter list and integration request template, and verify that contributor-facing adapter guidance does not drift behind the CLI.
|
|
92
|
+
- Verify all built-in adapter outputs in packaged and published smoke checks, so docs/help cannot claim OpenClaw, Windsurf, Continue, or Zed support while the installed artifact fails to generate their files.
|
|
93
|
+
- Verify README/npm package-page adapter output copy in release and published smoke checks, so the top-of-funnel landing page cannot regress to the old three-tool story while the CLI supports more adapters.
|
|
94
|
+
- Verify that relative links from the README/npm package page point to files included in the npm tarball, so published docs links do not break after packaging.
|
|
95
|
+
- Extend packaged Markdown link verification beyond the README to docs/spec/examples in the npm tarball, so follow-on package-page navigation cannot drift to missing files.
|
|
96
|
+
|
|
5
97
|
## 0.3.0 — Audit workflow and first-run docs alignment
|
|
6
98
|
|
|
7
99
|
### Added
|
|
@@ -11,8 +103,8 @@ All notable changes to Pluribus are documented here.
|
|
|
11
103
|
|
|
12
104
|
### Changed
|
|
13
105
|
|
|
14
|
-
- Align the package README for the npm publish so the npm package page shows the real `npx pluribus-context` install path, npm badge, 60-second smoke test, `audit` workflow, and published-status roadmap.
|
|
15
|
-
-
|
|
106
|
+
- Align the package README for the npm publish so the npm package page shows the real `npx --yes pluribus-context` install path, npm badge, 60-second smoke test, `audit` workflow, and published-status roadmap.
|
|
107
|
+
- Replace temporary source-install notes with the published `pluribus-context@0.3.0` audit path.
|
|
16
108
|
|
|
17
109
|
## 0.2.0 — Package-ready CLI release
|
|
18
110
|
|
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Pluribus
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/pluribus-context)
|
|
4
|
+
[](https://www.npmjs.com/package/pluribus-context)
|
|
5
|
+
[](https://github.com/caioribeiroclw-pixel/pluribus/actions/workflows/ci.yml)
|
|
4
6
|
[](https://x.com/RibeiroCaioCLW)
|
|
5
7
|
[](LICENSE)
|
|
6
8
|
|
|
@@ -33,20 +35,21 @@ You end up maintaining **5+ files** that say roughly the same thing — your pro
|
|
|
33
35
|
|
|
34
36
|
**Pluribus** is a universal format for intentional context in AI-assisted development.
|
|
35
37
|
|
|
36
|
-
Write your project context **once**, in
|
|
38
|
+
Write your project context **once**, in `pluribus.md`. Keep it as a single file for small projects, or compose shared team/org Markdown with `# @import` when the context needs to be reused.
|
|
37
39
|
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
├──
|
|
41
|
-
|
|
42
|
-
├──
|
|
43
|
-
└──
|
|
40
|
+
```text
|
|
41
|
+
your-project/
|
|
42
|
+
├── pluribus.md # source of truth
|
|
43
|
+
└── shared/
|
|
44
|
+
├── team-context.md # optional imported conventions
|
|
45
|
+
└── security-constraints.md # optional imported guardrails
|
|
44
46
|
```
|
|
45
47
|
|
|
46
|
-
Then:
|
|
48
|
+
Then preview or sync:
|
|
47
49
|
|
|
48
50
|
```bash
|
|
49
|
-
npx pluribus-context sync
|
|
51
|
+
npx --yes pluribus-context@latest sync --dry-run
|
|
52
|
+
npx --yes pluribus-context@latest sync
|
|
50
53
|
```
|
|
51
54
|
|
|
52
55
|
And it generates the right files for each tool:
|
|
@@ -70,14 +73,45 @@ And it generates the right files for each tool:
|
|
|
70
73
|
|
|
71
74
|
## Getting Started
|
|
72
75
|
|
|
73
|
-
|
|
76
|
+
> **Version note:** `pluribus audit` is published in `pluribus-context@0.3.0`. The CI-oriented audit flags and read-only init preview documented in the GitHub release tag `v0.3.3` (`--json`, `--output`, `--github-annotations`, `--ci`, `init --dry-run`) are prepared for the next npm patch release `0.3.3`; until that patch is published, use `@0.3.0` for the basic read-only audit, or use the explicit `github:...#v0.3.3` source command shown below when testing the tagged read-only preview flags.
|
|
77
|
+
|
|
78
|
+
### Pick the safe first command
|
|
79
|
+
|
|
80
|
+
If your repo already has AI context files such as `CLAUDE.md`, `.cursorrules`, Copilot instructions, or `AGENTS.md`, start with the read-only audit:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npx --yes pluribus-context@latest audit
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
It does not write files. Without `pluribus.md`, it lists existing AI context surfaces so you can decide what to migrate. With `pluribus.md`, it reports generated files that are missing or drifted.
|
|
87
|
+
|
|
88
|
+
If you are starting from scratch, preview the source-of-truth scaffold first, then create it when it looks right:
|
|
74
89
|
|
|
75
90
|
```bash
|
|
76
|
-
#
|
|
77
|
-
npx pluribus
|
|
91
|
+
# Tagged v0.3.3 path until pluribus-context@0.3.3 is published to npm:
|
|
92
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus init --dry-run
|
|
93
|
+
|
|
94
|
+
# Published npm path; writes pluribus.md:
|
|
95
|
+
npx --yes pluribus-context@latest init
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### What Pluribus writes
|
|
99
|
+
|
|
100
|
+
Pluribus is intentionally narrow about filesystem changes:
|
|
101
|
+
|
|
102
|
+
- `audit`, `validate`, and `sync --dry-run` are read-only.
|
|
103
|
+
- `init` writes `pluribus.md` only. If that file already exists, it refuses to overwrite it.
|
|
104
|
+
- `sync` writes only the configured/generated AI context files such as `CLAUDE.md`, `.cursorrules`, `.github/copilot-instructions.md`, `AGENTS.md`, Windsurf/Continue rules, and `.rules`.
|
|
105
|
+
- Generated files include a `Generated by Pluribus ... do not edit manually` header so drift is easy to spot in review.
|
|
106
|
+
- Remote imports only touch `pluribus.lock.json` and `.pluribus/cache/remote/` when you explicitly pass `--update-imports`.
|
|
107
|
+
|
|
108
|
+
When in doubt, run `npx --yes pluribus-context@latest audit` or `npx --yes pluribus-context@latest sync --dry-run` first.
|
|
78
109
|
|
|
79
|
-
|
|
80
|
-
|
|
110
|
+
### Install
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Install globally if you prefer a persistent `pluribus` command
|
|
114
|
+
npm install -g pluribus-context@latest
|
|
81
115
|
pluribus --help
|
|
82
116
|
|
|
83
117
|
# Or clone and link locally
|
|
@@ -92,36 +126,42 @@ Want to see exactly what gets generated before adding it to a real project?
|
|
|
92
126
|
|
|
93
127
|
```bash
|
|
94
128
|
mkdir pluribus-demo && cd pluribus-demo
|
|
95
|
-
|
|
96
|
-
npx pluribus-
|
|
97
|
-
|
|
129
|
+
# Tagged v0.3.3 path until pluribus-context@0.3.3 is published to npm:
|
|
130
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus init --dry-run --name "Ana" --description "A Node.js service" --tools claude,cursor,copilot
|
|
131
|
+
|
|
132
|
+
# Published npm path; writes pluribus.md:
|
|
133
|
+
npx --yes pluribus-context@latest init --name "Ana" --description "A Node.js service" --tools claude,cursor,copilot
|
|
134
|
+
npx --yes pluribus-context@latest validate
|
|
135
|
+
npx --yes pluribus-context@latest sync --dry-run
|
|
98
136
|
```
|
|
99
137
|
|
|
100
|
-
If the preview looks right, run `npx pluribus-context sync` to write the tool-specific files.
|
|
138
|
+
If the preview looks right, run `npx --yes pluribus-context@latest sync` to write the tool-specific files.
|
|
101
139
|
|
|
102
|
-
For a fuller walkthrough, see the [Quickstart](docs/quickstart.md). If your repo already has `CLAUDE.md`, `.cursorrules`, Copilot instructions, or `AGENTS.md`, run a [Context Drift Audit](docs/context-drift-audit.md) first, then follow [Migrate Existing AI Context Files](docs/migrate-existing-context.md). Before committing shared or generated AI instructions, use the [Context File Review Checklist](docs/context-file-review.md). If you're deciding between Pluribus and a one-way rules converter, see [When to use Pluribus](docs/when-to-use-pluribus.md).
|
|
140
|
+
For a fuller walkthrough, see the [Quickstart](docs/quickstart.md). To enforce generated context files in pull requests, use the [CI audit example](docs/ci-audit-example.md); to catch drift before commits leave your machine, use the [Pre-commit Audit Hook](docs/pre-commit-audit.md). If your repo already has `CLAUDE.md`, `.cursorrules`, Copilot instructions, or `AGENTS.md`, run a [Context Drift Audit](docs/context-drift-audit.md) first, try the intentionally drifted [audit example](examples/context-drift-audit/), then follow [Migrate Existing AI Context Files](docs/migrate-existing-context.md). Before committing shared or generated AI instructions, use the [Context File Review Checklist](docs/context-file-review.md). If you're deciding between Pluribus and a one-way rules converter, see [When to use Pluribus](docs/when-to-use-pluribus.md). If you are debugging "context drift" after compaction or long sessions, start with the [Context Drift Taxonomy](docs/context-drift-taxonomy.md) to separate file drift from runtime precedence drift.
|
|
103
141
|
|
|
104
142
|
### Usage
|
|
105
143
|
|
|
106
|
-
> **Version note:** `pluribus audit` requires Pluribus 0.3.0 or newer. If npm still shows `pluribus-context@0.2.0`, use the audit guide manually or run the source install until the npm publish is complete:
|
|
107
|
-
>
|
|
108
|
-
> ```bash
|
|
109
|
-
> npx --package github:caioribeiroclw-pixel/pluribus#main pluribus audit
|
|
110
|
-
> ```
|
|
111
|
-
|
|
112
144
|
**1. Initialize your context file**
|
|
113
145
|
|
|
114
146
|
```bash
|
|
115
147
|
cd your-project/
|
|
116
|
-
pluribus
|
|
148
|
+
# Tagged v0.3.3 path until pluribus-context@0.3.3 is published to npm:
|
|
149
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus init --dry-run
|
|
150
|
+
|
|
151
|
+
# Published npm path; writes pluribus.md:
|
|
152
|
+
npx --yes pluribus-context@latest init
|
|
117
153
|
```
|
|
118
154
|
|
|
119
|
-
|
|
155
|
+
The dry-run prints the scaffold without writing files. The second command creates `pluribus.md` with all required sections scaffolded. Fill in your project context.
|
|
120
156
|
|
|
121
|
-
You can also use flags for non-interactive init:
|
|
157
|
+
You can also use flags for non-interactive init, including the same dry-run preview:
|
|
122
158
|
|
|
123
159
|
```bash
|
|
124
|
-
|
|
160
|
+
# Tagged v0.3.3 path until pluribus-context@0.3.3 is published to npm:
|
|
161
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus init --dry-run --name "Ana" --description "A background job runner" --tools claude,cursor,openclaw
|
|
162
|
+
|
|
163
|
+
# Published npm path; writes pluribus.md:
|
|
164
|
+
npx --yes pluribus-context@latest init --name "Ana" --description "A background job runner" --tools claude,cursor,openclaw
|
|
125
165
|
```
|
|
126
166
|
|
|
127
167
|
**2. Edit `pluribus.md`**
|
|
@@ -191,6 +231,36 @@ This is read-only. It compares existing generated files with what `pluribus.md`
|
|
|
191
231
|
pluribus audit --strict
|
|
192
232
|
```
|
|
193
233
|
|
|
234
|
+
In GitHub Actions, add annotations so drift appears inline in the check UI:
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
# Tagged v0.3.3 path until pluribus-context@0.3.3 is published to npm:
|
|
238
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --strict --github-annotations
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
For GitHub Actions, `--ci` is the shorter equivalent of `--strict --github-annotations`:
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
# Tagged v0.3.3 path until pluribus-context@0.3.3 is published to npm:
|
|
245
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --ci
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
For CI scripts, dashboards, or migration tooling, use machine-readable output:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# Tagged v0.3.3 path until pluribus-context@0.3.3 is published to npm:
|
|
252
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --strict --json
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
To save the JSON as a CI artifact while keeping stdout quiet, add `--output`:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
# Tagged v0.3.3 path until pluribus-context@0.3.3 is published to npm:
|
|
259
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --strict --json --output pluribus-audit.json
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
The JSON shape is documented in [`schemas/audit-result.schema.json`](schemas/audit-result.schema.json) so CI wrappers and dashboards can validate integrations without scraping human output. For copy-paste enforcement, see the [CI audit example](docs/ci-audit-example.md) and the [Pre-commit Audit Hook](docs/pre-commit-audit.md).
|
|
263
|
+
|
|
194
264
|
If your project does not have `pluribus.md` yet, `pluribus audit` scans for known AI context files (`CLAUDE.md`, `.cursorrules`, Copilot instructions, `AGENTS.md`, Windsurf, Continue, Zed) so you know what to migrate.
|
|
195
265
|
|
|
196
266
|
**6. Sync to all your tools**
|
|
@@ -301,6 +371,7 @@ Follow along: [@RibeiroCaioCLW](https://x.com/RibeiroCaioCLW)
|
|
|
301
371
|
If you've felt this pain, tell me about your setup. What tools do you use? How do you manage context today? What's broken?
|
|
302
372
|
|
|
303
373
|
- [Quickstart feedback](https://github.com/caioribeiroclw-pixel/pluribus/issues/new?template=quickstart-feedback.yml) — if install, validate, or dry-run felt confusing
|
|
374
|
+
- [Audit feedback](https://github.com/caioribeiroclw-pixel/pluribus/issues/new?template=audit-feedback.yml) — if read-only `pluribus audit` missed drift, was noisy, or left the next step unclear
|
|
304
375
|
- [Bug report](https://github.com/caioribeiroclw-pixel/pluribus/issues/new?template=bug-report.yml) — if a command failed or generated the wrong output
|
|
305
376
|
- [Tool integration request](https://github.com/caioribeiroclw-pixel/pluribus/issues/new?template=integration-request.yml) — if another AI tool should be supported
|
|
306
377
|
|
|
@@ -327,7 +398,8 @@ This project is just getting started. The best way to help right now:
|
|
|
327
398
|
1. Try the 60-second smoke test above in a throwaway directory
|
|
328
399
|
2. ⭐ Star the repo if the problem resonates
|
|
329
400
|
3. 🗣️ [Open a quickstart feedback issue](https://github.com/caioribeiroclw-pixel/pluribus/issues/new?template=quickstart-feedback.yml) if anything felt confusing
|
|
330
|
-
4.
|
|
401
|
+
4. 🔎 [Open an audit feedback issue](https://github.com/caioribeiroclw-pixel/pluribus/issues/new?template=audit-feedback.yml) if the read-only audit missed drift or felt noisy
|
|
402
|
+
5. 📣 Share with someone who maintains 3+ AI context files
|
|
331
403
|
|
|
332
404
|
Looking for first contributions? Check out the [open issues](https://github.com/caioribeiroclw-pixel/pluribus/issues). The next good contributions are CI/CD workflow examples, real-world adapter feedback, and install/quickstart friction reports.
|
|
333
405
|
|
package/bin/pluribus.js
CHANGED
|
@@ -11,8 +11,11 @@ import { runValidate } from '../src/commands/validate.js'
|
|
|
11
11
|
import { runWatch } from '../src/commands/watch.js'
|
|
12
12
|
import { runAudit } from '../src/commands/audit.js'
|
|
13
13
|
import { parseArgs } from '../src/utils/args.js'
|
|
14
|
+
import { SUPPORTED_TOOLS } from '../src/skills/built-in.js'
|
|
14
15
|
import { VERSION } from '../src/utils/version.js'
|
|
15
16
|
|
|
17
|
+
const supportedToolsList = SUPPORTED_TOOLS.join(',')
|
|
18
|
+
|
|
16
19
|
const HELP = `
|
|
17
20
|
Pluribus v${VERSION} — Write your AI context once. Sync it to every tool.
|
|
18
21
|
|
|
@@ -30,7 +33,8 @@ COMMANDS
|
|
|
30
33
|
OPTIONS (init)
|
|
31
34
|
--name Project/author name
|
|
32
35
|
--description One-line project description
|
|
33
|
-
--tools Comma-separated list of tools to enable (
|
|
36
|
+
--tools Comma-separated list of tools to enable (${supportedToolsList})
|
|
37
|
+
--dry-run Preview the scaffold without writing pluribus.md
|
|
34
38
|
|
|
35
39
|
OPTIONS (sync)
|
|
36
40
|
--dry-run Preview output without writing files
|
|
@@ -47,6 +51,10 @@ OPTIONS (audit)
|
|
|
47
51
|
--tools Override which tools to audit (comma-separated)
|
|
48
52
|
--update-imports Refresh remote github:/https:// imports before auditing
|
|
49
53
|
--strict Exit non-zero when generated files are missing or drifted
|
|
54
|
+
--ci Shortcut for --strict --github-annotations
|
|
55
|
+
--json Print machine-readable audit results
|
|
56
|
+
--output Write --json results to a file instead of stdout
|
|
57
|
+
--github-annotations Print GitHub Actions annotations for drift/missing outputs
|
|
50
58
|
|
|
51
59
|
OPTIONS (watch)
|
|
52
60
|
--source Path to pluribus.md (default: ./pluribus.md)
|
|
@@ -57,6 +65,7 @@ OPTIONS (watch)
|
|
|
57
65
|
|
|
58
66
|
EXAMPLES
|
|
59
67
|
pluribus init
|
|
68
|
+
pluribus init --dry-run
|
|
60
69
|
pluribus init --name "Ana" --description "A task manager" --tools claude,cursor
|
|
61
70
|
pluribus sync
|
|
62
71
|
pluribus sync --dry-run
|
|
@@ -65,12 +74,47 @@ EXAMPLES
|
|
|
65
74
|
pluribus validate
|
|
66
75
|
pluribus audit
|
|
67
76
|
pluribus audit --strict
|
|
77
|
+
pluribus audit --ci
|
|
78
|
+
pluribus audit --json
|
|
79
|
+
pluribus audit --strict --json --output pluribus-audit.json
|
|
80
|
+
pluribus audit --strict --github-annotations
|
|
68
81
|
pluribus watch --tools claude,cursor
|
|
69
82
|
|
|
70
83
|
DOCS
|
|
71
84
|
https://github.com/caioribeiroclw-pixel/pluribus
|
|
72
85
|
`
|
|
73
86
|
|
|
87
|
+
const COMMAND_FLAGS = {
|
|
88
|
+
init: new Set(['name', 'description', 'tools', 'dry-run']),
|
|
89
|
+
sync: new Set(['dry-run', 'tools', 'source', 'update-imports']),
|
|
90
|
+
validate: new Set(['source', 'update-imports']),
|
|
91
|
+
audit: new Set(['source', 'tools', 'update-imports', 'strict', 'ci', 'json', 'output', 'github-annotations']),
|
|
92
|
+
watch: new Set(['source', 'tools', 'update-imports', 'dry-run', 'once', 'debounce']),
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function getFlagNames(argv) {
|
|
96
|
+
return argv
|
|
97
|
+
.filter((arg) => arg.startsWith('--') && arg.length > 2)
|
|
98
|
+
.map((arg) => {
|
|
99
|
+
const withoutPrefix = arg.slice(2)
|
|
100
|
+
const eqIdx = withoutPrefix.indexOf('=')
|
|
101
|
+
return eqIdx === -1 ? withoutPrefix : withoutPrefix.slice(0, eqIdx)
|
|
102
|
+
})
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function validateFlags(command, argv) {
|
|
106
|
+
const allowed = COMMAND_FLAGS[command]
|
|
107
|
+
if (!allowed) return
|
|
108
|
+
|
|
109
|
+
const unknown = [...new Set(getFlagNames(argv).filter((flag) => !allowed.has(flag)))]
|
|
110
|
+
if (unknown.length === 0) return
|
|
111
|
+
|
|
112
|
+
console.error(`❌ Unknown option${unknown.length === 1 ? '' : 's'} for \`${command}\`: ${unknown.map((flag) => `--${flag}`).join(', ')}`)
|
|
113
|
+
console.error(` Supported options: ${[...allowed].map((flag) => `--${flag}`).join(', ')}`)
|
|
114
|
+
console.error(' Run `pluribus help` for usage.')
|
|
115
|
+
process.exit(1)
|
|
116
|
+
}
|
|
117
|
+
|
|
74
118
|
async function main() {
|
|
75
119
|
const args = process.argv.slice(2)
|
|
76
120
|
|
|
@@ -85,7 +129,9 @@ async function main() {
|
|
|
85
129
|
}
|
|
86
130
|
|
|
87
131
|
const command = args[0]
|
|
88
|
-
const
|
|
132
|
+
const commandArgs = args.slice(1)
|
|
133
|
+
validateFlags(command, commandArgs)
|
|
134
|
+
const parsedArgs = parseArgs(commandArgs)
|
|
89
135
|
|
|
90
136
|
try {
|
|
91
137
|
switch (command) {
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# CI audit example
|
|
2
|
+
|
|
3
|
+
Use this when `pluribus.md` is the source of truth and generated context files should stay current in pull requests.
|
|
4
|
+
|
|
5
|
+
`pluribus audit --strict` is read-only: it fails when a generated file is missing or drifted, but it does not rewrite anything in CI. The basic audit command is published in `pluribus-context@0.3.0`; the `--github-annotations`, `--json`, `--output`, and `--ci` flags below are available in the GitHub release tag `v0.3.3` while npm latest waits for the `0.3.3` publish. Until that patch is published, pin CI to `pluribus-context@0.3.0` for the strict text check, or test the new flags from the immutable GitHub tag with `--package github:caioribeiroclw-pixel/pluribus#v0.3.3`.
|
|
6
|
+
|
|
7
|
+
Use `--ci` in GitHub Actions when you want the shortest path: it is equivalent to `--strict --github-annotations`, so drift appears inline in the check UI and the job fails on drift. Use the explicit flags when composing custom outputs; pair annotations with `--json --output pluribus-audit.json` when you want a machine-readable artifact for dashboards or review comments. The output contract is documented in [`schemas/audit-result.schema.json`](../schemas/audit-result.schema.json).
|
|
8
|
+
|
|
9
|
+
## GitHub Actions
|
|
10
|
+
|
|
11
|
+
Create `.github/workflows/pluribus-audit.yml` in the repository that uses Pluribus:
|
|
12
|
+
|
|
13
|
+
```yaml
|
|
14
|
+
name: Pluribus context audit
|
|
15
|
+
|
|
16
|
+
on:
|
|
17
|
+
pull_request:
|
|
18
|
+
push:
|
|
19
|
+
branches:
|
|
20
|
+
- main
|
|
21
|
+
|
|
22
|
+
permissions:
|
|
23
|
+
contents: read
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
audit:
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
steps:
|
|
29
|
+
- name: Checkout
|
|
30
|
+
uses: actions/checkout@v6
|
|
31
|
+
|
|
32
|
+
- name: Setup Node.js
|
|
33
|
+
uses: actions/setup-node@v6
|
|
34
|
+
with:
|
|
35
|
+
node-version: 22.x
|
|
36
|
+
|
|
37
|
+
- name: Audit AI context drift
|
|
38
|
+
# Tagged v0.3.3 path until pluribus-context@0.3.3 is published to npm.
|
|
39
|
+
run: npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --ci
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
If you want JSON output as an artifact, use this variant:
|
|
43
|
+
|
|
44
|
+
```yaml
|
|
45
|
+
- name: Audit AI context drift as JSON
|
|
46
|
+
# Tagged v0.3.3 path until pluribus-context@0.3.3 is published to npm.
|
|
47
|
+
run: npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --ci --json --output pluribus-audit.json
|
|
48
|
+
|
|
49
|
+
- name: Upload Pluribus audit result
|
|
50
|
+
if: always()
|
|
51
|
+
uses: actions/upload-artifact@v5
|
|
52
|
+
with:
|
|
53
|
+
name: pluribus-audit
|
|
54
|
+
path: pluribus-audit.json
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Local repair loop
|
|
58
|
+
|
|
59
|
+
When CI fails:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npx --yes pluribus-context@latest audit
|
|
63
|
+
npx --yes pluribus-context@latest sync --dry-run
|
|
64
|
+
npx --yes pluribus-context@latest sync
|
|
65
|
+
npx --yes pluribus-context@latest audit --strict
|
|
66
|
+
# In GitHub Actions with the tagged 0.3.3 CI flags, use:
|
|
67
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --ci
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Commit `pluribus.md` and the generated files together, or document that your team regenerates generated files during setup. Do not commit `.pluribus/cache/remote/`; commit `pluribus.lock.json` when you use remote imports.
|
|
71
|
+
|
|
72
|
+
## Remote imports in CI
|
|
73
|
+
|
|
74
|
+
Normal `audit`, `sync`, and `validate` runs do not fetch remote imports. They use the committed `pluribus.lock.json` plus the local cache. If CI fails because a remote import is unlocked or cache-missing, refresh it locally with:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npx --yes pluribus-context@latest sync --update-imports
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Then review and commit the updated `pluribus.lock.json` with the generated outputs. Use `GH_TOKEN`/`GITHUB_TOKEN` only when refreshing private GitHub imports; Pluribus never writes tokens to the lockfile or cache.
|
|
@@ -4,11 +4,34 @@ Use this before adopting Pluribus when you are not sure whether your AI context
|
|
|
4
4
|
|
|
5
5
|
The goal is not to make every tool identical. The goal is to separate shared project facts from tool-specific behavior so the shared parts can live in `pluribus.md` and be regenerated deliberately.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
If you are using "drift" to mean compaction, summarization, load-order, or long-session behavior, read the [Context Drift Taxonomy](context-drift-taxonomy.md) first. Pluribus audits file-level output drift; runtime precedence drift needs tool-specific diagnostics too.
|
|
8
|
+
|
|
9
|
+
Start with the read-only command when you want a quick signal:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx --yes pluribus-context@latest audit
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
If `pluribus.md` exists, this reports generated files that are current, missing, or drifted. If `pluribus.md` does not exist yet, it scans for known AI context files so you can decide what to migrate.
|
|
16
|
+
|
|
17
|
+
Want to see the workflow before touching a real repo? Use the intentionally drifted fixture in [`examples/context-drift-audit`](../examples/context-drift-audit/): it has a `CLAUDE.md` that says Node 20 while `pluribus.md` says Node 22, so `audit --strict` has a concrete mismatch to report.
|
|
18
|
+
|
|
19
|
+
## Version availability
|
|
20
|
+
|
|
21
|
+
The basic read-only `audit` command is published in `pluribus-context@0.3.0`.
|
|
22
|
+
|
|
23
|
+
The CI-oriented flags in this guide are available in the GitHub release tag `v0.3.3` while npm latest waits for the `0.3.3` publish:
|
|
24
|
+
|
|
25
|
+
- `--json`
|
|
26
|
+
- `--output <file>`
|
|
27
|
+
- `--github-annotations`
|
|
28
|
+
- `--ci`
|
|
29
|
+
|
|
30
|
+
Until `0.3.3` is published to npm, use `npx --yes pluribus-context@0.3.0 audit` for the stable published audit, or run the immutable GitHub tag when you specifically want to test the new CI flags:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --strict --json
|
|
34
|
+
```
|
|
12
35
|
|
|
13
36
|
## 1. Find AI context surfaces
|
|
14
37
|
|
|
@@ -73,7 +96,7 @@ Keep tool-specific behavior outside the shared layer when it truly belongs to on
|
|
|
73
96
|
Run the read-only audit first:
|
|
74
97
|
|
|
75
98
|
```bash
|
|
76
|
-
npx pluribus-context audit
|
|
99
|
+
npx --yes pluribus-context@latest audit
|
|
77
100
|
```
|
|
78
101
|
|
|
79
102
|
If `pluribus.md` exists, this compares generated tool files with the source and reports anything missing or drifted. If `pluribus.md` does not exist yet, it scans for known AI context files so you know what to migrate.
|
|
@@ -81,8 +104,8 @@ If `pluribus.md` exists, this compares generated tool files with the source and
|
|
|
81
104
|
Then run a dry-run before writing anything:
|
|
82
105
|
|
|
83
106
|
```bash
|
|
84
|
-
npx pluribus-context validate
|
|
85
|
-
npx pluribus-context sync --dry-run
|
|
107
|
+
npx --yes pluribus-context@latest validate
|
|
108
|
+
npx --yes pluribus-context@latest sync --dry-run
|
|
86
109
|
```
|
|
87
110
|
|
|
88
111
|
Read the previews and ask two questions:
|
|
@@ -97,9 +120,35 @@ If the answer to either question is no, edit `pluribus.md` or keep that behavior
|
|
|
97
120
|
After adoption, the simplest check is:
|
|
98
121
|
|
|
99
122
|
```bash
|
|
100
|
-
npx pluribus-context audit --strict
|
|
123
|
+
npx --yes pluribus-context@latest audit --strict
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
If you want GitHub Actions to show drift inline in the check UI, add `--github-annotations` from the GitHub tag install until `pluribus-context@0.3.3` is published to npm:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --strict --github-annotations
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
For GitHub Actions, `--ci` is the shorter equivalent of `--strict --github-annotations`:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --ci
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
If you want machine-readable results for CI, dashboards, or a migration script, add `--json`:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --strict --json
|
|
101
142
|
```
|
|
102
143
|
|
|
144
|
+
To save that JSON as an artifact without relying on shell redirection, add `--output`:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
npx --yes --package github:caioribeiroclw-pixel/pluribus#v0.3.3 pluribus audit --strict --json --output pluribus-audit.json
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
The JSON output includes `ok`, `source`, `results`, `summary`, and `nextStep`, so callers can fail on drift without parsing the human emoji output. The schema lives at [`schemas/audit-result.schema.json`](../schemas/audit-result.schema.json) for CI wrappers, dashboards, and migration tools that want a stable contract. `--output` writes the same JSON payload to disk and keeps stdout quiet. `--ci` is a shorthand for `--strict --github-annotations`. `--github-annotations` writes annotations to stderr, so it can be combined with `--json`/`--output` while preserving a clean artifact. See the [CI audit example](ci-audit-example.md) for a copy-paste GitHub Actions workflow and JSON artifact variant. If you want the same guard before commits leave a developer machine, use the [Pre-commit Audit Hook](pre-commit-audit.md).
|
|
151
|
+
|
|
103
152
|
That catches three common failure modes without writing files:
|
|
104
153
|
|
|
105
154
|
- someone edited a generated file directly;
|
|
@@ -110,15 +159,32 @@ Use `sync --dry-run` to inspect the fix, then `sync` to update generated files.
|
|
|
110
159
|
|
|
111
160
|
## What this does not check
|
|
112
161
|
|
|
113
|
-
`pluribus audit` is intentionally narrow: it checks whether the files generated from `pluribus.md` are current, missing, or drifted. It is not a general-purpose linter for whether your instructions still match the repository.
|
|
162
|
+
`pluribus audit` is intentionally narrow: it checks whether the files generated from `pluribus.md` are current, missing, or drifted. It is not a general-purpose linter for whether your instructions still match the repository, and it cannot prove how a specific AI tool prioritizes those instructions at runtime.
|
|
114
163
|
|
|
115
164
|
That distinction matters:
|
|
116
165
|
|
|
117
166
|
- use `pluribus audit` when you want to know whether `CLAUDE.md`, Cursor rules, Copilot instructions, `AGENTS.md`, Windsurf, Continue, or Zed outputs are still in sync with the same source of truth;
|
|
118
167
|
- use repo-specific checks, tests, or AI-context linters when you want to find stale commands, dead paths, outdated architecture notes, or conflicting nested instruction files;
|
|
119
|
-
- use
|
|
168
|
+
- use tool-specific diagnostics or hooks when the file is correct but the model drifts after compaction, summarization, or context-window reordering;
|
|
169
|
+
- use both if your risk is bigger than copy-paste drift: first keep generated files aligned, then validate that the shared instructions are still true and loaded with the right precedence.
|
|
170
|
+
|
|
171
|
+
Pluribus solves output drift across tools. It does not prove that the canonical context is correct or that every tool will give the generated file the same runtime priority. For a fuller split between output drift, source-of-truth drift, runtime loading drift, and behavioral drift, see the [Context Drift Taxonomy](context-drift-taxonomy.md).
|
|
172
|
+
|
|
173
|
+
## Verify runtime loading separately
|
|
174
|
+
|
|
175
|
+
After `pluribus sync`, do one tool-specific sanity check before trusting a new workflow:
|
|
176
|
+
|
|
177
|
+
1. Open a fresh session in the tool you care about.
|
|
178
|
+
2. Ask it to summarize the project rules or list the files it loaded.
|
|
179
|
+
3. If the tool supports hooks, diagnostics, or load traces, check those too.
|
|
180
|
+
|
|
181
|
+
Some teams add a short loading canary near the top of their generated context, for example: "Before acting, confirm that you read the project AI instructions." Keep this lightweight. A canary can prove the file was noticed, but it does not prove every instruction will keep priority after compaction, summarization, or a long session.
|
|
182
|
+
|
|
183
|
+
Use Pluribus to keep the files aligned. Use the tool's own diagnostics to confirm the runtime actually loaded and prioritized them.
|
|
184
|
+
|
|
185
|
+
## Feedback wanted
|
|
120
186
|
|
|
121
|
-
|
|
187
|
+
If the read-only audit misses drift, reports noise, or leaves the next step unclear, open an [audit feedback issue](https://github.com/caioribeiroclw-pixel/pluribus/issues/new?template=audit-feedback.yml). Summaries are enough; do not paste secrets, private source code, credentials, customer data, or internal instructions that should not be public.
|
|
122
188
|
|
|
123
189
|
## Decision rule
|
|
124
190
|
|