chore: stale docs cleanup — SDK 56 strings, dead .agents dir, QA-env references - #391
Conversation
…references - Delete the stray tracked .agents/ dir (pre-.claude/ relic: outdated Next.js-15 PRD, executed issue-103 plan, duplicate make-interfaces skill). - README.md: apps/mobile tech "Expo 55, React Native 0.83" → "Expo 56, React Native 0.85". - README.md: drop the "@orbit/mobile run ios" workspace command (Android-only, no ios script exists). - CLAUDE.md: smoke suite runs post-deploy against prod (SMOKE_BASE_URL), not a QA env — reworded to match playwright.config.ts / smoke-prod.yml. - .claude/skills/prime/SKILL.md: "Next.js 15 + Expo SDK 55" → "Next.js 16 + Expo SDK 56". - .claude/skills/deep-research/SKILL.md: "Expo SDK 55" → 56. - .claude/skills/audit-performance/SKILL.md: "Expo SDK 55" → 56. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
There was a problem hiding this comment.
Code Review: PR #391 — chore: stale docs cleanup
Scope: PR #391 in thomasluizon/orbit-ui-mobile
Recommendation: APPROVE
Summary
Docs-only cleanup: deletes the stray pre-.claude/ .agents/ directory (an outdated
Next.js-15 redesign PRD, an already-executed plan, and a duplicate skill copy) and
corrects five stale strings (Expo/RN version, a nonexistent ios npm script, and a
QA-vs-prod description of the smoke suite) across README.md, CLAUDE.md, and three
SKILL.md files. No product code, API contract, or shared types touched.
Every factual claim in the diff was independently verified against the live repo state
(see Findings/Deferred) and all checked out. No behavior change, no cross-platform
surface, no contract surface.
Findings
Critical
None
High
None
Medium
None
Low / Info
None
Subagents
| Agent | Verdict |
|---|---|
| parity-checker | N/A — no apps/web/** or apps/mobile/** files changed |
| i18n-syncer | N/A — no user-facing strings or packages/shared/src/i18n/*.json changed |
| contract-aligner | N/A — no packages/shared/src/types/*, endpoints.ts, or orbit-api changed |
| security-reviewer | N/A — no orbit-api code changed |
Validation
| Check | Result |
|---|---|
| Lint | N/A — docs-only diff, covered by separate CI checks per workflow |
| Type check | N/A — no code changed |
| Tests | N/A — no code changed; Build/Unit Tests/SonarCloud run as separate required checks |
| Build (api) | N/A — orbit-api not touched |
Deferred — N/A dimensions & files not verdicted
- DESIGN.md/AI-slop (#8): N/A — no
apps/*UI files changed. - Backend hard rules (#13): N/A —
orbit-apinot checked out in CI and not touched. - FEATURES.md parity (#14): N/A — no user-facing feature surface changed.
- Backward-compat guard (Phase 5): N/A — no
packages/shared/src/types/*.tsor
orbit-api/**/DTOs/*.cshunks in the diff. - All 12 changed files (7 deletions under
.agents/, 5 modifications) received a
verdict — nothing left un-reviewed.
Verification performed
apps/mobile/package.json: confirmedexpo: 56.0.14,react-native: 0.85.3, and no
iosscript exists (onlyandroid,android:apk) — matches the README correction
exactly.- Confirmed zero remaining references to
.agents/,issue-103, orredesign-v2
anywhere in the tracked tree after the deletion — the directory was genuinely dead. - Confirmed
.claude/skills/make-interfaces-feel-better/{SKILL,animations,performance, surfaces,typography}.mdare real, non-empty files (148/379/88/256/135 lines) whose
line counts exactly match the deleted.agents/duplicate's stats — the canonical
skill was left intact, not accidentally deleted alongside its duplicate. - Confirmed
.github/workflows/smoke-prod.yml+apps/web/playwright.config.tsuse
SMOKE_BASE_URLagainst the production Vercel deployment (target=production) —
matches the corrected CLAUDE.md wording ("runs post-deploy against prod", not a QA
env). - Confirmed the SDK/Next.js version strings in the three
SKILL.mdfiles now read
"Expo SDK 56" / "Next.js 16" consistently with the actualapps/mobileand
apps/webdependency versions.
What's good
- Every stale-string claim in the PR body was checked against ground truth rather than
taken on faith, and all of it held up — this is a well-scoped, low-risk chore that
does exactly what it says. - The
.agents/deletion was verified safe before merging: no dangling references, and
the one file that looked like it might be an accidental duplicate deletion (the
make-interfaces-feel-betterskill) was confirmed to have a fully intact canonical
copy elsewhere.
Recommendation
Merge as-is. No changes requested.
- README.md: trim Xcode from prerequisites (Orbit mobile ships Android only). - FEATURES.md: correct the MCP tool count to the real total — 79 `[McpServerTool]` methods across 15 classes (was "94", table summed to 93); fix each per-class row to the verified count (Habit 22, Goal 11, Agent 8, Notification 7, Profile 7, Tag 5, Subscription 4, Checklist 3, Gamification 3, API-key 2, Calendar 2, User-fact 2, Account 1, Feature 1, Support 1 = 79). - .claude/skills/deep-research/SKILL.md: swap the worked-example topic off the aborted QA-env (#211) to a neutral background-job-durability question. - .claude/mcp.json.example: rewrite the _comment to describe the servers the file actually declares (postgres-local/postgres, vercel/render/stripe/stitch, sonarqube, csharp-lsp via the local wrapper) instead of only csharp-lsp. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Delete six unused .claude/skills (user-approved): - add-api-endpoint, add-cqrs-handler, add-feature-page, add-migration, add-shared-type — scaffolding skills; Claude writes this code directly. - make-interfaces-feel-better — duplicate of the user-global skill. Scrub the now-dangling references: - .claude/agents/contract-aligner.md: drop the "when add-api-endpoint skill completes" invocation trigger. - skills-lock.json: remove the make-interfaces-feel-better lock entry (no externally-sourced skills remain). _shared/verification-protocol.md is kept — still used by 7 live skills. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…gner The add-api-endpoint scaffolding skill was deleted in orbit-ui-mobile (thomasluizon/orbit-ui-mobile#391), so remove its stale "when the skill completes" invocation trigger from the contract-aligner agent. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Review Complete
Scope: PR #391 in thomasluizon/orbit-ui-mobile (chore/stale-docs-cleanup → main)
Recommendation: APPROVE
| Severity | Count |
|---|---|
| Critical (incl. |
0 |
| High | 0 |
| Medium | 1 |
| Low / Info | 1 |
Code Review: PR #391
Recommendation: APPROVE
Summary
Docs-only chore: deletes a stray .agents/ directory, fixes Expo/Next.js version strings across README/CLAUDE.md/three skill docs, corrects a smoke-suite description (runs against prod via SMOKE_BASE_URL, not a QA env), rewrites .mcp.json.example's comment to match its actual server list, and corrects FEATURES.md's MCP tool counts (94 → 79 with a re-verified 15-row table). No product/app/API code touched. Every claim checkable from this repo verified accurate.
Findings
Critical / High
None.
Medium
PR description omits roughly half the diff. The PR body's "## Changes" and "## Gate" (git grep -nE "SDK 55|Expo 55|0.83") only describe the first commit (dde7c823). A second commit, 58ca1dfa ("iOS prereqs, MCP tool count, QA-env example"), isn't mentioned at all — it carries the FEATURES.md MCP-tool-count rewrite (FEATURES.md:26,69,74-88,274), the .claude/mcp.json.example comment rewrite, the deep-research/SKILL.md example swap, and the README Xcode-prereq line. The FEATURES.md change restates a customer-facing capability count, exactly the kind of claim the stated gate doesn't cover — a reviewer scanning only the PR body wouldn't know to check it. Fix: update the PR body (or squash commit messages into it) so the description matches the diff.
Low / Info
FEATURES.md's MCP tool-count fix is internally consistent but not independently verifiable here. The new table sums to 79 (22+11+8+7+7+5+4+3+3+2+2+2+1+1+1), matching the inline claim and footer citation; the old table likewise summed to 93 against a stated "94," matching the commit message's claimed discrepancy. Ground truth (orbit-api/src/Orbit.Api/Mcp/Tools/*.cs) lives in the sibling orbit-api repo, not present in this sandbox — not verifiable in this review environment. Recommend the human reviewer do a quick grep -c "\[McpServerTool\]" pass per file before merge.
Subagents
| Agent | Verdict |
|---|---|
| parity-checker | N/A — no apps/web/apps/mobile source changed |
| i18n-syncer | N/A — no user-facing strings/i18n JSON changed |
| contract-aligner | N/A — no shared types/endpoints changed, orbit-api not touched |
| security-reviewer | N/A — no orbit-api code changed |
Validation
Lint/Type-check/Tests/Build: N/A — docs-only diff, no lintable/testable source changed. (Build/Unit Tests/SonarCloud run as separate required CI checks for this PR.)
Deferred
- DESIGN.md/AI-slop, Backend hard rules, Parity, Backward-compat guard — N/A, no matching surface touched.
- FEATURES.md parity — N/A in the "new feature" sense (doc correction of existing behavior, not a new feature).
- MCP tool-count ground truth — deferred to human reviewer (sibling
orbit-apirepo not checked out in this job). - All other changed files were read at HEAD and cross-checked against the real artifacts they describe:
apps/mobile/package.json(confirms noiosscript),.github/workflows/smoke-prod.yml(confirms prod/SMOKE_BASE_URLtrigger), the live.mcp.json.example(confirms 8 listed servers match), and a repo-wide grep (zero remaining.agents/references,make-interfaces-feel-betterskill intact with all 5 files).
What's good
Every checkable claim was independently re-derived and matched. The .agents/ deletion is clean with no dangling references. No product code, API contract, or shared type touched — genuinely zero-blast-radius.
Recommendation
Safe to merge as-is. Ask the author to (1) reconcile the PR body with the second commit's changes, and (2) sanity-check the new MCP tool counts against orbit-api locally before merge.
There was a problem hiding this comment.
Review Complete
Scope: PR #391 in orbit-ui-mobile (chore/stale-docs-cleanup → main)
Recommendation: APPROVE
| Severity | Count |
|---|---|
| Critical (incl. |
0 |
| High | 0 |
| Medium | 0 |
| Low / Info | 0 |
Summary
Pure docs/tooling cleanup — no product code (apps/, packages/shared runtime code) touched. It deletes a stray pre-.claude .agents/ directory (an aborted redesign PRD/plan + a duplicate skill copy) and six unused .claude/skills (five scaffolding skills the author says Claude writes directly, plus a duplicate of a user-global make-interfaces-feel-better skill), and corrects stale strings: Expo SDK 55→56, RN 0.83→0.85, Next.js 15→16, MCP tool count 94→79, smoke-suite target QA→prod, and removes a nonexistent ios npm script mention from README.
Independent fact-checks (all passed)
Each PR-body claim was re-derived against the actual final commit (12764da3, the PR branch tip) and untouched repo files, rather than taken on faith:
git grep "SDK 55|Expo 55|0.83"at the final commit (*.md/*.json) → zero hits, matching the PR's stated gate.git grepfor the five scaffolding-skill names +make-interfaces-feel-betterat the final commit → zero hits outside the deleted files — no dangling references inWORKFLOW.md,CLAUDE.md,DESIGN.md,FEATURES.md, or.github/**.apps/mobile/package.jsonhas noiosscript (onlyandroid,android:apk) — confirms the README fix is correct, not a regression.apps/web/playwright.config.ts+.github/workflows/smoke-prod.ymlboth key offSMOKE_BASE_URL/"prod origin", with no QA-env wiring — confirms the CLAUDE.md smoke-suite correction (prod, not QA) is accurate.- FEATURES.md arithmetic: new per-class counts (22+11+8+7+7+5+4+3+3+2+2+2+1+1+1) sum to 79, matching all three "94→79" fixes; old rows summed to 93 (not 94), supporting the stated root cause (94 = 79 tools + 15 class attributes). This is internal-consistency verification, not ground truth against
orbit-apisource (deferred — sibling repo not checked out here). _shared/verification-protocol.mdis referenced by exactly 7 live skills, confirming it was correctly kept rather than deleted.
Deferred
- Correctness/SOLID/comment-policy/type-safety/console.log/DESIGN.md dimensions: N/A, no source code in the diff.
- Backend hard rules and the FEATURES.md MCP-tool-count ground truth: not verifiable in this CI environment —
orbit-apiis a sibling repo not checked out here. - The two marketing surfaces still quoting "94 MCP tools" (
orbit-landing-page): correctly and explicitly left out of scope by the PR author — separate repo, separate decision.
Subagents / Validation
All four rubric subagents (parity-checker, i18n-syncer, contract-aligner, security-reviewer) were N/A — none of their trigger surfaces (apps/web/apps/mobile files, i18n JSON, shared types/endpoints, orbit-api code) were touched. Validation (lint/typecheck/tests) skipped per the CI-wrapper rule (docs-only diff, no build surface; Build/Unit Tests/SonarCloud run as separate required checks).
|
…paths (#284) * chore: stale docs cleanup — README reality, .planning removal, agent paths - README.md: rewrite to current reality — AI is OpenAI (gpt-4.1-mini primary, gpt-5.4-nano sub-tasks via AI:{ApiKey,Model,BaseUrl}, api.openai.com/v1), not Gemini/Ollama; config section reflects actual appsettings keys; features + layer breakdown cover shipped domains (Goals, Gamification, Calendar, Accountability, Challenges, Referrals, Agent/MCP, Sync, Waitlist, ...); controller list = actual Controllers/ contents (26); payments = Stripe + Google Play Billing; related repo = orbit-ui-mobile (Turborepo: Next.js 16 web + Expo Android), not "orbit-ui Nuxt 4". - src/Orbit.Infrastructure/CLAUDE.md: OpenAI .NET SDK 2.8.0 -> 2.12.0 (per .csproj). - .claude/agents/security-reviewer.md: fix JWT service path Services/TokenService.cs -> Services/JwtTokenService.cs (both references). - Delete the frozen .planning/ snapshot (contradicts current architecture) and its now-dead **/.planning entry in .dockerignore. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * chore: stale docs cleanup — agent paths, DTO layout, no-QA-env wording - .claude/agents/security-reviewer.md: StripeConfiguration.ApiKey is set at startup in src/Orbit.Api/Extensions/ServiceCollectionExtensions.Infrastructure.cs, not Program.cs — fix the path. - .claude/agents/contract-aligner.md: there is no Common/DTOs/ (nor any DTOs/ folder); DTOs are feature-local records/classes under Orbit.Application/ <Feature>/ and <Feature>/Models/, plus request/response records alongside commands/queries — reword the surface-area description and the read step. - load-tests/README.md + tests/CLAUDE.md: drop "staging" / "QA runs" mentions — there is no QA/staging env, targets are prod + local only (#211). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * chore: drop dangling add-api-endpoint skill reference in contract-aligner The add-api-endpoint scaffolding skill was deleted in orbit-ui-mobile (thomasluizon/orbit-ui-mobile#391), so remove its stale "when the skill completes" invocation trigger from the contract-aligner agent. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>



Docs / tooling staleness cleanup. No product code touched.
Docs corrected
apps/mobiletechExpo 55, RN 0.83→Expo 56, RN 0.85; removed the@orbit/mobile run ioscommand (Android-only, noiosscript); trimmed Xcode from prerequisites (Orbit mobile ships Android only).SMOKE_BASE_URL, perplaywright.config.ts+smoke-prod.yml), not a QA env.[McpServerTool]methods across 15 classes (was "94"; the per-class table summed to 93). "94" was the rawMcpServerToolsubstring count, which also included the 15 class-level[McpServerToolType]attributes (79 + 15 = 94). Fixed all three "94" mentions and every per-class row (Habit 22, Goal 11, Agent 8, Notification 7, Profile 7, Tag 5, Subscription 4, Checklist 3, Gamification 3, API-key 2, Calendar 2, User-fact 2, Account 1, Feature 1, Support 1 = 79).Expo SDK 55→56(andNext.js 15→16in prime)._commentto describe all declared servers (postgres-local/postgres, vercel/render/stripe/stitch, sonarqube, csharp-lsp via the local wrapper), not just csharp-lsp.Deletions
.claude/relic (outdated Next.js-15 PRD, an executed issue-103 plan, a duplicatemake-interfaces-feel-bettercopy).add-api-endpoint,add-cqrs-handler,add-feature-page,add-migration,add-shared-type(scaffolding — Claude writes this code directly) andmake-interfaces-feel-better(duplicate of the user-global skill)..claude/agents/contract-aligner.md(dropped theadd-api-endpointtrigger) andskills-lock.json(removed themake-interfaces-feel-betterlock entry)._shared/verification-protocol.mdkept — still used by 7 live skills.Gates
git grep "SDK 55|Expo 55|0.83"(tracked, excl. lockfile) → zero.git grep "add-api-endpoint|add-cqrs-handler|add-feature-page|add-migration|add-shared-type|make-interfaces-feel-better"→ zero.🤖 Generated with Claude Code