create-agentic-workspace 0.14.0 → 0.15.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-agentic-workspace",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "The pre-session bootstrap wizard for an Agentic Foundry workspace: declares (never grants) the permission floor, absorbs foundry-bootstrap.sh's out-of-session identity wiring, and scaffolds a seven-file schema-valid workspace. Zero dependencies, no lifecycle scripts, no telemetry.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -34,7 +34,7 @@
34
34
  "marketplace_name": "agentic-foundry",
35
35
  "marketplace_repo": "lukasrepublic/agentic-foundry",
36
36
  "plugin_name": "foundry",
37
- "plugin_version": "1.14.0",
37
+ "plugin_version": "1.15.0",
38
38
  "pins_researched": "2026-08-02"
39
39
  }
40
40
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema_version": 1,
3
3
  "plugin_root_glob": "~/.claude/plugins/cache/*/foundry/*",
4
- "generated_for_plugin_version": "1.14.0",
4
+ "generated_for_plugin_version": "1.15.0",
5
5
  "entries": [
6
6
  {
7
7
  "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-acceptance-contract-validate.py:*)",
@@ -64,29 +64,19 @@
64
64
  "rationale": "bare invocation runs the thin 5-check health probe; read-only, fail-open; exact rule deliberately — flag-qualified forms fall through to a prompt so no allow-prefix can reach the --heal ceremony (security review 2026-08-02)."
65
65
  },
66
66
  {
67
- "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-env-hygiene.py:*)",
67
+ "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-done-when-backfill.py --dry-run:*)",
68
68
  "tier": "allow",
69
- "rationale": "status/reap over machine-scoped worker sandbox envs; confined to isolated per-worker state"
69
+ "rationale": "read-only report of every acceptance-contract.yaml lacking a top-level done_when and its derivation; writes nothing (AC-SUB-3)"
70
70
  },
71
71
  {
72
- "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-fleet-doctor.py:*)",
73
- "tier": "allow",
74
- "rationale": "read-only health sweep across all adopter handbooks wiring the plugin on one machine"
75
- },
76
- {
77
- "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-fleet-roster.py:*)",
78
- "tier": "allow",
79
- "rationale": "read-only live roster render, one row per native session, via the session-registry"
80
- },
81
- {
82
- "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-fleet-session-machinery.py:*)",
72
+ "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-env-hygiene.py:*)",
83
73
  "tier": "allow",
84
- "rationale": "derives a typed process-machinery overlay for the fleet surface; read-only"
74
+ "rationale": "status/reap over machine-scoped worker sandbox envs; confined to isolated per-worker state"
85
75
  },
86
76
  {
87
- "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-fleet-session-registry.py:*)",
77
+ "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-governance-budget.py:*)",
88
78
  "tier": "allow",
89
- "rationale": "thin read-only overlay of foundry work-context onto the native session list"
79
+ "rationale": "read-only report of skill prose lines / shipped scripts / floor rows / hook commands / pytest count; prints only, writes nothing (AC-SUB-4)"
90
80
  },
91
81
  {
92
82
  "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-graph-mcp.py:*)",
@@ -278,6 +268,11 @@
278
268
  "tier": "ask",
279
269
  "rationale": "ceremony: leading subcommand, writes a decommission record"
280
270
  },
271
+ {
272
+ "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-done-when-backfill.py --apply:*)",
273
+ "tier": "ask",
274
+ "rationale": "writes a derived done_when: block into every acceptance-contract.yaml it backfills across the workspace's whole spec corpus; the --dry-run flag above is the read-only tier (AC-SUB-3)"
275
+ },
281
276
  {
282
277
  "rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-doctor.py --heal:*)",
283
278
  "tier": "ask",
package/src/cleanup.mjs CHANGED
@@ -16,9 +16,9 @@ import {
16
16
 
17
17
  /** The union of every scope record's `version` for `<plugin>@<marketplace>` in
18
18
  * installed_plugins.json, plus the refreshed marketplace manifest's `version` — NEVER the highest
19
- * semver on disk. `scripts/foundry-fleet-doctor.py:70-83`'s `installed_index()` is correct for its
20
- * own job (report ONE adopter's resolved plugin) and unsafe here: it `break`s after the first
21
- * record and would silently drop a scope pinned to an older version that is still live. */
19
+ * semver on disk. Stopping after the first matching record (rather than unioning every one) would
20
+ * silently drop a scope pinned to an older version that is still live — this cleanup path must
21
+ * never prune a directory a live scope still resolves to. */
22
22
  export function deriveLiveSet({ registry, manifestVersion, pluginKey }) {
23
23
  if (!registry.ok) return { ok: false, reason: registry.reason };
24
24
  const records = scopeRecordsFor(registry.doc, pluginKey);