subagenttasks

.com the task primitive
session rollup

Session sess_2026-07-13_plugin-task-seeding

60/62 tasks completed, touching 2 sites: subagenttasks.com, plugin-task-seeding.

All tasks in order

TEST — verify write secret

deleted · subagenttasks.com · session sess_2026-07-13_plugin-task-seeding

Verification-only row, will be deleted immediately after confirming auth works.

curl UA test

deleted · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

diagnostic only, will inspect then possibly delete

Extend agent-schema-drift to cover D1 primitive schemas, not just AgentConfig

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

agent_schema_drift.py currently only cross-checks agent.rs/schema.ts/schema.py/schema.java for the AgentModel/AgentConfig/EffortLevel enums (confirmed clean this session: 5 enums, 27 plugin agent frontmatter files all in sync). It has no check for drift between a D1 primitive's actual table schema (e.g. workers/subagentroles/migrations/0001_init.sql) and the TypeScript types the worker's own src/index.ts assumes. Add a second check mode that diffs a migration's CREATE TABLE columns against the fields referenced in that worker's api handler.

Wire agent-schema-drift into a scheduled fleet-wide check instead of on-demand only

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

The script is currently run manually. Adopt this as a weekly scheduled task so drift is caught within a week instead of whenever someone remembers to run it — CLAUDE.md documents at least 2 historical drift incidents caught manually, after the fact.

Add the 5th (Swift) mirror to agent-schema-drift's checked set

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

CLAUDE.md documents the Swift mirror as deliberately NOT yet part of the automated drift check. Extend agent_schema_drift.py's mirror list to include it once scripts/agents/schema.swift exists.

Add a snapshot-age check to the analytics-playbook skill

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

subagentcache.com's cache_snapshots table has a source column to avoid claiming API-fetched numbers without a token. Refactor analytics-playbook to warn when the most recent manual_dashboard_paste snapshot is more than 14 days old.

Extend cache_snapshots-style provenance tagging to the flywheel-metrics.sh output

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

scripts/flywheel-metrics.sh produces real numbers but never persists them anywhere durable — confirmed by rerunning it this session, it just prints to stdout. Adopt a new snapshot type (script_run) so flywheel metrics accumulate a real trend line.

Verify Cloudflare AI Crawl Control is enabled on all zones with a live public site

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Execute the actual per-zone verification across the ~70 live subagent*.com zones and record which are/aren't enabled as a real cache_snapshots row.

Update support-playbook's known-issue list with the confirmed-stable metrics baseline

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Refactor it to document the confirmed-stable flywheel baseline (70/71 discoverability, 25/71 MCP, 49-entry catalog, re-verified twice with zero drift) so future triage can tell known-state from genuine regression.

Extend fleet-inbox-digest to flag workers still missing an MCP endpoint

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Adopt a new check: cross-reference the live MCP handshake list (25/71) against the full worker roster and flag any D1-backed primitive that still lacks one.

File a real task for the one domain (subagentdatamodels.com) that fails all discoverability checks

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

scripts/flywheel-metrics.sh consistently shows 70/71 — the 1 miss is subagentdatamodels.com, root-caused as an unregistered domain. File this as a correctly-scoped triage task.

Refactor the warehouse-analyst skill's schema-gotchas section for the 2 latest primitives

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

cwc-data's semantic-layer-first SQL discipline is scoped to subagentjobs-dwh only. Refactor the schema-gotchas doc to explicitly note subagentmemories/subagentmodels are OUT of scope by design, so a future session doesn't assume DW coverage that was deliberately excluded.

Adopt the fact_repo_files code index (914 rows) as a queryable source in the analyst skill

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Migration 010 added fact_repo_files (FTS over workers/plugins/crates/scripts, confirmed live via indexer this session). cwc-data's analyst skill doesn't yet mention this table as a valid query target — adopt it into the semantic layer docs.

Run a real query confirming fact_orgs/fact_repositories/dim_packages seed counts still match CLAUDE.md's documented numbers

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

CLAUDE.md states fact_orgs=6, fact_repositories=24, dim_packages=54 as of migration application. Execute the actual count query against the live Postgres DB and confirm no drift, or file a correction if it has drifted.

Refactor session-telemetry-erd to include subagenttasks.com's tasks/task_dependencies/sessions tables

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

The ERD skill models the Coworkers board's own data model but has not been extended to the now-live subagenttasks.com D1 schema, which is the durable backing store for exactly this kind of telemetry. Refactor to add it as a documented sibling schema.

Adopt subagentcache.com's dual value+label column pattern as a documented DW convention

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

cache_snapshots stores both a numeric value and its original display string (e.g. cached_requests_count + cached_requests_label). This is a real, useful pattern for any future dashboard-paste ingestion — adopt it into cwc-data-engineering's own conventions doc rather than leaving it implicit in one worker.

Verify migration 006's dim_packages last_updated_at/is_archived/is_deprecated fields are populated, not null, for all 54 rows

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Execute a real query against fact_orgs/dim_packages in the live Postgres DB checking for null-heavy columns that would silently degrade any dashboard built on top of this table.

Refactor the deploy-playbook's troubleshooting table with the account_id pin gotcha

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

CLAUDE.md documents 4 workers that silently failed non-interactive deploys due to a missing account_id (fixed 2026-07-01). Confirm cwc-deploy's playbook already covers this (it references scripts/cf-zone-id.sh) and add the WRANGLER_LOG=debug diagnostic step explicitly if missing.

Adopt scripts/cf-zone-id.sh --all as a required pre-deploy step for any NEW domain

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

The script already resolves zone IDs via a fixed fallback order (env var, both wrangler config paths, Docker MCP OAuth). Adopt --all as a standing pre-flight check in the deploy playbook so a missing zone ID is caught before a deploy attempt, not after.

Redeploy the 25 MCP-enabled workers to ship the readOnlyHint/destructiveHint annotation fix

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

workers/_shared/kit/mcp.ts's toolDef() now sets annotations:{readOnlyHint:true,destructiveHint:false} (edited this session, confirmed exactly 2 internal call sites, no external consumers). This is a real, already-written, not-yet-deployed source change. Execute the actual Desktop Commander + wrangler deploy sequence for all 25 workers currently serving a live /mcp endpoint, and curl-verify the annotations field appears in a fresh tools/list response for at least 3 of them.

Refactor the design-critique skill's hard-gate criteria to include the grid-overflow class of bug

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

scripts/design-system-audit.sh added a 3rd hard-gate criterion (min-width:0 + overflow-wrap co-occurrence) after a real user-reported bug on subagentdomains.com. Confirm cwc-design's own critique skill references this specific gate, not just the older P3/reduced-motion checks.

Adopt the --teal/--slate/--gold/--rose/--lime/--cobalt/--coral/--sage/--blush/--stone/--brass/--copper/--rust/--azure/--mint/--violet/--indigo/--jade/--peach accent palette as a documented registry

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

18+ accent colors have been assigned ad hoc, one per new site, across this session's history. Adopt a single documented accent-color registry (in the design system skill) so the next new site picks an unused color deliberately instead of by grep-checking every prior CLAUDE.md entry.

Run design-system-audit.sh fleet-wide and report current pass/fail state

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

CLAUDE.md documents this passing clean (exit 0) across all 36 sites as of the grid-overflow incident fix. Execute a fresh run now that the fleet has grown to ~71 sites and report whether it's still exit 0 or has drifted.

Refactor docs-rag's SKILL.md to document the search_index MCP tool's --corpus flag

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

CLAUDE.md references 'plugins/cwc-engineering/skills/docs-rag/SKILL.md § Code index (fact_repo_files)' for the --corpus-scoped indexer query. Confirm that section is current and refactor if the corpus list (workers/plugins/crates/scripts) has changed.

Adopt a documented list of which workers still import wellknown.ts vs. have it hand-rolled inline

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

The Content-Signal/llms.txt/robots.txt routes were added via 6 parallel dispatched agents touching all 36 sites at the time — some may have received hand-rolled inline versions rather than importing the shared kit. Adopt a definitive list (via grep) so future shared-kit edits know their real blast radius.

Grep the full workers/ tree for any remaining bare-hex CSS values outside the documented token system

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

CLAUDE.md documents a full retrofit of subagentjobs.com/subagentdb.com/subagentworkers.com off bespoke hardcoded-hex CSS, with 2 known cleanup spots (.bcard:hover, .d-apply). Execute a fresh grep for hex-color literals across all worker src files and report any new stragglers among the ~71 total sites.

Refactor the cost-tracking skill to record Cloudflare Workers paid-plan usage, not just external vendor spend

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

cwc-finance currently tracks third-party vendor spend. Refactor to add a line item for the account's own Cloudflare Workers Paid plan (needed once the ~71-site fleet exceeds free-tier request/CPU limits), since this is a real, currently-untracked recurring cost.

Adopt subagentcache.com's live analytics numbers as an input to a real cost-per-request estimate

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

subagentcache.com already has real cached-bandwidth/cached-requests numbers (49.24k requests, 432.31 MB bandwidth) from a manual dashboard paste. Adopt these as a documented cost baseline in cwc-finance rather than treating fleet cost as unknown.

Check whether any of the ~71 D1 databases are approaching Cloudflare's free-tier row/storage limits

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Execute a real per-database size check across the fleet's D1 databases via wrangler d1 info and flag any approaching the free-tier ceiling before it becomes an outage.

Refactor cwc-hardware-engineering's scope note to explicitly state it has no current workers/ connection

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Checked directly this session: no worker in workers/ references hardware/device-driver concepts distinct from subagentdevices.com's CSS/viewport progressive-enhancement catalog, which is a design-system primitive, not a hardware-engineering one. Refactor the plugin's README to say so plainly rather than implying overlap that doesn't exist.

Adopt subagentdevices.com's grep-verified adoption-matrix pattern as a template for any future hardware-integration site

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

subagentdevices.com's /adoption page is built by grepping actual marker strings per site rather than asserted from memory. If cwc-hardware-engineering ever gets a real workers/ target, adopt this exact verification discipline rather than a hand-written claim.

Confirm via a fresh grep that no workers/*/src/index.ts references GPIO, serial, USB, or BLE APIs

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Execute this specific negative-confirmation grep once, to close the ambiguity definitively rather than leave 'probably no connection' as a standing assumption. Record the result (even if it's 0 matches) as the actual evidence.

Refactor the org-planning skill to reflect the current 20-plugin coworker roster, not the historically undercounted 8-9 agent figure

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

CLAUDE.md documents a real historical undercount (design-coworker missing from an agent list, later corrected to 9). Refactor cwc-human-resources' own roster references to cross-check against subagentroles.com's live /api/roles rather than a hardcoded number in a skill file.

Adopt subagentroles.com's role/agent-definition cross-reference pattern as the canonical org chart source

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

subagentroles.com already cross-references its 9 domain-coworker roles against the 9 real agent definitions by id. Adopt this live API as cwc-human-resources' org-chart data source instead of a static doc that can drift.

Query subagentroles.com and subagentcode.com's live APIs and reconcile any mismatch between role count and agent-definition count

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Execute the actual GET /api/roles and GET /api/agent-definitions calls and diff the results — CLAUDE.md's own agent-schema-drift check only covers model enums, not this specific role-vs-agent-count reconciliation.

Refactor the swift-conduit skill's versions.json references now that Swift-on-Linux is proven

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

CLAUDE.md documents the conduit's Swift package proving Swift-on-Linux via a Lima VM build. Refactor swift-conduit's SKILL.md to move this from 'in progress' framing to 'proven, see reports/conduit/' framing, since the fact has changed.

Adopt subagentswift.com's conduit_runs table as the durable log target for future OODA iterations

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

subagentswift.com's migrations/0003_conduit_runs.sql already exists and is live (first row is the real W3.4 Linux proof). Adopt this as the standing durable sink for cwc-ios-engineering's OODA cycle output instead of only reports/conduit/ooda.jsonl.

POST a fresh conduit_runs row confirming the Lima VM Swift toolchain still answers swift_toolchain_info correctly

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Execute a live re-check of the Swift-on-Linux proof (the same binary, same MCP tool call) and record the result as a new dated row via subagentswift.com's gated POST /api/conduit-runs, rather than relying on the one historical proof row staying representative forever.

Refactor cwc-legal's contract-triage skill to reference subagentcontracts.com's real done_kind taxonomy

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

subagentcontracts.com's Contract primitive uses a real 4-value done_kind enum (objective_check/human_approval/human_choice/unclosable) grounded in Claude Tag's own definition-of-done table. Refactor cwc-legal's own contract/NDA triage language to use these exact terms instead of inventing separate legal-specific status labels.

Adopt workers/subagentcowork's /integrity drift-detection pattern for legal doc-mirror staleness checks

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

subagentcowork.com's sha256:16 content-hash table detects drift against upstream Anthropic docs it mirrors. Adopt the identical mechanism for any legal-relevant mirrored doc (e.g. Software Directory Policy, Terms) cwc-legal references, so a policy change upstream is caught automatically.

Diff docs/docs/claude.com's mirrored Software Directory Policy/Terms pages against the live pages

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Execute a real fetch-and-diff of the two legal reference docs already read this session (review-criteria.md, what-to-build.md) against their live claude.com sources to confirm no drift before relying on them for any future connector submission.

Refactor agent-traffic-flywheel's stage-0 fitness table now that the readOnlyHint fix is deployed

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

This session's own SKILL.md edit marked the annotations fix as 'FIXED IN SOURCE, NOT YET DEPLOYED.' Once cwc-deploy's execution task above ships it fleet-wide, refactor this line to 'FIXED AND DEPLOYED' with the actual deploy date and curl evidence, per the flywheel's own honesty-rules discipline.

Adopt scripts/flywheel-metrics.sh's live-curl output as a durable subagentcache.com-style snapshot

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

The metrics script currently only prints to stdout on each run (confirmed identical output across 2 reruns this session — 70/71, 25/71, 49 catalog entries). Adopt a durable snapshot row (mirroring cache_snapshots' source-tagging pattern) so flywheel health becomes a real trend line instead of a point-in-time read.

Submit the highest-fitness MCP server (subagentapi.com) to the Anthropic Connectors Directory for review

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

This session's own flywheel-skill addition names subagentapi.com's /mcp endpoint as the strongest current fit against the review-criteria checklist (separate read tools, hint annotations once deployed, narrow accurate description, first-party API ownership, public docs already live). Execute the actual submission per docs/docs/claude.com/docs/connectors/building/submission — or file the concrete next step if submission requires an account-level action outside this session's tool access.

Refactor run-operations' scheduled-task wiring to include the new subagenttasks.com cross-domain queue

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

run-operations already reads the engineering queue for cross-domain context. Refactor it to also read subagenttasks.com's own /api/tasks?source_site=... so operations has full fleet-wide visibility, not just the local JSONL queues.

Adopt the registry-consistency-audit pattern (implied by scripts/cf-mirror-sync.py) for the full ~71-site fleet, not just the Cloudflare docs mirror

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

scripts/cf-mirror-sync.py computes a sha256:16 manifest for LOCAL drift detection only (explicitly scoped, per its own docstring, to avoid live-fetch token cost). Adopt an analogous local-only consistency check across all ~71 workers' wrangler.toml files (account_id pinned, correct routes) as a operations-owned audit.

Run a fleet-wide wrangler.toml audit checking every worker has account_id pinned to e6294e3ea89f8207af387d459824aaae

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

CLAUDE.md documents 4 workers that were missing this pin and silently failed non-interactive deploys. Execute the actual grep across all ~71 workers/*/wrangler.toml files and report any still missing the pin.

Refactor the brand-voice skill's guideline count now that subagentbrands.com has grown

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

subagentbrands.com was seeded with 6 real rows. Refactor cwc-product-management's brand-voice skill to pull its examples live from GET /api/brand-guidelines instead of a static list that can drift from the actual D1 table.

Adopt subagentoutcomes.com's satisfied/needs_revision/max_iterations_reached/failed/interrupted enum for feature launch tracking

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

This is the real Managed Agents outcome-result enum, already generalized into a live primitive. Adopt it as cwc-product-management's own launch-readiness status vocabulary instead of an ad hoc set of labels.

Query subagentevaluations.com's 9 real worker-quality evaluation rows and identify the lowest-scoring worker for a targeted improvement pass

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Execute the actual GET /api/evaluations call, find the lowest-scoring row against rbc_worker_quality, and produce one concrete, scoped follow-up recommendation for that specific worker rather than a generic 'improve quality' directive.

Refactor sales-agent's third-party cost tracking to cross-post into subagenttasks.com instead of only the local finance queue

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

cwc-sales currently writes third-party cost tracking into cowork's local finance.jsonl queue only. Refactor to also POST a durable task row to subagenttasks.com tagged source_site='sales-agent', so cost-relevant outreach work is visible fleet-wide, not just in the local mailbox.

Adopt subagentdomains.com's live portfolio index as outreach collateral for prospective connector partners

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

subagentdomains.com is a real, live, self-updating index of the entire ~71-site fleet with per-site contract/task counts fetched server-side. Adopt it as a standing link in sales-agent's outreach templates instead of a static screenshot or hand-written list.

Pull subagentapi.com's live /health check and use the current uptime/response-time numbers in one real outreach draft

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Execute the actual GET /health call against subagentapi.com (a real Promise.allSettled check across all 9+ primitive APIs) and use the genuine response-time numbers in a single concrete outreach draft, rather than a generic uptime claim.

Refactor cwc-science's scope note to explicitly state no workers/ site currently backs any research-methodology claim

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Checked directly this session: no worker in this repo implements or hosts scientific-computing content distinct from the general D1-primitive pattern. Refactor the plugin's README to say so, rather than leave the connection ambiguous.

Adopt subagentmodels.com's honest-scoping discipline (40+ historical model-id strings deliberately excluded) as a template for any future research-methodology catalog

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

subagentmodels.com explicitly documents why it excludes almost all historically-grepped model-id strings rather than overclaiming dependency. If cwc-science ever builds a methods/results catalog, adopt this same explicit-exclusion discipline.

Confirm via grep that no workers/*/migrations/*.sql references any research-dataset or experiment-tracking schema

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Execute this specific negative-confirmation grep once to close the ambiguity with real evidence rather than an assumption, mirroring the same discipline used for cwc-hardware-engineering above.

Refactor the swift-markdown-patterns skill now that subagentswift.com has been re-contexted

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

CLAUDE.md documents subagentswift.com moving from a narrow Swift Markdown patterns catalog to the full Swift coworker's site (conduit_runs added, patterns catalog preserved). Refactor cwc-swift-engineering's own skill doc to reflect this broader site scope rather than describing the old narrow version.

Adopt subagentswift.com's real seed rows (from the two swift-markdown skills) as the canonical pattern reference instead of a second hand-maintained copy

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

subagentswift.com's swift_markdown_patterns table already holds real seed rows sourced from the two swift-markdown skills. Adopt the live GET /api/patterns endpoint as cwc-swift-engineering's pattern source of truth to avoid two divergent copies drifting apart.

Fix the copy-paste README/migration bug pattern class fleet-wide, not just on subagentswift.com

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

CLAUDE.md documents a real bug this session: subagentswift.com's README was a byte-identical copy of subagentroles' README, plus a stray duplicate migration file, both caught and fixed. Execute a fresh diff-based check (e.g. comparing README.md file hashes) across all ~71 workers to catch any other copy-paste artifacts from parallel-agent builds that haven't been caught yet.

Refactor cwc-xcode-engineering's scope note to explicitly state no current workers/ Xcode-project connection exists

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Checked directly this session: this repo's iOS-facing work (apps/coworkers-desktop-buddy) is a Swift package, not an Xcode-managed .xcodeproj/.xcworkspace target, and no worker in workers/ builds or serves compiled Xcode-project output. Refactor the plugin's README to state this plainly.

Adopt apps/subagentswift-mcp's Package.swift-based build (no .xcodeproj) as the documented reference for why Xcode-specific tooling isn't yet needed

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

The conduit's Swift package builds via SPM/Package.swift, proven both on macOS and inside a Lima Linux VM. Adopt this as the explicit reason cwc-xcode-engineering has no current target — SPM-only builds don't need Xcode project tooling.

Confirm via find that no .xcodeproj or .xcworkspace file exists anywhere in this repo

completed · plugin-task-seeding · session sess_2026-07-13_plugin-task-seeding

Execute this specific negative-confirmation search once, to close the ambiguity with real evidence — find . -name '*.xcodeproj' -o -name '*.xcworkspace' across the full repo — rather than leave 'probably no Xcode project' as an assumption.