Skip to content

fix(install): consumer-install-hardening F9b — /aif-* honesty sweep (remaining docs) - #485

Merged
artyhoo merged 1 commit into
stagingfrom
cih-f9b-aif-sweep
Jun 13, 2026
Merged

fix(install): consumer-install-hardening F9b — /aif-* honesty sweep (remaining docs)#485
artyhoo merged 1 commit into
stagingfrom
cih-f9b-aif-sweep

Conversation

@artyhoo

@artyhoo artyhoo commented Jun 13, 2026

Copy link
Copy Markdown
Owner

consumer-install-hardening — F9b: /aif-* honesty sweep (remaining docs)

Follow-up to #480 (F9) — maintainer-invited. F9 reframed AGENTS.md + checks-map.md; F9b finishes the sweep across the rest of the shipped doc surface.

The lie (same defect class as F9)

Three more shipped docs presented /aif-verify as the UNCONDITIONAL "REQUIRED before commit" gate the installer never delivers (.claude/commands/ is never shipped):

  • packages/core/templates/shared/CLAUDE.md.template:22/:26 (ships to consumer root CLAUDE.md) — /aif-verify — REQUIRED before commit + Don't bypass /aif-verify.
  • packages/core/templates/shared/DESCRIPTION.template.md:61/:65 (ships to .ai-factory/) — identical.
  • skills/rules-as-tests/references/ai-traps.md:227/:254teaches consumers to write the lie in their own AGENTS/CLAUDE (the sample-doc template).

Fix

Reframe to conditional "if you use AI Factory (aif)" (not bundled); the unconditional pre-commit/PR gate now names what install actually ships (./scripts/audit-ai-docs.sh + .husky/pre-push + CI). /aif-verify demoted to a convenience wrapper. The 4 other shipped docs that mention /aif-verify (SKILL.md, overview.md, self-testing-docs.md, doc-organization.md) do so descriptively ("AI Factory /aif-verify pre-PR gate") — honest, left untouched (scope discipline; T16 — mentions ≠ lies).

Probe — broadened (closes F9's 2-doc-scope caveat)

Extended tests/install-sh/f9-aif-commands-honesty.test.sh to sweep all 37 shipped markdown docs. The audit-self.yml F9 step already runs this file — no workflow change.

§1.7 Forward-check applied

Same reframe pattern as F9 #480; complies with companion-install-principle.md §1 (companions install via their own installer — we ship NO /aif-* commands), build-first-reuse-default.md §1 (REUSE the already-shipped audit-ai-docs.sh + pre-push gate; only the bash probe extension is new), and no-paid-llm-in-ci.md (the probe is pure bash, zero API). Evidence: packages/core/templates/shared/CLAUDE.md.template:17, skills/rules-as-tests/references/ai-traps.md:227, tests/install-sh/f9-aif-commands-honesty.test.sh:108.

§1.7 Backward-check applied

Extends #480 rather than superseding it; the 4 descriptive-mention docs are intentionally untouched (verified zero lie-pattern hits). No existing rule superseded. The broadened sweep closes the 2-doc-scope caveat the F9 probe documented at tests/install-sh/f9-aif-commands-honesty.test.sh:11; the benign-vs-lying separation was proven before edit (packages/core/templates/shared/DESCRIPTION.template.md:61 matches, skills/rules-as-tests/SKILL.md:124 does not).

Verify-trace

  • bash tests/install-sh/f9-aif-commands-honesty.test.shPASS=10 FAIL=0; both sweep neg arms bite
  • lie-patterns verified zero-hit on the 4 benign docs + 2-hit each on the 3 lying docs (separation proven before edit)
  • bash -n clean; portable (no mapfile — runs on macOS bash 3.2 + ubuntu CI)
  • branch 3-dot diff vs staging = 4 F9b paths only; F9/F8 files untouched
  • CI green on this PR — pending re-run after this body fix

Scope-out

Branch based on live staging 4bff351a; pushed via harvest-via-api.sh (git transport tunnel-blocked). Part of the consumer-install-hardening umbrella; runs in parallel with the issue-#478 S3 track (no file overlap).

…remaining docs)

F9 (#480) reframed AGENTS.md + checks-map.md; F9b finishes the sweep. Three more
shipped docs presented /aif-verify as the UNCONDITIONAL "REQUIRED before commit"
gate the installer never delivers — CLAUDE.md.template, DESCRIPTION.template.md,
and ai-traps.md (which TEACHES consumers to write the lie in their own docs).
Reframed to conditional "if you use AI Factory (aif)"; the unconditional gate now
names what install actually ships (./scripts/audit-ai-docs.sh + pre-push hook + CI).
The 4 other shipped docs mentioning /aif-verify do so descriptively ("AI Factory
/aif-verify pre-PR gate") — honest, left as-is (scope discipline).

Broadened tests/install-sh/f9-aif-commands-honesty.test.sh to SWEEP all 37 shipped
markdown docs (closes F9's 2-doc-scope caveat); the audit-self.yml F9 step already
runs it (no workflow change). Probe PASS=10/0, both sweep neg arms bite; the
lie-patterns are verified zero-hit on the 4 benign descriptive docs (no over-broad FP).

§1.7: forward-check — same reframe pattern as F9; complies with companion-install-principle.md §1 (no /aif-* commands shipped), build-first-reuse-default.md §1 (REUSE the shipped audit-ai-docs/pre-push gate), no-paid-llm-in-ci.md (bash probe). evidence packages/core/templates/shared/CLAUDE.md.template:17 + skills/rules-as-tests/references/ai-traps.md:227. backward-check — extends #480; the 4 descriptive-mention docs intentionally untouched; no rule superseded.

Prior-art: skipped — consumer-doc honesty reframe + deterministic bash probe extension, no new capability area or dependency introduced.
@artyhoo
artyhoo merged commit c21795a into staging Jun 13, 2026
27 of 28 checks passed
artyhoo added a commit that referenced this pull request Jun 13, 2026
…md) (#493)

Umbrella-closure marker: S1 #474, S2 #479/#480/#481/#485, S3 globs #486, S3 F14 #490, S3 V2 #491 all merged to staging; staging→main promotion tracked separately in #488. Closure per CLAUDE.md convention (priority-score.sh Layer C3).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant