RSS Amplifier

Signal Over Noise — by Doneyli · Aug 22, 2026

I went all in on Claude. That wasn't the mistake.

0
Sign in to vote or save

Doneyli De Jesus · Signal Over Noise — by Doneyli

This is a Build Log. Follow along to get the steps for building it yourself.

Two hours and twelve minutes. On Tuesday afternoon, August 18, that is how long I had no working access to Claude. Every request came back an error, and the agents I run my week on went quiet mid-task.

The official incident record calls it “Degraded performance for multiple models,” and it was resolved the same evening. That is the accurate vendor account, and I am not going to argue with it. An aggregate severity label and a practitioner staring at a dead terminal are simply two different measurements of the same event. You do not get to wait for a status page to align with your experience before deciding what to do.

I went all in on Claude for most of this year: the agents I run, the skills I have written, the routing decisions I have made, all of it shaped for one harness because that harness was plainly the best one available to me, and because I had already concluded that the harness matters more than the model you pick. So when it came back that evening, I did not treat the outage as a reason to abandon Claude. I treated it as a test of whether any of that work could move.

Going all in was not the mistake. I would make that bet again, and I still run Claude Code every day by choice. My mistake was having exactly one copy of every instruction I had ever taught an agent, hand-maintained, in a format that exactly one tool could read. I had never built the thing that would let that work follow me somewhere else for an afternoon.

So the answer, when I went looking, was no. Not because the skills were bad, but because they were shaped for a single harness and nothing else.

My first instinct was to keep the same roles working in two harnesses by hand: a Markdown file with YAML frontmatter for Claude, a TOML file for Codex, both carrying the same instructions, both edited by a human whenever the instructions changed. It is the same manual-sync trap I’d already paid for once with a self-healing CLAUDE.md: a config that catches its own drift beats one that only holds up if a human remembers to keep two copies honest.

It works until it doesn’t. Two editable copies of the same intent will diverge, and they diverge quietly. Nothing crashes. Nothing alerts. The copies simply stop agreeing while continuing to run.

Here is the one that finally broke my trust in the process. The Codex-side researcher role wrote its findings to .Codex/research/, with a capital C. The correct path is .codex/research/, lowercase. A find-and-replace from “Claude” to “Codex,” run about a year earlier, had case-preserved the wrong letter. Every run wrote into a folder that did not exist. It failed silently, every single time, and nobody read that file end to end for a year.

That is the actual failure mode of hand-copying. Not a dramatic break. A slow, silent divergence you discover long after it stopped being true.

Hand-copying produces two editable truths. Rendering produces one truth and two native projections.

If your work is interrupted today, you do not need an architecture. You need to keep working. OpenAI now documents a supported import path, and it is the fastest answer.

1. Check authorization before you move anything. This is the step people skip. Do not import employer, customer, regulated, confidential, or credential-bearing material into an account or workspace that is not authorized to hold it. An outage is not a waiver. If you are unsure whether the destination is approved, stop here.

2. Use the supported import. Per OpenAI’s import documentation, the ChatGPT desktop app imports from Claude Code, Claude Cowork, or Cursor, and the Codex CLI imports from Claude Code or Cursor through /import. Depending on what the importer detects, it can carry instruction files, configuration, skills, plugins, project folders, project memories, chat sessions, MCP server configuration, hooks, slash commands, and subagents.

Two documented limits worth knowing before you rely on it: the CLI imports at most 50 chats from the last 30 days, and /import is unavailable during a running task, in a remote session, or while connected to a local app-server daemon.

3. Finish whatever the import flags. The import surfaces a status card. Work through it rather than assuming a green result. Then review permissions, authentication, connections, hooks, arguments, and paths by hand.

4. Audit your skill roots before you trust them. Open each skill you moved and check four things by hand: absolute paths that only exist on your old machine, hooks or commands that point at binaries the new tool cannot see, arguments whose defaults changed, and anything reaching for a credential or connection that has not been re-authorized. That review is the whole job. I also packaged a read-only auditor that does the same pass mechanically, which I will come back to in a moment.

5. Prove one workflow actually runs. Pick the single skill you would miss most, and run it against a synthetic fixture with a known output, locally, with no network calls and no real data. An import that looks complete and a skill that produces the right answer are different claims.

If the documented import surface is not available to you, stop rather than bulk-copying an entire profile into a new tool. Copying a profile is how you inherit someone else’s mess, including your own.

Those five steps are the whole free path. Nothing above needs a download, an account, or a tool you do not already have.

OpenAI’s documentation says importing does not change or delete your existing agent setup. That is a source-preserving statement, and it is a good one. It is not a statement about what happens on the destination side, about collisions with what is already there, or about undo.

There is also an automatic-update setting in the desktop app that keeps imported work in sync with the original. Useful. Also one-way. Syncing a copy from its source is not the same as owning a definition that both tools render from.

So, plainly:

Import is a continuity tool. It is not proof that every hook, connection, permission, or native projection behaves the same.

The auditor I packaged is deliberately modest for the same reason. It reads only the skill roots you name, discovers nothing on its own, modifies nothing, writes to stdout, hides paths by default, and does not follow or read symlink targets. It reports each skill as portable, review, or blocked. It does not validate chats, connections, authentication, memories, or subagent installation, and it will tell you to run a synthetic test afterward, because a static audit is not runtime proof.

This is a guide, not a one-click converter or an interoperability guarantee.

Where those skills live explains why a portable shape is possible at all. Codex discovers skills from a repository’s .agents/skills directory, a parent or repository-root .agents/skills, your personal $HOME/.agents/skills, an admin path, and skills bundled by OpenAI. A skill is just a directory whose SKILL.md carries a name and description in frontmatter. That is a filesystem convention, which means it is something you can generate.

Track 1 gets you working again. It does not stop the next interruption from costing you the same scramble. That is what the catalog is for.

The Harness-Agnostic Catalog separates what a role means from the files each harness requires.

The source of truth should describe the work. Claude and Codex files should describe how each harness needs to receive it.

Three layers:

1. Canonical intent. One definition per role: its name, its purpose, its portable instructions, and its constraints. Written in a format neither harness reads directly, which is the point. Nothing in it is Claude-shaped or Codex-shaped.

2. Native projections. A renderer takes that canonical role plus a per-harness binding and produces the file each tool actually reads: Markdown with YAML frontmatter for Claude, TOML for Codex, each carrying that harness’s own model, effort, tools, and sandbox settings. You never hand-edit the output.

3. Evidence and drift control. A deterministic render, a transactional install, a receipt, a post-install check, a compensation or restore path when a staged step fails, and a drift comparison that catches a hand-edit before it ships.

Six signals behind this issue, all dated and sourced.

Anthropic logged and resolved a multi-model degradation on August 18, affecting claude.ai, the API, Claude Code, and Claude Cowork between 16:11 and 18:23 UTC. Incidents get resolved. The question a status page never answers for you is what your own work does during the window.

OpenAI now documents a supported import from Claude Code, Claude Cowork, and Cursor, in both the desktop app and the Codex CLI. Vendor-supported migration paths between rival coding agents are new, and they are a better answer than the folder-copying people were doing by hand.

AGENTS.md has quietly become the cross-tool standard for agent instructions, one Markdown file that many harnesses read natively. The industry already standardized the instruction file. Extending that idea from instructions to full role definitions is the obvious next step.

👀 OpenCode has passed 200,000 GitHub stars as a bring-your-own-model coding harness. A provider-neutral harness competing at the top is the strongest argument that portability is worth designing for rather than bolting on.

59% of developers now run three or more AI coding tools in parallel. The single-harness developer is already the minority. Definitions that only exist in one tool are the bottleneck, not the models.

👀 Enterprises are managing AI vendor lock-in through architectural separation and abstraction layers, not fewer vendors. The pattern analysts keep naming is architectural separation between the orchestration layer and the model API. A personal catalog is the same move at desk scale.

The paid section shows the native projections, transactional installation, receipts, compensation path, and drift controls, including what remains unproven. Paid subscribers get the implementation mechanics: native projections, transactional installation, receipts, compensation, drift checks, and the still-open Gate 0 evidence.

Read the original on doneyli.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.