[test] AIN-243 W6: grep-gate for retired ATS/AAMC/TrustScore terms#92
Conversation
W6/9. Methodology v1.2 reconciliation: ATS + AAMC retired 2026-05-22
as methodologies. The 5 frontier models survive as routing BACKENDS
(not voters); v0 Build Spec (q_prior + q_empirical) is the shipped
objective. This test fails CI if those terms regress into live code.
ALLOWED in source (skipped by the strip-comments pre-pass):
- Historical comments documenting the retirement
- Migration scripts under scripts/ (time-capsule artifacts)
- Test files asserting the retirement state
FORBIDDEN (the test asserts these are zero):
- ATS/AAMC/TrustScore as non-comment tokens in
ainfera_api/{routers,services,models}/**/*.py
- Words appear in OpenAPI summaries, response model field names,
or any user-facing string literal
Current state (post-prior cleanup work):
- api/ live code: 2 references, both in stats.py docstrings noting
the retirement (allowed)
- api/ scripts/: 50+ refs in historical migration scripts (allowed)
- web/ marketing: 1 ref in Footer.tsx comment documenting AIN-243
retirement (allowed)
- Test PASSES.
If a future change reintroduces these terms in live router/service/
model code, CI fails with a remediation hint pointing at AIN-243.
Refs: AIN-243 · methodology v1.2 · 2026-05-22 retirement
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
AIN-243 [Cleanup] Retire ATS/AAMC from code + public site — specs, SDK, MCP, CLI, API, marketing (Notion canon already done)
ATS and AAMC were RETIRED as methodologies 2026-05-22 (founder decision — focus on Routing + Ontology only, post "Inference for AI Agents" pivot). The Notion canon is updated, but ATS/AAMC are still wired through LIVE CODE + the public website. This ticket tracks the code/product cleanup so a future Claude Code session does it deliberately — NOT a silent find-replace, because some of it is shipped product that currently sells these. Why this mattersA future Claude Code session reading the repos (not just Notion) will see ATS/AAMC as live and may extend them. The retirement isn't real until the code + public surfaces reflect it. Footprint found (2026-05-22 scan)Public website (ainfera-ai/web) — PRODUCT DECISION, do first:
Specs repo (ainfera-ai/specs):
SDK (ainfera-ai/sdk / ainfera_sdk):
MCP server (ainfera-ai/mcp-server):
CLI (ainfera-ai/...):
API (ainfera-ai/api):
agents/tulkas/runner.py:
What is NOT in scope (leave alone)
Acceptance criteria
ReferencesNotion canon updated 2026-05-22: ATS page + AAMC page SUPERSEDED-headed; old "🧬 27 Ontology v1.0" + "L2 Routing" + "Varda Manual" banner-guarded; Ontology v1.2 + Delivery Index are live canon. |
Refs: AIN-243 W6 follow-up Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is ON. A cloud agent has been kicked off to fix the reported issue.
Reviewed by Cursor Bugbot for commit 490cec5. Configure here.
| offenders.append((path, matches)) | ||
|
|
||
| if offenders: | ||
| details = "\n".join(f" - {p.relative_to(p.parents[3])}: {set(m)}" for p, m in offenders) |
There was a problem hiding this comment.
p.parents[3] causes IndexError in shallow repo paths
Low Severity
p.parents[3] assumes all matched file paths have at least four ancestor directories, but this depends on the absolute location of the repository. For ainfera_api/main.py in a shallow repo root like /app (common in Docker CI), the path /app/ainfera_api/main.py has only three parents, so parents[3] raises IndexError. Even when it doesn't crash, the index gives inconsistent relative paths for files at different depths. Using p.relative_to(repo_root) (passing repo_root out of _iter_live_files) would be correct.
Reviewed by Cursor Bugbot for commit 490cec5. Configure here.


Methodology v1.2 retirement gate. Live code is already clean (prior cleanup work). This test prevents regression: ATS/AAMC/TrustScore are forbidden as non-comment tokens in routers/services/models. Currently PASSES. Comments + scripts/ time-capsules are allowed.
Note
Low Risk
Test-only change with no runtime or API behavior impact; it enforces naming hygiene on already-clean live code.
Overview
Adds a CI grep-gate (
tests/smoke/test_ats_aamc_retired.py) so retired methodology labels ATS, AAMC, and TrustScore cannot reappear in live API surfaces.The test walks
ainfera_apirouters, models, services, andmain.py, strips comments and docstrings, then fails if those terms appear as real code (identifiers, string literals, response fields). Historical comments andscripts/are out of scope; the intent is to block regressions in OpenAPI and responses after methodology v1.2 retirement (AIN-243).Reviewed by Cursor Bugbot for commit 490cec5. Bugbot is set up for automated code reviews on this repo. Configure here.