AD-030: retire the gets-sharper-every-day promise (rebuilt onto current main, replaces #419) - #469
Merged
Merged
Conversation
…stack The last behavioral scoring path left after the v19 demotion (AD-029), found by the post-merge verification sweep: build_negative_stack injected 0.30 Bayesian suppression priors from auto-detected anti_topics rows whose confidence is pure dismissal count (rejection_count/10) — five dismissals could auto-ban a topic to x0.30 composite authority via negative_stack_prior. Inert on the live corpus (anti_topics has 0 rows, priors byte-identical, hence NO PIPELINE_VERSION bump — precedent and probe documented in scoring/mod.rs), but structurally live. The negative stack now builds from competing-tech inference over the actual dependency graph only. Explicit topic suppression remains user-authored exclusions, which hard-filter upstream. blind_spots' duplicate anti-topic feed removed with it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016puYGGmj3oHxmcKBbJ5vXq
The promise described a mechanism AD-029 removed, was never measurable
("all risk, no demonstrated lift" — 7 explicit feedback signals against a
200k-item corpus), and post-v19 left ~100 instances of self-contradicting
copy, several asserting dead mechanisms inside Score Autopsy — live
INV-023 violations. Pre-launch (public, unadvertised) is the only cheap
moment; after launch this is a retraction.
New canonical (propagated from CLAUDE.md through every surface):
"4DA reads the internet for developers — privately, locally. Your
codebase decides what''s relevant." "Yesterday''s noise becomes tomorrow''s
signal" SURVIVES, re-attributed to corpus re-judging (verdict epochs +
re-examination) — it is true and implemented. The 92%/98% benchmark stays
as body copy with methodology. "Compound knowledge" survives only in the
framework''s dev-process sense.
- Governance first: AD-030 (with re-claim criteria: a /calibrate-measured
lift, published) + amendments to AD-017/025/026/028 — all four decisions
survive, only rationales rewrite (AD-028''s lifetime honesty now rests on
the cost structure: zero marginal cost + offline 2099 key)
- P0: in-app strings that asserted dead mechanisms rewritten or deleted
("will be penalized in relevance scoring", "Boosted because you''ve shown
interest", "scoring corrections applied", the "Learned" badge, learned
factor rows + affinity chips — the anti factor also had inverted
magnitude/multiplier semantics and rendered a false penalty on every item)
- "Compound Intelligence" tab renamed "Personal, Not Aggregate" — its
content (per-user, inspectable, local-only) was always a privacy story
- 13 locales: 45 stale keys purged per locale, regenerated from corrected
English via i18n:fill; generator scripts purged first so nothing
re-injects (apply-translations.cjs carried 12 hardcoded copies)
- Ship-locked surfaces: installer shortDescription/longDescription,
homepage JSON-LD (incl. the Offer), npm MCP README (lands on next
publish)
- Site + docs: 22 files rewritten under the house rule (present-tense
verifiable statements; improvement attributed to engine updates and the
user''s codebase, never engagement); signal.njk''s 16 compounding claims
reframed on the analysis layer; the refund-adjacent trial claim deleted;
framework §7 kept as a dev-process thesis with scoring-accuracy claims
stripped across all three mirrored copies
- New public post: site/src/writing/retiring-a-claim-we-could-not-measure
— the incident record as an engineering story, ending on the re-claim bar
- Enforcement: scripts/check-retired-claims.cjs (+9 tests) wired into
test:scripts and validate; historical-record files allowlisted;
retired-ok escape hatch for quoting the claim as history
Verified: guard clean repo-wide; translation parity 0 errors across 13
languages; tsc clean; frontend suite green; Rust 4,419 green; fmt clean.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016puYGGmj3oHxmcKBbJ5vXq
…uilt onto current main) Merges origin/worktree-promise-retirement-ad030 (PR #419) with conflicts resolved in favour of current main's newer facts: - locale ui.json files: main's structure kept; #419's 312 reworded values and 130 deleted affinity-surface keys ported per-leaf (its 752 key additions dropped — those surfaces were deleted from en by #421) - README/index.njk/signal.njk/SETUP-GUIDE/LICENSE-ACTIVATION: main's newer copy (93% figure, Precision Ledger, BYOK rationale) kept, retired phrases replaced with the canonical line - Developer DNA kept OUT of paid-feature lists (AD-025/026 tier truth) - apply-translations.cjs / missing-keys.json / BadgeRow.tsx stay deleted (deleted on main since #419's base) - CLAUDE.md + package.json deliberately untouched: claimed by live peer lanes (#466, agent-a875) — gate wiring + tagline follow in-branch once those claims release Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MMarGhXjbKyNJzsm3JG1jw
- 92% -> 93% / 98% -> 98.9% / 215 -> 245-item corpus (the current measured benchmark, #460) in COMPARISON.md and the retirement post - RELEASE-NOTES-v1.0.0 tier table + closing line matched to AD-025/026 tier truth (DNA, Signal Chains, Score Autopsy are free; the paid set is Blind Spots, Knowledge Gaps, Standing Queries, Semantic Shifts, cross-project intelligence) - retirement post added to /writing index (retired-ok teaser quote) and sitemap - two Rust doc comments un-mangled; engagement_telemetry header no longer claims facets influence scoring (INV-023) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MMarGhXjbKyNJzsm3JG1jw
runyourempire
enabled auto-merge (squash)
August 16, 2026 11:01
runyourempire
added a commit
that referenced
this pull request
Aug 16, 2026
…ne (#472) The last 2 retired-claim violations in the repo, deferred from #469 because CLAUDE.md was claimed by the #466 lane (now merged, worktree reaped). With this, `node scripts/check-retired-claims.cjs` reports **zero violations repo-wide**. Remaining enforcement residual: wiring the gate into `validate`/`test:scripts` waits on the live lane holding `package.json`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01MMarGhXjbKyNJzsm3JG1jw --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
runyourempire
added a commit
that referenced
this pull request
Aug 16, 2026
runyourempire
added a commit
that referenced
this pull request
Aug 16, 2026
This was referenced Aug 17, 2026
runyourempire
added a commit
that referenced
this pull request
Aug 17, 2026
…d but never ran (#477) ## The residual this closes `scripts/check-retired-claims.cjs` + its 9 tests merged in #469 as the AD-030 enforcement gate — but nothing ever invoked them. Not `test:scripts`, not the `validate` chain, so the gate never ran in CI. Meanwhile `.ai/RULES.md` / `AGENTS.md` (via #431) already assert this enforcement exists. This was the priority residual of the AD-030 retirement arc (tracked in `.claude/plans/PENDING-DECISION.md` item 1); it was blocked on #470's lane holding `package.json` and is unblocked now that #470 merged. ## Change (3 lines, package.json only) - `validate:retired-claims` script → `node scripts/check-retired-claims.cjs` - `scripts/check-retired-claims.test.cjs` added to `test:scripts` - Gate inserted at the front of the `validate` chain, right after the size check — it is sub-second, so it fails fast before the heavy steps ## Verification - `node scripts/check-retired-claims.cjs` — OK repo-wide (0 violations) - `node --test scripts/check-retired-claims.test.cjs` — 9 pass / 0 fail - Pre-push gate (typecheck + suite) passed locally 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01LBY5q2MskiKMkTm6NmB49L Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
runyourempire
added a commit
that referenced
this pull request
Aug 17, 2026
…ME (#478) ## The residual this closes npm is the **last surface anywhere still serving retired AD-030 copy**. Timeline: 5.0.1 was published to npm manually at 2026-08-16 **11:01Z** — thirteen minutes before #469 merged the corrected README at **11:14Z**. So the live npm page still carries: - `| Compound intelligence (learns over time) | -- | Yes |` (comparison table) - "…scored content from 20+ sources that **compounds over time**." (FAQ) The repo README has been clean since #469 (`check-retired-claims` verifies it — `mcp-4da-server/README.md` is in the gate's scan set). Publishing current repo state fixes the npm surface. Tracked as item 2/3 of the AD-030 residuals in `.claude/plans/PENDING-DECISION.md`. ## Change (version metadata only, no code) - `package.json` 5.0.1 → **5.0.2** - `server.json` both version fields → 5.0.2 - `.claude-plugin/plugin.json` → 5.0.2 (had been left stale at 5.0.0) - `CHANGELOG.md`: 5.0.1 marked released (it is live on npm), 5.0.2 entry records why this release exists - `src/index.ts` untouched — `SERVER_VERSION` reads package.json at runtime (#409) ## Release plan after merge Tag `mcp-v5.0.2` on the squash commit → `publish-mcp-server.yml` publishes to npm (`NPM_TOKEN`, last exercised successfully on 4.6.5/4.6.6) + MCP Registry via OIDC. The workflow's version-matches-tag check requires exactly this bump. ## Verification - `pnpm run build` clean, `pnpm test` **185/185** - `node scripts/check-mcp-server-sync.cjs` — in sync - `node scripts/check-retired-claims.cjs` — OK (repo README clean) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01LBY5q2MskiKMkTm6NmB49L Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.
AD-030: retire the "gets sharper every day" promise — rebuilt onto current main
Replaces #419, which was CONFLICTING, 31 commits behind, with CI dead since 08-11 (self-hosted runner timeouts). Rather than rebase a 46k-line diff dominated by whole-file locale churn, this PR merges #419's branch onto current
mainand resolves every conflict in favour of main's newer facts. Net diff: 62 files, +848/−677 (vs #419's +23,646/−22,838).Operator decision on record (2026-08-14): the promise is completely retired, on every surface. Decision record:
.ai/DECISIONS.mdAD-030 (in this PR).What this ships
tauri.conf.json), mcp README, RELEASE-NOTES.en(momentum, wisdom, comparison, toolkit…), and porting them would have resurrected orphans.validate-translations: 0 errors, warnings identical to main.anti_topicsremoved from bothbuild_negative_stackcall sites — the last structurally-live behavioral scoring path. NoPIPELINE_VERSIONbump; justification (live probe:anti_topics= 0 rows → byte-identical priors) recorded at the constant.scripts/check-retired-claims.cjs+ 9 tests. Violations on main measured before: 57 across 24 files; after this PR: 2, both in CLAUDE.md (see residuals).site/src/writing/retiring-a-claim-we-could-not-measure.njk— the engineering record, now linked from /writing and the sitemap. Site builds clean (11ty, 127 files).Conflict-resolution calls worth reviewing
apply-translations.cjs,missing-keys.json,BadgeRow.tsxstay deleted (deleted on main since AD-030: retire the gets-sharper-every-day promise + last behavioral scoring path #419's base).Residuals (tracked in
.claude/plans/PENDING-DECISION.md)CLAUDE.mdtagline +package.jsongate wiring — both files are claimed by live peer lanes (docs: five INVARIANTS entries and three security comments describe code that does not exist #466; agent-a875). A follow-up commit on this branch lands the moment the claims release. Until then the gate exists but is not yet wired intovalidate, so CI on this PR does not self-fail on CLAUDE.md.@4da/mcp-serverlive README still serves the old table; needs a republish (different terminal, tagmcp-v5.0.0).wrangler pages deploy --branch mainafter merge.Verification
tsc --noEmitclean, ESLint clean, i18n types regenerate in sync.cargo check --libclean; targeted tests (negative_stack / context / blind_spots) green.🤖 Generated with Claude Code
https://claude.ai/code/session_01MMarGhXjbKyNJzsm3JG1jw