aienvmp 0.1.0 → 0.1.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.
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: aienvmp
3
+ description: Use before changing runtimes, package managers, Docker settings, global packages, or environment policy in an AI coding workspace. Reads aienvmp context, prevents AI-driven version drift, records intent before environment changes, and records what changed afterward.
4
+ ---
5
+
6
+ # aienvmp
7
+
8
+ Use `aienvmp` as the shared environment source of truth for this workspace.
9
+
10
+ The goal is to help multiple AI agents avoid silently installing or using different versions of Node, Python, Docker, package managers, or global tools.
11
+
12
+ ## Preflight
13
+
14
+ Before environment-impacting work, run:
15
+
16
+ ```bash
17
+ npx aienvmp context
18
+ ```
19
+
20
+ If the output says `review-required`, do not change global runtimes, package managers, Docker settings, or global packages without asking the user.
21
+
22
+ For machine-readable context, use:
23
+
24
+ ```bash
25
+ npx aienvmp context --json
26
+ ```
27
+
28
+ ## Before Environment Changes
29
+
30
+ Record intent before changing shared environment state:
31
+
32
+ ```bash
33
+ npx aienvmp intent --actor agent:codex --action "<planned change>" --target "<tool-or-runtime>"
34
+ ```
35
+
36
+ Use this for changes such as:
37
+
38
+ - installing or upgrading Node, Python, Docker, package managers, or global CLIs
39
+ - changing `.nvmrc`, `.python-version`, `mise.toml`, `.tool-versions`, or `.aienvmp/policy.yml`
40
+ - switching package managers
41
+ - changing Docker daemon/context assumptions
42
+
43
+ ## After Environment Changes
44
+
45
+ Refresh the environment map:
46
+
47
+ ```bash
48
+ npx aienvmp scan
49
+ npx aienvmp compile
50
+ ```
51
+
52
+ Record what changed:
53
+
54
+ ```bash
55
+ npx aienvmp record --actor agent:codex --summary "<what changed>" --target "<tool-or-runtime>" --evidence "<command or file>"
56
+ ```
57
+
58
+ Resolve the original intent if complete:
59
+
60
+ ```bash
61
+ npx aienvmp resolve --actor agent:codex --id "<intent-id>"
62
+ ```
63
+
64
+ ## Safety Rules
65
+
66
+ - `aienvmp` warnings are non-blocking by default.
67
+ - Treat policy mismatches as review-required.
68
+ - Do not install, upgrade, downgrade, or remove global software unless the user explicitly asks.
69
+ - Prefer project-local version files and local environments.
70
+ - Do not use warnings as permission to interrupt production or shared workspace operations.
71
+ - Use `npx aienvmp doctor --ci` only in CI or explicit strict-mode automation.
72
+
73
+ ## Normal Coding Work
74
+
75
+ For ordinary source edits that do not affect runtime versions, package managers, Docker settings, global packages, or environment policy, you do not need to record an intent.
package/README.md CHANGED
@@ -109,6 +109,14 @@ Generated agent targets:
109
109
  - `CLAUDE.md`
110
110
  - `GEMINI.md`
111
111
 
112
+ Codex can also use the repo-scoped skill:
113
+
114
+ ```text
115
+ .agents/skills/aienvmp/SKILL.md
116
+ ```
117
+
118
+ Invoke it explicitly as `$aienvmp`, or let Codex select it when the task involves runtime, package manager, Docker, global package, or environment policy changes.
119
+
112
120
  ## What AI Agents See
113
121
 
114
122
  `aienvmp context` returns a compact preflight brief:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aienvmp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "AI-first environment maps and lightweight runtime SBOMs for shared development machines.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -24,7 +24,8 @@
24
24
  "SECURITY.md",
25
25
  "ROADMAP.md",
26
26
  "action.yml",
27
- "examples"
27
+ "examples",
28
+ ".agents"
28
29
  ],
29
30
  "scripts": {
30
31
  "test": "node --test",
package/src/cli.js CHANGED
@@ -8,6 +8,7 @@ import { contextWorkspace } from "./commands/context.js";
8
8
  import { recordWorkspace } from "./commands/record.js";
9
9
  import { intentWorkspace } from "./commands/intent.js";
10
10
  import { resolveWorkspace } from "./commands/resolve.js";
11
+ import { readFileSync } from "node:fs";
11
12
 
12
13
  const commands = new Map([
13
14
  ["init", initWorkspace],
@@ -22,7 +23,7 @@ const commands = new Map([
22
23
  ["resolve", resolveWorkspace]
23
24
  ]);
24
25
 
25
- const version = "0.1.0";
26
+ const version = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
26
27
 
27
28
  export async function main(argv) {
28
29
  const [command, ...rest] = argv;