rulereceipt 0.1.77 → 0.1.78
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 +2 -2
- package/dist/checks/gitBranchPolicy.js +8 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ npx rulereceipt
|
|
|
17
17
|
Runs entirely on your machine. Plain `rulereceipt check` makes zero network
|
|
18
18
|
calls — [Trust, privacy and licensing](#trust-privacy-and-licensing) has the full
|
|
19
19
|
detail, including the three off-by-default opt-ins. Works with Claude Code today
|
|
20
|
-
(OpenAI Codex CLI
|
|
20
|
+
(OpenAI Codex CLI supported); reads rules from CLAUDE.md, AGENTS.md, Cursor
|
|
21
21
|
(`.cursor/rules`), GitHub Copilot, Windsurf, Gemini (`GEMINI.md`), Google's
|
|
22
22
|
`.agents/rules`, and Claude Code memory. [Accuracy](https://rulereceipt.dev/accuracy)
|
|
23
23
|
· [Known gaps](KNOWN-GAPS.md) · Source-available, not OSI — see [LICENSE](LICENSE).
|
|
@@ -77,7 +77,7 @@ Published and live on npm, actively developed.
|
|
|
77
77
|
current project directory and your global rules file.
|
|
78
78
|
2. Reads your most recent agent session transcript — Claude Code today
|
|
79
79
|
(including hosted/enterprise variants under a different directory), and
|
|
80
|
-
OpenAI Codex CLI (
|
|
80
|
+
OpenAI Codex CLI (supported); newest session across tools wins.
|
|
81
81
|
3. Routes each rule to the narrowest check that can actually answer it:
|
|
82
82
|
- **Structured checks** read what the session really did — an actual
|
|
83
83
|
git command's branch argument, actual file edits, actual file
|
|
@@ -158,7 +158,14 @@ export function runGitBranchPolicyChecks(classifications, events) {
|
|
|
158
158
|
allTargets.push({ branch: hit.branch, command, kind: hit.kind });
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
-
|
|
161
|
+
// "Did a git command actually run?" — tested on the real command segments, not
|
|
162
|
+
// JSON.stringify(input). Two bugs that caused: (1) a newline before `git`
|
|
163
|
+
// becomes the two chars `\n` once stringified, so `\bgit` lost its word
|
|
164
|
+
// boundary and a `git push` on the line after a heredoc was missed entirely
|
|
165
|
+
// (check AND guard reported "didn't apply"); (2) a mere mention in a quote or
|
|
166
|
+
// heredoc body counted as a git command. leadingCommand over heredoc-stripped
|
|
167
|
+
// segments answers the real question: a git invocation in an executable segment.
|
|
168
|
+
const anyGitCommand = commands.some((c) => segments(c).some((seg) => leadingCommand(seg) === "git"));
|
|
162
169
|
return classifications.map(({ rule, branchName, polarity, polarityInferred }) => {
|
|
163
170
|
// No git command ran, so a git rule never had a situation to govern.
|
|
164
171
|
// Calling that "followed" is how an empty session produced 2,770 green
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rulereceipt",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.78",
|
|
4
4
|
"description": "Checks whether your AI coding agent followed your rules, with evidence. Works with Claude Code (Codex in testing); reads CLAUDE.md, AGENTS.md, Cursor, Copilot and Windsurf rules.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|