fix(install): consumer-install-hardening S1 — make claimed shields live in consumers (F6/F1/F12/F2/F11/F13) - #477
Closed
artyhoo wants to merge 2 commits into
Closed
fix(install): consumer-install-hardening S1 — make claimed shields live in consumers (F6/F1/F12/F2/F11/F13)#477artyhoo wants to merge 2 commits into
artyhoo wants to merge 2 commits into
Conversation
…ve in consumers (cih-s1) Rebased onto staging after FQA #470 squash-merged (ebda0cc) + guard-liveness #475 (cf32245). Re-applied the F12 R11 edit onto staging's manifest (preserving #475 fixture/liveness-mode additions) — verified principle 05 green against staging's schema. F6 ship audit-r4.ts → scripts/ so audit-ai-docs.sh R4 probe resolves (FQA-drop correction). F1 ship pre-push.ts + bounded static closure (utils/run-check,git; checks/prior-art,s17) so the dispatcher TS-arm is reachable; guard-liveness stays dynamic-import (degrades). F12 ship genericised workflow-integrity.yml + align R11 claim via the manifest SSOT (regenerate RULES.md) to name only shipped CI artefacts (no actionlint/zizmor/audit-self over-claim). F2 install activates hooks (core.hooksPath=.husky) + declares husky/lint-staged/sort-package-json devDeps. F11 already satisfied by FQA W6 (CI templates read node-version-file:.nvmrc) — no change. F13 repoint 3 RuleCreator doc-URLs factory/RULES.md → packages/preset-next-15-canonical/RULES.md (correct GitHub slugs) + stryker packageManager detected from consumer lockfile. CI wire the 5 new install-sh acceptance tests into audit-self.yml (preserves #464 consumer-mode step). All acceptances evidenced on a fresh ts-server install; full principle suite green locally. Prior-art: skipped — install-side fixes ship/align existing artefacts to consumers, no new framework capability (verified: no new packages/ file ≥80 LOC, no new root package.json dep).
The F11 step was wired into audit-self.yml but the staging rebase used a stale path list and omitted the test file → restoring it. Locks F11 (CI reads node-version-file:.nvmrc, no hardcode) on a real landed consumer, both stacks. Prior-art: skipped — install-sh regression test for an existing fix, no new framework capability
Owner
Author
|
Closing as redundant. Verified staging (tip 9d72647) already carries the complete S1 with identical content — #474 was retargeted to staging and merged (b6d3be6), and the F11 test/step + staging-rebased manifest (R11=ci.yml claim, #475 fixture/liveness-mode preserved) all landed there in parallel with this rebase. All 14 files present with matching blob SHAs (f11 b41b0bae, f2 e0dc68e1, f13 85736728, workflow-integrity c15cbc26). This branch is now behind staging (#476) and merging it would only risk reverting guard-liveness v3 — nothing to add. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
consumer-install-hardening — Stage S1 (install-side) · rebased onto staging
Fixes the framework install defects the timeliner consumer audit found (F1–F13): makes every shield the framework claims actually live in a fresh consumer — hooks fire, the TS pre-push core is reachable, the R4 probe resolves, R11's claim matches shipped CI, stryker/doc-URL artefacts are correct.
Findings — status + acceptance (evidenced on a fresh install)
audit-r4.ts→scripts/(FQA-drop correction)audit-ai-docs.shresolves+skips gracefullypre-push.ts+ 5-file bounded static closureworkflow-integrity.yml+ R11 claim via manifest SSOTcore.hooksPath=.husky) + husky/lint-staged/sort-package-json devDepsf11-ci-node-version.test.sh6/0 both stacksfactory/RULES.mdgone from eslint-rules; pnpm/npm detectedaudit-self.yml(preserves #464 consumer-mode step)Own-QA (T19): full principle suite 170 passed; all install-sh tests green; commit-trailer + §1.7 gates pass locally.
Verify-trace
bash -n install.shexit 0; freshts-serverinstall ships every artefact; sets core.hooksPath; detects stryker PMrender-rules.ts --checkup-to-date;principle 05green (vs staging schema)npm installthen commit-with-lint-error → pre-commit fails (F2); TS-hook loads on pinned Node 20.19.0 (F1 runtime checked under Node 24 here)§1.7 Forward-check applied
Checked against existing disciplines: build-first-reuse / capability-commit — no new capability (ships/aligns existing artefacts; no new
packages/file ≥80 LOC, no new root dep) →Prior-art: skippedtrailers. no-paid-llm-in-ci — acceptance is bash/node/vitest, zero API calls. doc-authority / principle 05 — F12 edits the manifest SSOT and regenerates RULES.md (not a hand-edit of generated output). dual-implementation — install-side single channel. Serves the README goal: makes claimed rules executable+live at the earliest channel in the consumer. Evidence:install.shcopy/activation blocks,rules-manifest.jsonR11check.command,packages/core/eslint-rules/*.tsURLs.§1.7 Backward-check applied
Swept existing artefacts under scope. Extends FQA without redo (F4 barrel already generated; W1/W2/W4/W6 untouched); corrects FQA's F6-drop + F12 SSOT-direction. Re-applied F12's R11 edit onto staging's post-#475 manifest, preserving all guard-liveness
fixture/liveness-modeadditions (verified: manifest diff vs staging = R11check.commandline only). No artefact silently superseded. Same-defect-class residue outside S1 scope surfaced for S2 (below), not swept.Folded into S2 (maintainer-approved) — NOT fixed here
factory/RULES.react-next.md.install.sh"Next steps" echo still saysnpx husky init(now redundant + would clobber shipped hooks).rules-manifest.jsonR11policy+ framework's ownworkflow-integrity.ymlcomment still reffactory/RULES.md.🤖 Generated with Claude Code