{
  "name": "harnez content API",
  "version": "1.0.0",
  "description": "Published article summaries from harnez.ai.",
  "count": 18,
  "posts": [
    {
      "slug": "one-company-gateway",
      "title": "One company gateway, any coding harness",
      "description": "HarnezPad routes Claude Code, Codex, ChatGPT, and OpenCode through one company LLM gateway without putting the management key on disk.",
      "publishedAt": "2026-08-24T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "case-study",
      "tags": [
        "claude-code",
        "cli",
        "codex",
        "coding-agents",
        "developer-experience",
        "tooling"
      ],
      "url": "https://harnez.ai/posts/one-company-gateway/",
      "markdownUrl": "https://harnez.ai/posts/one-company-gateway.md"
    },
    {
      "slug": "resuming-sessions-across-coding-agents",
      "title": "Resume work across coding agents with a session handoff",
      "description": "A read-only adapter resolves Claude Code, Codex, or Cursor history as inert data, builds a minimal handoff, and verifies current repository state before continuation.",
      "publishedAt": "2026-08-24T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "agentic-systems",
      "tags": [
        "ai-skills",
        "claude-code",
        "codex",
        "coding-agents",
        "cursor",
        "developer-experience"
      ],
      "url": "https://harnez.ai/posts/resuming-sessions-across-coding-agents/",
      "markdownUrl": "https://harnez.ai/posts/resuming-sessions-across-coding-agents.md"
    },
    {
      "slug": "customize-opencode-for-enterprise",
      "title": "Customize OpenCode v2 for enterprise without replacing the harness",
      "description": "How to restrict and extend stock OpenCode through a pinned v2 seam and a redistribution template: composition slots, managed policy, seeded plugins, and branded packaging.",
      "publishedAt": "2026-08-22T00:00:00.000Z",
      "category": "platform-engineering",
      "tags": [
        "architecture",
        "coding-agents",
        "opencode",
        "plugins",
        "security",
        "tooling"
      ],
      "url": "https://harnez.ai/posts/customize-opencode-for-enterprise/",
      "markdownUrl": "https://harnez.ai/posts/customize-opencode-for-enterprise.md"
    },
    {
      "slug": "herdr-is-the-runtime-around-the-coding-agent",
      "title": "Herdr is the runtime around the coding agent",
      "description": "How an agent-aware terminal multiplexer owns live panes, processes, and lifecycle, and how Agent Factory sits above it as a control plane rather than a second runtime.",
      "publishedAt": "2026-08-10T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "agentic-systems",
      "tags": [
        "agents",
        "coding-agents",
        "observability",
        "tooling",
        "workflows"
      ],
      "url": "https://harnez.ai/posts/herdr-is-the-runtime-around-the-coding-agent/",
      "markdownUrl": "https://harnez.ai/posts/herdr-is-the-runtime-around-the-coding-agent.md"
    },
    {
      "slug": "coding-agent-control-plane",
      "title": "ACP is a client protocol, not a control plane",
      "description": "What the Agent Client Protocol standardizes, what it leaves to the host, and how Coding Agent Control Plane composes project, environment, provider, model, and harness before any handshake.",
      "publishedAt": "2026-07-21T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "agentic-systems",
      "tags": [
        "architecture",
        "coding-agents",
        "security",
        "tooling",
        "workflows"
      ],
      "url": "https://harnez.ai/posts/coding-agent-control-plane/",
      "markdownUrl": "https://harnez.ai/posts/coding-agent-control-plane.md"
    },
    {
      "slug": "sandboxing-codex-in-github-actions",
      "title": "How codex-action sandboxes Codex in GitHub Actions",
      "description": "How codex-action separates command permissions, host privileges, proxy key handling, actor authorization, and post-execution isolation on a GitHub runner.",
      "publishedAt": "2026-07-07T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "agentic-systems",
      "tags": [
        "automation",
        "ci-cd",
        "codex",
        "github-actions",
        "security"
      ],
      "url": "https://harnez.ai/posts/sandboxing-codex-in-github-actions/",
      "markdownUrl": "https://harnez.ai/posts/sandboxing-codex-in-github-actions.md"
    },
    {
      "slug": "hooks-complete-tutorial",
      "title": "Codex hooks: enforce policy at lifecycle boundaries",
      "description": "Codex hooks run deterministic commands at 11 lifecycle events, with distinct contracts for tool policy, approval decisions, context injection, and completion gates.",
      "publishedAt": "2026-06-23T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "platform-engineering",
      "tags": [
        "codex",
        "coding-agents",
        "extensibility",
        "hooks",
        "patterns"
      ],
      "url": "https://harnez.ai/posts/hooks-complete-tutorial/",
      "markdownUrl": "https://harnez.ai/posts/hooks-complete-tutorial.md"
    },
    {
      "slug": "agent-skills-ecosystem",
      "title": "Agent skills: package task knowledge for coding agents",
      "description": "A SKILL.md file turns repeated operating instructions into discoverable, scoped task knowledge that Codex and Claude Code load on demand.",
      "publishedAt": "2026-06-16T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "platform-engineering",
      "tags": [
        "ai-skills",
        "coding-agents",
        "patterns",
        "plugins"
      ],
      "url": "https://harnez.ai/posts/agent-skills-ecosystem/",
      "markdownUrl": "https://harnez.ai/posts/agent-skills-ecosystem.md"
    },
    {
      "slug": "agent-sandboxing-models",
      "title": "Codex sandboxing: separate filesystem scope from approvals",
      "description": "Codex treats sandbox enforcement and approval policy as separate controls, and subagents inherit the active parent runtime before role defaults apply.",
      "publishedAt": "2026-06-09T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "platform-engineering",
      "tags": [
        "codex",
        "coding-agents",
        "patterns",
        "sandboxing",
        "security"
      ],
      "url": "https://harnez.ai/posts/agent-sandboxing-models/",
      "markdownUrl": "https://harnez.ai/posts/agent-sandboxing-models.md"
    },
    {
      "slug": "building-a-session-browser",
      "title": "Building a local viewer for Claude Code sessions",
      "description": "A local session viewer turns Claude Code JSONL logs into checkpoints, tool-call groups, token counts, and side-by-side comparisons.",
      "publishedAt": "2026-05-12T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "case-study",
      "tags": [
        "claude-code",
        "coding-agents",
        "developer-experience",
        "experiment",
        "observability"
      ],
      "url": "https://harnez.ai/posts/building-a-session-browser/",
      "markdownUrl": "https://harnez.ai/posts/building-a-session-browser.md"
    },
    {
      "slug": "ci-cd-with-codex",
      "title": "Codex as a function in the incident loop",
      "description": "How Triage Copilot embeds the Codex SDK in a production incident SDLC: three parallel sub-agents, MCP-scoped context, Zod-validated output, and draft PRs that never auto-merge.",
      "publishedAt": "2026-05-11T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "platform-engineering",
      "tags": [
        "ci-cd",
        "codex",
        "coding-agents",
        "evaluation",
        "mcp",
        "security"
      ],
      "url": "https://harnez.ai/posts/ci-cd-with-codex/",
      "markdownUrl": "https://harnez.ai/posts/ci-cd-with-codex.md"
    },
    {
      "slug": "u-shaped-attention-memory-llms",
      "title": "Lost in the middle: test context position, not just size",
      "description": "Long-context benchmarks show that relevant-information position can change accuracy, but the effect is task- and model-dependent rather than a universal attention curve.",
      "publishedAt": "2026-05-11T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "prompt-engineering",
      "tags": [
        "attention",
        "context-windows",
        "llm",
        "prompt-engineering"
      ],
      "url": "https://harnez.ai/posts/u-shaped-attention-memory-llms/",
      "markdownUrl": "https://harnez.ai/posts/u-shaped-attention-memory-llms.md"
    },
    {
      "slug": "fix-broken-project-paths",
      "title": "Fix broken project paths in Claude Code and Codex",
      "description": "A macOS migration script discovers stale project paths in four Claude Code and Codex sources, then updates the related local state with explicit safety limits.",
      "publishedAt": "2026-05-05T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "tips-and-tricks",
      "tags": [
        "automation",
        "claude-code",
        "cli",
        "codex",
        "developer-experience",
        "tooling"
      ],
      "url": "https://harnez.ai/posts/fix-broken-project-paths/",
      "markdownUrl": "https://harnez.ai/posts/fix-broken-project-paths.md"
    },
    {
      "slug": "system-prompt-as-infrastructure",
      "title": "Treat the agent contract as versioned infrastructure",
      "description": "Production agent behavior comes from a versioned contract spanning instructions, tools, schemas, context assembly, model selection, and release gates.",
      "publishedAt": "2026-04-16T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "platform-engineering",
      "tags": [
        "claude",
        "infrastructure",
        "llm",
        "production",
        "prompt-engineering",
        "system-prompt"
      ],
      "url": "https://harnez.ai/posts/system-prompt-as-infrastructure/",
      "markdownUrl": "https://harnez.ai/posts/system-prompt-as-infrastructure.md"
    },
    {
      "slug": "cli-based-api-explorer",
      "title": "Turn an OpenAPI spec into an agent-facing CLI",
      "description": "A spec-driven CLI gives coding agents a discoverable, executable API surface without hand-maintaining one command per endpoint.",
      "publishedAt": "2026-04-06T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "platform-engineering",
      "tags": [
        "api-exploration",
        "cli",
        "coding-agents",
        "developer-experience",
        "openapi"
      ],
      "url": "https://harnez.ai/posts/cli-based-api-explorer/",
      "markdownUrl": "https://harnez.ai/posts/cli-based-api-explorer.md"
    },
    {
      "slug": "workflows-vs-agents-decision-framework",
      "title": "Workflows vs. agents: a pragmatic decision framework",
      "description": "A reliability-first approach to choosing between predictable workflows and flexible agents, with four reusable patterns and concrete selection heuristics.",
      "publishedAt": "2026-04-05T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "agentic-systems",
      "tags": [
        "agents",
        "architecture",
        "claude",
        "llm",
        "patterns",
        "workflows"
      ],
      "url": "https://harnez.ai/posts/workflows-vs-agents-decision-framework/",
      "markdownUrl": "https://harnez.ai/posts/workflows-vs-agents-decision-framework.md"
    },
    {
      "slug": "inside-the-agent-loop",
      "title": "Inside the Agent SDK loop: how Claude Code runs your prompts",
      "description": "How Claude Code and the Agent SDK execute prompts through a five-step tool loop, expose typed lifecycle messages, and bound work with permissions, turns, and budgets.",
      "publishedAt": "2026-04-02T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "agentic-systems",
      "tags": [
        "agent-sdk",
        "architecture",
        "claude-code",
        "coding-agents"
      ],
      "url": "https://harnez.ai/posts/inside-the-agent-loop/",
      "markdownUrl": "https://harnez.ai/posts/inside-the-agent-loop.md"
    },
    {
      "slug": "iterative-prompt-engineering",
      "title": "What a prompt lab actually validates",
      "description": "Three fixture-backed extraction lessons show how prompt contracts grow — and why an evaluation can only prove the fields its grader checks.",
      "publishedAt": "2026-03-25T00:00:00.000Z",
      "updatedAt": "2026-08-25T00:00:00.000Z",
      "category": "codelab",
      "tags": [
        "data-extraction",
        "llm",
        "prompt-engineering",
        "testing"
      ],
      "url": "https://harnez.ai/posts/iterative-prompt-engineering/",
      "markdownUrl": "https://harnez.ai/posts/iterative-prompt-engineering.md"
    }
  ]
}