@rmyndharis/aimhooman 0.2.0 → 0.3.1

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.
@@ -12,13 +12,16 @@ Its policy:
12
12
  `.copilot/*`, `.cursor/session*`, `.cursor/chats/*`, `.cursor/logs/*`,
13
13
  `.aider.*`, `.specstory/*`, `.continue/sessions/*`, `.playwright-mcp/*`,
14
14
  `.remember/*`, `.superpowers/*`, and `.agent/*`. The examples are not
15
- exhaustive; the packaged `rules/paths.json` is the detection source of truth.
16
- If one is staged, unstage it and keep it out of Git instead.
15
+ exhaustive; the packaged `rules/paths.json` is the detection source of truth
16
+ for these artifacts. If one is staged, unstage it and keep it out of Git
17
+ instead.
17
18
  - Never commit secrets: a real `.env` (not `.env.example`), private keys
18
19
  (`id_rsa` and files containing a private-key header), `.aws/credentials`,
19
20
  `.claude/.credentials.json`, service-account keys, or a provider API key
20
21
  (GitHub, GitLab, npm, Slack, Anthropic, OpenAI, Google, Stripe, Hugging Face,
21
- SendGrid). Public certificates are allowed.
22
+ SendGrid). Public certificates are allowed. aimhooman does not scan for
23
+ secrets — this rule is on you, and a dedicated scanner such as gitleaks is
24
+ the right backstop for it.
22
25
  - Never add AI attribution to commit messages: no `Co-authored-by` trailer naming
23
26
  an AI (Claude, Copilot, Codex), no "Generated with/by <AI>" lines, no AI-service
24
27
  noreply emails. A commit message reads as if a human wrote it.
@@ -49,7 +52,7 @@ npm test
49
52
  npm run test:coverage
50
53
  ```
51
54
 
52
- aimhooman also enforces this at commit time, so a blocked commit means a real
53
- violation to fix, not a check to bypass. The rule is simple: AI works, hoomans
54
- ship.
55
+ aimhooman also enforces the artifact and attribution rules at commit time, so
56
+ a blocked commit means a real violation to fix, not a check to bypass. The rule
57
+ is simple: AI works, hoomans ship.
55
58
  <!-- aimhooman:ruleset-end -->
@@ -3,13 +3,13 @@
3
3
  "owner": {
4
4
  "name": "aimhooman"
5
5
  },
6
- "description": "AI works. Hoomans ship. Keep AI session files, secrets, and attribution out of your commits.",
6
+ "description": "AI works. Hoomans ship. Keep AI session files and attribution out of your commits.",
7
7
  "plugins": [
8
8
  {
9
9
  "name": "aimhooman",
10
10
  "source": "./",
11
- "description": "Keeps AI session files, secrets, and unwanted attribution out at the agent and Git boundary.",
12
- "version": "0.2.0",
11
+ "description": "Keeps AI session files and unwanted attribution out at the agent and Git boundary.",
12
+ "version": "0.3.1",
13
13
  "license": "MIT",
14
14
  "keywords": [
15
15
  "git",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "aimhooman",
3
- "version": "0.2.0",
4
- "description": "AI works. Hoomans ship. Keeps AI session files, secrets, and unwanted attribution out at the agent and Git boundary.",
3
+ "version": "0.3.1",
4
+ "description": "AI works. Hoomans ship. Keeps AI session files and unwanted attribution out at the agent and Git boundary.",
5
5
  "author": {
6
6
  "name": "aimhooman"
7
7
  },
@@ -12,13 +12,16 @@ Its policy:
12
12
  `.copilot/*`, `.cursor/session*`, `.cursor/chats/*`, `.cursor/logs/*`,
13
13
  `.aider.*`, `.specstory/*`, `.continue/sessions/*`, `.playwright-mcp/*`,
14
14
  `.remember/*`, `.superpowers/*`, and `.agent/*`. The examples are not
15
- exhaustive; the packaged `rules/paths.json` is the detection source of truth.
16
- If one is staged, unstage it and keep it out of Git instead.
15
+ exhaustive; the packaged `rules/paths.json` is the detection source of truth
16
+ for these artifacts. If one is staged, unstage it and keep it out of Git
17
+ instead.
17
18
  - Never commit secrets: a real `.env` (not `.env.example`), private keys
18
19
  (`id_rsa` and files containing a private-key header), `.aws/credentials`,
19
20
  `.claude/.credentials.json`, service-account keys, or a provider API key
20
21
  (GitHub, GitLab, npm, Slack, Anthropic, OpenAI, Google, Stripe, Hugging Face,
21
- SendGrid). Public certificates are allowed.
22
+ SendGrid). Public certificates are allowed. aimhooman does not scan for
23
+ secrets — this rule is on you, and a dedicated scanner such as gitleaks is
24
+ the right backstop for it.
22
25
  - Never add AI attribution to commit messages: no `Co-authored-by` trailer naming
23
26
  an AI (Claude, Copilot, Codex), no "Generated with/by <AI>" lines, no AI-service
24
27
  noreply emails. A commit message reads as if a human wrote it.
@@ -49,7 +52,7 @@ npm test
49
52
  npm run test:coverage
50
53
  ```
51
54
 
52
- aimhooman also enforces this at commit time, so a blocked commit means a real
53
- violation to fix, not a check to bypass. The rule is simple: AI works, hoomans
54
- ship.
55
+ aimhooman also enforces the artifact and attribution rules at commit time, so
56
+ a blocked commit means a real violation to fix, not a check to bypass. The rule
57
+ is simple: AI works, hoomans ship.
55
58
  <!-- aimhooman:ruleset-end -->
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "aimhooman",
3
- "version": "0.2.0",
4
- "description": "AI works. Hoomans ship. Keeps AI session files, secrets, and unwanted attribution out at the agent and Git boundary.",
3
+ "version": "0.3.1",
4
+ "description": "AI works. Hoomans ship. Keeps AI session files and unwanted attribution out at the agent and Git boundary.",
5
5
  "author": {
6
6
  "name": "aimhooman maintainers",
7
7
  "email": "yudhi@rmyndharis.com",
@@ -19,7 +19,7 @@
19
19
  "interface": {
20
20
  "displayName": "aimhooman",
21
21
  "shortDescription": "Keep AI tooling residue out of Git",
22
- "longDescription": "Detects AI session files, secrets, and unwanted attribution before they enter Git history.",
22
+ "longDescription": "Detects AI session files and unwanted attribution before they enter Git history.",
23
23
  "developerName": "aimhooman maintainers",
24
24
  "category": "Developer Tools",
25
25
  "capabilities": [
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: aimhooman - keep AI session files, secrets, and unwanted AI attribution out of Git.
2
+ description: aimhooman - keep AI session files and unwanted AI attribution out of Git.
3
3
  globs:
4
4
  alwaysApply: true
5
5
  ---
@@ -18,13 +18,16 @@ Its policy:
18
18
  `.copilot/*`, `.cursor/session*`, `.cursor/chats/*`, `.cursor/logs/*`,
19
19
  `.aider.*`, `.specstory/*`, `.continue/sessions/*`, `.playwright-mcp/*`,
20
20
  `.remember/*`, `.superpowers/*`, and `.agent/*`. The examples are not
21
- exhaustive; the packaged `rules/paths.json` is the detection source of truth.
22
- If one is staged, unstage it and keep it out of Git instead.
21
+ exhaustive; the packaged `rules/paths.json` is the detection source of truth
22
+ for these artifacts. If one is staged, unstage it and keep it out of Git
23
+ instead.
23
24
  - Never commit secrets: a real `.env` (not `.env.example`), private keys
24
25
  (`id_rsa` and files containing a private-key header), `.aws/credentials`,
25
26
  `.claude/.credentials.json`, service-account keys, or a provider API key
26
27
  (GitHub, GitLab, npm, Slack, Anthropic, OpenAI, Google, Stripe, Hugging Face,
27
- SendGrid). Public certificates are allowed.
28
+ SendGrid). Public certificates are allowed. aimhooman does not scan for
29
+ secrets — this rule is on you, and a dedicated scanner such as gitleaks is
30
+ the right backstop for it.
28
31
  - Never add AI attribution to commit messages: no `Co-authored-by` trailer naming
29
32
  an AI (Claude, Copilot, Codex), no "Generated with/by <AI>" lines, no AI-service
30
33
  noreply emails. A commit message reads as if a human wrote it.
@@ -55,7 +58,7 @@ npm test
55
58
  npm run test:coverage
56
59
  ```
57
60
 
58
- aimhooman also enforces this at commit time, so a blocked commit means a real
59
- violation to fix, not a check to bypass. The rule is simple: AI works, hoomans
60
- ship.
61
+ aimhooman also enforces the artifact and attribution rules at commit time, so
62
+ a blocked commit means a real violation to fix, not a check to bypass. The rule
63
+ is simple: AI works, hoomans ship.
61
64
  <!-- aimhooman:ruleset-end -->
@@ -12,13 +12,16 @@ Its policy:
12
12
  `.copilot/*`, `.cursor/session*`, `.cursor/chats/*`, `.cursor/logs/*`,
13
13
  `.aider.*`, `.specstory/*`, `.continue/sessions/*`, `.playwright-mcp/*`,
14
14
  `.remember/*`, `.superpowers/*`, and `.agent/*`. The examples are not
15
- exhaustive; the packaged `rules/paths.json` is the detection source of truth.
16
- If one is staged, unstage it and keep it out of Git instead.
15
+ exhaustive; the packaged `rules/paths.json` is the detection source of truth
16
+ for these artifacts. If one is staged, unstage it and keep it out of Git
17
+ instead.
17
18
  - Never commit secrets: a real `.env` (not `.env.example`), private keys
18
19
  (`id_rsa` and files containing a private-key header), `.aws/credentials`,
19
20
  `.claude/.credentials.json`, service-account keys, or a provider API key
20
21
  (GitHub, GitLab, npm, Slack, Anthropic, OpenAI, Google, Stripe, Hugging Face,
21
- SendGrid). Public certificates are allowed.
22
+ SendGrid). Public certificates are allowed. aimhooman does not scan for
23
+ secrets — this rule is on you, and a dedicated scanner such as gitleaks is
24
+ the right backstop for it.
22
25
  - Never add AI attribution to commit messages: no `Co-authored-by` trailer naming
23
26
  an AI (Claude, Copilot, Codex), no "Generated with/by <AI>" lines, no AI-service
24
27
  noreply emails. A commit message reads as if a human wrote it.
@@ -49,7 +52,7 @@ npm test
49
52
  npm run test:coverage
50
53
  ```
51
54
 
52
- aimhooman also enforces this at commit time, so a blocked commit means a real
53
- violation to fix, not a check to bypass. The rule is simple: AI works, hoomans
54
- ship.
55
+ aimhooman also enforces the artifact and attribution rules at commit time, so
56
+ a blocked commit means a real violation to fix, not a check to bypass. The rule
57
+ is simple: AI works, hoomans ship.
55
58
  <!-- aimhooman:ruleset-end -->
@@ -12,13 +12,16 @@ Its policy:
12
12
  `.copilot/*`, `.cursor/session*`, `.cursor/chats/*`, `.cursor/logs/*`,
13
13
  `.aider.*`, `.specstory/*`, `.continue/sessions/*`, `.playwright-mcp/*`,
14
14
  `.remember/*`, `.superpowers/*`, and `.agent/*`. The examples are not
15
- exhaustive; the packaged `rules/paths.json` is the detection source of truth.
16
- If one is staged, unstage it and keep it out of Git instead.
15
+ exhaustive; the packaged `rules/paths.json` is the detection source of truth
16
+ for these artifacts. If one is staged, unstage it and keep it out of Git
17
+ instead.
17
18
  - Never commit secrets: a real `.env` (not `.env.example`), private keys
18
19
  (`id_rsa` and files containing a private-key header), `.aws/credentials`,
19
20
  `.claude/.credentials.json`, service-account keys, or a provider API key
20
21
  (GitHub, GitLab, npm, Slack, Anthropic, OpenAI, Google, Stripe, Hugging Face,
21
- SendGrid). Public certificates are allowed.
22
+ SendGrid). Public certificates are allowed. aimhooman does not scan for
23
+ secrets — this rule is on you, and a dedicated scanner such as gitleaks is
24
+ the right backstop for it.
22
25
  - Never add AI attribution to commit messages: no `Co-authored-by` trailer naming
23
26
  an AI (Claude, Copilot, Codex), no "Generated with/by <AI>" lines, no AI-service
24
27
  noreply emails. A commit message reads as if a human wrote it.
@@ -49,7 +52,7 @@ npm test
49
52
  npm run test:coverage
50
53
  ```
51
54
 
52
- aimhooman also enforces this at commit time, so a blocked commit means a real
53
- violation to fix, not a check to bypass. The rule is simple: AI works, hoomans
54
- ship.
55
+ aimhooman also enforces the artifact and attribution rules at commit time, so
56
+ a blocked commit means a real violation to fix, not a check to bypass. The rule
57
+ is simple: AI works, hoomans ship.
55
58
  <!-- aimhooman:ruleset-end -->
@@ -16,13 +16,16 @@ Its policy:
16
16
  `.copilot/*`, `.cursor/session*`, `.cursor/chats/*`, `.cursor/logs/*`,
17
17
  `.aider.*`, `.specstory/*`, `.continue/sessions/*`, `.playwright-mcp/*`,
18
18
  `.remember/*`, `.superpowers/*`, and `.agent/*`. The examples are not
19
- exhaustive; the packaged `rules/paths.json` is the detection source of truth.
20
- If one is staged, unstage it and keep it out of Git instead.
19
+ exhaustive; the packaged `rules/paths.json` is the detection source of truth
20
+ for these artifacts. If one is staged, unstage it and keep it out of Git
21
+ instead.
21
22
  - Never commit secrets: a real `.env` (not `.env.example`), private keys
22
23
  (`id_rsa` and files containing a private-key header), `.aws/credentials`,
23
24
  `.claude/.credentials.json`, service-account keys, or a provider API key
24
25
  (GitHub, GitLab, npm, Slack, Anthropic, OpenAI, Google, Stripe, Hugging Face,
25
- SendGrid). Public certificates are allowed.
26
+ SendGrid). Public certificates are allowed. aimhooman does not scan for
27
+ secrets — this rule is on you, and a dedicated scanner such as gitleaks is
28
+ the right backstop for it.
26
29
  - Never add AI attribution to commit messages: no `Co-authored-by` trailer naming
27
30
  an AI (Claude, Copilot, Codex), no "Generated with/by <AI>" lines, no AI-service
28
31
  noreply emails. A commit message reads as if a human wrote it.
@@ -53,7 +56,7 @@ npm test
53
56
  npm run test:coverage
54
57
  ```
55
58
 
56
- aimhooman also enforces this at commit time, so a blocked commit means a real
57
- violation to fix, not a check to bypass. The rule is simple: AI works, hoomans
58
- ship.
59
+ aimhooman also enforces the artifact and attribution rules at commit time, so
60
+ a blocked commit means a real violation to fix, not a check to bypass. The rule
61
+ is simple: AI works, hoomans ship.
59
62
  <!-- aimhooman:ruleset-end -->
package/AGENTS.md CHANGED
@@ -12,13 +12,16 @@ Its policy:
12
12
  `.copilot/*`, `.cursor/session*`, `.cursor/chats/*`, `.cursor/logs/*`,
13
13
  `.aider.*`, `.specstory/*`, `.continue/sessions/*`, `.playwright-mcp/*`,
14
14
  `.remember/*`, `.superpowers/*`, and `.agent/*`. The examples are not
15
- exhaustive; the packaged `rules/paths.json` is the detection source of truth.
16
- If one is staged, unstage it and keep it out of Git instead.
15
+ exhaustive; the packaged `rules/paths.json` is the detection source of truth
16
+ for these artifacts. If one is staged, unstage it and keep it out of Git
17
+ instead.
17
18
  - Never commit secrets: a real `.env` (not `.env.example`), private keys
18
19
  (`id_rsa` and files containing a private-key header), `.aws/credentials`,
19
20
  `.claude/.credentials.json`, service-account keys, or a provider API key
20
21
  (GitHub, GitLab, npm, Slack, Anthropic, OpenAI, Google, Stripe, Hugging Face,
21
- SendGrid). Public certificates are allowed.
22
+ SendGrid). Public certificates are allowed. aimhooman does not scan for
23
+ secrets — this rule is on you, and a dedicated scanner such as gitleaks is
24
+ the right backstop for it.
22
25
  - Never add AI attribution to commit messages: no `Co-authored-by` trailer naming
23
26
  an AI (Claude, Copilot, Codex), no "Generated with/by <AI>" lines, no AI-service
24
27
  noreply emails. A commit message reads as if a human wrote it.
@@ -49,7 +52,7 @@ npm test
49
52
  npm run test:coverage
50
53
  ```
51
54
 
52
- aimhooman also enforces this at commit time, so a blocked commit means a real
53
- violation to fix, not a check to bypass. The rule is simple: AI works, hoomans
54
- ship.
55
+ aimhooman also enforces the artifact and attribution rules at commit time, so
56
+ a blocked commit means a real violation to fix, not a check to bypass. The rule
57
+ is simple: AI works, hoomans ship.
55
58
  <!-- aimhooman:ruleset-end -->
package/CHANGELOG.md CHANGED
@@ -5,6 +5,117 @@ All notable changes to this project are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.1] - 2026-07-19
9
+
10
+ ### Fixed
11
+
12
+ - `fix` on a strict policy no longer exits 11 (review required) when the
13
+ message holds a removable attribution line but the recheck of the cleaned
14
+ message stays incomplete; it exits 31, the same verdict `--apply` reaches
15
+ for the same content.
16
+ - `commitmsg` printed the blocking "scan incomplete … and retry" framing for
17
+ a tree scan that stopped at exit 11 on the compliance profile; the framing
18
+ now follows the profile, matching `check` and `fix`.
19
+ - `loadOverrides` burned the full lock retry budget (~50 × 10 ms) when a
20
+ caller already held `overrides.json.lock` (every `allow`/`deny`/`override`/
21
+ `review`/`policy-review` write); the warn-once migration persist now takes
22
+ one lock attempt and skips quietly when the lock is held.
23
+ - Two-arg `loadConfig(stateDir, root)` dropped the per-clone `gitignore`
24
+ record whenever a project policy owned the profile; the record is now read
25
+ best effort from config.json.
26
+ - Session-start hook: a failed `.git/info/exclude` refresh no longer skips
27
+ the worktree `.gitignore` refresh; each has its own silent failure, like
28
+ the pre-tool-use path.
29
+ - `uninstall` now also sweeps the worktree `.gitignore` lock queue left by
30
+ `init --gitignore`; the sweep previously covered only the three `.git`-side
31
+ queues.
32
+ - `action.yml` gained a `version` input (default `latest`) so the installed
33
+ CLI can be pinned (pinning the action tag never pinned the CLI), and its
34
+ `actions/setup-node` step is pinned to the same SHA the test workflow uses.
35
+ - The tarball now ships `docs/secrets.md`, `docs/policy.md`,
36
+ `docs/cli-reference.md`, `docs/faq.md`, and `docs/integrations.md`; links
37
+ to them from the README and the catalog dangled inside node_modules.
38
+ - Documentation and comment accuracy: the Cursor manifest description and the
39
+ usage and integrations exit-code lines no longer mention secret scanning
40
+ and now name the strict/final-guard scope of exit 31; the README flowchart
41
+ no longer implies an incomplete scan blocks pre-commit on every profile;
42
+ `docs/policy.md` states correctly that strict turns policy-file and
43
+ agent-instruction findings into blocks and that only the policy
44
+ downgrade/removal block is allow-proof; the 0.3.0 binary bullet, the FAQ
45
+ budget answer, and two stale comments now describe what the code does.
46
+
47
+ ### Removed
48
+
49
+ - Dead code: the unreachable `release` branch of
50
+ `scripts/scan-ci-history.mjs` (no workflow sets that context) along with
51
+ `selectReleaseBase` and the `RELEASE_ENVIRONMENT_VERIFIED` contract; the
52
+ never-produced `object-read-failed` incomplete reason; the callerless
53
+ `repeatable` option in the argument parser; and eight unused `node:fs`
54
+ imports in `src/gitx.mjs`.
55
+
56
+ ## [0.3.0] - 2026-07-19
57
+
58
+ This release narrows aimhooman to the job it does better than anyone else:
59
+ keeping AI tooling residue and attribution out of Git history. Secret
60
+ scanning leaves the product — dedicated tools do it better, and
61
+ `docs/secrets.md` shows the gitleaks setup that replaces it. Commits also
62
+ get less brittle: a scan that cannot cover everything now warns on the
63
+ frictionless profiles instead of stopping the first hook, while the final
64
+ reference-transaction guard keeps its veto on every profile.
65
+
66
+ ### Removed
67
+
68
+ - **Breaking: built-in secret scanning is gone.** `rules/secrets.json` and
69
+ the four secret path rules (`secret.dotenv`, `secret.private-key`,
70
+ `secret.aws-credentials`, `secret.claude-credentials`) no longer ship, so
71
+ `.env` files, private keys, and provider tokens are not detected by
72
+ aimhooman anymore. Pair it with gitleaks — `docs/secrets.md` has the
73
+ pre-commit and GitHub Actions setup. The agent-facing instruction files
74
+ still tell agents not to commit secrets; only the mechanical scanner
75
+ moved out.
76
+ - `init --grandfather-secrets` and the `--scope secret-path` override are
77
+ gone with the scanner. Legacy `secret-path` entries in an existing
78
+ `overrides.json` are dropped on load with a warning naming the file.
79
+ A secret already in history needs rotation and a gitleaks run, not
80
+ aimhooman.
81
+ - In-budget binary blobs are no longer content-scanned: v0.2.0 read their
82
+ bytes for secrets, and with the scanner gone they now skip as binary. The
83
+ oversized-file probe is unchanged — binary up to 16 MiB still skips
84
+ complete, and binary over it is still a size-limit skip that leaves the
85
+ scan incomplete.
86
+
87
+ ### Added
88
+
89
+ - `aimhooman init --gitignore`: opt-in that also writes the managed
90
+ AI-artifact pattern block into the worktree `.gitignore`, so a team can
91
+ commit it and share the ignore set across clones. The default stays
92
+ local (`.git/info/exclude`); `status` shows the block and `uninstall`
93
+ removes it. Gitignore matching is case-sensitive.
94
+ - `docs/ai-artifacts.gitignore` and `docs/catalog.md`: the detection
95
+ catalog as a standalone resource, generated from `rules/*.json` by
96
+ `npm run sync:catalog` and kept honest in CI. Just want the ignore
97
+ list? Copy the first file.
98
+ - `.pre-commit-hooks.yaml`: run aimhooman from the pre-commit.com
99
+ framework (`aimhooman check --staged`).
100
+ - `action.yml`: a composite GitHub Action that runs
101
+ `aimhooman check --range <base>...<head>` in CI. See
102
+ `docs/integrations.md` for it, the pre-commit.com config, and honest
103
+ husky/lint-staged notes.
104
+ - Docs gained `docs/policy.md`, `docs/cli-reference.md`, `docs/faq.md`,
105
+ `docs/integrations.md`, and `docs/secrets.md`.
106
+
107
+ ### Changed
108
+
109
+ - An incomplete scan (an oversized file, a budget hit, an unloadable
110
+ local rule pack) now warns and continues on `clean`/`compliance` in
111
+ `check`, `fix`, `pre-commit`, and `commit-msg` instead of stopping at
112
+ exit 31. `strict` stays fail-closed, and so does the
113
+ reference-transaction guard on every profile — the stop moved from the
114
+ first hook to the final ref boundary, which `--no-verify` cannot skip.
115
+ - The README slimmed from 481 to 162 lines. The detail it carried —
116
+ versioned team policy, overrides, command and exit-code references,
117
+ the FAQ — moved into `docs/` unchanged in substance.
118
+
8
119
  ## [0.2.0] - 2026-07-19
9
120
 
10
121
  This release works through the findings of the cross-ecosystem field test
package/CONTRIBUTING.md CHANGED
@@ -31,9 +31,8 @@ npm run verify # schemas, workflows, dead code, coverage, package, installed
31
31
  ## Adding a rule
32
32
 
33
33
  Rules live in `rules/` as JSON arrays: `paths.json` (staged paths),
34
- `attribution.json` (commit-message lines), `markers.json` (staged content),
35
- `secrets.json` (high-confidence secret patterns). Each
36
- rule has the shape:
34
+ `attribution.json` (commit-message lines), `markers.json` (staged content).
35
+ Each rule has the shape:
37
36
 
38
37
  ```json
39
38
  {
package/GEMINI.md CHANGED
@@ -12,13 +12,16 @@ Its policy:
12
12
  `.copilot/*`, `.cursor/session*`, `.cursor/chats/*`, `.cursor/logs/*`,
13
13
  `.aider.*`, `.specstory/*`, `.continue/sessions/*`, `.playwright-mcp/*`,
14
14
  `.remember/*`, `.superpowers/*`, and `.agent/*`. The examples are not
15
- exhaustive; the packaged `rules/paths.json` is the detection source of truth.
16
- If one is staged, unstage it and keep it out of Git instead.
15
+ exhaustive; the packaged `rules/paths.json` is the detection source of truth
16
+ for these artifacts. If one is staged, unstage it and keep it out of Git
17
+ instead.
17
18
  - Never commit secrets: a real `.env` (not `.env.example`), private keys
18
19
  (`id_rsa` and files containing a private-key header), `.aws/credentials`,
19
20
  `.claude/.credentials.json`, service-account keys, or a provider API key
20
21
  (GitHub, GitLab, npm, Slack, Anthropic, OpenAI, Google, Stripe, Hugging Face,
21
- SendGrid). Public certificates are allowed.
22
+ SendGrid). Public certificates are allowed. aimhooman does not scan for
23
+ secrets — this rule is on you, and a dedicated scanner such as gitleaks is
24
+ the right backstop for it.
22
25
  - Never add AI attribution to commit messages: no `Co-authored-by` trailer naming
23
26
  an AI (Claude, Copilot, Codex), no "Generated with/by <AI>" lines, no AI-service
24
27
  noreply emails. A commit message reads as if a human wrote it.
@@ -49,7 +52,7 @@ npm test
49
52
  npm run test:coverage
50
53
  ```
51
54
 
52
- aimhooman also enforces this at commit time, so a blocked commit means a real
53
- violation to fix, not a check to bypass. The rule is simple: AI works, hoomans
54
- ship.
55
+ aimhooman also enforces the artifact and attribution rules at commit time, so
56
+ a blocked commit means a real violation to fix, not a check to bypass. The rule
57
+ is simple: AI works, hoomans ship.
55
58
  <!-- aimhooman:ruleset-end -->