Corrective Action: Sentinel Anthropic Managed-Agent Bundle Exceeds 100,000 Character Cap

Corrective Action: Sentinel Anthropic Managed-Agent Bundle Exceeds 100,000 Character Cap

Date: 2026-05-11 Category: Capability Regression — Anthropic Managed-Agent surface (Tier 1 agent affected) Impact: Sentinel — a Tier 1 cadenced relationship-monitoring agent — cannot be re-uploaded to the Anthropic Managed-Agent surface after its expertise pack patch. Its system-prompt bundle is 100,524 characters; Anthropic's hard cap is 100,000. Vigil, Horizon, Klaxon, Tuner (the other four agents Aegis patched in the same batch) re-uploaded successfully. Sentinel is the only blocked agent. Resolution Status: Open. Sentinel remains operational at Emerjent runtime (where V2 AGENT.md governs the spawn) and at V1 (where .claude/agents/sentinel.md is well under cap). The cap break only affects the Anthropic-side Managed-Agent surface for Sentinel specifically.


Incident

What Happened

During the 2026-05-10/11 pack stream closeout, Aegis attempted to re-upload five agents to the Anthropic Managed-Agent surface (data/managed-agents/agents.json → Anthropic Agent API) after their Startup Protocols were patched to reference new expertise packs:

Agent Bundle size after patch Result
Vigil < 100,000 chars Upload succeeded
Horizon < 100,000 chars Upload succeeded
Klaxon < 100,000 chars Upload succeeded
Tuner < 100,000 chars Upload succeeded
Sentinel 100,524 chars Upload rejected — exceeds 100,000 char system-prompt cap

Sentinel's bundle composition includes:

  1. The base agent definition (.claude/agents/sentinel.md + agents/relationship-sentinel/AGENT.md)
  2. Startup Protocol load chain (enforcement skills + relationship-intelligence skill pack)
  3. The newly added skills/proactive-relationship-monitoring/ pack reference and inlined content per Aegis's bundle assembly
  4. HubSpot data-model reference + canonical query reference
  5. Methodology references (Value Path, 12 Traps, Core Beliefs)
  6. Relationship intelligence framework references

The cumulative bundle reached 100,524 chars — 524 chars over the cap.

Why This Matters

Sentinel is a Tier 1 cadenced agent in the daily operations rhythm (per skills/ai-leadership/INDEX.md § Daily Operations Agent Map, Sentinel runs on-demand for session gap checks and engagement signals; under Pulse's daily 5am cycle, Sentinel's gap-detection outputs feed Klaxon's alert routing). The Anthropic Managed-Agent surface is one of three runtime surfaces for Sentinel:

Surface Status post-cap-break Why
V1 Claude Code (.claude/agents/sentinel.md) OPERATIONAL Definition reads from a single .md file; no bundle assembly; under cap
Emerjent runtime (per memory/reference_emerjent_model_alias_resolution.md) OPERATIONAL Emerjent's model alias resolver + V2 AGENT.md governs; not subject to Anthropic system-prompt cap
Anthropic Managed Agents (Anthropic Agent API) BLOCKED Bundle exceeds 100k cap on this surface

The downstream user-visible impact is narrow: Sentinel can still be invoked in any Chris-facing Claude Code session and any Emerjent-spawned context. The Anthropic Managed-Agent surface is not the primary daily-rhythm runtime — it is a parallel deployment path. No daily-ops capability is lost today.

But Sentinel is the canary. As pack stacks deepen and more agents collect Startup Protocol references, the next agents to hit the cap will be larger-mass ones: Pulse (Tier 1, portfolio health scoring + commercial awareness pack + financial-intelligence references), Forge (Tier 2, content multiplication with three leader-type variants), and likely V/Sage/Pax themselves if and when they are deployed to the Managed-Agent surface (their identity prompts already approach the cap before any pack work).

Timeline

Time Event
2026-05-10/11 Pack stream ships 41 packs, including skills/proactive-relationship-monitoring/ for Sentinel
2026-05-11 (Aegis batch) Aegis patches 45 V1 agent Startup Protocols (commit 90e594033) and 45 V2 AGENT.md files (commit 5ae78f5)
2026-05-11 (Anthropic re-sync) Aegis re-uploads 5 affected Managed-Agent definitions via scripts/managed-agents/upload-agents.js
2026-05-11 4 of 5 succeed; Sentinel rejected at 100,524 / 100,000 chars
2026-05-11 V flags the issue in stream closeout (/mnt/d/AI-WORKSPACE/2026-05-11-pack-stream-closeout.md)
2026-05-11 Q files this CAR as part of project gate closure

Root Cause

Primary Mechanism

Anthropic's Managed-Agent API enforces a 100,000 character cap on the system prompt of any uploaded agent. This is a platform constraint, not a VFT-controlled limit.

Sentinel's bundle hit the cap because its bundle assembly includes:

  • The agent's own definition (~8k chars)
  • Enforcement skill load chain (~15k chars when expanded — vf-platform-context.md, vf-self-correction.md, plus references)
  • skills/relationship-intelligence/ pack (pre-existing, ~12k chars)
  • skills/proactive-relationship-monitoring/ pack (new this stream, ~25-30k chars across 6 files)
  • HubSpot data-model reference + property index pointers (~15k chars in the data-model-reference file alone)
  • Methodology references (Value Path 8 stages + 12 Traps + Core Beliefs, ~10k chars combined)
  • Wiki canonical pointers (conventions + glossary + agent-guide, ~20k chars combined when @imported)

The Anthropic surface inlines all of this into one system prompt. The total crossed the cap when the new pack was added.

Secondary Mechanisms

S1 — Aegis's bundle assembly inlines pack content rather than referencing it. This is correct behavior for the Anthropic surface (Managed Agents don't have file-system access; they need the discipline inlined). But it means every pack addition is +N chars of system prompt mass. The bundle assembler does not currently warn when the result approaches the cap.

S2 — upload-agents.js does not pre-check bundle size before upload. The script attempts the upload and reports the API rejection. A pre-check (compute bundle, measure length, fail loudly if > 99,500 chars with a "near cap" warning) would have caught Sentinel before the upload attempt and let Aegis decide whether to defer or trim. This is the same defect class as the missing update-path issue (separate CAR).

S3 — No bundle-budget process exists for Managed-Agent-deployed agents. Dewey budget (scripts/session-hooks/check-dewey-budget.sh) enforces a 40k char limit on .claude/codebase-index.md. There is no analogous check for any agent's Managed-Agent bundle. Pack addition currently flows: "agent gets pack reference in Startup Protocol → Aegis re-assembles bundle → upload-agents.js attempts upload → cap break discovered at API level." A pre-flight budget check at Startup-Protocol-patch time would catch the issue 2-3 steps earlier.

What This Is Not

This is not a defect in the pack content. skills/proactive-relationship-monitoring/ passes Q's audit on every dimension (forbidden-language, single-pass discipline, evidence quality). The pack works correctly when Sentinel is spawned at V1 or Emerjent. The cap-break is purely an Anthropic-surface deployment constraint.

This is not a "documented but not wired" pattern. Sentinel's V1 + Emerjent deployments are operational. The Anthropic Managed-Agent surface is one of three parallel deployments and the most-capacity-constrained.


Immediate Fix

Sentinel remains usable at V1 and Emerjent. No immediate emergency fix required — daily operations continue.

What V/Aegis can do today if Anthropic Managed-Agent surface is needed for Sentinel:

  1. Identify the largest single component of Sentinel's bundle (likely the inlined skills/relationship-intelligence/ + skills/proactive-relationship-monitoring/ combined load).
  2. Decide between two approaches:
    • Trim approach: Move some inline-pack content to a reference-only summary; rely on Sentinel spawning at runtime to access the full pack via Read tool. This sacrifices some Managed-Agent-surface inlined discipline for cap headroom.
    • Split approach: Decompose Sentinel into "Sentinel-Core" (gap detection logic, fits under cap) and "Sentinel-Briefing" (relationship-intelligence load, separate Managed Agent). This is a larger structural change.

Q's recommendation: Trim approach first; only split if trim cannot create > 5k char headroom. The pack content discipline holds whether the pack is fully inlined or summarized-with-reference.


Permanent Prevention

Action Owner Mechanism Timeline
P1 — Add bundle-budget check to upload-agents.js Hone (script ownership) → Squire (implementation) Pre-flight measurement: assemble bundle, count chars, fail with a clear message + delta if > 99,500 chars; warn at 95,000. Match the Dewey-budget pattern. Next pack stream — not urgent
P2 — Add per-agent bundle-size tracking to Aegis batch report Aegis After every Startup Protocol patch batch, Aegis emits a table: agent / pre-patch bundle size / post-patch bundle size / cap headroom remaining. Surfaces near-cap agents before the next pack stream. Next batch sweep
P3 — Document pack-stack-size discipline in skills/apps/pack-authoring-chain.md and skills/skill-architecture/ Hone (skill-architecture ownership) Add a section: "Bundle budget — when adding a pack to a Tier 1 agent already at >50k bundle size, run pre-flight size check before patching Startup Protocol. Trim or defer." Same session as P1
P4 — Decide on Sentinel-specific resolution (trim vs split) V (Operations lead) + Q (audit) + Aegis (agent assembly) Review Sentinel's full bundle composition; choose trim or split; execute; re-attempt upload. Open — separate ticket, not pack-stream blocker
P5 — Survey next-most-at-risk agents Aegis Run bundle-size scan across all Managed-Agent-deployed agents; identify any others within 5k chars of cap; pre-emptively trim or flag. Pulse and Forge are the top suspicions. Next batch sweep

Verification

This CAR's permanent prevention is VERIFIED when:

  1. upload-agents.js runs a pre-flight bundle-size check and fails loudly when > 99,500 chars (P1)
  2. Aegis batch reports include per-agent bundle-size deltas (P2)
  3. skills/apps/pack-authoring-chain.md documents the bundle-budget discipline (P3)
  4. Sentinel re-uploads successfully to the Anthropic Managed-Agent surface, OR Sentinel-Split or Sentinel-Trim deployments operate at the cap (P4)
  5. No additional agents discover the cap by surprise (P5)

Until P1-P3 ship: this CAR remains OPEN. Sentinel itself (P4) may be resolved before P1-P3 if Anthropic-surface availability becomes urgent.


Related

  • docs/quality/audits/2026-05-11-pack-stream.md § O-3 — observation that flagged this issue
  • docs/quality/capabilities/2026-05-11-expertise-packs.md — the capability whose stream surfaced this constraint
  • docs/quality/cars/2026-05-11-corrective-upload-agents-missing-update.md — sibling CAR on the same script (missing update path)
  • Leadership/reports/ADR-2026-04-21-option-1-system-prompt-injection.md — the Managed-Agent provisioning ADR that established the upload path
  • memory/reference_emerjent_model_alias_resolution.md — Emerjent runtime surface (where Sentinel remains operational regardless of this CAR)