[Agentic Coding] Header Project

COMPLETED May 04, 2026
Summary

Briefing: [Agentic Coding] Header Project

Purpose: Developer at a 1-3 person startup building an LLM-powered web app on Python/FastAPI/asyncpg + Expo Router/React Native, running Claude Code with heavy harness investment (~16 skills, ~60 memory entries, pre-commit hooks). Pain points: frontend/mobile agent drift, Python-side friction, cross-service debugging, parallel/scheduled agents, harness compounding, and deterministic verification.

Key Insights

  • The behavior you've attributed to harness misconfiguration between March 4 and April 20, 2026 was actually Anthropic infrastructure failure — three separate regressions hit Claude Code simultaneously. Reasoning effort was quietly downgraded from high to medium on March 4 (reverted April 7), a caching bug cleared thinking context on every turn starting March 26 (making the agent forgetful and repetitive while burning your usage limits faster), and a verbosity system prompt change on April 16 degraded coding quality before being reverted April 20. Opus 4.7 now defaults to xhigh effort. Any harness changes you made in Q1 2026 to compensate for "drift" may have been compensating for Anthropic bugs rather than genuine prompt design issues — worth re-evaluating those against the current model.
  • An update on recent Claude Code quality reports

  • Addy Osmani's SDLC-phased skills framework delivers the sharpest practitioner answer to your harness compounding problem, with a counterintuitive finding: skills matter more for long-running agents because "an agent that skips the test in a 30-hour session produces a debugging archaeology project." The framework structures your 16 skills around six lifecycle phases (Define/Plan/Build/Verify/Review/Ship) with anti-rationalization tables (pre-written rebuttals to excuses the agent hasn't yet made), scope discipline enforcement ("touch only what you're asked to touch"), and verification as a hard exit criterion. The portable SKILL.md format works across Claude Code, Codex, and other runtimes, so your investment survives model churn. The five AGENTS.md non-negotiables (surface assumptions before building, stop and ask when requirements conflict, push back when warranted, prefer boring solutions, touch only what you're asked to touch) could be added to your harness today.

  • Agent Skills
  • Long-running Agents

  • For your weekly scheduled agents, the critical underappreciated element is not done-condition detection but session recoverability — your current approach addresses the former but likely not the latter. Anthropic, Cursor, and Google have independently converged on the same architecture: separate the model loop from the execution sandbox from a durable append-only session log. The session log is what makes a long-running agent recoverable from mid-run failures without starting over. The "Ralph loop" (a bash script that picks the next unfinished task, runs the agent with context and notes, checks completion, and loops) is the minimal viable implementation available right now without infrastructure changes. Write the done-condition before the agent starts; separate the evaluator from the generator.

  • Long-running Agents
  • Agent Skills

  • The Spotify Ads API case study resolves a question you almost certainly face with FeedForge: MCP vs. CLI for your S2S service. Their engineering team explicitly chose CLI + OpenAPI spec over MCP for a large-surface API because "curl commands are transparent and debuggable" — agents debugging cross-service failures need visible, reproducible tool calls that MCP's abstraction layer obscures. OpenAPI Links (an underused part of the 3.x spec) encode the entire entity hierarchy as a machine-readable graph of which response fields feed which subsequent request parameters, letting agents chain multi-step workflows without being hand-held. Hooks handle token refresh transparently. Idempotency keys prevent duplicate side effects when agents re-run. The implementation lives entirely in .md files with no compiled code — directly portable.

  • Building a Natural Language Interface to the Spotify Ads API with Claude Code Plugins

  • Your CLAUDE.md stack preference declarations are the correct mechanism for overriding training bias, but you're likely missing specific categories where newer Claude models default to wrong tools for your exact stack. A systematic study found that Claude Code recommends PNPM (56%) over Bun for package management, SQLModel (72%) for Python ORMs, FastAPI (100%) for Python API layers — all aligned with your stack. But it also found Claude recommending Vercel Cron over OS-level cron for scheduled tasks, defaulting to Railway for Python deployments, and a confirmed bug where Claude Code incorrectly recommends Bun as a Next.js runtime (irrelevant to you but illustrative of training data staleness). Newer model versions (Opus 4.7) show a recency gradient — they pick newer tools than Sonnet. Explicit CLAUDE.md entries for asyncpg + pgbouncer patterns, Expo Router conventions, and FastAPI dependency injection are overriding the right thing; add explicit entries for anything you've seen the agent get wrong.

  • Claude Code's favorite tech stack

Emerging Patterns

  1. Markdown guardrails are being displaced by executable enforcement across practitioner sources, with direct implications for your /confidence and /compound pre-commit hooks. Multiple independent sources (Terhorst-North & Adzic at GOTO 2026, Syntax.fm #998, Addy Osmani's Agent Skills) have converged on the same finding: agents will ignore .md rules when it's convenient, but cannot ignore CI failures. The specific tactic: write custom ESLint rules that fail the build when agents use wrong patterns — the Svelte team's rule that fails if useEffect appears in SvelteKit files is the canonical example. Terhorst-North also independently discovered the "rules file backdoor attack" — hidden Unicode characters in .claude/skills/ .md files that are invisible to agents but exploitable — warranting an immediate audit of your skills directory. Your existing pre-commit hooks are correct in approach but may be under-specified; converting aspirational constraints into enforced ones is the upgrade path.
  2. Spec-Driven Dev Is Back. But Not How You Think • Daniel Terhorst-North & Gojko Adzic • GOTO 2026
  3. 998: How to Fix Vibe Coding
  4. Agent Skills

  5. Progressive disclosure as an architectural principle — not just a token efficiency tactic — is the convergence point between Addy Osmani's SDLC skills framework and Unblocked's quantified context engine results. Unblocked's production case (21M → 10M tokens, 2.5hr → 25min on a single complex task) came not from better prompting but from eliminating "doom loops" caused by agents searching without adequate initial context. The 50% token reduction maps directly to eliminating corrective feedback cycles. Osmani's framework achieves the same via a meta-skill router that activates only phase-appropriate skills rather than loading all 20 at once. For your 60 .claude/memory/ entries: the compaction opportunity is structuring them around SDLC phases rather than accumulating them organically, with the Claude Cowork "session audit" pattern (/session audit at end of each session) as a mechanism to extract and compact principles without losing signal.

  6. Mergeable by default: Building the context engine to save time and tokens — Peter Werry, Unblocked
  7. Agent Skills
  8. Claude Cowork: Build Your Own Jarvis

Dissenting Views

  • There's a meaningful methodological disagreement — not just emphasis — between "build a rich 20-skill SDLC harness" (Osmani) and "keep the harness extremely simple so you can surf the frontier" (Pi/Building Pi). The Pi approach argues that complex harnesses become brittle when new models ship and must be discarded, citing Claude Code's own trajectory as evidence that Anthropic removes features as models improve (confirmed by Cat Wu). The Osmani approach counters that the structure (phased SDLC, anti-rationalization tables, scope discipline) is model-agnostic even if specific prompts need updating. For your situation — 16 skills, 60 memory entries, pre-commit hooks — the tension is real: your existing investment is substantial enough to hit the "too complex to maintain" threshold if you're not careful. The practical resolution from the Cat Wu insider view: treat your harness as shrinking over time, not growing, and use each Anthropic model update as an opportunity to remove compensations that are no longer needed.
  • Building Pi, and what makes self-modifying software so fascinating
  • Agent Skills
  • How Anthropic's product team moves faster than anyone else | Cat Wu (Head of Product, Claude Code)

Read & Act

What to read:

  • Agent Skills — The only source in this corpus that provides a complete, philosophically grounded framework for exactly what you're building: a .claude/skills/ library structured around SDLC phases. The "five non-negotiables for AGENTS.md" and anti-rationalization tables sections alone justify a full read; the portable SKILL.md format means your investment works across Claude Code and any future runtime.

  • Long-running Agents — Covers every component of your weekly scheduled agent pain point in a single rigorously synthesized article: the Ralph loop, Anthropic's Brain/Hands/Session architecture, Cursor's Planner/Worker/Judge pattern, checkpoint-resume, delegated approval, memory drift, and fleet orchestration. The "done-condition before the agent starts" and "separate evaluator from generator" principles are immediately applicable.

  • Building a Natural Language Interface to the Spotify Ads API with Claude Code Plugins — A real engineering team's case study with explicit technical rationale for CLI over MCP for large-surface APIs, OpenAPI Links for multi-step chaining, hooks for auth, and idempotency keys for parallel reruns. Implementation is entirely in .md files — directly portable to your FeedForge S2S integration pattern.

  • An update on recent Claude Code quality reports — Short and essential calibration data: Anthropic confirming three specific infrastructure failures active between March 4 and April 20, 2026. Read the primary source (not a summary) because the specific technical details — which reasoning tier was affected, precisely when the caching bug was active — allow you to retroactively understand which Q1 harness changes were compensating for Anthropic bugs rather than genuine prompt design issues.

  • Spec-Driven Dev Is Back. But Not How You Think • Daniel Terhorst-North & Gojko Adzic • GOTO 2026 — The most concrete articulation of the "rules file backdoor attack" (hidden Unicode in .claude/skills/ files), the case for domain-specific ESLint rules over CLAUDE.md, and a nuanced discussion of when automation locks in quality vs. locks in errors. Essential for your pre-commit hook strategy.

What to do:

  1. Audit your .claude/skills/ directory for hidden Unicode characters. Terhorst-North and Adzic independently identified that .md configuration files used by coding agents can contain hidden Unicode that is invisible to the agent but exploitable. Run grep -P '[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\xff]' .claude/skills/*.md or equivalent to scan your skills directory. If any files were generated or modified by an agent, they are candidates for this vulnerability.

  2. Restructure your 60 .claude/memory/ entries around the six SDLC phases (Define/Plan/Build/Verify/Review/Ship) rather than accumulating them as a flat list. Your current organic accumulation is the pattern that produces "doom loops" in agents — they search without adequate context structure and iterate incorrectly. Add /session audit as a closing ritual to each Claude Code session: this command asks the agent to scan the conversation for unsaved principles and add them to the appropriate phase-specific memory file. Run this for 2 weeks and measure whether corrective feedback loops decrease.

  3. Establish a regression benchmark for Claude Code behavior before your next harness change. The March-April incident shows that Anthropic-side changes can appear as harness failures. Before modifying any skill or memory entry, record the current agent behavior on 3-5 representative tasks (one per pain point area). After changes, run the same tasks and compare. This gives you a baseline to detect future Anthropic regressions before attributing failures to your own harness — and provides data to share with Anthropic support if behavior degrades again.

Source Articles