You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,22 @@ All notable changes to ADD are documented here. Format loosely follows [Keep a C
4
4
5
5
For commit-level detail see `git log`.
6
6
7
+
## [0.9.8] — 2026-07-12
8
+
9
+
P0 correctness patch from a full token-sensitivity audit (four parallel deep-dives across rules, skills, the Codex runtime, and the operational machinery). Fixes cross-runtime divergence and fail-open security behavior; opens the three-release path to v1.0 (v0.9.9 token architecture, v0.9.10 dedup + hygiene).
10
+
11
+
### Fixed
12
+
13
+
-**Codex substitution leaks.** The compiler applied `codex_substitute` only to skill bodies and references — `rules/`, `knowledge/`, `templates/`, `security/`, `lib/` docs and agent TOMLs shipped with raw `${CLAUDE_PLUGIN_ROOT}` paths and **286 `/add:` Claude-namespace command references** (Codex commands are `/add-<name>`). `copy_tree` now takes a transform; a `/add:` → `/add-` substitution rule was added; `.template`/`.toml` files joined the substitution set; `handoff-detect.sh` messages corrected at source. `scan-secrets.sh` additionally resolves its catalog at `~/.codex/add/security/` when env/script-relative resolution misses.
14
+
-**Claude/Codex autoload divergence.** The Claude `@rules` list included a rule unless `autoload: false`; the Codex AGENTS.md invariants required `autoload: true` — `design-system.md` (no key) autoloaded on Claude but was missing from Codex invariants. Both runtimes now share one `rule_autoloads()` predicate, and **every rule must declare `autoload:` explicitly** (compile hard-fails otherwise).
15
+
-**Critical injection detector failed open.** Hex-escape patterns (incl. the `critical``unicode-tag-block` invisible-injection detector) silently no-op'd when `python3` was absent. The scanner now emits an `ADD-SEC … action=skipped-no-python3` warning and a `skipped:"no-python3"` audit event.
16
+
-**`compile.py --check` could false-pass on a pre-drifted tree** (it compared before-vs-after `git status --porcelain` strings, identical either way). Now snapshots the output dirs and content-diffs after recompile — git-independent, works uncommitted.
17
+
-**Codex sessions never saw `knowledge/global.md`.**`adapter.yaml` claimed AGENTS.md was built from it, but the compiler never read it. The slim manifest now carries the read-before-work pointer to Tier-1 global learnings + `.add/learnings-active.md`.
18
+
19
+
### Changed
20
+
21
+
-**`adapter.yaml` truth-pass.** The `limitations` section previously described an injection-scan hook writing audit events on Codex — no such hook ships. It now states plainly: injection defense on Codex is **advisory-only** (no scanner hook, no audit events; parity targeted at v1.0), `filter-learnings.sh` ships but is not auto-registered, and hook stderr is not surfaced. `output_shape` now documents all real emit targets (`rules/`, `knowledge/`, `lib/`, `security/`); the false `rules.strip` frontmatter claim replaced with `preserve: true` (the maturity-loader reads rule `maturity:` keys at runtime).
22
+
7
23
## [0.9.7] — 2026-06-18
8
24
9
25
Methodology reframe + a security trust signal. Positions ADD as the policy layer over native orchestration, leads with the maturity-ladder moat, and dogfoods the injection defense.
Copy file name to clipboardExpand all lines: core/templates/migrations.json
+7-1Lines changed: 7 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"schema_version": "1.0.0",
3
-
"plugin_version": "0.9.7",
3
+
"plugin_version": "0.9.8",
4
4
"migrations": [
5
5
{
6
6
"from": "0.1.0",
@@ -260,6 +260,12 @@
260
260
"to": "0.9.7",
261
261
"steps": [],
262
262
"description": "v0.9.7 \u2014 methodology reframe. swarm-protocol.md + agent-coordination.md reframed as policy-over-native-Workflows (manual fallback retained; WIP semantics invariant); swarm-state machine-readable format contract pinned; README leads with the maturity ladder; skill self-scan CI gate added (scripts/self-scan-skills.py + skill-self-scan guardrail); runtimes/claude/workflows/ scaffold (inert). No consumer config changes."
263
+
},
264
+
{
265
+
"from": "0.9.7",
266
+
"to": "0.9.8",
267
+
"steps": [],
268
+
"description": "v0.9.8 \u2014 P0 correctness patch. Codex compiler now rewrites ${CLAUDE_PLUGIN_ROOT} paths and /add: command namespace in rules/knowledge/templates/security/lib and agent TOMLs (previously leaked Claude-isms verbatim); Claude and Codex runtimes share one autoload predicate (explicit autoload: key now required on every rule; design-system.md was autoloaded on Claude but missing from Codex invariants); Codex AGENTS.md points to knowledge/global.md (was silently dropped); posttooluse-scan.sh records a skipped:no-python3 audit event instead of silently disabling the critical unicode-tag-block detector; compile.py --check content-diffs against a snapshot (git-independent, catches pre-drifted trees); adapter.yaml limitations rewritten to state Codex injection defense is advisory-only. No consumer config changes."
Generate a portable [`AGENTS.md`](https://agents.md) at project root from the project's `.add/` state. `AGENTS.md` is the cross-tool open standard for project-level agent instructions — any agent (Claude Code, Cursor, Codex CLI, Windsurf, Amp, Devin, Copilot) will read it on session start. Publishing one lets mixed-toolchain teams respect the same invariants without installing ADD.
10
10
@@ -13,11 +13,11 @@ This skill is the only way to regenerate AGENTS.md. A PostToolUse hook marks the
13
13
## Invocation
14
14
15
15
```
16
-
/add:agents-md # default: --write
17
-
/add:agents-md --check # drift detection, CI-friendly (exit 1 on drift)
18
-
/add:agents-md --merge # prepend ADD block to an existing hand-curated AGENTS.md
19
-
/add:agents-md --import # one-time absorption (same as --merge; explicit intent)
20
-
/add:agents-md --dry-run # preview without writing (combines with any mode)
16
+
/add-agents-md # default: --write
17
+
/add-agents-md --check # drift detection, CI-friendly (exit 1 on drift)
18
+
/add-agents-md --merge # prepend ADD block to an existing hand-curated AGENTS.md
19
+
/add-agents-md --import # one-time absorption (same as --merge; explicit intent)
20
+
/add-agents-md --dry-run # preview without writing (combines with any mode)
21
21
```
22
22
23
23
## Pre-Flight Checks
@@ -144,14 +144,14 @@ Marker contents:
144
144
}
145
145
```
146
146
147
-
The hook does **not** rewrite `AGENTS.md`. The next `/add:agents-md` invocation announces the stale state, lists the changed sources, then regenerates when the human runs `--write`.
147
+
The hook does **not** rewrite `AGENTS.md`. The next `/add-agents-md` invocation announces the stale state, lists the changed sources, then regenerates when the human runs `--write`.
148
148
149
149
## Integration With Other Skills
150
150
151
-
-**`/add:init`** — calls `/add:agents-md` at the end of the init flow to write the initial `AGENTS.md`.
152
-
-**`/add:spec`** — after a new spec becomes the "spec under work", prompts: "Update AGENTS.md active-spec pointer? (Y/n)". On yes, runs `/add:agents-md --write`.
153
-
-**`/add:verify`** — opt-in Gate 4.5: if `agentsMd.gateOnVerify: true` is set in `.add/config.json`, `/add:verify` runs `--check` and fails the gate on drift. Off by default.
154
-
-**`/add:promote`** — maturity bumps recommend a regen (since the verbosity level changes) but do not auto-rewrite.
151
+
-**`/add-init`** — calls `/add-agents-md` at the end of the init flow to write the initial `AGENTS.md`.
152
+
-**`/add-spec`** — after a new spec becomes the "spec under work", prompts: "Update AGENTS.md active-spec pointer? (Y/n)". On yes, runs `/add-agents-md --write`.
153
+
-**`/add-verify`** — opt-in Gate 4.5: if `agentsMd.gateOnVerify: true` is set in `.add/config.json`, `/add-verify` runs `--check` and fails the gate on drift. Off by default.
154
+
-**`/add-promote`** — maturity bumps recommend a regen (since the verbosity level changes) but do not auto-rewrite.
0 commit comments